home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / oleaut / browseh / mydisp.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-23  |  1.5 KB  |  56 lines

  1. class FAR CMyDispatch : public IDispatch
  2. {
  3. public:
  4.     /* IUnknown methods */
  5.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj);
  6.     STDMETHOD_(ULONG, AddRef)(THIS);
  7.     STDMETHOD_(ULONG, Release)(THIS);
  8.  
  9.     /* IDispatch methods */
  10.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo);
  11.  
  12.     STDMETHOD(GetTypeInfo)(
  13.       THIS_
  14.       UINT itinfo,
  15.       LCID lcid,
  16.       ITypeInfo FAR* FAR* pptinfo);
  17.  
  18.     STDMETHOD(GetIDsOfNames)(
  19.       THIS_
  20.       REFIID riid,
  21.       OLECHAR FAR* FAR* rgszNames,
  22.       UINT cNames,
  23.       LCID lcid,
  24.       DISPID FAR* rgdispid);
  25.  
  26.     STDMETHOD(Invoke)(
  27.       THIS_
  28.       DISPID dispidMember,
  29.       REFIID riid,
  30.       LCID lcid,
  31.       WORD wFlags,
  32.       DISPPARAMS FAR* pdispparams,
  33.       VARIANT FAR* pvarResult,
  34.       EXCEPINFO FAR* pexcepinfo,
  35.       UINT FAR* puArgErr);
  36.       
  37.       CMyDispatch();
  38.       virtual ~CMyDispatch();
  39.       
  40.     /* CMyDispatch methods */
  41.     STDMETHOD(LoadTypeInfo)(REFCLSID clsid);
  42.     STDMETHOD_(void, RaiseException)(int nID);
  43.     STDMETHOD_(REFCLSID, GetInterfaceID)() PURE;
  44.       
  45. private:
  46.     LPTYPEINFO m_ptinfo;         // Type information of interface.
  47.     ULONG m_cRef;                // Reference count.
  48.     EXCEPINFO m_excepinfo;       // Information to raise an exception on error.
  49.     BOOL m_bRaiseException;      // Properties and methods use this to signal an exception to be raised.
  50.  
  51. #ifdef _DEBUG 
  52. public:
  53.     TCHAR m_szClassName[100]; 
  54. #endif  
  55. };  
  56.