180 lines
5.1 KiB
C++
180 lines
5.1 KiB
C++
/*
|
|
**------------------------------------------------------------------------------
|
|
** Module: Disk Space Cleanup Property Sheets
|
|
** File: dmgrinfo.h
|
|
**
|
|
** Purpose: Defines the CleanupMgrInfo class for the property tab
|
|
** Notes:
|
|
** Mod Log: Created by Jason Cobb (2/97)
|
|
**
|
|
** Copyright (c)1997 Microsoft Corporation, All Rights Reserved
|
|
**------------------------------------------------------------------------------
|
|
*/
|
|
#ifndef DMGRINFO_H
|
|
#define DMGRINFO_H
|
|
|
|
/*
|
|
**------------------------------------------------------------------------------
|
|
** Project include files
|
|
**------------------------------------------------------------------------------
|
|
*/
|
|
|
|
#ifndef COMMON_H
|
|
#include "common.h"
|
|
#endif
|
|
|
|
#ifndef EMPTYVC_H
|
|
#include <emptyvc.h>
|
|
#endif
|
|
|
|
#ifndef DISKUTIL_H
|
|
#include "diskutil.h"
|
|
#endif
|
|
|
|
#ifndef CALLBACK_H
|
|
#include "callback.h"
|
|
#endif
|
|
|
|
|
|
|
|
/*
|
|
**------------------------------------------------------------------------------
|
|
** Defines
|
|
**------------------------------------------------------------------------------
|
|
*/
|
|
#define WMAPP_UPDATEPROGRESS WM_USER+1
|
|
#define WMAPP_UPDATESTATUS WM_USER+2
|
|
|
|
#define PROGRESS_DIVISOR 0xFFFF
|
|
/*
|
|
**------------------------------------------------------------------------------
|
|
** Global function prototypes
|
|
**------------------------------------------------------------------------------
|
|
*/
|
|
// forward references to make compile work
|
|
class CleanupMgrInfo;
|
|
|
|
CleanupMgrInfo * GetCleanupMgrInfoPointer(HWND hDlg);
|
|
|
|
|
|
/*
|
|
**------------------------------------------------------------------------------
|
|
** Class declarations
|
|
**------------------------------------------------------------------------------
|
|
*/
|
|
typedef struct tag_ClientInfo
|
|
{
|
|
HICON hIcon;
|
|
CLSID clsid;
|
|
LPEMPTYVOLUMECACHE pVolumeCache;
|
|
HKEY hClientKey;
|
|
TCHAR szRegKeyName[MAX_PATH];
|
|
LPWSTR wcsDescription;
|
|
LPWSTR wcsDisplayName;
|
|
LPWSTR wcsAdvancedButtonText;
|
|
DWORD dwInitializeFlags;
|
|
DWORD dwPriority;
|
|
ULARGE_INTEGER dwUsedSpace;
|
|
BOOL bShow;
|
|
BOOL bSelected;
|
|
} CLIENTINFO, *PCLIENTINFO;
|
|
|
|
/*
|
|
**------------------------------------------------------------------------------
|
|
** Class: CleanupMgrInfo
|
|
** Purpose: Stores useful info for the Disk space cleanup manager drive tab
|
|
** Notes:
|
|
** Mod Log: Created by Jason Cobb (2/97)
|
|
**------------------------------------------------------------------------------
|
|
*/
|
|
class CleanupMgrInfo {
|
|
private:
|
|
protected:
|
|
static HINSTANCE hInstance;
|
|
|
|
void init(void);
|
|
void destroy(void);
|
|
BOOL initializeClients(void);
|
|
void deactivateClients(void);
|
|
void deactivateSingleClient(PCLIENTINFO pSingleClientInfo);
|
|
BOOL getSpaceUsedByClients(void);
|
|
void calculateSpaceToPurge(void);
|
|
HICON GetClientIcon(LPTSTR, BOOL fIconPath);
|
|
|
|
public:
|
|
drenum dre; // Drive letter
|
|
HICON hDriveIcon; // Drive Icon
|
|
TCHAR szRoot[MAX_PATH]; // Root
|
|
TCHAR szVolName[MAX_PATH]; // Volume name
|
|
TCHAR szFileSystem[MAX_PATH]; // File System name
|
|
hardware hwHardware; // Hardware Type
|
|
volumetype vtVolume; // Volume Type
|
|
|
|
ULARGE_INTEGER cbDriveFree; // Free space on drive
|
|
ULARGE_INTEGER cbDriveUsed; // Used space on drive
|
|
ULARGE_INTEGER cbEstCleanupSpace; // Estimated space that can be cleaned
|
|
ULARGE_INTEGER cbLowSpaceThreshold; // Low disk space threshold (for agressive mode)
|
|
ULARGE_INTEGER cbSpaceToPurge;
|
|
ULARGE_INTEGER cbProgressDivider;
|
|
|
|
DWORD dwReturnCode;
|
|
DWORD dwUIFlags;
|
|
ULONG ulSAGEProfile; // SAGE Profile
|
|
BOOL bOutOfDiskSpace; // Are we in agressive mode?
|
|
BOOL bPurgeFiles; // Should we delete the files?
|
|
|
|
HANDLE hAbortScanThread; // Abort Scan thread Handle
|
|
HWND hAbortScanWnd;
|
|
HANDLE hAbortScanEvent;
|
|
DWORD dwAbortScanThreadID;
|
|
|
|
HANDLE hAbortPurgeThread;
|
|
HWND hAbortPurgeWnd;
|
|
HANDLE hAbortPurgeEvent;
|
|
DWORD dwAbortPurgeThreadID;
|
|
ULARGE_INTEGER cbTotalPurgedSoFar;
|
|
ULARGE_INTEGER cbCurrentClientPurgedSoFar;
|
|
|
|
static void Register(HINSTANCE hInstance);
|
|
static void Unregister();
|
|
|
|
//
|
|
//Volume Cache client information
|
|
//
|
|
int iNumVolumeCacheClients;
|
|
PCLIENTINFO pClientInfo;
|
|
|
|
//
|
|
//IEmptyVolumeCacheCallBack interface
|
|
//
|
|
PCVOLUMECACHECALLBACK volumeCacheCallBack;
|
|
LPEMPTYVOLUMECACHECALLBACK pIEmptyVolumeCacheCallBack;
|
|
BOOL bAbortScan;
|
|
BOOL bAbortPurge;
|
|
|
|
//
|
|
//Constructors
|
|
//
|
|
CleanupMgrInfo (void);
|
|
CleanupMgrInfo (LPTSTR lpDrive, DWORD dwFlags, ULONG ulProfile);
|
|
~CleanupMgrInfo (void);
|
|
|
|
//
|
|
//Creation methods
|
|
//
|
|
BOOL isValid (void) { return dre != Drive_INV; }
|
|
BOOL create (LPTSTR lpDrive, DWORD Flags);
|
|
BOOL isAbortScan (void) { return bAbortScan; }
|
|
|
|
BOOL purgeClients(void);
|
|
|
|
}; // CleanupMgrInfo
|
|
|
|
|
|
#endif DMGRINFO_H
|
|
/*
|
|
**------------------------------------------------------------------------------
|
|
** End of File
|
|
**------------------------------------------------------------------------------
|
|
*/
|