ReactOS 0.4.16-dev-1097-g530d26a
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 328 of file CRecycleBin.cpp.

Constructor & Destructor Documentation

◆ CRecycleBinEnum()

CRecycleBinEnum::CRecycleBinEnum ( )

Definition at line 346 of file CRecycleBin.cpp.

347{
348}

◆ ~CRecycleBinEnum()

CRecycleBinEnum::~CRecycleBinEnum ( )

Definition at line 350 of file CRecycleBin.cpp.

351{
352}

Member Function Documentation

◆ CBEnumRecycleBin() [1/2]

BOOL CRecycleBinEnum::CBEnumRecycleBin ( IN HDELFILE  hDeletedFile)

Definition at line 374 of file CRecycleBin.cpp.

375{
376 LPITEMIDLIST pidl = NULL;
378 IRecycleBinFile *pRBF = IRecycleBinFileFromHDELFILE(hDeletedFile);
379 BOOL ret = SUCCEEDED(pRBF->GetInfo(&info));
380 if (ret)
381 {
382 pidl = CreateItem(info.RecycledFullPath.String, info.OriginalFullPath.String, info);
383 ret = pidl != NULL;
384 FreeRecycleBinString(&info.OriginalFullPath);
385 FreeRecycleBinString(&info.RecycledFullPath);
386 }
387 if (pidl)
388 {
389 ret = AddToEnumList(pidl);
390 if (!ret)
391 ILFree(pidl);
392 }
393 CloseRecycleBinHandle(hDeletedFile);
394 return ret;
395}
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 336 of file CRecycleBin.cpp.

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

◆ Initialize()

HRESULT WINAPI CRecycleBinEnum::Initialize ( DWORD  dwFlags)

Definition at line 354 of file CRecycleBin.cpp.

355{
357 if (dwFlags & SHCONTF_NONFOLDERS)
358 {
359 TRACE("Starting Enumeration\n");
360
361 if (!EnumerateRecycleBinW(szDrive, CBEnumRecycleBin, this))
362 {
363 WARN("Error: EnumerateCRecycleBinW failed\n");
364 return E_FAIL;
365 }
366 }
367 else
368 {
369 // do nothing
370 }
371 return S_OK;
372}
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: