203 lines
4.9 KiB
C
203 lines
4.9 KiB
C
typedef unsigned long RPCOLEDATAREP;
|
|
|
|
typedef enum tagRPCFLG
|
|
{
|
|
RPCFLG_ASYNCHRONOUS = 1073741824,
|
|
RPCFLG_INPUT_SYNCHRONOUS = 536870912
|
|
}
|
|
RPCFLG;
|
|
|
|
typedef struct tagRPCOLEMESSAGE
|
|
{
|
|
void *reserved1;
|
|
RPCOLEDATAREP dataRepresentation;
|
|
void *Buffer;
|
|
ULONG cbBuffer;
|
|
ULONG iMethod;
|
|
DWORD reserved2[5];
|
|
ULONG rpcFlags;
|
|
}
|
|
RPCOLEMESSAGE;
|
|
|
|
typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
|
|
|
|
interface IRpcChannelBuffer : public IUnknown
|
|
{
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetBuffer
|
|
(
|
|
RPCOLEMESSAGE *pMessage,
|
|
REFIID riid
|
|
) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE SendReceive
|
|
(
|
|
RPCOLEMESSAGE *pMessage,
|
|
ULONG *pStatus
|
|
) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE FreeBuffer
|
|
(
|
|
RPCOLEMESSAGE *pMessage
|
|
) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE GetDestCtx
|
|
(
|
|
DWORD *pdwDestContext,
|
|
void **ppvDestContext
|
|
) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE IsConnected
|
|
(
|
|
void
|
|
) = 0;
|
|
};
|
|
|
|
interface IRpcProxyBuffer : public IUnknown
|
|
{
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Connect
|
|
(
|
|
IRpcChannelBuffer *pRpcChannelBuffer
|
|
) = 0;
|
|
|
|
virtual void STDMETHODCALLTYPE Disconnect
|
|
(
|
|
void
|
|
) = 0;
|
|
|
|
};
|
|
|
|
interface IRpcStubBuffer : public IUnknown
|
|
{
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Connect
|
|
(
|
|
IUnknown *pUnkServer
|
|
) = 0;
|
|
|
|
virtual void STDMETHODCALLTYPE Disconnect
|
|
(
|
|
void
|
|
) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE Invoke
|
|
(
|
|
RPCOLEMESSAGE *_prpcmsg,
|
|
IRpcChannelBuffer *_pRpcChannelBuffer
|
|
) = 0;
|
|
|
|
virtual IRpcStubBuffer FAR *STDMETHODCALLTYPE IsIIDSupported
|
|
(
|
|
REFIID riid
|
|
) = 0;
|
|
|
|
virtual ULONG STDMETHODCALLTYPE CountRefs
|
|
(
|
|
void
|
|
) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE DebugServerQueryInterface
|
|
(
|
|
IUnknown **ppunk
|
|
) = 0;
|
|
|
|
virtual void STDMETHODCALLTYPE DebugServerRelease
|
|
(
|
|
void *pv
|
|
) = 0;
|
|
|
|
};
|
|
|
|
interface IPSFactoryBuffer : public IUnknown
|
|
{
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE CreateProxy
|
|
(
|
|
IUnknown *pUnkOuter,
|
|
REFIID riid,
|
|
IRpcProxyBuffer **ppProxy,
|
|
void **ppv
|
|
) = 0;
|
|
|
|
virtual HRESULT STDMETHODCALLTYPE CreateStub
|
|
(
|
|
REFIID riid,
|
|
IUnknown *pUnkServer,
|
|
IRpcStubBuffer **ppStub
|
|
) = 0;
|
|
};
|
|
|
|
interface IRpcChannel : public IUnknown
|
|
{
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
STDMETHOD(GetStream)(REFIID iid, int iMethod, BOOL fSend,
|
|
BOOL fNoWait, DWORD size, IStream FAR* FAR* ppIStream) = 0;
|
|
STDMETHOD(Call)(IStream FAR* pIStream) = 0;
|
|
STDMETHOD(GetDestCtx)(DWORD FAR* lpdwDestCtx, LPVOID FAR* lplpvDestCtx) = 0;
|
|
STDMETHOD(IsConnected)(void) = 0;
|
|
};
|
|
|
|
|
|
interface IRpcProxy : public IUnknown
|
|
{
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
STDMETHOD(Connect)(IRpcChannel FAR* pRpcChannel) = 0;
|
|
STDMETHOD_(void, Disconnect)(void) = 0;
|
|
};
|
|
|
|
|
|
interface IRpcStub : public IUnknown
|
|
{
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
STDMETHOD(Connect)(IUnknown FAR* pUnk) = 0;
|
|
STDMETHOD_(void, Disconnect)(void) = 0;
|
|
STDMETHOD(Invoke)(REFIID iid, int iMethod, IStream FAR* pIStream,
|
|
DWORD dwDestCtx, LPVOID lpvDestCtx) = 0;
|
|
STDMETHOD_(BOOL, IsIIDSupported)(REFIID iid) = 0;
|
|
STDMETHOD_(ULONG, CountRefs)(void) = 0;
|
|
};
|
|
|
|
interface IPSFactory : public IUnknown
|
|
{
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
STDMETHOD(CreateProxy)(IUnknown FAR* pUnkOuter, REFIID riid,
|
|
IRpcProxy FAR* FAR* ppProxy, void FAR* FAR* ppv) = 0;
|
|
STDMETHOD(CreateStub)(REFIID riid, IUnknown FAR* pUnkServer,
|
|
IRpcStub FAR* FAR* ppStub) = 0;
|
|
};
|
|
|
|
STDAPI ReadOleStg
|
|
(LPSTORAGE pstg, DWORD FAR* pdwFlags, DWORD FAR* pdwOptUpdate,
|
|
DWORD FAR* pdwReserved, LPMONIKER FAR* ppmk, LPSTREAM FAR* ppstmOut);
|
|
STDAPI WriteOleStg
|
|
(LPSTORAGE pstg, IOleObject FAR* pOleObj,
|
|
DWORD dwReserved, LPSTREAM FAR* ppstmOut);
|
|
|
|
STDAPI CoGetState(IUnknown FAR * FAR *ppunk);
|
|
STDAPI CoSetState(IUnknown FAR *punk);
|