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 标志。 必须为 ppwszDisplayName 和 ppwszDescription 参数赋值。 如果设置了此标志,磁盘清理管理器将不会调用 GetSpaceUsed、 Purge 或 ShowProperties。 由于不会调用 清除 ,因此必须由 InitializeEx 处理清理。 处理程序应忽略 pcwszVolume 参数,并清理任何不需要的文件,而不考虑它们位于哪个驱动器上。 由于没有机会获得用户反馈,因此应仅接触那些非常安全清理的文件。
处理程序可以将这些标志传递回磁盘清理管理器:
EVCF_DONTSHOWIFZERO
在没有要删除的文件时设置此标志。 调用 GetSpaceUsed 时,将 pdwSpaceUsed 参数设置为零,磁盘清理管理器将从其列表中省略处理程序。
EVCF_ENABLEBYDEFAULT
将此标志设置为默认在磁盘清理管理器的列表中检查处理程序。 该处理程序将在每次运行磁盘清理实用工具时运行,除非用户清除处理程序的检查框。 清除检查框后,处理程序将不运行,直到用户再次选择它。
EVCF_ENABLEBYDEFAULT_AUTO
设置此标志,使处理程序在计划的清理过程中自动运行。 仅当删除文件的风险较低时,才应设置此标志。 与EVCF_ENABLEBYDEFAULT一样,用户可以通过清除磁盘清理管理器列表中的检查框来选择不运行处理程序。
EVCF_HASSETTINGS
设置此标志以指示处理程序可以显示 UI。 简单 UI 的一个示例是一个列表框,它显示可删除的文件,并允许用户选择要删除的文件。 然后,磁盘清理管理器将在清理处理程序的说明下方显示一个按钮。 用户单击此按钮以请求 UI。 使用 ppwszBtnText 参数指定按钮的文本。
EVCF_REMOVEFROMLIST
设置此标志以从磁盘清理管理器的列表中删除处理程序。 所有注册表信息都将被删除,在还原项及其值之前,处理程序无法再次运行。 此标志主要用于一次性清理操作。
返回值
类型: HRESULT
此方法可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
没有要删除的文件。 |
|
清理操作过早结束。 |
|
清理操作失败。 |
注解
Windows 2000 磁盘清理管理器将首先调用 IEmptyVolumeCache2::InitializeEx 来初始化磁盘清理处理程序。 仅当未实现 IEmptyVolumeCache2 接口时,它才会调用 Initialize。 Windows 98 磁盘清理管理器仅支持 Initialize。
InitializeEx 旨在提供比 Initialize 更好的本地化支持。 调用 InitializeEx 时,处理程序应用程序必须将适当的本地化值分配给 ppwszDisplayName 和 ppwszDescription 参数。 如果启用 “设置” 按钮,则还必须为 ppwszBtnText 参数赋值。 与 Initialize 不同,如果将这些字符串设置为 NULL 以通知磁盘清理管理器从注册表检索默认值, InitializeEx 将失败。
使用 CoTaskMemAlloc 为通过 ppwszDisplayName、 ppwszDescription 和 ppwszBtnText 返回的字符串分配内存。 当不再需要内存时,磁盘清理管理器将释放内存。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版、Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | emptyvc.h |
DLL | Shell32.dll (5.0 或更高版本) |