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 结尾的 Unicode 字符串的指针,例如“C:”。
[out] ppwszDisplayName
类型: LPWSTR*
指向以 null 结尾的 Unicode 字符串的指针,该字符串的名称将显示在磁盘清理管理器的处理程序列表中。 如果未分配任何值,则将使用注册表值。
[out] ppwszDescription
类型: LPWSTR*
指向以 null 结尾的 Unicode 字符串的指针,当从磁盘清理管理器的可用磁盘清理处理程序列表中选择此对象时,将显示该对象。 如果未分配任何值,则将使用注册表值。
[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
设置此标志以指示处理程序可以显示 UI。 简单 UI 的一个示例是一个列表框,它显示可删除的文件,并允许用户选择要删除的文件。 然后,磁盘清理管理器将在清理处理程序的说明下方显示一个按钮。 用户单击此按钮以请求 UI。 默认按钮文本为“设置”,但处理程序可以通过在其注册表项中设置 AdvancedButtonText 值来指定其他文本。
EVCF_REMOVEFROMLIST
设置此标志以从磁盘清理管理器的列表中删除处理程序。 所有注册表信息都将被删除,在还原项及其值之前,处理程序无法再次运行。 此标志主要用于一次性清理操作。
返回值
类型: HRESULT
此方法可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
没有要删除的文件。 |
|
清理操作过早结束。 |
|
清理操作失败。 |
备注
Windows 98 磁盘清理管理器使用此方法。 Windows 2000 使用由 IEmptyVolumeCache2 导出的 InitializeEx 方法。
使用 CoTaskMemAlloc 为通过 ppwszDisplayName 和 ppwszDescription 返回的字符串分配内存。 当不再需要内存时,磁盘清理管理器将释放内存。
要求
最低受支持的客户端 | Windows 2000 专业版、Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | emptyvc.h |
DLL | Shell32.dll (5.0 或更高版本) |