Поделиться через


Метод IEmptyVolumeCache::Initialize (emptyvc.h)

Инициализирует обработчик очистки диска на основе сведений, хранящихся в указанном разделе реестра.

Синтаксис

HRESULT Initialize(
  [in]      HKEY    hkRegKey,
  [in]      LPCWSTR pcwszVolume,
  [out]     LPWSTR  *ppwszDisplayName,
  [out]     LPWSTR  *ppwszDescription,
  [in, out] DWORD   *pdwFlags
);

Параметры

[in] hkRegKey

Тип: HKEY

Дескриптор раздела реестра, который содержит сведения об объекте обработчика.

[in] pcwszVolume

Тип: LPCWSTR

Указатель на строку Юникода, завершаемую значением NULL, с корнем тома, например "C:".

[out] ppwszDisplayName

Тип: LPWSTR*

Указатель на строку Юникода, завершающуюся null, с именем, которое будет отображаться в списке обработчиков диспетчера очистки диска. Если значение не назначено, будет использоваться значение реестра.

[out] ppwszDescription

Тип: LPWSTR*

Указатель на строку Юникода, завершающуюся значением NULL, которая будет отображаться при выборе этого объекта из списка доступных обработчиков очистки диска диспетчера очистки диска. Если значение не назначено, будет использоваться значение реестра.

[in, out] pdwFlags

Тип: DWORD*

Флаги, используемые для передачи информации в обработчик и обратно в диспетчер очистки диска.

Эти флаги можно передать в объект :

EVCF_OUTOFDISKSPACE

Если этот флаг установлен, у пользователя не будет места на диске. При получении этого флага обработчик должен активно освобождать место на диске, даже если это приводит к снижению производительности. Однако обработчик не должен удалять файлы, которые могут привести к сбою приложения или потере данных пользователем.

EVCF_SETTINGSMODE

Если диспетчер очистки диска запускается по расписанию, он установит этот флаг. Необходимо назначить значения параметрам ppwszDisplayName и ppwszDescription . Если этот флаг установлен, диспетчер очистки диска не будет вызывать IEmptyVolumeCache::GetSpaceUsed, IEmptyVolumeCache::P urge или IEmptyVolumeCache::ShowProperties. Так как метод IEmptyVolumeCache::P urge не вызывается, очистка должна обрабатываться методом IEmptyVolumeCache::Initialize. Обработчик должен игнорировать параметр pcwszVolume и очищать все ненужные файлы независимо от того, на каком диске они находятся. Так как нет возможности для отзывов пользователей, следует коснуться только тех файлов, которые очень безопасны для очистки.

Эти флаги могут быть переданы обработчиком обратно в диспетчер очистки диска:

EVCF_DONTSHOWIFZERO

Установите этот флаг, если нет файлов для удаления. При вызове метода IEmptyVolumeCache::GetSpaceUsed задайте для параметра pdwSpaceUsed нулевое значение, а диспетчер очистки диска опустит обработчик из списка.

EVCF_ENABLEBYDEFAULT

Установите этот флаг, чтобы обработчик по умолчанию проверялся в списке диспетчера очистки. Он будет запускаться при каждом запуске программы очистки диска, если пользователь не снимет проверка поля обработчика. После очистки проверка обработчик не будет запущен до тех пор, пока пользователь не выберет его снова.

EVCF_ENABLEBYDEFAULT_AUTO

Установите этот флаг, чтобы обработчик запускался автоматически во время запланированной очистки. Этот флаг следует устанавливать только в том случае, если удаление файлов является низким риском. Как и в случае с EVCF_ENABLEBYDEFAULT, пользователь может не запускать обработчик, очищая его проверка в списке диспетчера очистки диска.

EVCF_HASSETTINGS

Установите этот флаг, чтобы указать, что обработчик может отображать пользовательский интерфейс. Примером простого пользовательского интерфейса является поле со списком, в котором отображаются файлы, которые можно удалить, и пользователь может выбрать, какие из них следует удалить. Затем диспетчер очистки диска отобразит кнопку под описанием обработчика очистки. Пользователь нажимает эту кнопку, чтобы запросить пользовательский интерфейс. Текст кнопки по умолчанию — "Параметры", но обработчик может указать другой текст, задав значение AdvancedButtonText в своем разделе реестра.

EVCF_REMOVEFROMLIST

Установите этот флаг, чтобы удалить обработчик из списка диспетчера очистки диска. Все сведения о реестре будут удалены, и обработчик не может быть запущен повторно до тех пор, пока не будут восстановлены ключ и его значения. Этот флаг используется в основном для однократных операций очистки.

Возвращаемое значение

Тип: HRESULT

Этот метод может возвращать одно из этих значений.

Код возврата Описание
S_OK
Успешно.
S_FALSE
Удаляемые файлы отсутствуют.
E_ABORT
Операция очистки была завершена преждевременно.
E_FAIL
Операция очистки завершилась сбоем.

Комментарии

Этот метод используется диспетчером очистки диска Windows 98. В Windows 2000 используется метод InitializeEx , экспортируемый IEmptyVolumeCache2.

Используйте CoTaskMemAlloc для выделения памяти для строк, возвращаемых через ppwszDisplayName и ppwszDescription. Диспетчер очистки диска освободит память, когда она больше не нужна.

Требования

   
Минимальная версия клиента Windows 2000 Professional, Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header emptyvc.h
DLL Shell32.dll (версия 5.0 или более поздняя)