//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1997 - 1999 // // File: volclean.h // //-------------------------------------------------------------------------- #ifndef _VOLFREE_H_ #define _VOLFREE_H_ #include #include #include #include #define Trace(x) // {E3BF1126-BA29-4850-AF33-5BDB654F4774} DEFINE_GUID(CLSID_WebDavVolumeCleaner, 0xE3BF1126, 0xBA29, 0x4850, 0xAF, 0x33, 0x5B, 0xDB, 0x65, 0x4F, 0x47, 0x74 ); STDAPI_(void) DllAddRef(void); STDAPI_(void) DllRelease(void); class CWebDavCleaner : public IEmptyVolumeCache2 { LONG m_cRef; DWORDLONG m_dwlUsedSpace; DWORD m_dwPercent; BOOL m_fScheduled; BOOL m_fFilesToDelete; PWSTR m_szVolume; public: CWebDavCleaner() : m_cRef(1), m_dwlUsedSpace(0), m_fScheduled(FALSE), m_fFilesToDelete(FALSE), m_dwPercent(90), m_szVolume(NULL) { Trace(L"CWebDavCleaner::CWebDavCleaner"); ::DllAddRef(); } ~CWebDavCleaner() { Trace(L"CWebDavCleaner::~CWebDavCleaner"); if (m_szVolume) { delete [] m_szVolume; m_szVolume = NULL; } ::DllRelease(); } static HRESULT WINAPI CreateInstance(REFIID riid, LPVOID *ppv); // // IUnknown methods // STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *); STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release(); // // IEmptyVolumeCache methods // STDMETHODIMP Initialize(HKEY hkRegKey, LPCWSTR pcwszVolume, LPWSTR *ppwszDisplayName, LPWSTR *ppwszDescription, LPDWORD pdwFlags ); STDMETHODIMP GetSpaceUsed(DWORDLONG *pdwlSpaceUsed, LPEMPTYVOLUMECACHECALLBACK picb ); STDMETHODIMP Purge(DWORDLONG dwlSpaceToFree, LPEMPTYVOLUMECACHECALLBACK picb ); STDMETHODIMP ShowProperties(HWND hwnd); STDMETHODIMP Deactivate(LPDWORD pdwFlags); // // IEmptyVolumeCache2 methods // STDMETHODIMP InitializeEx(HKEY hkRegKey, LPCWSTR pcwszVolume, LPCWSTR pcwszKeyName, LPWSTR *ppwszDisplayName, LPWSTR *ppwszDescription, LPWSTR *ppwszBtnText, LPDWORD pdwFlags ); private: VOID pToUpperCase(IN PWSTR sz) { for (UINT i = 0; i < wcslen(sz); i++) { if ((sz[i] >= L'a') && (sz[i] <= L'z')) { sz[i] += L'A' - L'a'; } } } }; #endif // _VOLFREE_H_