You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
2.7 KiB
121 lines
2.7 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1997 - 1999
|
|
//
|
|
// File: volclean.h
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
#ifndef _VOLFREE_H_
|
|
#define _VOLFREE_H_
|
|
|
|
#include <windows.h>
|
|
#include <emptyvc.h>
|
|
#include <initguid.h>
|
|
#include <stdio.h>
|
|
|
|
#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_
|