ReactOS 0.4.17-dev-470-gf9e3448
CEnumZipContents Class Reference
Inheritance diagram for CEnumZipContents:
Collaboration diagram for CEnumZipContents:

Public Member Functions

 CEnumZipContents ()
 
STDMETHODIMP Initialize (IZip *zip, DWORD flags, PCWSTR prefix)
 
STDMETHODIMP Next (ULONG celt, LPITEMIDLIST *rgelt, ULONG *pceltFetched)
 
STDMETHODIMP Skip (ULONG celt)
 
STDMETHODIMP Reset ()
 
STDMETHODIMP Clone (IEnumIDList **ppenum)
 
- Public Member Functions inherited from ATL::CComObjectRootEx< CComMultiThreadModelNoCS >
 ~CComObjectRootEx ()
 
ULONG InternalAddRef ()
 
ULONG InternalRelease ()
 
void Lock ()
 
void Unlock ()
 
HRESULT _AtlInitialConstruct ()
 
- Public Member Functions inherited from ATL::CComObjectRootBase
 CComObjectRootBase ()
 
 ~CComObjectRootBase ()
 
void SetVoid (void *)
 
HRESULT _AtlFinalConstruct ()
 
HRESULT FinalConstruct ()
 
void InternalFinalConstructAddRef ()
 
void InternalFinalConstructRelease ()
 
void FinalRelease ()
 
- Public Member Functions inherited from IEnumIDList
HRESULT Next ([in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] PITEMID_CHILD *rgelt, [out] ULONG *pceltFetched)
 
HRESULT Skip ([in] ULONG celt)
 
HRESULT Reset ()
 
HRESULT Clone ([out] IEnumIDList **ppenum)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 

Private Attributes

CZipEnumerator mEnumerator
 
DWORD dwFlags
 
CStringW m_Prefix
 

Additional Inherited Members

- Public Types inherited from IEnumIDList
typedef IEnumIDListLPENUMIDLIST
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Static Public Member Functions inherited from ATL::CComObjectRootBase
static void WINAPI ObjectMain (bool)
 
static const struct _ATL_CATMAP_ENTRYGetCategoryMap ()
 
static HRESULT WINAPI InternalQueryInterface (void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject)
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 

Detailed Description

Definition at line 37 of file CEnumZipContents.cpp.

Constructor & Destructor Documentation

◆ CEnumZipContents()

CEnumZipContents::CEnumZipContents ( )
inline

Definition at line 46 of file CEnumZipContents.cpp.

47 :dwFlags(0)
48 {
49 }

Member Function Documentation

◆ Clone()

STDMETHODIMP CEnumZipContents::Clone ( IEnumIDList **  ppenum)
inline

Implements IEnumIDList.

Definition at line 118 of file CEnumZipContents.cpp.

119 {
120 return E_NOTIMPL;
121 }
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ Initialize()

STDMETHODIMP CEnumZipContents::Initialize ( IZip zip,
DWORD  flags,
PCWSTR  prefix 
)
inline

Definition at line 51 of file CEnumZipContents.cpp.

52 {
53 dwFlags = flags;
55 if (mEnumerator.Initialize(zip))
56 return S_OK;
57 return E_FAIL;
58 }
CZipEnumerator mEnumerator
#define E_FAIL
Definition: ddrawi.h:102
GLbitfield flags
Definition: glext.h:7161
#define S_OK
Definition: intsafe.h:52
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
BOOL Initialize(IZip *zip)
Character const *const prefix
Definition: tempnam.cpp:195

◆ Next()

STDMETHODIMP CEnumZipContents::Next ( ULONG  celt,
LPITEMIDLIST rgelt,
ULONG pceltFetched 
)
inline

Definition at line 61 of file CEnumZipContents.cpp.

62 {
63 if (!rgelt || (!pceltFetched && celt != 1))
64 return E_POINTER;
65
66 HRESULT hr = S_OK;
67 ULONG fetched = 0;
70 bool dir;
72
73 while (fetched < celt)
74 {
76 {
78 continue;
79
81 if (!item)
82 {
83 hr = fetched ? S_FALSE : E_OUTOFMEMORY;
84 break;
85 }
86 rgelt[fetched++] = item;
87 }
88 else
89 {
90 hr = S_FALSE;
91 break;
92 }
93 }
94
95 if (pceltFetched)
96 *pceltFetched = fetched;
97 return hr;
98 }
static bool IncludeInEnumIDList(SHCONTF contf, SFGAOF att)
unsigned int dir
Definition: maze.c:112
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
HRESULT hr
Definition: delayimp.cpp:582
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
BOOL NextUnique(PCWSTR prefix, CStringW &name, bool &folder, unz_file_info64 &info)
Definition: name.c:39
uint32_t ULONG
Definition: typedefs.h:59
#define S_FALSE
Definition: winerror.h:3451
#define E_POINTER
Definition: winerror.h:3480
LPITEMIDLIST _ILCreateZipItem(ZipPidlType Type, PCWSTR lpString, unz_file_info64 &info)
Definition: zippidl.cpp:11
@ ZIP_PIDL_FILE
Definition: zippidl.hpp:12
@ ZIP_PIDL_DIRECTORY
Definition: zippidl.hpp:11

◆ Reset()

STDMETHODIMP CEnumZipContents::Reset ( )
inline

Implements IEnumIDList.

Definition at line 112 of file CEnumZipContents.cpp.

113 {
114 if (mEnumerator.Reset())
115 return S_OK;
116 return E_FAIL;
117 }

◆ Skip()

STDMETHODIMP CEnumZipContents::Skip ( ULONG  celt)
inline

Implements IEnumIDList.

Definition at line 99 of file CEnumZipContents.cpp.

100 {
102 bool dir;
104 while (celt--)
105 {
107 return E_FAIL;
108 ;
109 }
110 return S_OK;
111 }

Member Data Documentation

◆ dwFlags

DWORD CEnumZipContents::dwFlags
private

Definition at line 43 of file CEnumZipContents.cpp.

◆ m_Prefix

CStringW CEnumZipContents::m_Prefix
private

Definition at line 44 of file CEnumZipContents.cpp.

Referenced by Initialize(), Next(), and Skip().

◆ mEnumerator

CZipEnumerator CEnumZipContents::mEnumerator
private

Definition at line 42 of file CEnumZipContents.cpp.

Referenced by Initialize(), Next(), Reset(), and Skip().


The documentation for this class was generated from the following file: