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_
|