Understanding How SideShow Works
By default, the SideShow device comes with three gadgets:
- Welcomea welcome application that shows some message about using the SideShow device.
- Reversithe Reversi board game
- Columnsanother 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 devicesending 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.||
|Figure 10. SideShow Device Configuration Options: The figure shows the device configuration options available through the SideShow Device Control Panel applet.||
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 partdeveloping 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 libraryMicrosoft.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.