Wrote a new objidl.idl to replace a number of include/wine/obj_*.h
files.
diff --git a/include/objidl.h b/include/objidl.h
index 062bea0..657250a 100644
--- a/include/objidl.h
+++ b/include/objidl.h
@@ -1,52 +1,8966 @@
-/*
- * Copyright (C) the Wine project
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __WINE__
+/*** Autogenerated by WIDL 0.1 from objidl.idl - Do not edit ***/
#include "rpc.h"
#include "rpcndr.h"
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif
-#endif
-#ifndef __WINE_OBJIDL_H
-#define __WINE_OBJIDL_H
-
-#if defined(__WINE__) && !defined(INITGUID) && !defined(__WINE_INCLUDE_OBJIDL)
-#error DO NOT INCLUDE DIRECTLY
+#ifndef __WIDL_OBJIDL_H
+#define __WIDL_OBJIDL_H
+#ifdef __cplusplus
+extern "C" {
#endif
-
#include "unknwn.h"
+typedef struct IStream IStream;
+typedef struct IStream16 IStream16;
+typedef struct IEnumString IEnumString;
+typedef struct IRunningObjectTable IRunningObjectTable;
+typedef struct IMoniker IMoniker;
+typedef struct IAdviseSink IAdviseSink;
+typedef struct IAsyncManager IAsyncManager;
+typedef struct IMarshal IMarshal;
+typedef IMarshal *LPMARSHAL;
-/* the following depend only on obj_base.h */
-#include "wine/obj_misc.h"
-#include "wine/obj_channel.h"
-#include "wine/obj_clientserver.h"
-#include "wine/obj_storage.h"
+/*****************************************************************************
+ * IMarshal interface
+ */
+DEFINE_GUID(IID_IMarshal, 0x00000003, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IMarshal: IUnknown {
-/* the following depend on obj_storage.h */
-#include "wine/obj_marshal.h"
-#include "wine/obj_moniker.h"
-#include "wine/obj_propertystorage.h"
+ virtual HRESULT CALLBACK GetUnmarshalClass(
+ REFIID riid,
+ void* pv,
+ DWORD dwDestContext,
+ void* pvDestContext,
+ DWORD mshlflags,
+ CLSID* pCid) = 0;
-/* the following depend on obj_moniker.h */
-#include "wine/obj_dataobject.h"
+ virtual HRESULT CALLBACK GetMarshalSizeMax(
+ REFIID riid,
+ void* pv,
+ DWORD dwDestContext,
+ void* pvDestContext,
+ DWORD mshlflags,
+ DWORD* pSize) = 0;
+ virtual HRESULT CALLBACK MarshalInterface(
+ IStream* pStm,
+ REFIID riid,
+ void* pv,
+ DWORD dwDestContext,
+ void* pvDestContext,
+ DWORD mshlflags) = 0;
-#endif /* __WINE_OBJIDL_H */
+ virtual HRESULT CALLBACK UnmarshalInterface(
+ IStream* pStm,
+ REFIID riid,
+ void** ppv) = 0;
+
+ virtual HRESULT CALLBACK ReleaseMarshalData(
+ IStream* pStm) = 0;
+
+ virtual HRESULT CALLBACK DisconnectObject(
+ DWORD dwReserved) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IMarshalVtbl IMarshalVtbl;
+struct IMarshal {
+ const IMarshalVtbl* lpVtbl;
+};
+struct IMarshalVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IMarshal* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IMarshal* This);
+
+ ULONG (CALLBACK *Release)(
+ IMarshal* This);
+
+ /*** IMarshal methods ***/
+ HRESULT (CALLBACK *GetUnmarshalClass)(
+ IMarshal* This,
+ REFIID riid,
+ void* pv,
+ DWORD dwDestContext,
+ void* pvDestContext,
+ DWORD mshlflags,
+ CLSID* pCid);
+
+ HRESULT (CALLBACK *GetMarshalSizeMax)(
+ IMarshal* This,
+ REFIID riid,
+ void* pv,
+ DWORD dwDestContext,
+ void* pvDestContext,
+ DWORD mshlflags,
+ DWORD* pSize);
+
+ HRESULT (CALLBACK *MarshalInterface)(
+ IMarshal* This,
+ IStream* pStm,
+ REFIID riid,
+ void* pv,
+ DWORD dwDestContext,
+ void* pvDestContext,
+ DWORD mshlflags);
+
+ HRESULT (CALLBACK *UnmarshalInterface)(
+ IMarshal* This,
+ IStream* pStm,
+ REFIID riid,
+ void** ppv);
+
+ HRESULT (CALLBACK *ReleaseMarshalData)(
+ IMarshal* This,
+ IStream* pStm);
+
+ HRESULT (CALLBACK *DisconnectObject)(
+ IMarshal* This,
+ DWORD dwReserved);
+
+};
+
+#define IMarshal_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD6 (HRESULT,GetUnmarshalClass,REFIID,riid,void*,pv,DWORD,dwDestContext,void*,pvDestContext,DWORD,mshlflags,CLSID*,pCid) \
+ ICOM_METHOD6 (HRESULT,GetMarshalSizeMax,REFIID,riid,void*,pv,DWORD,dwDestContext,void*,pvDestContext,DWORD,mshlflags,DWORD*,pSize) \
+ ICOM_METHOD6 (HRESULT,MarshalInterface,IStream*,pStm,REFIID,riid,void*,pv,DWORD,dwDestContext,void*,pvDestContext,DWORD,mshlflags) \
+ ICOM_METHOD3 (HRESULT,UnmarshalInterface,IStream*,pStm,REFIID,riid,void**,ppv) \
+ ICOM_METHOD1 (HRESULT,ReleaseMarshalData,IStream*,pStm) \
+ ICOM_METHOD1 (HRESULT,DisconnectObject,DWORD,dwReserved)
+
+/*** IUnknown methods ***/
+#define IMarshal_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IMarshal_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IMarshal_Release(p) (p)->lpVtbl->Release(p)
+/*** IMarshal methods ***/
+#define IMarshal_GetUnmarshalClass(p,a,b,c,d,e,f) (p)->lpVtbl->GetUnmarshalClass(p,a,b,c,d,e,f)
+#define IMarshal_GetMarshalSizeMax(p,a,b,c,d,e,f) (p)->lpVtbl->GetMarshalSizeMax(p,a,b,c,d,e,f)
+#define IMarshal_MarshalInterface(p,a,b,c,d,e,f) (p)->lpVtbl->MarshalInterface(p,a,b,c,d,e,f)
+#define IMarshal_UnmarshalInterface(p,a,b,c) (p)->lpVtbl->UnmarshalInterface(p,a,b,c)
+#define IMarshal_ReleaseMarshalData(p,a) (p)->lpVtbl->ReleaseMarshalData(p,a)
+#define IMarshal_DisconnectObject(p,a) (p)->lpVtbl->DisconnectObject(p,a)
+
+#endif
+
+HRESULT CALLBACK IMarshal_GetUnmarshalClass_Proxy(
+ IMarshal* This,
+ REFIID riid,
+ void* pv,
+ DWORD dwDestContext,
+ void* pvDestContext,
+ DWORD mshlflags,
+ CLSID* pCid);
+void __RPC_STUB IMarshal_GetUnmarshalClass_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMarshal_GetMarshalSizeMax_Proxy(
+ IMarshal* This,
+ REFIID riid,
+ void* pv,
+ DWORD dwDestContext,
+ void* pvDestContext,
+ DWORD mshlflags,
+ DWORD* pSize);
+void __RPC_STUB IMarshal_GetMarshalSizeMax_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMarshal_MarshalInterface_Proxy(
+ IMarshal* This,
+ IStream* pStm,
+ REFIID riid,
+ void* pv,
+ DWORD dwDestContext,
+ void* pvDestContext,
+ DWORD mshlflags);
+void __RPC_STUB IMarshal_MarshalInterface_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMarshal_UnmarshalInterface_Proxy(
+ IMarshal* This,
+ IStream* pStm,
+ REFIID riid,
+ void** ppv);
+void __RPC_STUB IMarshal_UnmarshalInterface_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMarshal_ReleaseMarshalData_Proxy(
+ IMarshal* This,
+ IStream* pStm);
+void __RPC_STUB IMarshal_ReleaseMarshalData_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMarshal_DisconnectObject_Proxy(
+ IMarshal* This,
+ DWORD dwReserved);
+void __RPC_STUB IMarshal_DisconnectObject_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IStdMarshalInfo IStdMarshalInfo;
+typedef IStdMarshalInfo *LPSTDMARSHALINFO;
+
+/*****************************************************************************
+ * IStdMarshalInfo interface
+ */
+DEFINE_GUID(IID_IStdMarshalInfo, 0x00000018, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IStdMarshalInfo: IUnknown {
+
+ virtual HRESULT CALLBACK GetClassForHandler(
+ DWORD dwDestContext,
+ void* pvDestContext,
+ CLSID* pClsid) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IStdMarshalInfoVtbl IStdMarshalInfoVtbl;
+struct IStdMarshalInfo {
+ const IStdMarshalInfoVtbl* lpVtbl;
+};
+struct IStdMarshalInfoVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IStdMarshalInfo* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IStdMarshalInfo* This);
+
+ ULONG (CALLBACK *Release)(
+ IStdMarshalInfo* This);
+
+ /*** IStdMarshalInfo methods ***/
+ HRESULT (CALLBACK *GetClassForHandler)(
+ IStdMarshalInfo* This,
+ DWORD dwDestContext,
+ void* pvDestContext,
+ CLSID* pClsid);
+
+};
+
+#define IStdMarshalInfo_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,GetClassForHandler,DWORD,dwDestContext,void*,pvDestContext,CLSID*,pClsid)
+
+/*** IUnknown methods ***/
+#define IStdMarshalInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IStdMarshalInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IStdMarshalInfo_Release(p) (p)->lpVtbl->Release(p)
+/*** IStdMarshalInfo methods ***/
+#define IStdMarshalInfo_GetClassForHandler(p,a,b,c) (p)->lpVtbl->GetClassForHandler(p,a,b,c)
+
+#endif
+
+HRESULT CALLBACK IStdMarshalInfo_GetClassForHandler_Proxy(
+ IStdMarshalInfo* This,
+ DWORD dwDestContext,
+ void* pvDestContext,
+ CLSID* pClsid);
+void __RPC_STUB IStdMarshalInfo_GetClassForHandler_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IExternalConnection IExternalConnection;
+typedef IExternalConnection *LPEXTERNALCONNECTION;
+
+typedef enum tagEXTCONN {
+ EXTCONN_STRONG = 0x1,
+ EXTCONN_WEAK = 0x2,
+ EXTCONN_CALLABLE = 0x4
+} EXTCONN;
+
+/*****************************************************************************
+ * IExternalConnection interface
+ */
+DEFINE_GUID(IID_IExternalConnection, 0x00000019, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IExternalConnection: IUnknown {
+
+ virtual DWORD CALLBACK AddConnection(
+ DWORD extconn,
+ DWORD reserved) = 0;
+
+ virtual DWORD CALLBACK ReleaseConnection(
+ DWORD extconn,
+ DWORD reserved,
+ BOOL fLastReleaseCloses) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IExternalConnectionVtbl IExternalConnectionVtbl;
+struct IExternalConnection {
+ const IExternalConnectionVtbl* lpVtbl;
+};
+struct IExternalConnectionVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IExternalConnection* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IExternalConnection* This);
+
+ ULONG (CALLBACK *Release)(
+ IExternalConnection* This);
+
+ /*** IExternalConnection methods ***/
+ DWORD (CALLBACK *AddConnection)(
+ IExternalConnection* This,
+ DWORD extconn,
+ DWORD reserved);
+
+ DWORD (CALLBACK *ReleaseConnection)(
+ IExternalConnection* This,
+ DWORD extconn,
+ DWORD reserved,
+ BOOL fLastReleaseCloses);
+
+};
+
+#define IExternalConnection_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD2 (DWORD,AddConnection,DWORD,extconn,DWORD,reserved) \
+ ICOM_METHOD3 (DWORD,ReleaseConnection,DWORD,extconn,DWORD,reserved,BOOL,fLastReleaseCloses)
+
+/*** IUnknown methods ***/
+#define IExternalConnection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IExternalConnection_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IExternalConnection_Release(p) (p)->lpVtbl->Release(p)
+/*** IExternalConnection methods ***/
+#define IExternalConnection_AddConnection(p,a,b) (p)->lpVtbl->AddConnection(p,a,b)
+#define IExternalConnection_ReleaseConnection(p,a,b,c) (p)->lpVtbl->ReleaseConnection(p,a,b,c)
+
+#endif
+
+DWORD CALLBACK IExternalConnection_AddConnection_Proxy(
+ IExternalConnection* This,
+ DWORD extconn,
+ DWORD reserved);
+void __RPC_STUB IExternalConnection_AddConnection_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+DWORD CALLBACK IExternalConnection_ReleaseConnection_Proxy(
+ IExternalConnection* This,
+ DWORD extconn,
+ DWORD reserved,
+ BOOL fLastReleaseCloses);
+void __RPC_STUB IExternalConnection_ReleaseConnection_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IMultiQI IMultiQI;
+typedef IMultiQI *LPMULTIQI;
+
+typedef struct tagMULTI_QI {
+ const IID *pIID;
+ IUnknown *pItf;
+ HRESULT hr;
+} MULTI_QI;
+
+/*****************************************************************************
+ * IMultiQI interface
+ */
+DEFINE_GUID(IID_IMultiQI, 0x00000020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IMultiQI: IUnknown {
+
+ virtual HRESULT CALLBACK QueryMultipleInterfaces(
+ ULONG cMQIs,
+ MULTI_QI* pMQIs) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IMultiQIVtbl IMultiQIVtbl;
+struct IMultiQI {
+ const IMultiQIVtbl* lpVtbl;
+};
+struct IMultiQIVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IMultiQI* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IMultiQI* This);
+
+ ULONG (CALLBACK *Release)(
+ IMultiQI* This);
+
+ /*** IMultiQI methods ***/
+ HRESULT (CALLBACK *QueryMultipleInterfaces)(
+ IMultiQI* This,
+ ULONG cMQIs,
+ MULTI_QI* pMQIs);
+
+};
+
+#define IMultiQI_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD2 (HRESULT,QueryMultipleInterfaces,ULONG,cMQIs,MULTI_QI*,pMQIs)
+
+/*** IUnknown methods ***/
+#define IMultiQI_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IMultiQI_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IMultiQI_Release(p) (p)->lpVtbl->Release(p)
+/*** IMultiQI methods ***/
+#define IMultiQI_QueryMultipleInterfaces(p,a,b) (p)->lpVtbl->QueryMultipleInterfaces(p,a,b)
+
+#endif
+
+HRESULT CALLBACK IMultiQI_QueryMultipleInterfaces_Proxy(
+ IMultiQI* This,
+ ULONG cMQIs,
+ MULTI_QI* pMQIs);
+void __RPC_STUB IMultiQI_QueryMultipleInterfaces_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IMalloc IMalloc;
+typedef IMalloc *LPMALLOC;
+
+/*****************************************************************************
+ * IMalloc interface
+ */
+DEFINE_GUID(IID_IMalloc, 0x00000002, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IMalloc: IUnknown {
+
+ virtual LPVOID CALLBACK Alloc(
+ ULONG cb) = 0;
+
+ virtual LPVOID CALLBACK Realloc(
+ LPVOID pv,
+ ULONG cb) = 0;
+
+ virtual void CALLBACK Free(
+ LPVOID pv) = 0;
+
+ virtual ULONG CALLBACK GetSize(
+ LPVOID pv) = 0;
+
+ virtual int CALLBACK DidAlloc(
+ LPVOID pv) = 0;
+
+ virtual void CALLBACK HeapMinimize(
+ ) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IMallocVtbl IMallocVtbl;
+struct IMalloc {
+ const IMallocVtbl* lpVtbl;
+};
+struct IMallocVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IMalloc* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IMalloc* This);
+
+ ULONG (CALLBACK *Release)(
+ IMalloc* This);
+
+ /*** IMalloc methods ***/
+ LPVOID (CALLBACK *Alloc)(
+ IMalloc* This,
+ ULONG cb);
+
+ LPVOID (CALLBACK *Realloc)(
+ IMalloc* This,
+ LPVOID pv,
+ ULONG cb);
+
+ void (CALLBACK *Free)(
+ IMalloc* This,
+ LPVOID pv);
+
+ ULONG (CALLBACK *GetSize)(
+ IMalloc* This,
+ LPVOID pv);
+
+ int (CALLBACK *DidAlloc)(
+ IMalloc* This,
+ LPVOID pv);
+
+ void (CALLBACK *HeapMinimize)(
+ IMalloc* This);
+
+};
+
+#define IMalloc_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD1 (LPVOID,Alloc,ULONG,cb) \
+ ICOM_METHOD2 (LPVOID,Realloc,LPVOID,pv,ULONG,cb) \
+ ICOM_VMETHOD1(Free,LPVOID,pv) \
+ ICOM_METHOD1 (ULONG,GetSize,LPVOID,pv) \
+ ICOM_METHOD1 (int,DidAlloc,LPVOID,pv) \
+ ICOM_VMETHOD (HeapMinimize)
+
+/*** IUnknown methods ***/
+#define IMalloc_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IMalloc_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IMalloc_Release(p) (p)->lpVtbl->Release(p)
+/*** IMalloc methods ***/
+#define IMalloc_Alloc(p,a) (p)->lpVtbl->Alloc(p,a)
+#define IMalloc_Realloc(p,a,b) (p)->lpVtbl->Realloc(p,a,b)
+#define IMalloc_Free(p,a) (p)->lpVtbl->Free(p,a)
+#define IMalloc_GetSize(p,a) (p)->lpVtbl->GetSize(p,a)
+#define IMalloc_DidAlloc(p,a) (p)->lpVtbl->DidAlloc(p,a)
+#define IMalloc_HeapMinimize(p) (p)->lpVtbl->HeapMinimize(p)
+
+#endif
+
+LPVOID CALLBACK IMalloc_Alloc_Proxy(
+ IMalloc* This,
+ ULONG cb);
+void __RPC_STUB IMalloc_Alloc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+LPVOID CALLBACK IMalloc_Realloc_Proxy(
+ IMalloc* This,
+ LPVOID pv,
+ ULONG cb);
+void __RPC_STUB IMalloc_Realloc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IMalloc_Free_Proxy(
+ IMalloc* This,
+ LPVOID pv);
+void __RPC_STUB IMalloc_Free_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+ULONG CALLBACK IMalloc_GetSize_Proxy(
+ IMalloc* This,
+ LPVOID pv);
+void __RPC_STUB IMalloc_GetSize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+int CALLBACK IMalloc_DidAlloc_Proxy(
+ IMalloc* This,
+ LPVOID pv);
+void __RPC_STUB IMalloc_DidAlloc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IMalloc_HeapMinimize_Proxy(
+ IMalloc* This);
+void __RPC_STUB IMalloc_HeapMinimize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IMallocSpy IMallocSpy;
+typedef IMallocSpy *LPMALLOCSPY;
+
+/*****************************************************************************
+ * IMallocSpy interface
+ */
+DEFINE_GUID(IID_IMallocSpy, 0x0000001d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IMallocSpy: IUnknown {
+
+ virtual ULONG CALLBACK PreAlloc(
+ ULONG cbRequest) = 0;
+
+ virtual LPVOID CALLBACK PostAlloc(
+ LPVOID pActual) = 0;
+
+ virtual LPVOID CALLBACK PreFree(
+ LPVOID pRequest,
+ BOOL fSpyed) = 0;
+
+ virtual void CALLBACK PostFree(
+ BOOL fSpyed) = 0;
+
+ virtual ULONG CALLBACK PreRealloc(
+ LPVOID pRequest,
+ ULONG cbRequest,
+ LPVOID* ppNewRequest,
+ BOOL fSpyed) = 0;
+
+ virtual LPVOID CALLBACK PostRealloc(
+ LPVOID pActual,
+ BOOL fSpyed) = 0;
+
+ virtual LPVOID CALLBACK PreGetSize(
+ LPVOID pRequest,
+ BOOL fSpyed) = 0;
+
+ virtual ULONG CALLBACK PostGetSize(
+ ULONG cbActual,
+ BOOL fSpyed) = 0;
+
+ virtual LPVOID CALLBACK PreDidAlloc(
+ LPVOID pRequest,
+ BOOL fSpyed) = 0;
+
+ virtual int CALLBACK PostDidAlloc(
+ LPVOID pRequest,
+ BOOL fSpyed,
+ int fActual) = 0;
+
+ virtual void CALLBACK PreHeapMinimize(
+ ) = 0;
+
+ virtual void CALLBACK PostHeapMinimize(
+ ) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IMallocSpyVtbl IMallocSpyVtbl;
+struct IMallocSpy {
+ const IMallocSpyVtbl* lpVtbl;
+};
+struct IMallocSpyVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IMallocSpy* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IMallocSpy* This);
+
+ ULONG (CALLBACK *Release)(
+ IMallocSpy* This);
+
+ /*** IMallocSpy methods ***/
+ ULONG (CALLBACK *PreAlloc)(
+ IMallocSpy* This,
+ ULONG cbRequest);
+
+ LPVOID (CALLBACK *PostAlloc)(
+ IMallocSpy* This,
+ LPVOID pActual);
+
+ LPVOID (CALLBACK *PreFree)(
+ IMallocSpy* This,
+ LPVOID pRequest,
+ BOOL fSpyed);
+
+ void (CALLBACK *PostFree)(
+ IMallocSpy* This,
+ BOOL fSpyed);
+
+ ULONG (CALLBACK *PreRealloc)(
+ IMallocSpy* This,
+ LPVOID pRequest,
+ ULONG cbRequest,
+ LPVOID* ppNewRequest,
+ BOOL fSpyed);
+
+ LPVOID (CALLBACK *PostRealloc)(
+ IMallocSpy* This,
+ LPVOID pActual,
+ BOOL fSpyed);
+
+ LPVOID (CALLBACK *PreGetSize)(
+ IMallocSpy* This,
+ LPVOID pRequest,
+ BOOL fSpyed);
+
+ ULONG (CALLBACK *PostGetSize)(
+ IMallocSpy* This,
+ ULONG cbActual,
+ BOOL fSpyed);
+
+ LPVOID (CALLBACK *PreDidAlloc)(
+ IMallocSpy* This,
+ LPVOID pRequest,
+ BOOL fSpyed);
+
+ int (CALLBACK *PostDidAlloc)(
+ IMallocSpy* This,
+ LPVOID pRequest,
+ BOOL fSpyed,
+ int fActual);
+
+ void (CALLBACK *PreHeapMinimize)(
+ IMallocSpy* This);
+
+ void (CALLBACK *PostHeapMinimize)(
+ IMallocSpy* This);
+
+};
+
+#define IMallocSpy_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD1 (ULONG,PreAlloc,ULONG,cbRequest) \
+ ICOM_METHOD1 (LPVOID,PostAlloc,LPVOID,pActual) \
+ ICOM_METHOD2 (LPVOID,PreFree,LPVOID,pRequest,BOOL,fSpyed) \
+ ICOM_VMETHOD1(PostFree,BOOL,fSpyed) \
+ ICOM_METHOD4 (ULONG,PreRealloc,LPVOID,pRequest,ULONG,cbRequest,LPVOID*,ppNewRequest,BOOL,fSpyed) \
+ ICOM_METHOD2 (LPVOID,PostRealloc,LPVOID,pActual,BOOL,fSpyed) \
+ ICOM_METHOD2 (LPVOID,PreGetSize,LPVOID,pRequest,BOOL,fSpyed) \
+ ICOM_METHOD2 (ULONG,PostGetSize,ULONG,cbActual,BOOL,fSpyed) \
+ ICOM_METHOD2 (LPVOID,PreDidAlloc,LPVOID,pRequest,BOOL,fSpyed) \
+ ICOM_METHOD3 (int,PostDidAlloc,LPVOID,pRequest,BOOL,fSpyed,int,fActual) \
+ ICOM_VMETHOD (PreHeapMinimize) \
+ ICOM_VMETHOD (PostHeapMinimize)
+
+/*** IUnknown methods ***/
+#define IMallocSpy_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IMallocSpy_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IMallocSpy_Release(p) (p)->lpVtbl->Release(p)
+/*** IMallocSpy methods ***/
+#define IMallocSpy_PreAlloc(p,a) (p)->lpVtbl->PreAlloc(p,a)
+#define IMallocSpy_PostAlloc(p,a) (p)->lpVtbl->PostAlloc(p,a)
+#define IMallocSpy_PreFree(p,a,b) (p)->lpVtbl->PreFree(p,a,b)
+#define IMallocSpy_PostFree(p,a) (p)->lpVtbl->PostFree(p,a)
+#define IMallocSpy_PreRealloc(p,a,b,c,d) (p)->lpVtbl->PreRealloc(p,a,b,c,d)
+#define IMallocSpy_PostRealloc(p,a,b) (p)->lpVtbl->PostRealloc(p,a,b)
+#define IMallocSpy_PreGetSize(p,a,b) (p)->lpVtbl->PreGetSize(p,a,b)
+#define IMallocSpy_PostGetSize(p,a,b) (p)->lpVtbl->PostGetSize(p,a,b)
+#define IMallocSpy_PreDidAlloc(p,a,b) (p)->lpVtbl->PreDidAlloc(p,a,b)
+#define IMallocSpy_PostDidAlloc(p,a,b,c) (p)->lpVtbl->PostDidAlloc(p,a,b,c)
+#define IMallocSpy_PreHeapMinimize(p) (p)->lpVtbl->PreHeapMinimize(p)
+#define IMallocSpy_PostHeapMinimize(p) (p)->lpVtbl->PostHeapMinimize(p)
+
+#endif
+
+ULONG CALLBACK IMallocSpy_PreAlloc_Proxy(
+ IMallocSpy* This,
+ ULONG cbRequest);
+void __RPC_STUB IMallocSpy_PreAlloc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+LPVOID CALLBACK IMallocSpy_PostAlloc_Proxy(
+ IMallocSpy* This,
+ LPVOID pActual);
+void __RPC_STUB IMallocSpy_PostAlloc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+LPVOID CALLBACK IMallocSpy_PreFree_Proxy(
+ IMallocSpy* This,
+ LPVOID pRequest,
+ BOOL fSpyed);
+void __RPC_STUB IMallocSpy_PreFree_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IMallocSpy_PostFree_Proxy(
+ IMallocSpy* This,
+ BOOL fSpyed);
+void __RPC_STUB IMallocSpy_PostFree_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+ULONG CALLBACK IMallocSpy_PreRealloc_Proxy(
+ IMallocSpy* This,
+ LPVOID pRequest,
+ ULONG cbRequest,
+ LPVOID* ppNewRequest,
+ BOOL fSpyed);
+void __RPC_STUB IMallocSpy_PreRealloc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+LPVOID CALLBACK IMallocSpy_PostRealloc_Proxy(
+ IMallocSpy* This,
+ LPVOID pActual,
+ BOOL fSpyed);
+void __RPC_STUB IMallocSpy_PostRealloc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+LPVOID CALLBACK IMallocSpy_PreGetSize_Proxy(
+ IMallocSpy* This,
+ LPVOID pRequest,
+ BOOL fSpyed);
+void __RPC_STUB IMallocSpy_PreGetSize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+ULONG CALLBACK IMallocSpy_PostGetSize_Proxy(
+ IMallocSpy* This,
+ ULONG cbActual,
+ BOOL fSpyed);
+void __RPC_STUB IMallocSpy_PostGetSize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+LPVOID CALLBACK IMallocSpy_PreDidAlloc_Proxy(
+ IMallocSpy* This,
+ LPVOID pRequest,
+ BOOL fSpyed);
+void __RPC_STUB IMallocSpy_PreDidAlloc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+int CALLBACK IMallocSpy_PostDidAlloc_Proxy(
+ IMallocSpy* This,
+ LPVOID pRequest,
+ BOOL fSpyed,
+ int fActual);
+void __RPC_STUB IMallocSpy_PostDidAlloc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IMallocSpy_PreHeapMinimize_Proxy(
+ IMallocSpy* This);
+void __RPC_STUB IMallocSpy_PreHeapMinimize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IMallocSpy_PostHeapMinimize_Proxy(
+ IMallocSpy* This);
+void __RPC_STUB IMallocSpy_PostHeapMinimize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IEnumUnknown IEnumUnknown;
+typedef IEnumUnknown *LPENUMUNKNOWN;
+
+/*****************************************************************************
+ * IEnumUnknown interface
+ */
+DEFINE_GUID(IID_IEnumUnknown, 0x00000100, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumUnknown: IUnknown {
+
+ virtual HRESULT CALLBACK Next(
+ ULONG celt,
+ IUnknown** rgelt,
+ ULONG* pceltFetched) = 0;
+
+ virtual HRESULT CALLBACK Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT CALLBACK Reset(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Clone(
+ IEnumUnknown** ppenum) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IEnumUnknownVtbl IEnumUnknownVtbl;
+struct IEnumUnknown {
+ const IEnumUnknownVtbl* lpVtbl;
+};
+struct IEnumUnknownVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IEnumUnknown* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IEnumUnknown* This);
+
+ ULONG (CALLBACK *Release)(
+ IEnumUnknown* This);
+
+ /*** IEnumUnknown methods ***/
+ HRESULT (CALLBACK *Next)(
+ IEnumUnknown* This,
+ ULONG celt,
+ IUnknown** rgelt,
+ ULONG* pceltFetched);
+
+ HRESULT (CALLBACK *Skip)(
+ IEnumUnknown* This,
+ ULONG celt);
+
+ HRESULT (CALLBACK *Reset)(
+ IEnumUnknown* This);
+
+ HRESULT (CALLBACK *Clone)(
+ IEnumUnknown* This,
+ IEnumUnknown** ppenum);
+
+};
+
+#define IEnumUnknown_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,Next,ULONG,celt,IUnknown**,rgelt,ULONG*,pceltFetched) \
+ ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
+ ICOM_METHOD (HRESULT,Reset) \
+ ICOM_METHOD1 (HRESULT,Clone,IEnumUnknown**,ppenum)
+
+/*** IUnknown methods ***/
+#define IEnumUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumUnknown_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumUnknown methods ***/
+#define IEnumUnknown_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumUnknown_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+#define IEnumUnknown_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumUnknown_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+
+#endif
+
+HRESULT CALLBACK IEnumUnknown_RemoteNext_Proxy(
+ IEnumUnknown* This,
+ ULONG celt,
+ IUnknown** rgelt,
+ ULONG* pceltFetched);
+void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumUnknown_Next_Proxy(
+ IEnumUnknown* This,
+ ULONG celt,
+ IUnknown** rgelt,
+ ULONG* pceltFetched);
+HRESULT __RPC_STUB IEnumUnknown_Next_Stub(
+ IEnumUnknown* This,
+ ULONG celt,
+ IUnknown** rgelt,
+ ULONG* pceltFetched);
+HRESULT CALLBACK IEnumUnknown_Skip_Proxy(
+ IEnumUnknown* This,
+ ULONG celt);
+void __RPC_STUB IEnumUnknown_Skip_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumUnknown_Reset_Proxy(
+ IEnumUnknown* This);
+void __RPC_STUB IEnumUnknown_Reset_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumUnknown_Clone_Proxy(
+ IEnumUnknown* This,
+ IEnumUnknown** ppenum);
+void __RPC_STUB IEnumUnknown_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct ISurrogate ISurrogate;
+typedef ISurrogate *LPSURROGATE;
+
+/*****************************************************************************
+ * ISurrogate interface
+ */
+DEFINE_GUID(IID_ISurrogate, 0x00000022, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct ISurrogate: IUnknown {
+
+ virtual HRESULT CALLBACK LoadDllServer(
+ REFCLSID Clsid) = 0;
+
+ virtual HRESULT CALLBACK FreeSurrogate(
+ ) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct ISurrogateVtbl ISurrogateVtbl;
+struct ISurrogate {
+ const ISurrogateVtbl* lpVtbl;
+};
+struct ISurrogateVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ ISurrogate* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ ISurrogate* This);
+
+ ULONG (CALLBACK *Release)(
+ ISurrogate* This);
+
+ /*** ISurrogate methods ***/
+ HRESULT (CALLBACK *LoadDllServer)(
+ ISurrogate* This,
+ REFCLSID Clsid);
+
+ HRESULT (CALLBACK *FreeSurrogate)(
+ ISurrogate* This);
+
+};
+
+#define ISurrogate_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD1 (HRESULT,LoadDllServer,REFCLSID,Clsid) \
+ ICOM_METHOD (HRESULT,FreeSurrogate)
+
+/*** IUnknown methods ***/
+#define ISurrogate_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ISurrogate_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ISurrogate_Release(p) (p)->lpVtbl->Release(p)
+/*** ISurrogate methods ***/
+#define ISurrogate_LoadDllServer(p,a) (p)->lpVtbl->LoadDllServer(p,a)
+#define ISurrogate_FreeSurrogate(p) (p)->lpVtbl->FreeSurrogate(p)
+
+#endif
+
+HRESULT CALLBACK ISurrogate_LoadDllServer_Proxy(
+ ISurrogate* This,
+ REFCLSID Clsid);
+void __RPC_STUB ISurrogate_LoadDllServer_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ISurrogate_FreeSurrogate_Proxy(
+ ISurrogate* This);
+void __RPC_STUB ISurrogate_FreeSurrogate_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IGlobalInterfaceTable IGlobalInterfaceTable;
+typedef IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
+
+/*****************************************************************************
+ * IGlobalInterfaceTable interface
+ */
+DEFINE_GUID(IID_IGlobalInterfaceTable, 0x00000146, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IGlobalInterfaceTable: IUnknown {
+
+ virtual HRESULT CALLBACK RegisterInterfaceInGlobal(
+ IUnknown* pUnk,
+ REFIID riid,
+ DWORD* pdwCookie) = 0;
+
+ virtual HRESULT CALLBACK RevokeInterfaceFromGlobal(
+ DWORD dwCookie) = 0;
+
+ virtual HRESULT CALLBACK GetInterfaceFromGlobal(
+ DWORD dwCookie,
+ REFIID riid,
+ void** ppv) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IGlobalInterfaceTableVtbl IGlobalInterfaceTableVtbl;
+struct IGlobalInterfaceTable {
+ const IGlobalInterfaceTableVtbl* lpVtbl;
+};
+struct IGlobalInterfaceTableVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IGlobalInterfaceTable* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IGlobalInterfaceTable* This);
+
+ ULONG (CALLBACK *Release)(
+ IGlobalInterfaceTable* This);
+
+ /*** IGlobalInterfaceTable methods ***/
+ HRESULT (CALLBACK *RegisterInterfaceInGlobal)(
+ IGlobalInterfaceTable* This,
+ IUnknown* pUnk,
+ REFIID riid,
+ DWORD* pdwCookie);
+
+ HRESULT (CALLBACK *RevokeInterfaceFromGlobal)(
+ IGlobalInterfaceTable* This,
+ DWORD dwCookie);
+
+ HRESULT (CALLBACK *GetInterfaceFromGlobal)(
+ IGlobalInterfaceTable* This,
+ DWORD dwCookie,
+ REFIID riid,
+ void** ppv);
+
+};
+
+#define IGlobalInterfaceTable_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,RegisterInterfaceInGlobal,IUnknown*,pUnk,REFIID,riid,DWORD*,pdwCookie) \
+ ICOM_METHOD1 (HRESULT,RevokeInterfaceFromGlobal,DWORD,dwCookie) \
+ ICOM_METHOD3 (HRESULT,GetInterfaceFromGlobal,DWORD,dwCookie,REFIID,riid,void**,ppv)
+
+/*** IUnknown methods ***/
+#define IGlobalInterfaceTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IGlobalInterfaceTable_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IGlobalInterfaceTable_Release(p) (p)->lpVtbl->Release(p)
+/*** IGlobalInterfaceTable methods ***/
+#define IGlobalInterfaceTable_RegisterInterfaceInGlobal(p,a,b,c) (p)->lpVtbl->RegisterInterfaceInGlobal(p,a,b,c)
+#define IGlobalInterfaceTable_RevokeInterfaceFromGlobal(p,a) (p)->lpVtbl->RevokeInterfaceFromGlobal(p,a)
+#define IGlobalInterfaceTable_GetInterfaceFromGlobal(p,a,b,c) (p)->lpVtbl->GetInterfaceFromGlobal(p,a,b,c)
+
+#endif
+
+HRESULT CALLBACK IGlobalInterfaceTable_RegisterInterfaceInGlobal_Proxy(
+ IGlobalInterfaceTable* This,
+ IUnknown* pUnk,
+ REFIID riid,
+ DWORD* pdwCookie);
+void __RPC_STUB IGlobalInterfaceTable_RegisterInterfaceInGlobal_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Proxy(
+ IGlobalInterfaceTable* This,
+ DWORD dwCookie);
+void __RPC_STUB IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IGlobalInterfaceTable_GetInterfaceFromGlobal_Proxy(
+ IGlobalInterfaceTable* This,
+ DWORD dwCookie,
+ REFIID riid,
+ void** ppv);
+void __RPC_STUB IGlobalInterfaceTable_GetInterfaceFromGlobal_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IBindCtx IBindCtx;
+typedef IBindCtx *LPBINDCTX;
+
+typedef IBindCtx *LPBC;
+
+typedef struct tagBIND_OPTS {
+ DWORD cbStruct;
+ DWORD grfFlags;
+ DWORD grfMode;
+ DWORD dwTickCountDeadline;
+} BIND_OPTS, *LPBIND_OPTS;
+
+typedef struct tagBIND_OPTS2 {
+ DWORD cbStruct;
+ DWORD grfFlags;
+ DWORD grfMode;
+ DWORD dwTickCountDeadline;
+ DWORD dwTrackFlags;
+ DWORD dwClassContext;
+ LCID locale;
+ COSERVERINFO *pServerInfo;
+} BIND_OPTS2, *LPBIND_OPTS2;
+
+typedef enum tagBIND_FLAGS {
+ BIND_MAYBOTHERUSER = 1,
+ BIND_JUSTTESTEXISTENCE = 2
+} BIND_FLAGS;
+
+/*****************************************************************************
+ * IBindCtx interface
+ */
+DEFINE_GUID(IID_IBindCtx, 0x0000000e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IBindCtx: IUnknown {
+
+ virtual HRESULT CALLBACK RegisterObjectBound(
+ IUnknown* punk) = 0;
+
+ virtual HRESULT CALLBACK RevokeObjectBound(
+ IUnknown* punk) = 0;
+
+ virtual HRESULT CALLBACK ReleaseBoundObjects(
+ ) = 0;
+
+ virtual HRESULT CALLBACK SetBindOptions(
+ BIND_OPTS* pbindopts) = 0;
+
+ virtual HRESULT CALLBACK GetBindOptions(
+ BIND_OPTS* pbindopts) = 0;
+
+ virtual HRESULT CALLBACK GetRunningObjectTable(
+ IRunningObjectTable** pprot) = 0;
+
+ virtual HRESULT CALLBACK RegisterObjectParam(
+ LPOLESTR pszKey,
+ IUnknown* punk) = 0;
+
+ virtual HRESULT CALLBACK GetObjectParam(
+ LPOLESTR pszKey,
+ IUnknown** ppunk) = 0;
+
+ virtual HRESULT CALLBACK EnumObjectParam(
+ IEnumString** ppenum) = 0;
+
+ virtual HRESULT CALLBACK RevokeObjectParam(
+ LPOLESTR pszKey) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IBindCtxVtbl IBindCtxVtbl;
+struct IBindCtx {
+ const IBindCtxVtbl* lpVtbl;
+};
+struct IBindCtxVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IBindCtx* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IBindCtx* This);
+
+ ULONG (CALLBACK *Release)(
+ IBindCtx* This);
+
+ /*** IBindCtx methods ***/
+ HRESULT (CALLBACK *RegisterObjectBound)(
+ IBindCtx* This,
+ IUnknown* punk);
+
+ HRESULT (CALLBACK *RevokeObjectBound)(
+ IBindCtx* This,
+ IUnknown* punk);
+
+ HRESULT (CALLBACK *ReleaseBoundObjects)(
+ IBindCtx* This);
+
+ HRESULT (CALLBACK *SetBindOptions)(
+ IBindCtx* This,
+ BIND_OPTS* pbindopts);
+
+ HRESULT (CALLBACK *GetBindOptions)(
+ IBindCtx* This,
+ BIND_OPTS* pbindopts);
+
+ HRESULT (CALLBACK *GetRunningObjectTable)(
+ IBindCtx* This,
+ IRunningObjectTable** pprot);
+
+ HRESULT (CALLBACK *RegisterObjectParam)(
+ IBindCtx* This,
+ LPOLESTR pszKey,
+ IUnknown* punk);
+
+ HRESULT (CALLBACK *GetObjectParam)(
+ IBindCtx* This,
+ LPOLESTR pszKey,
+ IUnknown** ppunk);
+
+ HRESULT (CALLBACK *EnumObjectParam)(
+ IBindCtx* This,
+ IEnumString** ppenum);
+
+ HRESULT (CALLBACK *RevokeObjectParam)(
+ IBindCtx* This,
+ LPOLESTR pszKey);
+
+};
+
+#define IBindCtx_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD1 (HRESULT,RegisterObjectBound,IUnknown*,punk) \
+ ICOM_METHOD1 (HRESULT,RevokeObjectBound,IUnknown*,punk) \
+ ICOM_METHOD (HRESULT,ReleaseBoundObjects) \
+ ICOM_METHOD1 (HRESULT,SetBindOptions,BIND_OPTS*,pbindopts) \
+ ICOM_METHOD1 (HRESULT,GetBindOptions,BIND_OPTS*,pbindopts) \
+ ICOM_METHOD1 (HRESULT,GetRunningObjectTable,IRunningObjectTable**,pprot) \
+ ICOM_METHOD2 (HRESULT,RegisterObjectParam,LPOLESTR,pszKey,IUnknown*,punk) \
+ ICOM_METHOD2 (HRESULT,GetObjectParam,LPOLESTR,pszKey,IUnknown**,ppunk) \
+ ICOM_METHOD1 (HRESULT,EnumObjectParam,IEnumString**,ppenum) \
+ ICOM_METHOD1 (HRESULT,RevokeObjectParam,LPOLESTR,pszKey)
+
+/*** IUnknown methods ***/
+#define IBindCtx_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IBindCtx_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IBindCtx_Release(p) (p)->lpVtbl->Release(p)
+/*** IBindCtx methods ***/
+#define IBindCtx_RegisterObjectBound(p,a) (p)->lpVtbl->RegisterObjectBound(p,a)
+#define IBindCtx_RevokeObjectBound(p,a) (p)->lpVtbl->RevokeObjectBound(p,a)
+#define IBindCtx_ReleaseBoundObjects(p) (p)->lpVtbl->ReleaseBoundObjects(p)
+#define IBindCtx_SetBindOptions(p,a) (p)->lpVtbl->SetBindOptions(p,a)
+#define IBindCtx_GetBindOptions(p,a) (p)->lpVtbl->GetBindOptions(p,a)
+#define IBindCtx_GetRunningObjectTable(p,a) (p)->lpVtbl->GetRunningObjectTable(p,a)
+#define IBindCtx_RegisterObjectParam(p,a,b) (p)->lpVtbl->RegisterObjectParam(p,a,b)
+#define IBindCtx_GetObjectParam(p,a,b) (p)->lpVtbl->GetObjectParam(p,a,b)
+#define IBindCtx_EnumObjectParam(p,a) (p)->lpVtbl->EnumObjectParam(p,a)
+#define IBindCtx_RevokeObjectParam(p,a) (p)->lpVtbl->RevokeObjectParam(p,a)
+
+#endif
+
+HRESULT CALLBACK IBindCtx_RegisterObjectBound_Proxy(
+ IBindCtx* This,
+ IUnknown* punk);
+void __RPC_STUB IBindCtx_RegisterObjectBound_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindCtx_RevokeObjectBound_Proxy(
+ IBindCtx* This,
+ IUnknown* punk);
+void __RPC_STUB IBindCtx_RevokeObjectBound_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindCtx_ReleaseBoundObjects_Proxy(
+ IBindCtx* This);
+void __RPC_STUB IBindCtx_ReleaseBoundObjects_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindCtx_RemoteSetBindOptions_Proxy(
+ IBindCtx* This,
+ BIND_OPTS2* pbindopts);
+void __RPC_STUB IBindCtx_RemoteSetBindOptions_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
+ IBindCtx* This,
+ BIND_OPTS* pbindopts);
+HRESULT __RPC_STUB IBindCtx_SetBindOptions_Stub(
+ IBindCtx* This,
+ BIND_OPTS2* pbindopts);
+HRESULT CALLBACK IBindCtx_RemoteGetBindOptions_Proxy(
+ IBindCtx* This,
+ BIND_OPTS2* pbindopts);
+void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindCtx_GetBindOptions_Proxy(
+ IBindCtx* This,
+ BIND_OPTS* pbindopts);
+HRESULT __RPC_STUB IBindCtx_GetBindOptions_Stub(
+ IBindCtx* This,
+ BIND_OPTS2* pbindopts);
+HRESULT CALLBACK IBindCtx_GetRunningObjectTable_Proxy(
+ IBindCtx* This,
+ IRunningObjectTable** pprot);
+void __RPC_STUB IBindCtx_GetRunningObjectTable_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindCtx_RegisterObjectParam_Proxy(
+ IBindCtx* This,
+ LPOLESTR pszKey,
+ IUnknown* punk);
+void __RPC_STUB IBindCtx_RegisterObjectParam_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindCtx_GetObjectParam_Proxy(
+ IBindCtx* This,
+ LPOLESTR pszKey,
+ IUnknown** ppunk);
+void __RPC_STUB IBindCtx_GetObjectParam_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindCtx_EnumObjectParam_Proxy(
+ IBindCtx* This,
+ IEnumString** ppenum);
+void __RPC_STUB IBindCtx_EnumObjectParam_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindCtx_RevokeObjectParam_Proxy(
+ IBindCtx* This,
+ LPOLESTR pszKey);
+void __RPC_STUB IBindCtx_RevokeObjectParam_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IEnumMoniker IEnumMoniker;
+typedef IEnumMoniker *LPENUMMONIKER;
+
+/*****************************************************************************
+ * IEnumMoniker interface
+ */
+DEFINE_GUID(IID_IEnumMoniker, 0x00000102, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumMoniker: IUnknown {
+
+ virtual HRESULT CALLBACK Next(
+ ULONG celt,
+ IMoniker** rgelt,
+ ULONG* pceltFetched) = 0;
+
+ virtual HRESULT CALLBACK Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT CALLBACK Reset(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Clone(
+ IEnumMoniker** ppenum) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IEnumMonikerVtbl IEnumMonikerVtbl;
+struct IEnumMoniker {
+ const IEnumMonikerVtbl* lpVtbl;
+};
+struct IEnumMonikerVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IEnumMoniker* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IEnumMoniker* This);
+
+ ULONG (CALLBACK *Release)(
+ IEnumMoniker* This);
+
+ /*** IEnumMoniker methods ***/
+ HRESULT (CALLBACK *Next)(
+ IEnumMoniker* This,
+ ULONG celt,
+ IMoniker** rgelt,
+ ULONG* pceltFetched);
+
+ HRESULT (CALLBACK *Skip)(
+ IEnumMoniker* This,
+ ULONG celt);
+
+ HRESULT (CALLBACK *Reset)(
+ IEnumMoniker* This);
+
+ HRESULT (CALLBACK *Clone)(
+ IEnumMoniker* This,
+ IEnumMoniker** ppenum);
+
+};
+
+#define IEnumMoniker_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,Next,ULONG,celt,IMoniker**,rgelt,ULONG*,pceltFetched) \
+ ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
+ ICOM_METHOD (HRESULT,Reset) \
+ ICOM_METHOD1 (HRESULT,Clone,IEnumMoniker**,ppenum)
+
+/*** IUnknown methods ***/
+#define IEnumMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumMoniker_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumMoniker methods ***/
+#define IEnumMoniker_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumMoniker_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+#define IEnumMoniker_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumMoniker_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+
+#endif
+
+HRESULT CALLBACK IEnumMoniker_RemoteNext_Proxy(
+ IEnumMoniker* This,
+ ULONG celt,
+ IMoniker** rgelt,
+ ULONG* pceltFetched);
+void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumMoniker_Next_Proxy(
+ IEnumMoniker* This,
+ ULONG celt,
+ IMoniker** rgelt,
+ ULONG* pceltFetched);
+HRESULT __RPC_STUB IEnumMoniker_Next_Stub(
+ IEnumMoniker* This,
+ ULONG celt,
+ IMoniker** rgelt,
+ ULONG* pceltFetched);
+HRESULT CALLBACK IEnumMoniker_Skip_Proxy(
+ IEnumMoniker* This,
+ ULONG celt);
+void __RPC_STUB IEnumMoniker_Skip_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumMoniker_Reset_Proxy(
+ IEnumMoniker* This);
+void __RPC_STUB IEnumMoniker_Reset_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumMoniker_Clone_Proxy(
+ IEnumMoniker* This,
+ IEnumMoniker** ppenum);
+void __RPC_STUB IEnumMoniker_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IRunnableObject IRunnableObject;
+typedef IRunnableObject *LPRUNNABLEOBJECT;
+
+/*****************************************************************************
+ * IRunnableObject interface
+ */
+DEFINE_GUID(IID_IRunnableObject, 0x00000126, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IRunnableObject: IUnknown {
+
+ virtual HRESULT CALLBACK GetRunningClass(
+ LPCLSID lpClsid) = 0;
+
+ virtual HRESULT CALLBACK Run(
+ LPBINDCTX pbc) = 0;
+
+ virtual BOOL CALLBACK IsRunning(
+ ) = 0;
+
+ virtual HRESULT CALLBACK LockRunning(
+ BOOL fLock,
+ BOOL fLastUnlockCloses) = 0;
+
+ virtual HRESULT CALLBACK SetContainedObject(
+ BOOL fContained) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IRunnableObjectVtbl IRunnableObjectVtbl;
+struct IRunnableObject {
+ const IRunnableObjectVtbl* lpVtbl;
+};
+struct IRunnableObjectVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IRunnableObject* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IRunnableObject* This);
+
+ ULONG (CALLBACK *Release)(
+ IRunnableObject* This);
+
+ /*** IRunnableObject methods ***/
+ HRESULT (CALLBACK *GetRunningClass)(
+ IRunnableObject* This,
+ LPCLSID lpClsid);
+
+ HRESULT (CALLBACK *Run)(
+ IRunnableObject* This,
+ LPBINDCTX pbc);
+
+ BOOL (CALLBACK *IsRunning)(
+ IRunnableObject* This);
+
+ HRESULT (CALLBACK *LockRunning)(
+ IRunnableObject* This,
+ BOOL fLock,
+ BOOL fLastUnlockCloses);
+
+ HRESULT (CALLBACK *SetContainedObject)(
+ IRunnableObject* This,
+ BOOL fContained);
+
+};
+
+#define IRunnableObject_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD1 (HRESULT,GetRunningClass,LPCLSID,lpClsid) \
+ ICOM_METHOD1 (HRESULT,Run,LPBINDCTX,pbc) \
+ ICOM_METHOD (BOOL,IsRunning) \
+ ICOM_METHOD2 (HRESULT,LockRunning,BOOL,fLock,BOOL,fLastUnlockCloses) \
+ ICOM_METHOD1 (HRESULT,SetContainedObject,BOOL,fContained)
+
+/*** IUnknown methods ***/
+#define IRunnableObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IRunnableObject_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IRunnableObject_Release(p) (p)->lpVtbl->Release(p)
+/*** IRunnableObject methods ***/
+#define IRunnableObject_GetRunningClass(p,a) (p)->lpVtbl->GetRunningClass(p,a)
+#define IRunnableObject_Run(p,a) (p)->lpVtbl->Run(p,a)
+#define IRunnableObject_IsRunning(p) (p)->lpVtbl->IsRunning(p)
+#define IRunnableObject_LockRunning(p,a,b) (p)->lpVtbl->LockRunning(p,a,b)
+#define IRunnableObject_SetContainedObject(p,a) (p)->lpVtbl->SetContainedObject(p,a)
+
+#endif
+
+HRESULT CALLBACK IRunnableObject_GetRunningClass_Proxy(
+ IRunnableObject* This,
+ LPCLSID lpClsid);
+void __RPC_STUB IRunnableObject_GetRunningClass_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRunnableObject_Run_Proxy(
+ IRunnableObject* This,
+ LPBINDCTX pbc);
+void __RPC_STUB IRunnableObject_Run_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRunnableObject_RemoteIsRunning_Proxy(
+ IRunnableObject* This);
+void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+BOOL CALLBACK IRunnableObject_IsRunning_Proxy(
+ IRunnableObject* This);
+HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
+ IRunnableObject* This);
+HRESULT CALLBACK IRunnableObject_LockRunning_Proxy(
+ IRunnableObject* This,
+ BOOL fLock,
+ BOOL fLastUnlockCloses);
+void __RPC_STUB IRunnableObject_LockRunning_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRunnableObject_SetContainedObject_Proxy(
+ IRunnableObject* This,
+ BOOL fContained);
+void __RPC_STUB IRunnableObject_SetContainedObject_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#ifdef __WINE__
+#undef GetObject
+#endif
+typedef IRunningObjectTable *LPRUNNINGOBJECTTABLE;
+
+/*****************************************************************************
+ * IRunningObjectTable interface
+ */
+DEFINE_GUID(IID_IRunningObjectTable, 0x00000010, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IRunningObjectTable: IUnknown {
+
+ virtual HRESULT CALLBACK Register(
+ DWORD grfFlags,
+ IUnknown* punkObject,
+ IMoniker* pmkObjectName,
+ DWORD* pdwRegister) = 0;
+
+ virtual HRESULT CALLBACK Revoke(
+ DWORD dwRegister) = 0;
+
+ virtual HRESULT CALLBACK IsRunning(
+ IMoniker* pmkObjectName) = 0;
+
+ virtual HRESULT CALLBACK GetObject(
+ IMoniker* pmkObjectName,
+ IUnknown** ppunkObject) = 0;
+
+ virtual HRESULT CALLBACK NoteChangeTime(
+ DWORD dwRegister,
+ FILETIME* pfiletime) = 0;
+
+ virtual HRESULT CALLBACK GetTimeOfLastChange(
+ IMoniker* pmkObjectName,
+ FILETIME* pfiletime) = 0;
+
+ virtual HRESULT CALLBACK EnumRunning(
+ IEnumMoniker** ppenumMoniker) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IRunningObjectTableVtbl IRunningObjectTableVtbl;
+struct IRunningObjectTable {
+ const IRunningObjectTableVtbl* lpVtbl;
+};
+struct IRunningObjectTableVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IRunningObjectTable* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IRunningObjectTable* This);
+
+ ULONG (CALLBACK *Release)(
+ IRunningObjectTable* This);
+
+ /*** IRunningObjectTable methods ***/
+ HRESULT (CALLBACK *Register)(
+ IRunningObjectTable* This,
+ DWORD grfFlags,
+ IUnknown* punkObject,
+ IMoniker* pmkObjectName,
+ DWORD* pdwRegister);
+
+ HRESULT (CALLBACK *Revoke)(
+ IRunningObjectTable* This,
+ DWORD dwRegister);
+
+ HRESULT (CALLBACK *IsRunning)(
+ IRunningObjectTable* This,
+ IMoniker* pmkObjectName);
+
+ HRESULT (CALLBACK *GetObject)(
+ IRunningObjectTable* This,
+ IMoniker* pmkObjectName,
+ IUnknown** ppunkObject);
+
+ HRESULT (CALLBACK *NoteChangeTime)(
+ IRunningObjectTable* This,
+ DWORD dwRegister,
+ FILETIME* pfiletime);
+
+ HRESULT (CALLBACK *GetTimeOfLastChange)(
+ IRunningObjectTable* This,
+ IMoniker* pmkObjectName,
+ FILETIME* pfiletime);
+
+ HRESULT (CALLBACK *EnumRunning)(
+ IRunningObjectTable* This,
+ IEnumMoniker** ppenumMoniker);
+
+};
+
+#define IRunningObjectTable_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD4 (HRESULT,Register,DWORD,grfFlags,IUnknown*,punkObject,IMoniker*,pmkObjectName,DWORD*,pdwRegister) \
+ ICOM_METHOD1 (HRESULT,Revoke,DWORD,dwRegister) \
+ ICOM_METHOD1 (HRESULT,IsRunning,IMoniker*,pmkObjectName) \
+ ICOM_METHOD2 (HRESULT,GetObject,IMoniker*,pmkObjectName,IUnknown**,ppunkObject) \
+ ICOM_METHOD2 (HRESULT,NoteChangeTime,DWORD,dwRegister,FILETIME*,pfiletime) \
+ ICOM_METHOD2 (HRESULT,GetTimeOfLastChange,IMoniker*,pmkObjectName,FILETIME*,pfiletime) \
+ ICOM_METHOD1 (HRESULT,EnumRunning,IEnumMoniker**,ppenumMoniker)
+
+/*** IUnknown methods ***/
+#define IRunningObjectTable_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IRunningObjectTable_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IRunningObjectTable_Release(p) (p)->lpVtbl->Release(p)
+/*** IRunningObjectTable methods ***/
+#define IRunningObjectTable_Register(p,a,b,c,d) (p)->lpVtbl->Register(p,a,b,c,d)
+#define IRunningObjectTable_Revoke(p,a) (p)->lpVtbl->Revoke(p,a)
+#define IRunningObjectTable_IsRunning(p,a) (p)->lpVtbl->IsRunning(p,a)
+#define IRunningObjectTable_GetObject(p,a,b) (p)->lpVtbl->GetObject(p,a,b)
+#define IRunningObjectTable_NoteChangeTime(p,a,b) (p)->lpVtbl->NoteChangeTime(p,a,b)
+#define IRunningObjectTable_GetTimeOfLastChange(p,a,b) (p)->lpVtbl->GetTimeOfLastChange(p,a,b)
+#define IRunningObjectTable_EnumRunning(p,a) (p)->lpVtbl->EnumRunning(p,a)
+
+#endif
+
+HRESULT CALLBACK IRunningObjectTable_Register_Proxy(
+ IRunningObjectTable* This,
+ DWORD grfFlags,
+ IUnknown* punkObject,
+ IMoniker* pmkObjectName,
+ DWORD* pdwRegister);
+void __RPC_STUB IRunningObjectTable_Register_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRunningObjectTable_Revoke_Proxy(
+ IRunningObjectTable* This,
+ DWORD dwRegister);
+void __RPC_STUB IRunningObjectTable_Revoke_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRunningObjectTable_IsRunning_Proxy(
+ IRunningObjectTable* This,
+ IMoniker* pmkObjectName);
+void __RPC_STUB IRunningObjectTable_IsRunning_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRunningObjectTable_GetObject_Proxy(
+ IRunningObjectTable* This,
+ IMoniker* pmkObjectName,
+ IUnknown** ppunkObject);
+void __RPC_STUB IRunningObjectTable_GetObject_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRunningObjectTable_NoteChangeTime_Proxy(
+ IRunningObjectTable* This,
+ DWORD dwRegister,
+ FILETIME* pfiletime);
+void __RPC_STUB IRunningObjectTable_NoteChangeTime_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRunningObjectTable_GetTimeOfLastChange_Proxy(
+ IRunningObjectTable* This,
+ IMoniker* pmkObjectName,
+ FILETIME* pfiletime);
+void __RPC_STUB IRunningObjectTable_GetTimeOfLastChange_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRunningObjectTable_EnumRunning_Proxy(
+ IRunningObjectTable* This,
+ IEnumMoniker** ppenumMoniker);
+void __RPC_STUB IRunningObjectTable_EnumRunning_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IPersist IPersist;
+typedef IPersist *LPPERSIST;
+
+/*****************************************************************************
+ * IPersist interface
+ */
+DEFINE_GUID(IID_IPersist, 0x0000010c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IPersist: IUnknown {
+
+ virtual HRESULT CALLBACK GetClassID(
+ CLSID* pClassID) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IPersistVtbl IPersistVtbl;
+struct IPersist {
+ const IPersistVtbl* lpVtbl;
+};
+struct IPersistVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IPersist* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IPersist* This);
+
+ ULONG (CALLBACK *Release)(
+ IPersist* This);
+
+ /*** IPersist methods ***/
+ HRESULT (CALLBACK *GetClassID)(
+ IPersist* This,
+ CLSID* pClassID);
+
+};
+
+#define IPersist_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD1 (HRESULT,GetClassID,CLSID*,pClassID)
+
+/*** IUnknown methods ***/
+#define IPersist_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IPersist_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IPersist_Release(p) (p)->lpVtbl->Release(p)
+/*** IPersist methods ***/
+#define IPersist_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
+
+#endif
+
+HRESULT CALLBACK IPersist_GetClassID_Proxy(
+ IPersist* This,
+ CLSID* pClassID);
+void __RPC_STUB IPersist_GetClassID_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IPersistStream IPersistStream;
+typedef IPersistStream *LPPERSISTSTREAM;
+
+/*****************************************************************************
+ * IPersistStream interface
+ */
+DEFINE_GUID(IID_IPersistStream, 0x00000109, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IPersistStream: IPersist {
+
+ virtual HRESULT CALLBACK IsDirty(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Load(
+ IStream* pStm) = 0;
+
+ virtual HRESULT CALLBACK Save(
+ IStream* pStm,
+ BOOL fClearDirty) = 0;
+
+ virtual HRESULT CALLBACK GetSizeMax(
+ ULARGE_INTEGER* pcbSize) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IPersistStreamVtbl IPersistStreamVtbl;
+struct IPersistStream {
+ const IPersistStreamVtbl* lpVtbl;
+};
+struct IPersistStreamVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IPersistStream* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IPersistStream* This);
+
+ ULONG (CALLBACK *Release)(
+ IPersistStream* This);
+
+ /*** IPersist methods ***/
+ HRESULT (CALLBACK *GetClassID)(
+ IPersistStream* This,
+ CLSID* pClassID);
+
+ /*** IPersistStream methods ***/
+ HRESULT (CALLBACK *IsDirty)(
+ IPersistStream* This);
+
+ HRESULT (CALLBACK *Load)(
+ IPersistStream* This,
+ IStream* pStm);
+
+ HRESULT (CALLBACK *Save)(
+ IPersistStream* This,
+ IStream* pStm,
+ BOOL fClearDirty);
+
+ HRESULT (CALLBACK *GetSizeMax)(
+ IPersistStream* This,
+ ULARGE_INTEGER* pcbSize);
+
+};
+
+#define IPersistStream_IMETHODS \
+ IPersist_IMETHODS \
+ ICOM_METHOD (HRESULT,IsDirty) \
+ ICOM_METHOD1 (HRESULT,Load,IStream*,pStm) \
+ ICOM_METHOD2 (HRESULT,Save,IStream*,pStm,BOOL,fClearDirty) \
+ ICOM_METHOD1 (HRESULT,GetSizeMax,ULARGE_INTEGER*,pcbSize)
+
+/*** IUnknown methods ***/
+#define IPersistStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IPersistStream_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IPersistStream_Release(p) (p)->lpVtbl->Release(p)
+/*** IPersist methods ***/
+#define IPersistStream_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
+/*** IPersistStream methods ***/
+#define IPersistStream_IsDirty(p) (p)->lpVtbl->IsDirty(p)
+#define IPersistStream_Load(p,a) (p)->lpVtbl->Load(p,a)
+#define IPersistStream_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
+#define IPersistStream_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
+
+#endif
+
+HRESULT CALLBACK IPersistStream_IsDirty_Proxy(
+ IPersistStream* This);
+void __RPC_STUB IPersistStream_IsDirty_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistStream_Load_Proxy(
+ IPersistStream* This,
+ IStream* pStm);
+void __RPC_STUB IPersistStream_Load_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistStream_Save_Proxy(
+ IPersistStream* This,
+ IStream* pStm,
+ BOOL fClearDirty);
+void __RPC_STUB IPersistStream_Save_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistStream_GetSizeMax_Proxy(
+ IPersistStream* This,
+ ULARGE_INTEGER* pcbSize);
+void __RPC_STUB IPersistStream_GetSizeMax_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef IMoniker *LPMONIKER;
+
+typedef enum tagMKSYS {
+ MKSYS_NONE = 0,
+ MKSYS_GENERICCOMPOSITE = 1,
+ MKSYS_FILEMONIKER = 2,
+ MKSYS_ANTIMONIKER = 3,
+ MKSYS_ITEMMONIKER = 4,
+ MKSYS_POINTERMONIKER = 5,
+ MKSYS_CLASSMONIKER = 7
+} MKSYS;
+
+typedef enum tagMKREDUCE {
+ MKRREDUCE_ONE = 3 << 16,
+ MKRREDUCE_TOUSER = 2 << 16,
+ MKRREDUCE_THROUGHUSER = 1 << 16,
+ MKRREDUCE_ALL = 0
+} MKRREDUCE;
+
+/*****************************************************************************
+ * IMoniker interface
+ */
+DEFINE_GUID(IID_IMoniker, 0x0000000f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IMoniker: IPersistStream {
+
+ virtual HRESULT CALLBACK BindToObject(
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ REFIID riidResult,
+ void** ppvResult) = 0;
+
+ virtual HRESULT CALLBACK BindToStorage(
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ REFIID riid,
+ void** ppvObj) = 0;
+
+ virtual HRESULT CALLBACK Reduce(
+ IBindCtx* pbc,
+ DWORD dwReduceHowFar,
+ IMoniker** ppmkToLeft,
+ IMoniker** ppmkReduced) = 0;
+
+ virtual HRESULT CALLBACK ComposeWith(
+ IMoniker* pmkRight,
+ BOOL fOnlyIfNotGeneric,
+ IMoniker** ppmkComposite) = 0;
+
+ virtual HRESULT CALLBACK Enum(
+ BOOL fForward,
+ IEnumMoniker** ppenumMoniker) = 0;
+
+ virtual HRESULT CALLBACK IsEqual(
+ IMoniker* pmkOtherMoniker) = 0;
+
+ virtual HRESULT CALLBACK Hash(
+ DWORD* pdwHash) = 0;
+
+ virtual HRESULT CALLBACK IsRunning(
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ IMoniker* pmkNewlyRunning) = 0;
+
+ virtual HRESULT CALLBACK GetTimeOfLastChange(
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ FILETIME* pFileTime) = 0;
+
+ virtual HRESULT CALLBACK Inverse(
+ IMoniker** ppmk) = 0;
+
+ virtual HRESULT CALLBACK CommonPrefixWith(
+ IMoniker* pmkOther,
+ IMoniker** ppmkPrefix) = 0;
+
+ virtual HRESULT CALLBACK RelativePathTo(
+ IMoniker* pmkOther,
+ IMoniker** ppmkRelPath) = 0;
+
+ virtual HRESULT CALLBACK GetDisplayName(
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ LPOLESTR* ppszDisplayName) = 0;
+
+ virtual HRESULT CALLBACK ParseDisplayName(
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ LPOLESTR pszDisplayName,
+ ULONG* pchEaten,
+ IMoniker** ppmkOut) = 0;
+
+ virtual HRESULT CALLBACK IsSystemMoniker(
+ DWORD* pdwMksys) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IMonikerVtbl IMonikerVtbl;
+struct IMoniker {
+ const IMonikerVtbl* lpVtbl;
+};
+struct IMonikerVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IMoniker* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IMoniker* This);
+
+ ULONG (CALLBACK *Release)(
+ IMoniker* This);
+
+ /*** IPersist methods ***/
+ HRESULT (CALLBACK *GetClassID)(
+ IMoniker* This,
+ CLSID* pClassID);
+
+ /*** IPersistStream methods ***/
+ HRESULT (CALLBACK *IsDirty)(
+ IMoniker* This);
+
+ HRESULT (CALLBACK *Load)(
+ IMoniker* This,
+ IStream* pStm);
+
+ HRESULT (CALLBACK *Save)(
+ IMoniker* This,
+ IStream* pStm,
+ BOOL fClearDirty);
+
+ HRESULT (CALLBACK *GetSizeMax)(
+ IMoniker* This,
+ ULARGE_INTEGER* pcbSize);
+
+ /*** IMoniker methods ***/
+ HRESULT (CALLBACK *BindToObject)(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ REFIID riidResult,
+ void** ppvResult);
+
+ HRESULT (CALLBACK *BindToStorage)(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ REFIID riid,
+ void** ppvObj);
+
+ HRESULT (CALLBACK *Reduce)(
+ IMoniker* This,
+ IBindCtx* pbc,
+ DWORD dwReduceHowFar,
+ IMoniker** ppmkToLeft,
+ IMoniker** ppmkReduced);
+
+ HRESULT (CALLBACK *ComposeWith)(
+ IMoniker* This,
+ IMoniker* pmkRight,
+ BOOL fOnlyIfNotGeneric,
+ IMoniker** ppmkComposite);
+
+ HRESULT (CALLBACK *Enum)(
+ IMoniker* This,
+ BOOL fForward,
+ IEnumMoniker** ppenumMoniker);
+
+ HRESULT (CALLBACK *IsEqual)(
+ IMoniker* This,
+ IMoniker* pmkOtherMoniker);
+
+ HRESULT (CALLBACK *Hash)(
+ IMoniker* This,
+ DWORD* pdwHash);
+
+ HRESULT (CALLBACK *IsRunning)(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ IMoniker* pmkNewlyRunning);
+
+ HRESULT (CALLBACK *GetTimeOfLastChange)(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ FILETIME* pFileTime);
+
+ HRESULT (CALLBACK *Inverse)(
+ IMoniker* This,
+ IMoniker** ppmk);
+
+ HRESULT (CALLBACK *CommonPrefixWith)(
+ IMoniker* This,
+ IMoniker* pmkOther,
+ IMoniker** ppmkPrefix);
+
+ HRESULT (CALLBACK *RelativePathTo)(
+ IMoniker* This,
+ IMoniker* pmkOther,
+ IMoniker** ppmkRelPath);
+
+ HRESULT (CALLBACK *GetDisplayName)(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ LPOLESTR* ppszDisplayName);
+
+ HRESULT (CALLBACK *ParseDisplayName)(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ LPOLESTR pszDisplayName,
+ ULONG* pchEaten,
+ IMoniker** ppmkOut);
+
+ HRESULT (CALLBACK *IsSystemMoniker)(
+ IMoniker* This,
+ DWORD* pdwMksys);
+
+};
+
+#define IMoniker_IMETHODS \
+ IPersistStream_IMETHODS \
+ ICOM_METHOD4 (HRESULT,BindToObject,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riidResult,void**,ppvResult) \
+ ICOM_METHOD4 (HRESULT,BindToStorage,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riid,void**,ppvObj) \
+ ICOM_METHOD4 (HRESULT,Reduce,IBindCtx*,pbc,DWORD,dwReduceHowFar,IMoniker**,ppmkToLeft,IMoniker**,ppmkReduced) \
+ ICOM_METHOD3 (HRESULT,ComposeWith,IMoniker*,pmkRight,BOOL,fOnlyIfNotGeneric,IMoniker**,ppmkComposite) \
+ ICOM_METHOD2 (HRESULT,Enum,BOOL,fForward,IEnumMoniker**,ppenumMoniker) \
+ ICOM_METHOD1 (HRESULT,IsEqual,IMoniker*,pmkOtherMoniker) \
+ ICOM_METHOD1 (HRESULT,Hash,DWORD*,pdwHash) \
+ ICOM_METHOD3 (HRESULT,IsRunning,IBindCtx*,pbc,IMoniker*,pmkToLeft,IMoniker*,pmkNewlyRunning) \
+ ICOM_METHOD3 (HRESULT,GetTimeOfLastChange,IBindCtx*,pbc,IMoniker*,pmkToLeft,FILETIME*,pFileTime) \
+ ICOM_METHOD1 (HRESULT,Inverse,IMoniker**,ppmk) \
+ ICOM_METHOD2 (HRESULT,CommonPrefixWith,IMoniker*,pmkOther,IMoniker**,ppmkPrefix) \
+ ICOM_METHOD2 (HRESULT,RelativePathTo,IMoniker*,pmkOther,IMoniker**,ppmkRelPath) \
+ ICOM_METHOD3 (HRESULT,GetDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR*,ppszDisplayName) \
+ ICOM_METHOD5 (HRESULT,ParseDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR,pszDisplayName,ULONG*,pchEaten,IMoniker**,ppmkOut) \
+ ICOM_METHOD1 (HRESULT,IsSystemMoniker,DWORD*,pdwMksys)
+
+/*** IUnknown methods ***/
+#define IMoniker_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IMoniker_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IMoniker_Release(p) (p)->lpVtbl->Release(p)
+/*** IPersist methods ***/
+#define IMoniker_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
+/*** IPersistStream methods ***/
+#define IMoniker_IsDirty(p) (p)->lpVtbl->IsDirty(p)
+#define IMoniker_Load(p,a) (p)->lpVtbl->Load(p,a)
+#define IMoniker_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
+#define IMoniker_GetSizeMax(p,a) (p)->lpVtbl->GetSizeMax(p,a)
+/*** IMoniker methods ***/
+#define IMoniker_BindToObject(p,a,b,c,d) (p)->lpVtbl->BindToObject(p,a,b,c,d)
+#define IMoniker_BindToStorage(p,a,b,c,d) (p)->lpVtbl->BindToStorage(p,a,b,c,d)
+#define IMoniker_Reduce(p,a,b,c,d) (p)->lpVtbl->Reduce(p,a,b,c,d)
+#define IMoniker_ComposeWith(p,a,b,c) (p)->lpVtbl->ComposeWith(p,a,b,c)
+#define IMoniker_Enum(p,a,b) (p)->lpVtbl->Enum(p,a,b)
+#define IMoniker_IsEqual(p,a) (p)->lpVtbl->IsEqual(p,a)
+#define IMoniker_Hash(p,a) (p)->lpVtbl->Hash(p,a)
+#define IMoniker_IsRunning(p,a,b,c) (p)->lpVtbl->IsRunning(p,a,b,c)
+#define IMoniker_GetTimeOfLastChange(p,a,b,c) (p)->lpVtbl->GetTimeOfLastChange(p,a,b,c)
+#define IMoniker_Inverse(p,a) (p)->lpVtbl->Inverse(p,a)
+#define IMoniker_CommonPrefixWith(p,a,b) (p)->lpVtbl->CommonPrefixWith(p,a,b)
+#define IMoniker_RelativePathTo(p,a,b) (p)->lpVtbl->RelativePathTo(p,a,b)
+#define IMoniker_GetDisplayName(p,a,b,c) (p)->lpVtbl->GetDisplayName(p,a,b,c)
+#define IMoniker_ParseDisplayName(p,a,b,c,d,e) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d,e)
+#define IMoniker_IsSystemMoniker(p,a) (p)->lpVtbl->IsSystemMoniker(p,a)
+
+#endif
+
+HRESULT CALLBACK IMoniker_RemoteBindToObject_Proxy(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ REFIID riidResult,
+ IUnknown** ppvResult);
+void __RPC_STUB IMoniker_RemoteBindToObject_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_BindToObject_Proxy(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ REFIID riidResult,
+ void** ppvResult);
+HRESULT __RPC_STUB IMoniker_BindToObject_Stub(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ REFIID riidResult,
+ IUnknown** ppvResult);
+HRESULT CALLBACK IMoniker_RemoteBindToStorage_Proxy(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ REFIID riid,
+ IUnknown** ppvObj);
+void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_BindToStorage_Proxy(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ REFIID riid,
+ void** ppvObj);
+HRESULT __RPC_STUB IMoniker_BindToStorage_Stub(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ REFIID riid,
+ IUnknown** ppvObj);
+HRESULT CALLBACK IMoniker_Reduce_Proxy(
+ IMoniker* This,
+ IBindCtx* pbc,
+ DWORD dwReduceHowFar,
+ IMoniker** ppmkToLeft,
+ IMoniker** ppmkReduced);
+void __RPC_STUB IMoniker_Reduce_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_ComposeWith_Proxy(
+ IMoniker* This,
+ IMoniker* pmkRight,
+ BOOL fOnlyIfNotGeneric,
+ IMoniker** ppmkComposite);
+void __RPC_STUB IMoniker_ComposeWith_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_Enum_Proxy(
+ IMoniker* This,
+ BOOL fForward,
+ IEnumMoniker** ppenumMoniker);
+void __RPC_STUB IMoniker_Enum_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_IsEqual_Proxy(
+ IMoniker* This,
+ IMoniker* pmkOtherMoniker);
+void __RPC_STUB IMoniker_IsEqual_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_Hash_Proxy(
+ IMoniker* This,
+ DWORD* pdwHash);
+void __RPC_STUB IMoniker_Hash_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_IsRunning_Proxy(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ IMoniker* pmkNewlyRunning);
+void __RPC_STUB IMoniker_IsRunning_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_GetTimeOfLastChange_Proxy(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ FILETIME* pFileTime);
+void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_Inverse_Proxy(
+ IMoniker* This,
+ IMoniker** ppmk);
+void __RPC_STUB IMoniker_Inverse_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_CommonPrefixWith_Proxy(
+ IMoniker* This,
+ IMoniker* pmkOther,
+ IMoniker** ppmkPrefix);
+void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_RelativePathTo_Proxy(
+ IMoniker* This,
+ IMoniker* pmkOther,
+ IMoniker** ppmkRelPath);
+void __RPC_STUB IMoniker_RelativePathTo_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_GetDisplayName_Proxy(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ LPOLESTR* ppszDisplayName);
+void __RPC_STUB IMoniker_GetDisplayName_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_ParseDisplayName_Proxy(
+ IMoniker* This,
+ IBindCtx* pbc,
+ IMoniker* pmkToLeft,
+ LPOLESTR pszDisplayName,
+ ULONG* pchEaten,
+ IMoniker** ppmkOut);
+void __RPC_STUB IMoniker_ParseDisplayName_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IMoniker_IsSystemMoniker_Proxy(
+ IMoniker* This,
+ DWORD* pdwMksys);
+void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IROTData IROTData;
+/*****************************************************************************
+ * IROTData interface
+ */
+DEFINE_GUID(IID_IROTData, 0xf29f6bc0, 0x5021, 0x11ce, 0xaa,0x15, 0x00,0x00,0x69,0x01,0x29,0x3f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IROTData: IUnknown {
+
+ virtual HRESULT CALLBACK GetComparisonData(
+ byte* pbData,
+ ULONG cbMax,
+ ULONG* pcbData) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IROTDataVtbl IROTDataVtbl;
+struct IROTData {
+ const IROTDataVtbl* lpVtbl;
+};
+struct IROTDataVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IROTData* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IROTData* This);
+
+ ULONG (CALLBACK *Release)(
+ IROTData* This);
+
+ /*** IROTData methods ***/
+ HRESULT (CALLBACK *GetComparisonData)(
+ IROTData* This,
+ byte* pbData,
+ ULONG cbMax,
+ ULONG* pcbData);
+
+};
+
+#define IROTData_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,GetComparisonData,byte*,pbData,ULONG,cbMax,ULONG*,pcbData)
+
+/*** IUnknown methods ***/
+#define IROTData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IROTData_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IROTData_Release(p) (p)->lpVtbl->Release(p)
+/*** IROTData methods ***/
+#define IROTData_GetComparisonData(p,a,b,c) (p)->lpVtbl->GetComparisonData(p,a,b,c)
+
+#endif
+
+HRESULT CALLBACK IROTData_GetComparisonData_Proxy(
+ IROTData* This,
+ byte* pbData,
+ ULONG cbMax,
+ ULONG* pcbData);
+void __RPC_STUB IROTData_GetComparisonData_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef IEnumString *LPENUMSTRING;
+
+/*****************************************************************************
+ * IEnumString interface
+ */
+DEFINE_GUID(IID_IEnumString, 0x00000101, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumString: IUnknown {
+
+ virtual HRESULT CALLBACK Next(
+ ULONG celt,
+ LPOLESTR* rgelt,
+ ULONG* pceltFetched) = 0;
+
+ virtual HRESULT CALLBACK Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT CALLBACK Reset(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Clone(
+ IEnumString** ppenum) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IEnumStringVtbl IEnumStringVtbl;
+struct IEnumString {
+ const IEnumStringVtbl* lpVtbl;
+};
+struct IEnumStringVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IEnumString* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IEnumString* This);
+
+ ULONG (CALLBACK *Release)(
+ IEnumString* This);
+
+ /*** IEnumString methods ***/
+ HRESULT (CALLBACK *Next)(
+ IEnumString* This,
+ ULONG celt,
+ LPOLESTR* rgelt,
+ ULONG* pceltFetched);
+
+ HRESULT (CALLBACK *Skip)(
+ IEnumString* This,
+ ULONG celt);
+
+ HRESULT (CALLBACK *Reset)(
+ IEnumString* This);
+
+ HRESULT (CALLBACK *Clone)(
+ IEnumString* This,
+ IEnumString** ppenum);
+
+};
+
+#define IEnumString_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,Next,ULONG,celt,LPOLESTR*,rgelt,ULONG*,pceltFetched) \
+ ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
+ ICOM_METHOD (HRESULT,Reset) \
+ ICOM_METHOD1 (HRESULT,Clone,IEnumString**,ppenum)
+
+/*** IUnknown methods ***/
+#define IEnumString_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumString_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumString_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumString methods ***/
+#define IEnumString_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumString_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+#define IEnumString_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumString_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+
+#endif
+
+HRESULT CALLBACK IEnumString_RemoteNext_Proxy(
+ IEnumString* This,
+ ULONG celt,
+ LPOLESTR* rgelt,
+ ULONG* pceltFetched);
+void __RPC_STUB IEnumString_RemoteNext_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumString_Next_Proxy(
+ IEnumString* This,
+ ULONG celt,
+ LPOLESTR* rgelt,
+ ULONG* pceltFetched);
+HRESULT __RPC_STUB IEnumString_Next_Stub(
+ IEnumString* This,
+ ULONG celt,
+ LPOLESTR* rgelt,
+ ULONG* pceltFetched);
+HRESULT CALLBACK IEnumString_Skip_Proxy(
+ IEnumString* This,
+ ULONG celt);
+void __RPC_STUB IEnumString_Skip_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumString_Reset_Proxy(
+ IEnumString* This);
+void __RPC_STUB IEnumString_Reset_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumString_Clone_Proxy(
+ IEnumString* This,
+ IEnumString** ppenum);
+void __RPC_STUB IEnumString_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IClassActivator IClassActivator;
+/*****************************************************************************
+ * IClassActivator interface
+ */
+DEFINE_GUID(IID_IClassActivator, 0x00000140, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IClassActivator: IUnknown {
+
+ virtual HRESULT CALLBACK GetClassObject(
+ REFCLSID rclsid,
+ DWORD dwClassContext,
+ LCID locale,
+ REFIID riid,
+ void** ppv) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IClassActivatorVtbl IClassActivatorVtbl;
+struct IClassActivator {
+ const IClassActivatorVtbl* lpVtbl;
+};
+struct IClassActivatorVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IClassActivator* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IClassActivator* This);
+
+ ULONG (CALLBACK *Release)(
+ IClassActivator* This);
+
+ /*** IClassActivator methods ***/
+ HRESULT (CALLBACK *GetClassObject)(
+ IClassActivator* This,
+ REFCLSID rclsid,
+ DWORD dwClassContext,
+ LCID locale,
+ REFIID riid,
+ void** ppv);
+
+};
+
+#define IClassActivator_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD5 (HRESULT,GetClassObject,REFCLSID,rclsid,DWORD,dwClassContext,LCID,locale,REFIID,riid,void**,ppv)
+
+/*** IUnknown methods ***/
+#define IClassActivator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IClassActivator_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IClassActivator_Release(p) (p)->lpVtbl->Release(p)
+/*** IClassActivator methods ***/
+#define IClassActivator_GetClassObject(p,a,b,c,d,e) (p)->lpVtbl->GetClassObject(p,a,b,c,d,e)
+
+#endif
+
+HRESULT CALLBACK IClassActivator_GetClassObject_Proxy(
+ IClassActivator* This,
+ REFCLSID rclsid,
+ DWORD dwClassContext,
+ LCID locale,
+ REFIID riid,
+ void** ppv);
+void __RPC_STUB IClassActivator_GetClassObject_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct ISequentialStream ISequentialStream;
+/*****************************************************************************
+ * ISequentialStream interface
+ */
+DEFINE_GUID(IID_ISequentialStream, 0x0c733a30, 0x2a1c, 0x11ce, 0xad,0xe5, 0x00,0xaa,0x00,0x44,0x77,0x3d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct ISequentialStream: IUnknown {
+
+ virtual HRESULT CALLBACK Read(
+ void* pv,
+ ULONG cb,
+ ULONG* pcbRead) = 0;
+
+ virtual HRESULT CALLBACK Write(
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct ISequentialStreamVtbl ISequentialStreamVtbl;
+struct ISequentialStream {
+ const ISequentialStreamVtbl* lpVtbl;
+};
+struct ISequentialStreamVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ ISequentialStream* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ ISequentialStream* This);
+
+ ULONG (CALLBACK *Release)(
+ ISequentialStream* This);
+
+ /*** ISequentialStream methods ***/
+ HRESULT (CALLBACK *Read)(
+ ISequentialStream* This,
+ void* pv,
+ ULONG cb,
+ ULONG* pcbRead);
+
+ HRESULT (CALLBACK *Write)(
+ ISequentialStream* This,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+
+};
+
+#define ISequentialStream_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,Read,void*,pv,ULONG,cb,ULONG*,pcbRead) \
+ ICOM_METHOD3 (HRESULT,Write,const void*,pv,ULONG,cb,ULONG*,pcbWritten)
+
+/*** IUnknown methods ***/
+#define ISequentialStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ISequentialStream_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ISequentialStream_Release(p) (p)->lpVtbl->Release(p)
+/*** ISequentialStream methods ***/
+#define ISequentialStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
+#define ISequentialStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
+
+#endif
+
+HRESULT CALLBACK ISequentialStream_RemoteRead_Proxy(
+ ISequentialStream* This,
+ byte* pv,
+ ULONG cb,
+ ULONG* pcbRead);
+void __RPC_STUB ISequentialStream_RemoteRead_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ISequentialStream_Read_Proxy(
+ ISequentialStream* This,
+ void* pv,
+ ULONG cb,
+ ULONG* pcbRead);
+HRESULT __RPC_STUB ISequentialStream_Read_Stub(
+ ISequentialStream* This,
+ byte* pv,
+ ULONG cb,
+ ULONG* pcbRead);
+HRESULT CALLBACK ISequentialStream_RemoteWrite_Proxy(
+ ISequentialStream* This,
+ const byte* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+void __RPC_STUB ISequentialStream_RemoteWrite_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ISequentialStream_Write_Proxy(
+ ISequentialStream* This,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+HRESULT __RPC_STUB ISequentialStream_Write_Stub(
+ ISequentialStream* This,
+ const byte* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+
+typedef IStream *LPSTREAM;
+
+typedef struct tagSTATSTG {
+ LPOLESTR pwcsName;
+ DWORD type;
+ ULARGE_INTEGER cbSize;
+ FILETIME mtime;
+ FILETIME ctime;
+ FILETIME atime;
+ DWORD grfMode;
+ DWORD grfLocksSupported;
+ CLSID clsid;
+ DWORD grfStateBits;
+ DWORD reserved;
+} STATSTG;
+
+typedef enum tagSTGTY {
+ STGTY_STORAGE = 1,
+ STGTY_STREAM = 2,
+ STGTY_LOCKBYTES = 3,
+ STGTY_PROPERTY = 4
+} STGTY;
+
+typedef enum tagSTREAM_SEEK {
+ STREAM_SEEK_SET = 0,
+ STREAM_SEEK_CUR = 1,
+ STREAM_SEEK_END = 2
+} STREAM_SEEK;
+
+#undef LOCK_MAND
+#undef LOCK_READ
+#undef LOCK_WRITE
+#undef LOCK_RW
+typedef enum tagLOCKTYPE {
+ LOCK_WRITE = 1,
+ LOCK_EXCLUSIVE = 2,
+ LOCK_ONLYONCE = 4
+} LOCKTYPE;
+
+/*****************************************************************************
+ * IStream interface
+ */
+DEFINE_GUID(IID_IStream, 0x0000000c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IStream: ISequentialStream {
+
+ virtual HRESULT CALLBACK Seek(
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER* plibNewPosition) = 0;
+
+ virtual HRESULT CALLBACK SetSize(
+ ULARGE_INTEGER libNewSize) = 0;
+
+ virtual HRESULT CALLBACK CopyTo(
+ IStream* pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER* pcbRead,
+ ULARGE_INTEGER* pcbWritten) = 0;
+
+ virtual HRESULT CALLBACK Commit(
+ DWORD grfCommitFlags) = 0;
+
+ virtual HRESULT CALLBACK Revert(
+ ) = 0;
+
+ virtual HRESULT CALLBACK LockRegion(
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType) = 0;
+
+ virtual HRESULT CALLBACK UnlockRegion(
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType) = 0;
+
+ virtual HRESULT CALLBACK Stat(
+ STATSTG* pstatstg,
+ DWORD grfStatFlag) = 0;
+
+ virtual HRESULT CALLBACK Clone(
+ IStream** ppstm) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IStreamVtbl IStreamVtbl;
+struct IStream {
+ const IStreamVtbl* lpVtbl;
+};
+struct IStreamVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IStream* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IStream* This);
+
+ ULONG (CALLBACK *Release)(
+ IStream* This);
+
+ /*** ISequentialStream methods ***/
+ HRESULT (CALLBACK *Read)(
+ IStream* This,
+ void* pv,
+ ULONG cb,
+ ULONG* pcbRead);
+
+ HRESULT (CALLBACK *Write)(
+ IStream* This,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+
+ /*** IStream methods ***/
+ HRESULT (CALLBACK *Seek)(
+ IStream* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER* plibNewPosition);
+
+ HRESULT (CALLBACK *SetSize)(
+ IStream* This,
+ ULARGE_INTEGER libNewSize);
+
+ HRESULT (CALLBACK *CopyTo)(
+ IStream* This,
+ IStream* pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER* pcbRead,
+ ULARGE_INTEGER* pcbWritten);
+
+ HRESULT (CALLBACK *Commit)(
+ IStream* This,
+ DWORD grfCommitFlags);
+
+ HRESULT (CALLBACK *Revert)(
+ IStream* This);
+
+ HRESULT (CALLBACK *LockRegion)(
+ IStream* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+
+ HRESULT (CALLBACK *UnlockRegion)(
+ IStream* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+
+ HRESULT (CALLBACK *Stat)(
+ IStream* This,
+ STATSTG* pstatstg,
+ DWORD grfStatFlag);
+
+ HRESULT (CALLBACK *Clone)(
+ IStream* This,
+ IStream** ppstm);
+
+};
+
+#define IStream_IMETHODS \
+ ISequentialStream_IMETHODS \
+ ICOM_METHOD3 (HRESULT,Seek,LARGE_INTEGER,dlibMove,DWORD,dwOrigin,ULARGE_INTEGER*,plibNewPosition) \
+ ICOM_METHOD1 (HRESULT,SetSize,ULARGE_INTEGER,libNewSize) \
+ ICOM_METHOD4 (HRESULT,CopyTo,IStream*,pstm,ULARGE_INTEGER,cb,ULARGE_INTEGER*,pcbRead,ULARGE_INTEGER*,pcbWritten) \
+ ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
+ ICOM_METHOD (HRESULT,Revert) \
+ ICOM_METHOD3 (HRESULT,LockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
+ ICOM_METHOD3 (HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
+ ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag) \
+ ICOM_METHOD1 (HRESULT,Clone,IStream**,ppstm)
+
+/*** IUnknown methods ***/
+#define IStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IStream_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IStream_Release(p) (p)->lpVtbl->Release(p)
+/*** ISequentialStream methods ***/
+#define IStream_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
+#define IStream_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
+/*** IStream methods ***/
+#define IStream_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
+#define IStream_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
+#define IStream_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
+#define IStream_Commit(p,a) (p)->lpVtbl->Commit(p,a)
+#define IStream_Revert(p) (p)->lpVtbl->Revert(p)
+#define IStream_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
+#define IStream_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
+#define IStream_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
+#define IStream_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+
+#endif
+
+HRESULT CALLBACK IStream_RemoteSeek_Proxy(
+ IStream* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER* plibNewPosition);
+void __RPC_STUB IStream_RemoteSeek_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream_Seek_Proxy(
+ IStream* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER* plibNewPosition);
+HRESULT __RPC_STUB IStream_Seek_Stub(
+ IStream* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER* plibNewPosition);
+HRESULT CALLBACK IStream_SetSize_Proxy(
+ IStream* This,
+ ULARGE_INTEGER libNewSize);
+void __RPC_STUB IStream_SetSize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream_RemoteCopyTo_Proxy(
+ IStream* This,
+ IStream* pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER* pcbRead,
+ ULARGE_INTEGER* pcbWritten);
+void __RPC_STUB IStream_RemoteCopyTo_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream_CopyTo_Proxy(
+ IStream* This,
+ IStream* pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER* pcbRead,
+ ULARGE_INTEGER* pcbWritten);
+HRESULT __RPC_STUB IStream_CopyTo_Stub(
+ IStream* This,
+ IStream* pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER* pcbRead,
+ ULARGE_INTEGER* pcbWritten);
+HRESULT CALLBACK IStream_Commit_Proxy(
+ IStream* This,
+ DWORD grfCommitFlags);
+void __RPC_STUB IStream_Commit_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream_Revert_Proxy(
+ IStream* This);
+void __RPC_STUB IStream_Revert_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream_LockRegion_Proxy(
+ IStream* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+void __RPC_STUB IStream_LockRegion_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream_UnlockRegion_Proxy(
+ IStream* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+void __RPC_STUB IStream_UnlockRegion_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream_Stat_Proxy(
+ IStream* This,
+ STATSTG* pstatstg,
+ DWORD grfStatFlag);
+void __RPC_STUB IStream_Stat_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream_Clone_Proxy(
+ IStream* This,
+ IStream** ppstm);
+void __RPC_STUB IStream_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef IStream16 *LPSTREAM16;
+
+typedef struct tagSTATSTG16 {
+ LPOLESTR16 pwcsName;
+ DWORD type;
+ ULARGE_INTEGER cbSize;
+ FILETIME mtime;
+ FILETIME ctime;
+ FILETIME atime;
+ DWORD grfMode;
+ DWORD grfLocksSupported;
+ CLSID clsid;
+ DWORD grfStateBits;
+ DWORD reserved;
+} STATSTG16;
+
+/*****************************************************************************
+ * IStream16 interface
+ */
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IStream16: ISequentialStream {
+
+ virtual HRESULT CALLBACK Seek(
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER* plibNewPosition) = 0;
+
+ virtual HRESULT CALLBACK SetSize(
+ ULARGE_INTEGER libNewSize) = 0;
+
+ virtual HRESULT CALLBACK CopyTo(
+ IStream16* pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER* pcbRead,
+ ULARGE_INTEGER* pcbWritten) = 0;
+
+ virtual HRESULT CALLBACK Commit(
+ DWORD grfCommitFlags) = 0;
+
+ virtual HRESULT CALLBACK Revert(
+ ) = 0;
+
+ virtual HRESULT CALLBACK LockRegion(
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType) = 0;
+
+ virtual HRESULT CALLBACK UnlockRegion(
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType) = 0;
+
+ virtual HRESULT CALLBACK Stat(
+ STATSTG* pstatstg,
+ DWORD grfStatFlag) = 0;
+
+ virtual HRESULT CALLBACK Clone(
+ IStream16** ppstm) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IStream16Vtbl IStream16Vtbl;
+struct IStream16 {
+ const IStream16Vtbl* lpVtbl;
+};
+struct IStream16Vtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IStream16* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IStream16* This);
+
+ ULONG (CALLBACK *Release)(
+ IStream16* This);
+
+ /*** ISequentialStream methods ***/
+ HRESULT (CALLBACK *Read)(
+ IStream16* This,
+ void* pv,
+ ULONG cb,
+ ULONG* pcbRead);
+
+ HRESULT (CALLBACK *Write)(
+ IStream16* This,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+
+ /*** IStream16 methods ***/
+ HRESULT (CALLBACK *Seek)(
+ IStream16* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER* plibNewPosition);
+
+ HRESULT (CALLBACK *SetSize)(
+ IStream16* This,
+ ULARGE_INTEGER libNewSize);
+
+ HRESULT (CALLBACK *CopyTo)(
+ IStream16* This,
+ IStream16* pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER* pcbRead,
+ ULARGE_INTEGER* pcbWritten);
+
+ HRESULT (CALLBACK *Commit)(
+ IStream16* This,
+ DWORD grfCommitFlags);
+
+ HRESULT (CALLBACK *Revert)(
+ IStream16* This);
+
+ HRESULT (CALLBACK *LockRegion)(
+ IStream16* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+
+ HRESULT (CALLBACK *UnlockRegion)(
+ IStream16* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+
+ HRESULT (CALLBACK *Stat)(
+ IStream16* This,
+ STATSTG* pstatstg,
+ DWORD grfStatFlag);
+
+ HRESULT (CALLBACK *Clone)(
+ IStream16* This,
+ IStream16** ppstm);
+
+};
+
+#define IStream16_IMETHODS \
+ ISequentialStream_IMETHODS \
+ ICOM_METHOD3 (HRESULT,Seek,LARGE_INTEGER,dlibMove,DWORD,dwOrigin,ULARGE_INTEGER*,plibNewPosition) \
+ ICOM_METHOD1 (HRESULT,SetSize,ULARGE_INTEGER,libNewSize) \
+ ICOM_METHOD4 (HRESULT,CopyTo,IStream16*,pstm,ULARGE_INTEGER,cb,ULARGE_INTEGER*,pcbRead,ULARGE_INTEGER*,pcbWritten) \
+ ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
+ ICOM_METHOD (HRESULT,Revert) \
+ ICOM_METHOD3 (HRESULT,LockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
+ ICOM_METHOD3 (HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
+ ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag) \
+ ICOM_METHOD1 (HRESULT,Clone,IStream16**,ppstm)
+
+/*** IUnknown methods ***/
+#define IStream16_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IStream16_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IStream16_Release(p) (p)->lpVtbl->Release(p)
+/*** ISequentialStream methods ***/
+#define IStream16_Read(p,a,b,c) (p)->lpVtbl->Read(p,a,b,c)
+#define IStream16_Write(p,a,b,c) (p)->lpVtbl->Write(p,a,b,c)
+/*** IStream16 methods ***/
+#define IStream16_Seek(p,a,b,c) (p)->lpVtbl->Seek(p,a,b,c)
+#define IStream16_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
+#define IStream16_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
+#define IStream16_Commit(p,a) (p)->lpVtbl->Commit(p,a)
+#define IStream16_Revert(p) (p)->lpVtbl->Revert(p)
+#define IStream16_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
+#define IStream16_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
+#define IStream16_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
+#define IStream16_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+
+#endif
+
+HRESULT CALLBACK IStream16_RemoteSeek_Proxy(
+ IStream16* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER* plibNewPosition);
+void __RPC_STUB IStream16_RemoteSeek_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream16_Seek_Proxy(
+ IStream16* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER* plibNewPosition);
+HRESULT __RPC_STUB IStream16_Seek_Stub(
+ IStream16* This,
+ LARGE_INTEGER dlibMove,
+ DWORD dwOrigin,
+ ULARGE_INTEGER* plibNewPosition);
+HRESULT CALLBACK IStream16_SetSize_Proxy(
+ IStream16* This,
+ ULARGE_INTEGER libNewSize);
+void __RPC_STUB IStream16_SetSize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream16_RemoteCopyTo_Proxy(
+ IStream16* This,
+ IStream16* pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER* pcbRead,
+ ULARGE_INTEGER* pcbWritten);
+void __RPC_STUB IStream16_RemoteCopyTo_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream16_CopyTo_Proxy(
+ IStream16* This,
+ IStream16* pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER* pcbRead,
+ ULARGE_INTEGER* pcbWritten);
+HRESULT __RPC_STUB IStream16_CopyTo_Stub(
+ IStream16* This,
+ IStream16* pstm,
+ ULARGE_INTEGER cb,
+ ULARGE_INTEGER* pcbRead,
+ ULARGE_INTEGER* pcbWritten);
+HRESULT CALLBACK IStream16_Commit_Proxy(
+ IStream16* This,
+ DWORD grfCommitFlags);
+void __RPC_STUB IStream16_Commit_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream16_Revert_Proxy(
+ IStream16* This);
+void __RPC_STUB IStream16_Revert_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream16_LockRegion_Proxy(
+ IStream16* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+void __RPC_STUB IStream16_LockRegion_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream16_UnlockRegion_Proxy(
+ IStream16* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+void __RPC_STUB IStream16_UnlockRegion_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream16_Stat_Proxy(
+ IStream16* This,
+ STATSTG* pstatstg,
+ DWORD grfStatFlag);
+void __RPC_STUB IStream16_Stat_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStream16_Clone_Proxy(
+ IStream16* This,
+ IStream16** ppstm);
+void __RPC_STUB IStream16_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IEnumSTATSTG IEnumSTATSTG;
+typedef IEnumSTATSTG *LPENUMSTATSTG;
+
+/*****************************************************************************
+ * IEnumSTATSTG interface
+ */
+DEFINE_GUID(IID_IEnumSTATSTG, 0x0000000d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumSTATSTG: IUnknown {
+
+ virtual HRESULT CALLBACK Next(
+ ULONG celt,
+ STATSTG* rgelt,
+ ULONG* pceltFetched) = 0;
+
+ virtual HRESULT CALLBACK Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT CALLBACK Reset(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Clone(
+ IEnumSTATSTG** ppenum) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IEnumSTATSTGVtbl IEnumSTATSTGVtbl;
+struct IEnumSTATSTG {
+ const IEnumSTATSTGVtbl* lpVtbl;
+};
+struct IEnumSTATSTGVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IEnumSTATSTG* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IEnumSTATSTG* This);
+
+ ULONG (CALLBACK *Release)(
+ IEnumSTATSTG* This);
+
+ /*** IEnumSTATSTG methods ***/
+ HRESULT (CALLBACK *Next)(
+ IEnumSTATSTG* This,
+ ULONG celt,
+ STATSTG* rgelt,
+ ULONG* pceltFetched);
+
+ HRESULT (CALLBACK *Skip)(
+ IEnumSTATSTG* This,
+ ULONG celt);
+
+ HRESULT (CALLBACK *Reset)(
+ IEnumSTATSTG* This);
+
+ HRESULT (CALLBACK *Clone)(
+ IEnumSTATSTG* This,
+ IEnumSTATSTG** ppenum);
+
+};
+
+#define IEnumSTATSTG_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATSTG*,rgelt,ULONG*,pceltFetched) \
+ ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
+ ICOM_METHOD (HRESULT,Reset) \
+ ICOM_METHOD1 (HRESULT,Clone,IEnumSTATSTG**,ppenum)
+
+/*** IUnknown methods ***/
+#define IEnumSTATSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumSTATSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumSTATSTG_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumSTATSTG methods ***/
+#define IEnumSTATSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumSTATSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+#define IEnumSTATSTG_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumSTATSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+
+#endif
+
+HRESULT CALLBACK IEnumSTATSTG_RemoteNext_Proxy(
+ IEnumSTATSTG* This,
+ ULONG celt,
+ STATSTG* rgelt,
+ ULONG* pceltFetched);
+void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
+ IEnumSTATSTG* This,
+ ULONG celt,
+ STATSTG* rgelt,
+ ULONG* pceltFetched);
+HRESULT __RPC_STUB IEnumSTATSTG_Next_Stub(
+ IEnumSTATSTG* This,
+ ULONG celt,
+ STATSTG* rgelt,
+ ULONG* pceltFetched);
+HRESULT CALLBACK IEnumSTATSTG_Skip_Proxy(
+ IEnumSTATSTG* This,
+ ULONG celt);
+void __RPC_STUB IEnumSTATSTG_Skip_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATSTG_Reset_Proxy(
+ IEnumSTATSTG* This);
+void __RPC_STUB IEnumSTATSTG_Reset_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATSTG_Clone_Proxy(
+ IEnumSTATSTG* This,
+ IEnumSTATSTG** ppenum);
+void __RPC_STUB IEnumSTATSTG_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IStorage IStorage;
+typedef IStorage *LPSTORAGE;
+
+typedef struct tagRemSNB {
+ unsigned long ulCntStr;
+ unsigned long ulCntChar;
+ OLECHAR rgString[1];
+} RemSNB;
+
+typedef RemSNB *wireSNB;
+
+typedef OLECHAR **SNB;
+
+/*****************************************************************************
+ * IStorage interface
+ */
+DEFINE_GUID(IID_IStorage, 0x0000000b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IStorage: IUnknown {
+
+ virtual HRESULT CALLBACK CreateStream(
+ LPCOLESTR pwcsName,
+ DWORD grfMode,
+ DWORD reserved1,
+ DWORD reserved2,
+ IStream** ppstm) = 0;
+
+ virtual HRESULT CALLBACK OpenStream(
+ LPCOLESTR pwcsName,
+ void* reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream** ppstm) = 0;
+
+ virtual HRESULT CALLBACK CreateStorage(
+ LPCOLESTR pwcsName,
+ DWORD grfMode,
+ DWORD dwStgFmt,
+ DWORD reserved2,
+ IStorage** ppstg) = 0;
+
+ virtual HRESULT CALLBACK OpenStorage(
+ LPCOLESTR pwcsName,
+ IStorage* pstgPriority,
+ DWORD grfMode,
+ SNB snbExclude,
+ DWORD reserved,
+ IStorage** ppstg) = 0;
+
+ virtual HRESULT CALLBACK CopyTo(
+ DWORD ciidExclude,
+ const IID* rgiidExclude,
+ SNB snbExclude,
+ IStorage* pstgDest) = 0;
+
+ virtual HRESULT CALLBACK MoveElementTo(
+ LPCOLESTR pwcsName,
+ IStorage* pstgDest,
+ LPCOLESTR pwcsNewName,
+ DWORD grfFlags) = 0;
+
+ virtual HRESULT CALLBACK Commit(
+ DWORD grfCommitFlags) = 0;
+
+ virtual HRESULT CALLBACK Revert(
+ ) = 0;
+
+ virtual HRESULT CALLBACK EnumElements(
+ DWORD reserved1,
+ void* reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG** ppenum) = 0;
+
+ virtual HRESULT CALLBACK DestroyElement(
+ LPCOLESTR pwcsName) = 0;
+
+ virtual HRESULT CALLBACK RenameElement(
+ LPCOLESTR pwcsOldName,
+ LPCOLESTR pwcsNewName) = 0;
+
+ virtual HRESULT CALLBACK SetElementTimes(
+ LPCOLESTR pwcsName,
+ const FILETIME* pctime,
+ const FILETIME* patime,
+ const FILETIME* pmtime) = 0;
+
+ virtual HRESULT CALLBACK SetClass(
+ REFCLSID clsid) = 0;
+
+ virtual HRESULT CALLBACK SetStateBits(
+ DWORD grfStateBits,
+ DWORD grfMask) = 0;
+
+ virtual HRESULT CALLBACK Stat(
+ STATSTG* pstatstg,
+ DWORD grfStatFlag) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IStorageVtbl IStorageVtbl;
+struct IStorage {
+ const IStorageVtbl* lpVtbl;
+};
+struct IStorageVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IStorage* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IStorage* This);
+
+ ULONG (CALLBACK *Release)(
+ IStorage* This);
+
+ /*** IStorage methods ***/
+ HRESULT (CALLBACK *CreateStream)(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ DWORD grfMode,
+ DWORD reserved1,
+ DWORD reserved2,
+ IStream** ppstm);
+
+ HRESULT (CALLBACK *OpenStream)(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ void* reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream** ppstm);
+
+ HRESULT (CALLBACK *CreateStorage)(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ DWORD grfMode,
+ DWORD dwStgFmt,
+ DWORD reserved2,
+ IStorage** ppstg);
+
+ HRESULT (CALLBACK *OpenStorage)(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ IStorage* pstgPriority,
+ DWORD grfMode,
+ SNB snbExclude,
+ DWORD reserved,
+ IStorage** ppstg);
+
+ HRESULT (CALLBACK *CopyTo)(
+ IStorage* This,
+ DWORD ciidExclude,
+ const IID* rgiidExclude,
+ SNB snbExclude,
+ IStorage* pstgDest);
+
+ HRESULT (CALLBACK *MoveElementTo)(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ IStorage* pstgDest,
+ LPCOLESTR pwcsNewName,
+ DWORD grfFlags);
+
+ HRESULT (CALLBACK *Commit)(
+ IStorage* This,
+ DWORD grfCommitFlags);
+
+ HRESULT (CALLBACK *Revert)(
+ IStorage* This);
+
+ HRESULT (CALLBACK *EnumElements)(
+ IStorage* This,
+ DWORD reserved1,
+ void* reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG** ppenum);
+
+ HRESULT (CALLBACK *DestroyElement)(
+ IStorage* This,
+ LPCOLESTR pwcsName);
+
+ HRESULT (CALLBACK *RenameElement)(
+ IStorage* This,
+ LPCOLESTR pwcsOldName,
+ LPCOLESTR pwcsNewName);
+
+ HRESULT (CALLBACK *SetElementTimes)(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ const FILETIME* pctime,
+ const FILETIME* patime,
+ const FILETIME* pmtime);
+
+ HRESULT (CALLBACK *SetClass)(
+ IStorage* This,
+ REFCLSID clsid);
+
+ HRESULT (CALLBACK *SetStateBits)(
+ IStorage* This,
+ DWORD grfStateBits,
+ DWORD grfMask);
+
+ HRESULT (CALLBACK *Stat)(
+ IStorage* This,
+ STATSTG* pstatstg,
+ DWORD grfStatFlag);
+
+};
+
+#define IStorage_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD5 (HRESULT,CreateStream,LPCOLESTR,pwcsName,DWORD,grfMode,DWORD,reserved1,DWORD,reserved2,IStream**,ppstm) \
+ ICOM_METHOD5 (HRESULT,OpenStream,LPCOLESTR,pwcsName,void*,reserved1,DWORD,grfMode,DWORD,reserved2,IStream**,ppstm) \
+ ICOM_METHOD5 (HRESULT,CreateStorage,LPCOLESTR,pwcsName,DWORD,grfMode,DWORD,dwStgFmt,DWORD,reserved2,IStorage**,ppstg) \
+ ICOM_METHOD6 (HRESULT,OpenStorage,LPCOLESTR,pwcsName,IStorage*,pstgPriority,DWORD,grfMode,SNB,snbExclude,DWORD,reserved,IStorage**,ppstg) \
+ ICOM_METHOD4 (HRESULT,CopyTo,DWORD,ciidExclude,const IID*,rgiidExclude,SNB,snbExclude,IStorage*,pstgDest) \
+ ICOM_METHOD4 (HRESULT,MoveElementTo,LPCOLESTR,pwcsName,IStorage*,pstgDest,LPCOLESTR,pwcsNewName,DWORD,grfFlags) \
+ ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
+ ICOM_METHOD (HRESULT,Revert) \
+ ICOM_METHOD4 (HRESULT,EnumElements,DWORD,reserved1,void*,reserved2,DWORD,reserved3,IEnumSTATSTG**,ppenum) \
+ ICOM_METHOD1 (HRESULT,DestroyElement,LPCOLESTR,pwcsName) \
+ ICOM_METHOD2 (HRESULT,RenameElement,LPCOLESTR,pwcsOldName,LPCOLESTR,pwcsNewName) \
+ ICOM_METHOD4 (HRESULT,SetElementTimes,LPCOLESTR,pwcsName,const FILETIME*,pctime,const FILETIME*,patime,const FILETIME*,pmtime) \
+ ICOM_METHOD1 (HRESULT,SetClass,REFCLSID,clsid) \
+ ICOM_METHOD2 (HRESULT,SetStateBits,DWORD,grfStateBits,DWORD,grfMask) \
+ ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag)
+
+/*** IUnknown methods ***/
+#define IStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IStorage_Release(p) (p)->lpVtbl->Release(p)
+/*** IStorage methods ***/
+#define IStorage_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
+#define IStorage_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
+#define IStorage_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
+#define IStorage_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
+#define IStorage_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
+#define IStorage_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
+#define IStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
+#define IStorage_Revert(p) (p)->lpVtbl->Revert(p)
+#define IStorage_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
+#define IStorage_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
+#define IStorage_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
+#define IStorage_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
+#define IStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
+#define IStorage_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
+#define IStorage_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
+
+#endif
+
+HRESULT CALLBACK IStorage_CreateStream_Proxy(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ DWORD grfMode,
+ DWORD reserved1,
+ DWORD reserved2,
+ IStream** ppstm);
+void __RPC_STUB IStorage_CreateStream_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_RemoteOpenStream_Proxy(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ unsigned long cbReserved1,
+ byte* reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream** ppstm);
+void __RPC_STUB IStorage_RemoteOpenStream_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_OpenStream_Proxy(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ void* reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream** ppstm);
+HRESULT __RPC_STUB IStorage_OpenStream_Stub(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ unsigned long cbReserved1,
+ byte* reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream** ppstm);
+HRESULT CALLBACK IStorage_CreateStorage_Proxy(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ DWORD grfMode,
+ DWORD dwStgFmt,
+ DWORD reserved2,
+ IStorage** ppstg);
+void __RPC_STUB IStorage_CreateStorage_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_OpenStorage_Proxy(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ IStorage* pstgPriority,
+ DWORD grfMode,
+ SNB snbExclude,
+ DWORD reserved,
+ IStorage** ppstg);
+void __RPC_STUB IStorage_OpenStorage_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_CopyTo_Proxy(
+ IStorage* This,
+ DWORD ciidExclude,
+ const IID* rgiidExclude,
+ SNB snbExclude,
+ IStorage* pstgDest);
+void __RPC_STUB IStorage_CopyTo_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_MoveElementTo_Proxy(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ IStorage* pstgDest,
+ LPCOLESTR pwcsNewName,
+ DWORD grfFlags);
+void __RPC_STUB IStorage_MoveElementTo_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_Commit_Proxy(
+ IStorage* This,
+ DWORD grfCommitFlags);
+void __RPC_STUB IStorage_Commit_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_Revert_Proxy(
+ IStorage* This);
+void __RPC_STUB IStorage_Revert_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_RemoteEnumElements_Proxy(
+ IStorage* This,
+ DWORD reserved1,
+ unsigned long cbReserved2,
+ byte* reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG** ppenum);
+void __RPC_STUB IStorage_RemoteEnumElements_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_EnumElements_Proxy(
+ IStorage* This,
+ DWORD reserved1,
+ void* reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG** ppenum);
+HRESULT __RPC_STUB IStorage_EnumElements_Stub(
+ IStorage* This,
+ DWORD reserved1,
+ unsigned long cbReserved2,
+ byte* reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG** ppenum);
+HRESULT CALLBACK IStorage_DestroyElement_Proxy(
+ IStorage* This,
+ LPCOLESTR pwcsName);
+void __RPC_STUB IStorage_DestroyElement_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_RenameElement_Proxy(
+ IStorage* This,
+ LPCOLESTR pwcsOldName,
+ LPCOLESTR pwcsNewName);
+void __RPC_STUB IStorage_RenameElement_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_SetElementTimes_Proxy(
+ IStorage* This,
+ LPCOLESTR pwcsName,
+ const FILETIME* pctime,
+ const FILETIME* patime,
+ const FILETIME* pmtime);
+void __RPC_STUB IStorage_SetElementTimes_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_SetClass_Proxy(
+ IStorage* This,
+ REFCLSID clsid);
+void __RPC_STUB IStorage_SetClass_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_SetStateBits_Proxy(
+ IStorage* This,
+ DWORD grfStateBits,
+ DWORD grfMask);
+void __RPC_STUB IStorage_SetStateBits_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage_Stat_Proxy(
+ IStorage* This,
+ STATSTG* pstatstg,
+ DWORD grfStatFlag);
+void __RPC_STUB IStorage_Stat_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IStorage16 IStorage16;
+typedef IStorage16 *LPSTORAGE16;
+
+typedef struct tagRemSNB16 {
+ unsigned long ulCntStr;
+ unsigned long ulCntChar;
+ OLECHAR16 rgString[1];
+} RemSNB16;
+
+typedef RemSNB16 *wireSNB16;
+
+typedef OLECHAR16 **SNB16;
+
+/*****************************************************************************
+ * IStorage16 interface
+ */
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IStorage16: IUnknown {
+
+ virtual HRESULT CALLBACK CreateStream(
+ LPCOLESTR16 pwcsName,
+ DWORD grfMode,
+ DWORD reserved1,
+ DWORD reserved2,
+ IStream16** ppstm) = 0;
+
+ virtual HRESULT CALLBACK OpenStream(
+ LPCOLESTR16 pwcsName,
+ void* reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream16** ppstm) = 0;
+
+ virtual HRESULT CALLBACK CreateStorage(
+ LPCOLESTR16 pwcsName,
+ DWORD grfMode,
+ DWORD dwStgFmt,
+ DWORD reserved2,
+ IStorage16** ppstg) = 0;
+
+ virtual HRESULT CALLBACK OpenStorage(
+ LPCOLESTR16 pwcsName,
+ IStorage16* pstgPriority,
+ DWORD grfMode,
+ SNB16 snbExclude,
+ DWORD reserved,
+ IStorage16** ppstg) = 0;
+
+ virtual HRESULT CALLBACK CopyTo(
+ DWORD ciidExclude,
+ const IID* rgiidExclude,
+ SNB16 snbExclude,
+ IStorage16* pstgDest) = 0;
+
+ virtual HRESULT CALLBACK MoveElementTo(
+ LPCOLESTR16 pwcsName,
+ IStorage16* pstgDest,
+ LPCOLESTR16 pwcsNewName,
+ DWORD grfFlags) = 0;
+
+ virtual HRESULT CALLBACK Commit(
+ DWORD grfCommitFlags) = 0;
+
+ virtual HRESULT CALLBACK Revert(
+ ) = 0;
+
+ virtual HRESULT CALLBACK EnumElements(
+ DWORD reserved1,
+ void* reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG** ppenum) = 0;
+
+ virtual HRESULT CALLBACK DestroyElement(
+ LPCOLESTR16 pwcsName) = 0;
+
+ virtual HRESULT CALLBACK RenameElement(
+ LPCOLESTR16 pwcsOldName,
+ LPCOLESTR16 pwcsNewName) = 0;
+
+ virtual HRESULT CALLBACK SetElementTimes(
+ LPCOLESTR16 pwcsName,
+ const FILETIME* pctime,
+ const FILETIME* patime,
+ const FILETIME* pmtime) = 0;
+
+ virtual HRESULT CALLBACK SetClass(
+ REFCLSID clsid) = 0;
+
+ virtual HRESULT CALLBACK SetStateBits(
+ DWORD grfStateBits,
+ DWORD grfMask) = 0;
+
+ virtual HRESULT CALLBACK Stat(
+ STATSTG* pstatstg,
+ DWORD grfStatFlag) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IStorage16Vtbl IStorage16Vtbl;
+struct IStorage16 {
+ const IStorage16Vtbl* lpVtbl;
+};
+struct IStorage16Vtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IStorage16* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IStorage16* This);
+
+ ULONG (CALLBACK *Release)(
+ IStorage16* This);
+
+ /*** IStorage16 methods ***/
+ HRESULT (CALLBACK *CreateStream)(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ DWORD grfMode,
+ DWORD reserved1,
+ DWORD reserved2,
+ IStream16** ppstm);
+
+ HRESULT (CALLBACK *OpenStream)(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ void* reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream16** ppstm);
+
+ HRESULT (CALLBACK *CreateStorage)(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ DWORD grfMode,
+ DWORD dwStgFmt,
+ DWORD reserved2,
+ IStorage16** ppstg);
+
+ HRESULT (CALLBACK *OpenStorage)(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ IStorage16* pstgPriority,
+ DWORD grfMode,
+ SNB16 snbExclude,
+ DWORD reserved,
+ IStorage16** ppstg);
+
+ HRESULT (CALLBACK *CopyTo)(
+ IStorage16* This,
+ DWORD ciidExclude,
+ const IID* rgiidExclude,
+ SNB16 snbExclude,
+ IStorage16* pstgDest);
+
+ HRESULT (CALLBACK *MoveElementTo)(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ IStorage16* pstgDest,
+ LPCOLESTR16 pwcsNewName,
+ DWORD grfFlags);
+
+ HRESULT (CALLBACK *Commit)(
+ IStorage16* This,
+ DWORD grfCommitFlags);
+
+ HRESULT (CALLBACK *Revert)(
+ IStorage16* This);
+
+ HRESULT (CALLBACK *EnumElements)(
+ IStorage16* This,
+ DWORD reserved1,
+ void* reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG** ppenum);
+
+ HRESULT (CALLBACK *DestroyElement)(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName);
+
+ HRESULT (CALLBACK *RenameElement)(
+ IStorage16* This,
+ LPCOLESTR16 pwcsOldName,
+ LPCOLESTR16 pwcsNewName);
+
+ HRESULT (CALLBACK *SetElementTimes)(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ const FILETIME* pctime,
+ const FILETIME* patime,
+ const FILETIME* pmtime);
+
+ HRESULT (CALLBACK *SetClass)(
+ IStorage16* This,
+ REFCLSID clsid);
+
+ HRESULT (CALLBACK *SetStateBits)(
+ IStorage16* This,
+ DWORD grfStateBits,
+ DWORD grfMask);
+
+ HRESULT (CALLBACK *Stat)(
+ IStorage16* This,
+ STATSTG* pstatstg,
+ DWORD grfStatFlag);
+
+};
+
+#define IStorage16_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD5 (HRESULT,CreateStream,LPCOLESTR16,pwcsName,DWORD,grfMode,DWORD,reserved1,DWORD,reserved2,IStream16**,ppstm) \
+ ICOM_METHOD5 (HRESULT,OpenStream,LPCOLESTR16,pwcsName,void*,reserved1,DWORD,grfMode,DWORD,reserved2,IStream16**,ppstm) \
+ ICOM_METHOD5 (HRESULT,CreateStorage,LPCOLESTR16,pwcsName,DWORD,grfMode,DWORD,dwStgFmt,DWORD,reserved2,IStorage16**,ppstg) \
+ ICOM_METHOD6 (HRESULT,OpenStorage,LPCOLESTR16,pwcsName,IStorage16*,pstgPriority,DWORD,grfMode,SNB16,snbExclude,DWORD,reserved,IStorage16**,ppstg) \
+ ICOM_METHOD4 (HRESULT,CopyTo,DWORD,ciidExclude,const IID*,rgiidExclude,SNB16,snbExclude,IStorage16*,pstgDest) \
+ ICOM_METHOD4 (HRESULT,MoveElementTo,LPCOLESTR16,pwcsName,IStorage16*,pstgDest,LPCOLESTR16,pwcsNewName,DWORD,grfFlags) \
+ ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
+ ICOM_METHOD (HRESULT,Revert) \
+ ICOM_METHOD4 (HRESULT,EnumElements,DWORD,reserved1,void*,reserved2,DWORD,reserved3,IEnumSTATSTG**,ppenum) \
+ ICOM_METHOD1 (HRESULT,DestroyElement,LPCOLESTR16,pwcsName) \
+ ICOM_METHOD2 (HRESULT,RenameElement,LPCOLESTR16,pwcsOldName,LPCOLESTR16,pwcsNewName) \
+ ICOM_METHOD4 (HRESULT,SetElementTimes,LPCOLESTR16,pwcsName,const FILETIME*,pctime,const FILETIME*,patime,const FILETIME*,pmtime) \
+ ICOM_METHOD1 (HRESULT,SetClass,REFCLSID,clsid) \
+ ICOM_METHOD2 (HRESULT,SetStateBits,DWORD,grfStateBits,DWORD,grfMask) \
+ ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag)
+
+/*** IUnknown methods ***/
+#define IStorage16_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IStorage16_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IStorage16_Release(p) (p)->lpVtbl->Release(p)
+/*** IStorage16 methods ***/
+#define IStorage16_CreateStream(p,a,b,c,d,e) (p)->lpVtbl->CreateStream(p,a,b,c,d,e)
+#define IStorage16_OpenStream(p,a,b,c,d,e) (p)->lpVtbl->OpenStream(p,a,b,c,d,e)
+#define IStorage16_CreateStorage(p,a,b,c,d,e) (p)->lpVtbl->CreateStorage(p,a,b,c,d,e)
+#define IStorage16_OpenStorage(p,a,b,c,d,e,f) (p)->lpVtbl->OpenStorage(p,a,b,c,d,e,f)
+#define IStorage16_CopyTo(p,a,b,c,d) (p)->lpVtbl->CopyTo(p,a,b,c,d)
+#define IStorage16_MoveElementTo(p,a,b,c,d) (p)->lpVtbl->MoveElementTo(p,a,b,c,d)
+#define IStorage16_Commit(p,a) (p)->lpVtbl->Commit(p,a)
+#define IStorage16_Revert(p) (p)->lpVtbl->Revert(p)
+#define IStorage16_EnumElements(p,a,b,c,d) (p)->lpVtbl->EnumElements(p,a,b,c,d)
+#define IStorage16_DestroyElement(p,a) (p)->lpVtbl->DestroyElement(p,a)
+#define IStorage16_RenameElement(p,a,b) (p)->lpVtbl->RenameElement(p,a,b)
+#define IStorage16_SetElementTimes(p,a,b,c,d) (p)->lpVtbl->SetElementTimes(p,a,b,c,d)
+#define IStorage16_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
+#define IStorage16_SetStateBits(p,a,b) (p)->lpVtbl->SetStateBits(p,a,b)
+#define IStorage16_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
+
+#endif
+
+HRESULT CALLBACK IStorage16_CreateStream_Proxy(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ DWORD grfMode,
+ DWORD reserved1,
+ DWORD reserved2,
+ IStream16** ppstm);
+void __RPC_STUB IStorage16_CreateStream_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_RemoteOpenStream_Proxy(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ unsigned long cbReserved1,
+ byte* reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream16** ppstm);
+void __RPC_STUB IStorage16_RemoteOpenStream_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_OpenStream_Proxy(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ void* reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream16** ppstm);
+HRESULT __RPC_STUB IStorage16_OpenStream_Stub(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ unsigned long cbReserved1,
+ byte* reserved1,
+ DWORD grfMode,
+ DWORD reserved2,
+ IStream16** ppstm);
+HRESULT CALLBACK IStorage16_CreateStorage_Proxy(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ DWORD grfMode,
+ DWORD dwStgFmt,
+ DWORD reserved2,
+ IStorage16** ppstg);
+void __RPC_STUB IStorage16_CreateStorage_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_OpenStorage_Proxy(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ IStorage16* pstgPriority,
+ DWORD grfMode,
+ SNB16 snbExclude,
+ DWORD reserved,
+ IStorage16** ppstg);
+void __RPC_STUB IStorage16_OpenStorage_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_CopyTo_Proxy(
+ IStorage16* This,
+ DWORD ciidExclude,
+ const IID* rgiidExclude,
+ SNB16 snbExclude,
+ IStorage16* pstgDest);
+void __RPC_STUB IStorage16_CopyTo_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_MoveElementTo_Proxy(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ IStorage16* pstgDest,
+ LPCOLESTR16 pwcsNewName,
+ DWORD grfFlags);
+void __RPC_STUB IStorage16_MoveElementTo_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_Commit_Proxy(
+ IStorage16* This,
+ DWORD grfCommitFlags);
+void __RPC_STUB IStorage16_Commit_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_Revert_Proxy(
+ IStorage16* This);
+void __RPC_STUB IStorage16_Revert_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_RemoteEnumElements_Proxy(
+ IStorage16* This,
+ DWORD reserved1,
+ unsigned long cbReserved2,
+ byte* reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG** ppenum);
+void __RPC_STUB IStorage16_RemoteEnumElements_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_EnumElements_Proxy(
+ IStorage16* This,
+ DWORD reserved1,
+ void* reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG** ppenum);
+HRESULT __RPC_STUB IStorage16_EnumElements_Stub(
+ IStorage16* This,
+ DWORD reserved1,
+ unsigned long cbReserved2,
+ byte* reserved2,
+ DWORD reserved3,
+ IEnumSTATSTG** ppenum);
+HRESULT CALLBACK IStorage16_DestroyElement_Proxy(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName);
+void __RPC_STUB IStorage16_DestroyElement_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_RenameElement_Proxy(
+ IStorage16* This,
+ LPCOLESTR16 pwcsOldName,
+ LPCOLESTR16 pwcsNewName);
+void __RPC_STUB IStorage16_RenameElement_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_SetElementTimes_Proxy(
+ IStorage16* This,
+ LPCOLESTR16 pwcsName,
+ const FILETIME* pctime,
+ const FILETIME* patime,
+ const FILETIME* pmtime);
+void __RPC_STUB IStorage16_SetElementTimes_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_SetClass_Proxy(
+ IStorage16* This,
+ REFCLSID clsid);
+void __RPC_STUB IStorage16_SetClass_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_SetStateBits_Proxy(
+ IStorage16* This,
+ DWORD grfStateBits,
+ DWORD grfMask);
+void __RPC_STUB IStorage16_SetStateBits_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IStorage16_Stat_Proxy(
+ IStorage16* This,
+ STATSTG* pstatstg,
+ DWORD grfStatFlag);
+void __RPC_STUB IStorage16_Stat_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IPersistFile IPersistFile;
+typedef IPersistFile *LPPERSISTFILE;
+
+/*****************************************************************************
+ * IPersistFile interface
+ */
+DEFINE_GUID(IID_IPersistFile, 0x0000010b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IPersistFile: IPersist {
+
+ virtual HRESULT CALLBACK IsDirty(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Load(
+ LPCOLESTR pszFileName,
+ DWORD dwMode) = 0;
+
+ virtual HRESULT CALLBACK Save(
+ LPCOLESTR pszFileName,
+ BOOL fRemember) = 0;
+
+ virtual HRESULT CALLBACK SaveCompleted(
+ LPCOLESTR pszFileName) = 0;
+
+ virtual HRESULT CALLBACK GetCurFile(
+ LPOLESTR* ppszFileName) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IPersistFileVtbl IPersistFileVtbl;
+struct IPersistFile {
+ const IPersistFileVtbl* lpVtbl;
+};
+struct IPersistFileVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IPersistFile* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IPersistFile* This);
+
+ ULONG (CALLBACK *Release)(
+ IPersistFile* This);
+
+ /*** IPersist methods ***/
+ HRESULT (CALLBACK *GetClassID)(
+ IPersistFile* This,
+ CLSID* pClassID);
+
+ /*** IPersistFile methods ***/
+ HRESULT (CALLBACK *IsDirty)(
+ IPersistFile* This);
+
+ HRESULT (CALLBACK *Load)(
+ IPersistFile* This,
+ LPCOLESTR pszFileName,
+ DWORD dwMode);
+
+ HRESULT (CALLBACK *Save)(
+ IPersistFile* This,
+ LPCOLESTR pszFileName,
+ BOOL fRemember);
+
+ HRESULT (CALLBACK *SaveCompleted)(
+ IPersistFile* This,
+ LPCOLESTR pszFileName);
+
+ HRESULT (CALLBACK *GetCurFile)(
+ IPersistFile* This,
+ LPOLESTR* ppszFileName);
+
+};
+
+#define IPersistFile_IMETHODS \
+ IPersist_IMETHODS \
+ ICOM_METHOD (HRESULT,IsDirty) \
+ ICOM_METHOD2 (HRESULT,Load,LPCOLESTR,pszFileName,DWORD,dwMode) \
+ ICOM_METHOD2 (HRESULT,Save,LPCOLESTR,pszFileName,BOOL,fRemember) \
+ ICOM_METHOD1 (HRESULT,SaveCompleted,LPCOLESTR,pszFileName) \
+ ICOM_METHOD1 (HRESULT,GetCurFile,LPOLESTR*,ppszFileName)
+
+/*** IUnknown methods ***/
+#define IPersistFile_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IPersistFile_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IPersistFile_Release(p) (p)->lpVtbl->Release(p)
+/*** IPersist methods ***/
+#define IPersistFile_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
+/*** IPersistFile methods ***/
+#define IPersistFile_IsDirty(p) (p)->lpVtbl->IsDirty(p)
+#define IPersistFile_Load(p,a,b) (p)->lpVtbl->Load(p,a,b)
+#define IPersistFile_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
+#define IPersistFile_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
+#define IPersistFile_GetCurFile(p,a) (p)->lpVtbl->GetCurFile(p,a)
+
+#endif
+
+HRESULT CALLBACK IPersistFile_IsDirty_Proxy(
+ IPersistFile* This);
+void __RPC_STUB IPersistFile_IsDirty_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistFile_Load_Proxy(
+ IPersistFile* This,
+ LPCOLESTR pszFileName,
+ DWORD dwMode);
+void __RPC_STUB IPersistFile_Load_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistFile_Save_Proxy(
+ IPersistFile* This,
+ LPCOLESTR pszFileName,
+ BOOL fRemember);
+void __RPC_STUB IPersistFile_Save_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistFile_SaveCompleted_Proxy(
+ IPersistFile* This,
+ LPCOLESTR pszFileName);
+void __RPC_STUB IPersistFile_SaveCompleted_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistFile_GetCurFile_Proxy(
+ IPersistFile* This,
+ LPOLESTR* ppszFileName);
+void __RPC_STUB IPersistFile_GetCurFile_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IPersistStorage IPersistStorage;
+typedef IPersistStorage *LPPERSISTSTORAGE;
+
+/*****************************************************************************
+ * IPersistStorage interface
+ */
+DEFINE_GUID(IID_IPersistStorage, 0x0000010a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IPersistStorage: IPersist {
+
+ virtual HRESULT CALLBACK IsDirty(
+ ) = 0;
+
+ virtual HRESULT CALLBACK InitNew(
+ IStorage* pStg) = 0;
+
+ virtual HRESULT CALLBACK Load(
+ IStorage* pStg) = 0;
+
+ virtual HRESULT CALLBACK Save(
+ IStorage* pStgSave,
+ BOOL fSameAsLoad) = 0;
+
+ virtual HRESULT CALLBACK SaveCompleted(
+ IStorage* pStgNew) = 0;
+
+ virtual HRESULT CALLBACK HandsOffStorage(
+ ) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IPersistStorageVtbl IPersistStorageVtbl;
+struct IPersistStorage {
+ const IPersistStorageVtbl* lpVtbl;
+};
+struct IPersistStorageVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IPersistStorage* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IPersistStorage* This);
+
+ ULONG (CALLBACK *Release)(
+ IPersistStorage* This);
+
+ /*** IPersist methods ***/
+ HRESULT (CALLBACK *GetClassID)(
+ IPersistStorage* This,
+ CLSID* pClassID);
+
+ /*** IPersistStorage methods ***/
+ HRESULT (CALLBACK *IsDirty)(
+ IPersistStorage* This);
+
+ HRESULT (CALLBACK *InitNew)(
+ IPersistStorage* This,
+ IStorage* pStg);
+
+ HRESULT (CALLBACK *Load)(
+ IPersistStorage* This,
+ IStorage* pStg);
+
+ HRESULT (CALLBACK *Save)(
+ IPersistStorage* This,
+ IStorage* pStgSave,
+ BOOL fSameAsLoad);
+
+ HRESULT (CALLBACK *SaveCompleted)(
+ IPersistStorage* This,
+ IStorage* pStgNew);
+
+ HRESULT (CALLBACK *HandsOffStorage)(
+ IPersistStorage* This);
+
+};
+
+#define IPersistStorage_IMETHODS \
+ IPersist_IMETHODS \
+ ICOM_METHOD (HRESULT,IsDirty) \
+ ICOM_METHOD1 (HRESULT,InitNew,IStorage*,pStg) \
+ ICOM_METHOD1 (HRESULT,Load,IStorage*,pStg) \
+ ICOM_METHOD2 (HRESULT,Save,IStorage*,pStgSave,BOOL,fSameAsLoad) \
+ ICOM_METHOD1 (HRESULT,SaveCompleted,IStorage*,pStgNew) \
+ ICOM_METHOD (HRESULT,HandsOffStorage)
+
+/*** IUnknown methods ***/
+#define IPersistStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IPersistStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IPersistStorage_Release(p) (p)->lpVtbl->Release(p)
+/*** IPersist methods ***/
+#define IPersistStorage_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
+/*** IPersistStorage methods ***/
+#define IPersistStorage_IsDirty(p) (p)->lpVtbl->IsDirty(p)
+#define IPersistStorage_InitNew(p,a) (p)->lpVtbl->InitNew(p,a)
+#define IPersistStorage_Load(p,a) (p)->lpVtbl->Load(p,a)
+#define IPersistStorage_Save(p,a,b) (p)->lpVtbl->Save(p,a,b)
+#define IPersistStorage_SaveCompleted(p,a) (p)->lpVtbl->SaveCompleted(p,a)
+#define IPersistStorage_HandsOffStorage(p) (p)->lpVtbl->HandsOffStorage(p)
+
+#endif
+
+HRESULT CALLBACK IPersistStorage_IsDirty_Proxy(
+ IPersistStorage* This);
+void __RPC_STUB IPersistStorage_IsDirty_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistStorage_InitNew_Proxy(
+ IPersistStorage* This,
+ IStorage* pStg);
+void __RPC_STUB IPersistStorage_InitNew_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistStorage_Load_Proxy(
+ IPersistStorage* This,
+ IStorage* pStg);
+void __RPC_STUB IPersistStorage_Load_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistStorage_Save_Proxy(
+ IPersistStorage* This,
+ IStorage* pStgSave,
+ BOOL fSameAsLoad);
+void __RPC_STUB IPersistStorage_Save_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistStorage_SaveCompleted_Proxy(
+ IPersistStorage* This,
+ IStorage* pStgNew);
+void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPersistStorage_HandsOffStorage_Proxy(
+ IPersistStorage* This);
+void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IRootStorage IRootStorage;
+typedef IRootStorage *LPROOTSTORAGE;
+
+/*****************************************************************************
+ * IRootStorage interface
+ */
+DEFINE_GUID(IID_IRootStorage, 0x00000012, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IRootStorage: IUnknown {
+
+ virtual HRESULT CALLBACK SwitchToFile(
+ LPOLESTR pszFile) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IRootStorageVtbl IRootStorageVtbl;
+struct IRootStorage {
+ const IRootStorageVtbl* lpVtbl;
+};
+struct IRootStorageVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IRootStorage* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IRootStorage* This);
+
+ ULONG (CALLBACK *Release)(
+ IRootStorage* This);
+
+ /*** IRootStorage methods ***/
+ HRESULT (CALLBACK *SwitchToFile)(
+ IRootStorage* This,
+ LPOLESTR pszFile);
+
+};
+
+#define IRootStorage_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD1 (HRESULT,SwitchToFile,LPOLESTR,pszFile)
+
+/*** IUnknown methods ***/
+#define IRootStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IRootStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IRootStorage_Release(p) (p)->lpVtbl->Release(p)
+/*** IRootStorage methods ***/
+#define IRootStorage_SwitchToFile(p,a) (p)->lpVtbl->SwitchToFile(p,a)
+
+#endif
+
+HRESULT CALLBACK IRootStorage_SwitchToFile_Proxy(
+ IRootStorage* This,
+ LPOLESTR pszFile);
+void __RPC_STUB IRootStorage_SwitchToFile_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct ILockBytes ILockBytes;
+typedef ILockBytes *LPLOCKBYTES;
+
+/*****************************************************************************
+ * ILockBytes interface
+ */
+DEFINE_GUID(IID_ILockBytes, 0x0000000a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct ILockBytes: IUnknown {
+
+ virtual HRESULT CALLBACK ReadAt(
+ ULARGE_INTEGER ulOffset,
+ void* pv,
+ ULONG cb,
+ ULONG* pcbRead) = 0;
+
+ virtual HRESULT CALLBACK WriteAt(
+ ULARGE_INTEGER ulOffset,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten) = 0;
+
+ virtual HRESULT CALLBACK Flush(
+ ) = 0;
+
+ virtual HRESULT CALLBACK SetSize(
+ ULARGE_INTEGER cb) = 0;
+
+ virtual HRESULT CALLBACK LockRegion(
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType) = 0;
+
+ virtual HRESULT CALLBACK UnlockRegion(
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType) = 0;
+
+ virtual HRESULT CALLBACK Stat(
+ STATSTG* pstatstg,
+ DWORD grfStatFlag) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct ILockBytesVtbl ILockBytesVtbl;
+struct ILockBytes {
+ const ILockBytesVtbl* lpVtbl;
+};
+struct ILockBytesVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ ILockBytes* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ ILockBytes* This);
+
+ ULONG (CALLBACK *Release)(
+ ILockBytes* This);
+
+ /*** ILockBytes methods ***/
+ HRESULT (CALLBACK *ReadAt)(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ void* pv,
+ ULONG cb,
+ ULONG* pcbRead);
+
+ HRESULT (CALLBACK *WriteAt)(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+
+ HRESULT (CALLBACK *Flush)(
+ ILockBytes* This);
+
+ HRESULT (CALLBACK *SetSize)(
+ ILockBytes* This,
+ ULARGE_INTEGER cb);
+
+ HRESULT (CALLBACK *LockRegion)(
+ ILockBytes* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+
+ HRESULT (CALLBACK *UnlockRegion)(
+ ILockBytes* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+
+ HRESULT (CALLBACK *Stat)(
+ ILockBytes* This,
+ STATSTG* pstatstg,
+ DWORD grfStatFlag);
+
+};
+
+#define ILockBytes_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD4 (HRESULT,ReadAt,ULARGE_INTEGER,ulOffset,void*,pv,ULONG,cb,ULONG*,pcbRead) \
+ ICOM_METHOD4 (HRESULT,WriteAt,ULARGE_INTEGER,ulOffset,const void*,pv,ULONG,cb,ULONG*,pcbWritten) \
+ ICOM_METHOD (HRESULT,Flush) \
+ ICOM_METHOD1 (HRESULT,SetSize,ULARGE_INTEGER,cb) \
+ ICOM_METHOD3 (HRESULT,LockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
+ ICOM_METHOD3 (HRESULT,UnlockRegion,ULARGE_INTEGER,libOffset,ULARGE_INTEGER,cb,DWORD,dwLockType) \
+ ICOM_METHOD2 (HRESULT,Stat,STATSTG*,pstatstg,DWORD,grfStatFlag)
+
+/*** IUnknown methods ***/
+#define ILockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ILockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ILockBytes_Release(p) (p)->lpVtbl->Release(p)
+/*** ILockBytes methods ***/
+#define ILockBytes_ReadAt(p,a,b,c,d) (p)->lpVtbl->ReadAt(p,a,b,c,d)
+#define ILockBytes_WriteAt(p,a,b,c,d) (p)->lpVtbl->WriteAt(p,a,b,c,d)
+#define ILockBytes_Flush(p) (p)->lpVtbl->Flush(p)
+#define ILockBytes_SetSize(p,a) (p)->lpVtbl->SetSize(p,a)
+#define ILockBytes_LockRegion(p,a,b,c) (p)->lpVtbl->LockRegion(p,a,b,c)
+#define ILockBytes_UnlockRegion(p,a,b,c) (p)->lpVtbl->UnlockRegion(p,a,b,c)
+#define ILockBytes_Stat(p,a,b) (p)->lpVtbl->Stat(p,a,b)
+
+#endif
+
+HRESULT CALLBACK ILockBytes_RemoteReadAt_Proxy(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ byte* pv,
+ ULONG cb,
+ ULONG* pcbRead);
+void __RPC_STUB ILockBytes_RemoteReadAt_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ void* pv,
+ ULONG cb,
+ ULONG* pcbRead);
+HRESULT __RPC_STUB ILockBytes_ReadAt_Stub(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ byte* pv,
+ ULONG cb,
+ ULONG* pcbRead);
+HRESULT CALLBACK ILockBytes_RemoteWriteAt_Proxy(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const byte* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ILockBytes_WriteAt_Proxy(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+HRESULT __RPC_STUB ILockBytes_WriteAt_Stub(
+ ILockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const byte* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+HRESULT CALLBACK ILockBytes_Flush_Proxy(
+ ILockBytes* This);
+void __RPC_STUB ILockBytes_Flush_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ILockBytes_SetSize_Proxy(
+ ILockBytes* This,
+ ULARGE_INTEGER cb);
+void __RPC_STUB ILockBytes_SetSize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ILockBytes_LockRegion_Proxy(
+ ILockBytes* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+void __RPC_STUB ILockBytes_LockRegion_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ILockBytes_UnlockRegion_Proxy(
+ ILockBytes* This,
+ ULARGE_INTEGER libOffset,
+ ULARGE_INTEGER cb,
+ DWORD dwLockType);
+void __RPC_STUB ILockBytes_UnlockRegion_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ILockBytes_Stat_Proxy(
+ ILockBytes* This,
+ STATSTG* pstatstg,
+ DWORD grfStatFlag);
+void __RPC_STUB ILockBytes_Stat_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IFillLockBytes IFillLockBytes;
+/*****************************************************************************
+ * IFillLockBytes interface
+ */
+DEFINE_GUID(IID_IFillLockBytes, 0x99caf010, 0x415e, 0x11cf, 0x88,0x14, 0x00,0xaa,0x00,0xb5,0x69,0xf5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IFillLockBytes: IUnknown {
+
+ virtual HRESULT CALLBACK FillAppend(
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten) = 0;
+
+ virtual HRESULT CALLBACK FillAt(
+ ULARGE_INTEGER ulOffset,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten) = 0;
+
+ virtual HRESULT CALLBACK SetFillSize(
+ ULARGE_INTEGER ulSize) = 0;
+
+ virtual HRESULT CALLBACK Terminate(
+ BOOL bCanceled) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IFillLockBytesVtbl IFillLockBytesVtbl;
+struct IFillLockBytes {
+ const IFillLockBytesVtbl* lpVtbl;
+};
+struct IFillLockBytesVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IFillLockBytes* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IFillLockBytes* This);
+
+ ULONG (CALLBACK *Release)(
+ IFillLockBytes* This);
+
+ /*** IFillLockBytes methods ***/
+ HRESULT (CALLBACK *FillAppend)(
+ IFillLockBytes* This,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+
+ HRESULT (CALLBACK *FillAt)(
+ IFillLockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+
+ HRESULT (CALLBACK *SetFillSize)(
+ IFillLockBytes* This,
+ ULARGE_INTEGER ulSize);
+
+ HRESULT (CALLBACK *Terminate)(
+ IFillLockBytes* This,
+ BOOL bCanceled);
+
+};
+
+#define IFillLockBytes_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,FillAppend,const void*,pv,ULONG,cb,ULONG*,pcbWritten) \
+ ICOM_METHOD4 (HRESULT,FillAt,ULARGE_INTEGER,ulOffset,const void*,pv,ULONG,cb,ULONG*,pcbWritten) \
+ ICOM_METHOD1 (HRESULT,SetFillSize,ULARGE_INTEGER,ulSize) \
+ ICOM_METHOD1 (HRESULT,Terminate,BOOL,bCanceled)
+
+/*** IUnknown methods ***/
+#define IFillLockBytes_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IFillLockBytes_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IFillLockBytes_Release(p) (p)->lpVtbl->Release(p)
+/*** IFillLockBytes methods ***/
+#define IFillLockBytes_FillAppend(p,a,b,c) (p)->lpVtbl->FillAppend(p,a,b,c)
+#define IFillLockBytes_FillAt(p,a,b,c,d) (p)->lpVtbl->FillAt(p,a,b,c,d)
+#define IFillLockBytes_SetFillSize(p,a) (p)->lpVtbl->SetFillSize(p,a)
+#define IFillLockBytes_Terminate(p,a) (p)->lpVtbl->Terminate(p,a)
+
+#endif
+
+HRESULT CALLBACK IFillLockBytes_RemoteFillAppend_Proxy(
+ IFillLockBytes* This,
+ const byte* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+void __RPC_STUB IFillLockBytes_RemoteFillAppend_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
+ IFillLockBytes* This,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+HRESULT __RPC_STUB IFillLockBytes_FillAppend_Stub(
+ IFillLockBytes* This,
+ const byte* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+HRESULT CALLBACK IFillLockBytes_RemoteFillAt_Proxy(
+ IFillLockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const byte* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IFillLockBytes_FillAt_Proxy(
+ IFillLockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const void* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+HRESULT __RPC_STUB IFillLockBytes_FillAt_Stub(
+ IFillLockBytes* This,
+ ULARGE_INTEGER ulOffset,
+ const byte* pv,
+ ULONG cb,
+ ULONG* pcbWritten);
+HRESULT CALLBACK IFillLockBytes_SetFillSize_Proxy(
+ IFillLockBytes* This,
+ ULARGE_INTEGER ulSize);
+void __RPC_STUB IFillLockBytes_SetFillSize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IFillLockBytes_Terminate_Proxy(
+ IFillLockBytes* This,
+ BOOL bCanceled);
+void __RPC_STUB IFillLockBytes_Terminate_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IProgressNotify IProgressNotify;
+/*****************************************************************************
+ * IProgressNotify interface
+ */
+DEFINE_GUID(IID_IProgressNotify, 0xa9d758a0, 0x4617, 0x11cf, 0x95,0xfc, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IProgressNotify: IUnknown {
+
+ virtual HRESULT CALLBACK OnProgress(
+ DWORD dwProgressCurrent,
+ DWORD dwProgressMaximum,
+ BOOL fAccurate,
+ BOOL fOwner) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IProgressNotifyVtbl IProgressNotifyVtbl;
+struct IProgressNotify {
+ const IProgressNotifyVtbl* lpVtbl;
+};
+struct IProgressNotifyVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IProgressNotify* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IProgressNotify* This);
+
+ ULONG (CALLBACK *Release)(
+ IProgressNotify* This);
+
+ /*** IProgressNotify methods ***/
+ HRESULT (CALLBACK *OnProgress)(
+ IProgressNotify* This,
+ DWORD dwProgressCurrent,
+ DWORD dwProgressMaximum,
+ BOOL fAccurate,
+ BOOL fOwner);
+
+};
+
+#define IProgressNotify_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD4 (HRESULT,OnProgress,DWORD,dwProgressCurrent,DWORD,dwProgressMaximum,BOOL,fAccurate,BOOL,fOwner)
+
+/*** IUnknown methods ***/
+#define IProgressNotify_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IProgressNotify_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IProgressNotify_Release(p) (p)->lpVtbl->Release(p)
+/*** IProgressNotify methods ***/
+#define IProgressNotify_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d)
+
+#endif
+
+HRESULT CALLBACK IProgressNotify_OnProgress_Proxy(
+ IProgressNotify* This,
+ DWORD dwProgressCurrent,
+ DWORD dwProgressMaximum,
+ BOOL fAccurate,
+ BOOL fOwner);
+void __RPC_STUB IProgressNotify_OnProgress_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct ILayoutStorage ILayoutStorage;
+typedef struct tagStorageLayout {
+ DWORD LayoutType;
+ OLECHAR *pwcsElementName;
+ LARGE_INTEGER cOffset;
+ LARGE_INTEGER cBytes;
+} StorageLayout;
+
+/*****************************************************************************
+ * ILayoutStorage interface
+ */
+DEFINE_GUID(IID_ILayoutStorage, 0x0e6d4d90, 0x6738, 0x11cf, 0x96,0x08, 0x00,0xaa,0x00,0x68,0x0d,0xb4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct ILayoutStorage: IUnknown {
+
+ virtual HRESULT CALLBACK LayoutScript(
+ StorageLayout* pStorageLayout,
+ DWORD nEntries,
+ DWORD glfInterleavedFlag) = 0;
+
+ virtual HRESULT CALLBACK BeginMonitor(
+ ) = 0;
+
+ virtual HRESULT CALLBACK EndMonitor(
+ ) = 0;
+
+ virtual HRESULT CALLBACK ReLayoutDocfile(
+ OLECHAR* pwcsNewDfName) = 0;
+
+ virtual HRESULT CALLBACK ReLayoutDocfileOnILockBytes(
+ ILockBytes* pILockBytes) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct ILayoutStorageVtbl ILayoutStorageVtbl;
+struct ILayoutStorage {
+ const ILayoutStorageVtbl* lpVtbl;
+};
+struct ILayoutStorageVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ ILayoutStorage* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ ILayoutStorage* This);
+
+ ULONG (CALLBACK *Release)(
+ ILayoutStorage* This);
+
+ /*** ILayoutStorage methods ***/
+ HRESULT (CALLBACK *LayoutScript)(
+ ILayoutStorage* This,
+ StorageLayout* pStorageLayout,
+ DWORD nEntries,
+ DWORD glfInterleavedFlag);
+
+ HRESULT (CALLBACK *BeginMonitor)(
+ ILayoutStorage* This);
+
+ HRESULT (CALLBACK *EndMonitor)(
+ ILayoutStorage* This);
+
+ HRESULT (CALLBACK *ReLayoutDocfile)(
+ ILayoutStorage* This,
+ OLECHAR* pwcsNewDfName);
+
+ HRESULT (CALLBACK *ReLayoutDocfileOnILockBytes)(
+ ILayoutStorage* This,
+ ILockBytes* pILockBytes);
+
+};
+
+#define ILayoutStorage_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,LayoutScript,StorageLayout*,pStorageLayout,DWORD,nEntries,DWORD,glfInterleavedFlag) \
+ ICOM_METHOD (HRESULT,BeginMonitor) \
+ ICOM_METHOD (HRESULT,EndMonitor) \
+ ICOM_METHOD1 (HRESULT,ReLayoutDocfile,OLECHAR*,pwcsNewDfName) \
+ ICOM_METHOD1 (HRESULT,ReLayoutDocfileOnILockBytes,ILockBytes*,pILockBytes)
+
+/*** IUnknown methods ***/
+#define ILayoutStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define ILayoutStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define ILayoutStorage_Release(p) (p)->lpVtbl->Release(p)
+/*** ILayoutStorage methods ***/
+#define ILayoutStorage_LayoutScript(p,a,b,c) (p)->lpVtbl->LayoutScript(p,a,b,c)
+#define ILayoutStorage_BeginMonitor(p) (p)->lpVtbl->BeginMonitor(p)
+#define ILayoutStorage_EndMonitor(p) (p)->lpVtbl->EndMonitor(p)
+#define ILayoutStorage_ReLayoutDocfile(p,a) (p)->lpVtbl->ReLayoutDocfile(p,a)
+#define ILayoutStorage_ReLayoutDocfileOnILockBytes(p,a) (p)->lpVtbl->ReLayoutDocfileOnILockBytes(p,a)
+
+#endif
+
+HRESULT CALLBACK ILayoutStorage_LayoutScript_Proxy(
+ ILayoutStorage* This,
+ StorageLayout* pStorageLayout,
+ DWORD nEntries,
+ DWORD glfInterleavedFlag);
+void __RPC_STUB ILayoutStorage_LayoutScript_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ILayoutStorage_BeginMonitor_Proxy(
+ ILayoutStorage* This);
+void __RPC_STUB ILayoutStorage_BeginMonitor_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ILayoutStorage_EndMonitor_Proxy(
+ ILayoutStorage* This);
+void __RPC_STUB ILayoutStorage_EndMonitor_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ILayoutStorage_ReLayoutDocfile_Proxy(
+ ILayoutStorage* This,
+ OLECHAR* pwcsNewDfName);
+void __RPC_STUB ILayoutStorage_ReLayoutDocfile_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK ILayoutStorage_ReLayoutDocfileOnILockBytes_Proxy(
+ ILayoutStorage* This,
+ ILockBytes* pILockBytes);
+void __RPC_STUB ILayoutStorage_ReLayoutDocfileOnILockBytes_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IEnumFORMATETC IEnumFORMATETC;
+typedef IEnumFORMATETC *LPENUMFORMATETC;
+
+typedef struct tagDVTARGETDEVICE {
+ DWORD tdSize;
+ WORD tdDriverNameOffset;
+ WORD tdDeviceNameOffset;
+ WORD tdPortNameOffset;
+ WORD tdExtDevmodeOffset;
+ BYTE tdData[1];
+} DVTARGETDEVICE;
+
+typedef CLIPFORMAT *LPCLIPFORMAT;
+
+typedef struct tagFORMATETC {
+ CLIPFORMAT cfFormat;
+ DVTARGETDEVICE *ptd;
+ DWORD dwAspect;
+ LONG lindex;
+ DWORD tymed;
+} FORMATETC, *LPFORMATETC;
+
+/*****************************************************************************
+ * IEnumFORMATETC interface
+ */
+DEFINE_GUID(IID_IEnumFORMATETC, 0x00000103, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumFORMATETC: IUnknown {
+
+ virtual HRESULT CALLBACK Next(
+ ULONG celt,
+ FORMATETC* rgelt,
+ ULONG* pceltFetched) = 0;
+
+ virtual HRESULT CALLBACK Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT CALLBACK Reset(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Clone(
+ IEnumFORMATETC** ppenum) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IEnumFORMATETCVtbl IEnumFORMATETCVtbl;
+struct IEnumFORMATETC {
+ const IEnumFORMATETCVtbl* lpVtbl;
+};
+struct IEnumFORMATETCVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IEnumFORMATETC* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IEnumFORMATETC* This);
+
+ ULONG (CALLBACK *Release)(
+ IEnumFORMATETC* This);
+
+ /*** IEnumFORMATETC methods ***/
+ HRESULT (CALLBACK *Next)(
+ IEnumFORMATETC* This,
+ ULONG celt,
+ FORMATETC* rgelt,
+ ULONG* pceltFetched);
+
+ HRESULT (CALLBACK *Skip)(
+ IEnumFORMATETC* This,
+ ULONG celt);
+
+ HRESULT (CALLBACK *Reset)(
+ IEnumFORMATETC* This);
+
+ HRESULT (CALLBACK *Clone)(
+ IEnumFORMATETC* This,
+ IEnumFORMATETC** ppenum);
+
+};
+
+#define IEnumFORMATETC_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,Next,ULONG,celt,FORMATETC*,rgelt,ULONG*,pceltFetched) \
+ ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
+ ICOM_METHOD (HRESULT,Reset) \
+ ICOM_METHOD1 (HRESULT,Clone,IEnumFORMATETC**,ppenum)
+
+/*** IUnknown methods ***/
+#define IEnumFORMATETC_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumFORMATETC_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumFORMATETC_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumFORMATETC methods ***/
+#define IEnumFORMATETC_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumFORMATETC_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+#define IEnumFORMATETC_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumFORMATETC_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+
+#endif
+
+HRESULT CALLBACK IEnumFORMATETC_RemoteNext_Proxy(
+ IEnumFORMATETC* This,
+ ULONG celt,
+ FORMATETC* rgelt,
+ ULONG* pceltFetched);
+void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
+ IEnumFORMATETC* This,
+ ULONG celt,
+ FORMATETC* rgelt,
+ ULONG* pceltFetched);
+HRESULT __RPC_STUB IEnumFORMATETC_Next_Stub(
+ IEnumFORMATETC* This,
+ ULONG celt,
+ FORMATETC* rgelt,
+ ULONG* pceltFetched);
+HRESULT CALLBACK IEnumFORMATETC_Skip_Proxy(
+ IEnumFORMATETC* This,
+ ULONG celt);
+void __RPC_STUB IEnumFORMATETC_Skip_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumFORMATETC_Reset_Proxy(
+ IEnumFORMATETC* This);
+void __RPC_STUB IEnumFORMATETC_Reset_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumFORMATETC_Clone_Proxy(
+ IEnumFORMATETC* This,
+ IEnumFORMATETC** ppenum);
+void __RPC_STUB IEnumFORMATETC_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IEnumSTATDATA IEnumSTATDATA;
+typedef IEnumSTATDATA *LPENUMSTATDATA;
+
+typedef enum tagADVF {
+ ADVF_NODATA = 1,
+ ADVF_PRIMEFIRST = 2,
+ ADVF_ONLYONCE = 4,
+ ADVF_DATAONSTOP = 64,
+ ADVFCACHE_NOHANDLER = 8,
+ ADVFCACHE_FORCEBUILTIN = 16,
+ ADVFCACHE_ONSAVE = 32
+} ADVF;
+
+typedef struct tagSTATDATA {
+ FORMATETC formatetc;
+ DWORD advf;
+ IAdviseSink *pAdvSink;
+ DWORD dwConnection;
+} STATDATA, *LPSTATDATA;
+
+/*****************************************************************************
+ * IEnumSTATDATA interface
+ */
+DEFINE_GUID(IID_IEnumSTATDATA, 0x00000105, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumSTATDATA: IUnknown {
+
+ virtual HRESULT CALLBACK Next(
+ ULONG celt,
+ STATDATA* rgelt,
+ ULONG* pceltFetched) = 0;
+
+ virtual HRESULT CALLBACK Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT CALLBACK Reset(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Clone(
+ IEnumSTATDATA** ppenum) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IEnumSTATDATAVtbl IEnumSTATDATAVtbl;
+struct IEnumSTATDATA {
+ const IEnumSTATDATAVtbl* lpVtbl;
+};
+struct IEnumSTATDATAVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IEnumSTATDATA* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IEnumSTATDATA* This);
+
+ ULONG (CALLBACK *Release)(
+ IEnumSTATDATA* This);
+
+ /*** IEnumSTATDATA methods ***/
+ HRESULT (CALLBACK *Next)(
+ IEnumSTATDATA* This,
+ ULONG celt,
+ STATDATA* rgelt,
+ ULONG* pceltFetched);
+
+ HRESULT (CALLBACK *Skip)(
+ IEnumSTATDATA* This,
+ ULONG celt);
+
+ HRESULT (CALLBACK *Reset)(
+ IEnumSTATDATA* This);
+
+ HRESULT (CALLBACK *Clone)(
+ IEnumSTATDATA* This,
+ IEnumSTATDATA** ppenum);
+
+};
+
+#define IEnumSTATDATA_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATDATA*,rgelt,ULONG*,pceltFetched) \
+ ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
+ ICOM_METHOD (HRESULT,Reset) \
+ ICOM_METHOD1 (HRESULT,Clone,IEnumSTATDATA**,ppenum)
+
+/*** IUnknown methods ***/
+#define IEnumSTATDATA_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumSTATDATA_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumSTATDATA_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumSTATDATA methods ***/
+#define IEnumSTATDATA_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumSTATDATA_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+#define IEnumSTATDATA_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumSTATDATA_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+
+#endif
+
+HRESULT CALLBACK IEnumSTATDATA_RemoteNext_Proxy(
+ IEnumSTATDATA* This,
+ ULONG celt,
+ STATDATA* rgelt,
+ ULONG* pceltFetched);
+void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
+ IEnumSTATDATA* This,
+ ULONG celt,
+ STATDATA* rgelt,
+ ULONG* pceltFetched);
+HRESULT __RPC_STUB IEnumSTATDATA_Next_Stub(
+ IEnumSTATDATA* This,
+ ULONG celt,
+ STATDATA* rgelt,
+ ULONG* pceltFetched);
+HRESULT CALLBACK IEnumSTATDATA_Skip_Proxy(
+ IEnumSTATDATA* This,
+ ULONG celt);
+void __RPC_STUB IEnumSTATDATA_Skip_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATDATA_Reset_Proxy(
+ IEnumSTATDATA* This);
+void __RPC_STUB IEnumSTATDATA_Reset_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATDATA_Clone_Proxy(
+ IEnumSTATDATA* This,
+ IEnumSTATDATA** ppenum);
+void __RPC_STUB IEnumSTATDATA_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef IAdviseSink *LPADVISESINK;
+
+typedef enum tagTYMED {
+ TYMED_HGLOBAL = 1,
+ TYMED_FILE = 2,
+ TYMED_ISTREAM = 4,
+ TYMED_ISTORAGE = 8,
+ TYMED_GDI = 16,
+ TYMED_MFPICT = 32,
+ TYMED_ENHMF = 64,
+ TYMED_NULL = 0
+} TYMED;
+
+typedef struct tagRemSTGMEDIUM {
+ DWORD tymed;
+ DWORD dwHandleType;
+ unsigned long pData;
+ unsigned long pUnkForRelease;
+ unsigned long cbData;
+ byte data[1];
+} RemSTGMEDIUM;
+
+typedef struct tagSTGMEDIUM {
+ DWORD tymed;
+ union {
+ HBITMAP hBitmap;
+ HMETAFILEPICT hMetaFilePict;
+ HENHMETAFILE hEnhMetaFile;
+ HGLOBAL hGlobal;
+ LPOLESTR lpszFileName;
+ IStream *pstm;
+ IStorage *pstg;
+ } DUMMYUNIONNAME;
+ IUnknown *pUnkForRelease;
+} uSTGMEDIUM;
+
+typedef struct _GDI_OBJECT {
+ DWORD ObjectType;
+ union {
+ wireHBITMAP hBitmap;
+ wireHPALETTE hPalette;
+ wireHGLOBAL hGeneric;
+ } u;
+} GDI_OBJECT;
+
+typedef struct _userSTGMEDIUM {
+ struct _STGMEDIUM_UNION {
+ DWORD tymed;
+ union {
+ wireHMETAFILEPICT hMetaFilePict;
+ wireHENHMETAFILE hHEnhMetaFile;
+ GDI_OBJECT *hGdiHandle;
+ wireHGLOBAL hGlobal;
+ LPOLESTR lpszFileName;
+ BYTE_BLOB *pstm;
+ BYTE_BLOB *pstg;
+ } u;
+ } DUMMYSTRUCTNAME;
+ IUnknown *pUnkForRelease;
+} userSTGMEDIUM;
+
+typedef userSTGMEDIUM *wireSTGMEDIUM;
+
+typedef uSTGMEDIUM STGMEDIUM;
+
+typedef userSTGMEDIUM *wireASYNC_STGMEDIUM;
+
+typedef STGMEDIUM ASYNC_STGMEDIUM;
+
+typedef STGMEDIUM *LPSTGMEDIUM;
+
+typedef struct _userFLAG_STGMEDIUM {
+ long ContextFlags;
+ long fPassOwnership;
+ userSTGMEDIUM Stgmed;
+} userFLAG_STGMEDIUM;
+
+typedef userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
+
+typedef struct _FLAG_STGMEDIUM {
+ long ContextFlags;
+ long fPassOwnership;
+ STGMEDIUM Stgmed;
+} FLAG_STGMEDIUM;
+
+/*****************************************************************************
+ * IAdviseSink interface
+ */
+DEFINE_GUID(IID_IAdviseSink, 0x0000010f, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IAdviseSink: IUnknown {
+
+ virtual void CALLBACK OnDataChange(
+ FORMATETC* pFormatetc,
+ STGMEDIUM* pStgmed) = 0;
+
+ virtual void CALLBACK OnViewChange(
+ DWORD dwAspect,
+ LONG lindex) = 0;
+
+ virtual void CALLBACK OnRename(
+ IMoniker* pmk) = 0;
+
+ virtual void CALLBACK OnSave(
+ ) = 0;
+
+ virtual void CALLBACK OnClose(
+ ) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IAdviseSinkVtbl IAdviseSinkVtbl;
+struct IAdviseSink {
+ const IAdviseSinkVtbl* lpVtbl;
+};
+struct IAdviseSinkVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IAdviseSink* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IAdviseSink* This);
+
+ ULONG (CALLBACK *Release)(
+ IAdviseSink* This);
+
+ /*** IAdviseSink methods ***/
+ void (CALLBACK *OnDataChange)(
+ IAdviseSink* This,
+ FORMATETC* pFormatetc,
+ STGMEDIUM* pStgmed);
+
+ void (CALLBACK *OnViewChange)(
+ IAdviseSink* This,
+ DWORD dwAspect,
+ LONG lindex);
+
+ void (CALLBACK *OnRename)(
+ IAdviseSink* This,
+ IMoniker* pmk);
+
+ void (CALLBACK *OnSave)(
+ IAdviseSink* This);
+
+ void (CALLBACK *OnClose)(
+ IAdviseSink* This);
+
+};
+
+#define IAdviseSink_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_VMETHOD2(OnDataChange,FORMATETC*,pFormatetc,STGMEDIUM*,pStgmed) \
+ ICOM_VMETHOD2(OnViewChange,DWORD,dwAspect,LONG,lindex) \
+ ICOM_VMETHOD1(OnRename,IMoniker*,pmk) \
+ ICOM_VMETHOD (OnSave) \
+ ICOM_VMETHOD (OnClose)
+
+/*** IUnknown methods ***/
+#define IAdviseSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IAdviseSink_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IAdviseSink_Release(p) (p)->lpVtbl->Release(p)
+/*** IAdviseSink methods ***/
+#define IAdviseSink_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
+#define IAdviseSink_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
+#define IAdviseSink_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
+#define IAdviseSink_OnSave(p) (p)->lpVtbl->OnSave(p)
+#define IAdviseSink_OnClose(p) (p)->lpVtbl->OnClose(p)
+
+#endif
+
+HRESULT CALLBACK IAdviseSink_RemoteOnDataChange_Proxy(
+ IAdviseSink* This,
+ IAsyncManager** ppIAM,
+ FORMATETC* pFormatetc,
+ ASYNC_STGMEDIUM* pStgmed);
+void __RPC_STUB IAdviseSink_RemoteOnDataChange_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IAdviseSink_OnDataChange_Proxy(
+ IAdviseSink* This,
+ FORMATETC* pFormatetc,
+ STGMEDIUM* pStgmed);
+HRESULT __RPC_STUB IAdviseSink_OnDataChange_Stub(
+ IAdviseSink* This,
+ IAsyncManager** ppIAM,
+ FORMATETC* pFormatetc,
+ ASYNC_STGMEDIUM* pStgmed);
+HRESULT CALLBACK IAdviseSink_RemoteOnViewChange_Proxy(
+ IAdviseSink* This,
+ IAsyncManager** ppIAM,
+ DWORD dwAspect,
+ LONG lindex);
+void __RPC_STUB IAdviseSink_RemoteOnViewChange_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IAdviseSink_OnViewChange_Proxy(
+ IAdviseSink* This,
+ DWORD dwAspect,
+ LONG lindex);
+HRESULT __RPC_STUB IAdviseSink_OnViewChange_Stub(
+ IAdviseSink* This,
+ IAsyncManager** ppIAM,
+ DWORD dwAspect,
+ LONG lindex);
+HRESULT CALLBACK IAdviseSink_RemoteOnRename_Proxy(
+ IAdviseSink* This,
+ IAsyncManager** ppIAM,
+ IMoniker* pmk);
+void __RPC_STUB IAdviseSink_RemoteOnRename_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IAdviseSink_OnRename_Proxy(
+ IAdviseSink* This,
+ IMoniker* pmk);
+HRESULT __RPC_STUB IAdviseSink_OnRename_Stub(
+ IAdviseSink* This,
+ IAsyncManager** ppIAM,
+ IMoniker* pmk);
+HRESULT CALLBACK IAdviseSink_RemoteOnSave_Proxy(
+ IAdviseSink* This,
+ IAsyncManager** ppIAM);
+void __RPC_STUB IAdviseSink_RemoteOnSave_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IAdviseSink_OnSave_Proxy(
+ IAdviseSink* This);
+HRESULT __RPC_STUB IAdviseSink_OnSave_Stub(
+ IAdviseSink* This,
+ IAsyncManager** ppIAM);
+HRESULT CALLBACK IAdviseSink_RemoteOnClose_Proxy(
+ IAdviseSink* This);
+void __RPC_STUB IAdviseSink_RemoteOnClose_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IAdviseSink_OnClose_Proxy(
+ IAdviseSink* This);
+HRESULT __RPC_STUB IAdviseSink_OnClose_Stub(
+ IAdviseSink* This);
+
+typedef struct IAdviseSink2 IAdviseSink2;
+typedef IAdviseSink2 *LPADVISESINK2;
+
+/*****************************************************************************
+ * IAdviseSink2 interface
+ */
+DEFINE_GUID(IID_IAdviseSink2, 0x00000125, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IAdviseSink2: IAdviseSink {
+
+ virtual void CALLBACK OnLinkSrcChange(
+ IMoniker* pmk) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IAdviseSink2Vtbl IAdviseSink2Vtbl;
+struct IAdviseSink2 {
+ const IAdviseSink2Vtbl* lpVtbl;
+};
+struct IAdviseSink2Vtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IAdviseSink2* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IAdviseSink2* This);
+
+ ULONG (CALLBACK *Release)(
+ IAdviseSink2* This);
+
+ /*** IAdviseSink methods ***/
+ void (CALLBACK *OnDataChange)(
+ IAdviseSink2* This,
+ FORMATETC* pFormatetc,
+ STGMEDIUM* pStgmed);
+
+ void (CALLBACK *OnViewChange)(
+ IAdviseSink2* This,
+ DWORD dwAspect,
+ LONG lindex);
+
+ void (CALLBACK *OnRename)(
+ IAdviseSink2* This,
+ IMoniker* pmk);
+
+ void (CALLBACK *OnSave)(
+ IAdviseSink2* This);
+
+ void (CALLBACK *OnClose)(
+ IAdviseSink2* This);
+
+ /*** IAdviseSink2 methods ***/
+ void (CALLBACK *OnLinkSrcChange)(
+ IAdviseSink2* This,
+ IMoniker* pmk);
+
+};
+
+#define IAdviseSink2_IMETHODS \
+ IAdviseSink_IMETHODS \
+ ICOM_VMETHOD1(OnLinkSrcChange,IMoniker*,pmk)
+
+/*** IUnknown methods ***/
+#define IAdviseSink2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IAdviseSink2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IAdviseSink2_Release(p) (p)->lpVtbl->Release(p)
+/*** IAdviseSink methods ***/
+#define IAdviseSink2_OnDataChange(p,a,b) (p)->lpVtbl->OnDataChange(p,a,b)
+#define IAdviseSink2_OnViewChange(p,a,b) (p)->lpVtbl->OnViewChange(p,a,b)
+#define IAdviseSink2_OnRename(p,a) (p)->lpVtbl->OnRename(p,a)
+#define IAdviseSink2_OnSave(p) (p)->lpVtbl->OnSave(p)
+#define IAdviseSink2_OnClose(p) (p)->lpVtbl->OnClose(p)
+/*** IAdviseSink2 methods ***/
+#define IAdviseSink2_OnLinkSrcChange(p,a) (p)->lpVtbl->OnLinkSrcChange(p,a)
+
+#endif
+
+HRESULT CALLBACK IAdviseSink2_RemoteOnLinkSrcChange_Proxy(
+ IAdviseSink2* This,
+ IAsyncManager** ppIAM,
+ IMoniker* pmk);
+void __RPC_STUB IAdviseSink2_RemoteOnLinkSrcChange_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IAdviseSink2_OnLinkSrcChange_Proxy(
+ IAdviseSink2* This,
+ IMoniker* pmk);
+HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
+ IAdviseSink2* This,
+ IAsyncManager** ppIAM,
+ IMoniker* pmk);
+
+typedef struct IDataObject IDataObject;
+typedef IDataObject *LPDATAOBJECT;
+
+typedef enum tagDATADIR {
+ DATADIR_GET = 1,
+ DATADIR_SET = 2
+} DATADIR;
+
+/*****************************************************************************
+ * IDataObject interface
+ */
+DEFINE_GUID(IID_IDataObject, 0x0000010e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IDataObject: IUnknown {
+
+ virtual HRESULT CALLBACK GetData(
+ FORMATETC* pformatetcIn,
+ STGMEDIUM* pmedium) = 0;
+
+ virtual HRESULT CALLBACK GetDataHere(
+ FORMATETC* pformatetc,
+ STGMEDIUM* pmedium) = 0;
+
+ virtual HRESULT CALLBACK QueryGetData(
+ FORMATETC* pformatetc) = 0;
+
+ virtual HRESULT CALLBACK GetCanonicalFormatEtc(
+ FORMATETC* pformatectIn,
+ FORMATETC* pformatetcOut) = 0;
+
+ virtual HRESULT CALLBACK SetData(
+ FORMATETC* pformatetc,
+ STGMEDIUM* pmedium,
+ BOOL fRelease) = 0;
+
+ virtual HRESULT CALLBACK EnumFormatEtc(
+ DWORD dwDirection,
+ IEnumFORMATETC** ppenumFormatEtc) = 0;
+
+ virtual HRESULT CALLBACK DAdvise(
+ FORMATETC* pformatetc,
+ DWORD advf,
+ IAdviseSink* pAdvSink,
+ DWORD* pdwConnection) = 0;
+
+ virtual HRESULT CALLBACK DUnadvise(
+ DWORD dwConnection) = 0;
+
+ virtual HRESULT CALLBACK EnumDAdvise(
+ IEnumSTATDATA** ppenumAdvise) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IDataObjectVtbl IDataObjectVtbl;
+struct IDataObject {
+ const IDataObjectVtbl* lpVtbl;
+};
+struct IDataObjectVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IDataObject* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IDataObject* This);
+
+ ULONG (CALLBACK *Release)(
+ IDataObject* This);
+
+ /*** IDataObject methods ***/
+ HRESULT (CALLBACK *GetData)(
+ IDataObject* This,
+ FORMATETC* pformatetcIn,
+ STGMEDIUM* pmedium);
+
+ HRESULT (CALLBACK *GetDataHere)(
+ IDataObject* This,
+ FORMATETC* pformatetc,
+ STGMEDIUM* pmedium);
+
+ HRESULT (CALLBACK *QueryGetData)(
+ IDataObject* This,
+ FORMATETC* pformatetc);
+
+ HRESULT (CALLBACK *GetCanonicalFormatEtc)(
+ IDataObject* This,
+ FORMATETC* pformatectIn,
+ FORMATETC* pformatetcOut);
+
+ HRESULT (CALLBACK *SetData)(
+ IDataObject* This,
+ FORMATETC* pformatetc,
+ STGMEDIUM* pmedium,
+ BOOL fRelease);
+
+ HRESULT (CALLBACK *EnumFormatEtc)(
+ IDataObject* This,
+ DWORD dwDirection,
+ IEnumFORMATETC** ppenumFormatEtc);
+
+ HRESULT (CALLBACK *DAdvise)(
+ IDataObject* This,
+ FORMATETC* pformatetc,
+ DWORD advf,
+ IAdviseSink* pAdvSink,
+ DWORD* pdwConnection);
+
+ HRESULT (CALLBACK *DUnadvise)(
+ IDataObject* This,
+ DWORD dwConnection);
+
+ HRESULT (CALLBACK *EnumDAdvise)(
+ IDataObject* This,
+ IEnumSTATDATA** ppenumAdvise);
+
+};
+
+#define IDataObject_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD2 (HRESULT,GetData,FORMATETC*,pformatetcIn,STGMEDIUM*,pmedium) \
+ ICOM_METHOD2 (HRESULT,GetDataHere,FORMATETC*,pformatetc,STGMEDIUM*,pmedium) \
+ ICOM_METHOD1 (HRESULT,QueryGetData,FORMATETC*,pformatetc) \
+ ICOM_METHOD2 (HRESULT,GetCanonicalFormatEtc,FORMATETC*,pformatectIn,FORMATETC*,pformatetcOut) \
+ ICOM_METHOD3 (HRESULT,SetData,FORMATETC*,pformatetc,STGMEDIUM*,pmedium,BOOL,fRelease) \
+ ICOM_METHOD2 (HRESULT,EnumFormatEtc,DWORD,dwDirection,IEnumFORMATETC**,ppenumFormatEtc) \
+ ICOM_METHOD4 (HRESULT,DAdvise,FORMATETC*,pformatetc,DWORD,advf,IAdviseSink*,pAdvSink,DWORD*,pdwConnection) \
+ ICOM_METHOD1 (HRESULT,DUnadvise,DWORD,dwConnection) \
+ ICOM_METHOD1 (HRESULT,EnumDAdvise,IEnumSTATDATA**,ppenumAdvise)
+
+/*** IUnknown methods ***/
+#define IDataObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDataObject_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDataObject_Release(p) (p)->lpVtbl->Release(p)
+/*** IDataObject methods ***/
+#define IDataObject_GetData(p,a,b) (p)->lpVtbl->GetData(p,a,b)
+#define IDataObject_GetDataHere(p,a,b) (p)->lpVtbl->GetDataHere(p,a,b)
+#define IDataObject_QueryGetData(p,a) (p)->lpVtbl->QueryGetData(p,a)
+#define IDataObject_GetCanonicalFormatEtc(p,a,b) (p)->lpVtbl->GetCanonicalFormatEtc(p,a,b)
+#define IDataObject_SetData(p,a,b,c) (p)->lpVtbl->SetData(p,a,b,c)
+#define IDataObject_EnumFormatEtc(p,a,b) (p)->lpVtbl->EnumFormatEtc(p,a,b)
+#define IDataObject_DAdvise(p,a,b,c,d) (p)->lpVtbl->DAdvise(p,a,b,c,d)
+#define IDataObject_DUnadvise(p,a) (p)->lpVtbl->DUnadvise(p,a)
+#define IDataObject_EnumDAdvise(p,a) (p)->lpVtbl->EnumDAdvise(p,a)
+
+#endif
+
+HRESULT CALLBACK IDataObject_RemoteGetData_Proxy(
+ IDataObject* This,
+ FORMATETC* pformatetcIn,
+ STGMEDIUM* pRemoteMedium);
+void __RPC_STUB IDataObject_RemoteGetData_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IDataObject_GetData_Proxy(
+ IDataObject* This,
+ FORMATETC* pformatetcIn,
+ STGMEDIUM* pmedium);
+HRESULT __RPC_STUB IDataObject_GetData_Stub(
+ IDataObject* This,
+ FORMATETC* pformatetcIn,
+ STGMEDIUM* pRemoteMedium);
+HRESULT CALLBACK IDataObject_RemoteGetDataHere_Proxy(
+ IDataObject* This,
+ FORMATETC* pformatetc,
+ STGMEDIUM* pRemoteMedium);
+void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IDataObject_GetDataHere_Proxy(
+ IDataObject* This,
+ FORMATETC* pformatetc,
+ STGMEDIUM* pmedium);
+HRESULT __RPC_STUB IDataObject_GetDataHere_Stub(
+ IDataObject* This,
+ FORMATETC* pformatetc,
+ STGMEDIUM* pRemoteMedium);
+HRESULT CALLBACK IDataObject_QueryGetData_Proxy(
+ IDataObject* This,
+ FORMATETC* pformatetc);
+void __RPC_STUB IDataObject_QueryGetData_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IDataObject_GetCanonicalFormatEtc_Proxy(
+ IDataObject* This,
+ FORMATETC* pformatectIn,
+ FORMATETC* pformatetcOut);
+void __RPC_STUB IDataObject_GetCanonicalFormatEtc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IDataObject_RemoteSetData_Proxy(
+ IDataObject* This,
+ FORMATETC* pformatetc,
+ FLAG_STGMEDIUM* pmedium,
+ BOOL fRelease);
+void __RPC_STUB IDataObject_RemoteSetData_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IDataObject_SetData_Proxy(
+ IDataObject* This,
+ FORMATETC* pformatetc,
+ STGMEDIUM* pmedium,
+ BOOL fRelease);
+HRESULT __RPC_STUB IDataObject_SetData_Stub(
+ IDataObject* This,
+ FORMATETC* pformatetc,
+ FLAG_STGMEDIUM* pmedium,
+ BOOL fRelease);
+HRESULT CALLBACK IDataObject_EnumFormatEtc_Proxy(
+ IDataObject* This,
+ DWORD dwDirection,
+ IEnumFORMATETC** ppenumFormatEtc);
+void __RPC_STUB IDataObject_EnumFormatEtc_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IDataObject_DAdvise_Proxy(
+ IDataObject* This,
+ FORMATETC* pformatetc,
+ DWORD advf,
+ IAdviseSink* pAdvSink,
+ DWORD* pdwConnection);
+void __RPC_STUB IDataObject_DAdvise_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IDataObject_DUnadvise_Proxy(
+ IDataObject* This,
+ DWORD dwConnection);
+void __RPC_STUB IDataObject_DUnadvise_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IDataObject_EnumDAdvise_Proxy(
+ IDataObject* This,
+ IEnumSTATDATA** ppenumAdvise);
+void __RPC_STUB IDataObject_EnumDAdvise_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IDataAdviseHolder IDataAdviseHolder;
+typedef IDataAdviseHolder *LPDATAADVISEHOLDER;
+
+/*****************************************************************************
+ * IDataAdviseHolder interface
+ */
+DEFINE_GUID(IID_IDataAdviseHolder, 0x00000110, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IDataAdviseHolder: IUnknown {
+
+ virtual HRESULT CALLBACK Advise(
+ IDataObject* pDataObject,
+ FORMATETC* pFetc,
+ DWORD advf,
+ IAdviseSink* pAdvise,
+ DWORD* pdwConnection) = 0;
+
+ virtual HRESULT CALLBACK Unadvise(
+ DWORD dwConnection) = 0;
+
+ virtual HRESULT CALLBACK EnumAdvise(
+ IEnumSTATDATA** ppenumAdvise) = 0;
+
+ virtual HRESULT CALLBACK SendOnDataChange(
+ IDataObject* pDataObject,
+ DWORD dwReserved,
+ DWORD advf) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IDataAdviseHolderVtbl IDataAdviseHolderVtbl;
+struct IDataAdviseHolder {
+ const IDataAdviseHolderVtbl* lpVtbl;
+};
+struct IDataAdviseHolderVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IDataAdviseHolder* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IDataAdviseHolder* This);
+
+ ULONG (CALLBACK *Release)(
+ IDataAdviseHolder* This);
+
+ /*** IDataAdviseHolder methods ***/
+ HRESULT (CALLBACK *Advise)(
+ IDataAdviseHolder* This,
+ IDataObject* pDataObject,
+ FORMATETC* pFetc,
+ DWORD advf,
+ IAdviseSink* pAdvise,
+ DWORD* pdwConnection);
+
+ HRESULT (CALLBACK *Unadvise)(
+ IDataAdviseHolder* This,
+ DWORD dwConnection);
+
+ HRESULT (CALLBACK *EnumAdvise)(
+ IDataAdviseHolder* This,
+ IEnumSTATDATA** ppenumAdvise);
+
+ HRESULT (CALLBACK *SendOnDataChange)(
+ IDataAdviseHolder* This,
+ IDataObject* pDataObject,
+ DWORD dwReserved,
+ DWORD advf);
+
+};
+
+#define IDataAdviseHolder_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD5 (HRESULT,Advise,IDataObject*,pDataObject,FORMATETC*,pFetc,DWORD,advf,IAdviseSink*,pAdvise,DWORD*,pdwConnection) \
+ ICOM_METHOD1 (HRESULT,Unadvise,DWORD,dwConnection) \
+ ICOM_METHOD1 (HRESULT,EnumAdvise,IEnumSTATDATA**,ppenumAdvise) \
+ ICOM_METHOD3 (HRESULT,SendOnDataChange,IDataObject*,pDataObject,DWORD,dwReserved,DWORD,advf)
+
+/*** IUnknown methods ***/
+#define IDataAdviseHolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IDataAdviseHolder_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IDataAdviseHolder_Release(p) (p)->lpVtbl->Release(p)
+/*** IDataAdviseHolder methods ***/
+#define IDataAdviseHolder_Advise(p,a,b,c,d,e) (p)->lpVtbl->Advise(p,a,b,c,d,e)
+#define IDataAdviseHolder_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
+#define IDataAdviseHolder_EnumAdvise(p,a) (p)->lpVtbl->EnumAdvise(p,a)
+#define IDataAdviseHolder_SendOnDataChange(p,a,b,c) (p)->lpVtbl->SendOnDataChange(p,a,b,c)
+
+#endif
+
+HRESULT CALLBACK IDataAdviseHolder_Advise_Proxy(
+ IDataAdviseHolder* This,
+ IDataObject* pDataObject,
+ FORMATETC* pFetc,
+ DWORD advf,
+ IAdviseSink* pAdvise,
+ DWORD* pdwConnection);
+void __RPC_STUB IDataAdviseHolder_Advise_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IDataAdviseHolder_Unadvise_Proxy(
+ IDataAdviseHolder* This,
+ DWORD dwConnection);
+void __RPC_STUB IDataAdviseHolder_Unadvise_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IDataAdviseHolder_EnumAdvise_Proxy(
+ IDataAdviseHolder* This,
+ IEnumSTATDATA** ppenumAdvise);
+void __RPC_STUB IDataAdviseHolder_EnumAdvise_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IDataAdviseHolder_SendOnDataChange_Proxy(
+ IDataAdviseHolder* This,
+ IDataObject* pDataObject,
+ DWORD dwReserved,
+ DWORD advf);
+void __RPC_STUB IDataAdviseHolder_SendOnDataChange_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IMessageFilter IMessageFilter;
+typedef IMessageFilter *LPMESSAGEFILTER;
+
+typedef enum tagCALLTYPE {
+ CALLTYPE_TOPLEVEL = 1,
+ CALLTYPE_NESTED = 2,
+ CALLTYPE_ASYNC = 3,
+ CALLTYPE_TOPLEVEL_CALLPENDING = 4,
+ CALLTYPE_ASYNC_CALLPENDING = 5
+} CALLTYPE;
+
+typedef enum tagSERVERCALL {
+ SERVERCALL_ISHANDLED = 0,
+ SERVERCALL_REJECTED = 1,
+ SERVERCALL_RETRYLATER = 2
+} SERVERCALL;
+
+typedef enum tagPENDINGTYPE {
+ PENDINGTYPE_TOPLEVEL = 1,
+ PENDINGTYPE_NESTED = 2
+} PENDINGTYPE;
+
+typedef enum tagPENDINGMSG {
+ PENDINGMSG_CANCELCALL = 0,
+ PENDINGMSG_WAITNOPROCESS = 1,
+ PENDINGMSG_WAITDEFPROCESS = 2
+} PENDINGMSG;
+
+typedef struct tagINTERFACEINFO {
+ IUnknown *pUnk;
+ IID iid;
+ WORD wMethod;
+} INTERFACEINFO, *LPINTERFACEINFO;
+
+/*****************************************************************************
+ * IMessageFilter interface
+ */
+DEFINE_GUID(IID_IMessageFilter, 0x00000016, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IMessageFilter: IUnknown {
+
+ virtual DWORD CALLBACK HandleInComingCall(
+ DWORD dwCallType,
+ HTASK htaskCaller,
+ DWORD dwTickCount,
+ LPINTERFACEINFO lpInterfaceInfo) = 0;
+
+ virtual DWORD CALLBACK RetryRejectedCall(
+ HTASK htaskCallee,
+ DWORD dwTickCount,
+ DWORD dwRejectType) = 0;
+
+ virtual DWORD CALLBACK MessagePending(
+ HTASK htaskCallee,
+ DWORD dwTickCount,
+ DWORD dwPendingType) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IMessageFilterVtbl IMessageFilterVtbl;
+struct IMessageFilter {
+ const IMessageFilterVtbl* lpVtbl;
+};
+struct IMessageFilterVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IMessageFilter* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IMessageFilter* This);
+
+ ULONG (CALLBACK *Release)(
+ IMessageFilter* This);
+
+ /*** IMessageFilter methods ***/
+ DWORD (CALLBACK *HandleInComingCall)(
+ IMessageFilter* This,
+ DWORD dwCallType,
+ HTASK htaskCaller,
+ DWORD dwTickCount,
+ LPINTERFACEINFO lpInterfaceInfo);
+
+ DWORD (CALLBACK *RetryRejectedCall)(
+ IMessageFilter* This,
+ HTASK htaskCallee,
+ DWORD dwTickCount,
+ DWORD dwRejectType);
+
+ DWORD (CALLBACK *MessagePending)(
+ IMessageFilter* This,
+ HTASK htaskCallee,
+ DWORD dwTickCount,
+ DWORD dwPendingType);
+
+};
+
+#define IMessageFilter_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD4 (DWORD,HandleInComingCall,DWORD,dwCallType,HTASK,htaskCaller,DWORD,dwTickCount,LPINTERFACEINFO,lpInterfaceInfo) \
+ ICOM_METHOD3 (DWORD,RetryRejectedCall,HTASK,htaskCallee,DWORD,dwTickCount,DWORD,dwRejectType) \
+ ICOM_METHOD3 (DWORD,MessagePending,HTASK,htaskCallee,DWORD,dwTickCount,DWORD,dwPendingType)
+
+/*** IUnknown methods ***/
+#define IMessageFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IMessageFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IMessageFilter_Release(p) (p)->lpVtbl->Release(p)
+/*** IMessageFilter methods ***/
+#define IMessageFilter_HandleInComingCall(p,a,b,c,d) (p)->lpVtbl->HandleInComingCall(p,a,b,c,d)
+#define IMessageFilter_RetryRejectedCall(p,a,b,c) (p)->lpVtbl->RetryRejectedCall(p,a,b,c)
+#define IMessageFilter_MessagePending(p,a,b,c) (p)->lpVtbl->MessagePending(p,a,b,c)
+
+#endif
+
+DWORD CALLBACK IMessageFilter_HandleInComingCall_Proxy(
+ IMessageFilter* This,
+ DWORD dwCallType,
+ HTASK htaskCaller,
+ DWORD dwTickCount,
+ LPINTERFACEINFO lpInterfaceInfo);
+void __RPC_STUB IMessageFilter_HandleInComingCall_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+DWORD CALLBACK IMessageFilter_RetryRejectedCall_Proxy(
+ IMessageFilter* This,
+ HTASK htaskCallee,
+ DWORD dwTickCount,
+ DWORD dwRejectType);
+void __RPC_STUB IMessageFilter_RetryRejectedCall_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+DWORD CALLBACK IMessageFilter_MessagePending_Proxy(
+ IMessageFilter* This,
+ HTASK htaskCallee,
+ DWORD dwTickCount,
+ DWORD dwPendingType);
+void __RPC_STUB IMessageFilter_MessagePending_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IRpcChannelBuffer IRpcChannelBuffer;
+typedef IRpcChannelBuffer *LPRPCCHANNELBUFFER;
+
+typedef unsigned long RPCOLEDATAREP;
+
+typedef struct tagRPCOLEMESSAGE {
+ void *reserved1;
+ RPCOLEDATAREP dataRepresentation;
+ void *Buffer;
+ ULONG cbBuffer;
+ ULONG iMethod;
+ void *reserved2[5];
+ ULONG rpcFlags;
+} RPCOLEMESSAGE;
+
+typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
+
+/*****************************************************************************
+ * IRpcChannelBuffer interface
+ */
+DEFINE_GUID(IID_IRpcChannelBuffer, 0xd5f56b60, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IRpcChannelBuffer: IUnknown {
+
+ virtual HRESULT CALLBACK GetBuffer(
+ RPCOLEMESSAGE* pMessage,
+ REFIID riid) = 0;
+
+ virtual HRESULT CALLBACK SendReceive(
+ RPCOLEMESSAGE* pMessage,
+ ULONG* pStatus) = 0;
+
+ virtual HRESULT CALLBACK FreeBuffer(
+ RPCOLEMESSAGE* pMessage) = 0;
+
+ virtual HRESULT CALLBACK GetDestCtx(
+ DWORD* pdwDestContext,
+ void** ppvDestContext) = 0;
+
+ virtual HRESULT CALLBACK IsConnected(
+ ) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IRpcChannelBufferVtbl IRpcChannelBufferVtbl;
+struct IRpcChannelBuffer {
+ const IRpcChannelBufferVtbl* lpVtbl;
+};
+struct IRpcChannelBufferVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IRpcChannelBuffer* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IRpcChannelBuffer* This);
+
+ ULONG (CALLBACK *Release)(
+ IRpcChannelBuffer* This);
+
+ /*** IRpcChannelBuffer methods ***/
+ HRESULT (CALLBACK *GetBuffer)(
+ IRpcChannelBuffer* This,
+ RPCOLEMESSAGE* pMessage,
+ REFIID riid);
+
+ HRESULT (CALLBACK *SendReceive)(
+ IRpcChannelBuffer* This,
+ RPCOLEMESSAGE* pMessage,
+ ULONG* pStatus);
+
+ HRESULT (CALLBACK *FreeBuffer)(
+ IRpcChannelBuffer* This,
+ RPCOLEMESSAGE* pMessage);
+
+ HRESULT (CALLBACK *GetDestCtx)(
+ IRpcChannelBuffer* This,
+ DWORD* pdwDestContext,
+ void** ppvDestContext);
+
+ HRESULT (CALLBACK *IsConnected)(
+ IRpcChannelBuffer* This);
+
+};
+
+#define IRpcChannelBuffer_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD2 (HRESULT,GetBuffer,RPCOLEMESSAGE*,pMessage,REFIID,riid) \
+ ICOM_METHOD2 (HRESULT,SendReceive,RPCOLEMESSAGE*,pMessage,ULONG*,pStatus) \
+ ICOM_METHOD1 (HRESULT,FreeBuffer,RPCOLEMESSAGE*,pMessage) \
+ ICOM_METHOD2 (HRESULT,GetDestCtx,DWORD*,pdwDestContext,void**,ppvDestContext) \
+ ICOM_METHOD (HRESULT,IsConnected)
+
+/*** IUnknown methods ***/
+#define IRpcChannelBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IRpcChannelBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IRpcChannelBuffer_Release(p) (p)->lpVtbl->Release(p)
+/*** IRpcChannelBuffer methods ***/
+#define IRpcChannelBuffer_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
+#define IRpcChannelBuffer_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
+#define IRpcChannelBuffer_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
+#define IRpcChannelBuffer_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
+#define IRpcChannelBuffer_IsConnected(p) (p)->lpVtbl->IsConnected(p)
+
+#endif
+
+HRESULT CALLBACK IRpcChannelBuffer_GetBuffer_Proxy(
+ IRpcChannelBuffer* This,
+ RPCOLEMESSAGE* pMessage,
+ REFIID riid);
+void __RPC_STUB IRpcChannelBuffer_GetBuffer_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcChannelBuffer_SendReceive_Proxy(
+ IRpcChannelBuffer* This,
+ RPCOLEMESSAGE* pMessage,
+ ULONG* pStatus);
+void __RPC_STUB IRpcChannelBuffer_SendReceive_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcChannelBuffer_FreeBuffer_Proxy(
+ IRpcChannelBuffer* This,
+ RPCOLEMESSAGE* pMessage);
+void __RPC_STUB IRpcChannelBuffer_FreeBuffer_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcChannelBuffer_GetDestCtx_Proxy(
+ IRpcChannelBuffer* This,
+ DWORD* pdwDestContext,
+ void** ppvDestContext);
+void __RPC_STUB IRpcChannelBuffer_GetDestCtx_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcChannelBuffer_IsConnected_Proxy(
+ IRpcChannelBuffer* This);
+void __RPC_STUB IRpcChannelBuffer_IsConnected_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IRpcChannelBuffer2 IRpcChannelBuffer2;
+typedef IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2;
+
+/*****************************************************************************
+ * IRpcChannelBuffer2 interface
+ */
+DEFINE_GUID(IID_IRpcChannelBuffer2, 0x594f31d0, 0x7f19, 0x11d0, 0xb1,0x94, 0x00,0xa0,0xc9,0x0d,0xc8,0xbf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IRpcChannelBuffer2: IRpcChannelBuffer {
+
+ virtual HRESULT CALLBACK GetProtocolVersion(
+ DWORD* pdwVersion) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IRpcChannelBuffer2Vtbl IRpcChannelBuffer2Vtbl;
+struct IRpcChannelBuffer2 {
+ const IRpcChannelBuffer2Vtbl* lpVtbl;
+};
+struct IRpcChannelBuffer2Vtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IRpcChannelBuffer2* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IRpcChannelBuffer2* This);
+
+ ULONG (CALLBACK *Release)(
+ IRpcChannelBuffer2* This);
+
+ /*** IRpcChannelBuffer methods ***/
+ HRESULT (CALLBACK *GetBuffer)(
+ IRpcChannelBuffer2* This,
+ RPCOLEMESSAGE* pMessage,
+ REFIID riid);
+
+ HRESULT (CALLBACK *SendReceive)(
+ IRpcChannelBuffer2* This,
+ RPCOLEMESSAGE* pMessage,
+ ULONG* pStatus);
+
+ HRESULT (CALLBACK *FreeBuffer)(
+ IRpcChannelBuffer2* This,
+ RPCOLEMESSAGE* pMessage);
+
+ HRESULT (CALLBACK *GetDestCtx)(
+ IRpcChannelBuffer2* This,
+ DWORD* pdwDestContext,
+ void** ppvDestContext);
+
+ HRESULT (CALLBACK *IsConnected)(
+ IRpcChannelBuffer2* This);
+
+ /*** IRpcChannelBuffer2 methods ***/
+ HRESULT (CALLBACK *GetProtocolVersion)(
+ IRpcChannelBuffer2* This,
+ DWORD* pdwVersion);
+
+};
+
+#define IRpcChannelBuffer2_IMETHODS \
+ IRpcChannelBuffer_IMETHODS \
+ ICOM_METHOD1 (HRESULT,GetProtocolVersion,DWORD*,pdwVersion)
+
+/*** IUnknown methods ***/
+#define IRpcChannelBuffer2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IRpcChannelBuffer2_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IRpcChannelBuffer2_Release(p) (p)->lpVtbl->Release(p)
+/*** IRpcChannelBuffer methods ***/
+#define IRpcChannelBuffer2_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
+#define IRpcChannelBuffer2_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
+#define IRpcChannelBuffer2_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
+#define IRpcChannelBuffer2_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
+#define IRpcChannelBuffer2_IsConnected(p) (p)->lpVtbl->IsConnected(p)
+/*** IRpcChannelBuffer2 methods ***/
+#define IRpcChannelBuffer2_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
+
+#endif
+
+HRESULT CALLBACK IRpcChannelBuffer2_GetProtocolVersion_Proxy(
+ IRpcChannelBuffer2* This,
+ DWORD* pdwVersion);
+void __RPC_STUB IRpcChannelBuffer2_GetProtocolVersion_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IRpcChannelBuffer3 IRpcChannelBuffer3;
+typedef IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3;
+
+/*****************************************************************************
+ * IRpcChannelBuffer3 interface
+ */
+DEFINE_GUID(IID_IRpcChannelBuffer3, 0x25b15600, 0x0115, 0x11d0, 0xbf,0x0d, 0x00,0xaa,0x00,0xb8,0xdf,0xd2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IRpcChannelBuffer3: IRpcChannelBuffer2 {
+
+ virtual HRESULT CALLBACK Send(
+ RPCOLEMESSAGE* pMsg,
+ ULONG* pulStatus) = 0;
+
+ virtual HRESULT CALLBACK Receive(
+ RPCOLEMESSAGE* pMsg,
+ ULONG ulSize,
+ ULONG* pulStatus) = 0;
+
+ virtual HRESULT CALLBACK Cancel(
+ RPCOLEMESSAGE* pMsg) = 0;
+
+ virtual HRESULT CALLBACK GetCallContext(
+ RPCOLEMESSAGE* pMsg,
+ REFIID riid,
+ void** pInterface) = 0;
+
+ virtual HRESULT CALLBACK GetDestCtxEx(
+ RPCOLEMESSAGE* pMsg,
+ DWORD* pdwDestContext,
+ void** ppvDestContext) = 0;
+
+ virtual HRESULT CALLBACK GetState(
+ RPCOLEMESSAGE* pMsg,
+ DWORD* pState) = 0;
+
+ virtual HRESULT CALLBACK RegisterAsync(
+ RPCOLEMESSAGE* pMsg,
+ IAsyncManager* pAsyncMgr) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IRpcChannelBuffer3Vtbl IRpcChannelBuffer3Vtbl;
+struct IRpcChannelBuffer3 {
+ const IRpcChannelBuffer3Vtbl* lpVtbl;
+};
+struct IRpcChannelBuffer3Vtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IRpcChannelBuffer3* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IRpcChannelBuffer3* This);
+
+ ULONG (CALLBACK *Release)(
+ IRpcChannelBuffer3* This);
+
+ /*** IRpcChannelBuffer methods ***/
+ HRESULT (CALLBACK *GetBuffer)(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMessage,
+ REFIID riid);
+
+ HRESULT (CALLBACK *SendReceive)(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMessage,
+ ULONG* pStatus);
+
+ HRESULT (CALLBACK *FreeBuffer)(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMessage);
+
+ HRESULT (CALLBACK *GetDestCtx)(
+ IRpcChannelBuffer3* This,
+ DWORD* pdwDestContext,
+ void** ppvDestContext);
+
+ HRESULT (CALLBACK *IsConnected)(
+ IRpcChannelBuffer3* This);
+
+ /*** IRpcChannelBuffer2 methods ***/
+ HRESULT (CALLBACK *GetProtocolVersion)(
+ IRpcChannelBuffer3* This,
+ DWORD* pdwVersion);
+
+ /*** IRpcChannelBuffer3 methods ***/
+ HRESULT (CALLBACK *Send)(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ ULONG* pulStatus);
+
+ HRESULT (CALLBACK *Receive)(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ ULONG ulSize,
+ ULONG* pulStatus);
+
+ HRESULT (CALLBACK *Cancel)(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg);
+
+ HRESULT (CALLBACK *GetCallContext)(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ REFIID riid,
+ void** pInterface);
+
+ HRESULT (CALLBACK *GetDestCtxEx)(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ DWORD* pdwDestContext,
+ void** ppvDestContext);
+
+ HRESULT (CALLBACK *GetState)(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ DWORD* pState);
+
+ HRESULT (CALLBACK *RegisterAsync)(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ IAsyncManager* pAsyncMgr);
+
+};
+
+#define IRpcChannelBuffer3_IMETHODS \
+ IRpcChannelBuffer2_IMETHODS \
+ ICOM_METHOD2 (HRESULT,Send,RPCOLEMESSAGE*,pMsg,ULONG*,pulStatus) \
+ ICOM_METHOD3 (HRESULT,Receive,RPCOLEMESSAGE*,pMsg,ULONG,ulSize,ULONG*,pulStatus) \
+ ICOM_METHOD1 (HRESULT,Cancel,RPCOLEMESSAGE*,pMsg) \
+ ICOM_METHOD3 (HRESULT,GetCallContext,RPCOLEMESSAGE*,pMsg,REFIID,riid,void**,pInterface) \
+ ICOM_METHOD3 (HRESULT,GetDestCtxEx,RPCOLEMESSAGE*,pMsg,DWORD*,pdwDestContext,void**,ppvDestContext) \
+ ICOM_METHOD2 (HRESULT,GetState,RPCOLEMESSAGE*,pMsg,DWORD*,pState) \
+ ICOM_METHOD2 (HRESULT,RegisterAsync,RPCOLEMESSAGE*,pMsg,IAsyncManager*,pAsyncMgr)
+
+/*** IUnknown methods ***/
+#define IRpcChannelBuffer3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IRpcChannelBuffer3_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IRpcChannelBuffer3_Release(p) (p)->lpVtbl->Release(p)
+/*** IRpcChannelBuffer methods ***/
+#define IRpcChannelBuffer3_GetBuffer(p,a,b) (p)->lpVtbl->GetBuffer(p,a,b)
+#define IRpcChannelBuffer3_SendReceive(p,a,b) (p)->lpVtbl->SendReceive(p,a,b)
+#define IRpcChannelBuffer3_FreeBuffer(p,a) (p)->lpVtbl->FreeBuffer(p,a)
+#define IRpcChannelBuffer3_GetDestCtx(p,a,b) (p)->lpVtbl->GetDestCtx(p,a,b)
+#define IRpcChannelBuffer3_IsConnected(p) (p)->lpVtbl->IsConnected(p)
+/*** IRpcChannelBuffer2 methods ***/
+#define IRpcChannelBuffer3_GetProtocolVersion(p,a) (p)->lpVtbl->GetProtocolVersion(p,a)
+/*** IRpcChannelBuffer3 methods ***/
+#define IRpcChannelBuffer3_Send(p,a,b) (p)->lpVtbl->Send(p,a,b)
+#define IRpcChannelBuffer3_Receive(p,a,b,c) (p)->lpVtbl->Receive(p,a,b,c)
+#define IRpcChannelBuffer3_Cancel(p,a) (p)->lpVtbl->Cancel(p,a)
+#define IRpcChannelBuffer3_GetCallContext(p,a,b,c) (p)->lpVtbl->GetCallContext(p,a,b,c)
+#define IRpcChannelBuffer3_GetDestCtxEx(p,a,b,c) (p)->lpVtbl->GetDestCtxEx(p,a,b,c)
+#define IRpcChannelBuffer3_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
+#define IRpcChannelBuffer3_RegisterAsync(p,a,b) (p)->lpVtbl->RegisterAsync(p,a,b)
+
+#endif
+
+HRESULT CALLBACK IRpcChannelBuffer3_Send_Proxy(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ ULONG* pulStatus);
+void __RPC_STUB IRpcChannelBuffer3_Send_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcChannelBuffer3_Receive_Proxy(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ ULONG ulSize,
+ ULONG* pulStatus);
+void __RPC_STUB IRpcChannelBuffer3_Receive_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcChannelBuffer3_Cancel_Proxy(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg);
+void __RPC_STUB IRpcChannelBuffer3_Cancel_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcChannelBuffer3_GetCallContext_Proxy(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ REFIID riid,
+ void** pInterface);
+void __RPC_STUB IRpcChannelBuffer3_GetCallContext_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcChannelBuffer3_GetDestCtxEx_Proxy(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ DWORD* pdwDestContext,
+ void** ppvDestContext);
+void __RPC_STUB IRpcChannelBuffer3_GetDestCtxEx_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcChannelBuffer3_GetState_Proxy(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ DWORD* pState);
+void __RPC_STUB IRpcChannelBuffer3_GetState_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcChannelBuffer3_RegisterAsync_Proxy(
+ IRpcChannelBuffer3* This,
+ RPCOLEMESSAGE* pMsg,
+ IAsyncManager* pAsyncMgr);
+void __RPC_STUB IRpcChannelBuffer3_RegisterAsync_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IRpcProxyBuffer IRpcProxyBuffer;
+typedef IRpcProxyBuffer *LPRPCPROXYBUFFER;
+
+/*****************************************************************************
+ * IRpcProxyBuffer interface
+ */
+DEFINE_GUID(IID_IRpcProxyBuffer, 0xd5f56a34, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IRpcProxyBuffer: IUnknown {
+
+ virtual HRESULT CALLBACK Connect(
+ IRpcChannelBuffer* pRpcChannelBuffer) = 0;
+
+ virtual void CALLBACK Disconnect(
+ ) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IRpcProxyBufferVtbl IRpcProxyBufferVtbl;
+struct IRpcProxyBuffer {
+ const IRpcProxyBufferVtbl* lpVtbl;
+};
+struct IRpcProxyBufferVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IRpcProxyBuffer* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IRpcProxyBuffer* This);
+
+ ULONG (CALLBACK *Release)(
+ IRpcProxyBuffer* This);
+
+ /*** IRpcProxyBuffer methods ***/
+ HRESULT (CALLBACK *Connect)(
+ IRpcProxyBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer);
+
+ void (CALLBACK *Disconnect)(
+ IRpcProxyBuffer* This);
+
+};
+
+#define IRpcProxyBuffer_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD1 (HRESULT,Connect,IRpcChannelBuffer*,pRpcChannelBuffer) \
+ ICOM_VMETHOD (Disconnect)
+
+/*** IUnknown methods ***/
+#define IRpcProxyBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IRpcProxyBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IRpcProxyBuffer_Release(p) (p)->lpVtbl->Release(p)
+/*** IRpcProxyBuffer methods ***/
+#define IRpcProxyBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
+#define IRpcProxyBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
+
+#endif
+
+HRESULT CALLBACK IRpcProxyBuffer_Connect_Proxy(
+ IRpcProxyBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer);
+void __RPC_STUB IRpcProxyBuffer_Connect_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IRpcProxyBuffer_Disconnect_Proxy(
+ IRpcProxyBuffer* This);
+void __RPC_STUB IRpcProxyBuffer_Disconnect_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IRpcStubBuffer IRpcStubBuffer;
+typedef IRpcStubBuffer *LPRPCSTUBBUFFER;
+
+/*****************************************************************************
+ * IRpcStubBuffer interface
+ */
+DEFINE_GUID(IID_IRpcStubBuffer, 0xd5f56afc, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IRpcStubBuffer: IUnknown {
+
+ virtual HRESULT CALLBACK Connect(
+ IUnknown* pUnkServer) = 0;
+
+ virtual void CALLBACK Disconnect(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Invoke(
+ RPCOLEMESSAGE* _prpcmsg,
+ IRpcChannelBuffer* _pRpcChannelBuffer) = 0;
+
+ virtual IRpcStubBuffer* CALLBACK IsIIDSupported(
+ REFIID riid) = 0;
+
+ virtual ULONG CALLBACK CountRefs(
+ ) = 0;
+
+ virtual HRESULT CALLBACK DebugServerQueryInterface(
+ void** ppv) = 0;
+
+ virtual void CALLBACK DebugServerRelease(
+ void* pv) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IRpcStubBufferVtbl IRpcStubBufferVtbl;
+struct IRpcStubBuffer {
+ const IRpcStubBufferVtbl* lpVtbl;
+};
+struct IRpcStubBufferVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IRpcStubBuffer* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IRpcStubBuffer* This);
+
+ ULONG (CALLBACK *Release)(
+ IRpcStubBuffer* This);
+
+ /*** IRpcStubBuffer methods ***/
+ HRESULT (CALLBACK *Connect)(
+ IRpcStubBuffer* This,
+ IUnknown* pUnkServer);
+
+ void (CALLBACK *Disconnect)(
+ IRpcStubBuffer* This);
+
+ HRESULT (CALLBACK *Invoke)(
+ IRpcStubBuffer* This,
+ RPCOLEMESSAGE* _prpcmsg,
+ IRpcChannelBuffer* _pRpcChannelBuffer);
+
+ IRpcStubBuffer* (CALLBACK *IsIIDSupported)(
+ IRpcStubBuffer* This,
+ REFIID riid);
+
+ ULONG (CALLBACK *CountRefs)(
+ IRpcStubBuffer* This);
+
+ HRESULT (CALLBACK *DebugServerQueryInterface)(
+ IRpcStubBuffer* This,
+ void** ppv);
+
+ void (CALLBACK *DebugServerRelease)(
+ IRpcStubBuffer* This,
+ void* pv);
+
+};
+
+#define IRpcStubBuffer_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD1 (HRESULT,Connect,IUnknown*,pUnkServer) \
+ ICOM_VMETHOD (Disconnect) \
+ ICOM_METHOD2 (HRESULT,Invoke,RPCOLEMESSAGE*,_prpcmsg,IRpcChannelBuffer*,_pRpcChannelBuffer) \
+ ICOM_METHOD1 (IRpcStubBuffer*,IsIIDSupported,REFIID,riid) \
+ ICOM_METHOD (ULONG,CountRefs) \
+ ICOM_METHOD1 (HRESULT,DebugServerQueryInterface,void**,ppv) \
+ ICOM_VMETHOD1(DebugServerRelease,void*,pv)
+
+/*** IUnknown methods ***/
+#define IRpcStubBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IRpcStubBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IRpcStubBuffer_Release(p) (p)->lpVtbl->Release(p)
+/*** IRpcStubBuffer methods ***/
+#define IRpcStubBuffer_Connect(p,a) (p)->lpVtbl->Connect(p,a)
+#define IRpcStubBuffer_Disconnect(p) (p)->lpVtbl->Disconnect(p)
+#define IRpcStubBuffer_Invoke(p,a,b) (p)->lpVtbl->Invoke(p,a,b)
+#define IRpcStubBuffer_IsIIDSupported(p,a) (p)->lpVtbl->IsIIDSupported(p,a)
+#define IRpcStubBuffer_CountRefs(p) (p)->lpVtbl->CountRefs(p)
+#define IRpcStubBuffer_DebugServerQueryInterface(p,a) (p)->lpVtbl->DebugServerQueryInterface(p,a)
+#define IRpcStubBuffer_DebugServerRelease(p,a) (p)->lpVtbl->DebugServerRelease(p,a)
+
+#endif
+
+HRESULT CALLBACK IRpcStubBuffer_Connect_Proxy(
+ IRpcStubBuffer* This,
+ IUnknown* pUnkServer);
+void __RPC_STUB IRpcStubBuffer_Connect_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IRpcStubBuffer_Disconnect_Proxy(
+ IRpcStubBuffer* This);
+void __RPC_STUB IRpcStubBuffer_Disconnect_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcStubBuffer_Invoke_Proxy(
+ IRpcStubBuffer* This,
+ RPCOLEMESSAGE* _prpcmsg,
+ IRpcChannelBuffer* _pRpcChannelBuffer);
+void __RPC_STUB IRpcStubBuffer_Invoke_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+IRpcStubBuffer* CALLBACK IRpcStubBuffer_IsIIDSupported_Proxy(
+ IRpcStubBuffer* This,
+ REFIID riid);
+void __RPC_STUB IRpcStubBuffer_IsIIDSupported_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+ULONG CALLBACK IRpcStubBuffer_CountRefs_Proxy(
+ IRpcStubBuffer* This);
+void __RPC_STUB IRpcStubBuffer_CountRefs_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IRpcStubBuffer_DebugServerQueryInterface_Proxy(
+ IRpcStubBuffer* This,
+ void** ppv);
+void __RPC_STUB IRpcStubBuffer_DebugServerQueryInterface_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IRpcStubBuffer_DebugServerRelease_Proxy(
+ IRpcStubBuffer* This,
+ void* pv);
+void __RPC_STUB IRpcStubBuffer_DebugServerRelease_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IPSFactoryBuffer IPSFactoryBuffer;
+typedef IPSFactoryBuffer *LPPSFACTORYBUFFER;
+
+/*****************************************************************************
+ * IPSFactoryBuffer interface
+ */
+DEFINE_GUID(IID_IPSFactoryBuffer, 0xd5f569d0, 0x593b, 0x101a, 0xb5,0x69, 0x08,0x00,0x2b,0x2d,0xbf,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IPSFactoryBuffer: IUnknown {
+
+ virtual HRESULT CALLBACK CreateProxy(
+ IUnknown* pUnkOuter,
+ REFIID riid,
+ IRpcProxyBuffer** ppProxy,
+ void** ppv) = 0;
+
+ virtual HRESULT CALLBACK CreateStub(
+ REFIID riid,
+ IUnknown* pUnkServer,
+ IRpcStubBuffer** ppStub) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IPSFactoryBufferVtbl IPSFactoryBufferVtbl;
+struct IPSFactoryBuffer {
+ const IPSFactoryBufferVtbl* lpVtbl;
+};
+struct IPSFactoryBufferVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IPSFactoryBuffer* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IPSFactoryBuffer* This);
+
+ ULONG (CALLBACK *Release)(
+ IPSFactoryBuffer* This);
+
+ /*** IPSFactoryBuffer methods ***/
+ HRESULT (CALLBACK *CreateProxy)(
+ IPSFactoryBuffer* This,
+ IUnknown* pUnkOuter,
+ REFIID riid,
+ IRpcProxyBuffer** ppProxy,
+ void** ppv);
+
+ HRESULT (CALLBACK *CreateStub)(
+ IPSFactoryBuffer* This,
+ REFIID riid,
+ IUnknown* pUnkServer,
+ IRpcStubBuffer** ppStub);
+
+};
+
+#define IPSFactoryBuffer_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD4 (HRESULT,CreateProxy,IUnknown*,pUnkOuter,REFIID,riid,IRpcProxyBuffer**,ppProxy,void**,ppv) \
+ ICOM_METHOD3 (HRESULT,CreateStub,REFIID,riid,IUnknown*,pUnkServer,IRpcStubBuffer**,ppStub)
+
+/*** IUnknown methods ***/
+#define IPSFactoryBuffer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IPSFactoryBuffer_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IPSFactoryBuffer_Release(p) (p)->lpVtbl->Release(p)
+/*** IPSFactoryBuffer methods ***/
+#define IPSFactoryBuffer_CreateProxy(p,a,b,c,d) (p)->lpVtbl->CreateProxy(p,a,b,c,d)
+#define IPSFactoryBuffer_CreateStub(p,a,b,c) (p)->lpVtbl->CreateStub(p,a,b,c)
+
+#endif
+
+HRESULT CALLBACK IPSFactoryBuffer_CreateProxy_Proxy(
+ IPSFactoryBuffer* This,
+ IUnknown* pUnkOuter,
+ REFIID riid,
+ IRpcProxyBuffer** ppProxy,
+ void** ppv);
+void __RPC_STUB IPSFactoryBuffer_CreateProxy_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPSFactoryBuffer_CreateStub_Proxy(
+ IPSFactoryBuffer* This,
+ REFIID riid,
+ IUnknown* pUnkServer,
+ IRpcStubBuffer** ppStub);
+void __RPC_STUB IPSFactoryBuffer_CreateStub_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IChannelHook IChannelHook;
+typedef IChannelHook *LPCHANNELHOOK;
+
+typedef struct SChannelHookCallInfo {
+ IID iid;
+ DWORD cbSize;
+ GUID uCausality;
+ DWORD dwServerPid;
+ DWORD iMethod;
+ void *pObject;
+} SChannelHookCallInfo;
+
+/*****************************************************************************
+ * IChannelHook interface
+ */
+DEFINE_GUID(IID_IChannelHook, 0x1008c4a0, 0x7613, 0x11cf, 0x9a,0xf1, 0x00,0x20,0xaf,0x6e,0x72,0xf4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IChannelHook: IUnknown {
+
+ virtual void CALLBACK ClientGetSize(
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG* pDataSize) = 0;
+
+ virtual void CALLBACK ClientFillBuffer(
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG* pDataSize,
+ void* pDataBuffer) = 0;
+
+ virtual void CALLBACK ClientNotify(
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG cbDataSize,
+ void* pDataBuffer,
+ DWORD lDataRep,
+ HRESULT hrFault) = 0;
+
+ virtual void CALLBACK ServerNotify(
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG cbDataSize,
+ void* pDataBuffer,
+ DWORD lDataRep) = 0;
+
+ virtual void CALLBACK ServerGetSize(
+ REFGUID uExtent,
+ REFIID riid,
+ HRESULT hrFault,
+ ULONG* pDataSize) = 0;
+
+ virtual void CALLBACK ServerFillBuffer(
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG* pDataSize,
+ void* pDataBuffer,
+ HRESULT hrFault) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IChannelHookVtbl IChannelHookVtbl;
+struct IChannelHook {
+ const IChannelHookVtbl* lpVtbl;
+};
+struct IChannelHookVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IChannelHook* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IChannelHook* This);
+
+ ULONG (CALLBACK *Release)(
+ IChannelHook* This);
+
+ /*** IChannelHook methods ***/
+ void (CALLBACK *ClientGetSize)(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG* pDataSize);
+
+ void (CALLBACK *ClientFillBuffer)(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG* pDataSize,
+ void* pDataBuffer);
+
+ void (CALLBACK *ClientNotify)(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG cbDataSize,
+ void* pDataBuffer,
+ DWORD lDataRep,
+ HRESULT hrFault);
+
+ void (CALLBACK *ServerNotify)(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG cbDataSize,
+ void* pDataBuffer,
+ DWORD lDataRep);
+
+ void (CALLBACK *ServerGetSize)(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ HRESULT hrFault,
+ ULONG* pDataSize);
+
+ void (CALLBACK *ServerFillBuffer)(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG* pDataSize,
+ void* pDataBuffer,
+ HRESULT hrFault);
+
+};
+
+#define IChannelHook_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_VMETHOD3(ClientGetSize,REFGUID,uExtent,REFIID,riid,ULONG*,pDataSize) \
+ ICOM_VMETHOD4(ClientFillBuffer,REFGUID,uExtent,REFIID,riid,ULONG*,pDataSize,void*,pDataBuffer) \
+ ICOM_VMETHOD6(ClientNotify,REFGUID,uExtent,REFIID,riid,ULONG,cbDataSize,void*,pDataBuffer,DWORD,lDataRep,HRESULT,hrFault) \
+ ICOM_VMETHOD5(ServerNotify,REFGUID,uExtent,REFIID,riid,ULONG,cbDataSize,void*,pDataBuffer,DWORD,lDataRep) \
+ ICOM_VMETHOD4(ServerGetSize,REFGUID,uExtent,REFIID,riid,HRESULT,hrFault,ULONG*,pDataSize) \
+ ICOM_VMETHOD5(ServerFillBuffer,REFGUID,uExtent,REFIID,riid,ULONG*,pDataSize,void*,pDataBuffer,HRESULT,hrFault)
+
+/*** IUnknown methods ***/
+#define IChannelHook_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IChannelHook_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IChannelHook_Release(p) (p)->lpVtbl->Release(p)
+/*** IChannelHook methods ***/
+#define IChannelHook_ClientGetSize(p,a,b,c) (p)->lpVtbl->ClientGetSize(p,a,b,c)
+#define IChannelHook_ClientFillBuffer(p,a,b,c,d) (p)->lpVtbl->ClientFillBuffer(p,a,b,c,d)
+#define IChannelHook_ClientNotify(p,a,b,c,d,e,f) (p)->lpVtbl->ClientNotify(p,a,b,c,d,e,f)
+#define IChannelHook_ServerNotify(p,a,b,c,d,e) (p)->lpVtbl->ServerNotify(p,a,b,c,d,e)
+#define IChannelHook_ServerGetSize(p,a,b,c,d) (p)->lpVtbl->ServerGetSize(p,a,b,c,d)
+#define IChannelHook_ServerFillBuffer(p,a,b,c,d,e) (p)->lpVtbl->ServerFillBuffer(p,a,b,c,d,e)
+
+#endif
+
+void CALLBACK IChannelHook_ClientGetSize_Proxy(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG* pDataSize);
+void __RPC_STUB IChannelHook_ClientGetSize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IChannelHook_ClientFillBuffer_Proxy(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG* pDataSize,
+ void* pDataBuffer);
+void __RPC_STUB IChannelHook_ClientFillBuffer_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IChannelHook_ClientNotify_Proxy(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG cbDataSize,
+ void* pDataBuffer,
+ DWORD lDataRep,
+ HRESULT hrFault);
+void __RPC_STUB IChannelHook_ClientNotify_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IChannelHook_ServerNotify_Proxy(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG cbDataSize,
+ void* pDataBuffer,
+ DWORD lDataRep);
+void __RPC_STUB IChannelHook_ServerNotify_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IChannelHook_ServerGetSize_Proxy(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ HRESULT hrFault,
+ ULONG* pDataSize);
+void __RPC_STUB IChannelHook_ServerGetSize_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void CALLBACK IChannelHook_ServerFillBuffer_Proxy(
+ IChannelHook* This,
+ REFGUID uExtent,
+ REFIID riid,
+ ULONG* pDataSize,
+ void* pDataBuffer,
+ HRESULT hrFault);
+void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IEnumSTATPROPSTG IEnumSTATPROPSTG;
+typedef struct IEnumSTATPROPSETSTG IEnumSTATPROPSETSTG;
+typedef struct IPropertyStorage IPropertyStorage;
+typedef IPropertyStorage *LPPROPERTYSTORAGE;
+
+extern const FMTID FMTID_SummaryInformation;
+
+extern const FMTID FMTID_DocSummaryInformation;
+
+extern const FMTID FMTID_UserDefinedProperties;
+
+#define PROPSETFLAG_DEFAULT (0)
+
+#define PROPSETFLAG_NONSIMPLE (1)
+
+#define PROPSETFLAG_ANSI (2)
+
+#define PROPSETFLAG_UNBUFFERED (4)
+
+typedef struct tagPROPVARIANT PROPVARIANT;
+
+typedef struct tagCAUB {
+ ULONG cElems;
+ unsigned char *pElems;
+} CAUB;
+
+typedef struct tagCAI {
+ ULONG cElems;
+ short *pElems;
+} CAI;
+
+typedef struct tagCAUI {
+ ULONG cElems;
+ USHORT *pElems;
+} CAUI;
+
+typedef struct tagCAL {
+ ULONG cElems;
+ long *pElems;
+} CAL;
+
+typedef struct tagCAUL {
+ ULONG cElems;
+ ULONG *pElems;
+} CAUL;
+
+typedef struct tagCAFLT {
+ ULONG cElems;
+ float *pElems;
+} CAFLT;
+
+typedef struct tagCADBL {
+ ULONG cElems;
+ double *pElems;
+} CADBL;
+
+typedef struct tagCACY {
+ ULONG cElems;
+ CY *pElems;
+} CACY;
+
+typedef struct tagCADATE {
+ ULONG cElems;
+ DATE *pElems;
+} CADATE;
+
+typedef struct tagCABSTR {
+ ULONG cElems;
+ BSTR *pElems;
+} CABSTR;
+
+typedef struct tagCABSTRBLOB {
+ ULONG cElems;
+ BSTRBLOB *pElems;
+} CABSTRBLOB;
+
+typedef struct tagCABOOL {
+ ULONG cElems;
+ VARIANT_BOOL *pElems;
+} CABOOL;
+
+typedef struct tagCASCODE {
+ ULONG cElems;
+ SCODE *pElems;
+} CASCODE;
+
+typedef struct tagCAPROPVARIANT {
+ ULONG cElems;
+ PROPVARIANT *pElems;
+} CAPROPVARIANT;
+
+typedef struct tagCAH {
+ ULONG cElems;
+ LARGE_INTEGER *pElems;
+} CAH;
+
+typedef struct tagCAUH {
+ ULONG cElems;
+ ULARGE_INTEGER *pElems;
+} CAUH;
+
+typedef struct tagCALPSTR {
+ ULONG cElems;
+ LPSTR *pElems;
+} CALPSTR;
+
+typedef struct tagCALPWSTR {
+ ULONG cElems;
+ LPWSTR *pElems;
+} CALPWSTR;
+
+typedef struct tagCAFILETIME {
+ ULONG cElems;
+ FILETIME *pElems;
+} CAFILETIME;
+
+typedef struct tagCACLIPDATA {
+ ULONG cElems;
+ CLIPDATA *pElems;
+} CACLIPDATA;
+
+typedef struct tagCACLSID {
+ ULONG cElems;
+ CLSID *pElems;
+} CACLSID;
+
+struct tagPROPVARIANT {
+ VARTYPE vt;
+ WORD wReserved1;
+ WORD wReserved2;
+ WORD wReserved3;
+ union {
+ UCHAR bVal;
+ short iVal;
+ USHORT uiVal;
+ VARIANT_BOOL boolVal;
+ long lVal;
+ ULONG ulVal;
+ float fltVal;
+ SCODE scode;
+ LARGE_INTEGER hVal;
+ ULARGE_INTEGER uhVal;
+ double dblVal;
+ CY cyVal;
+ DATE date;
+ FILETIME filetime;
+ CLSID *puuid;
+ BLOB blob;
+ CLIPDATA *pclipdata;
+ IStream *pStream;
+ IStorage *pStorage;
+ BSTR bstrVal;
+ BSTRBLOB bstrblobVal;
+ LPSTR pszVal;
+ LPWSTR pwszVal;
+ CAUB caub;
+ CAI cai;
+ CAUI caui;
+ CABOOL cabool;
+ CAL cal;
+ CAUL caul;
+ CAFLT caflt;
+ CASCODE cascode;
+ CAH cah;
+ CAUH cauh;
+ CADBL cadbl;
+ CACY cacy;
+ CADATE cadate;
+ CAFILETIME cafiletime;
+ CACLSID cauuid;
+ CACLIPDATA caclipdata;
+ CABSTR cabstr;
+ CABSTRBLOB cabstrblob;
+ CALPSTR calpstr;
+ CALPWSTR calpwstr;
+ CAPROPVARIANT capropvar;
+ } DUMMYUNIONNAME;
+};
+
+typedef struct tagPROPVARIANT *LPPROPVARIANT;
+
+#define PRSPEC_INVALID (0x7fffffff)
+
+#define PRSPEC_LPWSTR (0)
+
+#define PRSPEC_PROPID (1)
+
+typedef struct tagPROPSPEC {
+ ULONG ulKind;
+ union {
+ PROPID propid;
+ LPOLESTR lpwstr;
+ } DUMMYUNIONNAME;
+} PROPSPEC;
+
+typedef struct tagSTATPROPSTG {
+ LPOLESTR lpwstrName;
+ PROPID propid;
+ VARTYPE vt;
+} STATPROPSTG;
+
+typedef struct tagSTATPROPSETSTG {
+ FMTID fmtid;
+ CLSID clsid;
+ DWORD grfFlags;
+ FILETIME mtime;
+ FILETIME ctime;
+ FILETIME atime;
+ DWORD dwOSVersion;
+} STATPROPSETSTG;
+
+/*****************************************************************************
+ * IPropertyStorage interface
+ */
+DEFINE_GUID(IID_IPropertyStorage, 0x00000138, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IPropertyStorage: IUnknown {
+
+ virtual HRESULT CALLBACK ReadMultiple(
+ ULONG cpspec,
+ const PROPSPEC rgpspec[],
+ PROPVARIANT rgpropvar[]) = 0;
+
+ virtual HRESULT CALLBACK WriteMultiple(
+ ULONG cpspec,
+ const PROPSPEC rgpspec[],
+ const PROPVARIANT rgpropvar[],
+ PROPID propidNameFirst) = 0;
+
+ virtual HRESULT CALLBACK DeleteMultiple(
+ ULONG cpspec,
+ const PROPSPEC rgpspec[]) = 0;
+
+ virtual HRESULT CALLBACK ReadPropertyNames(
+ ULONG cpropid,
+ const PROPID rgpropid[],
+ LPOLESTR rglpwstrName[]) = 0;
+
+ virtual HRESULT CALLBACK WritePropertyNames(
+ ULONG cpropid,
+ const PROPID rgpropid[],
+ const LPOLESTR rglpwstrName[]) = 0;
+
+ virtual HRESULT CALLBACK DeletePropertyNames(
+ ULONG cpropid,
+ const PROPID rgpropid[]) = 0;
+
+ virtual HRESULT CALLBACK Commit(
+ DWORD grfCommitFlags) = 0;
+
+ virtual HRESULT CALLBACK Revert(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Enum(
+ IEnumSTATPROPSTG** ppenum) = 0;
+
+ virtual HRESULT CALLBACK SetTimes(
+ const FILETIME* pctime,
+ const FILETIME* patime,
+ const FILETIME* pmtime) = 0;
+
+ virtual HRESULT CALLBACK SetClass(
+ REFCLSID clsid) = 0;
+
+ virtual HRESULT CALLBACK Stat(
+ STATPROPSETSTG* statpsstg) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IPropertyStorageVtbl IPropertyStorageVtbl;
+struct IPropertyStorage {
+ const IPropertyStorageVtbl* lpVtbl;
+};
+struct IPropertyStorageVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IPropertyStorage* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IPropertyStorage* This);
+
+ ULONG (CALLBACK *Release)(
+ IPropertyStorage* This);
+
+ /*** IPropertyStorage methods ***/
+ HRESULT (CALLBACK *ReadMultiple)(
+ IPropertyStorage* This,
+ ULONG cpspec,
+ const PROPSPEC rgpspec[],
+ PROPVARIANT rgpropvar[]);
+
+ HRESULT (CALLBACK *WriteMultiple)(
+ IPropertyStorage* This,
+ ULONG cpspec,
+ const PROPSPEC rgpspec[],
+ const PROPVARIANT rgpropvar[],
+ PROPID propidNameFirst);
+
+ HRESULT (CALLBACK *DeleteMultiple)(
+ IPropertyStorage* This,
+ ULONG cpspec,
+ const PROPSPEC rgpspec[]);
+
+ HRESULT (CALLBACK *ReadPropertyNames)(
+ IPropertyStorage* This,
+ ULONG cpropid,
+ const PROPID rgpropid[],
+ LPOLESTR rglpwstrName[]);
+
+ HRESULT (CALLBACK *WritePropertyNames)(
+ IPropertyStorage* This,
+ ULONG cpropid,
+ const PROPID rgpropid[],
+ const LPOLESTR rglpwstrName[]);
+
+ HRESULT (CALLBACK *DeletePropertyNames)(
+ IPropertyStorage* This,
+ ULONG cpropid,
+ const PROPID rgpropid[]);
+
+ HRESULT (CALLBACK *Commit)(
+ IPropertyStorage* This,
+ DWORD grfCommitFlags);
+
+ HRESULT (CALLBACK *Revert)(
+ IPropertyStorage* This);
+
+ HRESULT (CALLBACK *Enum)(
+ IPropertyStorage* This,
+ IEnumSTATPROPSTG** ppenum);
+
+ HRESULT (CALLBACK *SetTimes)(
+ IPropertyStorage* This,
+ const FILETIME* pctime,
+ const FILETIME* patime,
+ const FILETIME* pmtime);
+
+ HRESULT (CALLBACK *SetClass)(
+ IPropertyStorage* This,
+ REFCLSID clsid);
+
+ HRESULT (CALLBACK *Stat)(
+ IPropertyStorage* This,
+ STATPROPSETSTG* statpsstg);
+
+};
+
+#define IPropertyStorage_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,ReadMultiple,ULONG,cpspec,const PROPSPEC*,rgpspec,PROPVARIANT*,rgpropvar) \
+ ICOM_METHOD4 (HRESULT,WriteMultiple,ULONG,cpspec,const PROPSPEC*,rgpspec,const PROPVARIANT*,rgpropvar,PROPID,propidNameFirst) \
+ ICOM_METHOD2 (HRESULT,DeleteMultiple,ULONG,cpspec,const PROPSPEC*,rgpspec) \
+ ICOM_METHOD3 (HRESULT,ReadPropertyNames,ULONG,cpropid,const PROPID*,rgpropid,LPOLESTR*,rglpwstrName) \
+ ICOM_METHOD3 (HRESULT,WritePropertyNames,ULONG,cpropid,const PROPID*,rgpropid,const LPOLESTR*,rglpwstrName) \
+ ICOM_METHOD2 (HRESULT,DeletePropertyNames,ULONG,cpropid,const PROPID*,rgpropid) \
+ ICOM_METHOD1 (HRESULT,Commit,DWORD,grfCommitFlags) \
+ ICOM_METHOD (HRESULT,Revert) \
+ ICOM_METHOD1 (HRESULT,Enum,IEnumSTATPROPSTG**,ppenum) \
+ ICOM_METHOD3 (HRESULT,SetTimes,const FILETIME*,pctime,const FILETIME*,patime,const FILETIME*,pmtime) \
+ ICOM_METHOD1 (HRESULT,SetClass,REFCLSID,clsid) \
+ ICOM_METHOD1 (HRESULT,Stat,STATPROPSETSTG*,statpsstg)
+
+/*** IUnknown methods ***/
+#define IPropertyStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IPropertyStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IPropertyStorage_Release(p) (p)->lpVtbl->Release(p)
+/*** IPropertyStorage methods ***/
+#define IPropertyStorage_ReadMultiple(p,a,b,c) (p)->lpVtbl->ReadMultiple(p,a,b,c)
+#define IPropertyStorage_WriteMultiple(p,a,b,c,d) (p)->lpVtbl->WriteMultiple(p,a,b,c,d)
+#define IPropertyStorage_DeleteMultiple(p,a,b) (p)->lpVtbl->DeleteMultiple(p,a,b)
+#define IPropertyStorage_ReadPropertyNames(p,a,b,c) (p)->lpVtbl->ReadPropertyNames(p,a,b,c)
+#define IPropertyStorage_WritePropertyNames(p,a,b,c) (p)->lpVtbl->WritePropertyNames(p,a,b,c)
+#define IPropertyStorage_DeletePropertyNames(p,a,b) (p)->lpVtbl->DeletePropertyNames(p,a,b)
+#define IPropertyStorage_Commit(p,a) (p)->lpVtbl->Commit(p,a)
+#define IPropertyStorage_Revert(p) (p)->lpVtbl->Revert(p)
+#define IPropertyStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
+#define IPropertyStorage_SetTimes(p,a,b,c) (p)->lpVtbl->SetTimes(p,a,b,c)
+#define IPropertyStorage_SetClass(p,a) (p)->lpVtbl->SetClass(p,a)
+#define IPropertyStorage_Stat(p,a) (p)->lpVtbl->Stat(p,a)
+
+#endif
+
+HRESULT CALLBACK IPropertyStorage_ReadMultiple_Proxy(
+ IPropertyStorage* This,
+ ULONG cpspec,
+ const PROPSPEC rgpspec[],
+ PROPVARIANT rgpropvar[]);
+void __RPC_STUB IPropertyStorage_ReadMultiple_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertyStorage_WriteMultiple_Proxy(
+ IPropertyStorage* This,
+ ULONG cpspec,
+ const PROPSPEC rgpspec[],
+ const PROPVARIANT rgpropvar[],
+ PROPID propidNameFirst);
+void __RPC_STUB IPropertyStorage_WriteMultiple_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertyStorage_DeleteMultiple_Proxy(
+ IPropertyStorage* This,
+ ULONG cpspec,
+ const PROPSPEC rgpspec[]);
+void __RPC_STUB IPropertyStorage_DeleteMultiple_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertyStorage_ReadPropertyNames_Proxy(
+ IPropertyStorage* This,
+ ULONG cpropid,
+ const PROPID rgpropid[],
+ LPOLESTR rglpwstrName[]);
+void __RPC_STUB IPropertyStorage_ReadPropertyNames_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertyStorage_WritePropertyNames_Proxy(
+ IPropertyStorage* This,
+ ULONG cpropid,
+ const PROPID rgpropid[],
+ const LPOLESTR rglpwstrName[]);
+void __RPC_STUB IPropertyStorage_WritePropertyNames_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertyStorage_DeletePropertyNames_Proxy(
+ IPropertyStorage* This,
+ ULONG cpropid,
+ const PROPID rgpropid[]);
+void __RPC_STUB IPropertyStorage_DeletePropertyNames_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertyStorage_Commit_Proxy(
+ IPropertyStorage* This,
+ DWORD grfCommitFlags);
+void __RPC_STUB IPropertyStorage_Commit_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertyStorage_Revert_Proxy(
+ IPropertyStorage* This);
+void __RPC_STUB IPropertyStorage_Revert_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertyStorage_Enum_Proxy(
+ IPropertyStorage* This,
+ IEnumSTATPROPSTG** ppenum);
+void __RPC_STUB IPropertyStorage_Enum_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertyStorage_SetTimes_Proxy(
+ IPropertyStorage* This,
+ const FILETIME* pctime,
+ const FILETIME* patime,
+ const FILETIME* pmtime);
+void __RPC_STUB IPropertyStorage_SetTimes_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertyStorage_SetClass_Proxy(
+ IPropertyStorage* This,
+ REFCLSID clsid);
+void __RPC_STUB IPropertyStorage_SetClass_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertyStorage_Stat_Proxy(
+ IPropertyStorage* This,
+ STATPROPSETSTG* statpsstg);
+void __RPC_STUB IPropertyStorage_Stat_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IPropertySetStorage IPropertySetStorage;
+typedef IPropertySetStorage *LPPROPERTYSETSTORAGE;
+
+/*****************************************************************************
+ * IPropertySetStorage interface
+ */
+DEFINE_GUID(IID_IPropertySetStorage, 0x0000013a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IPropertySetStorage: IUnknown {
+
+ virtual HRESULT CALLBACK Create(
+ REFFMTID rfmtid,
+ const CLSID* pclsid,
+ DWORD grfFlags,
+ DWORD grfMode,
+ IPropertyStorage** ppprstg) = 0;
+
+ virtual HRESULT CALLBACK Open(
+ REFFMTID rfmtid,
+ DWORD grfMode,
+ IPropertyStorage** ppprstg) = 0;
+
+ virtual HRESULT CALLBACK Delete(
+ REFFMTID rfmtid) = 0;
+
+ virtual HRESULT CALLBACK Enum(
+ IEnumSTATPROPSETSTG** ppenum) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IPropertySetStorageVtbl IPropertySetStorageVtbl;
+struct IPropertySetStorage {
+ const IPropertySetStorageVtbl* lpVtbl;
+};
+struct IPropertySetStorageVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IPropertySetStorage* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IPropertySetStorage* This);
+
+ ULONG (CALLBACK *Release)(
+ IPropertySetStorage* This);
+
+ /*** IPropertySetStorage methods ***/
+ HRESULT (CALLBACK *Create)(
+ IPropertySetStorage* This,
+ REFFMTID rfmtid,
+ const CLSID* pclsid,
+ DWORD grfFlags,
+ DWORD grfMode,
+ IPropertyStorage** ppprstg);
+
+ HRESULT (CALLBACK *Open)(
+ IPropertySetStorage* This,
+ REFFMTID rfmtid,
+ DWORD grfMode,
+ IPropertyStorage** ppprstg);
+
+ HRESULT (CALLBACK *Delete)(
+ IPropertySetStorage* This,
+ REFFMTID rfmtid);
+
+ HRESULT (CALLBACK *Enum)(
+ IPropertySetStorage* This,
+ IEnumSTATPROPSETSTG** ppenum);
+
+};
+
+#define IPropertySetStorage_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD5 (HRESULT,Create,REFFMTID,rfmtid,const CLSID*,pclsid,DWORD,grfFlags,DWORD,grfMode,IPropertyStorage**,ppprstg) \
+ ICOM_METHOD3 (HRESULT,Open,REFFMTID,rfmtid,DWORD,grfMode,IPropertyStorage**,ppprstg) \
+ ICOM_METHOD1 (HRESULT,Delete,REFFMTID,rfmtid) \
+ ICOM_METHOD1 (HRESULT,Enum,IEnumSTATPROPSETSTG**,ppenum)
+
+/*** IUnknown methods ***/
+#define IPropertySetStorage_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IPropertySetStorage_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IPropertySetStorage_Release(p) (p)->lpVtbl->Release(p)
+/*** IPropertySetStorage methods ***/
+#define IPropertySetStorage_Create(p,a,b,c,d,e) (p)->lpVtbl->Create(p,a,b,c,d,e)
+#define IPropertySetStorage_Open(p,a,b,c) (p)->lpVtbl->Open(p,a,b,c)
+#define IPropertySetStorage_Delete(p,a) (p)->lpVtbl->Delete(p,a)
+#define IPropertySetStorage_Enum(p,a) (p)->lpVtbl->Enum(p,a)
+
+#endif
+
+HRESULT CALLBACK IPropertySetStorage_Create_Proxy(
+ IPropertySetStorage* This,
+ REFFMTID rfmtid,
+ const CLSID* pclsid,
+ DWORD grfFlags,
+ DWORD grfMode,
+ IPropertyStorage** ppprstg);
+void __RPC_STUB IPropertySetStorage_Create_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertySetStorage_Open_Proxy(
+ IPropertySetStorage* This,
+ REFFMTID rfmtid,
+ DWORD grfMode,
+ IPropertyStorage** ppprstg);
+void __RPC_STUB IPropertySetStorage_Open_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertySetStorage_Delete_Proxy(
+ IPropertySetStorage* This,
+ REFFMTID rfmtid);
+void __RPC_STUB IPropertySetStorage_Delete_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IPropertySetStorage_Enum_Proxy(
+ IPropertySetStorage* This,
+ IEnumSTATPROPSETSTG** ppenum);
+void __RPC_STUB IPropertySetStorage_Enum_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
+
+/*****************************************************************************
+ * IEnumSTATPROPSTG interface
+ */
+DEFINE_GUID(IID_IEnumSTATPROPSTG, 0x00000139, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumSTATPROPSTG: IUnknown {
+
+ virtual HRESULT CALLBACK Next(
+ ULONG celt,
+ STATPROPSTG* rgelt,
+ ULONG* pceltFetched) = 0;
+
+ virtual HRESULT CALLBACK Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT CALLBACK Reset(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Clone(
+ IEnumSTATPROPSTG** ppenum) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IEnumSTATPROPSTGVtbl IEnumSTATPROPSTGVtbl;
+struct IEnumSTATPROPSTG {
+ const IEnumSTATPROPSTGVtbl* lpVtbl;
+};
+struct IEnumSTATPROPSTGVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IEnumSTATPROPSTG* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IEnumSTATPROPSTG* This);
+
+ ULONG (CALLBACK *Release)(
+ IEnumSTATPROPSTG* This);
+
+ /*** IEnumSTATPROPSTG methods ***/
+ HRESULT (CALLBACK *Next)(
+ IEnumSTATPROPSTG* This,
+ ULONG celt,
+ STATPROPSTG* rgelt,
+ ULONG* pceltFetched);
+
+ HRESULT (CALLBACK *Skip)(
+ IEnumSTATPROPSTG* This,
+ ULONG celt);
+
+ HRESULT (CALLBACK *Reset)(
+ IEnumSTATPROPSTG* This);
+
+ HRESULT (CALLBACK *Clone)(
+ IEnumSTATPROPSTG* This,
+ IEnumSTATPROPSTG** ppenum);
+
+};
+
+#define IEnumSTATPROPSTG_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATPROPSTG*,rgelt,ULONG*,pceltFetched) \
+ ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
+ ICOM_METHOD (HRESULT,Reset) \
+ ICOM_METHOD1 (HRESULT,Clone,IEnumSTATPROPSTG**,ppenum)
+
+/*** IUnknown methods ***/
+#define IEnumSTATPROPSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumSTATPROPSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumSTATPROPSTG_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumSTATPROPSTG methods ***/
+#define IEnumSTATPROPSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumSTATPROPSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+#define IEnumSTATPROPSTG_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumSTATPROPSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+
+#endif
+
+HRESULT CALLBACK IEnumSTATPROPSTG_RemoteNext_Proxy(
+ IEnumSTATPROPSTG* This,
+ ULONG celt,
+ STATPROPSTG* rgelt,
+ ULONG* pceltFetched);
+void __RPC_STUB IEnumSTATPROPSTG_RemoteNext_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATPROPSTG_Next_Proxy(
+ IEnumSTATPROPSTG* This,
+ ULONG celt,
+ STATPROPSTG* rgelt,
+ ULONG* pceltFetched);
+HRESULT __RPC_STUB IEnumSTATPROPSTG_Next_Stub(
+ IEnumSTATPROPSTG* This,
+ ULONG celt,
+ STATPROPSTG* rgelt,
+ ULONG* pceltFetched);
+HRESULT CALLBACK IEnumSTATPROPSTG_Skip_Proxy(
+ IEnumSTATPROPSTG* This,
+ ULONG celt);
+void __RPC_STUB IEnumSTATPROPSTG_Skip_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATPROPSTG_Reset_Proxy(
+ IEnumSTATPROPSTG* This);
+void __RPC_STUB IEnumSTATPROPSTG_Reset_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATPROPSTG_Clone_Proxy(
+ IEnumSTATPROPSTG* This,
+ IEnumSTATPROPSTG** ppenum);
+void __RPC_STUB IEnumSTATPROPSTG_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
+
+/*****************************************************************************
+ * IEnumSTATPROPSETSTG interface
+ */
+DEFINE_GUID(IID_IEnumSTATPROPSETSTG, 0x0000013b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IEnumSTATPROPSETSTG: IUnknown {
+
+ virtual HRESULT CALLBACK Next(
+ ULONG celt,
+ STATPROPSETSTG* rgelt,
+ ULONG* pceltFetched) = 0;
+
+ virtual HRESULT CALLBACK Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT CALLBACK Reset(
+ ) = 0;
+
+ virtual HRESULT CALLBACK Clone(
+ IEnumSTATPROPSETSTG** ppenum) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IEnumSTATPROPSETSTGVtbl IEnumSTATPROPSETSTGVtbl;
+struct IEnumSTATPROPSETSTG {
+ const IEnumSTATPROPSETSTGVtbl* lpVtbl;
+};
+struct IEnumSTATPROPSETSTGVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IEnumSTATPROPSETSTG* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IEnumSTATPROPSETSTG* This);
+
+ ULONG (CALLBACK *Release)(
+ IEnumSTATPROPSETSTG* This);
+
+ /*** IEnumSTATPROPSETSTG methods ***/
+ HRESULT (CALLBACK *Next)(
+ IEnumSTATPROPSETSTG* This,
+ ULONG celt,
+ STATPROPSETSTG* rgelt,
+ ULONG* pceltFetched);
+
+ HRESULT (CALLBACK *Skip)(
+ IEnumSTATPROPSETSTG* This,
+ ULONG celt);
+
+ HRESULT (CALLBACK *Reset)(
+ IEnumSTATPROPSETSTG* This);
+
+ HRESULT (CALLBACK *Clone)(
+ IEnumSTATPROPSETSTG* This,
+ IEnumSTATPROPSETSTG** ppenum);
+
+};
+
+#define IEnumSTATPROPSETSTG_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD3 (HRESULT,Next,ULONG,celt,STATPROPSETSTG*,rgelt,ULONG*,pceltFetched) \
+ ICOM_METHOD1 (HRESULT,Skip,ULONG,celt) \
+ ICOM_METHOD (HRESULT,Reset) \
+ ICOM_METHOD1 (HRESULT,Clone,IEnumSTATPROPSETSTG**,ppenum)
+
+/*** IUnknown methods ***/
+#define IEnumSTATPROPSETSTG_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumSTATPROPSETSTG_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumSTATPROPSETSTG_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumSTATPROPSETSTG methods ***/
+#define IEnumSTATPROPSETSTG_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumSTATPROPSETSTG_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+#define IEnumSTATPROPSETSTG_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumSTATPROPSETSTG_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+
+#endif
+
+HRESULT CALLBACK IEnumSTATPROPSETSTG_RemoteNext_Proxy(
+ IEnumSTATPROPSETSTG* This,
+ ULONG celt,
+ STATPROPSETSTG* rgelt,
+ ULONG* pceltFetched);
+void __RPC_STUB IEnumSTATPROPSETSTG_RemoteNext_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATPROPSETSTG_Next_Proxy(
+ IEnumSTATPROPSETSTG* This,
+ ULONG celt,
+ STATPROPSETSTG* rgelt,
+ ULONG* pceltFetched);
+HRESULT __RPC_STUB IEnumSTATPROPSETSTG_Next_Stub(
+ IEnumSTATPROPSETSTG* This,
+ ULONG celt,
+ STATPROPSETSTG* rgelt,
+ ULONG* pceltFetched);
+HRESULT CALLBACK IEnumSTATPROPSETSTG_Skip_Proxy(
+ IEnumSTATPROPSETSTG* This,
+ ULONG celt);
+void __RPC_STUB IEnumSTATPROPSETSTG_Skip_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATPROPSETSTG_Reset_Proxy(
+ IEnumSTATPROPSETSTG* This);
+void __RPC_STUB IEnumSTATPROPSETSTG_Reset_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumSTATPROPSETSTG_Clone_Proxy(
+ IEnumSTATPROPSETSTG* This,
+ IEnumSTATPROPSETSTG** ppenum);
+void __RPC_STUB IEnumSTATPROPSETSTG_Clone_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IClientSecurity IClientSecurity;
+typedef struct tagSOLE_AUTHENTICATION_SERVICE {
+ DWORD dwAuthnSvc;
+ DWORD dwAuthzSvc;
+ OLECHAR *pPrincipalName;
+ HRESULT hr;
+} SOLE_AUTHENTICATION_SERVICE;
+
+typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
+
+typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
+ EOAC_NONE = 0x0,
+ EOAC_MUTUAL_AUTH = 0x1,
+ EOAC_CLOAKING = 0x10,
+ EOAC_SECURE_REFS = 0x2,
+ EOAC_ACCESS_CONTROL = 0x4,
+ EOAC_APPID = 0x8
+} EOLE_AUTHENTICATION_CAPABILITIES;
+
+/*****************************************************************************
+ * IClientSecurity interface
+ */
+DEFINE_GUID(IID_IClientSecurity, 0x0000013d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IClientSecurity: IUnknown {
+
+ virtual HRESULT CALLBACK QueryBlanket(
+ IUnknown* pProxy,
+ DWORD* pAuthnSvc,
+ DWORD* pAuthzSvc,
+ OLECHAR** pServerPrincName,
+ DWORD* pAuthnLevel,
+ DWORD* pImpLevel,
+ void** pAuthInfo,
+ DWORD* pCapabilites) = 0;
+
+ virtual HRESULT CALLBACK SetBlanket(
+ IUnknown* pProxy,
+ DWORD AuthnSvc,
+ DWORD AuthzSvc,
+ OLECHAR* pServerPrincName,
+ DWORD AuthnLevel,
+ DWORD ImpLevel,
+ void* pAuthInfo,
+ DWORD Capabilities) = 0;
+
+ virtual HRESULT CALLBACK CopyProxy(
+ IUnknown* pProxy,
+ IUnknown** ppCopy) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IClientSecurityVtbl IClientSecurityVtbl;
+struct IClientSecurity {
+ const IClientSecurityVtbl* lpVtbl;
+};
+struct IClientSecurityVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IClientSecurity* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IClientSecurity* This);
+
+ ULONG (CALLBACK *Release)(
+ IClientSecurity* This);
+
+ /*** IClientSecurity methods ***/
+ HRESULT (CALLBACK *QueryBlanket)(
+ IClientSecurity* This,
+ IUnknown* pProxy,
+ DWORD* pAuthnSvc,
+ DWORD* pAuthzSvc,
+ OLECHAR** pServerPrincName,
+ DWORD* pAuthnLevel,
+ DWORD* pImpLevel,
+ void** pAuthInfo,
+ DWORD* pCapabilites);
+
+ HRESULT (CALLBACK *SetBlanket)(
+ IClientSecurity* This,
+ IUnknown* pProxy,
+ DWORD AuthnSvc,
+ DWORD AuthzSvc,
+ OLECHAR* pServerPrincName,
+ DWORD AuthnLevel,
+ DWORD ImpLevel,
+ void* pAuthInfo,
+ DWORD Capabilities);
+
+ HRESULT (CALLBACK *CopyProxy)(
+ IClientSecurity* This,
+ IUnknown* pProxy,
+ IUnknown** ppCopy);
+
+};
+
+#define IClientSecurity_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD8 (HRESULT,QueryBlanket,IUnknown*,pProxy,DWORD*,pAuthnSvc,DWORD*,pAuthzSvc,OLECHAR**,pServerPrincName,DWORD*,pAuthnLevel,DWORD*,pImpLevel,void**,pAuthInfo,DWORD*,pCapabilites) \
+ ICOM_METHOD8 (HRESULT,SetBlanket,IUnknown*,pProxy,DWORD,AuthnSvc,DWORD,AuthzSvc,OLECHAR*,pServerPrincName,DWORD,AuthnLevel,DWORD,ImpLevel,void*,pAuthInfo,DWORD,Capabilities) \
+ ICOM_METHOD2 (HRESULT,CopyProxy,IUnknown*,pProxy,IUnknown**,ppCopy)
+
+/*** IUnknown methods ***/
+#define IClientSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IClientSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IClientSecurity_Release(p) (p)->lpVtbl->Release(p)
+/*** IClientSecurity methods ***/
+#define IClientSecurity_QueryBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g,h)
+#define IClientSecurity_SetBlanket(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->SetBlanket(p,a,b,c,d,e,f,g,h)
+#define IClientSecurity_CopyProxy(p,a,b) (p)->lpVtbl->CopyProxy(p,a,b)
+
+#endif
+
+HRESULT CALLBACK IClientSecurity_QueryBlanket_Proxy(
+ IClientSecurity* This,
+ IUnknown* pProxy,
+ DWORD* pAuthnSvc,
+ DWORD* pAuthzSvc,
+ OLECHAR** pServerPrincName,
+ DWORD* pAuthnLevel,
+ DWORD* pImpLevel,
+ void** pAuthInfo,
+ DWORD* pCapabilites);
+void __RPC_STUB IClientSecurity_QueryBlanket_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IClientSecurity_SetBlanket_Proxy(
+ IClientSecurity* This,
+ IUnknown* pProxy,
+ DWORD AuthnSvc,
+ DWORD AuthzSvc,
+ OLECHAR* pServerPrincName,
+ DWORD AuthnLevel,
+ DWORD ImpLevel,
+ void* pAuthInfo,
+ DWORD Capabilities);
+void __RPC_STUB IClientSecurity_SetBlanket_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IClientSecurity_CopyProxy_Proxy(
+ IClientSecurity* This,
+ IUnknown* pProxy,
+ IUnknown** ppCopy);
+void __RPC_STUB IClientSecurity_CopyProxy_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IServerSecurity IServerSecurity;
+/*****************************************************************************
+ * IServerSecurity interface
+ */
+DEFINE_GUID(IID_IServerSecurity, 0x0000013e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IServerSecurity: IUnknown {
+
+ virtual HRESULT CALLBACK QueryBlanket(
+ DWORD* pAuthnSvc,
+ DWORD* pAuthzSvc,
+ OLECHAR** pServerPrincName,
+ DWORD* pAuthnLevel,
+ DWORD* pImpLevel,
+ void** pPrivs,
+ DWORD* pCapabilities) = 0;
+
+ virtual HRESULT CALLBACK ImpersonateClient(
+ ) = 0;
+
+ virtual HRESULT CALLBACK RevertToSelf(
+ ) = 0;
+
+ virtual BOOL CALLBACK IsImpersonating(
+ ) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IServerSecurityVtbl IServerSecurityVtbl;
+struct IServerSecurity {
+ const IServerSecurityVtbl* lpVtbl;
+};
+struct IServerSecurityVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IServerSecurity* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IServerSecurity* This);
+
+ ULONG (CALLBACK *Release)(
+ IServerSecurity* This);
+
+ /*** IServerSecurity methods ***/
+ HRESULT (CALLBACK *QueryBlanket)(
+ IServerSecurity* This,
+ DWORD* pAuthnSvc,
+ DWORD* pAuthzSvc,
+ OLECHAR** pServerPrincName,
+ DWORD* pAuthnLevel,
+ DWORD* pImpLevel,
+ void** pPrivs,
+ DWORD* pCapabilities);
+
+ HRESULT (CALLBACK *ImpersonateClient)(
+ IServerSecurity* This);
+
+ HRESULT (CALLBACK *RevertToSelf)(
+ IServerSecurity* This);
+
+ BOOL (CALLBACK *IsImpersonating)(
+ IServerSecurity* This);
+
+};
+
+#define IServerSecurity_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD7 (HRESULT,QueryBlanket,DWORD*,pAuthnSvc,DWORD*,pAuthzSvc,OLECHAR**,pServerPrincName,DWORD*,pAuthnLevel,DWORD*,pImpLevel,void**,pPrivs,DWORD*,pCapabilities) \
+ ICOM_METHOD (HRESULT,ImpersonateClient) \
+ ICOM_METHOD (HRESULT,RevertToSelf) \
+ ICOM_METHOD (BOOL,IsImpersonating)
+
+/*** IUnknown methods ***/
+#define IServerSecurity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IServerSecurity_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IServerSecurity_Release(p) (p)->lpVtbl->Release(p)
+/*** IServerSecurity methods ***/
+#define IServerSecurity_QueryBlanket(p,a,b,c,d,e,f,g) (p)->lpVtbl->QueryBlanket(p,a,b,c,d,e,f,g)
+#define IServerSecurity_ImpersonateClient(p) (p)->lpVtbl->ImpersonateClient(p)
+#define IServerSecurity_RevertToSelf(p) (p)->lpVtbl->RevertToSelf(p)
+#define IServerSecurity_IsImpersonating(p) (p)->lpVtbl->IsImpersonating(p)
+
+#endif
+
+HRESULT CALLBACK IServerSecurity_QueryBlanket_Proxy(
+ IServerSecurity* This,
+ DWORD* pAuthnSvc,
+ DWORD* pAuthzSvc,
+ OLECHAR** pServerPrincName,
+ DWORD* pAuthnLevel,
+ DWORD* pImpLevel,
+ void** pPrivs,
+ DWORD* pCapabilities);
+void __RPC_STUB IServerSecurity_QueryBlanket_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IServerSecurity_ImpersonateClient_Proxy(
+ IServerSecurity* This);
+void __RPC_STUB IServerSecurity_ImpersonateClient_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IServerSecurity_RevertToSelf_Proxy(
+ IServerSecurity* This);
+void __RPC_STUB IServerSecurity_RevertToSelf_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+BOOL CALLBACK IServerSecurity_IsImpersonating_Proxy(
+ IServerSecurity* This);
+void __RPC_STUB IServerSecurity_IsImpersonating_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef struct IAsyncSetup IAsyncSetup;
+/*****************************************************************************
+ * IAsyncSetup interface
+ */
+DEFINE_GUID(IID_IAsyncSetup, 0x00000024, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IAsyncSetup: IUnknown {
+
+ virtual HRESULT CALLBACK GetAsyncManager(
+ REFIID riid,
+ IUnknown* pOuter,
+ DWORD dwFlags,
+ IUnknown** ppInner,
+ IAsyncManager** ppAsyncMgr) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IAsyncSetupVtbl IAsyncSetupVtbl;
+struct IAsyncSetup {
+ const IAsyncSetupVtbl* lpVtbl;
+};
+struct IAsyncSetupVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IAsyncSetup* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IAsyncSetup* This);
+
+ ULONG (CALLBACK *Release)(
+ IAsyncSetup* This);
+
+ /*** IAsyncSetup methods ***/
+ HRESULT (CALLBACK *GetAsyncManager)(
+ IAsyncSetup* This,
+ REFIID riid,
+ IUnknown* pOuter,
+ DWORD dwFlags,
+ IUnknown** ppInner,
+ IAsyncManager** ppAsyncMgr);
+
+};
+
+#define IAsyncSetup_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD5 (HRESULT,GetAsyncManager,REFIID,riid,IUnknown*,pOuter,DWORD,dwFlags,IUnknown**,ppInner,IAsyncManager**,ppAsyncMgr)
+
+/*** IUnknown methods ***/
+#define IAsyncSetup_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IAsyncSetup_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IAsyncSetup_Release(p) (p)->lpVtbl->Release(p)
+/*** IAsyncSetup methods ***/
+#define IAsyncSetup_GetAsyncManager(p,a,b,c,d,e) (p)->lpVtbl->GetAsyncManager(p,a,b,c,d,e)
+
+#endif
+
+HRESULT CALLBACK IAsyncSetup_GetAsyncManager_Proxy(
+ IAsyncSetup* This,
+ REFIID riid,
+ IUnknown* pOuter,
+ DWORD dwFlags,
+ IUnknown** ppInner,
+ IAsyncManager** ppAsyncMgr);
+void __RPC_STUB IAsyncSetup_GetAsyncManager_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+typedef enum tagDCOM_CALL_STATE {
+ DCOM_NONE = 0,
+ DCOM_CALL_COMPLETE = 1,
+ DCOM_CALL_CANCELED = 2
+} DCOM_CALL_STATE;
+
+/*****************************************************************************
+ * IAsyncManager interface
+ */
+DEFINE_GUID(IID_IAsyncManager, 0x0000002a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IAsyncManager: IUnknown {
+
+ virtual HRESULT CALLBACK CompleteCall(
+ HRESULT Result) = 0;
+
+ virtual HRESULT CALLBACK GetCallContext(
+ REFIID riid,
+ void** pInterface) = 0;
+
+ virtual HRESULT CALLBACK GetState(
+ ULONG* pulStateFlags) = 0;
+
+} ICOM_COM_INTERFACE_ATTRIBUTE;
+#else
+typedef struct IAsyncManagerVtbl IAsyncManagerVtbl;
+struct IAsyncManager {
+ const IAsyncManagerVtbl* lpVtbl;
+};
+struct IAsyncManagerVtbl {
+ ICOM_MSVTABLE_COMPAT_FIELDS
+
+ /*** IUnknown methods ***/
+ HRESULT (CALLBACK *QueryInterface)(
+ IAsyncManager* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (CALLBACK *AddRef)(
+ IAsyncManager* This);
+
+ ULONG (CALLBACK *Release)(
+ IAsyncManager* This);
+
+ /*** IAsyncManager methods ***/
+ HRESULT (CALLBACK *CompleteCall)(
+ IAsyncManager* This,
+ HRESULT Result);
+
+ HRESULT (CALLBACK *GetCallContext)(
+ IAsyncManager* This,
+ REFIID riid,
+ void** pInterface);
+
+ HRESULT (CALLBACK *GetState)(
+ IAsyncManager* This,
+ ULONG* pulStateFlags);
+
+};
+
+#define IAsyncManager_IMETHODS \
+ IUnknown_IMETHODS \
+ ICOM_METHOD1 (HRESULT,CompleteCall,HRESULT,Result) \
+ ICOM_METHOD2 (HRESULT,GetCallContext,REFIID,riid,void**,pInterface) \
+ ICOM_METHOD1 (HRESULT,GetState,ULONG*,pulStateFlags)
+
+/*** IUnknown methods ***/
+#define IAsyncManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IAsyncManager_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IAsyncManager_Release(p) (p)->lpVtbl->Release(p)
+/*** IAsyncManager methods ***/
+#define IAsyncManager_CompleteCall(p,a) (p)->lpVtbl->CompleteCall(p,a)
+#define IAsyncManager_GetCallContext(p,a,b) (p)->lpVtbl->GetCallContext(p,a,b)
+#define IAsyncManager_GetState(p,a) (p)->lpVtbl->GetState(p,a)
+
+#endif
+
+HRESULT CALLBACK IAsyncManager_CompleteCall_Proxy(
+ IAsyncManager* This,
+ HRESULT Result);
+void __RPC_STUB IAsyncManager_CompleteCall_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IAsyncManager_GetCallContext_Proxy(
+ IAsyncManager* This,
+ REFIID riid,
+ void** pInterface);
+void __RPC_STUB IAsyncManager_GetCallContext_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IAsyncManager_GetState_Proxy(
+ IAsyncManager* This,
+ ULONG* pulStateFlags);
+void __RPC_STUB IAsyncManager_GetState_Stub(
+ struct IRpcStubBuffer* This,
+ struct IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __WIDL_OBJIDL_H */