Part 1 - Introduction
A lot of things happen when a new version of Windows is finished. Parties are thrown, vacations are had, millions of discs are pressed, boxed, and shipped around the world. There’s another tradition, however, that you may remember from previous releases. We call them PowerToys… and I think Vista is shaping up to have the coolest ones yet!
If you’re not familiar with what a PowerToy is, the Windows XP Powertoy page has a pretty good description:
PowerToys add fun and functionality to the Windows experience. What are they? PowerToys are additional programs that developers work on after a product has been released.
Note: We take great care to ensure that PowerToys work as they should, but they are not part of Windows and are not supported by Microsoft. For this reason, Microsoft Technical Support is unable to answer questions about PowerToys.
In this series of blog posts, I’m going to describe a PowerToy that I’ve been working on by telling you about how it was developed. In addition to the short history of my particular project, I will touch on the following in this series:
- Writing a Sidebar Gadget.
- Accessing the Windows Search indexer APIs from script.
- Hosting a .NET control in a Sidebar Gadget.
- Accessing the Windows Search query APIs from .NET.
- Leveraging the Windows Shell APIs to retrieve thumbnails, context menus, and more from search result items – also from .NET.
First, a bit of background. Users of Windows Desktop Search on Windows XP may recall the presence of a tray icon and a status dialog like the one below:
In Vista you can see the state of the indexer in the Control Panel, but many power users (including myself) would rather have this information more readily accessible, as well as gain greater control over the indexer’s behavior. One evening shortly after WDS 3.0 wrapped up, I decided to take a look at the Sidebar Gadget SDK as I always thought it was a really cool technology. My first attempt at a gadget was pretty simple, and looked like this:

After sending those screenshots to a couple of discussion lists inside the company, I immediately became inundated with requests for a copy of the gadget (as well as helpful suggestions for how to improve it). Someone said, “We should add this to the list of powertoys!” And so we did.
I went through another design, and had some suggestions that I should add a search box. My next attempt looked like this:

No one, including myself, liked the ugly white drop-down menu for the indexing speed. So I decided to try something different, which turned out like this:

I quickly realized that ripping off Media Player buttons wasn’t the most aesthetically pleasing route to take. But I liked the general pause/play/fast metaphor and got good feedback from my internal beta testers. So I turned to Mike, one of our brilliant Design PMs, to help me with the look. I’m very pleased with what he came up with, and here you can see the current gadget running on my system.
