Enterprise Service Assets

White Paper

Published: March 1999                                                                                                                                                                                          

Developing Retail Solutions Using Microsoft® Windows® CE


Introduction                                                                                         1

Understanding Distributed Computing Architectures                                 2

Using Windows CE Devices in Retail                                                      4

Using Windows CE Development Technology                                          9

Using Windows CE Toolkits                                                                 11

Checklists for a Successful Windows CE Project                                    15

Conclusion                                                                                         17




This paper aims to provide a high-level understanding of developing retail solutions using Microsoft® Windows® CE. It outlines business drivers and reviews the technology and development tools available for Windows CE devices except for the Auto PC, because of its limited application to active, full-featured retail solutions.


The intended audience comprises information technology (IT) professionals who are familiar with:

·         Distributed computing architectures

·         Microsoft® Win32® application programming interface (API) concepts

·         Microsoft® Developer Studio®

·         Microsoft® Visual C++®, Microsoft® Visual J++™, and Microsoft® Visual Basic®


Overview of Windows CE

Windows CE is a new operating system that has a combination of features not found previously in a single platform:

·         Modular design, comprising software building blocks that easily customize in many different ways to create different types of devices.

·         Small size, fitting into devices with little storage capacity, having a minimum footprint of 256 kilobytes (KB).

·         Rich communication capabilities such as corporate networks, Internet, wireless, and infrared.

·         Reliable, real-time performance.


These features mean that if you want to build a device, you can pick and choose only those pieces you need and keep the size of your software consistent with the size of the device. This type of Windows CE device is known as the custom embedded device, and is dedicated to a specific business purpose for a specific company. An example is a point-of-sale (POS) terminal or an inventory-tracking tablet.

The other types of Windows CE devices are the PC Companion products, consisting of the Handheld PC, Palm-size PC, and Auto PC. (The Auto PC is out of the scope of this paper because of its limited application to active, full-featured retail solutions.)

The term “PC Companion” denotes the products’ design to be both mobile and connectable to the desktop through Microsoft® ActiveSync™ technology for synchronizing data.

Understanding Distributed Computing Architectures

Multitier Architecture

Most distributed environments lend themselves to multitier architecture. System architects are designing easy-to-maintain applications using the multitier, or n-tier, model. This model separates an application into three layers:

·         User presentation

·         Business logic or rules

·         Data


In n-tier fat client, the client-side handles user presentation and business logic; the server-side manages data and access to it. In n-tier thin client, the client-side handles user presentation only, while the server-side handles business logic and data.

In most cases, system architects are designing and implementing these layers using an object-oriented technology like Component Object Model (COM).

The Handheld PC, Palm-size PC, and other Windows CE devices can participate on any of these three layers, such that:

·         User presentation can access the other layers via infrared or wireless networking.

·         Windows CE devices can access data from remote servers.

·         Eventually, business rule objects can reside on one Windows CE device while user presentation resides on another Windows CE device, when Windows CE supports distributed COM (DCOM).


The multitier model supports standard networking capabilities. The Handheld PC can communicate with other Windows CE devices as well as desktop PCs and servers, using infrared, wireless, or Ethernet connections. Internet Protocol (IP) addresses can be assigned statically, or assigned by Dynamic Host Configuration Protocol (DHCP) servers.

The Internet, Intranet, and Extranet

The Internet has evolved as the premier technology and a highly efficient standard for exchanging information between heterogeneous servers and networks.

Hypertext Markup Language (HTML), Java Virtual Machine, and Extensible Markup Language (XML) have spearheaded the adaptation of intranet development within, and extranet development between, corporations.

An extranet is a bridge between organizations that is built with the same Internet-based open standard protocols that form the basis of an intranet. Using an extranet, organizations can share with trading partners private, timely information secured on their linked intranets.

The focus of an extranet is toward the needs of an organization’s supply-chain community, while the focus of an intranet is toward the needs of its private users. An Internet site focuses on the general public.

As such, electronic commerce and value chain distribution have taken advantage of these technologies for improving business-to-customer and business-to-business transactions.

The Palm-size PC, Handheld PC, and other Windows CE-powered devices support all the Internet standards and provide the means for leveraging the Internet on small PC devices.

