|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.|
Summary:Discusses how to develop applications for business and personal use for Handheld PCs (H/PCs) running the Microsoft Windows CE operating system. (11 printed pages) Covers:
Due to the strength of its Microsoft Windows CE operating system (OS) and an incredibly productive software package, the Handheld PC (H/PC) has become a viable alternative to traditional, less versatile tools used by the mobile professional. With knowledge of the H/PC's unique opportunities and challenges, plus help from the right development tools, independent software vendors can market profitable applications with minimum design time and effort.
Information appliances are rapidly gaining popularity. More than one million PC companion devices running Windows CE technology have been shipped so far. The H/PC gives an increasing number of mobile professionals the ability to stay connected wherever they are, and provides a growing number of hardware and software vendors the opportunity to create solutions and accessories for business and personal use.
Handheld PCs running Microsoft Windows CE, Handheld PC Edition and Microsoft Windows CE, Handheld PC Professional Edition, are known for their compact size, instant on/off function, long battery life, and synchronization abilities with desktop or laptop computer information. In addition, programming applications for the H/PC and other Windows CE-based devices is simplified by its Microsoft Win32 code base.
H/PCs have a full range of hardware and software components that extend the capabilities of the mobile device category. Creating great applications is a matter of acknowledging the H/PC's characteristics. To address this, the following topics will be discussed in this article:
With the release of Microsoft Windows CE, Handheld PC Professional Edition version 3.0, more hardware and application features are available, including:
Full-size video graphics adapter (VGA) and Super VGA screens, touch-type keyboards, universal serial bus (USB), extended battery life, alternative pointing devices (such as touch panel, trackball, and mouse), and additional processors are supported.
Microsoft Pocket Outlook e-mail client now supports rich Internet standards IMAP4 and POP3. These standards allow direct e-mail access to Microsoft Exchange and other servers that support Internet standards, hierarchical folders that are synchronized with the server, Internet standard address resolution, conversion of attachments on the device, and the ability to store e-mail attachments on external storage cards.
Microsoft Pocket Access and ActiveX Data Objects for Windows CE (ADOCE) are supported, providing common API access to open database connectivity (ODBC) back ends such as Microsoft SQL Server™
Microsoft Windows CE Services 2.2, a desktop application that allows effortless synchronization of data with an H/PC device, now provides configurable remote deployment options for mass installation and easier Windows CE Services setup on the Microsoft Windows NT operating system.
Figures 1 and 2 show hardware common on H/PC devices.
At the code level, the H/PC Pro Edition platform is virtually identical to the H/PC 2.0 platform except for the Mail Store and Transport APIs. The H/PC Pro Edition software is designed to run on the original H/PC devices as well as the new larger H/PC devices with full-sized screens. This allows applications to reach the widest possible market.
The H/PC provides immediate access to personal information, e-mail, and Microsoft Office data—like Microsoft Word or Microsoft Excel—when people are out of the office. Its longer battery life, instant on/off function, and lightweight design make it ideal for travel, note taking, and time management. Developers can take advantage of these H/PC strengths when designing applications for the H/PC. The following list describes three principal opportunities in application development:
One way to take advantage of H/PC capabilities is to port existing desktop applications to the H/PC and optimize them for mobile professionals. Many Microsoft Windows 95 applications can be ported to Windows CE with much less effort than would be required to develop them from scratch. Ideas and algorithms from Windows-based applications are easily transferred to the Windows CE environment.
The main requirement is that H/PC applications be designed with the smaller device's characteristics in mind. Memory, power, user-interaction devices, and the broad range of CPU and communications options are all critical concerns when porting. For example, hardware design determines whether the user interacts with the device by typing on a keyboard, giving speech commands, or writing on the screen with a stylus.
Because the Windows CE operating system is designed to use a subset of the Win32 application programming interface (API) from the Windows NT operating system and a similar driver model, recompiling applications for the H/PC is a straightforward process.
Devices running H/PC Pro Edition software are expected to be the first non-PC devices that information services (IS) directors incorporate into the overall information fabric of their business enterprise. With the tools available for H/PC devices, companies will be able to develop applications—based on Microsoft Visual C++, Microsoft Visual Basic, and Microsoft Visual J++—that boost productivity.
Corporations are finding many new uses for H/PCs that are not appropriate for notebook computers. For example, notebooks today can be fairly cumbersome for field use. Users have to turn on the notebook and wait for it to boot up. This process can take more than a minute, hampering situations where data flow is immediate. On an H/PC, users can instantly start collecting or accessing data with the touch of a button.
Applications are needed that address the demands of people who are on the road for long periods of time. This population of mobile professionals has specific requirements, and the H/PC is a great tool for maintaining productivity. The PC companion aspect of the H/PC makes it easy to integrate data into the network that the user has created or modified out of the office or in the field.
The H/PC is expected to have an impact on the education market as well. High school and college students who have a desktop computer can economically achieve mobility by taking an H/PC with them when they're away from their desk.
There is also a great demand for synchronization technologies. Already there is good synchronization between the Handheld PC and the desktop or laptop computer, but what will optimize H/PC devices are new synchronization technologies from H/PCs to the server, and from H/PCs to the network.
Windows CE is an OS based on the Win32 API. Developers familiar with Windows 95 or Windows NT programming already know how to write code for Windows CE and how to use an integrated development environment (IDE).
When designing a Windows CE-based program, developers first determine the configuration of the hardware platform and shell for which they are developing. Because Windows CE is a modular operating system, an original equipment manufacturer (OEM) chooses specific modules and components of Windows CE to configure Windows CE-based devices in many different ways. Within the H/PC device category itself, OEMs may choose to implement different components and hardware options from one another.
The following list highlights important areas to consider when programming an H/PC application:
Once developers are familiar with their target platform, they must decide what programming environment to use. A variety of programming environments are available for use with Windows CE including Visual C++, Visual Basic, and Visual J++. Windows CE-specific menu items and functionality are added with the following Windows CE toolkits:
In addition to choosing a programming environment and toolkit, developers can use other useful programming tools, such as the Microsoft Foundation Classes (MFC) for Windows CE or the Active Template Library (ATL) for Windows CE. ATL is a C++-based ActiveX controller library that simplifies the creation of active controls.
To debug and test development code, the Windows CE IDE provides an emulator for supported platforms like the H/PC.
Low-memory situations are more common on an H/PC than on a desktop computer because the compact size of an H/PC limits the number of memory chips that can be installed. Windows CE circumvents this obstacle by using the WM_HIBERNATE message as its primary mechanism for requesting applications to free memory. When freeing memory is required, the system posts the message to one or more applications, beginning with the application that has been inactive the longest.
Windows CE uses a series of memory thresholds to conserve system resources. The following table shows values for memory thresholds. The values are based on a 1-KB memory page; values for a 4-KB memory page are provided in parentheses.
|Hibernation threshold||128 KB
|The point at which a system enters a limited-memory state. A system sends a WM_HIBERNATE message when its memory falls below this value.|
|Low-memory threshold||64 KB
|The minimum available memory that a system must maintain when it is in a low-memory state.|
|Critical-memory threshold||16 KB
|The minimum available memory that a system must maintain when it is in a critical-memory state.|
|Mail Store||Mail API for Inbox that allows the creation and manipulation of e-mail messages.|
|Transport||Mail API that allows sending and receiving of e-mail messages.|
|TNEF||API that converts strings, files, and buffers into a specified format.|
|Windows CE API||Subset of the Win32 APIs that allows interface with the operating system.|
For more information about Microsoft Windows CE, Handheld PC Professional Edition and about developing applications for an H/PC, see the Microsoft SDK for Windows CE, Handheld PC Professional Edition 3.0 documentation and the Windows CE documentation. For more information on how to write ActiveX controls, see the article "How to Write and Use ActiveX Controls for Windows CE."
For the latest information about Windows CE and embedded development tools, see the Microsoft Windows CE developer Web site. Additional white papers are available at the Web site, describing other features of Windows CE.
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.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.
© 1999 Microsoft Corporation. All rights reserved.
Microsoft, ActiveX, Visual Basic, Visual C++, Visual J++, Win32, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
Java is a trademark of Sun Microsystems, Inc.
Other product and company names mentioned herein may be the trademarks of their respective owners.