Windows 7 Light-Up: Make Your Applications Shine on Windows 7

With the latest version of Windows, your users are moving into some sunny new digs. Take a look at four of the biggest new UI features they're finding and learn how to Light Up your application for Windows 7. 


As you know by now, your application will run in Microsoft® Windows® 7 beautifully. But to really shine, your app should take advantage of several new features designed to enhance your user experience and make it consistent across all Windows 7 applications. Here are four particularly cool features and what you need to know to Light Up your app in Windows 7.

Jump Lists
One of the first things you probably noticed about the Windows 7 interface is the new and improved Taskbar at the bottom (by default) of the screen. The new Taskbar offers a lot of additional functionality for the user. But of particular interest to the savvy app developer will be its use of Jump Lists.

You know how in previous versions of Windows you could access your most frequently used applications from, or pin your favorite apps to, the Start menu? In Windows 7 you can do something similar, but for each individual application. That's essentially what a Jump List is—an app-specific mini-Start button. But instead of launching apps, users right-click the app on the Taskbar to launch Tasks or Destinations, in other words, features, documents, URLs, folders, and other things related to that particular application. Oh and one more thing—if the app is pinned, then these Jump Lists are available whether or not the app is actually running.

Get Started
  • Windows 7 API Code     Pack

  • Windows 7 Training Kit     for Developers

  • Windows 7 SDK

  • Join the Platform Ready     Program
  • Without any code changes, your app may already have helpful Jump Lists. If you've implemented the Recent Items API then your app's recent items should show up on the Jump List. Ditto with Frequent Items and the Common File Dialog—it's probably already there. In addition, default Jump List functionality allows users to pin the app to the Taskbar or remove it.

    But to really light up your app, you can use Jump Lists to surface actual features of your product. Say you have a music player. Your Jump List might allow the user to Play, Stop, change playlists, or even try out new tunes recommended by you via some secret sauce in the app. Productivity apps might launch a specific template or form. Custom enterprise apps might lift their most important functions from the bowels of nested menus right to the Jump List, or even launch complementary applications.

    This is a feature you as the developer will want to take advantage of as quickly as possible. To do so, begin learning about the Application ID (AppID) and the Microsoft.WindowsAPICodePack.Shell.Taskbar and Microsoft.WindowsAPICodePack.Shell.JumpList namespaces.

    Currently, when your app is launched, Windows 7 calculates an AppID for it before adding it to the Taskbar. This gives your app a place on the playing field, but not much else. To do anything special, like having separate Taskbar buttons for different processes or windows within your app, you should take over this process by setting yourself the AppID property of the Taskbar object (to set the AppID for the entire application) or by using the IPropertyStore object returned by calling the SHGetPropertyStoreForWindow function (to set the AppID for a window).

    Get Microsoft Platform Ready!
    The Microsoft Platform Ready program provides support during the three key phases of the process: development, testing and marketing. Sign up today and reap the benefits.

    Using AppIDs yields another big benefit: they come into play when creating Jump Lists for your app. Though you may see examples of creating Jump Lists without assigning them to an AppID, learning to work with the AppID gives you better control and more options, like reapplying the Jump List or variation thereof to a child app.

    Before all else, you should install the Windows 7 SDK. Then, native code developers will use the ICustomDestinationList interface. Managed code developers will use the Windows API Code Pack and the namespaces mentioned above, as in the following snippet, which creates a Jump List, a category, and an item for that category:

    using Microsoft.WindowsAPICodePack.Shell;
    using Microsoft.WindowsAPICodePack.Taskbar;
    ...
    Taskbar.AppId = thisAppId;	// Set elsewhere
    thisJumpList = Taskbar.JumpList;
    JumpListCustomCategory thisCategory = new JumpListCustomCategory("Links");
    thisCategory.AddJumpListItems(new JumpListLink("http://www.internet.com", "Internet.com"));
    thisJumpList.AddCustomCategories(thisCategory);
    thisJumpList.Refresh();

    Along those lines, here are a couple of walkthroughs to get you started:

    More from Microsoft

    Microsoft Platform Ready   *   msdev   *   msdev facebook   *   WP7 Phone dev program
      Next Page: Libraries
    Page 1: Jump ListsPage 3: Windows 7 Ribbon and Federated Search
    Page 2: LibrariesPage 4: Additional Features and Resources
    Bytes by MSDN
    Listen or watch influential community and Microsoft developers talk on topics they are passionate about.
    Let's talk Windows Phone 7! Join our latest series of Bytes by MSDN as Tim Huckaby kicks it off with an interview with Brandon Watson, Director of Developer Experience for Windows Phone 7 at Microsoft.
    Jim O'Neil explains how cloud computing can be a startup's best friend.
    Cliff Simpkins and Brian Gorbett discuss the Windows Phone 7 developer experience and how they will make developers rich.
    Whurley disucsses why developing on the Windows Phone 7 platform is enjoyable.
    Chris Maliwat talks about how Internet Explorer 9 can improve site performance.
    How Do I Videos