With webcasting or push technology, where the server sends programs and/or data over the network to the client in a sequence and at a rate determined by the server, organizations can distribute critical information on a timely basis. For example, managers can use push technology to send general announcements and specific data on an intranet right to the Windows CE device. (The opposite is pull technology, where the client-side user requests data of the server.)

Thin-Client/Server Computing

The thin-client/server computing model involves connecting thin-client software or a thin-client hardware device with the server-side using a highly efficient network protocol such as the Citrix Independent Computing Architecture (ICA) or Microsoft® Windows NT® Server, Terminal Server Edition.

The Citrix thin-client architecture comprises MultiWin, the authorized multiuser layer on Windows NT Server that simulates local application processing; ICA display services on MultiWin that divide application processing from user presentation; and ICA thin-client software that captures mouse movements and keystrokes while accepting display images. (Citrix eventually licensed MultiWin to Microsoft for creating native multiuser capabilities in Windows NT Server 4.0 and future versions.)

The thin-client/server architecture enables 100 percent server-based processing, management, deployment, and support for mission-critical, productivity, Web-based, or other custom applications across any type of connection to any type of client hardware, regardless of platform.

This architecture introduces some value-added approaches to distributed computing:

·         Remote software uploads could be handled on the server, eliminating the need for a technician to approach each Windows CE terminal to install new software or updates.

·         Software components could be deployed anywhere in the enterprise, on the Windows CE device or on servers.

·         ICA technology could be supported by Windows CE devices, allowing for configurations that exploit ROM execute-in-place software.

·         User interface technologies could be integrated with Microsoft® Virtual Machine for Java.


Using Windows CE Devices in Retail

Windows CE and the Value Chain

Organizations are extending their corporate vision beyond the boundaries of the enterprise itself in integrating suppliers, customers, and partners into the end-to-end “value chain.” Windows CE is an active part of this vision, in leveraging the technology that value chains promote and in contributing to the sharing of data that value chains facilitate.

The Microsoft® Value Chain Initiative (VCI) aims at a level of software application integration that can support a dynamic flow of real-time data connecting trading partners¾from the largest to the smallest.

The creation of standard, reusable software components to encapsulate and standardize basic functions common to any application, such as the mechanisms and interfaces that allow one application to share data with another, is essential to promoting applications interoperability and accelerating applications development. Windows CE solutions depend hugely on this integration, as developers can leverage their knowledge of existing tools to develop applications quickly and easily.

The ability to share supply-chain data in real time across diverse applications packages, from the first collection of raw materials to the delivery of goods to the consumer¾is the next great cost-cutting opportunity for businesses worldwide. Here too, Windows CE solutions facilitate the sharing of data into the chain from retail, in settings such as point of sale and inventory.

Business Drivers to Developing Windows CE Solutions

The business drivers to developing retail solutions using Windows CE do not merely pertain to the enterprise customer requiring the retail solution. As the following table shows, other players on the value chain also have business drivers for their particular role, depending on the client/server model in use.

Business Driver Areas per Client/Server Model and Entity

Client/Server models


Enterprise customer

Independent software vendors

Independent hardware vendors

System integrators

Network solution providers

Software solution providers

n-tier fat

High-maintenance solution

Large-scale embedded systems

Workstations and peripherals using Windows CE

OEM Adaptation Layer

Rollout and helpdesk

Client application

n-tier thin client

Low- maintenance solution

Small-scale embedded systems

Workstations and peripherals using Windows CE

OEM Adaptation Layer

Rollout and helpdesk

Server-based components


High availability solution

Off-the-shelf applets and scripting software

Windows CE devices

Firewalls and proxy servers

Network security and deployment

Web-enabled applications


Highest availability solution

Interoperability technologies

High-speed clustering servers

Integration of distributed systems

Network security and routing



Enterprise Customers

The major business driver for the enterprise customer will be in the ease of extending existing PC-based applications to run on the Windows CE device, or making existing corporate Web sites, databases or shared business processes more accessible to employees. This ease is attributable to lower hardware cost (the baseline configuration for a Handheld PC costs about $500, for example) and lower software cost since developers can leverage their existing expertise in the Win32 API and current development tools.

