OBJECT3.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * OBJECT3.H
  3.  *
  4.  * Definition of the CObject1 class that uses mutliple
  5.  * inheritance to provide ISampleOne and ISampleTwo.
  6.  *
  7.  * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
  8.  *
  9.  * Kraig Brockschmidt, Microsoft
  10.  * Internet  :  kraigb@microsoft.com
  11.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  12.  */
  13. #ifndef _OBJECT3_H_
  14. #define _OBJECT3_H_
  15. //Creation function
  16. BOOL CreateObject3(IUnknown **);
  17. /*
  18.  * The object we want to provide in OLE supports the IUnknown,
  19.  * ISampleOne, and ISampleTwo interfaces.
  20.  *
  21.  * The C++ class, CObject3, implements these interfaces through
  22.  * multiple inheritance, so the implementation of all IUnknown
  23.  * members is shared.  The trick to this implementation is that
  24.  * we have to use explicit typecasts in the implementation of
  25.  * QueryInterface in order to create the right vtables for each
  26.  * interface.  See OBJECT3.CPP.
  27.  */
  28. //The C++ class that manages the actual object.
  29. class CObject3 : public ISampleOne, public ISampleTwo
  30.     {
  31.     private:
  32.         DWORD           m_cRef;         //Object reference count
  33.     public:
  34.         CObject3(void);
  35.         ~CObject3(void);
  36.         //Shared IUnknown members
  37.         STDMETHODIMP         QueryInterface(REFIID, PPVOID);
  38.         STDMETHODIMP_(DWORD) AddRef(void);
  39.         STDMETHODIMP_(DWORD) Release(void);
  40.         //ISampleOne members
  41.         STDMETHODIMP         GetMessage(LPTSTR, UINT);
  42.         //ISampleTwo members
  43.         STDMETHODIMP         GetString(LPTSTR, UINT);
  44.     };
  45. typedef CObject3 *PCObject3;
  46. #endif _OBJECT3_H_