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

VxWorks

开发平台:

C/C++

  1. /* RpcDispatchTable.h -- VxDCOM RPC dispatch table */
  2. /* Copyright (c) 1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,20sep00,nel  Add changes made since T2 branch.
  7. 01b,27jul99,drm  Returning CLSID from interfaceInfoGet().
  8. 01a,27may99,aim  created
  9. */
  10. #ifndef __INCRpcDispatchTable_h
  11. #define __INCRpcDispatchTable_h
  12. #include "dcomProxy.h"
  13. //////////////////////////////////////////////////////////////////////////
  14. //
  15. // RpcDispatchTable -- defines an abstract base class that all types
  16. // of dispatch table must implement. It defines 2 methods, which are
  17. // pure virtual and must be over-ridden.
  18. //
  19. // supportsInterface() returns a 'bool' indicating whether the
  20. // dispatch table supports the indicated interface (designated by the
  21. // given IID) or not.
  22. //
  23. // interfaceInfoGet() takes an IPID and a method-number, and returns
  24. // the information required to dispatch that method of that interface,
  25. // namely the stub-function pointer and the IUnknown-ptr of the
  26. // interface. If the interface is a DCE interface then it may
  27. // legitimately return NULL as the IUnknown-ptr, and may ignore the
  28. // IPID value, instead relying on the most-recent IID received via
  29. // supportsInterface() to determine the interface identity.
  30. //
  31. class RpcDispatchTable
  32.     {
  33.   public:
  34.     RpcDispatchTable () {}
  35.     virtual ~RpcDispatchTable () {}
  36.     virtual bool    supportsInterface (REFIID) =0;
  37.     virtual HRESULT interfaceInfoGet
  38. (
  39. REFIID      riid,
  40. REFIPID ipid,
  41. ULONG methodNum,
  42. IUnknown** ppUnk,
  43. PFN_ORPC_STUB* ppfnStubFunc,
  44.         CLSID &         classid
  45. ) =0;
  46.     
  47.   private:
  48.     // unsupported
  49.     RpcDispatchTable (const RpcDispatchTable& other);
  50.     RpcDispatchTable& operator= (const RpcDispatchTable& rhs);
  51.     };
  52. #endif // __INCRpcDispatchTable_h