However, fat-client solutions can be relatively high-maintenance, due to the need to reapply changing business logic to client machines. This contrasts with thin-client solutions. Low development costs also apply to high-availability Internet/intranet applications owing to the nature of open-standard protocols, while extranets provide the highest availability owing to the controlled nature of secure, linked infrastructures.

Independent Software Vendors

Developers building applications for Windows CE devices can avoid a steep learning curve by leveraging their expertise in Win32 API programming, Visual C++, Visual J++, Visual Basic, and the integrated development environment of Microsoft Developer Studio. Opportunities abound in developing embedded systems: large-scale as in point-of-sale terminals, or small-scale as in touch-screen information kiosks that have simpler presentation logic. The availability of off-the-shelf applets and scripting software facilitates Internet/intranet application development, translating to lower development costs, while interoperability solutions as in Microsoft Commerce Server are becoming another fast-growing area.

Independent Hardware Vendors

For the third-party hardware manufacturers who independently design and manufacture Windows CE devices, the range of available processors represents more opportunities for creating variations in features for the Handheld PC and Palm-size PC, as well as creating new product sets as in digital cameras and handwriting-recognition interfaces. Extranets are also creating new opportunities for these vendors to design high-speed clustering servers. These result in increased variation in hardware configurations to support retail solutions.

System Integrators

These vendors integrate or package computer products and services into full-featured retail solutions, such as adapting Windows CE to embedded applications, creating custom application interfaces, and training clients on Windows CE internals. System integrators can help independent hardware vendors who do not have in-house engineering resources for the adaptation layer. Others, specializing in specific vertical markets, provide complete turnkey solutions for their clients.

Network Solution Providers

These certified systems engineers are responsible for installing network systems and support platforms. Windows CE solutions provide opportunities to exploit the different wireless support options and to reuse security protocols for network security.

Software Solution Providers

Using the Windows CE development model¾leveraging Win32 development, Microsoft® ActiveX® controls, and COM¾allows quicker and cheaper development of retail applications, components, and Web-based solutions.

Retail Scenarios

While a standard desktop solution can address some retail scenarios, a Windows CE solution adds mobility to the user. This mobility is what gives the Windows CE solution its edge in bringing the application as close as physically and temporally possible to the natural setting of the retail transaction or retail inventory query and update. The same holds true for embedded solutions.

Following are the retail segments applicable to the deployment of Windows CE solutions:

·         General merchandise

·         Specialty stores

·         Quick service restaurants

·         Gas and convenience stores

·         Hospitality industry


General Merchandise

This segment features the sale of a variety of hard and soft goods. A good example is Wal-Mart, which has large and small appliances, clothes, and grocery items.

A Windows CE solution can allow:

·         Customers to get pricing for a large inventory of items.

·         Store clerks to make remote price changes or to update inventory from the aisles.


Specialty Stores

This segment features the sale of a specific line of goods. A good example is a sporting goods store.

A Windows CE solution can allow store personnel to check stock for a specific item for a customer and contact another store to hold or ship an out-of-stock item to the requesting store.

Quick Service Restaurant

This segment features fast food restaurants.

A Windows CE solution can be integrated with a kitchen monitor. The monitor can give the order directly to the cook, as well as allow the cook to alert the order-taker when the item is ready or whether it is out. This is an example of a customized embedded POS solution, with the application executing in read-only memory (ROM) along with Windows CE.

Gas and Convenience Stores

This segment features the increasingly popular combination filling station and convenience store.

A Windows CE solution can feature embedded POS machines that in the same transaction:

·         Meter and charge the gasoline purchase.

·         Advertise sundries on sale, depending on a check of the cardholder’s demographic and usage patterns using the credit card input device.

·         Store and then charge the purchased items.



This segment features hotels.

A Windows CE solution can facilitate mobile express check-in using rich ink technology, while activating the electronic room key, as well as updating mileage and alerting staff to guest preferences such as wake-up time.

Types of Retail Solutions

Looking at retail scenarios another way, the retail solutions that the scenarios represent require specific client/server models, as shown in the following table:

Retail Applications and Models

Line of business application

Applicable client/server model

Point of sale

n-tier fat client

Credit processing

n-tier thin client

Electronic commerce

Internet, intranet

Retail inventory

n-tier fat client, n-tier thin client, intranet

