Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

203 lines
5.3 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation 1998.
  5. //
  6. // app.idl
  7. //
  8. // Methods to the application management service.
  9. //
  10. //--------------------------------------------------------------------------
  11. [
  12. uuid(8c7daf44-b6dc-11d1-9a4c-0020af6e7c57),
  13. version(1.0)
  14. ]
  15. interface appmgmt
  16. {
  17. cpp_quote("#ifndef GUID_DEFINED")
  18. cpp_quote("#define GUID_DEFINED")
  19. typedef struct _GUID
  20. {
  21. unsigned long Data1;
  22. unsigned short Data2;
  23. unsigned short Data3;
  24. unsigned char Data4[8];
  25. } GUID;
  26. cpp_quote("#endif // !GUID_DEFINED")
  27. const unsigned long APPNAME = 1;
  28. const unsigned long FILEEXT = 2;
  29. const unsigned long PROGID = 3;
  30. const unsigned long COMCLASS = 4;
  31. typedef [string] wchar_t * PWSTR;
  32. typedef unsigned long DWORD;
  33. typedef unsigned short LANGID;
  34. typedef struct _APPKEY
  35. {
  36. unsigned long Type;
  37. unsigned long ProcessorArchitecture;
  38. [switch_is(Type), switch_type(unsigned long)] union
  39. {
  40. [case(APPNAME)]
  41. struct
  42. {
  43. PWSTR Name;
  44. GUID PolicyId;
  45. } AppName;
  46. [case(FILEEXT)]
  47. PWSTR FileExt;
  48. [case(PROGID)]
  49. PWSTR ProgId;
  50. [case(COMCLASS)]
  51. struct
  52. {
  53. GUID Clsid;
  54. unsigned long ClsCtx;
  55. } COMClass;
  56. } uType;
  57. } APPKEY;
  58. const unsigned long APPINFOFLAG_BASICUI = 0x0001;
  59. const unsigned long APPINFOFLAG_FULLUI = 0x0002;
  60. const unsigned long APPINFOFLAG_ALREADYMANAGED = 0x0004;
  61. const unsigned long APPINFOFLAG_ORPHAN = 0x0008;
  62. const unsigned long APPINFOFLAG_UNINSTALL = 0x0010;
  63. typedef [context_handle] void * PINSTALLCONTEXT;
  64. void PINSTALLCONTEXT_rundown( PINSTALLCONTEXT pInstallContext );
  65. typedef struct
  66. {
  67. PWSTR pwszDeploymentId;
  68. PWSTR pwszDeploymentName;
  69. PWSTR pwszGPOName;
  70. PWSTR pwszProductCode;
  71. PWSTR pwszDescriptor;
  72. PWSTR pwszSetupCommand;
  73. DWORD Flags;
  74. } APPLICATION_INFO;
  75. typedef struct
  76. {
  77. DWORD Products;
  78. [size_is(Products)] APPLICATION_INFO * ApplicationInfo;
  79. } UNINSTALL_APPS;
  80. error_status_t
  81. InstallBegin(
  82. [in] handle_t hRpc,
  83. [in] APPKEY * pAppType,
  84. [out] PINSTALLCONTEXT * ppInstallContext,
  85. [out] APPLICATION_INFO * pInstallInfo,
  86. [out] UNINSTALL_APPS * pUninstallApps
  87. );
  88. error_status_t
  89. InstallManageApp(
  90. [in] PINSTALLCONTEXT pInstallContext,
  91. [in] PWSTR pwszDeploymentId,
  92. [in] DWORD RollbackStatus,
  93. [out] boolean * pbInstall
  94. );
  95. error_status_t
  96. InstallUnmanageApp(
  97. [in] PINSTALLCONTEXT pInstallContext,
  98. [in] PWSTR pwszDeploymentId,
  99. [in] boolean bUnadvertiseOnly
  100. );
  101. error_status_t
  102. InstallEnd(
  103. [in] boolean bStatus,
  104. [in,out] PINSTALLCONTEXT * ppInstallContext
  105. );
  106. error_status_t
  107. ARPRemoveApp(
  108. [in] handle_t hRpc,
  109. [in] PWSTR pwszProductCode,
  110. [in] DWORD ARPStatus
  111. );
  112. typedef struct
  113. {
  114. PWSTR pszPackageName;
  115. PWSTR pszPublisher;
  116. DWORD dwVersionHi;
  117. DWORD dwVersionLo;
  118. DWORD dwRevision;
  119. GUID GpoId;
  120. PWSTR pszPolicyName;
  121. GUID ProductId;
  122. LANGID Language;
  123. PWSTR pszOwner;
  124. PWSTR pszCompany;
  125. PWSTR pszComments;
  126. PWSTR pszContact;
  127. PWSTR pszSupportUrl;
  128. unsigned long dwPathType;
  129. int bInstalled;
  130. } MANAGED_APP;
  131. typedef struct
  132. {
  133. DWORD Applications;
  134. [size_is(Applications)] MANAGED_APP* rgApps;
  135. } MANAGED_APPLIST;
  136. error_status_t
  137. GetManagedApps(
  138. [in] handle_t hRpc,
  139. [in, unique] GUID* pCategory,
  140. [in] DWORD dwQueryFlags,
  141. [in] DWORD dwInfoLevel,
  142. [out] MANAGED_APPLIST* pAppList
  143. );
  144. error_status_t
  145. RsopReportInstallFailure(
  146. [in] PINSTALLCONTEXT pInstallContext,
  147. [in] PWSTR pwszDeploymentId,
  148. [in] DWORD dwEventId
  149. );
  150. typedef unsigned long LCID;
  151. typedef PWSTR PWSTR_NOFREE;
  152. typedef struct _APPCATEGORY
  153. {
  154. LCID Locale;
  155. PWSTR_NOFREE pszDescription;
  156. GUID AppCategoryId;
  157. } APPCATEGORY;
  158. typedef struct _APPCATEGORYLIST
  159. {
  160. DWORD cCategory;
  161. [size_is(cCategory)] APPCATEGORY * pCategoryInfo;
  162. } APPCATEGORYLIST;
  163. error_status_t
  164. GetManagedAppCategories(
  165. [in] handle_t hRpc,
  166. [in,out] APPCATEGORYLIST* pCategoryList
  167. );
  168. }