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 / interfac / ienumunk.h < prev    next >
C/C++ Source or Header  |  1996-05-21  |  1KB  |  49 lines

  1. /*
  2.  * IENUMUNK.H
  3.  *
  4.  * Definitions of a template IEnumUnknown enumerator.
  5.  *
  6.  * Copyright (c)1993-1995 Microsoft Corporation, All Right Reserved
  7.  *
  8.  * Kraig Brockschmidt, Microsoft
  9.  * Internet  :  kraigb@microsoft.com
  10.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  11.  */
  12.  
  13.  
  14. #ifndef _IENUMUNK_H_
  15. #define _IENUMUNK_H_
  16.  
  17. #include <inole.h>
  18.  
  19. class CEnumUnknown;
  20. typedef class CEnumUnknown *PCEnumUnknown;
  21.  
  22. class CEnumUnknown : public IEnumUnknown
  23.     {
  24.     private:
  25.         ULONG           m_cRef;     //Object reference count
  26.         LPUNKNOWN       m_pUnkRef;  //IUnknown for ref counting
  27.         ULONG           m_iCur;     //Current element
  28.         ULONG           m_cUnk;     //Number of unknowns in us
  29.         LPUNKNOWN      *m_prgUnk;   //Source of unknowns
  30.  
  31.     public:
  32.         CEnumUnknown(LPUNKNOWN, ULONG, LPUNKNOWN *);
  33.         ~CEnumUnknown(void);
  34.  
  35.         //IUnknown members that delegate to m_pUnkRef.
  36.         STDMETHODIMP         QueryInterface(REFIID, LPVOID *);
  37.         STDMETHODIMP_(ULONG) AddRef(void);
  38.         STDMETHODIMP_(ULONG) Release(void);
  39.  
  40.         //IEnumUnknown members
  41.         STDMETHODIMP Next(ULONG, LPUNKNOWN *, ULONG *);
  42.         STDMETHODIMP Skip(ULONG);
  43.         STDMETHODIMP Reset(void);
  44.         STDMETHODIMP Clone(IEnumUnknown **);
  45.     };
  46.  
  47.  
  48. #endif //_IENUMUNK_H_
  49.