Store chain distributed systems



Contrasting Handheld PC and Palm-size PC Usage

Because of the difference in design between the Handheld and Palm-size PCs¾most notably in input method, with the keyboard for the former and the stylus for the latter¾there are some important distinctions in how each may be deployed in a retail scenario. Here is a summary of applicable scenarios specific to the target user:

Examples of Target User and Appropriate Device

User profile

Handheld PC

Palm-size PC

Mobile task-based

·    Order taking

·    Delivery tracking

·    Price lookup

·    Associate’s schedule lookup

Knowledge user

·    Financial reporting

·    Inventory management

·    E-mail

·    Sales data entry via intranet

Power user

·    Thin-client POS

·    Embedded POS

·    Query/report viewing

·    Internet access


Using Windows CE Development Technology

Application Model

Systems development improves when the available API provides developers with flexibility, scalability, and extensibility. The Win32 API spans all the Windows operating-system families on the 32-bit platform—that is, Windows 95/98, Windows NT, and Windows CE.

Systems developers leverage their API knowledge between each tier. Besides APIs, applications developers leverage the common user access (CUA) because they can reuse the same controls and user interface techniques within each Windows tier.

The Windows CE Win32 API library contains approximately 1,500 API functions. The limitation is attributed to the smaller memory footprint and the highly customizable operating system, which can start out with just a kernel.

The Windows CE application model is configurable from a minimum kernel to a minimum shell as shown on the table below:

Windows CE Application Configuration

Minimum kernel

Kernel + file system, at 250-350 kilobytes (KB)

Minimum communications

Minimum kernel + communication stacks (serial port and TCP), at 250-550 KB

Minimum graphical device interface (GDI)

Minimum communications + user interface (UI) and graphical user interface (GUI), at 450-750 KB

Minimum Windows manager

Minimum GDI + Windows managing capabilities and support for COM, at 750-1,000 KB

Minimum shell

Minimum Windows manager + task manager, controls, console and dialog boxes, from 1MB and up



·         The Win32 API provides developers with a rich and consistent set of interfaces for memory management. The general architecture of Windows memory differs from one 32-bit Windows platform to another, and specific details of the architecture can also differ from one processor type to another within the same 32-bit Windows operating system. For example, the memory architecture that Windows NT uses on a DEC Alpha platform is quite different from the memory architecture used by Windows NT on an x86 platform.

·         The Windows CE operating system, like the other 32-bit Windows platforms, includes virtual memory features. Memory is always allocated to applications one page at a time, with a page size determined by the system designer (and specified when the operating system is built for the target hardware platform). On a Handheld PC, for example, the memory page size is typically either 1 KB or 4 KB.

·         The application developer may not be too concerned about the physical architecture of the memory on the target system. The memory may be entirely RAM, or it may include flash memory cards or hard disk drives. The Windows CE operating system manages memory resources for the developer, and the Win32 API provides the necessary interfaces to allocate, use, and free blocks of memory.

·         The embedded system designer, however, will need to carefully consider the memory requirements of the applications that will be executed on this new hardware platform, and balance conflicting goals of cost, speed, and reliability. If developing a new hardware platform for use with Windows CE, the Windows CE Embedded Toolkit for Visual C++ includes resources to help with these decisions and to configure the operating system accordingly.


COM and ActiveX for Windows CE Devices

COM technology combines the benefits of object-oriented programming with binary reuse, language independence, versionability, self-registration, and ease of licensing. ActiveX controls are small, fast, lightweight, and resource efficient, making them extremely well-suited to Windows CE-based platforms.

Using ActiveX controls and other COM components, Windows CE applications can take advantage of the most advanced component technology available today without compromising on size or speed. ActiveX and COM allow applications to be highly modular, as well as scalable, versionable, and robust, and able to run on Windows CE, Windows NT, or over the Internet. The ActiveX specification also supports just-in-time activation, mouse interaction while inactive, flicker-free activation, windowless activation, unclipped device context, and optimized drawing.

Windows CE supports most of the standard COM features that desktop Windows platforms support. One difference is that Windows CE supports only free-threaded components. It does not support the apartment-threaded or single-threaded model. Also, the real-time focus of Windows CE means it supports only in-process COM servers; this saves the overhead associated with out-of-process servers or Windows service. DCOM is currently not supported.

