Source code of Windows XP (NT5)
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.

211 lines
5.6 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 2000.
  5. //
  6. // File:
  7. // partitions.idl
  8. //
  9. // Contents:
  10. // Definition of interfaces for partitions.
  11. //
  12. // History:
  13. // SteveJam 01-22-2000 Created
  14. //
  15. //--------------------------------------------------------------------------
  16. #ifndef DO_NO_IMPORTS
  17. import "objidl.idl";
  18. #endif
  19. // some existing interfaces consolidated here from CLBCatQ.idl (COM+) and cat_int.idl (ole32)
  20. // IUserToken: interface on user token object
  21. [
  22. object,
  23. local,
  24. pointer_default(unique),
  25. uuid(000001FC-0000-0000-C000-000000000046)
  26. ]
  27. interface IUserToken : IUnknown
  28. {
  29. HRESULT GetUserClassesRootKey ([out] HKEY *phKey);
  30. HRESULT ReleaseUserClassesRootKey (void);
  31. HRESULT GetUserSid ([out] BYTE **ppSid, [out] USHORT *pcbSid);
  32. };
  33. // IPartitionProperty: interface on partition object and partition context property
  34. [
  35. object,
  36. local,
  37. pointer_default(unique),
  38. uuid(000001F2-0000-0000-C000-000000000046)
  39. ]
  40. interface IPartitionProperty : IUnknown
  41. {
  42. HRESULT GetPartitionID([out] GUID* pGuid);
  43. HRESULT SetPartitionID([in] GUID* pGuid);
  44. }
  45. // IPartitionLookup: interface on catalog object for local partition lookup and validation
  46. [
  47. object,
  48. local,
  49. pointer_default(unique),
  50. uuid(000001F8-0000-0000-C000-000000000046)
  51. ]
  52. interface IPartitionLookup : IUnknown
  53. {
  54. HRESULT GetDefaultPartitionForUser ([out] IPartitionProperty** ppPartitionProperty);
  55. HRESULT IsPartitionValidForUser ([in] GUID* pguidPartitionId, [out] BOOL* pfIsPartitionValid);
  56. HRESULT GetDefaultPartitionForUserByToken ([in] IUserToken *pUserToken, [out] IPartitionProperty** ppPartitionProperty);
  57. HRESULT IsPartitionValidForUserByToken ([in] IUserToken *pUserToken, [in] GUID* pguidPartitionId, [out] BOOL* pfIsPartitionValid);
  58. HRESULT IsLocalStoreEnabled([out] BOOL *pfEnabled);
  59. HRESULT IsDSLookupEnabled([out] BOOL *pfEnabled);
  60. }
  61. // IReplaceClassInfo: interface on activators to get replacement class info
  62. [
  63. object,
  64. local,
  65. pointer_default(unique),
  66. uuid(000001FB-0000-0000-C000-000000000046)
  67. ]
  68. interface IReplaceClassInfo : IUnknown
  69. {
  70. HRESULT GetClassInfo ([in] REFGUID guidConfiguredClsid, [in] REFIID riid, [out] void** ppv);
  71. }
  72. // IGetCatalogObject: interface on act props to get the catalog
  73. [
  74. object,
  75. local,
  76. pointer_default(unique),
  77. uuid(000001FE-0000-0000-C000-000000000046)
  78. ]
  79. interface IGetCatalogObject : IUnknown
  80. {
  81. HRESULT GetCatalogObject ([in] REFIID riid, [out] void** ppv);
  82. }
  83. // IComCatalogInternal: Required interface on catalog object.
  84. [
  85. object,
  86. local,
  87. pointer_default(unique),
  88. uuid(a6304910-4115-11d2-8133-0060089f5fed)
  89. ]
  90. interface IComCatalogInternal : IUnknown
  91. {
  92. HRESULT GetClassInfo ([in] IUserToken *pUserToken,
  93. [in] REFGUID guidConfiguredClsid,
  94. [in] REFIID riid,
  95. [out] void** ppv,
  96. [in] void* pvReserved);
  97. HRESULT GetApplicationInfo ([in] IUserToken *pUserToken,
  98. [in] REFGUID guidApplId,
  99. [in] REFIID riid,
  100. [out] void** ppv,
  101. [in] void* pvReserved);
  102. HRESULT GetProcessInfo ([in] IUserToken *pUserToken,
  103. [in] REFGUID guidProcess,
  104. [in] REFIID riid,
  105. [out] void** ppv,
  106. [in] void* pvReserved);
  107. HRESULT GetServerGroupInfo ([in] IUserToken *pUserToken,
  108. [in] REFGUID guidServerGroup,
  109. [in] REFIID riid,
  110. [out] void** ppv,
  111. [in] void* pvReserved);
  112. HRESULT GetRetQueueInfo ([in] IUserToken *pUserToken,
  113. [in,string] WCHAR* wszFormatName,
  114. [in] REFIID riid,
  115. [out] void** ppv,
  116. [in] void* pvReserved);
  117. HRESULT GetApplicationInfoForExe ([in] IUserToken *pUserToken,
  118. [in,string] WCHAR* pwszExeName,
  119. [in] REFIID riid,
  120. [out] void** ppv,
  121. [in] void* pvReserved);
  122. HRESULT GetTypeLibrary ([in] IUserToken *pUserToken,
  123. [in] REFGUID guidTypeLib,
  124. [in] REFIID riid,
  125. [out] void** ppv,
  126. [in] void* pvReserved);
  127. HRESULT GetInterfaceInfo ([in] IUserToken *pUserToken,
  128. [in] REFIID iidInterface,
  129. [in] REFIID riid,
  130. [out] void** ppv,
  131. [in] void* pComCatalog);
  132. HRESULT FlushCache();
  133. HRESULT GetClassInfoFromProgId ([in] IUserToken *pUserToken,
  134. [in] WCHAR *pwszProgID,
  135. [in] REFIID riid,
  136. [out] void **ppv,
  137. [in] void* pComCatalog);
  138. };
  139. // IComCatalog2Internal: interface on catalog object for partition and application queries
  140. [
  141. object,
  142. local,
  143. pointer_default(unique),
  144. uuid(3310dab4-edc0-4ce9-8a9c-8fea2980fd89)
  145. ]
  146. interface IComCatalog2Internal : IUnknown
  147. {
  148. HRESULT GetClassInfoByPartition ([in] IUserToken *pUserToken, [in] REFGUID guidConfiguredClsid,
  149. [in] REFGUID guidPartitionId, [in] REFIID riid, [out] void** ppv, [in] void* pComCatalog);
  150. HRESULT GetClassInfoByApplication ([in] IUserToken *pUserToken, [in] REFGUID guidConfiguredClsid,
  151. [in] REFGUID guidPartitionId, [in] REFGUID guidApplId, [in] REFIID riid, [out] void** ppv, [in] void* pComCatalog);
  152. }
  153. // IComCatalogLocation: interface for notifying catalogs of their location (i.e., in SCM or not)
  154. [
  155. object,
  156. local,
  157. pointer_default(unique),
  158. uuid(fae51051-9887-47f2-af44-7392bf90039b)
  159. ]
  160. interface IComCatalogLocation : IUnknown
  161. {
  162. HRESULT SetCatalogLocation ([in] BOOL bInSCM);
  163. HRESULT GetCatalogLocation ([out] BOOL* pbInSCM);
  164. }
  165. // ICacheControl: debugging interface on some cachable objects
  166. [
  167. object,
  168. local,
  169. pointer_default(unique),
  170. uuid(59a47420-0094-11d2-bbf7-0060089f5fed)
  171. ]
  172. interface ICacheControl : IUnknown
  173. {
  174. ULONG CacheAddRef(void);
  175. ULONG CacheRelease(void);
  176. }