Метод IEmptyVolumeCache2::InitializeEx (emptyvc.h)
Инициализирует обработчик очистки диска. Он обеспечивает лучшую поддержку локализации, чем Initialize.
Синтаксис
HRESULT InitializeEx(
[in] HKEY hkRegKey,
[in] LPCWSTR pcwszVolume,
[in] LPCWSTR pcwszKeyName,
[out] LPWSTR *ppwszDisplayName,
[out] LPWSTR *ppwszDescription,
[out] LPWSTR *ppwszBtnText,
[in, out] DWORD *pdwFlags
);
Параметры
[in] hkRegKey
Тип: HKEY
Дескриптор раздела реестра, который содержит сведения об объекте обработчика.
[in] pcwszVolume
Тип: LPCWSTR
Указатель на строку Юникода, завершаемую null, с корнем тома, например "C:".
[in] pcwszKeyName
Тип: LPCWSTR
Указатель на строку Юникода, завершаемую null, с именем раздела реестра обработчика.
[out] ppwszDisplayName
Тип: LPWSTR*
Указатель на строку Юникода, завершающуюся значением NULL, с именем, которое будет отображаться в списке обработчиков диспетчера очистки диска. Этому параметру необходимо присвоить значение.
[out] ppwszDescription
Тип: LPWSTR*
Указатель на строку Юникода, завершающуюся значением NULL, которая будет отображаться при выборе этого объекта из списка доступных средств очистки дисков диспетчера очистки диска. Этому параметру необходимо присвоить значение.
[out] ppwszBtnText
Тип: LPWSTR*
Указатель на строку Юникода, завершающуюся значением NULL, с текстом, который будет отображаться на кнопке Параметры диспетчера очистки диска. Если установлен флаг EVCF_HASSETTINGS , необходимо присвоить значение ppwszBtnText. В противном случае можно присвоить ему значение NULL.
[in, out] pdwFlags
Тип: DWORD*
Флаги, используемые для передачи информации обработчику и обратно в диспетчер очистки диска.
Эти флаги можно передать в объект :
EVCF_OUTOFDISKSPACE
Если этот флаг установлен, у пользователя не будет места на диске. При получении этого флага обработчик должен активно освобождать место на диске, даже если это приводит к снижению производительности. Однако обработчик не должен удалять файлы, которые могут привести к сбою приложения или потере данных пользователем.
EVCF_SETTINGSMODE
Если диспетчер очистки диска запускается по расписанию, он устанавливает флаг EVCF_SETTINGSMODE . Необходимо назначить значения параметрам ppwszDisplayName и ppwszDescription . Если этот флаг установлен, диспетчер очистки диска не будет вызывать GetSpaceUsed, Purge или ShowProperties. Так как Purge не будет вызываться, очистка должна обрабатываться Методом InitializeEx. Обработчик должен игнорировать параметр pcwszVolume и очищать все ненужные файлы независимо от того, на каком диске они находятся. Так как нет возможности для обратной связи с пользователем, следует коснуться только тех файлов, которые являются чрезвычайно безопасными для очистки.
Эти флаги могут быть переданы обработчиком обратно в диспетчер очистки диска:
EVCF_DONTSHOWIFZERO
Установите этот флаг, если нет файлов для удаления. При вызове Метода GetSpaceUsed задайте для параметра pdwSpaceUsed нулевое значение, а диспетчер очистки диска опустит обработчик из списка.
EVCF_ENABLEBYDEFAULT
Установите этот флаг, чтобы обработчик по умолчанию проверялся в списке диспетчера очистки диска. Обработчик будет запускаться при каждом запуске служебной программы очистки диска, если пользователь не очищает поле проверка обработчика. После того как поле проверка будет очищено, обработчик не будет запущен до тех пор, пока пользователь не выберет его снова.
EVCF_ENABLEBYDEFAULT_AUTO
Установите этот флаг, чтобы обработчик запускался автоматически во время запланированной очистки. Этот флаг следует устанавливать только в том случае, если удаление файлов является низким риском. Как и в случае с EVCF_ENABLEBYDEFAULT, пользователь может не запускать обработчик, очисв его проверка поле в списке диспетчера очистки диска.
EVCF_HASSETTINGS
Установите этот флаг, чтобы указать, что обработчик может отображать пользовательский интерфейс. Примером простого пользовательского интерфейса является поле со списком, в котором отображаются файлы, которые можно удалить, и пользователь может выбрать, какие из них следует удалить. Затем диспетчер очистки диска отобразит кнопку под описанием обработчика очистки. Пользователь нажимает эту кнопку, чтобы запросить пользовательский интерфейс. Используйте параметр ppwszBtnText , чтобы указать текст кнопки.
EVCF_REMOVEFROMLIST
Установите этот флаг, чтобы удалить обработчик из списка диспетчера очистки диска. Все сведения о реестре будут удалены, и обработчик не может быть запущен снова до тех пор, пока не будут восстановлены ключ и его значения. Этот флаг используется в основном для однократных операций очистки.
Возвращаемое значение
Тип: HRESULT
Этот метод может возвращать одно из этих значений.
Код возврата | Описание |
---|---|
|
Успешно. |
|
Удаляемые файлы отсутствуют. |
|
Операция очистки была завершена преждевременно. |
|
Сбой операции очистки. |
Комментарии
Диспетчер очистки диска Windows 2000 сначала вызовет IEmptyVolumeCache2::InitializeEx для инициализации обработчика очистки диска. Метод Initialize вызывается только в том случае, если интерфейс IEmptyVolumeCache2 не реализован. Диспетчер очистки диска Windows 98 поддерживает только инициализацию.
InitializeEx предназначен для обеспечения лучшей поддержки локализации, чем Initialize. При вызове Метода InitializeEx приложение обработчика должно назначить соответствующим образом локализованные значения параметрам ppwszDisplayName и ppwszDescription . Если кнопка Параметры включена, необходимо также присвоить значение параметру ppwszBtnText . В отличие от Initialize, если для этих строк задано значение NULL для уведомления диспетчера очистки диска о получении значений по умолчанию из реестра, InitializeEx завершится ошибкой.
Используйте CoTaskMemAlloc , чтобы выделить память для строк, возвращаемых через ppwszDisplayName, ppwszDescription и ppwszBtnText. Диспетчер очистки диска освободит память, когда она больше не нужна.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional, Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | emptyvc.h |
DLL | Shell32.dll (версия 5.0 или более поздняя) |