From 6ccda0d58285c56b98531d1146fcb644984fea5b Mon Sep 17 00:00:00 2001 From: Francois Gouget Date: Sat, 13 Feb 1999 12:25:03 +0000 Subject: [PATCH] Added the actual interface definitions to the obj_marshal.h skeleton file. Also defined the associated C API. --- include/objbase.h | 2 +- include/objidl.h | 2 +- include/wine/obj_marshal.h | 77 +++++++++++++++++++++++++++++++++++++- 3 files changed, 78 insertions(+), 3 deletions(-) diff --git a/include/objbase.h b/include/objbase.h index ea6ab6fba9e..3335a31a892 100644 --- a/include/objbase.h +++ b/include/objbase.h @@ -8,10 +8,10 @@ #include "wine/obj_misc.h" #include "wine/obj_channel.h" #include "wine/obj_clientserver.h" -#include "wine/obj_marshal.h" #include "wine/obj_storage.h" /* the following depend on obj_storage.h */ +#include "wine/obj_marshal.h" #include "wine/obj_moniker.h" #include "wine/obj_propertystorage.h" diff --git a/include/objidl.h b/include/objidl.h index a923c1eac58..260a1e6f4aa 100644 --- a/include/objidl.h +++ b/include/objidl.h @@ -8,8 +8,8 @@ #include "wine/obj_misc.h" #include "wine/obj_channel.h" #include "wine/obj_clientserver.h" -#include "wine/obj_marshal.h" #include "wine/obj_storage.h" +#include "wine/obj_marshal.h" /* the following depend on obj_storage.h */ #include "wine/obj_moniker.h" diff --git a/include/wine/obj_marshal.h b/include/wine/obj_marshal.h index 92fc243e8eb..f69b66d8dbe 100644 --- a/include/wine/obj_marshal.h +++ b/include/wine/obj_marshal.h @@ -22,13 +22,88 @@ typedef struct IStdMarshalInfo IStdMarshalInfo,*LPSTDMARSHALINFO; /***************************************************************************** * IMarshal interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IMarshal +#define IMarshal_METHODS \ + 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, IStream32*,pStm, REFIID,riid, void*,pv, DWORD,dwDestContext, void*,pvDestContext, DWORD,mshlflags); \ + ICOM_METHOD3(HRESULT,UnmarshalInterface, IStream32*,pStm, REFIID,riid, void**,ppv); \ + ICOM_METHOD1(HRESULT,ReleaseMarshalData, IStream32*,pStm); \ + ICOM_METHOD1(HRESULT,DisconnectObject, DWORD,dwReserved); +#define IMarshal_IMETHODS \ + ICOM_INHERITS(IMarshal,IUnknown) +ICOM_DEFINE(IMarshal,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IMarshal_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IMarshal_AddRef(p) ICOM_CALL (AddRef,p) +#define IMarshal_Release(p) ICOM_CALL (Release,p) +/*** IMarshal methods ***/ +#define IMarshal_GetUnmarshalClass(p,a,b,c,d,e,f) ICOM_CALL6(GetUnmarshalClass,p,a,b,c,d,e,f) +#define IMarshal_GetMarshalSizeMax(p,a,b,c,d,e,f) ICOM_CALL6(GetMarshalSizeMax,p,a,b,c,d,e,f) +#define IMarshal_MarshalInterface(p,a,b,c,d,e,f) ICOM_CALL6(MarshalInterface,p,a,b,c,d,e,f) +#define IMarshal_UnmarshalInterface(p,a,b,c) ICOM_CALL3(UnmarshalInterface,p,a,b,c) +#define IMarshal_ReleaseMarshalData(p,a) ICOM_CALL1(ReleaseMarshalData,p,a) +#define IMarshal_DisconnectObject(p,a) ICOM_CALL1(DisconnectObject,p,a) +#endif /***************************************************************************** * IStdMarshalInfo interface */ +#define ICOM_INTERFACE IStdMarshalInfo +#define IStdMarshalInfo_METHODS \ + ICOM_METHOD3(HRESULT,GetClassForHandler, DWORD,dwDestContext, void*,pvDestContext, CLSID*,pClsid); +#define IStdMarshalInfo_IMETHODS \ + ICOM_INHERITS(IStdMarshalInfo,IUnknown) +ICOM_DEFINE(IStdMarshalInfo,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IStdMarshalInfo_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IStdMarshalInfo_AddRef(p) ICOM_CALL (AddRef,p) +#define IStdMarshalInfo_Release(p) ICOM_CALL (Release,p) +/*** IStdMarshalInfo methods ***/ +#define IStdMarshalInfo_GetClassForHandler(p,a,b,c) ICOM_CALL3(GetClassForHandler,p,a,b,c) +#endif + + +/***************************************************************************** + * Additional marshalling API + */ + /* FIXME: not implemented */ +HRESULT WINAPI CoCreateFreeThreadedMarshaler(LPUNKNOWN punkOuter, LPUNKNOWN* ppunkMarshal); + +/* FIXME: not implemented */ +HRESULT WINAPI CoGetInterfaceAndReleaseStream(LPSTREAM32 pStm, REFIID iid, LPVOID* ppv); + +/* FIXME: not implemented */ +HRESULT WINAPI CoGetMarshalSizeMax(ULONG* pulSize, REFIID riid, LPUNKNOWN pUnk, DWORD dwDestContext, LPVOID pvDestContext, DWORD mshlflags); + +/* FIXME: not implemented */ +HRESULT WINAPI CoGetStandardMarshal(REFIID riid, LPUNKNOWN pUnk, DWORD dwDestContext, LPVOID pvDestContext, DWORD mshlflags, LPMARSHAL* ppMarshal); + +/* FIXME: not implemented */ +HRESULT WINAPI CoMarshalHresult(LPSTREAM32 pstm, HRESULT hresult); + +/* FIXME: not implemented */ +HRESULT WINAPI CoMarshalInterface(LPSTREAM32 pStm, REFIID riid, LPUNKNOWN pUnk, DWORD dwDestContext, LPVOID pvDestContext, DWORD mshlflags); + +/* FIXME: not implemented */ +HRESULT WINAPI CoMarshalInterThreadInterfaceInStream(REFIID riid, LPUNKNOWN pUnk, LPSTREAM32* ppStm); + +/* FIXME: not implemented */ +HRESULT WINAPI CoReleaseMarshalData(LPSTREAM32 pStm); + +/* FIXME: not implemented */ +HRESULT WINAPI CoUnmarshalHresult(LPSTREAM32 pstm, HRESULT* phresult); + +/* FIXME: not implemented */ +HRESULT WINAPI CoUnmarshalInterface(LPSTREAM32 pStm, REFIID riid, LPVOID* ppv); #endif /* __WINE_WINE_OBJ_MARSHAL_H */