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