Developing for the Windows 7 Taskbar – Jump into Jump Lists – Part 1

Welcome to yet another Windows 7 Taskbar post. In the previous post, Developing for the Windows 7 Taskbar – Get to Know Your Application ID , we introduced a very important component of the underlying architecture of the Taskbar, the Application ID (AppID), which is the key controller of how different applications are grouped under the same Taskbar button. The AppID also has a direct affect on how Jump List items are aggregated and populated in the Jump List.

Microsoft designed the Windows 7 Taskbar to provide users with quick and easy access to those “things” they use most frequently. “Things” can be any type of content such as pictures, music, word documents or links and shortcuts to applications or folders, or any other type of “clickable” item in Windows. By quick and easy access, we mean the ability to access commonly used programs with a single mouse click or with a significantly reduced number of clicks per operation. Quick and easy access also means users should be able to “jump” directly to those things they want to work with and start working with them in a single mouse click. To provide this functionality, the Windows 7 Taskbar introduces the concept of “Jump Lists.” More info about the reasons and background for creating the Taskbar Jump List can be found in Chaitanya’s Engineering Windows 7: The Windows 7 Taskbar post, and Windows 7 New Taskbar - An Overview video on Channel 9.

As much as I love talking about the reasons for creating the new Taskbar (since I love user functionality and usability in general) I am going to focus on the API for using the Taskbar. As a developer, you should think of a Jump List as your application's own mini Start Menu. Jump Lists bring to the surface commonly used destinations (nouns) and tasks (verbs) of a program. This enables easy user access to destinations by eliminating the need to launch the application and then load the relevant content, or by performing common tasks without launching the application in advance. The following picture illustrates how Jump Lists work with Microsoft Office Word 2007. You can see that under the “Recent” category, there is a list of recent documents that I’ve used with Office Word. Clicking on one of the items in the “Recent” list will launch Office Word with the relevant document already loaded.

image
We previously identified Word 2007 as an example of an application that “plays” nicely with the Windows 7 Taskbar even if that application was released a long time before the Windows 7 Taskbar was available. The Taskbar buttons are all grouped under the same Taskbar icon and the Jump list is automatically populated with the most recently used Word documents. In the next post, I will explain in detail how Jump List are populated automatically like Office Word 2007 and word documents. For this post, let’s focus on the different Jump Lists players.

The default Out-of-The-Box tasks that are shipped provide the means to launch a new instance of the application, to pin or unpin an application to the taskbar, and to close the application. You can access the Jump List by right clicking on an application icon in the Taskbar. However, as the following picture illustrates, you can opt to take more control of the Taskbar experience by customizing the context of the Jump List for your application.

image 

Definitions from the Windows 7 SDK:

”… Destinations are items that appear in the Recent, Frequent, or custom categories (the 'Important' category in the diagram above), based on the user’s item usage. Destinations can be files, folders, Web sites, or other content-based items, but are not necessarily file-backed. Destinations can be pinned to or removed from the Jump List by the user. They are generally represented by IShellItem objects, but they can also be IShellLink objects…”

”…Tasks are common actions performed in applications that apply to all users of the application regardless of the individual usage patterns. Task can’t be pinned or removed. Tasks are represented by IShellLink objects because they are actually links (with parameters – optional) to commands – 'Actions'…”

As developer, you can:

  1. Control Application Destinations (that is control the items you want users to be able to “Jump” directly into and start working on)
    1. Destinations can be any one of the known categories such as Recent or Frequent.
    2. The Custom category is just like any other Destination category, except that it allows you to create a new name for that category as well as populate it with items of your choice.
    3. The Pinned category is provided for pinned items that users want to keep permanently in their Jump Lists. Please note: ONLY users can pin items in the Jump List, there is NO supported programmatic way that you, as developer, can pin an item.
    4. You can completely remove the Pinned category from the Jump List so the user cannot pin items – but you might want to think twice before preventing users from pinning items in your application.
  2. Define Common User Tasks
    1. The Taskbar surfaces its own out-of-the-box tasks such as launching, pinning/unpinning, or closing the application. As developers we have no control over the Taskbar Tasks. However, we do control the User Tasks.
    2. User Tasks are common tasks the application developer wants to surface at the Jump List level that will enable users to perform a task directly from the Jump List (for example, Play all music in media player without switching to media player). Usually, this will result in launching an instance of the application and performing the task, or launching another application, like Internet Explorer, when clicking on the “Go to MSN Home Page” task in the Windows Live Messenger Jump List as shown in the next picture. Again, all of the above Jump List functionality saves time and reduces the number of clicks needed to achieve the user's end goal, thereby making the user happy.

imageIn the next post, we will dive into the Taskbar Jump List API. But first, we need to address the Taskbar programming model. The Taskbar exposes its set of APIs like any other Windows Shell component, through a set of COM interfaces. However, there are a few actions we developers can do even before starting to use the Windows Taskbar COM APIs.


Comments

  1. Posted on: June 22, 2009 at 8:49PM  

    Would you please allow to hide labels but not combine please on the task bar.

    Thank you,

    Bob

  2. Posted on: June 26, 2009 at 7:22AM  

    Please put Maximize at least in the jumplist by SP1.

