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.

269 lines
9.5 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1997 - 1999
  6. //
  7. // File: pstrpc.idl
  8. //
  9. //--------------------------------------------------------------------------
  10. import "unknwn.idl";
  11. import "pstypes.idl";
  12. import "basetsd.h";
  13. ////////////////////////////
  14. // Interfaces
  15. [
  16. uuid(C9378FF1-16F7-11d0-A0B2-00AA0061426A),
  17. version(1.0),
  18. pointer_default(unique)
  19. ]
  20. interface IPStoreProv
  21. {
  22. HRESULT SSPStoreEnumProviders(
  23. [in] handle_t h,
  24. [in] PST_CALL_CONTEXT CallerContext,
  25. [out] PPST_PROVIDERINFO* ppPSTInfo,
  26. [in] DWORD dwIndex,
  27. [in] DWORD dwFlags);
  28. HRESULT SSGetProvInfo(
  29. [in] handle_t h,
  30. [in] PST_PROVIDER_HANDLE hPSTProv,
  31. [in] PST_CALL_CONTEXT CallerContext,
  32. [out] PPST_PROVIDERINFO* ppPSTInfo,
  33. [in] DWORD dwFlags);
  34. HRESULT SSGetProvParam(
  35. [in] handle_t h,
  36. [in] PST_PROVIDER_HANDLE hPSTProv,
  37. [in] PST_CALL_CONTEXT CallerContext,
  38. [in] DWORD dwParam,
  39. [out] DWORD* pcbData,
  40. [out][size_is(,*pcbData)]
  41. BYTE** ppbData,
  42. [in] DWORD dwFlags);
  43. HRESULT SSSetProvParam(
  44. [in] handle_t h,
  45. [in] PST_PROVIDER_HANDLE hPSTProv,
  46. [in] PST_CALL_CONTEXT CallerContext,
  47. [in] DWORD dwParam,
  48. [in] DWORD cbData,
  49. [in][size_is(cbData)]
  50. BYTE* pbData,
  51. [in] DWORD dwFlags);
  52. HRESULT SSAcquireContext(
  53. [in] handle_t h,
  54. [in] PPST_PROVIDERID pProvID,
  55. [in] PST_CALL_CONTEXT CallerContext,
  56. [in] DWORD pidCaller,
  57. [out] PST_PROVIDER_HANDLE* phPSTProv,
  58. [in] DWORD_PTR lpReserved,
  59. [in] DWORD dwFlags);
  60. HRESULT SSReleaseContext(
  61. [in] handle_t h,
  62. [in] PST_PROVIDER_HANDLE hPSTProv,
  63. [in] PST_CALL_CONTEXT CallerContext,
  64. [in] DWORD dwFlags);
  65. // interface to communicate passwords from external sources
  66. // such as credential managers
  67. HRESULT SSPasswordInterface(
  68. [in] handle_t h,
  69. [in] DWORD dwParam,
  70. [in] DWORD cbData,
  71. [in][size_is(cbData)]
  72. BYTE* pbData);
  73. // Enumeration
  74. HRESULT SSEnumTypes(
  75. [in] handle_t h,
  76. [in] PST_PROVIDER_HANDLE hPSTProv,
  77. [in] PST_CALL_CONTEXT CallerContext,
  78. [in] PST_KEY Key,
  79. [out] GUID* pguidType,
  80. [in] DWORD dwIndex,
  81. [in] DWORD dwFlags);
  82. HRESULT SSEnumSubtypes(
  83. [in] handle_t h,
  84. [in] PST_PROVIDER_HANDLE hPSTProv,
  85. [in] PST_CALL_CONTEXT CallerContext,
  86. [in] PST_KEY Key,
  87. [in] const GUID* pguidType,
  88. [out] GUID* pguidSubtype,
  89. [in] DWORD dwIndex,
  90. [in] DWORD dwFlags);
  91. HRESULT SSEnumItems(
  92. [in] handle_t h,
  93. [in] PST_PROVIDER_HANDLE hPSTProv,
  94. [in] PST_CALL_CONTEXT CallerContext,
  95. [in] PST_KEY Key,
  96. [in] const GUID* pguidType,
  97. [in] const GUID* pguidSubtype,
  98. [out] LPWSTR* ppszItemName,
  99. [in] DWORD dwIndex,
  100. [in] DWORD dwFlags);
  101. // Type, Subtype info
  102. HRESULT SSGetTypeInfo(
  103. [in] handle_t h,
  104. [in] PST_PROVIDER_HANDLE hPSTProv,
  105. [in] PST_CALL_CONTEXT CallerContext,
  106. [in] PST_KEY Key,
  107. [in] const GUID* pguidType,
  108. [out] PPST_TYPEINFO* ppinfoType,
  109. [in] DWORD dwFlags);
  110. HRESULT SSGetSubtypeInfo(
  111. [in] handle_t h,
  112. [in] PST_PROVIDER_HANDLE hPSTProv,
  113. [in] PST_CALL_CONTEXT CallerContext,
  114. [in] PST_KEY Key,
  115. [in] const GUID* pguidType,
  116. [in] const GUID* pguidSubtype,
  117. [out] PPST_TYPEINFO* ppinfoSubtype,
  118. [in] DWORD dwFlags);
  119. // Creation
  120. HRESULT SSCreateType(
  121. [in] handle_t h,
  122. [in] PST_PROVIDER_HANDLE hPSTProv,
  123. [in] PST_CALL_CONTEXT CallerContext,
  124. [in] PST_KEY Key,
  125. [in] const GUID* pguidType,
  126. [in] PPST_TYPEINFO pinfoType,
  127. [in] DWORD dwFlags);
  128. HRESULT SSCreateSubtype(
  129. [in] handle_t h,
  130. [in] PST_PROVIDER_HANDLE hPSTProv,
  131. [in] PST_CALL_CONTEXT CallerContext,
  132. [in] PST_KEY Key,
  133. [in] const GUID* pguidType,
  134. [in] const GUID* pguidSubtype,
  135. [in] PPST_TYPEINFO pinfoSubtype,
  136. [in] PPST_ACCESSRULESET psRules,
  137. [in] DWORD dwFlags);
  138. // Deletion
  139. HRESULT SSDeleteType(
  140. [in] handle_t h,
  141. [in] PST_PROVIDER_HANDLE hPSTProv,
  142. [in] PST_CALL_CONTEXT CallerContext,
  143. [in] PST_KEY Key,
  144. [in] const GUID* pguidType,
  145. [in] DWORD dwFlags);
  146. HRESULT SSDeleteSubtype(
  147. [in] handle_t h,
  148. [in] PST_PROVIDER_HANDLE hPSTProv,
  149. [in] PST_CALL_CONTEXT CallerContext,
  150. [in] PST_KEY Key,
  151. [in] const GUID* pguidType,
  152. [in] const GUID* pguidSubtype,
  153. [in] DWORD dwFlags);
  154. HRESULT SSDeleteItem(
  155. [in] handle_t h,
  156. [in] PST_PROVIDER_HANDLE hPSTProv,
  157. [in] PST_CALL_CONTEXT CallerContext,
  158. [in] PST_KEY Key,
  159. [in] const GUID* pguidType,
  160. [in] const GUID* pguidSubtype,
  161. [in] LPCWSTR szItemName,
  162. [in] PPST_PROMPTINFO psPrompt,
  163. [in] DWORD dwFlags);
  164. // Item read/write
  165. HRESULT SSReadItem(
  166. [in] handle_t h,
  167. [in] PST_PROVIDER_HANDLE hPSTProv,
  168. [in] PST_CALL_CONTEXT CallerContext,
  169. [in] PST_KEY Key,
  170. [in] const GUID* pguidType,
  171. [in] const GUID* pguidSubtype,
  172. [in] LPCWSTR szItemName,
  173. [out] DWORD* pcbData,
  174. [out][size_is(,*pcbData)]
  175. BYTE** ppbData,
  176. [in] PPST_PROMPTINFO psPrompt,
  177. [in] DWORD dwFlags);
  178. HRESULT SSWriteItem(
  179. [in] handle_t h,
  180. [in] PST_PROVIDER_HANDLE hPSTProv,
  181. [in] PST_CALL_CONTEXT CallerContext,
  182. [in] PST_KEY Key,
  183. [in] const GUID* pguidType,
  184. [in] const GUID* pguidSubtype,
  185. [in] LPCWSTR szItemName,
  186. [in] DWORD cbData,
  187. [in][size_is(cbData)]
  188. BYTE* pbData,
  189. [in] PPST_PROMPTINFO psPrompt,
  190. [in] DWORD dwDefaultConfirmationStyle,
  191. [in] DWORD dwFlags);
  192. HRESULT SSOpenItem(
  193. [in] handle_t h,
  194. [in] PST_PROVIDER_HANDLE hPSTProv,
  195. [in] PST_CALL_CONTEXT CallerContext,
  196. [in] PST_KEY Key,
  197. [in] const GUID* pguidType,
  198. [in] const GUID* pguidSubtype,
  199. [in] LPCWSTR szItemName,
  200. [in] PST_ACCESSMODE ModeFlags,
  201. [in] PPST_PROMPTINFO psPrompt,
  202. [in] DWORD dwFlags);
  203. HRESULT SSCloseItem(
  204. [in] handle_t h,
  205. [in] PST_PROVIDER_HANDLE hPSTProv,
  206. [in] PST_CALL_CONTEXT CallerContext,
  207. [in] PST_KEY Key,
  208. [in] const GUID* pguidType,
  209. [in] const GUID* pguidSubtype,
  210. [in] LPCWSTR szItemName,
  211. [in] DWORD dwFlags);
  212. HRESULT SSReadAccessRuleset(
  213. [in] handle_t h,
  214. [in] PST_PROVIDER_HANDLE hPSTProv,
  215. [in] PST_CALL_CONTEXT CallerContext,
  216. [in] PST_KEY Key,
  217. [in] const GUID* pguidType,
  218. [in] const GUID* pguidSubtype,
  219. [out] PPST_ACCESSRULESET* ppsRules,
  220. [in] DWORD dwFlags);
  221. HRESULT SSWriteAccessRuleset(
  222. [in] handle_t h,
  223. [in] PST_PROVIDER_HANDLE hPSTProv,
  224. [in] PST_CALL_CONTEXT CallerContext,
  225. [in] PST_KEY Key,
  226. [in] const GUID* pguidType,
  227. [in] const GUID* pguidSubtype,
  228. [in] PPST_ACCESSRULESET psRules,
  229. [in] DWORD dwFlags);
  230. }