| 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 |