The Windows CE Shell
The Windows CE Shell
Unlike desktop Windows, Windows CE does not have a standard user interface. Rather, the target hardware determines which user interface components are present, and the various CE devices differ dramatically in this respect. Collectively, the user interface elements are called the "shell." While the H/PC Pro and the HPC are very highly congruent with the interface of desktop Windows, the palmtop devices share little in the way of "look-and-feel" with their larger progenitors. In terms of deciding what parts of an existing Win32 application to port, the differing nature of the CE shells is the first critical evaluation you will face. Shell programming is one of those contexts in which it's worth weighing whether a thing that can be done should be done.
Some of the example code in the aritcles I've presented here on Developer.com is portable across most CE platforms, but makes the most sense on a specific class of device. Working from the premise that the ultimate aim of application programming is to provide users with the best tools, we'll want to take advantage of the strengths of various CE platforms. If there is one bit of advice I'd offer in this context, it's this: If you have to make a choice between maintaining a single, portable code base and allowing an application to evolve in ways that amplify the unique features of a given platform, choose evolution.
The Job of the CE Shell
As far as a user can tell, the CE Shell performs two basic functions: It provides a means by which to launch programs, and it provides a view of the CE file system. From the user's point of view, these two tasks are handled very differently by the smaller CE devices (the palmtops) than they are by the larger ones (HPC and HPC Pro) or by desktop Windows. The small size of the palmtop devices imposes a new, abbreviated set of user interface controls. In addition, the palmtop devices don't include a "Windows Explorer" type construct.
Put another way, users can't browse the palmtop CE file system by navigating through folders, opening files, or launching programs along the way. User file access relies exclusively on a very lightweight version of the "File Open" dialog, which is displayed by applications that give users the ability to operate on specific files. The palmtop CE platforms make the Start menu the sole tool for launching programs. For the smallest devices, this restricted access to the file system reinforces the palmtop CE bias against file- and text-oriented applications.
Porting Tip: As you consider porting to the CE Shell style of user interface, ask a few probing questions, with an eye to getting version 1.0 out quickly:
- Could you target the H/PC Pro or H/PC exclusively?
- If you target the palmtop devices, could you present the application's functionality in a single dialog box?
- Can you minimize or eliminate the need for the user to locate specific files?
In general, you can assume that Win 32 shell behaviors will port readily to the H/PC Pro family of devices, and with a few more modifications to the H/PC class of devices. In the palmtop class of targets, you will need to be much more discerning about what shell-related features you choose to port to CE.