Windows Vista SideShow Gadgets: Little Apps, Big Impact : Page 2

Vista's SideShow feature supports auxiliary screen devices that can run applications even when the main computer is turned off, letting users read news, play games, or check their email without powering up the main computer.

by Wei-Meng Lee

Mar 1, 2007

Page 2 of 4

Understanding How SideShow Works
By default, the SideShow device comes with three gadgets:

Welcomea welcome application that shows some message about using the SideShow device.

Reversithe Reversi board game

Columnsanother Tetris-like game

As you install additional gadgets through the Windows SideShow application in Control Panel, they will appear in the main screen of the SideShow device (see Figure 6).

Figure 6. Gadget List: The figures shows a SideShow device with more than the default gadgets installed.

Figure 7. A Selected Gadget: After you select the Windows Media Player gadget, the gadget displays a list of possible actions.

To select a gadget, simply highlight it using the up/down arrow keys and then press the OK button. Figure 7 shows the Windows Media Player gadget selected, displaying a list of choices.

Figure 8. Displaying Contextual Menus: The figure shows the effect of clicking the MENU button on two different screens.

At any time, you can press the MENU button to display a contextual menu. Figure 8 shows the outcome of pressing the MENU button in two different screens. Each displays a different set of menus.

Configuring SideShow Devices
Some SideShow gadgets work by communicating with a SideShow devicesending it information constantly which the device displays on the screen. That way, even when the computer is off, the SideShow device can still display information from the gadget (from its cache). However, in this case, the gadget would not be able to send updated information to the SideShow device.

Author's Note. There are exceptions to the statement above. The Reversi and Columns gadgets do not work based on this communication model. Technically, a SideShow device is powered using the .NET MicroFramework, and these two applications are .NET MicroFramework applications.

As shown in Figure 5, the Control Panel applet provides an option labeled "Set my computer to wake automatically." Clicking on this option shows the window you can see in Figure 9. Using this option wakes your computer up out of sleep mode periodically so that your gadgets can send updated information to your SideShow device.

Figure 9. Wake Up! Through the SideShow applet, you can configure your computer to wake up periodically.

You can also configure the properties of your SideShow device by clicking on the device name as shown in Figure 5. Figure 10 shows the configurable settings.
Now that you have a better understanding of how SideShow gadgets and devices work, it is now time for the interesting partdeveloping your own SideShow gadgets!

Developing SideShow Gadgets
To program a SideShow gadget to talk to a SideShow device, you use the native API calls in AuxiliaryDisplayApi.dll. However, this is a not a managed class and hence it is only directly available to C++ developers. Fortunately, Microsoft has released a SideShow managed class that talks directly to this native API so that managed developers (VB and C#) can call it directly from their .NET application. You need to download the SideShow managed class to follow along with the rest of this tutorial.
After downloading and installing the SideShow managed class, you can find the main libraryMicrosoft.SideShow.dll, in the C:\Program Files\Reference Assemblies\Microsoft\Windows SideShow\v1.0 folder.

Before developing a first gadget it's important to know that a SideShow gadget application can be a Windows Forms application, a Windows service, or a Vista SideBar gadget, as long as it can send information to a SideShow device. For this article, I'll develop a Windows application.