add pstore.h and an IDL file to generate it

Mike McCormack mike at codeweavers.com
Thu Apr 29 06:59:18 CDT 2004


ChangeLog:
* add pstore.h and an IDL file to generate it
-------------- next part --------------
Index: include/Makefile.in
===================================================================
RCS file: /home/wine/wine/include/Makefile.in,v
retrieving revision 1.127
diff -u -r1.127 Makefile.in
--- include/Makefile.in	23 Apr 2004 23:28:04 -0000	1.127
+++ include/Makefile.in	29 Apr 2004 10:57:59 -0000
@@ -17,6 +17,7 @@
 	objidl.idl \
 	ocidl.idl \
 	oleidl.idl \
+	pstore.idl \
 	servprov.idl \
 	shldisp.idl \
 	shobjidl.idl \
--- /dev/null	1994-07-18 08:46:18.000000000 +0900
+++ include/pstore.idl	2004-04-29 20:54:53.000000000 +0900
@@ -0,0 +1,245 @@
+
+import "objidl.idl";
+
+cpp_quote("#define PST_KEY_CURRENT_USER    0");
+cpp_quote("#define PST_KEY_LOCAL_MACHINE   1");
+
+cpp_quote("#define PST_E_OK          0x00000000L");
+cpp_quote("#define PST_E_TYPE_EXISTS 0x800C0004L");
+
+cpp_quote("#define PST_AUTHENTICODE        1");
+cpp_quote("#define PST_BINARY_CHECK        2");
+cpp_quote("#define PST_SECURITY_DESCRIPTOR 4");
+
+typedef DWORD PST_ACCESSMODE;
+typedef DWORD PST_ACCESSCLAUSETYPE;
+typedef DWORD PST_KEY;
+typedef DWORD PST_PROVIDERCAPABILITIES;
+typedef GUID PST_PROVIDERID, *PPST_PROVIDERID;
+
+typedef struct _PST_PROVIDERINFO
+{
+    DWORD cbSize;
+    PST_PROVIDERID ID;
+    PST_PROVIDERCAPABILITIES Capabilities;
+    LPWSTR szProviderName;
+} PST_PROVIDERINFO, *PPST_PROVIDERINFO;
+
+typedef void *PPST_PROMPTIFO;
+
+
+
+typedef struct {
+    DWORD cbSize;
+    PST_ACCESSCLAUSETYPE ClauseType;
+    DWORD cbClauseData;
+    BYTE* pbClauseData;
+} PST_ACCESSCLAUSE, *PPST_ACCESSCLAUSE;
+
+typedef struct {
+    DWORD cbSize;
+    PST_ACCESSMODE AccessModeFlags;
+    DWORD cClauses;
+    PST_ACCESSCLAUSE* rgClauses;
+} PST_ACCESSRULE, *PPST_ACCESSRULE;
+
+typedef struct {
+    DWORD cbSize;
+    DWORD cClause;
+    PST_ACCESSRULE* rgRules;
+} PST_ACCESSRULESET, *PPST_ACCESSRULESET;
+
+typedef struct {
+    DWORD cbSize;
+    LPWSTR szDisplayName;
+} PST_TYPEINFO, *PPST_TYPEINFO;
+
+typedef struct {
+    DWORD cbSize;
+    DWORD dwPromptFlags;
+    DWORD_PTR  hwndApp;
+    LPCWSTR szPrompt;
+} PST_PROMPTINFO, *PPST_PROMPTINFO;
+
+[
+  object,
+  pointer_default(unique)
+]
+interface IEnumPStoreItems : IUnknown
+{
+    HRESULT Clone(
+        [in] IEnumPStoreItems** ppenum );
+
+    HRESULT Next(
+        [in] DWORD celt,
+        [in] LPWSTR* rgelt,
+        [in] DWORD* pceltFetched );
+
+    HRESULT Reset();
+
+    HRESULT Skip(
+        [in] DWORD celt );
+}
+
+[
+  object,
+  pointer_default(unique)
+]
+interface IEnumPStoreTypes : IUnknown
+{
+    HRESULT Clone(
+        [in] IEnumPStoreTypes** ppenum );
+
+    HRESULT Next(
+        [in] DWORD celt,
+        [in] LPWSTR* rgelt,
+        [in] DWORD* pceltFetched );
+
+    HRESULT Reset();
+
+    HRESULT Skip(
+        [in] DWORD celt );
+}
+
+/*****************************************************************************
+ * IPStore interface
+ */
+[
+  object,
+  pointer_default(unique)
+]
+interface IPStore : IUnknown
+{
+    HRESULT GetInfo(
+        [in] PPST_PROVIDERINFO* ppProperties );
+
+    HRESULT GetProvParam(
+        [in] DWORD dwParam,
+        [out] DWORD* pcbData,
+        [out] BYTE** ppbData,
+        [in] DWORD dwFlags );
+
+    HRESULT SetProvParam(
+        [in] DWORD dwParam,
+        [in] DWORD cbData,
+        [in] BYTE* pbData,
+        [in] DWORD* dwFlags );
+
+    HRESULT CreateType(
+        [in] PST_KEY Key,
+        [in] const GUID* pType,
+        [in] PPST_TYPEINFO pInfo,
+        [in] DWORD dwFlags );
+
+    HRESULT GetTypeInfo(
+        [in] PST_KEY Key,
+        [in] const GUID* pType,
+        [in] PPST_TYPEINFO** ppInfo,
+        [in] DWORD dwFlags );
+
+    HRESULT DeleteType(
+        [in] PST_KEY Key,
+        [in] const GUID* pType,
+        [in] DWORD dwFlags );
+
+    HRESULT CreateSubtype(
+        [in] PST_KEY Key,
+        [in] const GUID* pType,
+        [in] const GUID* pSubtype,
+        [in] PPST_TYPEINFO pInfo,
+        [in] PPST_ACCESSRULESET pRules,
+        [in] DWORD dwFlags );
+
+    HRESULT GetSubtypeInfo(
+        [in] PST_KEY Key,
+        [in] const GUID* pType,
+        [in] const GUID* pSubtype,
+        [in] PPST_TYPEINFO** ppInfo,
+        [in] DWORD dwFlags );
+
+    HRESULT DeleteSubtype(
+        [in] PST_KEY Key,
+        [in] const GUID* pType,
+        [in] const GUID* pSubtype,
+        [in] DWORD dwFlags );
+
+    HRESULT ReadAccessRuleset(
+        [in] PST_KEY Key,
+        [in] const GUID* pType,
+        [in] const GUID* pSubtype,
+        [in] PPST_TYPEINFO pInfo,
+        [in] PPST_ACCESSRULESET** ppRules,
+        [in] DWORD dwFlags );
+
+    HRESULT WriteAccessRuleset(
+        [in] PST_KEY Key,
+        [in] const GUID* pType,
+        [in] const GUID* pSubtype,
+        [in] PPST_TYPEINFO pInfo,
+        [in] PPST_ACCESSRULESET pRules,
+        [in] DWORD dwFlags );
+
+    HRESULT EnumTypes(
+        [in] PST_KEY Key,
+        [in] DWORD dwFlags,
+        [in] IEnumPStoreTypes** ppenum );
+
+    HRESULT EnumSubtypes(
+        [in] PST_KEY Key,
+        [in] const GUID* pType,
+        [in] DWORD dwFlags,
+        [in] IEnumPStoreTypes** ppenum );
+
+    HRESULT DeleteItem(
+        [in] PST_KEY Key,
+        [in] const GUID* pItemType,
+        [in] const GUID* pItemSubType,
+        [in] LPCWSTR szItemName,
+        [in] PPST_PROMPTINFO pPromptInfo,
+        [in] DWORD dwFlags );
+
+    HRESULT ReadItem(
+        [in] PST_KEY Key,
+        [in] const GUID* pItemType,
+        [in] const GUID* pItemSubtype,
+        [in] LPCWSTR szItemName,
+        [in] DWORD *cbData,
+        [in] BYTE** pbData,
+        [in] PPST_PROMPTIFO pPromptInfo,
+        [in] DWORD dwFlags );
+
+    HRESULT WriteItem(
+        [in] PST_KEY Key,
+        [in] const GUID* pItemType,
+        [in] const GUID* pItemSubtype,
+        [in] LPCWSTR szItemName,
+        [out] DWORD cbData,
+        [out] BYTE *ppbData,
+        [in] PPST_PROMPTIFO pPromptInfo,
+        [in] DWORD dwDefaultConfirmationStyle,
+        [in] DWORD dwFlags);
+
+    HRESULT OpenItem(
+        [in] PST_KEY Key,
+        [in] const GUID* pItemType,
+        [in] const GUID* pItemSubtype,
+        [in] LPCWSTR* szItemName,
+        [in] PST_ACCESSMODE ModeFlags,
+        [in] PPST_PROMPTIFO pProomptInfo,
+        [in] DWORD dwFlags );
+
+    HRESULT CloseItem( 
+        [out] PST_KEY Key, 
+        [in] const GUID* pItemType, 
+        [in] const GUID* pItemSubtype,
+        [in] LPCWSTR* szItemName,
+        [in] DWORD dwFlags );
+
+    HRESULT EnumItems(
+        [in] PST_KEY Key,
+        [in] const GUID* pItemType,
+        [in] const GUID* pItemSubtype,
+        [in] DWORD dwFlags,
+        [in] IEnumPStoreItems** ppenum );
+}
+
--- /dev/null	1994-07-18 08:46:18.000000000 +0900
+++ include/pstore.h	2004-04-29 20:55:59.000000000 +0900
@@ -0,0 +1,935 @@
+/*** Autogenerated by WIDL 0.1 from pstore.idl - Do not edit ***/
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef __WIDL_PSTORE_H
+#define __WIDL_PSTORE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <objidl.h>
+#define PST_KEY_CURRENT_USER    0
+#define PST_KEY_LOCAL_MACHINE   1
+#define PST_E_OK          0x00000000L
+#define PST_E_TYPE_EXISTS 0x800C0004L
+#define PST_AUTHENTICODE        1
+#define PST_BINARY_CHECK        2
+#define PST_SECURITY_DESCRIPTOR 4
+typedef DWORD PST_ACCESSMODE;
+
+typedef DWORD PST_ACCESSCLAUSETYPE;
+
+typedef DWORD PST_KEY;
+
+typedef DWORD PST_PROVIDERCAPABILITIES;
+
+typedef GUID PST_PROVIDERID, *PPST_PROVIDERID;
+
+typedef struct _PST_PROVIDERINFO {
+    DWORD cbSize;
+    PST_PROVIDERID ID;
+    PST_PROVIDERCAPABILITIES Capabilities;
+    LPWSTR szProviderName;
+} PST_PROVIDERINFO, *PPST_PROVIDERINFO;
+
+typedef void *PPST_PROMPTIFO;
+
+typedef struct {
+    DWORD cbSize;
+    PST_ACCESSCLAUSETYPE ClauseType;
+    DWORD cbClauseData;
+    BYTE *pbClauseData;
+} PST_ACCESSCLAUSE, *PPST_ACCESSCLAUSE;
+
+typedef struct {
+    DWORD cbSize;
+    PST_ACCESSMODE AccessModeFlags;
+    DWORD cClauses;
+    PST_ACCESSCLAUSE *rgClauses;
+} PST_ACCESSRULE, *PPST_ACCESSRULE;
+
+typedef struct {
+    DWORD cbSize;
+    DWORD cClause;
+    PST_ACCESSRULE *rgRules;
+} PST_ACCESSRULESET, *PPST_ACCESSRULESET;
+
+typedef struct {
+    DWORD cbSize;
+    LPWSTR szDisplayName;
+} PST_TYPEINFO, *PPST_TYPEINFO;
+
+typedef struct {
+    DWORD cbSize;
+    DWORD dwPromptFlags;
+    DWORD_PTR hwndApp;
+    LPCWSTR szPrompt;
+} PST_PROMPTINFO, *PPST_PROMPTINFO;
+
+#ifndef __IEnumPStoreItems_FWD_DEFINED__
+#define __IEnumPStoreItems_FWD_DEFINED__
+typedef struct IEnumPStoreItems IEnumPStoreItems;
+#endif
+
+/*****************************************************************************
+ * IEnumPStoreItems interface
+ */
+#ifndef __IEnumPStoreItems_INTERFACE_DEFINED__
+#define __IEnumPStoreItems_INTERFACE_DEFINED__
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumPStoreItems : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumPStoreItems** ppenum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        DWORD celt,
+        LPWSTR* rgelt,
+        DWORD* pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        DWORD celt) = 0;
+
+};
+#else
+typedef struct IEnumPStoreItemsVtbl IEnumPStoreItemsVtbl;
+struct IEnumPStoreItems {
+    const IEnumPStoreItemsVtbl* lpVtbl;
+};
+struct IEnumPStoreItemsVtbl {
+    ICOM_MSVTABLE_COMPAT_FIELDS
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumPStoreItems* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumPStoreItems* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumPStoreItems* This);
+
+    /*** IEnumPStoreItems methods ***/
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumPStoreItems* This,
+        IEnumPStoreItems** ppenum);
+
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumPStoreItems* This,
+        DWORD celt,
+        LPWSTR* rgelt,
+        DWORD* pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumPStoreItems* This);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumPStoreItems* This,
+        DWORD celt);
+
+};
+
+/*** IUnknown methods ***/
+#define IEnumPStoreItems_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumPStoreItems_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumPStoreItems_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumPStoreItems methods ***/
+#define IEnumPStoreItems_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+#define IEnumPStoreItems_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumPStoreItems_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumPStoreItems_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+
+#endif
+
+#define IEnumPStoreItems_METHODS \
+    ICOM_MSVTABLE_COMPAT_FIELDS \
+    /*** IUnknown methods ***/ \
+    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
+    STDMETHOD_(ULONG,Release)(THIS) PURE; \
+    /*** IEnumPStoreItems methods ***/ \
+    STDMETHOD_(HRESULT,Clone)(THIS_ IEnumPStoreItems** ppenum) PURE; \
+    STDMETHOD_(HRESULT,Next)(THIS_ DWORD celt, LPWSTR* rgelt, DWORD* pceltFetched) PURE; \
+    STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
+    STDMETHOD_(HRESULT,Skip)(THIS_ DWORD celt) PURE;
+
+HRESULT CALLBACK IEnumPStoreItems_Clone_Proxy(
+    IEnumPStoreItems* This,
+    IEnumPStoreItems** ppenum);
+void __RPC_STUB IEnumPStoreItems_Clone_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumPStoreItems_Next_Proxy(
+    IEnumPStoreItems* This,
+    DWORD celt,
+    LPWSTR* rgelt,
+    DWORD* pceltFetched);
+void __RPC_STUB IEnumPStoreItems_Next_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumPStoreItems_Reset_Proxy(
+    IEnumPStoreItems* This);
+void __RPC_STUB IEnumPStoreItems_Reset_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumPStoreItems_Skip_Proxy(
+    IEnumPStoreItems* This,
+    DWORD celt);
+void __RPC_STUB IEnumPStoreItems_Skip_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IEnumPStoreItems_INTERFACE_DEFINED__ */
+
+#ifndef __IEnumPStoreTypes_FWD_DEFINED__
+#define __IEnumPStoreTypes_FWD_DEFINED__
+typedef struct IEnumPStoreTypes IEnumPStoreTypes;
+#endif
+
+/*****************************************************************************
+ * IEnumPStoreTypes interface
+ */
+#ifndef __IEnumPStoreTypes_INTERFACE_DEFINED__
+#define __IEnumPStoreTypes_INTERFACE_DEFINED__
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumPStoreTypes : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumPStoreTypes** ppenum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        DWORD celt,
+        LPWSTR* rgelt,
+        DWORD* pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        DWORD celt) = 0;
+
+};
+#else
+typedef struct IEnumPStoreTypesVtbl IEnumPStoreTypesVtbl;
+struct IEnumPStoreTypes {
+    const IEnumPStoreTypesVtbl* lpVtbl;
+};
+struct IEnumPStoreTypesVtbl {
+    ICOM_MSVTABLE_COMPAT_FIELDS
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumPStoreTypes* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumPStoreTypes* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumPStoreTypes* This);
+
+    /*** IEnumPStoreTypes methods ***/
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumPStoreTypes* This,
+        IEnumPStoreTypes** ppenum);
+
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumPStoreTypes* This,
+        DWORD celt,
+        LPWSTR* rgelt,
+        DWORD* pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumPStoreTypes* This);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumPStoreTypes* This,
+        DWORD celt);
+
+};
+
+/*** IUnknown methods ***/
+#define IEnumPStoreTypes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumPStoreTypes_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumPStoreTypes_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumPStoreTypes methods ***/
+#define IEnumPStoreTypes_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+#define IEnumPStoreTypes_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumPStoreTypes_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumPStoreTypes_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+
+#endif
+
+#define IEnumPStoreTypes_METHODS \
+    ICOM_MSVTABLE_COMPAT_FIELDS \
+    /*** IUnknown methods ***/ \
+    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
+    STDMETHOD_(ULONG,Release)(THIS) PURE; \
+    /*** IEnumPStoreTypes methods ***/ \
+    STDMETHOD_(HRESULT,Clone)(THIS_ IEnumPStoreTypes** ppenum) PURE; \
+    STDMETHOD_(HRESULT,Next)(THIS_ DWORD celt, LPWSTR* rgelt, DWORD* pceltFetched) PURE; \
+    STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
+    STDMETHOD_(HRESULT,Skip)(THIS_ DWORD celt) PURE;
+
+HRESULT CALLBACK IEnumPStoreTypes_Clone_Proxy(
+    IEnumPStoreTypes* This,
+    IEnumPStoreTypes** ppenum);
+void __RPC_STUB IEnumPStoreTypes_Clone_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumPStoreTypes_Next_Proxy(
+    IEnumPStoreTypes* This,
+    DWORD celt,
+    LPWSTR* rgelt,
+    DWORD* pceltFetched);
+void __RPC_STUB IEnumPStoreTypes_Next_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumPStoreTypes_Reset_Proxy(
+    IEnumPStoreTypes* This);
+void __RPC_STUB IEnumPStoreTypes_Reset_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumPStoreTypes_Skip_Proxy(
+    IEnumPStoreTypes* This,
+    DWORD celt);
+void __RPC_STUB IEnumPStoreTypes_Skip_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IEnumPStoreTypes_INTERFACE_DEFINED__ */
+
+#ifndef __IPStore_FWD_DEFINED__
+#define __IPStore_FWD_DEFINED__
+typedef struct IPStore IPStore;
+#endif
+
+/*****************************************************************************
+ * IPStore interface
+ */
+#ifndef __IPStore_INTERFACE_DEFINED__
+#define __IPStore_INTERFACE_DEFINED__
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IPStore : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetInfo(
+        PPST_PROVIDERINFO* ppProperties) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetProvParam(
+        DWORD dwParam,
+        DWORD* pcbData,
+        BYTE** ppbData,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetProvParam(
+        DWORD dwParam,
+        DWORD cbData,
+        BYTE* pbData,
+        DWORD* dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateType(
+        PST_KEY Key,
+        const GUID* pType,
+        PPST_TYPEINFO pInfo,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(
+        PST_KEY Key,
+        const GUID* pType,
+        PPST_TYPEINFO** ppInfo,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteType(
+        PST_KEY Key,
+        const GUID* pType,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateSubtype(
+        PST_KEY Key,
+        const GUID* pType,
+        const GUID* pSubtype,
+        PPST_TYPEINFO pInfo,
+        PPST_ACCESSRULESET pRules,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetSubtypeInfo(
+        PST_KEY Key,
+        const GUID* pType,
+        const GUID* pSubtype,
+        PPST_TYPEINFO** ppInfo,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteSubtype(
+        PST_KEY Key,
+        const GUID* pType,
+        const GUID* pSubtype,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReadAccessRuleset(
+        PST_KEY Key,
+        const GUID* pType,
+        const GUID* pSubtype,
+        PPST_TYPEINFO pInfo,
+        PPST_ACCESSRULESET** ppRules,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WriteAccessRuleset(
+        PST_KEY Key,
+        const GUID* pType,
+        const GUID* pSubtype,
+        PPST_TYPEINFO pInfo,
+        PPST_ACCESSRULESET pRules,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumTypes(
+        PST_KEY Key,
+        DWORD dwFlags,
+        IEnumPStoreTypes** ppenum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumSubtypes(
+        PST_KEY Key,
+        const GUID* pType,
+        DWORD dwFlags,
+        IEnumPStoreTypes** ppenum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteItem(
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubType,
+        LPCWSTR szItemName,
+        PPST_PROMPTINFO pPromptInfo,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReadItem(
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubtype,
+        LPCWSTR szItemName,
+        DWORD* cbData,
+        BYTE** pbData,
+        PPST_PROMPTIFO pPromptInfo,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WriteItem(
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubtype,
+        LPCWSTR szItemName,
+        DWORD cbData,
+        BYTE* ppbData,
+        PPST_PROMPTIFO pPromptInfo,
+        DWORD dwDefaultConfirmationStyle,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OpenItem(
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubtype,
+        LPCWSTR* szItemName,
+        PST_ACCESSMODE ModeFlags,
+        PPST_PROMPTIFO pProomptInfo,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CloseItem(
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubtype,
+        LPCWSTR* szItemName,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumItems(
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubtype,
+        DWORD dwFlags,
+        IEnumPStoreItems** ppenum) = 0;
+
+};
+#else
+typedef struct IPStoreVtbl IPStoreVtbl;
+struct IPStore {
+    const IPStoreVtbl* lpVtbl;
+};
+struct IPStoreVtbl {
+    ICOM_MSVTABLE_COMPAT_FIELDS
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IPStore* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IPStore* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IPStore* This);
+
+    /*** IPStore methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetInfo)(
+        IPStore* This,
+        PPST_PROVIDERINFO* ppProperties);
+
+    HRESULT (STDMETHODCALLTYPE *GetProvParam)(
+        IPStore* This,
+        DWORD dwParam,
+        DWORD* pcbData,
+        BYTE** ppbData,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *SetProvParam)(
+        IPStore* This,
+        DWORD dwParam,
+        DWORD cbData,
+        BYTE* pbData,
+        DWORD* dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *CreateType)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pType,
+        PPST_TYPEINFO pInfo,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pType,
+        PPST_TYPEINFO** ppInfo,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteType)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pType,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *CreateSubtype)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pType,
+        const GUID* pSubtype,
+        PPST_TYPEINFO pInfo,
+        PPST_ACCESSRULESET pRules,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *GetSubtypeInfo)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pType,
+        const GUID* pSubtype,
+        PPST_TYPEINFO** ppInfo,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteSubtype)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pType,
+        const GUID* pSubtype,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *ReadAccessRuleset)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pType,
+        const GUID* pSubtype,
+        PPST_TYPEINFO pInfo,
+        PPST_ACCESSRULESET** ppRules,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *WriteAccessRuleset)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pType,
+        const GUID* pSubtype,
+        PPST_TYPEINFO pInfo,
+        PPST_ACCESSRULESET pRules,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *EnumTypes)(
+        IPStore* This,
+        PST_KEY Key,
+        DWORD dwFlags,
+        IEnumPStoreTypes** ppenum);
+
+    HRESULT (STDMETHODCALLTYPE *EnumSubtypes)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pType,
+        DWORD dwFlags,
+        IEnumPStoreTypes** ppenum);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteItem)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubType,
+        LPCWSTR szItemName,
+        PPST_PROMPTINFO pPromptInfo,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *ReadItem)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubtype,
+        LPCWSTR szItemName,
+        DWORD* cbData,
+        BYTE** pbData,
+        PPST_PROMPTIFO pPromptInfo,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *WriteItem)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubtype,
+        LPCWSTR szItemName,
+        DWORD cbData,
+        BYTE* ppbData,
+        PPST_PROMPTIFO pPromptInfo,
+        DWORD dwDefaultConfirmationStyle,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *OpenItem)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubtype,
+        LPCWSTR* szItemName,
+        PST_ACCESSMODE ModeFlags,
+        PPST_PROMPTIFO pProomptInfo,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *CloseItem)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubtype,
+        LPCWSTR* szItemName,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *EnumItems)(
+        IPStore* This,
+        PST_KEY Key,
+        const GUID* pItemType,
+        const GUID* pItemSubtype,
+        DWORD dwFlags,
+        IEnumPStoreItems** ppenum);
+
+};
+
+/*** IUnknown methods ***/
+#define IPStore_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IPStore_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IPStore_Release(p) (p)->lpVtbl->Release(p)
+/*** IPStore methods ***/
+#define IPStore_GetInfo(p,a) (p)->lpVtbl->GetInfo(p,a)
+#define IPStore_GetProvParam(p,a,b,c,d) (p)->lpVtbl->GetProvParam(p,a,b,c,d)
+#define IPStore_SetProvParam(p,a,b,c,d) (p)->lpVtbl->SetProvParam(p,a,b,c,d)
+#define IPStore_CreateType(p,a,b,c,d) (p)->lpVtbl->CreateType(p,a,b,c,d)
+#define IPStore_GetTypeInfo(p,a,b,c,d) (p)->lpVtbl->GetTypeInfo(p,a,b,c,d)
+#define IPStore_DeleteType(p,a,b,c) (p)->lpVtbl->DeleteType(p,a,b,c)
+#define IPStore_CreateSubtype(p,a,b,c,d,e,f) (p)->lpVtbl->CreateSubtype(p,a,b,c,d,e,f)
+#define IPStore_GetSubtypeInfo(p,a,b,c,d,e) (p)->lpVtbl->GetSubtypeInfo(p,a,b,c,d,e)
+#define IPStore_DeleteSubtype(p,a,b,c,d) (p)->lpVtbl->DeleteSubtype(p,a,b,c,d)
+#define IPStore_ReadAccessRuleset(p,a,b,c,d,e,f) (p)->lpVtbl->ReadAccessRuleset(p,a,b,c,d,e,f)
+#define IPStore_WriteAccessRuleset(p,a,b,c,d,e,f) (p)->lpVtbl->WriteAccessRuleset(p,a,b,c,d,e,f)
+#define IPStore_EnumTypes(p,a,b,c) (p)->lpVtbl->EnumTypes(p,a,b,c)
+#define IPStore_EnumSubtypes(p,a,b,c,d) (p)->lpVtbl->EnumSubtypes(p,a,b,c,d)
+#define IPStore_DeleteItem(p,a,b,c,d,e,f) (p)->lpVtbl->DeleteItem(p,a,b,c,d,e,f)
+#define IPStore_ReadItem(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->ReadItem(p,a,b,c,d,e,f,g,h)
+#define IPStore_WriteItem(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->WriteItem(p,a,b,c,d,e,f,g,h,i)
+#define IPStore_OpenItem(p,a,b,c,d,e,f,g) (p)->lpVtbl->OpenItem(p,a,b,c,d,e,f,g)
+#define IPStore_CloseItem(p,a,b,c,d,e) (p)->lpVtbl->CloseItem(p,a,b,c,d,e)
+#define IPStore_EnumItems(p,a,b,c,d,e) (p)->lpVtbl->EnumItems(p,a,b,c,d,e)
+
+#endif
+
+#define IPStore_METHODS \
+    ICOM_MSVTABLE_COMPAT_FIELDS \
+    /*** IUnknown methods ***/ \
+    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
+    STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
+    STDMETHOD_(ULONG,Release)(THIS) PURE; \
+    /*** IPStore methods ***/ \
+    STDMETHOD_(HRESULT,GetInfo)(THIS_ PPST_PROVIDERINFO* ppProperties) PURE; \
+    STDMETHOD_(HRESULT,GetProvParam)(THIS_ DWORD dwParam, DWORD* pcbData, BYTE** ppbData, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,SetProvParam)(THIS_ DWORD dwParam, DWORD cbData, BYTE* pbData, DWORD* dwFlags) PURE; \
+    STDMETHOD_(HRESULT,CreateType)(THIS_ PST_KEY Key, const GUID* pType, PPST_TYPEINFO pInfo, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ PST_KEY Key, const GUID* pType, PPST_TYPEINFO** ppInfo, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,DeleteType)(THIS_ PST_KEY Key, const GUID* pType, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,CreateSubtype)(THIS_ PST_KEY Key, const GUID* pType, const GUID* pSubtype, PPST_TYPEINFO pInfo, PPST_ACCESSRULESET pRules, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,GetSubtypeInfo)(THIS_ PST_KEY Key, const GUID* pType, const GUID* pSubtype, PPST_TYPEINFO** ppInfo, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,DeleteSubtype)(THIS_ PST_KEY Key, const GUID* pType, const GUID* pSubtype, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,ReadAccessRuleset)(THIS_ PST_KEY Key, const GUID* pType, const GUID* pSubtype, PPST_TYPEINFO pInfo, PPST_ACCESSRULESET** ppRules, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,WriteAccessRuleset)(THIS_ PST_KEY Key, const GUID* pType, const GUID* pSubtype, PPST_TYPEINFO pInfo, PPST_ACCESSRULESET pRules, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,EnumTypes)(THIS_ PST_KEY Key, DWORD dwFlags, IEnumPStoreTypes** ppenum) PURE; \
+    STDMETHOD_(HRESULT,EnumSubtypes)(THIS_ PST_KEY Key, const GUID* pType, DWORD dwFlags, IEnumPStoreTypes** ppenum) PURE; \
+    STDMETHOD_(HRESULT,DeleteItem)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubType, LPCWSTR szItemName, PPST_PROMPTINFO pPromptInfo, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,ReadItem)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubtype, LPCWSTR szItemName, DWORD* cbData, BYTE** pbData, PPST_PROMPTIFO pPromptInfo, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,WriteItem)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubtype, LPCWSTR szItemName, DWORD cbData, BYTE* ppbData, PPST_PROMPTIFO pPromptInfo, DWORD dwDefaultConfirmationStyle, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,OpenItem)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubtype, LPCWSTR* szItemName, PST_ACCESSMODE ModeFlags, PPST_PROMPTIFO pProomptInfo, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,CloseItem)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubtype, LPCWSTR* szItemName, DWORD dwFlags) PURE; \
+    STDMETHOD_(HRESULT,EnumItems)(THIS_ PST_KEY Key, const GUID* pItemType, const GUID* pItemSubtype, DWORD dwFlags, IEnumPStoreItems** ppenum) PURE;
+
+HRESULT CALLBACK IPStore_GetInfo_Proxy(
+    IPStore* This,
+    PPST_PROVIDERINFO* ppProperties);
+void __RPC_STUB IPStore_GetInfo_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_GetProvParam_Proxy(
+    IPStore* This,
+    DWORD dwParam,
+    DWORD* pcbData,
+    BYTE** ppbData,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_GetProvParam_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_SetProvParam_Proxy(
+    IPStore* This,
+    DWORD dwParam,
+    DWORD cbData,
+    BYTE* pbData,
+    DWORD* dwFlags);
+void __RPC_STUB IPStore_SetProvParam_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_CreateType_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pType,
+    PPST_TYPEINFO pInfo,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_CreateType_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_GetTypeInfo_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pType,
+    PPST_TYPEINFO** ppInfo,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_GetTypeInfo_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_DeleteType_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pType,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_DeleteType_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_CreateSubtype_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pType,
+    const GUID* pSubtype,
+    PPST_TYPEINFO pInfo,
+    PPST_ACCESSRULESET pRules,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_CreateSubtype_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_GetSubtypeInfo_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pType,
+    const GUID* pSubtype,
+    PPST_TYPEINFO** ppInfo,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_GetSubtypeInfo_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_DeleteSubtype_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pType,
+    const GUID* pSubtype,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_DeleteSubtype_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_ReadAccessRuleset_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pType,
+    const GUID* pSubtype,
+    PPST_TYPEINFO pInfo,
+    PPST_ACCESSRULESET** ppRules,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_ReadAccessRuleset_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_WriteAccessRuleset_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pType,
+    const GUID* pSubtype,
+    PPST_TYPEINFO pInfo,
+    PPST_ACCESSRULESET pRules,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_WriteAccessRuleset_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_EnumTypes_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    DWORD dwFlags,
+    IEnumPStoreTypes** ppenum);
+void __RPC_STUB IPStore_EnumTypes_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_EnumSubtypes_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pType,
+    DWORD dwFlags,
+    IEnumPStoreTypes** ppenum);
+void __RPC_STUB IPStore_EnumSubtypes_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_DeleteItem_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pItemType,
+    const GUID* pItemSubType,
+    LPCWSTR szItemName,
+    PPST_PROMPTINFO pPromptInfo,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_DeleteItem_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_ReadItem_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pItemType,
+    const GUID* pItemSubtype,
+    LPCWSTR szItemName,
+    DWORD* cbData,
+    BYTE** pbData,
+    PPST_PROMPTIFO pPromptInfo,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_ReadItem_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_WriteItem_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pItemType,
+    const GUID* pItemSubtype,
+    LPCWSTR szItemName,
+    DWORD cbData,
+    BYTE* ppbData,
+    PPST_PROMPTIFO pPromptInfo,
+    DWORD dwDefaultConfirmationStyle,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_WriteItem_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_OpenItem_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pItemType,
+    const GUID* pItemSubtype,
+    LPCWSTR* szItemName,
+    PST_ACCESSMODE ModeFlags,
+    PPST_PROMPTIFO pProomptInfo,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_OpenItem_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_CloseItem_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pItemType,
+    const GUID* pItemSubtype,
+    LPCWSTR* szItemName,
+    DWORD dwFlags);
+void __RPC_STUB IPStore_CloseItem_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPStore_EnumItems_Proxy(
+    IPStore* This,
+    PST_KEY Key,
+    const GUID* pItemType,
+    const GUID* pItemSubtype,
+    DWORD dwFlags,
+    IEnumPStoreItems** ppenum);
+void __RPC_STUB IPStore_EnumItems_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IPStore_INTERFACE_DEFINED__ */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __WIDL_PSTORE_H */


More information about the wine-patches mailing list