2025-04-27 07:49:33 -04:00

124 lines
3.9 KiB
C++

// Copyright (c) 2000-2001 Microsoft Corporation, All Rights Reserved
#pragma once
//
// Util.h - Shared utilities
//
#define STR_FROM_bool(x) ( x ? L"TRUE" : L"FALSE" )
_COM_SMARTPTR_TYPEDEF(IDiskQuotaControl, IID_IDiskQuotaControl);
#define GET_NOTHING 0x00000000
#define GET_ALL_PROPERTIES 0xFFFFFFFF
#define GET_DEVICEID 0x00000001
#define GET_PROVIDER_NAME 0x00000002
#define GET_VOLUME_NAME 0x00000004
#define GET_FILE_SYSTEM 0x00000008
#define GET_VOLUME_SERIAL_NUMBER 0x00000010
#define GET_COMPRESSED 0x00000020
#define GET_SUPPORTS_FILE_BASED_COMPRESSION 0x00000040
#define GET_MAXIMUM_COMPONENT_LENGTH 0x00000080
#define GET_SUPPORTS_DISK_QUOTAS 0x00000100
#define GET_QUOTAS_INCOMPLETE 0x00000200
#define GET_QUOTAS_REBUILDING 0x00000400
#define GET_QUOTAS_DISABLED 0x00000800
#define GET_PERFORM_AUTOCHECK 0x00001000
#define GET_FREE_SPACE 0x00002000
#define GET_SIZE 0x00004000
#define GET_VOL_INFO (GET_VOLUME_NAME | \
GET_FILE_SYSTEM | \
GET_VOLUME_SERIAL_NUMBER | \
GET_COMPRESSED | \
GET_SUPPORTS_FILE_BASED_COMPRESSION | \
GET_MAXIMUM_COMPONENT_LENGTH | \
GET_SUPPORTS_DISK_QUOTAS | \
GET_QUOTAS_INCOMPLETE | \
GET_QUOTAS_REBUILDING | \
GET_QUOTAS_DISABLED | \
GET_PERFORM_AUTOCHECK)
#define SPIN_DISK (GET_VOL_INFO | \
GET_FREE_SPACE | \
GET_SIZE)
enum
{
PROP_DEVICEID = 0,
PROP_PROVIDER_NAME = 1,
PROP_VOLUME_NAME = 2,
PROP_FILE_SYSTEM = 3,
PROP_VOLUME_SERIAL_NUMBER = 4,
PROP_COMPRESSED = 5,
PROP_SUPPORTS_FILE_BASED_COMPRESSION = 6,
PROP_MAXIMUM_COMPONENT_LENGTH = 7,
PROP_SUPPORTS_DISK_QUOTAS = 8,
PROP_QUOTAS_INCOMPLETE = 9,
PROP_QUOTAS_REBUILDING = 10,
PROP_QUOTAS_DISABLED = 11,
PROP_PERFORM_AUTOCHECK = 12,
PROP_FREE_SPACE = 13,
PROP_SIZE = 14,
PROP_COUNT = 15
};
// Principal function of this server.
HRESULT GetMappedDisksAndData(
DWORD dwReqProps,
VARIANT* pvarData);
HRESULT GetSingleMappedDiskAndData(
BSTR bstrDrive,
DWORD dwReqProps,
VARIANT* pvarData);
void GetMappedDriveList(
LPWSTR wstrDrives,
std::vector<_bstr_t>& vecMappedDrives);
HRESULT GetMappedDriveInfo(
LPCWSTR wstrDriveName,
long lDrivePropArrayDriveIndex,
SAFEARRAY* saDriveProps,
DWORD dwReqProps);
HRESULT GetProviderName(
LPCWSTR wstrDriveName,
long lDrivePropArrayDriveIndex,
SAFEARRAY* saDriveProps);
HRESULT GetDriveVolumeInformation(
LPCWSTR wstrDriveName,
long lDrivePropArrayDriveIndex,
SAFEARRAY* saDriveProps);
HRESULT GetDriveFreeSpace(
LPCWSTR wstrDriveName,
long lDrivePropArrayDriveIndex,
SAFEARRAY* saDriveProps);
BOOLEAN IsVolumeDirty(
_bstr_t &bstrtNtDriveName,
BOOLEAN *Result);
HRESULT SetProperty(
long lDrivePropArrayDriveIndex,
long lDrivePropArrayPropIndex,
LPCWSTR wstrPropValue,
SAFEARRAY* saDriveProps);