IEmptyVolumeCache2::InitializeEx 方法 (emptyvc.h)

初始化磁盘清理处理程序。 它比 初始化提供更好的本地化支持。

语法

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 结尾的 Unicode 字符串的指针,例如“C:”。

[in] pcwszKeyName

类型: LPCWSTR

指向以 null 结尾的 Unicode 字符串的指针,其中包含处理程序的注册表项的名称。

[out] ppwszDisplayName

类型: LPWSTR*

指向以 null 结尾的 Unicode 字符串的指针,该字符串的名称将显示在磁盘清理管理器的处理程序列表中。 必须为此参数赋值。

[out] ppwszDescription

类型: LPWSTR*

指向以 null 结尾的 Unicode 字符串的指针,当从磁盘清理管理器的可用磁盘清理器列表中选择此对象时,将显示该字符串。 必须为此参数赋值。

[out] ppwszBtnText

类型: LPWSTR*

指向以 null 结尾的 Unicode 字符串的指针,其中包含将在磁盘清理管理器的 “设置” 按钮上显示的文本。 如果设置了 EVCF_HASSETTINGS 标志,则必须为 ppwszBtnText 赋值。 否则,可以将其设置为 NULL

[in, out] pdwFlags

类型: DWORD*

用于将信息传递给处理程序并传回磁盘清理管理器的标志。

这些标志可以传递到 对象:

EVCF_OUTOFDISKSPACE

如果设置了此标志,则表示用户没有驱动器上的磁盘空间。 收到此标志时,处理程序应积极释放磁盘空间,即使这会导致性能损失。 但是,处理程序不应删除会导致应用程序失败或用户丢失数据的文件。

EVCF_SETTINGSMODE

如果磁盘清理管理器按计划运行,它将设置 EVCF_SETTINGSMODE 标志。 必须为 ppwszDisplayNameppwszDescription 参数赋值。 如果设置了此标志,磁盘清理管理器将不会调用 GetSpaceUsedPurgeShowProperties。 由于不会调用 清除 ,因此必须由 InitializeEx 处理清理。 处理程序应忽略 pcwszVolume 参数,并清理任何不需要的文件,而不考虑它们位于哪个驱动器上。 由于没有机会获得用户反馈,因此应仅接触那些非常安全清理的文件。

处理程序可以将这些标志传递回磁盘清理管理器:

EVCF_DONTSHOWIFZERO

在没有要删除的文件时设置此标志。 调用 GetSpaceUsed 时,将 pdwSpaceUsed 参数设置为零,磁盘清理管理器将从其列表中省略处理程序。

EVCF_ENABLEBYDEFAULT

将此标志设置为默认在磁盘清理管理器的列表中检查处理程序。 该处理程序将在每次运行磁盘清理实用工具时运行,除非用户清除处理程序的检查框。 清除检查框后,处理程序将不运行,直到用户再次选择它。

EVCF_ENABLEBYDEFAULT_AUTO

设置此标志,使处理程序在计划的清理过程中自动运行。 仅当删除文件的风险较低时,才应设置此标志。 与EVCF_ENABLEBYDEFAULT一样,用户可以通过清除磁盘清理管理器列表中的检查框来选择不运行处理程序。

EVCF_HASSETTINGS

设置此标志以指示处理程序可以显示 UI。 简单 UI 的一个示例是一个列表框,它显示可删除的文件,并允许用户选择要删除的文件。 然后,磁盘清理管理器将在清理处理程序的说明下方显示一个按钮。 用户单击此按钮以请求 UI。 使用 ppwszBtnText 参数指定按钮的文本。

EVCF_REMOVEFROMLIST

设置此标志以从磁盘清理管理器的列表中删除处理程序。 所有注册表信息都将被删除,在还原项及其值之前,处理程序无法再次运行。 此标志主要用于一次性清理操作。

返回值

类型: HRESULT

此方法可以返回其中一个值。

返回代码 说明
S_OK
成功。
S_FALSE
没有要删除的文件。
E_ABORT
清理操作过早结束。
E_FAIL
清理操作失败。

注解

Windows 2000 磁盘清理管理器将首先调用 IEmptyVolumeCache2::InitializeEx 来初始化磁盘清理处理程序。 仅当未实现 IEmptyVolumeCache2 接口时,它才会调用 Initialize。 Windows 98 磁盘清理管理器仅支持 Initialize

InitializeEx 旨在提供比 Initialize 更好的本地化支持。 调用 InitializeEx 时,处理程序应用程序必须将适当的本地化值分配给 ppwszDisplayNameppwszDescription 参数。 如果启用 “设置” 按钮,则还必须为 ppwszBtnText 参数赋值。 与 Initialize 不同,如果将这些字符串设置为 NULL 以通知磁盘清理管理器从注册表检索默认值, InitializeEx 将失败。

使用 CoTaskMemAlloc 为通过 ppwszDisplayNameppwszDescriptionppwszBtnText 返回的字符串分配内存。 当不再需要内存时,磁盘清理管理器将释放内存。

要求

要求
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 emptyvc.h
DLL Shell32.dll (5.0 或更高版本)