ENUM.H

//******************************************************************************************* 
//
// Filename : Enum.h
//
//Definition of CEnumCabObjs
//
// Copyright 1994 - 1998 Microsoft Corporation. All rights reserved
//
//*******************************************************************************************

#ifndef _ENUM_H_
#define _ENUM_H_


#include "folder.h"

// Enumeration object for the CabFolder
class CEnumCabObjs : public IEnumIDList
{
public:
CEnumCabObjs(CCabFolder *pcf, DWORD uFlags) : m_iCount(0)
{
m_uFlags = uFlags;
m_pcfThis=pcf;
pcf->AddRef();
}
~CEnumCabObjs()
{
m_pcfThis->Release();
}

// *** IUnknown methods ***
STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj);
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();

// *** IEnumIDList methods ***
STDMETHODIMP Next(ULONG celt,
LPITEMIDLIST *rgelt,
ULONG *pceltFetched);
STDMETHODIMP Skip(ULONG celt);
STDMETHODIMP Reset();
STDMETHODIMP Clone(IEnumIDList **ppenum);

private:
CRefDll m_cRefDll;

CRefCount m_cRef;

CCabFolder *m_pcfThis;

UINT m_iCount;
DWORD m_uFlags;
} ;

#endif // _ENUM_H_