diff --git a/include/wine/obj_channel.h b/include/wine/obj_channel.h index e6372c45b40..da0c9ff3576 100644 --- a/include/wine/obj_channel.h +++ b/include/wine/obj_channel.h @@ -30,31 +30,158 @@ typedef struct IRpcStubBuffer IRpcStubBuffer,*LPRPCSTUBBUFFER; /***************************************************************************** * IChannelHook interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IChannelHook +#define IChannelHook_METHODS \ + 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); +#define IChannelHook_IMETHODS \ + IUnknown_IMETHODS \ + IChannelHook_METHODS +ICOM_DEFINE(IChannelHook,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IChannelHook_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IChannelHook_AddRef(p) ICOM_CALL (AddRef,p) +#define IChannelHook_Release(p) ICOM_CALL (Release,p) +/*** IChannelHook methods ***/ +#define IChannelHook_ClientGetSize(p,a,b,c) ICOM_CALL(ClientGetSize,p,a,b,c) +#define IChannelHook_ClientFillBuffer(p,a,b,c,d) ICOM_CALL(ClientFillBuffer,p,a,b,c,d) +#define IChannelHook_ClientNotify(p,a,b,c,d,e,f) ICOM_CALL(ClientNotify,p,a,b,c,d,e,f) +#define IChannelHook_ServerNotify(p,a,b,c,d,e) ICOM_CALL(ServerNotify,p,a,b,c,d,e) +#define IChannelHook_ServerGetSize(p,a,b,c,d) ICOM_CALL(ServerGetSize,p,a,b,c,d) +#define IChannelHook_ServerFillBuffer(p,a,b,c,d,e) ICOM_CALL(ServerFillBuffer,p,a,b,c,d,e) +#endif /***************************************************************************** * IPSFactoryBuffer interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IPSFactoryBuffer +#define IPSFactoryBuffer_METHODS \ + ICOM_METHOD4(HRESULT,CreateProxy, IUnknown*,pUnkOuter, REFIID,riid, IRpcProxyBuffer**,ppProxy, void**,ppv); \ + ICOM_METHOD3(HRESULT,CreateStub, REFIID,riid, IUnknown*,pUnkServer, IRpcStubBuffer**,ppStub); +#define IPSFactoryBuffer_IMETHODS \ + IUnknown_IMETHODS \ + IPSFactoryBuffer_METHODS +ICOM_DEFINE(IPSFactoryBuffer,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IPSFactoryBuffer_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IPSFactoryBuffer_AddRef(p) ICOM_CALL (AddRef,p) +#define IPSFactoryBuffer_Release(p) ICOM_CALL (Release,p) +/*** IPSFactoryBuffer methods ***/ +#define IPSFactoryBuffer_CreateProxy(p,a,b,c,d) ICOM_CALL4(CreateProxy,p,a,b,c,d) +#define IPSFactoryBuffer_CreateStub(p,a,b,c) ICOM_CALL3(CreateStub,p,a,b,c) +#endif /***************************************************************************** * IRpcChannelBuffer interface */ -/* FIXME: not implemented */ +typedef unsigned long RPCOLEDATAREP; + +typedef struct tagRPCOLEMESSAGE +{ + void* reserved1; + RPCOLEDATAREP dataRepresentation; + void* Buffer; + ULONG cbBuffer; + ULONG iMethod; + void* reserved2[5]; + ULONG rpcFlags; +} RPCOLEMESSAGE, *PRPCOLEMESSAGE; + +#define ICOM_INTERFACE IRpcChannelBuffer +#define IRpcChannelBuffer_METHODS \ + 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); +#define IRpcChannelBuffer_IMETHODS \ + IUnknown_IMETHODS \ + IRpcChannelBuffer_METHODS +ICOM_DEFINE(IRpcChannelBuffer,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IRpcChannelBuffer_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IRpcChannelBuffer_AddRef(p) ICOM_CALL (AddRef,p) +#define IRpcChannelBuffer_Release(p) ICOM_CALL (Release,p) +/*** IRpcChannelBuffer methods ***/ +#define IRpcChannelBuffer_GetBuffer(p,a,b) ICOM_CALL2(GetBuffer,p,a,b) +#define IRpcChannelBuffer_SendReceive(p,a,b) ICOM_CALL2(SendReceive,p,a,b) +#define IRpcChannelBuffer_FreeBuffer(p,a) ICOM_CALL1(FreeBuffer,p,a) +#define IRpcChannelBuffer_GetDestCtx(p,a,b) ICOM_CALL2(GetDestCtx,p,a,b) +#define IRpcChannelBuffer_IsConnected(p) ICOM_CALL (IsConnected,p) +#endif /***************************************************************************** * IRpcProxyBuffer interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IRpcProxyBuffer +#define IRpcProxyBuffer_METHODS \ + ICOM_METHOD1(HRESULT,Connect, IRpcChannelBuffer*,pRpcChannelBuffer); \ + ICOM_VMETHOD( Disconnect); +#define IRpcProxyBuffer_IMETHODS \ + IUnknown_IMETHODS \ + IRpcProxyBuffer_METHODS +ICOM_DEFINE(IRpcProxyBuffer,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IRpcProxyBuffer_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IRpcProxyBuffer_AddRef(p) ICOM_CALL (AddRef,p) +#define IRpcProxyBuffer_Release(p) ICOM_CALL (Release,p) +/*** IRpcProxyBuffer methods ***/ +#define IRpcProxyBuffer_Connect(p,a) ICOM_CALL2(Connect,p,a) +#define IRpcProxyBuffer_Disconnect(p) ICOM_CALL (Disconnect,p) +#endif /***************************************************************************** * IRpcStubBuffer interface */ -/* FIXME: not implemented */ +#define ICOM_INTERFACE IRpcStubBuffer +#define IRpcStubBuffer_METHODS \ + 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); +#define IRpcStubBuffer_IMETHODS \ + IUnknown_IMETHODS \ + IRpcStubBuffer_METHODS +ICOM_DEFINE(IRpcStubBuffer,IUnknown) +#undef ICOM_INTERFACE + +#ifdef ICOM_CINTERFACE +/*** IUnknown methods ***/ +#define IRpcStubBuffer_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) +#define IRpcStubBuffer_AddRef(p) ICOM_CALL (AddRef,p) +#define IRpcStubBuffer_Release(p) ICOM_CALL (Release,p) +/*** IRpcStubBuffer methods ***/ +#define IRpcStubBuffer_Connect(p,a) ICOM_CALL1(Connect,p,a) +#define IRpcStubBuffer_Disconnect(p) ICOM_CALL (Disconnect,p) +#define IRpcStubBuffer_Invoke(p,a,b) ICOM_CALL2(Invoke,p,a,b) +#define IRpcStubBuffer_IsIIDSupported(p,a) ICOM_CALL1(IsIIDSupported,p,a) +#define IRpcStubBuffer_CountRefs(p) ICOM_CALL (CountRefs,p) +#define IRpcStubBuffer_DebugServerQueryInterface(p,a) ICOM_CALL1(DebugServerQueryInterface,p,a) +#define IRpcStubBuffer_DebugServerRelease(p,a) ICOM_CALL1(DebugServerRelease,p,a) +#endif #endif /* __WINE_WINE_OBJ_CHANNEL_H */