ICustomDestinationList::GetRemovedDestinations 方法 (shobjidl_core.h)
检索用户从此自定义跳转列表要替换的现有跳转列表中删除的当前目标列表。
语法
HRESULT GetRemovedDestinations(
[in] REFIID riid,
[out] void **ppv
);
参数
[in] riid
类型:REFIID
对接口 IID 的引用,用于通过 ppv进行检索,通常IID_IObjectArray。
[out] ppv
类型:void**
此方法返回时,包含 riid中请求的接口指针。 这通常是一个 IObjectArray,它表示 IShellItem 或 IShellLink 对象,这些对象代表已删除目标列表中的项。
返回值
类型:HRESULT
如果此方法成功,则返回 S_OK。 否则,它将返回 HRESULT 错误代码。
言论
可以通过用户操作从跳转列表 UI 中删除项目。 然后,该项目标记为已删除,不再显示。 应用程序可以使用此方法来告知用户已删除哪些项目,以便它不知道不在其自定义列表中显示它们。 例如,在启动应用程序时应调用此方法,如果该应用程序不会通过 ICustomDestinationList::BeginList生成新列表。
强烈建议应用程序在用户选择删除该目标时清除任何目标跟踪数据。 如果用户将来再次访问该目标,则可以将其重新添加到跳转列表,并再次累积数据。 调用 ICustomDestinationList::BeginList 时,将检索此方法检索到的相同已删除的目标列表。 在这种情况下,应用程序不得立即尝试重新插入任何已删除的项,或者调用 AppendCategory 将失败。 这可确保应用程序遵守用户删除项的意图。
如果应用程序具有显式应用程序用户模型 ID(AppUserModelID),则必须在调用此方法之前调用 SetAppID。
即使应用程序调用 GetRemovedDestinations,并在列表中找到一个项目,该项的还原概率高于新的自定义跳转列表,应用程序应编写跳转列表而不使用该项,并且仅在用户再次访问该列表后再将其重新添加到列表中。
应用程序可以将 最近 或 频繁已知类别 添加到其自定义跳转列表。 即使这些项未显示在任何自定义类别中,该类别中的项也可能位于已删除的项目列表中。 在这种情况下,如果存储了任何项,应用程序仍应清除该项目的任何使用情况数据。
调用 GetRemovedDestinations 不会清除已删除的目标数据。 BeginList 下一代列表需要此数据。 不再需要已删除的目标数据,并在 BeginList启动列表生成会话后清除,继续不对 appendCategory 调用失败,并通过调用 CommitList完成。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 7 [仅限桌面应用] |
支持的最低服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | shobjidl_core.h (包括 Shobjidl.h) |
库 | Shell32.lib |
DLL | Shell32.dll(版本 6.1 或更高版本) |