Trackbacks

  1. Posted by: RSS Digest #91 on June 22, 2009 at 10:52PM

    Pingback from  RSS Digest #91

  2. Posted by: Developing Jump Lists for Windows 7 Taskbar – Part 1 on June 23, 2009 at 5:39AM

    Pingback from  Developing Jump Lists for Windows 7 Taskbar – Part 1

  3. Posted by: Dew Drop – June 23, 2009 | Alvin Ashcraft's Morning Dew on June 23, 2009 at 7:35AM

    Pingback from  Dew Drop – June 23, 2009 | Alvin Ashcraft's Morning Dew

  4. Posted by: Findings of June 23 - Jack is Here on June 23, 2009 at 7:40PM

    Pingback from  Findings of June 23 - Jack is Here

  5. Posted by: Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 1|Join Our Story!|AngNetwork Blog on June 24, 2009 at 1:00AM

    Pingback from  Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 1|Join Our Story!|AngNetwork Blog

  6. Posted by: Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2 | Windows Seven 7 on June 25, 2009 at 9:05PM

    Pingback from  Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2 | Windows Seven 7

  7. Posted by: Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part … | Tech Talk on June 26, 2009 at 2:46AM

    Pingback from  Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part … | Tech Talk

  8. Posted by: Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2 | Windows 7 Information, News, Downloads, Support Forums on June 26, 2009 at 10:29AM

    Pingback from  Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2 | Windows 7 Information, News, Downloads, Support Forums

  9. Posted by: Mesothelioma News - Asbestos Removed From Alabama School Gym on June 28, 2009 at 1:25AM

    Pingback from  Mesothelioma News - Asbestos Removed From Alabama School Gym

  10. Posted by: You Get The . Info » Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2 - 367th Edition on June 29, 2009 at 9:56PM

    Pingback from  You Get The . Info » Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2 - 367th Edition

  11. Posted by: Technology Info » Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2 on June 30, 2009 at 7:31AM

    Pingback from  Technology Info  » Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2

  12. Posted by: Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2 | Everything Microsoft on July 02, 2009 at 1:19AM

    Pingback from  Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2 | Everything Microsoft

  13. Posted by: Dive A Little Deep in Jump List plus How to Create your own Customized Jump List | Windows 7 Hacker on July 02, 2009 at 9:03AM

    Pingback from  Dive A Little Deep in Jump List plus How to Create your own Customized Jump List | Windows 7 Hacker

  14. Posted by: Windows Home Server Power Pack 3 Beta - Includes Awesome Media Center Enhancements | The Media Center Blog on July 17, 2009 at 8:44AM

    Pingback from  Windows Home Server Power Pack 3 Beta - Includes Awesome Media Center Enhancements | The Media Center Blog

  15. Posted by: It’s the Windows Home Server Power Pack 3 Press Release! | We Got Served - Windows Home Server & Your Digital Home on July 17, 2009 at 4:02PM

    Pingback from  It’s the Windows Home Server Power Pack 3 Press Release! | We Got Served - Windows Home Server & Your Digital Home

  16. Posted by: It???s the Windows Home Server Power Pack 3 Press Release! | Windows Home Server on July 17, 2009 at 11:04PM

    Pingback from  It???s the Windows Home Server Power Pack 3 Press Release! | Windows Home Server

  17. Posted by: Windows Home Server Power Pack 3 Beta released | Ramoonus.nl on July 19, 2009 at 10:44AM

    Pingback from  Windows Home Server Power Pack 3 Beta released | Ramoonus.nl

  18. Posted by: Windows homeserver – WHS Power Pack 3 is coming…… « The rants of a caffeine addict….. on July 19, 2009 at 5:51PM

    Pingback from  Windows homeserver – WHS Power Pack 3 is coming…… «  The rants of a caffeine addict…..

  19. Posted by: Windows 7 for Developers on July 28, 2009 at 12:31PM

    We covered the basics of the Windows 7 Taskbar in Developing for the Windows 7 Taskbar – Application

  20. Posted by: Windows 7 Taskbar Dynamic Overlay Icons and Progress Bars | Windows Seven 7 on July 28, 2009 at 1:33PM

    Pingback from  Windows 7 Taskbar Dynamic Overlay Icons and Progress Bars | Windows Seven 7

  21. Posted by: Windows 7 Taskbar Dynamic Overlay Icons and Progress Bars | Windows 7 Information, News, Downloads, Support Forums on July 29, 2009 at 1:58AM

    Pingback from  Windows 7 Taskbar Dynamic Overlay Icons and Progress Bars | Windows 7 Information, News, Downloads, Support Forums

  22. Posted by: Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2 | Tom Richardson on August 09, 2009 at 4:49PM

    Pingback from  Developing for the Windows 7 Taskbar ??? Jump into Jump Lists ??? Part 2 | Tom Richardson

  23. Posted by: Windows Home Server Power Pack 3 BETA ??? Includes enhancements for Windows 7-based computers on October 24, 2009 at 1:21PM

    Pingback from  Windows Home Server Power Pack 3 BETA ??? Includes enhancements for Windows 7-based computers

  24. Posted by: Windows Home Server Power Pack 3 BETA ??? Includes enhancements for Windows 7-based computers on October 25, 2009 at 6:16PM

    Pingback from  Windows Home Server Power Pack 3 BETA ??? Includes enhancements for Windows 7-based computers

  25. Posted by: Windows 7 for Developers on December 04, 2009 at 1:45PM

    It is time to return to our usual routine of describing Windows 7 APIs. We already covered the basics

  26. Posted by: Developing for Windows 7 Taskbar – Thumbnail Toolbars | Windows Seven 7 on December 04, 2009 at 2:37PM

    Pingback from  Developing for Windows 7 Taskbar – Thumbnail Toolbars | Windows Seven 7

  27. Posted by: Goldendevelopersworld.com » Blog Archive » Developing for Windows 7 Taskbar – Thumbnail Toolbars on December 04, 2009 at 6:15PM

    Pingback from  Goldendevelopersworld.com  » Blog Archive   » Developing for Windows 7 Taskbar – Thumbnail Toolbars