class CRecycleBinCleaner : public IEmptyVolumeCache2 { public: CRecycleBinCleaner(); ~CRecycleBinCleaner(); // IUnknown methods STDMETHODIMP QueryInterface(REFIID riid, PVOID *ppvObj); STDMETHODIMP_(ULONG) AddRef(void); STDMETHODIMP_(ULONG) Release(void); // IEmptyVolumeCache STDMETHODIMP Initialize(HKEY hRegKey, LPCWSTR pszVolume, LPWSTR *ppszDisplayName, LPWSTR *ppszDescription, DWORD *pdwFlags); STDMETHODIMP GetSpaceUsed(DWORDLONG *pdwSpaceUsed, IEmptyVolumeCacheCallBack *picb); STDMETHODIMP Purge(DWORDLONG dwSpaceToFree, IEmptyVolumeCacheCallBack *picb); STDMETHODIMP ShowProperties(HWND hwnd); STDMETHODIMP Deactivate(DWORD *pdwFlags); // IEmptyVolumeCache2 STDMETHODIMP InitializeEx(HKEY hkRegKey, LPCWSTR pcwszVolume, LPCWSTR pcwszKeyName, LPWSTR *ppwszDisplayName, LPWSTR *ppwszDescription, LPWSTR *ppwszBtnText, DWORD *pdwFlags); private: ULONG m_cRef; WCHAR m_szVolume[5]; };