ICustomDestinationList::BeginList 方法 (shobjidl_core.h)

启动自定义跳转列表的生成会话。

语法

HRESULT BeginList(
  [out] UINT   *pcMinSlots,
  [in]  REFIID riid,
  [out] void   **ppv
);

参数

[out] pcMinSlots

类型: UINT*

当此方法返回时,指针指向任务栏和“开始菜单属性”窗口中的“跳转Lists显示最近项目数”选项的当前用户设置。 默认值为 10。 这是要显示的最大目标数,它是所有目标的总数,而不考虑类别。 可以添加更多目标,但它们不会显示在 UI 中。

跳转列表将始终显示至少如此多的槽位-目标,如果有空间,则显示任务。

只要分隔符和标头总数不超过 4,此数字不包括分隔符和节标头。 如果空间受限,超出前四个的分隔符和节标头可能会减少显示的目标数。 此数字不会影响用于固定或取消固定、关闭窗口或启动新实例的标准命令条目。 它也不影响任务或固定项,可显示的项数取决于跳转列表的可用空间。

[in] riid

类型: REFIID

对在 ppv 中检索的接口的 IID 的引用,通常IID_IObjectArray,该接口表示当前存储在应用程序已删除目标列表中的所有项。 此信息用于确保已删除的项目不是新跳转列表的一部分。

[out] ppv

类型: void**

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

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

如果应用程序具有显式应用程序用户模型 ID (AppUserModelID) ,则必须在调用此方法之前调用 ICustomDestinationList::SetAppID

ppv 参数中检索到的 IObjectArray 接口表示通过 GetRemovedDestinations 检索的已删除目标的相同列表。 生成新的跳转列表时,应用程序必须首先处理所有已删除的目标。 必须清除已删除列表中任何项目的跟踪数据。 如果应用程序尝试通过 AppendCategory 包含此已删除目标列表中存在的项, AppendCategory 调用将失败。 这可确保应用程序尊重用户选择的已删除项。 调用 CommitList 后,由于尝试重新添加自 BeginList 以来已进行的已删除项,因此对 AppendCategory 的调用没有失败,则会清除已删除的目标列表。 之后,如果用户继续使用该项,以前删除的项可以返回到目标列表。

在通过 AppendCategoryAppendKnownCategoryAddUserTask 进行任何调用之前,必须调用 BeginList 以启动列表。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)
Library Shell32.lib
DLL Shell32.dll (版本 6.1 或更高版本)

另请参阅

ICustomDestinationList

任务栏扩展