CJumpList Class

A CJumpList is the list of shortcuts revealed when you right click on an icon in the task bar.

Syntax

class CJumpList;  

Members

Public Constructors

Name Description
CJumpList::CJumpList Constructs a CJumpList object.
CJumpList::~CJumpList Destroys a CJumpList object.
Name Description
CJumpList::AbortList Aborts a list-building transaction without committing.
CJumpList::AddDestination Overloaded. Adds destination to the list.
CJumpList::AddKnownCategory Appends a Known Category to the list.
CJumpList::AddTask Overloaded. Adds items to the canonical Tasks category.
CJumpList::AddTasks Adds items to the canonical Tasks category.
CJumpList::AddTaskSeparator Adds a separator between tasks.
CJumpList::ClearAll Removes all tasks and destinations that have been added to the current instance of CJumpList so far.
CJumpList::ClearAllDestinations Removes all destinations that have been added to the current instance of CJumpList so far.
CJumpList::CommitList Ends a list-building transaction and commits the reported list to the associated store (the registry in this case.)
CJumpList::GetDestinationList Retrieves an interface pointer to destination list.
CJumpList::GetMaxSlots Retrieves the maximum number of items, including category headers that can display in the calling application's destination menu.
CJumpList::GetRemovedItems Returns array of items that represent removed destinations.
CJumpList::InitializeList Begins a list-building transaction.
CJumpList::SetAppID Sets the Application User Model ID for the list that will be built.

Inheritance Hierarchy

CJumpList

Requirements

Header: afxadv.h

CJumpList::~CJumpList

Destroys a CJumpList object.

~CJumpList();

CJumpList::AbortList

Aborts a list-building transaction without committing.

void AbortList();

Remarks

Calling this method has the same effect as destroying CJumpList without calling CommitList.

CJumpList::AddDestination

Adds destination to the list.

BOOL AddDestination(
    LPCTSTR lpcszCategoryName,  
    LPCTSTR strDestinationPath);


BOOL AddDestination(
    LPCTSTR strCategoryName,  
    IShellItem* pShellItem);


BOOL AddDestination(
    LPCTSTR strCategoryName,  
    IShellLink* pShellLink);

Parameters

lpcszCategoryName
Specifies a category name. If the specified category does not exist, it will be created.

strDestinationPath
Specifies a path to destination file.

strCategoryName
Specifies a category name. If the specified category does not exist, it will be created.

pShellItem
Specifies a Shell Item representing the destination being added.

pShellLink
Specifies a Shell Link representing the destination being added.

Return Value

Remarks

The instance of CJumpList internally accumulates added destinations and then commits them in CommitList.

CJumpList::AddKnownCategory

Appends a Known Category to the list.

BOOL AddKnownCategory(KNOWNDESTCATEGORY category);

Parameters

category
Specifies a known category type. Can be either KDC_RECENT, or KDC_KNOWN.

Return Value

Remarks

Known Categories are the Frequent and Recent categories that we will automatically calculate for every application that utilizes SHAddToRecentDocs (or indirectly uses it as the shell will call it on the application's behalf in some scenarios).

CJumpList::AddTask

Adds items to the canonical Tasks category.

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

BOOL AddTask(IShellLink* pShellLink);

Parameters

strTargetExecutablePath
Specifies the target task path.

strCommandLineArgs
Specifies command line arguments of the executable specified by strTargetExecutablePath.

strTitle
Task name that will be displayed in the Destination List.

strIconLocation
Location of icon that will be displayed in the Destination List along with the title.

iIconIndex
Icon index.

pShellLink
Shell Link that represents a task to be added.

Return Value

Remarks

The instance of CJumpList accumulates specified tasks and adds them to the Destination List during CommitList. Task items will appear in a category at the bottom of the application's destination menu. This category takes precedence over all other categories when it is filled in the UI.

CJumpList::AddTasks

Adds items to the canonical Tasks category.

BOOL AddTasks(IObjectArray* pObjectCollection);

Parameters

pObjectCollection
A collection of tasks to be added.

Return Value

Remarks

The instance of CJumpList accumulates specified tasks and adds them to the Destination List during CommitList. Task items will appear in a category at the bottom of the application's destination menu. This category takes precedence over all other categories when it is filled in the UI.

CJumpList::AddTaskSeparator

Adds a separator between tasks.

BOOL AddTaskSeparator();

Return Value

Nonzero if it is successful, 0 if it is not.

CJumpList::CJumpList

Constructs a CJumpList object.

CJumpList(BOOL bAutoCommit = TRUE);

Parameters

bAutoCommit
If this parameter is FALSE the list is not automatically committed in destructor.

CJumpList::ClearAll

Removes all tasks and destinations that have been added to the current instance of CJumpList so far.

void ClearAll();

Remarks

This method clears and releases all data and internal interfaces.

CJumpList::ClearAllDestinations

Removes all destinations that have been added to the current instance of CJumpList so far.

void ClearAllDestinations();

Remarks

Call this function if you need to remove all destinations that have been added so far in the current session of destination list building and add other destinations again. If the internal ICustomDestinationList has been initialized, it's left alive.

CJumpList::CommitList

Ends a list-building transaction and commits the reported list to the associated store (the registry in this case).

BOOL CommitList();

Return Value

Remarks

The commit is atomic. An error will be returned if the commit fails. When CommitList is called, the current list of removed items will be cleaned up. Calling this method resets the object so that it does not have an active list-building transaction. To update the list, BeginList needs to be called again.

CJumpList::GetDestinationList

Retrieves an interface pointer to destination list.

ICustomDestinationList* GetDestinationList();

Return Value

Remarks

If the jump list has not been initialized, or has been committed or aborted, the returned value will be NULL.

CJumpList::GetMaxSlots

Retrieves the maximum number of items, including category headers that can display in the calling application's destination menu.

UINT GetMaxSlots() const;  

Return Value

Remarks

Applications may only report a number of items and category headers combined up to this value. If calls to AppendCategory, AppendKnownCategory, or AddUserTasks exceed this number, they will return failure.

CJumpList::GetRemovedItems

Returns array of items that represent removed destinations.

IObjectArray* GetRemovedItems();

Return Value

Remarks

The removed destinations are retrieved during initialization of jump list. When generating a new destination list, applications are expected to first process the removed destinations list, clearing their tracking data for any item returned by the removed list enumerator. If an application attempts to provide an item that was just removed in the transaction that the current call to BeginList started, the method call that re-added that item will fail, to ensure that applications are respecting the removed list.

CJumpList::InitializeList

Begins a list-building transaction.

BOOL InitializeList();

Return Value

Remarks

You don't need to call this method explicitly unless you wish to retrieve a pointer to ICustomDestinationList using GetDestinationList, the number of available slots using GetMaxSlots, or list of removed items using GetRemovedItems.

CJumpList::SetAppID

Sets the Application User Model ID for the list that will be built.

void SetAppID(LPCTSTR strAppID);

Parameters

strAppID
A string that specifies the Application User Model ID.

See Also

Classes