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 / interfac.h < prev    next >
C/C++ Source or Header  |  1995-05-03  |  1KB  |  52 lines

  1. /*
  2.  * INTERFAC.H
  3.  *
  4.  * Definition of IAnimal and IKoala used to demonstrate
  5.  * reusability mechanisms.
  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 _INTERFAC_H_
  16. #define _INTERFAC_H_
  17.  
  18.  
  19. DECLARE_INTERFACE_(IAnimal, IUnknown)
  20.     {
  21.     //IUnknown members
  22.     STDMETHOD(QueryInterface) (THIS_ REFIID, PPVOID) PURE;
  23.     STDMETHOD_(ULONG,AddRef)  (THIS) PURE;
  24.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  25.  
  26.     //IAnimal members
  27.     STDMETHOD(Eat)(THIS) PURE;
  28.     STDMETHOD(Sleep)(THIS) PURE;
  29.     STDMETHOD(Procreate)(THIS) PURE;
  30.     };
  31.  
  32. typedef IAnimal *PANIMAL;
  33.  
  34.  
  35. DECLARE_INTERFACE_(IKoala, IUnknown)
  36.     {
  37.     //IUnknown members
  38.     STDMETHOD(QueryInterface) (THIS_ REFIID, PPVOID) PURE;
  39.     STDMETHOD_(ULONG,AddRef)  (THIS) PURE;
  40.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  41.  
  42.     //IKoala members
  43.     STDMETHOD(ClimbEucalyptusTrees)(THIS) PURE;
  44.     STDMETHOD(PouchOpensDown)(THIS) PURE;
  45.     STDMETHOD(SleepForHoursAfterEating)(THIS) PURE;
  46.     };
  47.  
  48. typedef IKoala *PKOALA;
  49.  
  50.  
  51. #endif //_INTERFAC_H_
  52.