windows-nt/Source/XPSP1/NT/shell/ext/cdfview/enum.h
2020-09-26 16:20:57 +08:00

74 lines
1.5 KiB
C++

//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\
//
// enum.h
//
// The definition of the cdf enumerator.
//
// History:
//
// 3/17/97 edwardp Created.
//
////////////////////////////////////////////////////////////////////////////////
//
// Check for previous includes of this file.
//
#ifndef _ENUM_H_
#define _ENUM_H_
//
// Class definition for the cdf enumerator class.
//
class CCdfEnum : public IEnumIDList
{
//
// Methods
//
public:
// Constructor
CCdfEnum(IXMLElementCollection* pIXMLElementCollection,
DWORD fEnumerateFlags, PCDFITEMIDLIST pcdfidlFolder);
// IUnknown
STDMETHODIMP QueryInterface(REFIID, void **);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// IEnumIDList
STDMETHODIMP Next(ULONG celt, LPITEMIDLIST *rgelt, ULONG *pceltFetched);
STDMETHODIMP Skip(ULONG celt);
STDMETHODIMP Reset(void);
STDMETHODIMP Clone(IEnumIDList **ppenum);
private:
// Destructor
~CCdfEnum(void);
// Helper methods
LPITEMIDLIST NextCdfidl(void);
HRESULT GetNextCdfElement(IXMLElement** ppIXMLElement,PULONG pnIndex);
inline BOOL IsCorrectType(IXMLElement* pIXMLElement);
//
// Member variables.
//
private:
ULONG m_cRef;
IXMLElementCollection* m_pIXMLElementCollection;
DWORD m_fEnumerate;
ULONG m_nCurrentItem;
PCDFITEMIDLIST m_pcdfidlFolder;
BOOL m_fReturnedFolderPidl;
};
#endif _ENUM_H_