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.

212 lines
5.9 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. HRESULT GetUserToken ([out] HANDLE* phToken);
  33. };
  34. // IPartitionProperty: interface on partition object and partition context property
  35. [
  36. object,
  37. local,
  38. pointer_default(unique),
  39. uuid(000001F2-0000-0000-C000-000000000046)
  40. ]
  41. interface IPartitionProperty : IUnknown
  42. {
  43. HRESULT GetPartitionID([out] GUID* pGuid);
  44. HRESULT SetPartitionID([in] GUID* pGuid);
  45. }
  46. // IPartitionLookup: interface on catalog object for local partition lookup and validation
  47. [
  48. object,
  49. local,
  50. pointer_default(unique),
  51. uuid(000001F8-0000-0000-C000-000000000046)
  52. ]
  53. interface IPartitionLookup : IUnknown
  54. {
  55. HRESULT GetDefaultPartitionForUser ([out] IPartitionProperty** ppPartitionProperty);
  56. HRESULT IsPartitionValidForUser ([in] GUID* pguidPartitionId, [out] BOOL* pfIsPartitionValid);
  57. HRESULT GetDefaultPartitionForUserByToken ([in] IUserToken *pUserToken, [out] IPartitionProperty** ppPartitionProperty);
  58. HRESULT IsPartitionValidForUserByToken ([in] IUserToken *pUserToken, [in] GUID* pguidPartitionId, [out] BOOL* pfIsPartitionValid);
  59. HRESULT IsLocalStoreEnabled([out] BOOL *pfEnabled);
  60. HRESULT IsDSLookupEnabled([out] BOOL *pfEnabled);
  61. }
  62. // IReplaceClassInfo: interface on activators to get replacement class info
  63. [
  64. object,
  65. local,
  66. pointer_default(unique),
  67. uuid(000001FB-0000-0000-C000-000000000046)
  68. ]
  69. interface IReplaceClassInfo : IUnknown
  70. {
  71. HRESULT GetClassInfo ([in] REFGUID guidConfiguredClsid, [in] REFIID riid, [out] void** ppv);
  72. }
  73. // IGetCatalogObject: interface on act props to get the catalog
  74. [
  75. object,
  76. local,
  77. pointer_default(unique),
  78. uuid(000001FE-0000-0000-C000-000000000046)
  79. ]
  80. interface IGetCatalogObject : IUnknown
  81. {
  82. HRESULT GetCatalogObject ([in] REFIID riid, [out] void** ppv);
  83. }
  84. // IComCatalogInternal: Required interface on catalog object.
  85. [
  86. object,
  87. local,
  88. pointer_default(unique),
  89. uuid(a6304910-4115-11d2-8133-0060089f5fed)
  90. ]
  91. interface IComCatalogInternal : IUnknown
  92. {
  93. HRESULT GetClassInfo ([in] IUserToken *pUserToken,
  94. [in] REFGUID guidConfiguredClsid,
  95. [in] REFIID riid,
  96. [out] void** ppv,
  97. [in] void* pvReserved);
  98. HRESULT GetApplicationInfo ([in] IUserToken *pUserToken,
  99. [in] REFGUID guidApplId,
  100. [in] REFIID riid,
  101. [out] void** ppv,
  102. [in] void* pvReserved);
  103. HRESULT GetProcessInfo ([in] IUserToken *pUserToken,
  104. [in] REFGUID guidProcess,
  105. [in] REFIID riid,
  106. [out] void** ppv,
  107. [in] void* pvReserved);
  108. HRESULT GetServerGroupInfo ([in] IUserToken *pUserToken,
  109. [in] REFGUID guidServerGroup,
  110. [in] REFIID riid,
  111. [out] void** ppv,
  112. [in] void* pvReserved);
  113. HRESULT GetRetQueueInfo ([in] IUserToken *pUserToken,
  114. [in,string] WCHAR* wszFormatName,
  115. [in] REFIID riid,
  116. [out] void** ppv,
  117. [in] void* pvReserved);
  118. HRESULT GetApplicationInfoForExe ([in] IUserToken *pUserToken,
  119. [in,string] WCHAR* pwszExeName,
  120. [in] REFIID riid,
  121. [out] void** ppv,
  122. [in] void* pvReserved);
  123. HRESULT GetTypeLibrary ([in] IUserToken *pUserToken,
  124. [in] REFGUID guidTypeLib,
  125. [in] REFIID riid,
  126. [out] void** ppv,
  127. [in] void* pvReserved);
  128. HRESULT GetInterfaceInfo ([in] IUserToken *pUserToken,
  129. [in] REFIID iidInterface,
  130. [in] REFIID riid,
  131. [out] void** ppv,
  132. [in] void* pComCatalog);
  133. HRESULT FlushCache();
  134. HRESULT GetClassInfoFromProgId ([in] IUserToken *pUserToken,
  135. [in] WCHAR *pwszProgID,
  136. [in] REFIID riid,
  137. [out] void **ppv,
  138. [in] void* pComCatalog);
  139. };
  140. // IComCatalog2Internal: interface on catalog object for partition and application queries
  141. [
  142. object,
  143. local,
  144. pointer_default(unique),
  145. uuid(3310dab4-edc0-4ce9-8a9c-8fea2980fd89)
  146. ]
  147. interface IComCatalog2Internal : IUnknown
  148. {
  149. HRESULT GetClassInfoByPartition ([in] IUserToken *pUserToken, [in] REFGUID guidConfiguredClsid,
  150. [in] REFGUID guidPartitionId, [in] REFIID riid, [out] void** ppv, [in] void* pComCatalog);
  151. HRESULT GetClassInfoByApplication ([in] IUserToken *pUserToken, [in] REFGUID guidConfiguredClsid,
  152. [in] REFGUID guidPartitionId, [in] REFGUID guidApplId, [in] REFIID riid, [out] void** ppv, [in] void* pComCatalog);
  153. }
  154. // IComCatalogLocation: interface for notifying catalogs of their location (i.e., in SCM or not)
  155. [
  156. object,
  157. local,
  158. pointer_default(unique),
  159. uuid(fae51051-9887-47f2-af44-7392bf90039b)
  160. ]
  161. interface IComCatalogLocation : IUnknown
  162. {
  163. HRESULT SetCatalogLocation ([in] BOOL bInSCM);
  164. HRESULT GetCatalogLocation ([out] BOOL* pbInSCM);
  165. }
  166. // ICacheControl: debugging interface on some cachable objects
  167. [
  168. object,
  169. local,
  170. pointer_default(unique),
  171. uuid(59a47420-0094-11d2-bbf7-0060089f5fed)
  172. ]
  173. interface ICacheControl : IUnknown
  174. {
  175. ULONG CacheAddRef(void);
  176. ULONG CacheRelease(void);
  177. }