ICustomDestinationList::GetRemovedDestinations 方法 (shobjidl_core.h)

检索用户已从此自定义跳转列表要替换的现有跳转列表中删除的目标的当前列表。

语法

HRESULT GetRemovedDestinations(
  [in]  REFIID riid,
  [out] void   **ppv
);

参数

[in] riid

类型: REFIID

对要通过 ppv 检索的接口的 IID 的引用,通常IID_IObjectArray。

[out] ppv

类型: void**

此方法返回时,包含 riid 中请求的接口指针。 这通常是 一个 IObjectArray,它表示 IShellItemIShellLink 对象的集合,这些对象表示已删除目标列表中的项。

返回值

类型: 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 [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)
Library Shell32.lib
DLL Shell32.dll (6.1 或更高版本)

另请参阅

ICustomDestinationList

ICustomDestinationList::BeginList

任务栏扩展