Important: |
---|
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
Microsoft Corporation
June 2000
Summary:This paper describes the new components in Microsoft Windows CE version 2.10 that support the development of custom shells, and provides an overview of the interface guidelines and development process involved in creating a customized shell. (6 printed pages)
Overview
Microsoft Windows CE is a compact, scalable operating system
that is fast becoming the operating system of choice for many
embedded developers. Its modular design allows for full
customization-requiring you to select only the modules and
components you need to run your application. In the Windows CE 2.10 release, Microsoft provides new
components to support the development of custom shells. You can
select from a set of components that support shell-related API
functionality, available in the Windows CE Embedded Development Kit
for Microsoft Visual C++. These shell support components offer flexibility by enabling a
wide variety of shells. They are designed to make it as easy as
possible for embedded developers to create and use whatever shell
they desire. These components should be thought of as providing
underlying system support only. Sample code is provided to help you
to better understand system integration and to reduce your
development time. Note that Windows CE does not offer a full
implementation of a functioning shell for embedded systems
developers. The new components include:
A shell is a set of user-interface components and underlying
support routines that translates user input into useful operating
system actions. A Windows CE platform can have its own unique shell
that is developed and customized for a device and its target
audience. Platforms may also include the Windows CE desktop component.
This component provides the following functionality:
The desktop is one of several components the Windows CE
operating system provides to enable you to create a custom shell
for your target platform. Other system building blocks include:
Figure 1. Windows CE Control Panel (Details View)
Figure 2. Main View
The primary purpose of a shell is to make it easy for users to
access the features of a device. In that regard, developing a shell
is similar to developing an application. The same principles of
good design apply. The first step in any development process is to determine the
unique configuration of the hardware platform for which you are
developing. Because Windows CE is a modular operating system, you
must decide which specific modules and components your target
audience will need to operate your device. Once you have designed your target platform, you then must
decide what programming environment to use. You can choose
Microsoft Visual C++ or Microsoft Visual Basic. In addition to the
tools provided with the Windows CE Embedded Toolkit for Visual C++
5.0, each of these programming environments has its own unique
toolkit for you to use. They include:
After choosing a programming environment and toolkit, you can
begin developing your shell. Use standard components and Win32
APIs. Keep usability in mind by designing a simple, easy-to-use
interface. Here are some general UI design guidelines.
Once completed, install your shell on your device and debug and
test your code just like any other application. To install a shell
onto a device, insert the name of your application in the following
Registry Key: When the system starts, it executes the LaunchXX keys in order,
launching Launch10, then Launch20, and so on. Make your shell the
last item numbered in the list. Also, make sure you add a DependsXX key that lists dependencies
on previous launch components. The system will wait for dependent
components to run and initialize before launching the launch key
with the matching number. For example, if your shell is registered
as 'Launch60="MyShell.exe"', then you should have a 'Depends60' key
which lists components, such as GWES, that must be initialized
before your shell is launched. Before executing your Launch60 key,
the system will wait for all components listed in the Depends60 to
be executed and initialized. Before you can select which components to add to your shell, you
must first decide which modules and components you want included in
your operating system. Then you must modify the file
Cesysgen.bat. Out of the many modules and components available in Windows CE,
selecting the right combination of components to support your
target platform can be difficult. To assist you in this task,
Windows CE supplies several component configurations from which you
can choose. These configurations represent different sets of system
capabilities, ranging from a base system with minimal user input
and no display capabilities, to a system with keyboard and touch
pad input, a full color display, and fax/modem and networking
support. All configurations included with Windows CE have been
fully tested by Microsoft. Other combinations of modules and
components are possible, but Microsoft has not tested them and
therefore cannot guarantee their reliability. If you choose to
create your own configuration, contact Microsoft for
assistance. Standard Windows CE configurations include:
Configuration 1—This configuration builds a minimal version
of Windows CE that kernel (Core.dll). You may also set the registry
so that Windows CE opens one executable application upon
startup.
Configuration 2—This configuration builds a minimal version
of Windows CE with the Windows CE Debug Shell Tool (CESH). CESH
provides you with a command-line interface to the Windows CE
operating system.
Configuration 3—This configuration builds a minimal version
of Windows CE with data communications and networking, but no user
interface.
Configuration 4—This configuration builds a minimal version
of Windows CE with user input support, but no communications or
window management.
Configuration 5—This configuration builds a minimal version
of Windows CE with graphics device interface (GDI) support, but no
window management.
Configuration 6—This configuration builds a nearly complete
version of Windows CE with a fully configured Graphics, Windowing,
and Event Subsystem (GWES).
Configuration 7—This configuration builds a fully configured
version of Windows CE, including support for a custom shell. The file Cesysgen.bat specifies the environment variables used
to create your Windows CE project. Cesysgen.bat allows you to
choose the modules for your Windows CE operating system to install
on your hardware development platform. Some modules, such as the
operating system kernel module (Nk) are required. To add components to your Cesysgen.bat, modify Cesysgen.bat in
the directory \Oak\Misc to specify the modules of the Windows CE
operating system to be included in your Windows CE project. See the
following example. On the basis of these modifications, Cesysgen.bat sets the value
of the component environment variables. After Cesysgen.bat sets these environment variables, the Nmake
Tool (Nmake.exe) uses these specifications to build and copy the
modules for your Windows CE operating system. The process of linking, building and copying the modules and
components you have selected is referred to as the sysgen phase. In
this phase, it creates a customized project directory based on the
common project directory. The sysgen phase filters the header file
and builds the components defined by your Cesysgen.bat file.
The Windows CE Desktop
Developing and Installing Your Shell
Adding Modules and Components
Modifying Cesysgen.bat
Building a Project
For More Information
Overview
The Windows CE Desktop
Developing and Installing Your
Shell
HKEY_LOCAL_MACHINE\Init
LaunchXX="MyShell.EXE"
DependsXX=hex:14,00,1e,00
Adding Modules and Components
Modifying Cesysgen.bat
set CE_MODULES=%CE_MODULES%
gwes
set GWE1_COMPONENTS=wmbase gweshare
gwesmain immthunk msgque
if "%CONFIG5_NOCURSOR%"=="1" set
GWE3_COMPONENTS=icon cursor cursor8
Building a Project
For More Information