Both the Microsoft Windows CE Toolkit for Visual Basic 5.0 and the Microsoft Windows CE Toolkit for Visual C++ 5.0 support the use of ActiveX controls and provide excellent tools for creating ActiveX containers. The Windows CE Toolkit for Visual C++ 5.0 provides three options for creating ActiveX components: the standard Windows CE SDK for OLE APIs, the Microsoft Foundation Class Library for Windows CE, or the Active Template Library for Windows CE.


Microsoft Foundation Class Library

The Microsoft Foundation Class (MFC) Library for Windows CE is both a powerful class library and a complete object-oriented application framework for creating Windows CE programs in C++.

MFC for Windows CE supports stand-alone executables and dynamic-link libraries (DLLs). With MFC, you can create anything from a simple dialog box-based program to a powerful, sophisticated application that employs the MFC document/view architecture. You can also use MFC for Windows CE to create full-featured ActiveX controls and containers.

Active Template Library

The Active Template Library (ATL) for Windows CE is a C++ template library designed and optimized to help you create the smallest, fastest ActiveX components possible.

ATL for Windows CE is expressly designed for creating ActiveX controls and other COM components, so your ATL components only implement the specific interfaces that your project requires. Because of this, code created using ATL is smaller, faster, and more efficient than code created using MFC.

When to Use MFC and When to Use ATL

If you are creating an in-process COM or ActiveX server, you should generally use ATL for Windows CE. By using ATL, you can create smaller, faster, more efficient components and controls than you can create using MFC. If your project is not an in-process COM or ActiveX server, however, you should use MFC for Windows CE. There may also be times when you’ll want to use MFC for Windows CE to create an ActiveX control. MFC for Windows CE is a more mature library than ATL for Windows CE, and supports some functionality that ATL for Windows CE does not. This is particularly true for components that have an elaborate user interface.

For additional information, see the white paper The Microsoft® Foundation Class Library and Active Template Library for Windows® CE, by Peggi Goodwin, at http://www.microsoft.com/windowsce/embedded/techpapers/mfc_atl.htm.

Using Windows CE Toolkits

Windows CE Toolkit for Visual C++ 5.0

The Microsoft Windows CE Toolkit for Visual C++ 5.0¾also referred to as the Windows CE Embedded Toolkit¾combines the integrated development environment (IDE) of Microsoft Developer Studio with rich, Win32-based embedded-development technology.

You can use the embedded toolkit to choose components for a customized version of the Windows CE operating system that meets the unique requirements of your solution. Then build applications and device drivers that target the operating system configuration you have customized.

The toolkit includes cross-compilers for all supported CPUs, covering MIPS, PPC, SH3, and x86. This allows using a single set of source code. The IDE automatically downloads application builds to the Windows CE-based device for testing.

Remote tools, including a source-level debugger, Process Viewer, Heap Walker, and Registry Editor, perform common development chores over a standard connection. Use the Remote Application Debugger to set breakpoints, single step through code, control program execution, and view register values¾all from within the Developer Studio environment on your computer, with shell emulation of the Windows CE device.

The embedded tools roundup includes Cesysgen, ROM Image Maker, and Parallel Port Shell to build applications and low-level device drivers for ROM. The ROM Image Maker creates a binary image of your application or driver for burning into ROM.


The Win32 API supports several levels of encapsulation, including Windows CE versions of MFC and ATL, for easy access to Windows CE services.

MFC encapsulates Windows CE APIs in C++ classes. The class library of interrelated C++ classes is similar to function libraries in C.

The Windows CE library of template classes provides the same functionality but can operate on different data types. Classes are defined with formal type parameters, and the compiler can expand the class definition, substituting the actual types for the formal parameter used in the template specification. This implements polymorphism without overhauling or traversing a class hierarchy.

Sample Applications

The toolkit includes several sample operating system configurations, complete with sample device drivers, as well as a robust set of C, C++, ATL, and MFC sample applications.

System Requirements

To run Microsoft Windows CE Embedded Toolkit for C++ 5.0, you need:

·         PC with a 486/66 MHz or higher processor

·         Microsoft® Windows NT® Workstation 4.0

