ReactOS 0.4.16-dev-930-gcc8ec38
CRecycleBinCleaner Struct Reference
Inheritance diagram for CRecycleBinCleaner:
Collaboration diagram for CRecycleBinCleaner:

Public Member Functions

void OutputResourceString (DWORD dwResId, _Out_ LPWSTR *ppwszOutput)
 
STDMETHODIMP Initialize (_In_ HKEY hkRegKey, _In_ LPCWSTR pcwszVolume, _Out_ LPWSTR *ppwszDisplayName, _Out_ LPWSTR *ppwszDescription, _Out_ DWORD *pdwFlags)
 
STDMETHODIMP GetSpaceUsed (_Out_ DWORDLONG *pdwlSpaceUsed, _In_opt_ IEmptyVolumeCacheCallBack *picb)
 
STDMETHODIMP Purge (_In_ DWORDLONG dwlSpaceToFree, _In_opt_ IEmptyVolumeCacheCallBack *picb)
 
STDMETHODIMP ShowProperties (_In_ HWND hwnd)
 
STDMETHODIMP Deactivate (_Out_ DWORD *pdwFlags)
 
STDMETHODIMP InitializeEx (_In_ HKEY hkRegKey, _In_ LPCWSTR pcwszVolume, _In_ LPCWSTR pcwszKeyName, _Out_ LPWSTR *ppwszDisplayName, _Out_ LPWSTR *ppwszDescription, _Out_ LPWSTR *ppwszBtnText, _Out_ DWORD *pdwFlags)
 
 DECLARE_PROTECT_FINAL_CONSTRUCT ()
 
- Public Member Functions inherited from ATL::CComObjectRootEx< CComSingleThreadModel >
 ~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 IEmptyVolumeCache2
HRESULT InitializeEx ([in] HKEY hkRegKey, [in] LPCWSTR pcwszVolume, [in] LPCWSTR pcwszKeyName, [out] LPWSTR *ppwszDisplayName, [out] LPWSTR *ppwszDescription, [out] LPWSTR *ppwszBtnText, [in, out] DWORD *pdwFlags)
 
- Public Member Functions inherited from IEmptyVolumeCache
HRESULT Initialize ([in] HKEY hkRegKey, [in] LPCWSTR pcwszVolume, [out] LPWSTR *ppwszDisplayName, [out] LPWSTR *ppwszDescription, [in, out] DWORD *pdwFlags)
 
HRESULT GetSpaceUsed ([out] DWORDLONG *pdwlSpaceUsed, [in] IEmptyVolumeCacheCallBack *picb)
 
HRESULT Purge ([in] DWORDLONG dwlSpaceToFree, [in] IEmptyVolumeCacheCallBack *picb)
 
HRESULT ShowProperties ([in] HWND hwnd)
 
HRESULT Deactivate ([out] DWORD *pdwFlags)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 

Public Attributes

WCHAR m_wszVolume [4]
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 

Additional Inherited Members

- 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)
 
- Static Public Member Functions inherited from ATL::CComCoClass< CRecycleBinCleaner, &CLSID_RecycleBinCleaner >
static LPCTSTR WINAPI GetObjectDescription ()
 

Detailed Description

Definition at line 15 of file CRecycleBinCleaner.cpp.

Member Function Documentation

◆ Deactivate()

STDMETHODIMP CRecycleBinCleaner::Deactivate ( _Out_ DWORD pdwFlags)
inline

Definition at line 107 of file CRecycleBinCleaner.cpp.

109 {
110 if (!pdwFlags)
111 return E_POINTER;
112
113 *pdwFlags = 0;
114
115 return S_OK;
116 }
#define S_OK
Definition: intsafe.h:52
#define E_POINTER
Definition: winerror.h:2365

◆ DECLARE_PROTECT_FINAL_CONSTRUCT()

CRecycleBinCleaner::DECLARE_PROTECT_FINAL_CONSTRUCT ( )

◆ GetSpaceUsed()

STDMETHODIMP CRecycleBinCleaner::GetSpaceUsed ( _Out_ DWORDLONG pdwlSpaceUsed,
_In_opt_ IEmptyVolumeCacheCallBack picb 
)
inline

Definition at line 50 of file CRecycleBinCleaner.cpp.

53 {
54 if (!pdwlSpaceUsed)
55 return E_POINTER;
56
57 SHQUERYRBINFO bin = { sizeof(bin) };
60 {
61 bin.i64Size = 0;
62 }
63 *pdwlSpaceUsed = bin.i64Size;
64 if (picb)
65 {
66 picb->ScanProgress(bin.i64Size, EVCCBF_LASTNOTIFICATION, NULL);
67 }
68
69 return S_OK;
70 }
HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo)
#define NULL
Definition: types.h:112
#define FAILED_UNEXPECTEDLY(hr)
Definition: precomp.h:121
static struct _PeImage bin
HRESULT hr
Definition: shlfolder.c:183

Referenced by Purge().

◆ Initialize()

