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.

49 lines
1.7 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1994.
  5. //
  6. // File: ichannel.cxx
  7. //
  8. // Contents: Maps the RpcChannel to RpcChannelBuffer
  9. // This is required to support custom interface marshalling.
  10. //
  11. // History: 24-Mar-94 JohannP Created
  12. //
  13. //--------------------------------------------------------------------------
  14. //
  15. // the new 32 bit channel interface - buffer based
  16. //
  17. class CRpcChannelBuffer : public IPpcChannelBuffer
  18. {
  19. public:
  20. HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid,void **ppvObject);
  21. ULONG STDMETHODCALLTYPE AddRef(void);
  22. ULONG STDMETHODCALLTYPE Release(void);
  23. HRESULT STDMETHODCALLTYPE GetBuffer(RPCOLEMESSAGE *pMessage,REFIID riid);
  24. HRESULT STDMETHODCALLTYPE SendReceive(RPCOLEMESSAGE *pMessage,ULONG *pStatus);
  25. HRESULT STDMETHODCALLTYPE FreeBuffer(RPCOLEMESSAGE *pMessage);
  26. HRESULT STDMETHODCALLTYPE GetDestCtx(DWORD *pdwDestContext,void **ppvDestContext);
  27. HRESULT STDMETHODCALLTYPE IsConnected( void);
  28. };
  29. // 16 bit channel interface - stream based
  30. // class see by the 16 bit implemantation
  31. // needs to be mapped to the RpcChannelBuffer
  32. class CRpcChannel : public IRpcChannel
  33. {
  34. HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid,void **ppvObject);
  35. ULONG STDMETHODCALLTYPE AddRef(void);
  36. ULONG STDMETHODCALLTYPE Release(void);
  37. STDMETHOD(GetStream)(REFIID iid, int iMethod, BOOL fSend,
  38. BOOL fNoWait, DWORD size, IStream FAR* FAR* ppIStream);
  39. STDMETHOD(Call)(IStream FAR* pIStream);
  40. STDMETHOD(GetDestCtx)(DWORD FAR* lpdwDestCtx, LPVOID FAR* lplpvDestCtx);
  41. STDMETHOD(IsConnected)(void);
  42. };