·         Microsoft Visual C++, Professional or Enterprise edition, version 5.0

·         24 MB of RAM; 32 MB recommended

·         1,250 MB of available hard-disk space

·         CD-ROM drive compatible with multimedia PC specification

·         Microsoft® Mouse or compatible pointing device



Windows CE Toolkit for Visual J++ 1.1 for Handheld PC

For ease in developing user interfaces for the Handheld PC, use the Microsoft Windows CE Toolkit for Visual J++ 1.1 to create embeddable Java applications. Currently, this restriction to handhelds is due to the limited RAM of the Palm-size PC; see also System Requirements below.

The Windows CE Toolkit for Visual J++ takes advantage of Java Development Kit 1.1.3 features supported by Microsoft Virtual Machine for Java (Java VM), including a componentized and configurable set of classes specific to Windows CE. Java VM includes all major classes:

·         Abstract Windows Toolset (AWT)

·         Net classes

·         Language classes

·         Utilities


Java components can access Windows CE-specific APIs through the Raw Native Interface (RNI), an efficient way to traverse between Java and native Windows code. A future release of Visual J++ will support Microsoft® J/Direct™, which allows Java code running on Java VM to directly call Win32 functions.

The beta release of the Windows CE Toolkit for Visual J++ 1.1 includes Java VM, a Java language compiler, and other useful utilities and samples to aid in deploying applications written in Java for the Handheld PC. One utility, for example, allows you to combine your application’s class libraries for Java into DLLs that can be installed on your Handheld PC for efficient use of memory resources.

The beta builds on top of the Microsoft Software Development Kit (SDK) for Java for Windows CE, posted to the Web in January. The Toolkit for Visual J++ includes new features that weren’t in the SDK, including:

·         Desktop Emulation. Develop and debug applications written in Java for the Handheld PC on your desktop. Emulation provides the look and behavior of a handheld on your desktop without the actual Windows CE device.

·         Remote Debugger. Debug applications written in Java running on your Handheld PC from Visual J++ running on your desktop. Control program execution, set break points, and step through code from your PC.

·         Auto-download and execute. Target your Handheld PC and run your Java application from the toolkit; it will automatically download files to the Handheld PC for execution.


System Requirements

For the desktop:

·         Microsoft Windows NT 4.0

·         PC with 486/66 MHz or higher processor

·         24 MB of RAM (32 MB recommended)

·         Microsoft Mouse or equivalent pointing device

·         VGA or higher resolution monitor (Super VGA recommended)


Because Java VM will be running on the Windows CE device, here as well are the device requirements¾effectively limiting device options to the Handheld PC:

·         Windows CE 2.0

·         SH3, MIPS 39xx, or MIPS 41xx processor

·         16 MB RAM strongly recommended; 8 MB minimum

·         3.5 MB RAM required for Java VM and classes

·         Additional 3.2 MB RAM required for Java VM to execute


Note: Java applications will not run on a device with only 4 MB of RAM.

Windows CE Toolkit for Visual Basic 5.0

Use the Microsoft Windows CE Toolkit for Visual Basic 5.0 for ease in designing user interfaces. Apply your knowledge of Visual Basic to building applications targeting Windows CE-based mobile and embedded devices. The toolkit uses the same Visual Basic code editor, form editor, and property pane, with new Windows CE-specific functionality.

The toolkit includes many of the common Visual Basic controls for developers and a set of sample projects. It provides Windows CE versions of the most commonly used ActiveX controls, as well as new ActiveX controls that provide Windows CE-specific functionality.

You can also emulate the Windows CE device on your desktop to facilitate development. When you’re ready, the toolkit can automatically transfer your builds to the Windows CE device through a standard connection. Then monitor and debug your applications remotely from your computer. Some of the remote tools available include Spy, Process Viewer, and Registry Editor.

Windows CE cross-processor support means you can code your Windows CE-based solutions once, and then use them on a variety of processors.

System Requirements

To run the Microsoft Windows CE Toolkit for Visual Basic 5.0, you need:

·         PC with a 486/66 MHz or higher processor; Pentium or higher processor recommended

·         Microsoft Windows NT Workstation 4.0

·         Microsoft Visual Basic, Professional or Enterprise edition, version 5.0

