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.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: ichannel.cxx
//
// Contents: Maps the RpcChannel to RpcChannelBuffer
// This is required to support custom interface marshalling.
//
// History: 24-Mar-94 JohannP Created
//
//--------------------------------------------------------------------------
//
// the new 32 bit channel interface - buffer based
//
class CRpcChannelBuffer : public IPpcChannelBuffer { public: HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid,void **ppvObject); ULONG STDMETHODCALLTYPE AddRef(void); ULONG STDMETHODCALLTYPE Release(void);
HRESULT STDMETHODCALLTYPE GetBuffer(RPCOLEMESSAGE *pMessage,REFIID riid); HRESULT STDMETHODCALLTYPE SendReceive(RPCOLEMESSAGE *pMessage,ULONG *pStatus); HRESULT STDMETHODCALLTYPE FreeBuffer(RPCOLEMESSAGE *pMessage); HRESULT STDMETHODCALLTYPE GetDestCtx(DWORD *pdwDestContext,void **ppvDestContext); HRESULT STDMETHODCALLTYPE IsConnected( void); };
// 16 bit channel interface - stream based
// class see by the 16 bit implemantation
// needs to be mapped to the RpcChannelBuffer
class CRpcChannel : public IRpcChannel { HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid,void **ppvObject); ULONG STDMETHODCALLTYPE AddRef(void); ULONG STDMETHODCALLTYPE Release(void);
STDMETHOD(GetStream)(REFIID iid, int iMethod, BOOL fSend, BOOL fNoWait, DWORD size, IStream FAR* FAR* ppIStream); STDMETHOD(Call)(IStream FAR* pIStream); STDMETHOD(GetDestCtx)(DWORD FAR* lpdwDestCtx, LPVOID FAR* lplpvDestCtx); STDMETHOD(IsConnected)(void); };
|