ICustomDestinationList::AddUserTasks 方法 (shobjidl_core.h)

指定要包含在自定义跳转列表 的“任务” 类别中的项。

语法

HRESULT AddUserTasks(
  [in] IObjectArray *poa
);

参数

[in] poa

类型: IObjectArray*

指向 IObjectArray 的 指针,表示一个或多个 IShellLink (或更罕见的 IShellItem) 表示任务的对象。

注意 此处使用的任何 IShellLink 都必须通过 SetArguments 声明参数列表。 不支持将没有参数的 IShellLink 对象添加到自定义类别。 用户无法从跳转列表中固定或取消固定此类项,也无法添加或删除它们。
 

返回值

类型: HRESULT

如果成功,则返回 S_OK,否则返回错误值。

注解

在调用此方法之前,必须调用 ICustomDestinationList::BeginList

默认情况下, “任务” 类别标头始终显示在列表中,除非类别为空。 无法更改此标头文本。 它以用户所选的语言显示。

尽管“任务”类别始终显示为跳转列表中的最后一个类别,但优先于列表中所有其他类别。 填充此列表,然后将剩余空间分配给其他类别。 与其他类别不同,用户无法删除或固定 “任务” 类别中的项。 应用程序必须将此类别中任务用户的值与其他类别所需的空间相平衡。

任务应作为一个整体应用于应用程序;它们并非特定于单个窗口或文档。 对于这些更精细的上下文任务,应用程序可以通过 缩略图工具栏提供这些任务。

注意 强烈建议任务列表是静态的。 无论应用程序的状态或状态如何,任务列表都应保持不变-即使应用程序未运行,这些任务也可用。 在更新任务列表时,不会禁止使用 AddUserTask 更改 任务列表,但你应考虑到这可能会使用户感到困惑,而用户不期望跳转列表的这一部分会发生更改。 但是,如果应用程序确实选择将任务的状态(例如“登录”更改为“注销”),则该应用程序负责确保任务列表正确且最新。 此外,如果应用程序意外关闭,任务栏将使用任务列表的最后一个已知良好版本,而无需调用应用程序来请求,从而导致项目过期的可能性。
 

通过 poa 指向的 IObjectArray 提供的 IShellLink 实例必须提供以下内容:

必须通过项目的 System.Title (PKEY_Title) 属性设置显示名称。 属性可以直接保存显示名称,也可以是间接字符串表示形式,例如“@shell32.dll,-1324”,以使用存储的字符串。 间接字符串使项名称能够以用户的所选语言显示。

(可选)可以设置 SetDescription) (说明字段,为跳转列表中的项提供自定义工具提示。

任务列表还可以包含分隔符。 创建这些方法包括一个空白的 IShellLink (这是参数列表要求) 的单个例外,并通过 IShellLink 对象的 IPropertyStore 接口将其 System.AppUserModel.IsDestListSeparator 属性设置为 TRUE将忽略 IShellLink 中的其他任何值。 分隔符不会占用列表中的全部空间,并且不计入列表中的项数。 如果两个分隔符之间没有提供任何项,则不显示其中一个分隔符。 也会忽略列表开头或末尾的分隔符。

要求

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

另请参阅

ICustomDestinationList

ICustomDestinationList::AppendCategory

ICustomDestinationList::AppendKnownCategory

任务栏扩展