RpcProxyMsg.h
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:1k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* RpcProxyMsg.h - VxDCOM RpcProxyMsg class definition */
  2. /* Copyright (c) 1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01f,26jul01,dbs  use IOrpcClientChannel interface
  7. 01e,05aug99,dbs  change to byte instead of char
  8. 01d,06jul99,aim  change from RpcBinding to RpcIfClient
  9. 01c,20may99,dbs  move NDR phase into streams
  10. 01b,17may99,dbs  fix DCE usage of class
  11. 01a,12may99,dbs  created
  12. */
  13. #ifndef __INCRpcProxyMsg_h
  14. #define __INCRpcProxyMsg_h
  15. #include "dcomProxy.h"
  16. #include "NdrStreams.h"
  17. #include "orpc.h"
  18. typedef CComPtr<IOrpcClientChannel> IOrpcClientChannelPtr;
  19. class RpcProxyMsg
  20.     {
  21.   public:
  22.     RpcProxyMsg (REFIID iid, RpcMode::Mode_t mode, ULONG opnum, void* pv);
  23.     ~RpcProxyMsg ();
  24.     NdrMarshalStream* marshalStreamGet ();
  25.     HRESULT SendReceive ();
  26.     NdrUnmarshalStream* unmarshalStreamGet ();
  27.     void interfaceInfoSet (REFIPID i, IOrpcClientChannel* c)
  28. { m_ipid = i; m_pChannel = c; }
  29.   private:
  30.     RpcMode::Mode_t m_mode; // mode flag (OBJECT or DCE)
  31.     NdrMarshalStream m_mshlStrm; // stream to marshal into
  32.     NdrUnmarshalStream m_unmshlStrm; // stream to unmarshal from
  33.     IUnknown* m_punkItfPtr; // used only for OBJECT mdoe
  34.     IID m_iid; // IID
  35.     IPID m_ipid; // IPID
  36.     ULONG m_opnum; // method number
  37.     byte* m_pReply; // received reply
  38.     IOrpcClientChannelPtr m_pChannel; // channel to remote server
  39.     };
  40. #endif