//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation 1998. // // app.idl // // Methods to the application management service. // //-------------------------------------------------------------------------- [ uuid(8c7daf44-b6dc-11d1-9a4c-0020af6e7c57), version(1.0) ] interface appmgmt { cpp_quote("#ifndef GUID_DEFINED") cpp_quote("#define GUID_DEFINED") typedef struct _GUID { unsigned long Data1; unsigned short Data2; unsigned short Data3; unsigned char Data4[8]; } GUID; cpp_quote("#endif // !GUID_DEFINED") const unsigned long APPNAME = 1; const unsigned long FILEEXT = 2; const unsigned long PROGID = 3; const unsigned long COMCLASS = 4; typedef [string] wchar_t * PWSTR; typedef unsigned long DWORD; typedef unsigned short LANGID; typedef struct _APPKEY { unsigned long Type; unsigned long ProcessorArchitecture; [switch_is(Type), switch_type(unsigned long)] union { [case(APPNAME)] struct { PWSTR Name; GUID PolicyId; } AppName; [case(FILEEXT)] PWSTR FileExt; [case(PROGID)] PWSTR ProgId; [case(COMCLASS)] struct { GUID Clsid; unsigned long ClsCtx; } COMClass; } uType; } APPKEY; const unsigned long APPINFOFLAG_BASICUI = 0x0001; const unsigned long APPINFOFLAG_FULLUI = 0x0002; const unsigned long APPINFOFLAG_ALREADYMANAGED = 0x0004; const unsigned long APPINFOFLAG_ORPHAN = 0x0008; const unsigned long APPINFOFLAG_UNINSTALL = 0x0010; typedef [context_handle] void * PINSTALLCONTEXT; void PINSTALLCONTEXT_rundown( PINSTALLCONTEXT pInstallContext ); typedef struct { PWSTR pwszDeploymentId; PWSTR pwszDeploymentName; PWSTR pwszGPOName; PWSTR pwszProductCode; PWSTR pwszDescriptor; PWSTR pwszSetupCommand; DWORD Flags; } APPLICATION_INFO; typedef struct { DWORD Products; [size_is(Products)] APPLICATION_INFO * ApplicationInfo; } UNINSTALL_APPS; error_status_t InstallBegin( [in] handle_t hRpc, [in] APPKEY * pAppType, [out] PINSTALLCONTEXT * ppInstallContext, [out] APPLICATION_INFO * pInstallInfo, [out] UNINSTALL_APPS * pUninstallApps ); error_status_t InstallManageApp( [in] PINSTALLCONTEXT pInstallContext, [in] PWSTR pwszDeploymentId, [in] DWORD RollbackStatus, [out] boolean * pbInstall ); error_status_t InstallUnmanageApp( [in] PINSTALLCONTEXT pInstallContext, [in] PWSTR pwszDeploymentId, [in] boolean bUnadvertiseOnly ); error_status_t InstallEnd( [in] boolean bStatus, [in,out] PINSTALLCONTEXT * ppInstallContext ); error_status_t ARPRemoveApp( [in] handle_t hRpc, [in] PWSTR pwszProductCode, [in] DWORD ARPStatus ); typedef struct { PWSTR pszPackageName; PWSTR pszPublisher; DWORD dwVersionHi; DWORD dwVersionLo; DWORD dwRevision; GUID GpoId; PWSTR pszPolicyName; GUID ProductId; LANGID Language; PWSTR pszOwner; PWSTR pszCompany; PWSTR pszComments; PWSTR pszContact; PWSTR pszSupportUrl; unsigned long dwPathType; int bInstalled; } MANAGED_APP; typedef struct { DWORD Applications; [size_is(Applications)] MANAGED_APP* rgApps; } MANAGED_APPLIST; error_status_t GetManagedApps( [in] handle_t hRpc, [in, unique] GUID* pCategory, [in] DWORD dwQueryFlags, [in] DWORD dwInfoLevel, [out] MANAGED_APPLIST* pAppList ); error_status_t RsopReportInstallFailure( [in] PINSTALLCONTEXT pInstallContext, [in] PWSTR pwszDeploymentId, [in] DWORD dwEventId ); typedef unsigned long LCID; typedef PWSTR PWSTR_NOFREE; typedef struct _APPCATEGORY { LCID Locale; PWSTR_NOFREE pszDescription; GUID AppCategoryId; } APPCATEGORY; typedef struct _APPCATEGORYLIST { DWORD cCategory; [size_is(cCategory)] APPCATEGORY * pCategoryInfo; } APPCATEGORYLIST; error_status_t GetManagedAppCategories( [in] handle_t hRpc, [in,out] APPCATEGORYLIST* pCategoryList ); }