enum.h
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 2k
Category:

Windows Kernel

Development Platform:

Visual C++

  1. //\//\//\//\//\//\//\//\//\//\//\//\//\//\//\//\//\//\//\//\
  2. //
  3. // enum.h 
  4. //
  5. //   The definition of the cdf enumerator.
  6. //
  7. //   History:
  8. //
  9. //       3/17/97  edwardp   Created.
  10. //
  11. ////////////////////////////////////////////////////////////////////////////////
  12. //
  13. // Check for previous includes of this file.
  14. //
  15. #ifndef _ENUM_H_
  16. #define _ENUM_H_
  17. //
  18. // Class definition for the cdf enumerator class.
  19. //
  20. class CCdfEnum : public IEnumIDList
  21. {
  22. //
  23. // Methods
  24. //
  25. public:
  26.     // Constructor
  27.     CCdfEnum(IXMLElementCollection* pIXMLElementCollection,
  28.              DWORD fEnumerateFlags, PCDFITEMIDLIST pcdfidlFolder);
  29.     // IUnknown
  30.     STDMETHODIMP         QueryInterface(REFIID, void **);
  31.     STDMETHODIMP_(ULONG) AddRef(void);
  32.     STDMETHODIMP_(ULONG) Release(void);
  33.     // IEnumIDList
  34.     STDMETHODIMP Next(ULONG celt, LPITEMIDLIST *rgelt, ULONG *pceltFetched);
  35.     STDMETHODIMP Skip(ULONG celt);
  36.     STDMETHODIMP Reset(void);
  37.     STDMETHODIMP Clone(IEnumIDList **ppenum);
  38.  
  39. private:
  40.     // Destructor
  41.     ~CCdfEnum(void);
  42.     // Helper methods
  43.     LPITEMIDLIST NextCdfidl(void);
  44.     HRESULT      GetNextCdfElement(IXMLElement** ppIXMLElement,PULONG pnIndex);
  45.     inline BOOL  IsCorrectType(IXMLElement* pIXMLElement);
  46. //
  47. // Member variables.
  48. //
  49. private:
  50.     ULONG                   m_cRef;
  51.     IXMLElementCollection*  m_pIXMLElementCollection;
  52.     DWORD                   m_fEnumerate;
  53.     ULONG                   m_nCurrentItem;
  54.     PCDFITEMIDLIST          m_pcdfidlFolder;
  55.     BOOL                    m_fReturnedFolderPidl;
  56. };
  57. #endif _ENUM_H_