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 110