| 1 | /** | 
 
 
 
 
 | 2 | * This file has no copyright assigned and is placed in the Public Domain. | 
 
 
 
 
 | 3 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
 
 
 
 
 | 5 | */ | 
 
 
 
 
 | 6 | #ifndef _APPMGMT_H_ | 
 
 
 
 
 | 7 | #define _APPMGMT_H_ | 
 
 
 
 
 | 8 |  | 
 
 
 
 
 | 9 | #ifdef __cplusplus | 
 
 
 
 
 | 10 | extern "C" { | 
 
 
 
 
 | 11 | #endif | 
 
 
 
 
 | 12 |  | 
 
 
 
 
 | 13 | typedef enum _INSTALLSPECTYPE { | 
 
 
 
 
 | 14 | APPNAME = 1, | 
 
 
 
 
 | 15 | FILEEXT,PROGID, | 
 
 
 
 
 | 16 | COMCLASS | 
 
 
 
 
 | 17 | } INSTALLSPECTYPE; | 
 
 
 
 
 | 18 |  | 
 
 
 
 
 | 19 | typedef union _INSTALLSPEC { | 
 
 
 
 
 | 20 | struct { | 
 
 
 
 
 | 21 | WCHAR *Name; | 
 
 
 
 
 | 22 | GUID GPOId; | 
 
 
 
 
 | 23 | } AppName; | 
 
 
 
 
 | 24 | WCHAR *FileExt; | 
 
 
 
 
 | 25 | WCHAR *ProgId; | 
 
 
 
 
 | 26 | struct { | 
 
 
 
 
 | 27 | GUID Clsid; | 
 
 
 
 
 | 28 | DWORD ClsCtx; | 
 
 
 
 
 | 29 | } COMClass; | 
 
 
 
 
 | 30 | } INSTALLSPEC; | 
 
 
 
 
 | 31 |  | 
 
 
 
 
 | 32 | typedef struct _INSTALLDATA { | 
 
 
 
 
 | 33 | INSTALLSPECTYPE Type; | 
 
 
 
 
 | 34 | INSTALLSPEC Spec; | 
 
 
 
 
 | 35 | } INSTALLDATA,*PINSTALLDATA; | 
 
 
 
 
 | 36 |  | 
 
 
 
 
 | 37 | typedef enum { | 
 
 
 
 
 | 38 | ABSENT,ASSIGNED,PUBLISHED | 
 
 
 
 
 | 39 | } APPSTATE; | 
 
 
 
 
 | 40 |  | 
 
 
 
 
 | 41 | #define LOCALSTATE_ASSIGNED 0x1 | 
 
 
 
 
 | 42 | #define LOCALSTATE_PUBLISHED 0x2 | 
 
 
 
 
 | 43 | #define LOCALSTATE_UNINSTALL_UNMANAGED 0x4 | 
 
 
 
 
 | 44 | #define LOCALSTATE_POLICYREMOVE_ORPHAN 0x8 | 
 
 
 
 
 | 45 | #define LOCALSTATE_POLICYREMOVE_UNINSTALL 0x10 | 
 
 
 
 
 | 46 | #define LOCALSTATE_ORPHANED 0x20 | 
 
 
 
 
 | 47 | #define LOCALSTATE_UNINSTALLED 0x40 | 
 
 
 
 
 | 48 |  | 
 
 
 
 
 | 49 | typedef struct _LOCALMANAGEDAPPLICATION { | 
 
 
 
 
 | 50 | LPWSTR pszDeploymentName; | 
 
 
 
 
 | 51 | LPWSTR pszPolicyName; | 
 
 
 
 
 | 52 | LPWSTR pszProductId; | 
 
 
 
 
 | 53 | DWORD dwState; | 
 
 
 
 
 | 54 | } LOCALMANAGEDAPPLICATION,*PLOCALMANAGEDAPPLICATION; | 
 
 
 
 
 | 55 |  | 
 
 
 
 
 | 56 | #define MANAGED_APPS_USERAPPLICATIONS 0x1 | 
 
 
 
 
 | 57 | #define MANAGED_APPS_FROMCATEGORY 0x2 | 
 
 
 
 
 | 58 | #define MANAGED_APPS_INFOLEVEL_DEFAULT 0x10000 | 
 
 
 
 
 | 59 |  | 
 
 
 
 
 | 60 | #define MANAGED_APPTYPE_WINDOWSINSTALLER 0x1 | 
 
 
 
 
 | 61 | #define MANAGED_APPTYPE_SETUPEXE 0x2 | 
 
 
 
 
 | 62 | #define MANAGED_APPTYPE_UNSUPPORTED 0x3 | 
 
 
 
 
 | 63 |  | 
 
 
 
 
 | 64 | typedef struct _MANAGEDAPPLICATION { | 
 
 
 
 
 | 65 | LPWSTR pszPackageName; | 
 
 
 
 
 | 66 | LPWSTR pszPublisher; | 
 
 
 
 
 | 67 | DWORD dwVersionHi; | 
 
 
 
 
 | 68 | DWORD dwVersionLo; | 
 
 
 
 
 | 69 | DWORD dwRevision; | 
 
 
 
 
 | 70 | GUID GpoId; | 
 
 
 
 
 | 71 | LPWSTR pszPolicyName; | 
 
 
 
 
 | 72 | GUID ProductId; | 
 
 
 
 
 | 73 | LANGID Language; | 
 
 
 
 
 | 74 | LPWSTR pszOwner; | 
 
 
 
 
 | 75 | LPWSTR pszCompany; | 
 
 
 
 
 | 76 | LPWSTR pszComments; | 
 
 
 
 
 | 77 | LPWSTR pszContact; | 
 
 
 
 
 | 78 | LPWSTR pszSupportUrl; | 
 
 
 
 
 | 79 | DWORD dwPathType; | 
 
 
 
 
 | 80 | WINBOOL bInstalled; | 
 
 
 
 
 | 81 | } MANAGEDAPPLICATION,*PMANAGEDAPPLICATION; | 
 
 
 
 
 | 82 |  | 
 
 
 
 
 | 83 | typedef struct _APPCATEGORYINFO { | 
 
 
 
 
 | 84 | LCID Locale; | 
 
 
 
 
 | 85 | LPWSTR pszDescription; | 
 
 
 
 
 | 86 | GUID AppCategoryId; | 
 
 
 
 
 | 87 | } APPCATEGORYINFO; | 
 
 
 
 
 | 88 |  | 
 
 
 
 
 | 89 | typedef struct _APPCATEGORYINFOLIST { | 
 
 
 
 
 | 90 | DWORD cCategory; | 
 
 
 
 
 | 91 | APPCATEGORYINFO *pCategoryInfo; | 
 
 
 
 
 | 92 | } APPCATEGORYINFOLIST; | 
 
 
 
 
 | 93 |  | 
 
 
 
 
 | 94 | #ifndef WINAPI | 
 
 
 
 
 | 95 | #define WINAPI  __stdcall | 
 
 
 
 
 | 96 | #endif | 
 
 
 
 
 | 97 |  | 
 
 
 
 
 | 98 | DWORD WINAPI InstallApplication(PINSTALLDATA pInstallInfo); | 
 
 
 
 
 | 99 | DWORD WINAPI UninstallApplication(WCHAR *ProductCode,DWORD dwStatus); | 
 
 
 
 
 | 100 | DWORD WINAPI CommandLineFromMsiDescriptor(WCHAR *Descriptor,WCHAR *CommandLine,DWORD *CommandLineLength); | 
 
 
 
 
 | 101 | DWORD WINAPI GetManagedApplications(GUID *pCategory,DWORD dwQueryFlags,DWORD dwInfoLevel,LPDWORD pdwApps,PMANAGEDAPPLICATION *prgManagedApps); | 
 
 
 
 
 | 102 | DWORD WINAPI GetLocalManagedApplications(WINBOOL bUserApps,LPDWORD pdwApps,PLOCALMANAGEDAPPLICATION *prgLocalApps); | 
 
 
 
 
 | 103 | void WINAPI GetLocalManagedApplicationData(WCHAR *ProductCode,LPWSTR *DisplayName,LPWSTR *SupportUrl); | 
 
 
 
 
 | 104 | DWORD WINAPI GetManagedApplicationCategories(DWORD dwReserved,APPCATEGORYINFOLIST *pAppCategory); | 
 
 
 
 
 | 105 |  | 
 
 
 
 
 | 106 | #ifdef __cplusplus | 
 
 
 
 
 | 107 | } | 
 
 
 
 
 | 108 | #endif | 
 
 
 
 
 | 109 | #endif |