·         24 MB of RAM; 32 MB recommended

·         Hard-disk space required:

·         Minimum installation: 30 MB

·         Complete installation: 115 MB; 220 MB required if installing online documentation

·         CD-ROM drive

·         VGA or higher-resolution monitor; Super VGA recommended

·         Microsoft Mouse or compatible pointing device


Checklists for a Successful Windows CE Project

Common Project Pitfalls

While the following checklists are not intended to be a complete list of items to consider for a project to develop retail solutions using Windows CE, they do represent common pitfalls.

Staff Skills Checklist

·         Familiarity of the systems integrator with adaptation services

·         For embedded systems:

·         Knowledge of memory management

·         Knowledge of C, C++, and Assembler

·         Experience in coding device drivers

·         For applications:

·         Experience in programming in Visual Basic and Java

·         Experience in programming using COM and ActiveX


Tools and Technology Requirements Checklist

·         Windows CE Embedded Toolkit

·         Third-party applications

·         Third-party technology for hardware and embedded applications

·         Third-party reference design support kits

·         Windows NT Workstation for development


Windows CE Licensing Checklist

·         Three-tier licensing:

·         Kernel only

·         Kernel and graphics

·         Kernel, graphics, and Windows manager

·         Whether to license through distributor or Microsoft



Hardware Planning Checklist

·         ROM budget:

·         Kernel-only minimum is 128-256 KB

·         Size depends on operating system modules, applications, and application read-only data

·         Whether using Flash or masked programmable ROM (PROM)

·         Future expansion needs

·         RAM budget:

·         Kernel-only minimum is 256 KB

·         Size depends on number of simultaneous applications and object store requirements

·         Expansion can be added if hardware allows

·         Battery backup

·         Auxiliary storage options:

·         ATA Flash PC Card

·         Flash File System

·         M-Systems DiskOnChip 2000

·         SRAM Cards (Static RAM)

·         Installable File System (IFS)

·         Future storage options

·         Special devices:

·         PC Card devices

·         Cameras

·         Bar code scanners

·         Specialized buses

·         Debugging support options:

·         Serial port for Debugger (Basic)

·         Ethernet for Debugger

·         Windows CE shell support for serial, parallel, Ethernet

·         Third-party tools

·         Supported processor architecture:

·         32-bit, little endian, with memory management unit

·         Currently SH3; SH4; MIPS; x86 (486 class) and higher; PPC; and ARM

·         Some embedded controllers, some discrete, with I/O companion chips



Development Checklist

·         Appropriate development tools for the target processor

·         Windows CE Embedded Toolkit:

·         Hardware reference support for Hitachi D9000 (ODO) platform

·         Hardware reference support for PC-based (CE-PC) platform

·         Additional tools and technologies from a systems integrator:

·         Supplemental adaptation kits

·         Specialized loader technology

·         Specialized applications

·         Support for reference platforms from major semiconductor manufacturers

·         Special considerations:

·         Non-contiguous Flash or PROM

·         Image size that is bigger than non-volatile storage

·         Booting from ATA Flash

·         Booting from Linear Flash Memory

·         Rotated display panel

·         Peripheral Component Interconnect (PCI) support


Testing Checklist

·         Testing tools from Windows CE Embedded Toolkit

·         Windows CE Embedded Toolkit “hooks” for testing plug-ins

·         Additional tools from systems integrator

·         Testing the adaptation layer




Windows CE fits in well with distributed computing architectures, giving rise to a wide range of product applications.

The wide range of Windows CE products¾from PC Companions to custom embedded devices¾ensures addressing an equally wide range of retail scenarios, from general merchandise to gas stations.

Developers of these products can leverage their existing expertise with the Win32 API and tools such as Visual C++, Visual J++, and Visual Basic development systems.





Windows CE


PC Companions


Embedded systems


Citrix WinFrame, ICA, MultiWin

Kanter, Joel. Understanding Thin-Client Computing. Redmond, WA: Microsoft Press, 1998.



Ó 1999 Microsoft Corporation. All rights reserved.

The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.

This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.

Microsoft, ActiveSync, ActiveX, J/Direct, Microsoft Press, Visual Basic, Visual C++, Visual J++, Win32, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft in the United States and/or other countries.