ReactOS 0.4.16-dev-927-g467dec4
CRecycleBinEnum Class Reference
Inheritance diagram for CRecycleBinEnum:
Collaboration diagram for CRecycleBinEnum:

Public Member Functions

 CRecycleBinEnum ()
 
 ~CRecycleBinEnum ()
 
HRESULT WINAPI Initialize (DWORD dwFlags)
 
BOOL CBEnumRecycleBin (IN HDELFILE hDeletedFile)
 
- Public Member Functions inherited from CEnumIDListBase
 CEnumIDListBase ()
 
virtual ~CEnumIDListBase ()
 
BOOL AddToEnumList (LPITEMIDLIST pidl)
 
BOOL DeleteList ()
 
BOOL HasItemWithCLSID (LPITEMIDLIST pidl)
 
HRESULT AppendItemsFromEnumerator (IEnumIDList *pEnum)
 
template<class T >
BOOL HasItemWithCLSIDImpl (LPCITEMIDLIST pidl)
 
STDMETHOD() Next (ULONG celt, LPITEMIDLIST *rgelt, ULONG *pceltFetched) override
 
STDMETHOD() Skip (ULONG celt) override
 
STDMETHOD() Reset () override
 
STDMETHOD() Clone (IEnumIDList **ppenum) override
 
- 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 ()
 

Static Public Member Functions

static BOOL CALLBACK CBEnumRecycleBin (IN PVOID Context, IN HDELFILE hDeletedFile)
 
- 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)
 

Additional Inherited Members

- Public Types inherited from IEnumIDList
typedef IEnumIDListLPENUMIDLIST
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 
- Protected Attributes inherited from CEnumIDListBase
ENUMLISTmpFirst
 
ENUMLISTmpLast
 
ENUMLISTmpCurrent
 

Detailed Description

Definition at line 326 of file CRecycleBin.cpp.

Constructor & Destructor Documentation

◆ CRecycleBinEnum()

CRecycleBinEnum::CRecycleBinEnum ( )

Definition at line 344 of file CRecycleBin.cpp.

345{
346}

◆ ~CRecycleBinEnum()

CRecycleBinEnum::~CRecycleBinEnum ( )

Definition at line 348 of file CRecycleBin.cpp.

349{
350}

Member Function Documentation

◆ CBEnumRecycleBin() [1/2]

BOOL CRecycleBinEnum::CBEnumRecycleBin ( IN HDELFILE  hDeletedFile)

Definition at line 372 of file CRecycleBin.cpp.

373{
374 LPITEMIDLIST pidl = NULL;
376 IRecycleBinFile *pRBF = IRecycleBinFileFromHDELFILE(hDeletedFile);
377 BOOL ret = SUCCEEDED(pRBF->GetInfo(&info));
378 if (ret)
379 {
380 pidl = CreateItem(info.RecycledFullPath.String, info.OriginalFullPath.String, info);
381 ret = pidl != NULL;
382 FreeRecycleBinString(&info.OriginalFullPath);
383 FreeRecycleBinString(&info.RecycledFullPath);
384 }
385 if (pidl)
386 {
387 ret = AddToEnumList(pidl);
388 if (!ret)
389 ILFree(pidl);
390 }
391 CloseRecycleBinHandle(hDeletedFile);
392 return ret;
393}
static LPITEMIDLIST CreateItem(LPCWSTR pszTrash, LPCWSTR pszOrig, const DELETED_FILE_INFO &Details)
BOOL AddToEnumList(LPITEMIDLIST pidl)
#define NULL
Definition: types.h:112
BOOL WINAPI CloseRecycleBinHandle(IN HDELFILE hDeletedFile)
Definition: recyclebin.c:12
unsigned int BOOL
Definition: ntddk_ex.h:94
#define SUCCEEDED(hr)
Definition: intsafe.h:50
void WINAPI ILFree(LPITEMIDLIST pidl)
Definition: pidl.c:1044
static void FreeRecycleBinString(PRECYCLEBINSTRING pRBS)
Definition: recyclebin.h:55
#define IRecycleBinFileFromHDELFILE(hDF)
Definition: recyclebin.h:50
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
int ret

Referenced by CBEnumRecycleBin(), and Initialize().

◆ CBEnumRecycleBin() [2/2]

static BOOL CALLBACK CRecycleBinEnum::CBEnumRecycleBin ( IN PVOID  Context,
IN HDELFILE  hDeletedFile 
)
inlinestatic

Definition at line 334 of file CRecycleBin.cpp.

335 {
336 return static_cast<CRecycleBinEnum*>(Context)->CBEnumRecycleBin(hDeletedFile);
337 }
BOOL CBEnumRecycleBin(IN HDELFILE hDeletedFile)

◆ Initialize()

HRESULT WINAPI CRecycleBinEnum::Initialize ( DWORD  dwFlags)

Definition at line 352 of file CRecycleBin.cpp.

353{
355 if (dwFlags & SHCONTF_NONFOLDERS)
356 {
357 TRACE("Starting Enumeration\n");
358
359 if (!EnumerateRecycleBinW(szDrive, CBEnumRecycleBin, this))
360 {
361 WARN("Error: EnumerateCRecycleBinW failed\n");
362 return E_FAIL;
363 }
364 }
365 else
366 {
367 // do nothing
368 }
369 return S_OK;
370}
static LPCWSTR GetGlobalRecycleBinPath()
#define WARN(fmt,...)
Definition: precomp.h:61
#define E_FAIL
Definition: ddrawi.h:102
BOOL WINAPI EnumerateRecycleBinW(IN LPCWSTR pszRoot OPTIONAL, IN PENUMERATE_RECYCLEBIN_CALLBACK pFnCallback, IN PVOID Context OPTIONAL)
Definition: recyclebin.c:205
#define S_OK
Definition: intsafe.h:52
#define TRACE(s)
Definition: solgame.cpp:4
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

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