STDMETHODIMP CRecycleBinCleaner::Initialize ( _In_ HKEY  hkRegKey,
_In_ LPCWSTR  pcwszVolume,
_Out_ LPWSTR ppwszDisplayName,
_Out_ LPWSTR ppwszDescription,
_Out_ DWORD pdwFlags 
)
inline

Definition at line 32 of file CRecycleBinCleaner.cpp.

38 {
39 if (!pdwFlags)
40 return E_POINTER;
41
42 *pdwFlags = EVCF_HASSETTINGS;
43
46
47 return StringCchCopyW(m_wszVolume, _countof(m_wszVolume), pcwszVolume);
48 }
#define IDS_RECYCLE_CLEANER_DESCRIPTION
Definition: shresdef.h:291
#define IDS_RECYCLE_CLEANER_DISPLAYNAME
Definition: shresdef.h:290
#define _countof(array)
Definition: sndvol32.h:70
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
Definition: strsafe.h:149
void OutputResourceString(DWORD dwResId, _Out_ LPWSTR *ppwszOutput)

◆ InitializeEx()

STDMETHODIMP CRecycleBinCleaner::InitializeEx ( _In_ HKEY  hkRegKey,
_In_ LPCWSTR  pcwszVolume,
_In_ LPCWSTR  pcwszKeyName,
_Out_ LPWSTR ppwszDisplayName,
_Out_ LPWSTR ppwszDescription,
_Out_ LPWSTR ppwszBtnText,
_Out_ DWORD pdwFlags 
)
inline

Definition at line 121 of file CRecycleBinCleaner.cpp.

129 {
131
132 return Initialize(hkRegKey, pcwszVolume, ppwszDisplayName, ppwszDescription, pdwFlags);
133 }
#define IDS_RECYCLE_CLEANER_BUTTON_TEXT
Definition: shresdef.h:292
static void Initialize()
Definition: xlate.c:212

◆ OutputResourceString()

void CRecycleBinCleaner::OutputResourceString ( DWORD  dwResId,
_Out_ LPWSTR ppwszOutput 
)
inline

Definition at line 23 of file CRecycleBinCleaner.cpp.

24 {
25 CStringW Tmp(MAKEINTRESOURCEW(dwResId));
26 SHStrDupW(Tmp, ppwszOutput);
27 }
HRESULT WINAPI SHStrDupW(LPCWSTR src, LPWSTR *dest)
Definition: string.c:2018
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582

Referenced by Initialize(), and InitializeEx().

◆ Purge()

STDMETHODIMP CRecycleBinCleaner::Purge ( _In_ DWORDLONG  dwlSpaceToFree,
_In_opt_ IEmptyVolumeCacheCallBack picb 
)
inline

Definition at line 72 of file CRecycleBinCleaner.cpp.

75 {
76 DWORDLONG dwlPrevious = 0;
77 GetSpaceUsed(&dwlPrevious, NULL);
78
80 if (picb)
81 {
82 picb->PurgeProgress(dwlPrevious, 0, EVCCBF_LASTNOTIFICATION, NULL);
83 }
84
85 return S_OK;
86 }
HRESULT WINAPI SHEmptyRecycleBinW(HWND hwnd, LPCWSTR pszRootPath, DWORD dwFlags)
unsigned long long DWORDLONG
Definition: intsafe.h:93
#define SHERB_NOSOUND
Definition: shellapi.h:399
#define SHERB_NOPROGRESSUI
Definition: shellapi.h:398
#define SHERB_NOCONFIRMATION
Definition: shellapi.h:397
STDMETHODIMP GetSpaceUsed(_Out_ DWORDLONG *pdwlSpaceUsed, _In_opt_ IEmptyVolumeCacheCallBack *picb)

◆ ShowProperties()

STDMETHODIMP CRecycleBinCleaner::ShowProperties ( _In_ HWND  hwnd)
inline

Definition at line 88 of file CRecycleBinCleaner.cpp.

90 {
92 HRESULT hr;
94 return hr;
95
96 SHELLEXECUTEINFOW seei = {sizeof(seei)};
97 seei.hwnd = hwnd;
98 seei.lpVerb = L"open";
99 seei.nShow = SW_SHOWNORMAL;
100 seei.fMask = SEE_MASK_IDLIST;
101 seei.lpIDList = pidl;
102 ShellExecuteExW(&seei);
103
104 return S_OK;
105 }
HRESULT WINAPI SHGetSpecialFolderLocation(HWND hwndOwner, INT nFolder, LPITEMIDLIST *ppidl)
Definition: shellpath.c:3408
#define L(x)
Definition: ntvdm.h:50
#define SEE_MASK_IDLIST
Definition: shellapi.h:27
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Definition: shlexec.cpp:2452
#define CSIDL_BITBUCKET
Definition: shlobj.h:2191
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define SW_SHOWNORMAL
Definition: winuser.h:773

Member Data Documentation

◆ m_wszVolume

WCHAR CRecycleBinCleaner::m_wszVolume[4]

Definition at line 20 of file CRecycleBinCleaner.cpp.

Referenced by GetSpaceUsed(), Initialize(), and Purge().


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