Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

202 lines
4.9 KiB

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);