mirror of https://github.com/tongzx/nt5src
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.
77 lines
2.5 KiB
77 lines
2.5 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
//
|
|
// Copyright (C) Microsoft Corporation, 1997 - 1999
|
|
//
|
|
// File: volclean.h
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
#ifndef _VOLFREE_H_
|
|
#define _VOLFREE_H_
|
|
|
|
#include "purge.h"
|
|
|
|
class CCscVolumeCleaner : public IEmptyVolumeCache2
|
|
{
|
|
LONG m_cRef;
|
|
BOOL m_fPinned; // TRUE if this instance frees pinned files, FALSE for auto-cached files
|
|
CCachePurger *m_pPurger;
|
|
LPEMPTYVOLUMECACHECALLBACK m_pDiskCleaner;
|
|
DWORDLONG m_dwlSpaceToFree;
|
|
DWORDLONG m_dwlSpaceFreed;
|
|
CCachePurgerSel m_PurgerSel;
|
|
|
|
public:
|
|
CCscVolumeCleaner(BOOL fPinned) : m_cRef(1), m_fPinned(fPinned), m_pPurger(NULL),
|
|
m_pDiskCleaner(NULL), m_dwlSpaceToFree(0), m_dwlSpaceFreed(0)
|
|
{
|
|
DllAddRef();
|
|
}
|
|
~CCscVolumeCleaner()
|
|
{
|
|
delete m_pPurger;
|
|
DllRelease();
|
|
}
|
|
|
|
static HRESULT WINAPI CreateInstance(REFIID riid, LPVOID *ppv);
|
|
static HRESULT WINAPI CreateInstance2(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);
|
|
|
|
// IEmptyVolumeCache methods
|
|
STDMETHODIMP InitializeEx(HKEY hkRegKey,
|
|
LPCWSTR pcwszVolume,
|
|
LPCWSTR pcwszKeyName,
|
|
LPWSTR *ppwszDisplayName,
|
|
LPWSTR *ppwszDescription,
|
|
LPWSTR *ppwszBtnText,
|
|
LPDWORD pdwFlags);
|
|
|
|
private:
|
|
BOOL ScanCallback(CCachePurger *pPurger);
|
|
BOOL DeleteCallback(CCachePurger *pPurger);
|
|
|
|
static BOOL CALLBACK CachePurgerCallback(CCachePurger *pPurger);
|
|
static HRESULT WINAPI Create(BOOL fPinned, REFIID riid, LPVOID *ppv);
|
|
};
|
|
typedef CCscVolumeCleaner *PCSCVOLCLEANER;
|
|
|
|
#endif // _VOLFREE_H_
|