13 const SHCONTF both = SHCONTF_FOLDERS | SHCONTF_NONFOLDERS;
15 const bool isfile = (att & (SFGAO_STREAM | SFGAO_FOLDER)) != SFGAO_FOLDER;
16 if ((contf & both) != both && !(contf & SHCONTF_STORAGE))
18 if (isfile && (contf & SHCONTF_FOLDERS))
20 if ((att & SFGAO_FOLDER) && (contf & SHCONTF_NONFOLDERS))
23 if ((att & SFGAO_HIDDEN) && !(contf & (SHCONTF_INCLUDEHIDDEN | SHCONTF_STORAGE)))
25 if ((att & superbits) > SFGAO_HIDDEN && !(contf & (SHCONTF_INCLUDESUPERHIDDEN | SHCONTF_STORAGE)))
32 SFGAOF att =
dir ? SFGAO_FOLDER : SFGAO_STREAM;
63 if (!rgelt || (!pceltFetched && celt != 1))
73 while (fetched < celt)
86 rgelt[fetched++] =
item;
96 *pceltFetched = fetched;
136 return ShellObjectCreatorInit<CEnumZipContents>(zip,
flags,
prefix,
riid, ppvOut);
HRESULT _CEnumZipContents_CreateInstance(IZip *zip, DWORD flags, PCWSTR prefix, REFIID riid, LPVOID *ppvOut)
static bool IncludeInEnumIDList(SHCONTF contf, SFGAOF att)
STDMETHODIMP Next(ULONG celt, LPITEMIDLIST *rgelt, ULONG *pceltFetched)
STDMETHODIMP Skip(ULONG celt)
STDMETHODIMP Initialize(IZip *zip, DWORD flags, PCWSTR prefix)
CZipEnumerator mEnumerator
STDMETHODIMP Clone(IEnumIDList **ppenum)
static IShellFolder IShellItem **static IBindCtx LPITEMIDLIST SFGAOF
#define COM_INTERFACE_ENTRY_IID(iid, x)
#define DECLARE_PROTECT_FINAL_CONSTRUCT()
#define DECLARE_NOT_AGGREGATABLE(x)
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
ITEMIDLIST UNALIGNED * LPITEMIDLIST
BOOL NextUnique(PCWSTR prefix, CStringW &name, bool &folder, unz_file_info64 &info)
BOOL Initialize(IZip *zip)
Character const *const prefix
LPITEMIDLIST _ILCreateZipItem(ZipPidlType Type, PCWSTR lpString, unz_file_info64 &info)