CJumpList 类

CJumpList 是当你右键单击任务栏中的图标时显示的快捷方式列表。

语法

class CJumpList;

成员

公共构造函数

名称 描述
CJumpList::CJumpList 构造 CJumpList 对象。
CJumpList::~CJumpList 销毁 CJumpList 对象。
名称 描述
CJumpList::AbortList 在不提交的情况下中止列表生成事务。
CJumpList::AddDestination 已重载。 将目标添加到列表中。
CJumpList::AddKnownCategory 将已知类别追加到列表中。
CJumpList::AddTask 已重载。 将项添加到规范“任务”类别。
CJumpList::AddTasks 将项添加到规范“任务”类别。
CJumpList::AddTaskSeparator 在任务之间添加分隔符。
CJumpList::ClearAll 移除到目前为止已添加到 CJumpList 的当前实例的所有任务和目标。
CJumpList::ClearAllDestinations 移除到目前为止已添加到 CJumpList 的当前实例的所有目标。
CJumpList::CommitList 结束列表生成事务,并将报告的列表提交到关联的存储(这里是指注册表)。
CJumpList::GetDestinationList 检索指向目标列表的接口指针。
CJumpList::GetMaxSlots 检索最大项数,包括可在调用应用程序的目标菜单中显示的类别标头。
CJumpList::GetRemovedItems 返回表示已移除目标的项数组。
CJumpList::InitializeList 开始列表生成事务。
CJumpList::SetAppID 设置要生成的列表的应用程序用户模型 ID。

继承层次结构

CJumpList

要求

标头:afxadv.h

CJumpList::~CJumpList

销毁 CJumpList 对象。

~CJumpList();

CJumpList::AbortList

在不提交的情况下中止列表生成事务。

void AbortList();

备注

调用此方法的效果与在不调用 CommitList 的情况下销毁 CJumpList 的效果相同。

CJumpList::AddDestination

将目标添加到列表中。

BOOL AddDestination(
    LPCTSTR lpcszCategoryName,
    LPCTSTR strDestinationPath);

BOOL AddDestination(
    LPCTSTR strCategoryName,
    IShellItem* pShellItem);

BOOL AddDestination(
    LPCTSTR strCategoryName,
    IShellLink* pShellLink);

参数

lpcszCategoryName
指定类别名称。 如果指定的类别不存在,将创建该类别。

strDestinationPath
指定目标文件的路径。

strCategoryName
指定类别名称。 如果指定的类别不存在,将创建该类别。

pShellItem
指定表示要添加的目标的 shell 项。

pShellLink
指定表示要添加的目标的 shell 链接。

返回值

注解

CJumpList 的实例在内部累积添加的目标,然后在 CommitList 中提交它们。

CJumpList::AddKnownCategory

将已知类别追加到列表中。

BOOL AddKnownCategory(KNOWNDESTCATEGORY category);

参数

category
指定已知的类别类型。 可以是 KDC_RECENT 或 KDC_KNOWN。

返回值

备注

已知类别有“频繁”和“最近”类别,我们将针对使用 SHAddToRecentDocs(或间接使用,因为 shell 会在某些情况下代表应用程序调用它)的每个应用程序自动计算这些类别。

CJumpList::AddTask

将项添加到规范“任务”类别。

BOOL AddTask(
    LPCTSTR strTargetExecutablePath,
    LPCTSTR strCommandLineArgs,
    LPCTSTR strTitle,
    LPCTSTR strIconLocation,
    int iIconIndex);

BOOL AddTask(IShellLink* pShellLink);

参数

strTargetExecutablePath
指定目标任务路径。

strCommandLineArgs
指定由 strTargetExecutablePath 指定的可执行文件的命令行自变量。

strTitle
将在目标列表中显示的任务名称。

strIconLocation
将在目标列表中以及标题中显示的图标的位置。

iIconIndex
图标索引。

pShellLink
表示要添加的任务的 shell 链接。

返回值

备注

CJumpList 的实例将累积指定的任务,并在 CommitList 期间将其添加到目标列表。 任务项将显示在应用程序目标菜单底部的类别中。 在 UI 中填充此类别时,此类别优先于所有其他类别。

CJumpList::AddTasks

将项添加到规范“任务”类别。

BOOL AddTasks(IObjectArray* pObjectCollection);

参数

pObjectCollection
要添加的任务的集合。

返回值

备注

CJumpList 的实例将累积指定的任务,并在 CommitList 期间将其添加到目标列表。 任务项将显示在应用程序目标菜单底部的类别中。 在 UI 中填充此类别时,此类别优先于所有其他类别。

CJumpList::AddTaskSeparator

在任务之间添加分隔符。

BOOL AddTaskSeparator();

返回值

如果成功,则为非零值,否则为 0。

CJumpList::CJumpList

构造 CJumpList 对象。

CJumpList(BOOL bAutoCommit = TRUE);

参数

bAutoCommit
如果此参数为 FALSE,则列表不会在析构函数中自动提交。

CJumpList::ClearAll

移除到目前为止已添加到 CJumpList 的当前实例的所有任务和目标。

void ClearAll();

备注

此方法将清除并释放所有数据和内部接口。

CJumpList::ClearAllDestinations

移除到目前为止已添加到 CJumpList 的当前实例的所有目标。

void ClearAllDestinations();

备注

如果需要移除到目前为止已在当前目标列表生成会话中添加的所有目标,并再次添加其他目标,请调用此函数。 如果内部 ICustomDestinationList 已经过初始化,则保持它的活动状态。

CJumpList::CommitList

结束列表生成事务,并将报告的列表提交到关联的存储(这里是指注册表)。

BOOL CommitList();

返回值

备注

提交是原子性操作。 如果提交失败,将返回错误。 调用 CommitList 时,将清理已移除项的当前列表。 调用此方法会重置对象,使其没有活动列表生成事务。 若要更新列表,需要再次调用 BeginList

CJumpList::GetDestinationList

检索指向目标列表的接口指针。

ICustomDestinationList* GetDestinationList();

返回值

备注

如果跳转列表尚未经过初始化,或者已被提交或中止,返回值将为 NULL。

CJumpList::GetMaxSlots

检索最大项数,包括可在调用应用程序的目标菜单中显示的类别标头。

UINT GetMaxSlots() const;

返回值

备注

应用程序只能报告上限为此值的项和类别标头的组合数量。 如果对 AppendCategoryAppendKnownCategoryAddUserTasks 的调用次数超过此数字,它们将返回失败。

CJumpList::GetRemovedItems

返回表示已移除目标的项数组。

IObjectArray* GetRemovedItems();

返回值

备注

在跳转列表的初始化过程中会检索已移除的目标。 在生成新的目标列表时,应用程序应首先处理已移除的目标列表,从而清除已移除列表枚举器返回的任何项的跟踪数据。 如果应用程序尝试提供一个刚刚在当前的 BeginList 调用启动的事务中移除的项,重新添加该项的方法调用将失败,以确保应用程序遵循已移除的列表。

CJumpList::InitializeList

开始列表生成事务。

BOOL InitializeList();

返回值

备注

无需显式调用此方法,除非你希望使用 GetDestinationList 检索指向 ICustomDestinationList 的指针、使用 GetMaxSlots 检索可用槽数或使用 GetRemovedItems 检索已移除项的列表。

CJumpList::SetAppID

设置要生成的列表的应用程序用户模型 ID。

void SetAppID(LPCTSTR strAppID);

参数

strAppID
指定应用程序用户模型 ID 的字符串。

另请参阅