57 lines
1.2 KiB
C++
57 lines
1.2 KiB
C++
//*******************************************************************************************
|
|
//
|
|
// Filename : Enum.h
|
|
//
|
|
// Definition of CEnumCabObjs
|
|
//
|
|
// Copyright (c) 1994 - 1996 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_
|