If you want to build a single purpose device using CE or WM you have a couple of choices. If you are using CE you can build and incorporate your own shell replacement. What if you are using WM? In this case you have two choices:
- you can use the provided shell or
- build your own
This article looks at using the provided shell aka Today screen. In the future we will look at how you can build your own shell to replace the Today screen.
The WM shell and OS provide a lot of capabilities and abilities including
- create your own plug-ins
- customized themes
- add your own menu items
- add your own program groups and shortcuts
- restrict programs using blacklisting
Fortunately, a lot of these items can be configured using configuration service provides (CSP). A few require programing like building your own plugin.
For starters you can create your own corporate theme. This is a very large topic and SmartPhone themes differ from Pocket PC themes. Here are some links to get you started.
You can also make your application skinable using C++ - http://msdn2.microsoft.com/en-us/library/ms838604.aspx
Besides themes you can also configure menu items on the start bar and program groups. You can add and remove menu items and short cuts. Thus you can create a start menu with your programs and office. Oh did I mention you have to have office. A lot of times you can not remove these links as they are in ROM.
To create shortcuts - http://msdn2.microsoft.com/en-us/library/ms838634.aspx
Plugins is one area that requires programming and really requires C++ not Compact Framework programming. Today screen architecture allows you to add and remove what sections or plugins for example the data time and owner information sections. You can use CSP to configure sections. However to create your own plugin you need to use C++. While you cana use a shim and Compact Framework, I would recommend against doing that. Plugins are pretty simple so using a native language like C++ is not that difficult.
You can create a CSP to remove or move around various plugins. We will use the Registry CSP to make changes to the registry. Plugin information is stored under the \HKLM\Software\Microsoft\Today\Items key. A new key is created for each item for example Owner Information is "Owner Info" key. By removing a key you remove the plugin.
<nocharacteristic type="HKLM\Software\Microsoft\Today\Items\Owner Info" />
The above CSP when used would remove Owner Information section.
To learn about programming plugins try the following links:
Look at http://msdn2.microsoft.com/en-us/library/ms839327.aspx for C++ and http://msdn2.microsoft.com/en-us/library/ms839442.aspx for Compact Framework.
The downside to using the Today screen as I already indicated is that you may not be able to delete every item from the Start menu for example Pocket Outlook items like Contacts and Calendar. Also Pocket Internet Explorer shortcut can not always be removed. In addition, settings that can be accessed via the top bar like wireless manager and clock can not be removed. Although some of the programs ccan be blocked.
Bottom line though is that using the techniques described is really only valuable if you are using Pocket Outlook and adding in your own applications. This is a good combination and allows you to build a Shell that gives a stock PPC or SP your own enterprise look and feel.