pstore.h
Upload User: caisha3
Upload Date: 2013-09-21
Package Size: 208739k
Code Size: 53k
Category:

Windows Develop

Development Platform:

Visual C++

  1. /*++
  2. Copyright (c) 1996, 1997  Microsoft Corporation
  3. Module Name:
  4.     pstore.h
  5. Abstract:
  6.     This module defines the Protected Storage COM interface and associated
  7.     data structures.
  8. Author:
  9.     Scott Field (sfield)    13-Mar-97
  10. --*/
  11. #ifndef __PSTORE_H__
  12. #define __PSTORE_H__
  13. /*
  14.     Typedefs, values 
  15. */
  16. // provider flags
  17. // provider capabilities
  18. typedef DWORD PST_PROVIDERCAPABILITIES;
  19. #define PST_PC_PFX              0x00000001
  20. #define PST_PC_HARDWARE         0x00000002
  21. #define PST_PC_SMARTCARD        0x00000004
  22. #define PST_PC_PCMCIA           0x00000008
  23. #define PST_PC_MULTIPLE_REPOSITORIES    0x00000010
  24. #define PST_PC_ROAMABLE         0x00000020
  25. // NYI (not yet implemented)
  26. typedef DWORD PST_REPOSITORYCAPABILITIES;
  27. #define PST_RC_REMOVABLE        0x80000000
  28. // provider storage area 
  29. typedef DWORD PST_KEY;
  30. #define PST_KEY_CURRENT_USER    0x00000000
  31. #define PST_KEY_LOCAL_MACHINE   0x00000001
  32. /* 
  33.     dwDefaultConfirmationStyle flags
  34. */
  35. //
  36. // allows user to choose confirmation style
  37. //
  38. #define     PST_CF_DEFAULT              0x00000000
  39. //
  40. // forces silent item creation 
  41. //
  42. #define     PST_CF_NONE                 0x00000001
  43. /*
  44.     dwPromptFlags
  45. */
  46. //
  47. // app forces confirmation to be shown
  48. //
  49. #define     PST_PF_ALWAYS_SHOW          0x00000001
  50. /* 
  51.     dwFlags values
  52. */
  53. //
  54. // Allows caller to specify creation not overwrite 
  55. // of item during WriteItem call
  56. //
  57. #define     PST_NO_OVERWRITE            0x00000002
  58. //
  59. // specifies insecure data stream to be written/read
  60. // there is no protection or guarantees for this data
  61. // flag only valid during item read/write calls
  62. // default: item calls are secure
  63. //
  64. #define     PST_UNRESTRICTED_ITEMDATA   0x00000004
  65. /* 
  66.     Security masks, rule modifiers 
  67. */
  68. //
  69. // models access after NT access mask
  70. //
  71. // read, write
  72. typedef DWORD PST_ACCESSMODE;
  73. #define     PST_READ                0x0001
  74. #define     PST_WRITE               0x0002
  75. // PST_ACCESSCLAUSETYPE 
  76. // memhash, diskhash, authenticode, etc
  77. typedef DWORD PST_ACCESSCLAUSETYPE;
  78. //
  79. // pbClauseData points to PST_AUTHENTICODEDATA structure.
  80. //
  81. #define     PST_AUTHENTICODE            1
  82. //
  83. // pbClauseData points to PST_BINARYCHECKDATA structure.
  84. //
  85. #define     PST_BINARY_CHECK            2
  86. //
  87. // pbClauseData points to valid Windows NT security descriptor.
  88. // note that performance is improved on Set operations if the security
  89. // descriptor is in self-relative format, with valid owner and group Sids
  90. // (non-NULL).
  91. //
  92. #define     PST_SECURITY_DESCRIPTOR     4
  93. //
  94. // pbClauseData is in self-relative format
  95. // (for internal use only)
  96. //
  97. #define     PST_SELF_RELATIVE_CLAUSE    0x80000000L
  98. //
  99. // currently access clause modifiers - NOT to be or'd together
  100. //
  101. //
  102. // specified image is the immediate caller, and is an application (.exe)
  103. //
  104. #define     PST_AC_SINGLE_CALLER        0
  105. //
  106. // specified image is not necessary the immediate caller, and is an
  107. // application (.exe)
  108. //
  109. #define     PST_AC_TOP_LEVEL_CALLER     1
  110. //
  111. // specified image is the immediate caller.  May be
  112. // an application (.exe) or a .dll
  113. //
  114. #define     PST_AC_IMMEDIATE_CALLER     2
  115. /*
  116.     Provider Parameters
  117. */
  118. //
  119. // flush the internal cache of passwords -- temporary?
  120. //
  121. #define     PST_PP_FLUSH_PW_CACHE       0x1
  122. /*
  123.     Provider Defns
  124. */
  125. //
  126. // Microsoft Base Provider (MS_BASE_PSTPROVIDER...)
  127. //
  128. #define MS_BASE_PSTPROVIDER_NAME            L"System Protected Storage"
  129. // {8A078C30-3755-11d0-A0BD-00AA0061426A}
  130. #define MS_BASE_PSTPROVIDER_ID              { 0x8a078c30, 0x3755, 0x11d0, { 0xa0, 0xbd, 0x0, 0xaa, 0x0, 0x61, 0x42, 0x6a } }
  131. #define MS_BASE_PSTPROVIDER_SZID            L"8A078C30-3755-11d0-A0BD-00AA0061426A"
  132. //
  133. // Microsoft PFX Provider (MS_PFX_PSTPROVIDER...)
  134. //
  135. #define MS_PFX_PSTPROVIDER_NAME             L"PFX Storage Provider"
  136. // {3ca94f30-7ac1-11d0-8c42-00c04fc299eb}
  137. #define MS_PFX_PSTPROVIDER_ID               { 0x3ca94f30, 0x7ac1, 0x11d0, {0x8c, 0x42, 0x00, 0xc0, 0x4f, 0xc2, 0x99, 0xeb} }
  138. #define MS_PFX_PSTPROVIDER_SZID             L"3ca94f30-7ac1-11d0-8c42-00c04fc299eb"
  139. /*
  140.     Globally registered Type/Subtype guid/name pairs
  141. */
  142. #define PST_CONFIGDATA_TYPE_STRING              L"Configuration Data"
  143. // 8ec99652-8909-11d0-8c4d-00c04fc297eb
  144. #define PST_CONFIGDATA_TYPE_GUID                        
  145. {   0x8ec99652,                                         
  146.     0x8909,                                             
  147.     0x11d0,                                             
  148.     {0x8c, 0x4d, 0x00, 0xc0, 0x4f, 0xc2, 0x97, 0xeb}    
  149. }
  150. #define PST_PROTECTEDSTORAGE_SUBTYPE_STRING     L"Protected Storage"
  151. // d3121b8e-8a7d-11d0-8c4f-00c04fc297eb 
  152. #define PST_PROTECTEDSTORAGE_SUBTYPE_GUID               
  153. {   0xd3121b8e,                                         
  154.     0x8a7d,                                             
  155.     0x11d0,                                             
  156.     {0x8c, 0x4f, 0x00, 0xc0, 0x4f, 0xc2, 0x97, 0xeb}    
  157. }
  158. #define PST_PSTORE_PROVIDERS_SUBTYPE_STRING     L"Protected Storage Provider List"
  159. // 8ed17a64-91d0-11d0-8c43-00c04fc2c621
  160. #define PST_PSTORE_PROVIDERS_SUBTYPE_GUID               
  161. {                                                       
  162.     0x8ed17a64,                                         
  163.     0x91d0,                                             
  164.     0x11d0,                                             
  165.     {0x8c, 0x43, 0x00, 0xc0, 0x4f, 0xc2, 0xc6, 0x21}    
  166. }
  167. //
  168. // error codes
  169. //
  170. #ifndef PST_E_OK
  171. #define PST_E_OK                        _HRESULT_TYPEDEF_(0x00000000L)
  172. #define PST_E_FAIL                      _HRESULT_TYPEDEF_(0x800C0001L)
  173. #define PST_E_PROV_DLL_NOT_FOUND        _HRESULT_TYPEDEF_(0x800C0002L)
  174. #define PST_E_INVALID_HANDLE            _HRESULT_TYPEDEF_(0x800C0003L)
  175. #define PST_E_TYPE_EXISTS               _HRESULT_TYPEDEF_(0x800C0004L)
  176. #define PST_E_TYPE_NO_EXISTS            _HRESULT_TYPEDEF_(0x800C0005L)
  177. #define PST_E_INVALID_RULESET           _HRESULT_TYPEDEF_(0x800C0006L)
  178. #define PST_E_NO_PERMISSIONS            _HRESULT_TYPEDEF_(0x800C0007L)
  179. #define PST_E_STORAGE_ERROR             _HRESULT_TYPEDEF_(0x800C0008L)
  180. #define PST_E_CALLER_NOT_VERIFIED       _HRESULT_TYPEDEF_(0x800C0009L)
  181. #define PST_E_WRONG_PASSWORD            _HRESULT_TYPEDEF_(0x800C000AL)
  182. #define PST_E_DISK_IMAGE_MISMATCH       _HRESULT_TYPEDEF_(0x800C000BL)
  183. // 000C pending
  184. #define PST_E_UNKNOWN_EXCEPTION         _HRESULT_TYPEDEF_(0x800C000DL)
  185. #define PST_E_BAD_FLAGS                 _HRESULT_TYPEDEF_(0x800C000EL)
  186. #define PST_E_ITEM_EXISTS               _HRESULT_TYPEDEF_(0x800C000FL)
  187. #define PST_E_ITEM_NO_EXISTS            _HRESULT_TYPEDEF_(0x800C0010L)
  188. #define PST_E_SERVICE_UNAVAILABLE       _HRESULT_TYPEDEF_(0x800C0011L)
  189. #define PST_E_NOTEMPTY                  _HRESULT_TYPEDEF_(0x800C0012L)
  190. #define PST_E_INVALID_STRING            _HRESULT_TYPEDEF_(0x800C0013L)
  191. #define PST_E_STATE_INVALID             _HRESULT_TYPEDEF_(0x800C0014L)
  192. #define PST_E_NOT_OPEN                  _HRESULT_TYPEDEF_(0x800C0015L)
  193. #define PST_E_ALREADY_OPEN              _HRESULT_TYPEDEF_(0x800C0016L)
  194. #define PST_E_NYI                       _HRESULT_TYPEDEF_(0x800C0F00L)
  195. #define MIN_PST_ERROR                   0x800C0001
  196. #define MAX_PST_ERROR                   0x800C0F00
  197. #endif  // !PST_OK
  198. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  199. //@@MIDL_FILE_HEADING(  )
  200. #include "rpc.h"
  201. #include "rpcndr.h"
  202. #ifdef __cplusplus
  203. extern "C"{
  204. #endif 
  205. /* Forward Declarations */ 
  206. /* header files for imported files */
  207. #include "wtypes.h"
  208. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  209. void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 
  210. /****************************************
  211.  * Generated header for interface: __MIDL__intf_0000
  212.  * at Wed Apr 23 23:56:10 1997
  213.  * using MIDL 3.00.44
  214.  ****************************************/
  215. /* [local] */ 
  216. typedef DWORD PST_PROVIDERCAPABILITIES;
  217. typedef DWORD PST_REPOSITORYCAPABILITIES;
  218. typedef DWORD PST_KEY;
  219. typedef DWORD PST_ACCESSMODE;
  220. typedef DWORD PST_ACCESSCLAUSETYPE;
  221. typedef GUID UUID;
  222. typedef ULARGE_INTEGER PST_PROVIDER_HANDLE;
  223. typedef GUID PST_PROVIDERID;
  224. typedef PST_PROVIDERID __RPC_FAR *PPST_PROVIDERID;
  225. typedef struct  _PST_PROVIDERINFO
  226.     {
  227.     DWORD cbSize;
  228.     PST_PROVIDERID ID;
  229.     PST_PROVIDERCAPABILITIES Capabilities;
  230.     LPWSTR szProviderName;
  231.     } PST_PROVIDERINFO;
  232. typedef struct _PST_PROVIDERINFO __RPC_FAR *PPST_PROVIDERINFO;
  233. typedef struct  _PST_TYPEINFO
  234.     {
  235.     DWORD cbSize;
  236.     LPWSTR szDisplayName;
  237.     } PST_TYPEINFO;
  238. typedef struct _PST_TYPEINFO __RPC_FAR *PPST_TYPEINFO;
  239. typedef struct  _PST_PROMPTINFO
  240.     {
  241.     DWORD cbSize;
  242.     DWORD dwPromptFlags;
  243.     HWND  hwndApp;
  244.     LPCWSTR szPrompt;
  245.     } PST_PROMPTINFO;
  246. typedef struct _PST_PROMPTINFO __RPC_FAR *PPST_PROMPTINFO;
  247. typedef struct  _PST_ACCESSCLAUSE
  248.     {
  249.     DWORD cbSize;
  250.     PST_ACCESSCLAUSETYPE ClauseType;
  251.     DWORD cbClauseData;
  252.     /* [size_is] */ VOID __RPC_FAR *pbClauseData;
  253.     } PST_ACCESSCLAUSE;
  254. typedef struct _PST_ACCESSCLAUSE __RPC_FAR *PPST_ACCESSCLAUSE;
  255. typedef struct  _PST_ACCESSRULE
  256.     {
  257.     DWORD cbSize;
  258.     PST_ACCESSMODE AccessModeFlags;
  259.     DWORD cClauses;
  260.     /* [size_is] */ PST_ACCESSCLAUSE __RPC_FAR *rgClauses;
  261.     } PST_ACCESSRULE;
  262. typedef struct _PST_ACCESSRULE __RPC_FAR *PPST_ACCESSRULE;
  263. typedef struct  _PST_ACCESSRULESET
  264.     {
  265.     DWORD cbSize;
  266.     DWORD cRules;
  267.     /* [size_is] */ PST_ACCESSRULE __RPC_FAR *rgRules;
  268.     } PST_ACCESSRULESET;
  269. typedef struct _PST_ACCESSRULESET __RPC_FAR *PPST_ACCESSRULESET;
  270. typedef struct  _PST_AUTHENTICODEDATA
  271.     {
  272.     DWORD cbSize;
  273.     DWORD dwModifiers;
  274.     LPCWSTR szRootCA;
  275.     LPCWSTR szIssuer;
  276.     LPCWSTR szPublisher;
  277.     LPCWSTR szProgramName;
  278.     } PST_AUTHENTICODEDATA;
  279. typedef struct _PST_AUTHENTICODEDATA __RPC_FAR *PPST_AUTHENTICODEDATA;
  280. typedef struct _PST_AUTHENTICODEDATA __RPC_FAR *LPPST_AUTHENTICODEDATA;
  281. typedef struct  _PST_BINARYCHECKDATA
  282.     {
  283.     DWORD cbSize;
  284.     DWORD dwModifiers;
  285.     LPCWSTR szFilePath;
  286.     } PST_BINARYCHECKDATA;
  287. typedef struct _PST_BINARYCHECKDATA __RPC_FAR *PPST_BINARYCHECKDATA;
  288. typedef struct _PST_BINARYCHECKDATA __RPC_FAR *LPPST_BINARYCHECKDATA;
  289. extern RPC_IF_HANDLE __MIDL__intf_0000_v0_0_c_ifspec;
  290. extern RPC_IF_HANDLE __MIDL__intf_0000_v0_0_s_ifspec;
  291. /* Additional Prototypes for ALL interfaces */
  292. /* end of Additional Prototypes */
  293. #ifdef __cplusplus
  294. }
  295. #endif
  296. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  297. /* File created by MIDL compiler version 3.00.44 */
  298. /* at Wed Apr 23 23:56:14 1997
  299.  */
  300. /* Compiler settings for pstorec.idl:
  301.     Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, c_ext
  302.     error checks: none
  303. */
  304. //@@MIDL_FILE_HEADING(  )
  305. #ifndef COM_NO_WINDOWS_H
  306. #include "windows.h"
  307. #include "ole2.h"
  308. #endif /*COM_NO_WINDOWS_H*/
  309. #ifdef __cplusplus
  310. extern "C"{
  311. #endif 
  312. /* Forward Declarations */ 
  313. #ifndef __IEnumPStoreItems_FWD_DEFINED__
  314. #define __IEnumPStoreItems_FWD_DEFINED__
  315. typedef interface IEnumPStoreItems IEnumPStoreItems;
  316. #endif  /* __IEnumPStoreItems_FWD_DEFINED__ */
  317. #ifndef __IEnumPStoreTypes_FWD_DEFINED__
  318. #define __IEnumPStoreTypes_FWD_DEFINED__
  319. typedef interface IEnumPStoreTypes IEnumPStoreTypes;
  320. #endif  /* __IEnumPStoreTypes_FWD_DEFINED__ */
  321. #ifndef __IPStore_FWD_DEFINED__
  322. #define __IPStore_FWD_DEFINED__
  323. typedef interface IPStore IPStore;
  324. #endif  /* __IPStore_FWD_DEFINED__ */
  325. #ifndef __IEnumPStoreProviders_FWD_DEFINED__
  326. #define __IEnumPStoreProviders_FWD_DEFINED__
  327. typedef interface IEnumPStoreProviders IEnumPStoreProviders;
  328. #endif  /* __IEnumPStoreProviders_FWD_DEFINED__ */
  329. /* header files for imported files */
  330. #include "oaidl.h"
  331. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  332. void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 
  333. #ifndef __IEnumPStoreItems_INTERFACE_DEFINED__
  334. #define __IEnumPStoreItems_INTERFACE_DEFINED__
  335. /****************************************
  336.  * Generated header for interface: IEnumPStoreItems
  337.  * at Wed Apr 23 23:56:14 1997
  338.  * using MIDL 3.00.44
  339.  ****************************************/
  340. /* [unique][helpstring][uuid][object] */ 
  341. EXTERN_C const IID IID_IEnumPStoreItems;
  342. #if defined(__cplusplus) && !defined(CINTERFACE)
  343.     
  344.     interface IEnumPStoreItems : public IUnknown
  345.     {
  346.     public:
  347.         virtual HRESULT STDMETHODCALLTYPE Next( 
  348.             /* [in] */ DWORD celt,
  349.             /* [out] */ LPWSTR __RPC_FAR *rgelt,
  350.             /* [out][in] */ DWORD __RPC_FAR *pceltFetched) = 0;
  351.         
  352.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  353.             /* [in] */ DWORD celt) = 0;
  354.         
  355.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  356.         
  357.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  358.             /* [out] */ IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum) = 0;
  359.         
  360.     };
  361.     
  362. #else  /* C style interface */
  363.     typedef struct IEnumPStoreItemsVtbl
  364.     {
  365.         BEGIN_INTERFACE
  366.         
  367.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  368.             IEnumPStoreItems __RPC_FAR * This,
  369.             /* [in] */ REFIID riid,
  370.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  371.         
  372.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  373.             IEnumPStoreItems __RPC_FAR * This);
  374.         
  375.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  376.             IEnumPStoreItems __RPC_FAR * This);
  377.         
  378.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Next )( 
  379.             IEnumPStoreItems __RPC_FAR * This,
  380.             /* [in] */ DWORD celt,
  381.             /* [out] */ LPWSTR __RPC_FAR *rgelt,
  382.             /* [out][in] */ DWORD __RPC_FAR *pceltFetched);
  383.         
  384.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Skip )( 
  385.             IEnumPStoreItems __RPC_FAR * This,
  386.             /* [in] */ DWORD celt);
  387.         
  388.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Reset )( 
  389.             IEnumPStoreItems __RPC_FAR * This);
  390.         
  391.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clone )( 
  392.             IEnumPStoreItems __RPC_FAR * This,
  393.             /* [out] */ IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum);
  394.         
  395.         END_INTERFACE
  396.     } IEnumPStoreItemsVtbl;
  397.     interface IEnumPStoreItems
  398.     {
  399.         CONST_VTBL struct IEnumPStoreItemsVtbl __RPC_FAR *lpVtbl;
  400.     };
  401.     
  402. #ifdef COBJMACROS
  403. #define IEnumPStoreItems_QueryInterface(This,riid,ppvObject)
  404.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  405. #define IEnumPStoreItems_AddRef(This)
  406.     (This)->lpVtbl -> AddRef(This)
  407. #define IEnumPStoreItems_Release(This)
  408.     (This)->lpVtbl -> Release(This)
  409. #define IEnumPStoreItems_Next(This,celt,rgelt,pceltFetched)
  410.     (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched)
  411. #define IEnumPStoreItems_Skip(This,celt)
  412.     (This)->lpVtbl -> Skip(This,celt)
  413. #define IEnumPStoreItems_Reset(This)
  414.     (This)->lpVtbl -> Reset(This)
  415. #define IEnumPStoreItems_Clone(This,ppenum)
  416.     (This)->lpVtbl -> Clone(This,ppenum)
  417. #endif /* COBJMACROS */
  418. #endif  /* C style interface */
  419. HRESULT STDMETHODCALLTYPE IEnumPStoreItems_Next_Proxy( 
  420.     IEnumPStoreItems __RPC_FAR * This,
  421.     /* [in] */ DWORD celt,
  422.     /* [out] */ LPWSTR __RPC_FAR *rgelt,
  423.     /* [out][in] */ DWORD __RPC_FAR *pceltFetched);
  424. void __RPC_STUB IEnumPStoreItems_Next_Stub(
  425.     IRpcStubBuffer *This,
  426.     IRpcChannelBuffer *_pRpcChannelBuffer,
  427.     PRPC_MESSAGE _pRpcMessage,
  428.     DWORD *_pdwStubPhase);
  429. HRESULT STDMETHODCALLTYPE IEnumPStoreItems_Skip_Proxy( 
  430.     IEnumPStoreItems __RPC_FAR * This,
  431.     /* [in] */ DWORD celt);
  432. void __RPC_STUB IEnumPStoreItems_Skip_Stub(
  433.     IRpcStubBuffer *This,
  434.     IRpcChannelBuffer *_pRpcChannelBuffer,
  435.     PRPC_MESSAGE _pRpcMessage,
  436.     DWORD *_pdwStubPhase);
  437. HRESULT STDMETHODCALLTYPE IEnumPStoreItems_Reset_Proxy( 
  438.     IEnumPStoreItems __RPC_FAR * This);
  439. void __RPC_STUB IEnumPStoreItems_Reset_Stub(
  440.     IRpcStubBuffer *This,
  441.     IRpcChannelBuffer *_pRpcChannelBuffer,
  442.     PRPC_MESSAGE _pRpcMessage,
  443.     DWORD *_pdwStubPhase);
  444. HRESULT STDMETHODCALLTYPE IEnumPStoreItems_Clone_Proxy( 
  445.     IEnumPStoreItems __RPC_FAR * This,
  446.     /* [out] */ IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum);
  447. void __RPC_STUB IEnumPStoreItems_Clone_Stub(
  448.     IRpcStubBuffer *This,
  449.     IRpcChannelBuffer *_pRpcChannelBuffer,
  450.     PRPC_MESSAGE _pRpcMessage,
  451.     DWORD *_pdwStubPhase);
  452. #endif  /* __IEnumPStoreItems_INTERFACE_DEFINED__ */
  453. #ifndef __IEnumPStoreTypes_INTERFACE_DEFINED__
  454. #define __IEnumPStoreTypes_INTERFACE_DEFINED__
  455. /****************************************
  456.  * Generated header for interface: IEnumPStoreTypes
  457.  * at Wed Apr 23 23:56:14 1997
  458.  * using MIDL 3.00.44
  459.  ****************************************/
  460. /* [unique][helpstring][uuid][object] */ 
  461. EXTERN_C const IID IID_IEnumPStoreTypes;
  462. #if defined(__cplusplus) && !defined(CINTERFACE)
  463.     
  464.     interface IEnumPStoreTypes : public IUnknown
  465.     {
  466.     public:
  467.         virtual HRESULT STDMETHODCALLTYPE Next( 
  468.             /* [in] */ DWORD celt,
  469.             /* [out][size_is] */ GUID __RPC_FAR *rgelt,
  470.             /* [out][in] */ DWORD __RPC_FAR *pceltFetched) = 0;
  471.         
  472.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  473.             /* [in] */ DWORD celt) = 0;
  474.         
  475.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  476.         
  477.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  478.             /* [out] */ IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum) = 0;
  479.         
  480.     };
  481.     
  482. #else  /* C style interface */
  483.     typedef struct IEnumPStoreTypesVtbl
  484.     {
  485.         BEGIN_INTERFACE
  486.         
  487.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  488.             IEnumPStoreTypes __RPC_FAR * This,
  489.             /* [in] */ REFIID riid,
  490.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  491.         
  492.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  493.             IEnumPStoreTypes __RPC_FAR * This);
  494.         
  495.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  496.             IEnumPStoreTypes __RPC_FAR * This);
  497.         
  498.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Next )( 
  499.             IEnumPStoreTypes __RPC_FAR * This,
  500.             /* [in] */ DWORD celt,
  501.             /* [out][size_is] */ GUID __RPC_FAR *rgelt,
  502.             /* [out][in] */ DWORD __RPC_FAR *pceltFetched);
  503.         
  504.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Skip )( 
  505.             IEnumPStoreTypes __RPC_FAR * This,
  506.             /* [in] */ DWORD celt);
  507.         
  508.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Reset )( 
  509.             IEnumPStoreTypes __RPC_FAR * This);
  510.         
  511.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clone )( 
  512.             IEnumPStoreTypes __RPC_FAR * This,
  513.             /* [out] */ IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum);
  514.         
  515.         END_INTERFACE
  516.     } IEnumPStoreTypesVtbl;
  517.     interface IEnumPStoreTypes
  518.     {
  519.         CONST_VTBL struct IEnumPStoreTypesVtbl __RPC_FAR *lpVtbl;
  520.     };
  521.     
  522. #ifdef COBJMACROS
  523. #define IEnumPStoreTypes_QueryInterface(This,riid,ppvObject)
  524.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  525. #define IEnumPStoreTypes_AddRef(This)
  526.     (This)->lpVtbl -> AddRef(This)
  527. #define IEnumPStoreTypes_Release(This)
  528.     (This)->lpVtbl -> Release(This)
  529. #define IEnumPStoreTypes_Next(This,celt,rgelt,pceltFetched)
  530.     (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched)
  531. #define IEnumPStoreTypes_Skip(This,celt)
  532.     (This)->lpVtbl -> Skip(This,celt)
  533. #define IEnumPStoreTypes_Reset(This)
  534.     (This)->lpVtbl -> Reset(This)
  535. #define IEnumPStoreTypes_Clone(This,ppenum)
  536.     (This)->lpVtbl -> Clone(This,ppenum)
  537. #endif /* COBJMACROS */
  538. #endif  /* C style interface */
  539. HRESULT STDMETHODCALLTYPE IEnumPStoreTypes_Next_Proxy( 
  540.     IEnumPStoreTypes __RPC_FAR * This,
  541.     /* [in] */ DWORD celt,
  542.     /* [out][size_is] */ GUID __RPC_FAR *rgelt,
  543.     /* [out][in] */ DWORD __RPC_FAR *pceltFetched);
  544. void __RPC_STUB IEnumPStoreTypes_Next_Stub(
  545.     IRpcStubBuffer *This,
  546.     IRpcChannelBuffer *_pRpcChannelBuffer,
  547.     PRPC_MESSAGE _pRpcMessage,
  548.     DWORD *_pdwStubPhase);
  549. HRESULT STDMETHODCALLTYPE IEnumPStoreTypes_Skip_Proxy( 
  550.     IEnumPStoreTypes __RPC_FAR * This,
  551.     /* [in] */ DWORD celt);
  552. void __RPC_STUB IEnumPStoreTypes_Skip_Stub(
  553.     IRpcStubBuffer *This,
  554.     IRpcChannelBuffer *_pRpcChannelBuffer,
  555.     PRPC_MESSAGE _pRpcMessage,
  556.     DWORD *_pdwStubPhase);
  557. HRESULT STDMETHODCALLTYPE IEnumPStoreTypes_Reset_Proxy( 
  558.     IEnumPStoreTypes __RPC_FAR * This);
  559. void __RPC_STUB IEnumPStoreTypes_Reset_Stub(
  560.     IRpcStubBuffer *This,
  561.     IRpcChannelBuffer *_pRpcChannelBuffer,
  562.     PRPC_MESSAGE _pRpcMessage,
  563.     DWORD *_pdwStubPhase);
  564. HRESULT STDMETHODCALLTYPE IEnumPStoreTypes_Clone_Proxy( 
  565.     IEnumPStoreTypes __RPC_FAR * This,
  566.     /* [out] */ IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum);
  567. void __RPC_STUB IEnumPStoreTypes_Clone_Stub(
  568.     IRpcStubBuffer *This,
  569.     IRpcChannelBuffer *_pRpcChannelBuffer,
  570.     PRPC_MESSAGE _pRpcMessage,
  571.     DWORD *_pdwStubPhase);
  572. #endif  /* __IEnumPStoreTypes_INTERFACE_DEFINED__ */
  573. #ifndef __IPStore_INTERFACE_DEFINED__
  574. #define __IPStore_INTERFACE_DEFINED__
  575. /****************************************
  576.  * Generated header for interface: IPStore
  577.  * at Wed Apr 23 23:56:14 1997
  578.  * using MIDL 3.00.44
  579.  ****************************************/
  580. /* [unique][helpstring][uuid][object] */ 
  581. EXTERN_C const IID IID_IPStore;
  582. #if defined(__cplusplus) && !defined(CINTERFACE)
  583.     
  584.     interface IPStore : public IUnknown
  585.     {
  586.     public:
  587.         virtual HRESULT STDMETHODCALLTYPE GetInfo( 
  588.             /* [out] */ PPST_PROVIDERINFO __RPC_FAR *ppProperties) = 0;
  589.         
  590.         virtual HRESULT STDMETHODCALLTYPE GetProvParam( 
  591.             /* [in] */ DWORD dwParam,
  592.             /* [out] */ DWORD __RPC_FAR *pcbData,
  593.             /* [size_is][size_is][out] */ BYTE __RPC_FAR *__RPC_FAR *ppbData,
  594.             /* [in] */ DWORD dwFlags) = 0;
  595.         
  596.         virtual HRESULT STDMETHODCALLTYPE SetProvParam( 
  597.             /* [in] */ DWORD dwParam,
  598.             /* [in] */ DWORD cbData,
  599.             /* [size_is][in] */ BYTE __RPC_FAR *pbData,
  600.             /* [in] */ DWORD dwFlags) = 0;
  601.         
  602.         virtual HRESULT STDMETHODCALLTYPE CreateType( 
  603.             /* [in] */ PST_KEY Key,
  604.             /* [in] */ const GUID __RPC_FAR *pType,
  605.             /* [in] */ PPST_TYPEINFO pInfo,
  606.             /* [in] */ DWORD dwFlags) = 0;
  607.         
  608.         virtual HRESULT STDMETHODCALLTYPE GetTypeInfo( 
  609.             /* [in] */ PST_KEY Key,
  610.             /* [in] */ const GUID __RPC_FAR *pType,
  611.             /* [out] */ PPST_TYPEINFO __RPC_FAR *ppInfo,
  612.             /* [in] */ DWORD dwFlags) = 0;
  613.         
  614.         virtual HRESULT STDMETHODCALLTYPE DeleteType( 
  615.             /* [in] */ PST_KEY Key,
  616.             /* [in] */ const GUID __RPC_FAR *pType,
  617.             /* [in] */ DWORD dwFlags) = 0;
  618.         
  619.         virtual HRESULT STDMETHODCALLTYPE CreateSubtype( 
  620.             /* [in] */ PST_KEY Key,
  621.             /* [in] */ const GUID __RPC_FAR *pType,
  622.             /* [in] */ const GUID __RPC_FAR *pSubtype,
  623.             /* [in] */ PPST_TYPEINFO pInfo,
  624.             /* [in] */ PPST_ACCESSRULESET pRules,
  625.             /* [in] */ DWORD dwFlags) = 0;
  626.         
  627.         virtual HRESULT STDMETHODCALLTYPE GetSubtypeInfo( 
  628.             /* [in] */ PST_KEY Key,
  629.             /* [in] */ const GUID __RPC_FAR *pType,
  630.             /* [in] */ const GUID __RPC_FAR *pSubtype,
  631.             /* [out] */ PPST_TYPEINFO __RPC_FAR *ppInfo,
  632.             /* [in] */ DWORD dwFlags) = 0;
  633.         
  634.         virtual HRESULT STDMETHODCALLTYPE DeleteSubtype( 
  635.             /* [in] */ PST_KEY Key,
  636.             /* [in] */ const GUID __RPC_FAR *pType,
  637.             /* [in] */ const GUID __RPC_FAR *pSubtype,
  638.             /* [in] */ DWORD dwFlags) = 0;
  639.         
  640.         virtual HRESULT STDMETHODCALLTYPE ReadAccessRuleset( 
  641.             /* [in] */ PST_KEY Key,
  642.             /* [in] */ const GUID __RPC_FAR *pType,
  643.             /* [in] */ const GUID __RPC_FAR *pSubtype,
  644.             /* [out] */ PPST_ACCESSRULESET __RPC_FAR *ppRules,
  645.             /* [in] */ DWORD dwFlags) = 0;
  646.         
  647.         virtual HRESULT STDMETHODCALLTYPE WriteAccessRuleset( 
  648.             /* [in] */ PST_KEY Key,
  649.             /* [in] */ const GUID __RPC_FAR *pType,
  650.             /* [in] */ const GUID __RPC_FAR *pSubtype,
  651.             /* [in] */ PPST_ACCESSRULESET pRules,
  652.             /* [in] */ DWORD dwFlags) = 0;
  653.         
  654.         virtual HRESULT STDMETHODCALLTYPE EnumTypes( 
  655.             /* [in] */ PST_KEY Key,
  656.             /* [in] */ DWORD dwFlags,
  657.             /* [in] */ IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum) = 0;
  658.         
  659.         virtual HRESULT STDMETHODCALLTYPE EnumSubtypes( 
  660.             /* [in] */ PST_KEY Key,
  661.             /* [in] */ const GUID __RPC_FAR *pType,
  662.             /* [in] */ DWORD dwFlags,
  663.             /* [in] */ IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum) = 0;
  664.         
  665.         virtual HRESULT STDMETHODCALLTYPE DeleteItem( 
  666.             /* [in] */ PST_KEY Key,
  667.             /* [in] */ const GUID __RPC_FAR *pItemType,
  668.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  669.             /* [in] */ LPCWSTR szItemName,
  670.             /* [in] */ PPST_PROMPTINFO pPromptInfo,
  671.             /* [in] */ DWORD dwFlags) = 0;
  672.         
  673.         virtual HRESULT STDMETHODCALLTYPE ReadItem( 
  674.             /* [in] */ PST_KEY Key,
  675.             /* [in] */ const GUID __RPC_FAR *pItemType,
  676.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  677.             /* [in] */ LPCWSTR szItemName,
  678.             /* [out] */ DWORD __RPC_FAR *pcbData,
  679.             /* [size_is][size_is][out] */ BYTE __RPC_FAR *__RPC_FAR *ppbData,
  680.             /* [in] */ PPST_PROMPTINFO pPromptInfo,
  681.             /* [in] */ DWORD dwFlags) = 0;
  682.         
  683.         virtual HRESULT STDMETHODCALLTYPE WriteItem( 
  684.             /* [in] */ PST_KEY Key,
  685.             /* [in] */ const GUID __RPC_FAR *pItemType,
  686.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  687.             /* [in] */ LPCWSTR szItemName,
  688.             /* [in] */ DWORD cbData,
  689.             /* [size_is][in] */ BYTE __RPC_FAR *pbData,
  690.             /* [in] */ PPST_PROMPTINFO pPromptInfo,
  691.             /* [in] */ DWORD dwDefaultConfirmationStyle,
  692.             /* [in] */ DWORD dwFlags) = 0;
  693.         
  694.         virtual HRESULT STDMETHODCALLTYPE OpenItem( 
  695.             /* [in] */ PST_KEY Key,
  696.             /* [in] */ const GUID __RPC_FAR *pItemType,
  697.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  698.             /* [in] */ LPCWSTR szItemName,
  699.             /* [in] */ PST_ACCESSMODE ModeFlags,
  700.             /* [in] */ PPST_PROMPTINFO pPromptInfo,
  701.             /* [in] */ DWORD dwFlags) = 0;
  702.         
  703.         virtual HRESULT STDMETHODCALLTYPE CloseItem( 
  704.             /* [in] */ PST_KEY Key,
  705.             /* [in] */ const GUID __RPC_FAR *pItemType,
  706.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  707.             /* [in] */ LPCWSTR szItemName,
  708.             /* [in] */ DWORD dwFlags) = 0;
  709.         
  710.         virtual HRESULT STDMETHODCALLTYPE EnumItems( 
  711.             /* [in] */ PST_KEY Key,
  712.             /* [in] */ const GUID __RPC_FAR *pItemType,
  713.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  714.             /* [in] */ DWORD dwFlags,
  715.             /* [in] */ IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum) = 0;
  716.         
  717.     };
  718.     
  719. #else  /* C style interface */
  720.     typedef struct IPStoreVtbl
  721.     {
  722.         BEGIN_INTERFACE
  723.         
  724.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  725.             IPStore __RPC_FAR * This,
  726.             /* [in] */ REFIID riid,
  727.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  728.         
  729.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  730.             IPStore __RPC_FAR * This);
  731.         
  732.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  733.             IPStore __RPC_FAR * This);
  734.         
  735.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetInfo )( 
  736.             IPStore __RPC_FAR * This,
  737.             /* [out] */ PPST_PROVIDERINFO __RPC_FAR *ppProperties);
  738.         
  739.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetProvParam )( 
  740.             IPStore __RPC_FAR * This,
  741.             /* [in] */ DWORD dwParam,
  742.             /* [out] */ DWORD __RPC_FAR *pcbData,
  743.             /* [size_is][size_is][out] */ BYTE __RPC_FAR *__RPC_FAR *ppbData,
  744.             /* [in] */ DWORD dwFlags);
  745.         
  746.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetProvParam )( 
  747.             IPStore __RPC_FAR * This,
  748.             /* [in] */ DWORD dwParam,
  749.             /* [in] */ DWORD cbData,
  750.             /* [size_is][in] */ BYTE __RPC_FAR *pbData,
  751.             /* [in] */ DWORD dwFlags);
  752.         
  753.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateType )( 
  754.             IPStore __RPC_FAR * This,
  755.             /* [in] */ PST_KEY Key,
  756.             /* [in] */ const GUID __RPC_FAR *pType,
  757.             /* [in] */ PPST_TYPEINFO pInfo,
  758.             /* [in] */ DWORD dwFlags);
  759.         
  760.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )( 
  761.             IPStore __RPC_FAR * This,
  762.             /* [in] */ PST_KEY Key,
  763.             /* [in] */ const GUID __RPC_FAR *pType,
  764.             /* [out] */ PPST_TYPEINFO __RPC_FAR *ppInfo,
  765.             /* [in] */ DWORD dwFlags);
  766.         
  767.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DeleteType )( 
  768.             IPStore __RPC_FAR * This,
  769.             /* [in] */ PST_KEY Key,
  770.             /* [in] */ const GUID __RPC_FAR *pType,
  771.             /* [in] */ DWORD dwFlags);
  772.         
  773.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateSubtype )( 
  774.             IPStore __RPC_FAR * This,
  775.             /* [in] */ PST_KEY Key,
  776.             /* [in] */ const GUID __RPC_FAR *pType,
  777.             /* [in] */ const GUID __RPC_FAR *pSubtype,
  778.             /* [in] */ PPST_TYPEINFO pInfo,
  779.             /* [in] */ PPST_ACCESSRULESET pRules,
  780.             /* [in] */ DWORD dwFlags);
  781.         
  782.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSubtypeInfo )( 
  783.             IPStore __RPC_FAR * This,
  784.             /* [in] */ PST_KEY Key,
  785.             /* [in] */ const GUID __RPC_FAR *pType,
  786.             /* [in] */ const GUID __RPC_FAR *pSubtype,
  787.             /* [out] */ PPST_TYPEINFO __RPC_FAR *ppInfo,
  788.             /* [in] */ DWORD dwFlags);
  789.         
  790.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DeleteSubtype )( 
  791.             IPStore __RPC_FAR * This,
  792.             /* [in] */ PST_KEY Key,
  793.             /* [in] */ const GUID __RPC_FAR *pType,
  794.             /* [in] */ const GUID __RPC_FAR *pSubtype,
  795.             /* [in] */ DWORD dwFlags);
  796.         
  797.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadAccessRuleset )( 
  798.             IPStore __RPC_FAR * This,
  799.             /* [in] */ PST_KEY Key,
  800.             /* [in] */ const GUID __RPC_FAR *pType,
  801.             /* [in] */ const GUID __RPC_FAR *pSubtype,
  802.             /* [out] */ PPST_ACCESSRULESET __RPC_FAR *ppRules,
  803.             /* [in] */ DWORD dwFlags);
  804.         
  805.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteAccessRuleset )( 
  806.             IPStore __RPC_FAR * This,
  807.             /* [in] */ PST_KEY Key,
  808.             /* [in] */ const GUID __RPC_FAR *pType,
  809.             /* [in] */ const GUID __RPC_FAR *pSubtype,
  810.             /* [in] */ PPST_ACCESSRULESET pRules,
  811.             /* [in] */ DWORD dwFlags);
  812.         
  813.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumTypes )( 
  814.             IPStore __RPC_FAR * This,
  815.             /* [in] */ PST_KEY Key,
  816.             /* [in] */ DWORD dwFlags,
  817.             /* [in] */ IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum);
  818.         
  819.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumSubtypes )( 
  820.             IPStore __RPC_FAR * This,
  821.             /* [in] */ PST_KEY Key,
  822.             /* [in] */ const GUID __RPC_FAR *pType,
  823.             /* [in] */ DWORD dwFlags,
  824.             /* [in] */ IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum);
  825.         
  826.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DeleteItem )( 
  827.             IPStore __RPC_FAR * This,
  828.             /* [in] */ PST_KEY Key,
  829.             /* [in] */ const GUID __RPC_FAR *pItemType,
  830.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  831.             /* [in] */ LPCWSTR szItemName,
  832.             /* [in] */ PPST_PROMPTINFO pPromptInfo,
  833.             /* [in] */ DWORD dwFlags);
  834.         
  835.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ReadItem )( 
  836.             IPStore __RPC_FAR * This,
  837.             /* [in] */ PST_KEY Key,
  838.             /* [in] */ const GUID __RPC_FAR *pItemType,
  839.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  840.             /* [in] */ LPCWSTR szItemName,
  841.             /* [out] */ DWORD __RPC_FAR *pcbData,
  842.             /* [size_is][size_is][out] */ BYTE __RPC_FAR *__RPC_FAR *ppbData,
  843.             /* [in] */ PPST_PROMPTINFO pPromptInfo,
  844.             /* [in] */ DWORD dwFlags);
  845.         
  846.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *WriteItem )( 
  847.             IPStore __RPC_FAR * This,
  848.             /* [in] */ PST_KEY Key,
  849.             /* [in] */ const GUID __RPC_FAR *pItemType,
  850.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  851.             /* [in] */ LPCWSTR szItemName,
  852.             /* [in] */ DWORD cbData,
  853.             /* [size_is][in] */ BYTE __RPC_FAR *pbData,
  854.             /* [in] */ PPST_PROMPTINFO pPromptInfo,
  855.             /* [in] */ DWORD dwDefaultConfirmationStyle,
  856.             /* [in] */ DWORD dwFlags);
  857.         
  858.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *OpenItem )( 
  859.             IPStore __RPC_FAR * This,
  860.             /* [in] */ PST_KEY Key,
  861.             /* [in] */ const GUID __RPC_FAR *pItemType,
  862.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  863.             /* [in] */ LPCWSTR szItemName,
  864.             /* [in] */ PST_ACCESSMODE ModeFlags,
  865.             /* [in] */ PPST_PROMPTINFO pPromptInfo,
  866.             /* [in] */ DWORD dwFlags);
  867.         
  868.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CloseItem )( 
  869.             IPStore __RPC_FAR * This,
  870.             /* [in] */ PST_KEY Key,
  871.             /* [in] */ const GUID __RPC_FAR *pItemType,
  872.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  873.             /* [in] */ LPCWSTR szItemName,
  874.             /* [in] */ DWORD dwFlags);
  875.         
  876.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumItems )( 
  877.             IPStore __RPC_FAR * This,
  878.             /* [in] */ PST_KEY Key,
  879.             /* [in] */ const GUID __RPC_FAR *pItemType,
  880.             /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  881.             /* [in] */ DWORD dwFlags,
  882.             /* [in] */ IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum);
  883.         
  884.         END_INTERFACE
  885.     } IPStoreVtbl;
  886.     interface IPStore
  887.     {
  888.         CONST_VTBL struct IPStoreVtbl __RPC_FAR *lpVtbl;
  889.     };
  890.     
  891. #ifdef COBJMACROS
  892. #define IPStore_QueryInterface(This,riid,ppvObject)
  893.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  894. #define IPStore_AddRef(This)
  895.     (This)->lpVtbl -> AddRef(This)
  896. #define IPStore_Release(This)
  897.     (This)->lpVtbl -> Release(This)
  898. #define IPStore_GetInfo(This,ppProperties)
  899.     (This)->lpVtbl -> GetInfo(This,ppProperties)
  900. #define IPStore_GetProvParam(This,dwParam,pcbData,ppbData,dwFlags)
  901.     (This)->lpVtbl -> GetProvParam(This,dwParam,pcbData,ppbData,dwFlags)
  902. #define IPStore_SetProvParam(This,dwParam,cbData,pbData,dwFlags)
  903.     (This)->lpVtbl -> SetProvParam(This,dwParam,cbData,pbData,dwFlags)
  904. #define IPStore_CreateType(This,Key,pType,pInfo,dwFlags)
  905.     (This)->lpVtbl -> CreateType(This,Key,pType,pInfo,dwFlags)
  906. #define IPStore_GetTypeInfo(This,Key,pType,ppInfo,dwFlags)
  907.     (This)->lpVtbl -> GetTypeInfo(This,Key,pType,ppInfo,dwFlags)
  908. #define IPStore_DeleteType(This,Key,pType,dwFlags)
  909.     (This)->lpVtbl -> DeleteType(This,Key,pType,dwFlags)
  910. #define IPStore_CreateSubtype(This,Key,pType,pSubtype,pInfo,pRules,dwFlags)
  911.     (This)->lpVtbl -> CreateSubtype(This,Key,pType,pSubtype,pInfo,pRules,dwFlags)
  912. #define IPStore_GetSubtypeInfo(This,Key,pType,pSubtype,ppInfo,dwFlags)
  913.     (This)->lpVtbl -> GetSubtypeInfo(This,Key,pType,pSubtype,ppInfo,dwFlags)
  914. #define IPStore_DeleteSubtype(This,Key,pType,pSubtype,dwFlags)
  915.     (This)->lpVtbl -> DeleteSubtype(This,Key,pType,pSubtype,dwFlags)
  916. #define IPStore_ReadAccessRuleset(This,Key,pType,pSubtype,ppRules,dwFlags)
  917.     (This)->lpVtbl -> ReadAccessRuleset(This,Key,pType,pSubtype,ppRules,dwFlags)
  918. #define IPStore_WriteAccessRuleset(This,Key,pType,pSubtype,pRules,dwFlags)
  919.     (This)->lpVtbl -> WriteAccessRuleset(This,Key,pType,pSubtype,pRules,dwFlags)
  920. #define IPStore_EnumTypes(This,Key,dwFlags,ppenum)
  921.     (This)->lpVtbl -> EnumTypes(This,Key,dwFlags,ppenum)
  922. #define IPStore_EnumSubtypes(This,Key,pType,dwFlags,ppenum)
  923.     (This)->lpVtbl -> EnumSubtypes(This,Key,pType,dwFlags,ppenum)
  924. #define IPStore_DeleteItem(This,Key,pItemType,pItemSubtype,szItemName,pPromptInfo,dwFlags)
  925.     (This)->lpVtbl -> DeleteItem(This,Key,pItemType,pItemSubtype,szItemName,pPromptInfo,dwFlags)
  926. #define IPStore_ReadItem(This,Key,pItemType,pItemSubtype,szItemName,pcbData,ppbData,pPromptInfo,dwFlags)
  927.     (This)->lpVtbl -> ReadItem(This,Key,pItemType,pItemSubtype,szItemName,pcbData,ppbData,pPromptInfo,dwFlags)
  928. #define IPStore_WriteItem(This,Key,pItemType,pItemSubtype,szItemName,cbData,pbData,pPromptInfo,dwDefaultConfirmationStyle,dwFlags)
  929.     (This)->lpVtbl -> WriteItem(This,Key,pItemType,pItemSubtype,szItemName,cbData,pbData,pPromptInfo,dwDefaultConfirmationStyle,dwFlags)
  930. #define IPStore_OpenItem(This,Key,pItemType,pItemSubtype,szItemName,ModeFlags,pPromptInfo,dwFlags)
  931.     (This)->lpVtbl -> OpenItem(This,Key,pItemType,pItemSubtype,szItemName,ModeFlags,pPromptInfo,dwFlags)
  932. #define IPStore_CloseItem(This,Key,pItemType,pItemSubtype,szItemName,dwFlags)
  933.     (This)->lpVtbl -> CloseItem(This,Key,pItemType,pItemSubtype,szItemName,dwFlags)
  934. #define IPStore_EnumItems(This,Key,pItemType,pItemSubtype,dwFlags,ppenum)
  935.     (This)->lpVtbl -> EnumItems(This,Key,pItemType,pItemSubtype,dwFlags,ppenum)
  936. #endif /* COBJMACROS */
  937. #endif  /* C style interface */
  938. HRESULT STDMETHODCALLTYPE IPStore_GetInfo_Proxy( 
  939.     IPStore __RPC_FAR * This,
  940.     /* [out] */ PPST_PROVIDERINFO __RPC_FAR *ppProperties);
  941. void __RPC_STUB IPStore_GetInfo_Stub(
  942.     IRpcStubBuffer *This,
  943.     IRpcChannelBuffer *_pRpcChannelBuffer,
  944.     PRPC_MESSAGE _pRpcMessage,
  945.     DWORD *_pdwStubPhase);
  946. HRESULT STDMETHODCALLTYPE IPStore_GetProvParam_Proxy( 
  947.     IPStore __RPC_FAR * This,
  948.     /* [in] */ DWORD dwParam,
  949.     /* [out] */ DWORD __RPC_FAR *pcbData,
  950.     /* [size_is][size_is][out] */ BYTE __RPC_FAR *__RPC_FAR *ppbData,
  951.     /* [in] */ DWORD dwFlags);
  952. void __RPC_STUB IPStore_GetProvParam_Stub(
  953.     IRpcStubBuffer *This,
  954.     IRpcChannelBuffer *_pRpcChannelBuffer,
  955.     PRPC_MESSAGE _pRpcMessage,
  956.     DWORD *_pdwStubPhase);
  957. HRESULT STDMETHODCALLTYPE IPStore_SetProvParam_Proxy( 
  958.     IPStore __RPC_FAR * This,
  959.     /* [in] */ DWORD dwParam,
  960.     /* [in] */ DWORD cbData,
  961.     /* [size_is][in] */ BYTE __RPC_FAR *pbData,
  962.     /* [in] */ DWORD dwFlags);
  963. void __RPC_STUB IPStore_SetProvParam_Stub(
  964.     IRpcStubBuffer *This,
  965.     IRpcChannelBuffer *_pRpcChannelBuffer,
  966.     PRPC_MESSAGE _pRpcMessage,
  967.     DWORD *_pdwStubPhase);
  968. HRESULT STDMETHODCALLTYPE IPStore_CreateType_Proxy( 
  969.     IPStore __RPC_FAR * This,
  970.     /* [in] */ PST_KEY Key,
  971.     /* [in] */ const GUID __RPC_FAR *pType,
  972.     /* [in] */ PPST_TYPEINFO pInfo,
  973.     /* [in] */ DWORD dwFlags);
  974. void __RPC_STUB IPStore_CreateType_Stub(
  975.     IRpcStubBuffer *This,
  976.     IRpcChannelBuffer *_pRpcChannelBuffer,
  977.     PRPC_MESSAGE _pRpcMessage,
  978.     DWORD *_pdwStubPhase);
  979. HRESULT STDMETHODCALLTYPE IPStore_GetTypeInfo_Proxy( 
  980.     IPStore __RPC_FAR * This,
  981.     /* [in] */ PST_KEY Key,
  982.     /* [in] */ const GUID __RPC_FAR *pType,
  983.     /* [out] */ PPST_TYPEINFO __RPC_FAR *ppInfo,
  984.     /* [in] */ DWORD dwFlags);
  985. void __RPC_STUB IPStore_GetTypeInfo_Stub(
  986.     IRpcStubBuffer *This,
  987.     IRpcChannelBuffer *_pRpcChannelBuffer,
  988.     PRPC_MESSAGE _pRpcMessage,
  989.     DWORD *_pdwStubPhase);
  990. HRESULT STDMETHODCALLTYPE IPStore_DeleteType_Proxy( 
  991.     IPStore __RPC_FAR * This,
  992.     /* [in] */ PST_KEY Key,
  993.     /* [in] */ const GUID __RPC_FAR *pType,
  994.     /* [in] */ DWORD dwFlags);
  995. void __RPC_STUB IPStore_DeleteType_Stub(
  996.     IRpcStubBuffer *This,
  997.     IRpcChannelBuffer *_pRpcChannelBuffer,
  998.     PRPC_MESSAGE _pRpcMessage,
  999.     DWORD *_pdwStubPhase);
  1000. HRESULT STDMETHODCALLTYPE IPStore_CreateSubtype_Proxy( 
  1001.     IPStore __RPC_FAR * This,
  1002.     /* [in] */ PST_KEY Key,
  1003.     /* [in] */ const GUID __RPC_FAR *pType,
  1004.     /* [in] */ const GUID __RPC_FAR *pSubtype,
  1005.     /* [in] */ PPST_TYPEINFO pInfo,
  1006.     /* [in] */ PPST_ACCESSRULESET pRules,
  1007.     /* [in] */ DWORD dwFlags);
  1008. void __RPC_STUB IPStore_CreateSubtype_Stub(
  1009.     IRpcStubBuffer *This,
  1010.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1011.     PRPC_MESSAGE _pRpcMessage,
  1012.     DWORD *_pdwStubPhase);
  1013. HRESULT STDMETHODCALLTYPE IPStore_GetSubtypeInfo_Proxy( 
  1014.     IPStore __RPC_FAR * This,
  1015.     /* [in] */ PST_KEY Key,
  1016.     /* [in] */ const GUID __RPC_FAR *pType,
  1017.     /* [in] */ const GUID __RPC_FAR *pSubtype,
  1018.     /* [out] */ PPST_TYPEINFO __RPC_FAR *ppInfo,
  1019.     /* [in] */ DWORD dwFlags);
  1020. void __RPC_STUB IPStore_GetSubtypeInfo_Stub(
  1021.     IRpcStubBuffer *This,
  1022.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1023.     PRPC_MESSAGE _pRpcMessage,
  1024.     DWORD *_pdwStubPhase);
  1025. HRESULT STDMETHODCALLTYPE IPStore_DeleteSubtype_Proxy( 
  1026.     IPStore __RPC_FAR * This,
  1027.     /* [in] */ PST_KEY Key,
  1028.     /* [in] */ const GUID __RPC_FAR *pType,
  1029.     /* [in] */ const GUID __RPC_FAR *pSubtype,
  1030.     /* [in] */ DWORD dwFlags);
  1031. void __RPC_STUB IPStore_DeleteSubtype_Stub(
  1032.     IRpcStubBuffer *This,
  1033.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1034.     PRPC_MESSAGE _pRpcMessage,
  1035.     DWORD *_pdwStubPhase);
  1036. HRESULT STDMETHODCALLTYPE IPStore_ReadAccessRuleset_Proxy( 
  1037.     IPStore __RPC_FAR * This,
  1038.     /* [in] */ PST_KEY Key,
  1039.     /* [in] */ const GUID __RPC_FAR *pType,
  1040.     /* [in] */ const GUID __RPC_FAR *pSubtype,
  1041.     /* [out] */ PPST_ACCESSRULESET __RPC_FAR *ppRules,
  1042.     /* [in] */ DWORD dwFlags);
  1043. void __RPC_STUB IPStore_ReadAccessRuleset_Stub(
  1044.     IRpcStubBuffer *This,
  1045.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1046.     PRPC_MESSAGE _pRpcMessage,
  1047.     DWORD *_pdwStubPhase);
  1048. HRESULT STDMETHODCALLTYPE IPStore_WriteAccessRuleset_Proxy( 
  1049.     IPStore __RPC_FAR * This,
  1050.     /* [in] */ PST_KEY Key,
  1051.     /* [in] */ const GUID __RPC_FAR *pType,
  1052.     /* [in] */ const GUID __RPC_FAR *pSubtype,
  1053.     /* [in] */ PPST_ACCESSRULESET pRules,
  1054.     /* [in] */ DWORD dwFlags);
  1055. void __RPC_STUB IPStore_WriteAccessRuleset_Stub(
  1056.     IRpcStubBuffer *This,
  1057.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1058.     PRPC_MESSAGE _pRpcMessage,
  1059.     DWORD *_pdwStubPhase);
  1060. HRESULT STDMETHODCALLTYPE IPStore_EnumTypes_Proxy( 
  1061.     IPStore __RPC_FAR * This,
  1062.     /* [in] */ PST_KEY Key,
  1063.     /* [in] */ DWORD dwFlags,
  1064.     /* [in] */ IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum);
  1065. void __RPC_STUB IPStore_EnumTypes_Stub(
  1066.     IRpcStubBuffer *This,
  1067.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1068.     PRPC_MESSAGE _pRpcMessage,
  1069.     DWORD *_pdwStubPhase);
  1070. HRESULT STDMETHODCALLTYPE IPStore_EnumSubtypes_Proxy( 
  1071.     IPStore __RPC_FAR * This,
  1072.     /* [in] */ PST_KEY Key,
  1073.     /* [in] */ const GUID __RPC_FAR *pType,
  1074.     /* [in] */ DWORD dwFlags,
  1075.     /* [in] */ IEnumPStoreTypes __RPC_FAR *__RPC_FAR *ppenum);
  1076. void __RPC_STUB IPStore_EnumSubtypes_Stub(
  1077.     IRpcStubBuffer *This,
  1078.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1079.     PRPC_MESSAGE _pRpcMessage,
  1080.     DWORD *_pdwStubPhase);
  1081. HRESULT STDMETHODCALLTYPE IPStore_DeleteItem_Proxy( 
  1082.     IPStore __RPC_FAR * This,
  1083.     /* [in] */ PST_KEY Key,
  1084.     /* [in] */ const GUID __RPC_FAR *pItemType,
  1085.     /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  1086.     /* [in] */ LPCWSTR szItemName,
  1087.     /* [in] */ PPST_PROMPTINFO pPromptInfo,
  1088.     /* [in] */ DWORD dwFlags);
  1089. void __RPC_STUB IPStore_DeleteItem_Stub(
  1090.     IRpcStubBuffer *This,
  1091.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1092.     PRPC_MESSAGE _pRpcMessage,
  1093.     DWORD *_pdwStubPhase);
  1094. HRESULT STDMETHODCALLTYPE IPStore_ReadItem_Proxy( 
  1095.     IPStore __RPC_FAR * This,
  1096.     /* [in] */ PST_KEY Key,
  1097.     /* [in] */ const GUID __RPC_FAR *pItemType,
  1098.     /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  1099.     /* [in] */ LPCWSTR szItemName,
  1100.     /* [out] */ DWORD __RPC_FAR *pcbData,
  1101.     /* [size_is][size_is][out] */ BYTE __RPC_FAR *__RPC_FAR *ppbData,
  1102.     /* [in] */ PPST_PROMPTINFO pPromptInfo,
  1103.     /* [in] */ DWORD dwFlags);
  1104. void __RPC_STUB IPStore_ReadItem_Stub(
  1105.     IRpcStubBuffer *This,
  1106.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1107.     PRPC_MESSAGE _pRpcMessage,
  1108.     DWORD *_pdwStubPhase);
  1109. HRESULT STDMETHODCALLTYPE IPStore_WriteItem_Proxy( 
  1110.     IPStore __RPC_FAR * This,
  1111.     /* [in] */ PST_KEY Key,
  1112.     /* [in] */ const GUID __RPC_FAR *pItemType,
  1113.     /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  1114.     /* [in] */ LPCWSTR szItemName,
  1115.     /* [in] */ DWORD cbData,
  1116.     /* [size_is][in] */ BYTE __RPC_FAR *pbData,
  1117.     /* [in] */ PPST_PROMPTINFO pPromptInfo,
  1118.     /* [in] */ DWORD dwDefaultConfirmationStyle,
  1119.     /* [in] */ DWORD dwFlags);
  1120. void __RPC_STUB IPStore_WriteItem_Stub(
  1121.     IRpcStubBuffer *This,
  1122.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1123.     PRPC_MESSAGE _pRpcMessage,
  1124.     DWORD *_pdwStubPhase);
  1125. HRESULT STDMETHODCALLTYPE IPStore_OpenItem_Proxy( 
  1126.     IPStore __RPC_FAR * This,
  1127.     /* [in] */ PST_KEY Key,
  1128.     /* [in] */ const GUID __RPC_FAR *pItemType,
  1129.     /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  1130.     /* [in] */ LPCWSTR szItemName,
  1131.     /* [in] */ PST_ACCESSMODE ModeFlags,
  1132.     /* [in] */ PPST_PROMPTINFO pPromptInfo,
  1133.     /* [in] */ DWORD dwFlags);
  1134. void __RPC_STUB IPStore_OpenItem_Stub(
  1135.     IRpcStubBuffer *This,
  1136.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1137.     PRPC_MESSAGE _pRpcMessage,
  1138.     DWORD *_pdwStubPhase);
  1139. HRESULT STDMETHODCALLTYPE IPStore_CloseItem_Proxy( 
  1140.     IPStore __RPC_FAR * This,
  1141.     /* [in] */ PST_KEY Key,
  1142.     /* [in] */ const GUID __RPC_FAR *pItemType,
  1143.     /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  1144.     /* [in] */ LPCWSTR szItemName,
  1145.     /* [in] */ DWORD dwFlags);
  1146. void __RPC_STUB IPStore_CloseItem_Stub(
  1147.     IRpcStubBuffer *This,
  1148.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1149.     PRPC_MESSAGE _pRpcMessage,
  1150.     DWORD *_pdwStubPhase);
  1151. HRESULT STDMETHODCALLTYPE IPStore_EnumItems_Proxy( 
  1152.     IPStore __RPC_FAR * This,
  1153.     /* [in] */ PST_KEY Key,
  1154.     /* [in] */ const GUID __RPC_FAR *pItemType,
  1155.     /* [in] */ const GUID __RPC_FAR *pItemSubtype,
  1156.     /* [in] */ DWORD dwFlags,
  1157.     /* [in] */ IEnumPStoreItems __RPC_FAR *__RPC_FAR *ppenum);
  1158. void __RPC_STUB IPStore_EnumItems_Stub(
  1159.     IRpcStubBuffer *This,
  1160.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1161.     PRPC_MESSAGE _pRpcMessage,
  1162.     DWORD *_pdwStubPhase);
  1163. #endif  /* __IPStore_INTERFACE_DEFINED__ */
  1164. #ifndef __IEnumPStoreProviders_INTERFACE_DEFINED__
  1165. #define __IEnumPStoreProviders_INTERFACE_DEFINED__
  1166. /****************************************
  1167.  * Generated header for interface: IEnumPStoreProviders
  1168.  * at Wed Apr 23 23:56:14 1997
  1169.  * using MIDL 3.00.44
  1170.  ****************************************/
  1171. /* [unique][helpstring][uuid][object] */ 
  1172. EXTERN_C const IID IID_IEnumPStoreProviders;
  1173. #if defined(__cplusplus) && !defined(CINTERFACE)
  1174.     
  1175.     interface IEnumPStoreProviders : public IUnknown
  1176.     {
  1177.     public:
  1178.         virtual HRESULT STDMETHODCALLTYPE Next( 
  1179.             /* [in] */ DWORD celt,
  1180.             /* [out][size_is] */ PST_PROVIDERINFO __RPC_FAR *__RPC_FAR *rgelt,
  1181.             /* [out][in] */ DWORD __RPC_FAR *pceltFetched) = 0;
  1182.         
  1183.         virtual HRESULT STDMETHODCALLTYPE Skip( 
  1184.             /* [in] */ DWORD celt) = 0;
  1185.         
  1186.         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  1187.         
  1188.         virtual HRESULT STDMETHODCALLTYPE Clone( 
  1189.             /* [out] */ IEnumPStoreProviders __RPC_FAR *__RPC_FAR *ppenum) = 0;
  1190.         
  1191.     };
  1192.     
  1193. #else  /* C style interface */
  1194.     typedef struct IEnumPStoreProvidersVtbl
  1195.     {
  1196.         BEGIN_INTERFACE
  1197.         
  1198.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  1199.             IEnumPStoreProviders __RPC_FAR * This,
  1200.             /* [in] */ REFIID riid,
  1201.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  1202.         
  1203.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  1204.             IEnumPStoreProviders __RPC_FAR * This);
  1205.         
  1206.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  1207.             IEnumPStoreProviders __RPC_FAR * This);
  1208.         
  1209.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Next )( 
  1210.             IEnumPStoreProviders __RPC_FAR * This,
  1211.             /* [in] */ DWORD celt,
  1212.             /* [out][size_is] */ PST_PROVIDERINFO __RPC_FAR *__RPC_FAR *rgelt,
  1213.             /* [out][in] */ DWORD __RPC_FAR *pceltFetched);
  1214.         
  1215.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Skip )( 
  1216.             IEnumPStoreProviders __RPC_FAR * This,
  1217.             /* [in] */ DWORD celt);
  1218.         
  1219.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Reset )( 
  1220.             IEnumPStoreProviders __RPC_FAR * This);
  1221.         
  1222.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clone )( 
  1223.             IEnumPStoreProviders __RPC_FAR * This,
  1224.             /* [out] */ IEnumPStoreProviders __RPC_FAR *__RPC_FAR *ppenum);
  1225.         
  1226.         END_INTERFACE
  1227.     } IEnumPStoreProvidersVtbl;
  1228.     interface IEnumPStoreProviders
  1229.     {
  1230.         CONST_VTBL struct IEnumPStoreProvidersVtbl __RPC_FAR *lpVtbl;
  1231.     };
  1232.     
  1233. #ifdef COBJMACROS
  1234. #define IEnumPStoreProviders_QueryInterface(This,riid,ppvObject)
  1235.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1236. #define IEnumPStoreProviders_AddRef(This)
  1237.     (This)->lpVtbl -> AddRef(This)
  1238. #define IEnumPStoreProviders_Release(This)
  1239.     (This)->lpVtbl -> Release(This)
  1240. #define IEnumPStoreProviders_Next(This,celt,rgelt,pceltFetched)
  1241.     (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched)
  1242. #define IEnumPStoreProviders_Skip(This,celt)
  1243.     (This)->lpVtbl -> Skip(This,celt)
  1244. #define IEnumPStoreProviders_Reset(This)
  1245.     (This)->lpVtbl -> Reset(This)
  1246. #define IEnumPStoreProviders_Clone(This,ppenum)
  1247.     (This)->lpVtbl -> Clone(This,ppenum)
  1248. #endif /* COBJMACROS */
  1249. #endif  /* C style interface */
  1250. HRESULT STDMETHODCALLTYPE IEnumPStoreProviders_Next_Proxy( 
  1251.     IEnumPStoreProviders __RPC_FAR * This,
  1252.     /* [in] */ DWORD celt,
  1253.     /* [out][size_is] */ PST_PROVIDERINFO __RPC_FAR *__RPC_FAR *rgelt,
  1254.     /* [out][in] */ DWORD __RPC_FAR *pceltFetched);
  1255. void __RPC_STUB IEnumPStoreProviders_Next_Stub(
  1256.     IRpcStubBuffer *This,
  1257.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1258.     PRPC_MESSAGE _pRpcMessage,
  1259.     DWORD *_pdwStubPhase);
  1260. HRESULT STDMETHODCALLTYPE IEnumPStoreProviders_Skip_Proxy( 
  1261.     IEnumPStoreProviders __RPC_FAR * This,
  1262.     /* [in] */ DWORD celt);
  1263. void __RPC_STUB IEnumPStoreProviders_Skip_Stub(
  1264.     IRpcStubBuffer *This,
  1265.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1266.     PRPC_MESSAGE _pRpcMessage,
  1267.     DWORD *_pdwStubPhase);
  1268. HRESULT STDMETHODCALLTYPE IEnumPStoreProviders_Reset_Proxy( 
  1269.     IEnumPStoreProviders __RPC_FAR * This);
  1270. void __RPC_STUB IEnumPStoreProviders_Reset_Stub(
  1271.     IRpcStubBuffer *This,
  1272.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1273.     PRPC_MESSAGE _pRpcMessage,
  1274.     DWORD *_pdwStubPhase);
  1275. HRESULT STDMETHODCALLTYPE IEnumPStoreProviders_Clone_Proxy( 
  1276.     IEnumPStoreProviders __RPC_FAR * This,
  1277.     /* [out] */ IEnumPStoreProviders __RPC_FAR *__RPC_FAR *ppenum);
  1278. void __RPC_STUB IEnumPStoreProviders_Clone_Stub(
  1279.     IRpcStubBuffer *This,
  1280.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1281.     PRPC_MESSAGE _pRpcMessage,
  1282.     DWORD *_pdwStubPhase);
  1283. #endif  /* __IEnumPStoreProviders_INTERFACE_DEFINED__ */
  1284. #ifndef __PSTORECLib_LIBRARY_DEFINED__
  1285. #define __PSTORECLib_LIBRARY_DEFINED__
  1286. /****************************************
  1287.  * Generated header for library: PSTORECLib
  1288.  * at Wed Apr 23 23:56:14 1997
  1289.  * using MIDL 3.00.44
  1290.  ****************************************/
  1291. /* [helpstring][version][uuid] */ 
  1292. EXTERN_C const IID LIBID_PSTORECLib;
  1293. #ifdef __cplusplus
  1294. EXTERN_C const CLSID CLSID_CPStore;
  1295. class CPStore;
  1296. #endif
  1297. #ifdef __cplusplus
  1298. EXTERN_C const CLSID CLSID_CEnumTypes;
  1299. class CEnumTypes;
  1300. #endif
  1301. #ifdef __cplusplus
  1302. EXTERN_C const CLSID CLSID_CEnumItems;
  1303. class CEnumItems;
  1304. #endif
  1305. #endif /* __PSTORECLib_LIBRARY_DEFINED__ */
  1306. /****************************************
  1307.  * Generated header for interface: __MIDL__intf_0080
  1308.  * at Wed Apr 23 23:56:14 1997
  1309.  * using MIDL 3.00.44
  1310.  ****************************************/
  1311. /* [local] */ 
  1312. HRESULT __stdcall PStoreCreateInstance( 
  1313.     IPStore __RPC_FAR *__RPC_FAR *ppProvider,
  1314.     PST_PROVIDERID __RPC_FAR *pProviderID,
  1315.     void __RPC_FAR *pReserved,
  1316.     DWORD dwFlags);
  1317. HRESULT __stdcall PStoreEnumProviders( 
  1318.     DWORD dwFlags,
  1319.     IEnumPStoreProviders __RPC_FAR *__RPC_FAR *ppenum);
  1320. extern RPC_IF_HANDLE __MIDL__intf_0080_v0_0_c_ifspec;
  1321. extern RPC_IF_HANDLE __MIDL__intf_0080_v0_0_s_ifspec;
  1322. /* Additional Prototypes for ALL interfaces */
  1323. /* end of Additional Prototypes */
  1324. #ifdef __cplusplus
  1325. }
  1326. #endif
  1327. #endif // PSTORE_H