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,它表示表示已删除项的 IShellItem 和 IShellLink 对象的集合。
返回值
类型: HRESULT
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
如果应用程序具有显式应用程序用户模型 ID (AppUserModelID) ,则必须在调用此方法之前调用 ICustomDestinationList::SetAppID 。
在 ppv 参数中检索到的 IObjectArray 接口表示通过 GetRemovedDestinations 检索的已删除目标的相同列表。 生成新的跳转列表时,应用程序必须首先处理所有已删除的目标。 必须清除已删除列表中任何项目的跟踪数据。 如果应用程序尝试通过 AppendCategory 包含此已删除目标列表中存在的项, AppendCategory 调用将失败。 这可确保应用程序尊重用户选择的已删除项。 调用 CommitList 后,由于尝试重新添加自 BeginList 以来已进行的已删除项,因此对 AppendCategory 的调用没有失败,则会清除已删除的目标列表。 之后,如果用户继续使用该项,以前删除的项可以返回到目标列表。
在通过 AppendCategory、AppendKnownCategory 或 AddUserTask 进行任何调用之前,必须调用 BeginList 以启动列表。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | shobjidl_core.h (包括 Shobjidl.h) |
Library | Shell32.lib |
DLL | Shell32.dll (版本 6.1 或更高版本) |