Leaked source code of windows server 2003
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

//+-------------------------------------------------------------------------
//
// 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_