home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / inole2 / chap02 / reuse / koalaa.h < prev    next >
C/C++ Source or Header  |  1995-05-03  |  2KB  |  73 lines

  1. /*
  2.  * KOALAA.H
  3.  *
  4.  * Definition of the Koala object using Aggregation, Chapter 2
  5.  * Included only from KOALAA.CPP.
  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.  
  14.  
  15. #ifndef _KOALAA_H_
  16. #define _KOALAA_H_
  17.  
  18.  
  19. class CImpIKoala_A;
  20. typedef CImpIKoala_A *PCImpIKoala_A;
  21.  
  22. class CKoalaA : public IUnknown
  23.     {
  24.     friend CImpIKoala_A;
  25.  
  26.     private:
  27.         DWORD           m_cRef;         //Object reference count
  28.  
  29.         PCImpIKoala_A   m_pImpIKoala;   //Interface implementation
  30.  
  31.         IUnknown       *m_pIUnknown;    //From Animal
  32.         IAnimal        *m_pIAnimal;     //From Animal, released
  33.  
  34.     public:
  35.         CKoalaA(void);
  36.         ~CKoalaA(void);
  37.  
  38.         BOOL Init(void);
  39.  
  40.         //IUnknown members, non-delegating
  41.         STDMETHODIMP         QueryInterface(REFIID, PPVOID);
  42.         STDMETHODIMP_(DWORD) AddRef(void);
  43.         STDMETHODIMP_(DWORD) Release(void);
  44.     };
  45.  
  46.  
  47. typedef CKoalaA *PCKoalaA;
  48.  
  49.  
  50. class CImpIKoala_A : public IKoala
  51.     {
  52.     private:
  53.         DWORD       m_cRef;         //For debugging
  54.         PCKoalaA    m_pObj;         //Back pointer
  55.  
  56.     public:
  57.         CImpIKoala_A(PCKoalaA);
  58.         ~CImpIKoala_A(void);
  59.  
  60.         //IUnknown members
  61.         STDMETHODIMP         QueryInterface(REFIID, PPVOID);
  62.         STDMETHODIMP_(DWORD) AddRef(void);
  63.         STDMETHODIMP_(DWORD) Release(void);
  64.  
  65.         //IKoala members
  66.         STDMETHODIMP ClimbEucalyptusTrees(void);
  67.         STDMETHODIMP PouchOpensDown(void);
  68.         STDMETHODIMP SleepForHoursAfterEating(void);
  69.     };
  70.  
  71.  
  72. #endif _KOALAA_H_
  73.