What's New in Windows CE (Windows CE 5.0)
The following topics highlight changes and improvements to Windows CE and Platform Builder, and provide links to more information:
Windows CE 5.0 Networked Media Device Feature Pack
Windows CE 5.0
Windows CE 5.0 Networked Media Device Feature Pack
The Windows CE 5.0 Networked Media Device (NMD) Feature Pack allows you to create devices that consumers can use to playback audio and video on their home networks. This feature pack is an add-on for Windows CE.
A typical Networked Media Device is a hardware component in a home theatre system. It is physically located in the same area as the television and home theater and is connected to a home network. The Networked Media Device acts as a bridge between the media store on the Windows Media Connect (WMC) server and the user's entertainment output devices, such as a television and a stereo system. For more information, see Developing a Networked Media Device.
For more information about Networked Media Device features, see the following topics.
- Windows Media Connect Support
- DirectShow Extensions
- Media Query Engine
- Audio Lip Sync Filter
- NMD Sample UI
Windows CE 5.0 Networked Media Device Feature Pack requires that the CreateWindowEx function uses the WS_EX_CONTROLPARENT dwExStyle flag. For more information, see CreateWindowEx.
Microsoft Windows Media Digital Rights Management 10 for Network Devices (WMDRM-ND) is an implementation of Windows Media digital rights management system for Windows CE. It extends the reach of protected content to Windows CE consumer electronic devices such as networked media devices (NMDs). This allows these devices to access protected content while enforcing the rights specified by the content owner in the Windows Media DRM license.
For more information, see Windows Media DRM for Network Devices.
The Digital Video Recorder (DVR) engine included with Windows CE 5.0 Networked Media Device Feature Pack provides the capability to create a Set-Top Box, such as an IP-STB, in addition to other home media devices. By adding a DVR to your device, you obtain greater flexibility in choosing how to store and view media. Media content used by the DVR streams in over IP for broadcast TV and video-on-demand. You can include a DVR with NMD.
The DVR engine supports the following functions.
- DVR capabilities such as creating, storing, and viewing media
- Native support for interlaced video playback
- Support for real and synthesized surround sound
For more information, see Adding a Digital Video Recorder.
Windows CE 5.0
Microsoft® Windows® CE 5.0 extends the performance, reliability, quality, and ease of use of earlier versions of the Windows CE operating system (OS). Microsoft Platform Builder for Windows CE 5.0 is an integrated development environment (IDE) for building custom embedded OS designs based on Windows CE. Platform Builder has all the development tools necessary for you to design, create, build, test, and debug a Windows CE–based OS design.
Windows CE 5.0 includes a production-quality OEM adaptation layer (OAL) that simplifies and shortens the process of developing an OAL. It provides you with an improved level of OAL componentization through code libraries, directory structures that support code reuse, centralized configuration files, and a consistent architecture across processor families and hardware platforms.
For more information, see Production-Quality OAL.
In Windows CE 5.0, BSPs for the following hardware platforms contain production-quality OAL support:
- Intel PXA27x Development Platform
- SMDK2410 Samsung MCU Development Kit
- AMD DBAu1000 Development Board
- AMD DBAu1100 Development Board
- AMD DBAu1500 Development Board
- Broadcom BCM91101SP
- NEC Solution Gear 2-Vr4131 Development Kit
- NEC Solution Gear 2-Vr5500 Development Kit
- AMD Geode
For more information on how to use the BSPs for these hardware platforms, see Supported Board Support Packages.
Windows CE 5.0 provides production-quality drivers that adhere to best practices for developing Windows CE device drivers. Because production-quality drivers are more functional, portable, stable, discoverable, and readable than other drivers, using them has many advantages. For more information about these drivers, see Production-Quality Drivers and Best Practices for Developing a Device Driver.
Device Manager is a Windows CE OS process that tracks loaded drivers and their interfaces. In Windows CE 5.0, Device Manager has the following new and updated functionality:
- New device namespaces, which allow for bus parent-to-client relationships and allow for greater than ten instances of a device
For more information, see Device File Names.
- New device discovery functions and structures
For more information, see Device Manager Reference.
- Componentization changes, link changes, and other changes pertinent to devices
For more information, see Device Manager.
Handling Race Conditions
For more information, see Resolving Race Conditions in Device Drivers.
Windows CE 5.0 introduces the ColdReboot system power state, which also invokes the new SetCleanRebootFlag function and forces a cold boot when the system restarts.
I/O Resource Manager
Windows CE 5.0 adds new I/O Resource Manager functions. For more information, see the following topics:
Only trusted processes can invoke I/O Resource Manager functions. For more information, see I/O Resource Manager.
PC Card Architecture with 32-bit Cardbus
The Windows CE 5.0 PC Card stack replaces the PCMCIA stack included in Windows CE .NET 4.2 and earlier. This stack exposes the bus agnostic drivers interface for clients as well as a legacy compatibility layer that supports all existing PCMCIA clients. The Windows CE 5.0 stack fully supports 32-bit Cardbus cards. For more information about the PC Card architecture, including SYSGEN and BSP variables, see PC Card Drivers.
Previous support for 16-bit adapters still exists. For backward compatibility, the new client interface is exposed in parallel with the legacy PCMCIA client interface.
USB Printer Class Driver
The Windows CE 5.0 universal serial bus (USB) printer class driver installs the sample Printer Control Language (PCL) printer driver as the default.
For more information, see Sample USB Printer Class Driver.
USB Function Controller Drivers
Windows CE 5.0 adds USB 2.0 function controller drivers. These drivers are bus drivers that load their client drivers.
For more information, see USB Function Controller Drivers.
USB Mass Storage Function Driver
Windows CE 5.0 adds a USB Mass Storage Function driver that enables a Windows CE-based device to expose a native storage device to a USB host. For example, the Windows CE-based device can expose internal CompactFlash, hard disk, or USB Mass Storage components. The storage then appears as a USB Mass Storage device to a USB host. This enables the USB host to transfer files to and from the native storage device on the Windows CE-based device by means of USB.
For information about USB mass storage function driver registry settings, see USB Mass Storage Class Driver Registry Settings.
For information about the USB function controller driver, see USB Function Controller Drivers.
USB 2.0 Host EHCI Driver
Windows CE 5.0 adds a USB 2.0 Host enhanced host controller interface (EHCI) driver.
For more information, see USB Host Controller Drivers.
Secure Digital I/O (SDIO) Software Stack
Windows CE 5.0 adds a software stack that enables SDIO sockets. The stack's SDBus driver loads host controller drivers below and exposes a standard API above that all SDIO client manufacturers can use to write device drivers for all Windows CE-based platforms. One host driver provided is the standard, which covers all chips utilizing the Standard Host Register Specification v1.0, as defined by the Secure Digital Association. Other host chipsets are also provided.
This stack works for SD Memory cards, SDIO-enabled cards, combo cards, and multi-function cards. For more information about SD drivers, see Secure Digital Card Driver.
Direct3D Mobile Driver
Windows CE 5.0 adds a Direct3D Mobile display driver, which provides the drawing services used by the Direct3D Mobile middleware. The middleware handles all call transport, synchronization, and OS integration issues and the driver manages all the memory for display surfaces.
For more information about Direct3D Mobile middleware, see Direct3D Mobile.
For more information about Direct3D Mobile display drivers, see Direct3D Mobile Display Drivers.
Windows CE 5.0 adds the following display driver functionality:
- Display drivers that you can include from the Platform Builder Catalog:
- Silicon Motion 3DR (Cougar)
- ATI Rage XL Expert 98
- Software-emulated raster operations (ROPs) in a single, extensible library
This optimizes all graphics operations. In previous versions of Windows CE, emulation was handled in Emul.lib, Swg.lib, and the GPE AnyBlt function, while a few ROPs were optimized in Emul.lib and the rest were handled in the AnyBlt function.
- A Graphics Device Interface Performance Test
This script-driven test assesses the performance of display operations. The Windows CE Tesk Kit (CETK) provides four scripts that the Graphics Device Interface Performance Test can run. You can also write, and then run, a custom script for such purposes as testing a specific function or mimicking an application. For more information, see Graphics Device Interface Performance Test.
For more information, see Display Drivers.
Deprecated and Modified Drivers
In Windows CE 5.0, the following changes have been made to drivers:
- The BatteryNotifyOfTimeChange function has been deprecated.
- The bus driver model has been modified.
- Notification LED (NLED) drivers have been moved from GWES to Device Manager.
Building GWES in your OS design is not necessary after moving NLED drivers from GWES to Device Manager. For more information, see Moving a Notification LED Driver from GWES to Device Manager.
Core Connectivity Infrastructure
Windows CE 5.0 supports Core Connectivity and Platform Manager. Core Connectivity is a unified connectivity framework that supports developers working in both Platform Builder and Microsoft Visual Studio®. Platform Manager is a communications technology that manages the communications between a development workstation and a Windows CE–based device. Although Core Connectivity replaces Platform Manager, Platform Manager continues to work in Windows CE 5.0.
In Windows CE 5.0, use the Core Connectivity API and not the Platform Manager API except in code that does not need to be compatible with future releases of Windows CE.
For more information, see Core Connectivity Infrastructure.
Windows CE 5.0 supports the following new breakpoint functionality:
- The ability to set breakpoints while the target device is running
- The ability to set breakpoints in ROM
- ROM stepping
For more information, see Breakpoints.
Windows CE 5.0 adds a debugger driver, eXDI2, that creates a single debugger API to support both hardware-assisted debugging and software debugging. These debugger components offer the flexibility to access OS-specific information without requiring code to run on a target device. To adapt an existing code base to new target hardware for debugging, you can write a new eXDI driver. An adaptation layer converts existing eXDI drivers to the new eXDI2 API as necessary. For more information, see Hardware-assisted Debugging.
The eXDI2 debugger driver has the following functionality:
- Simplified connection interfacing with KdStub using the Kernel Independent Transport Layer (KITL)
- Host-side debugger functionality grouped as a service under the Core Connectivity infrastructure
- Support for multiple client devices
- Helper components available as in-proc COM objects
- Improved breakpoint features and exception handling performance
Windows CE Test Kit (CETK)
Windows CE 5.0 adds the following CETK functionality:
- The ability to connect the CETK to a target device by using Platform Manager
The CETK continues to support sockets as a way to connect the CETK to a target device.
- The ability to start a test, disconnect the CETK from the target device, and later reconnect the CETK to the target device to collect test results
- The ability to specify a location on a target device to store the files required to run a test and to store test results
- The ability to choose one of multiple test kits after you connect the CETK to the target device
Each test kit provides a combination of CETK tests for a specific category of Windows CE-based devices.
- The ability to run the Resource Consumer and Windows CE Stress tools from the CETK
For more information, see Windows CE Test Kit.
Windows CE 5.0 adds the following tests to the CETK:
- Audio CD Driver Test
- Credential Manager Test
- Direct3D Mobile Driver Comparison Test
- Direct3D Mobile Driver Verification Test
- Direct3D Mobile Interface Test
- Flash Memory Read/Write and Performance Test
- Graphics Device Interface Performance Test
- Graphics Device Interface Printer Test
- ICMP API Test
- Imaging Codec Test
- Kernel Scheduler Test
- Local Authentication Plugin Test
- NDIS Performance Test
- Notification Test
- OAL Cache Test
- OAL IOCTL Test
- OAL Timer Test
- PC Card 16-Bit PCMCIA Host Controller Driver Test
- PC Card 32-Bit CardBus Host Controller Driver Test
- PC Card Legacy PCMCIA Driver Test
- RAS Authentication Test
- RAS Server IOCTL Test
- Real-Time Communications (RTC) tests (a collection of eight)
- VoIP Test
- Winsock Performance Test
- Wireless Network Card Test
For a list of all the available CETK tests, see CETK Tests.
Windows CE 5.0 removes the following tests from the CETK:
- Direct3D Basic Rasterization Test
- Direct3D Fogging Test
- Direct3D Multi-Texturing Test
- Direct3D Z-Buffering Comparison Test
- DirectSound Audio Driver Test
- Modular Stress Test
This test was replaced by the Windows CE Stress tool.
- PCMCIA Controller Driver Test
- Printer Driver Test
This test was replaced by the Graphics Device Interface Printer Test.
The following topics highlight changes and improvements to Windows CE features and provide links to more information:
- Applications and Services Development
- Applications - End User
- Communication Services and Networking
- Core OS Services
- Device Management
- File Systems and Data Store
- Graphics and Multimedia Technologies
- Internet Client Services
- Shell and User Interface
- Voice over IP Phone Services
- Windows CE Error Reporting
The .NET Compact Framework
Windows CE 5.0 adds the .NET Compact Framework Service Pack 2 functionality.
Windows CE 5.0 adds functionality for retrieving contact and schedule information from a Microsoft Exchange Server 2003. The IP Phone design template and Telephony User Interface (TUI) Platform Builder Catalog item use this functionality.
Windows CE 5.0 adds XML functionality that enables error strings to be included in the run-time image. Although this increases the run-time image size by 40 KB, it provides more meaningful information to developers when there are errors parsing XML text. Error strings are supported only by the XML Document Object Model (DOM) and the other XML components that build on top of DOM. They are not supported by the XML Minimal Parser component.
For more information, see XML OS Design Development.
Remote Desktop Protocol (RDP)
Windows CE 5.0 adds the following RDP functionality:
- A Terminal Services Client Access License (TS CAL) maintenance tool
TS-CAL is available in any configuration that supports control panel programs, such as Enterprise Web Pad. It requires the RDP client to be in the run-time image.
- A file redirector filter
This allows you to filter when the drive redirector is enabled.
- Inclusion of all Control Panel programs in the Thin Client image
To gain access to the control panel programs, press F2.
- RDP 5.2 replaces RDP 5.1
For migration information specific to RDP 5.2, see RDP 5.2 Migration Issues.
- RDP running in Graphics, Windowing, and Events Subsystem (GWES) rather than in its own process space
This provides faster display updates by reducing the protected server library (PSL) and kernel overhead. RDP running in GWES can improve performance up to 30%. If you configured RDP to run in GWES, you cannot run RDP inside a Web browser. Optionally, you can configure RDP to run in Microsoft ActiveX Control.
For more information, see RDP Modes of Operation in Windows CE.
- A connection bar pinned to the UI
The user cannot unpin it unless the default value of a new registry setting is changed. This prevents spoofing of the client UI at public kiosks. For more information, see RDP Security and Terminal Services Client Configuration through the .rdp File.
Windows Messenger for Windows CE
The Microsoft Windows Messenger for Windows CE real-time communications software combines real–time voice and text communications with file transfer capability.
Windows CE 5.0 adds the following Windows Messenger functionality:
Note The Windows Messenger client implementation in Windows CE 5.0 is based on the desktop Windows Messenger version 5.0 client.
- Support for categorizing contacts into groups and for dragging and dropping contacts
- Support for including and viewing emoticons, which are glyphs that show a smiling face, for example
- User Interface (UI) improvements, including system tray notifications, known as alerts, for incoming messages, and ToolTip support.
- An updated .NET Messenger Service
Microsoft® Windows® Messenger for Windows CE real-time communications software combines real–time voice and text communications with file transfer capability. The .NET Messenger Service is one of two Windows Messenger client application server types. It enables a user to communicate with contacts using a .NET Passport account.
For more information, see Windows Messenger.
Native Wi-Fi WLAN Access Points and Stations
Windows CE 5.0 includes support for Native Wi-Fi wireless local area networks (WLANs). This technology supports Native Wi-Fi access point and Native Wi-Fi station.
For more information, see Native Wi-Fi WLAN.
Windows CE 5.0 adds or extends the following Bluetooth functionality:
- Support for the Headset Profile (HSP) and the Hands-Free Profile (HFP) by using the Audio Gateway Service
- Support for the Personal Area Network (PAN) profile, which includes support for PAN User (PANU), Network Access Point (NAP), and General Ad-hoc Network (GN).
For more information, see Personal Area Network (PAN) Profile Registry Settings.
- The Bluetooth Secure Digital I/O (SDIO) transport driver
As defined by the Bluetooth Special Interest Group (SIG), this driver is used by the host system to interact with a Bluetooth device. The device uses the SDIO interface as the primary hardware to connect to the host system through a standard Bluetooth protocol.
- Support for built-in and PnP transport drivers and for loading the appropriate transport driver in the enhanced Bluetooth Universal Transport Manager (BthUniv)
For more information, see Supported HCI Transport Drivers.
- New SDK samples as a base for implementing Bluetooth technology in Windows CE-based applications
For more information, see Bluetooth Application Development Samples.
- The Bluetooth functions BthAnswerPairRequest and BthPairRequest
Windows CE 5.0 adds domain discovery, which enables a Windows CE-based device to discover an Active Directory server to query.
For more information, see Domain Discovery.
Windows CE 5.0 adds the IPSec v4 Platform Builder Catalog item, which enables two client devices on a network to establish peer-to-peer communication using the IP Security (IPSec) protocol. This technology enables Windows CE-based devices to participate in networks that are secured by IPSec.
For more information, see IPSec v4.
Internet Connection Sharing
Internet Connection Sharing (ICS) is technology that allows networked computers to share a single connection to the Internet. In Windows CE 5.0, ICS includes the Gateway Logging functionality, which writes various system events to a log file on the Gateway device.
NDIS Packet Capturing
Windows CE 5.0 adds two sample tools, Netlog and Netlogctl, to capture network traffic so it can be read by the Microsoft Windows Network Monitor (NetMon).
For more information, see NDIS Packet Capturing.
Remote Configuration Framework
Windows CE 5.0 adds the Remote Configuration Framework, which provides the structure for creating Web-based user interfaces for headless devices.
For more information, see Remote Configuration Framework.
Windows CE 5.0 adds the following TCP/IP functionality:
- Dynamic Query and Modify, which allows you to query arbitrary records in a Domain Name System (DNS) Server
- Secure DNS, which allows you to perform more secure, dynamic updates
You can modify or remove multiple resource record sets that are associated with a specific name.
Internet Protocol Version 6 (IPv6)
Windows CE 5.0 adds support for Dynamic Host Configuration Protocol for IPv6, called DHCPv6 Lite, that passes configuration data to devices in a TCP/IPv6 network
DHCPv6 Lite can obtain prefix, DNS server, and domain search list options from a DHCPv6 server for a network card configured to use DHCPv6. This protocol can also assign prefixes, based on the obtained prefix, to specific network cards, if configured.
Windows Connect Now
Windows CE 5.0 adds Windows Connect Now (previously called USB Flash Config tool), which provides a way to automate the configuration of wireless local area networks (WLANs) that support Native Wi-Fi access point and Native Wi-Fi station. The tool uses a subset of an XML schema supported in Microsoft Windows XP with Service Pack 2.
For more information, see Windows Connect Now.
Windows CE 5.0 adds parental controls, which allow administrators of private networks to create rules to block objectionable Web sites, which prevents specific users from accessing the content.
For more information, see Parental Controls.
Windows CE 5.0 adds Web Proxy, which provides a service for filtering HTTP requests and responses. It also optionally includes a Parental Controls filter, which enables parents to block objectionable Web sites, thereby preventing children from accessing the content.
Windows CE 5.0 supports the Peer Name Resolution Protocol (PNRP), which provides server-less name resolution. You can use PNRP to create peer-to-peer networking applications.
For more information, see Peer-to-Peer Networking.
Universal Plug and Play (UPnP)
Windows CE 5.0 adds the following UPnP functionality:
- UPnP AV Framework, which provides a C++ framework and API to enable original equipment manufacturers (OEMs) to build devices that conform to the UPnP Audio/Video Device Control Protocol (DCP)
- The IUPnPDeviceDocumentAccess interface
Windows CE 5.0 adds power-down thread functionality that allows drivers to perform the following operations:
- Use a critical section to protect hardware
- Set breakpoints in the power handler
- Call any APIs as long as doing so does not block on anything other than critical sections and mutexes
This functionality allows driver developers to use API calls in their power down handler, which simplifies driver development and debugging. Because it is enabled in the kernel by default, the OEM does not have to enable it.
The addition of this functionality resolves some issues in Windows CE .NET 4.2 and earlier where only some APIs could be called in the driver's power handler function. Examples included DEBUGMSG, SetPowerOnEvent, and SetInterruptEvent. In these earlier versions, it was difficult to debug the power handler other than by using DEBUGMSG, which risked powering down hardware that other threads were using.
Variable Tick Scheduler
Windows CE 5.0 adds a variable tick scheduler that enables OEMs to generate a timer interrupt only when required by the Windows CE scheduler. Currently, Windows CE requires timer interrupts to be generated every millisecond.
Note The variable tick scheduler is not implemented for x86-based microprocessors due to hardware limitations.
The variable tick scheduler has the following advantages:
- Improved scheduler performance
Because the system is interrupted only when it needs to be, instead of every millisecond, the variable tick scheduler reduces total scheduler overhead.
- Power savings
Because the timer is set to interrupt at the right time, OEMIdle rarely needs to do anything but idle the CPU. The variable tick scheduler allows OEMIdle to set the CPU to the idle state faster.
- A variable tick scheduler that is backward-compatible
OEMs can keep their current tick scheduler implementation if they do not want to use the variable tick scheduler.
For the countdown style timer, the hardware must support updating the count-remaining register.
System Interrupts Increased to 64
In Windows CE 5.0, the kernel and the scheduler support up to 64 system interrupt (SYSINTR) identifiers, in contrast to Windows CE .NET 4.2, which supports a maximum of 32 SYSINTR identifiers.
C-compatible Interrupt Handlers for MIPS and SH4
In Windows CE 5.0, you can write interrupt service routines (ISRs) in the C programming language for MIPS and SH4 microprocessors.
Loading from Flatreleasedir
In Windows CE 5.0, instead of loading run-time images from flash memory, you can load them directly from the flat release directory without re-imaging or re-flashing your target device. This functionality enables rapid editing, building, and debugging scenarios in the sources and dirs implementation that is new in Windows CE 5.0.
36-bit Address in CreateStaticMapping
In Windows CE 5.0 adds support for a 36-bit address space in the CreateStaticMapping function, which creates a static virtual memory address that maps to a physical address.
Windows CE 5.0 adds the following kernel functions:
Allows OEMs to create special memory heaps with their own custom memory allocator and deallocator functions. When using this function, OEMs, IHVs, and ISVs can make use of any special memory that is available on their systems as heap storage.
Retrieves the call stack of an arbitrary thread in the system.
Provides a means for device drivers and applications to use memory attributes supported on some hardware platforms that the kernel does not support by default.
Allows applications to change the default just-in-time (JIT) debugger dynamically. A soft reset of your target device is no longer required to enable JIT debugging. Also, once JIT debugging is enabled, it is applicable to all new and existing running processes that fault. Only trusted processes can call SetJITDebuggerPath.
Allows an application that performs its own exception handling to report faults to Microsoft.
Windows CE 5.0 adds the following Device Management functionality:
- A default Hypertext Transfer Protocol Secure (HTTPS) connection
The Device Management client connects to the server through a secure connection that uses HTTPS.
- Checkpoint Restart
Checkpoint Restart enables the Device Management engine to track the package files that it downloads. In case of a connection failure when an application downloads or executes, Checkpoint Restart begins the download from the interrupted byte after the failure is corrected. For more information, see Checkpoint Restart.
- Device Management client enhancements, which include the following functionality:
- Additional status messages to a server
- Network tracking status to ensure that tasks execute as expected
- Improved task scheduling, which calculates the task-time intervals independent of failures and retry attempts
- An option to execute only commands that are issued after installation of a package
This option uses the SourceFiles Element (Instruction Response) element.
- Support for the runasync script command
Runasync enables you to write scripts to run programs asynchronously. The run command is still included in Windows CE 5.0.
These enhancements ensure better partnership with Microsoft Systems Management Server using the Device Management Feature Pack.
Windows CE 5.0 adds EDB, an embedded database engine that provides core storage functionality for a Windows CE-based application. EDB is an enhanced version of the Windows CE database (CEDB).
Using EDB, you can create an object store that can contain multiple databases. The object store is file-based and can be easily copied or moved. EDB supports the following functionality:
- Access by multiple users
- Multiple sort orders, key properties, and databases
- Enhanced performance, especially with large databases
For more information, see EDB Database Support.
In Windows CE 5.0, the FSG Manager can link to the Cache Manager, which is a .lib file that provides disk caching to file systems. Cache Manager allows disk caching to be used by any file system, including a custom file system. The file system interfaces with the cache through the FSD manager, and the cache interfaces with the disk. For more information, see Cache Manager.
Volatile Registry Key
The volatile registry key allows registry keys to not be preserved after the operating system reboots. Windows CE 5.0 adds two new values for the dwOption parameter of the RegCreateKeyEx function to support this:
File System Functions
Windows CE 5.0 adds the following file system functions:
This function copies an existing file to a new file.
Retrieves information on a specific volume.
Locks the specified file for exclusive access by the calling process.
Unlocks a region in an open file. Unlocking a region enables other processes to access the region.
Windows CE 5.0 adds the EnumFontFamiliesEx function, which enumerates all fonts in the system that match the font characteristics specified by the LOGFONT structure. EnumFontFamiliesEx enumerates fonts based on typeface name, character set, or both.
AlphaBlend and GradientFill
Windows CE 5.0 adds the AlphaBlend function to the Graphics Device Interface (GDI). AlphaBlend displays bitmaps that have transparent or semitransparent pixels.
Windows CE 5.0 adds Direct3D Mobile, which provides support for 3-D graphics applications on Windows CE-based platforms. Direct3D Mobile is derived from the Direct3D API found on Microsoft Windows-based desktop systems, but optimized for use on embedded systems.
The following are key aspects of Direct3D Mobile:
- In comparison to Direct3D for Windows-based desktop systems, the footprint for Direct3D Mobile is greatly reduced. This is a result of eliminating support for 3-D graphics capabilities not available in embedded devices because of limited hardware and power.
- The driver architecture allows you to implement driver solutions that are pure software, pure hardware, or a blend of software and hardware.
- Direct3D Mobile is built around a type-agnostic architecture. In addition to floating point values, Direct3D Mobile supports fixed-point values that follow the 16.16 fixed-point format.
For more information, see Direct3D Mobile.
Windows CE 5.0 supports encoding and decoding still images using common compression formats, such as JPEG and GIF. That functionality is provided by the Imaging API.
For more information and a complete list of supported still-image codecs, see Imaging.
Windows CE 5.0 introduces support for additional Windows Media 9 Series audio and video decoders. The following decoders are supported:
- Windows Media Audio Lossless
- Windows Media Audio Pro
- Windows Media Video Advanced Profile
For information on the limitations associated with Windows CE support for these decoders, see Codecs and Formats.
Windows CE 5.0 does not support DirectSound. All audio applications must now use Waveform Audio.
Windows CE 5.0 does not provide a MIDI filter for DirectShow. Third party solutions for MIDI support through DirectShow are still possible, however.
Simplified Chinese MSPY 3.0 IME
Windows CE 5.0 supports the Microsoft Pinyin (MSPY) Input Method Editor (IME) 3.0 for Simplified Chinese. MSPY 3.0 is a sentence-based input method that uses an intelligent, bigram-based language model and has a self-learning capability with a high degree of accuracy.
MSPY 3.0 provides the following functionality:
- Support for selecting one of three lexical databases
- Inclusion of a 3-D large ShuangPin touch screen and a 2-D small ShuangPin touch screen that significantly reduce user input strokes and errors
- Inclusion of an End User Defined Phrases (EUDP) dictionary
- Additional configuration options for OEMs, such as setting a vertical or horizontal candidate list
For more information, see Simplified Chinese MSPY 3.0 IME.
Complex Scripts are languages whose printed form is not rendered in a simple way. For example, a Complex Script language might allow bidirectional rendering, contextual shaping of glyphs, or combining characters. Due to these special requirements, extra processing is required and the control of text output must be very flexible.
Windows CE 5.0 adds the following Complex Scripts functionality:
- One keyboard layout driver per locale
- A Uniscribe scripting engine
Uniscribe exposes an API to support the display and editing of international text, including the complex rules of Middle Eastern and Asian scripts.
- Mirroring of the user interface for Arabic and Hebrew
- Support for Complex Scripts in graphics device interface (GDI) and Graphics, Windowing, and Events Subsystem (GWES)
- Support for Complex Scripts in common controls
- Content rendering and intrinsic control in Microsoft Internet Explorer 6 for Windows CE
- Fonts that support Complex Scripts
- A sample shell that mirrors the Windows CE Standard Shell
- Support for run-time images for the following locales:
Multiple Input Languages
Windows CE 5.0 introduces the concept of multiple input languages. Multiple keyboard layouts and Input Method Editors (IMEs) can be installed on a device. This can be implemented in a run-time image that has only one UI language or in a Multilingual User Interface (MUI) run-time image.
Supporting multiple input language provides the following functionality:
- One preloaded keyboard
Although this is the default, OEMs can define up to 15 preloaded keyboards and install more than 15 keyboard layouts on the device.
- One preloaded IME
Although this is the default, OEMs can install additional IMEs.
- A dynamic keyboard layout language that can be changed through the Taskbar and shortcut keys
- Support for per process and thread keyboard layouts
- An input language registry structure that includes the MUI-friendly value, Layout Display Name, to support localized display names
- A Regional and Language Settings application in Control Panel that provides the Input Language dialog box to support the following end user options:
- Adding and removing input languages from the preloaded list
- Changing the default keyboard layout language with a soft reset
- Changing the preloaded Input Method Editor with a soft reset
For more information, see Multiple Input Language Support.
Font Linking for East Asian Multilingual User Interface (MUI) Configurations
Windows CE 5.0 supports more than one East Asian language in MUI configurations. Font linking ensures that East Asian languages that share the Unicode CJK range draw the correct glyph shapes from the appropriate font based on the language in the UI.
Unified East Asian Edit Control
Windows CE 5.0 adds a unified East Asian edit control, which allows you to include more than one East Asian language in a run-time image.
National Language Support (NLS)
Windows CE 5.0 adds the following NLS functionality:
- LCMapString, which supports LCMAP_LINGUISTIC_CASIN
This function maps one character string to another, performing a specified locale-dependent transformation. LCMapString can also generate a sort key for the input string.
- Additional LCTYPE constants:
- LOCALE_SCOUNTRY, which provides support for the full localized name of the country/region.
- LOCALE_SLANGUAGE, which provides support for the full localized name of the language.
- LOCALE_IDIGITSUBSTITUTION, which determines the shape of the digits.
For example, Arabic, Thai, and Indic digits have classical shapes that are different from Western digits.
For more information, see LCTYPE Constants.
- Additional flags for GetDateFormat:
- DATE_LTREADING, which adds marks for left-to-right reading layout.
- DATE_RTREADING, which adds marks for right-to-left reading layout.
Internet Explorer 6 for Windows CE
Windows CE 5.0 adds the following functionality to Internet Explorer 6 for Windows CE:
- Filters and transitions, which let you add visual effects to Web page content
For more information, see Adding Filters and Transitions.
- Theme support, which lets you apply the Windows XP visual style to the intrinsic Internet Explorer for Windows CE controls such as scrollbars, buttons, and the edit box
For more information, see Theme Support Reference.
- Audio cues while browsing, which lets you configure the browser to play a sound file while navigating between Web pages
For more information, see Internet Explorer Browser Control Host Registry Settings.
- IESAMPLE enhancements
For more information, see The IESample Browser.
- A replaceable WinInet user interface, which includes a procedure to implement IsDialogBoxHandled for handling errors related to the security certificate
For more information, see Replacement of the WinInet User Interface.
- Remote procedure call (RPC) DCOM support, which provides Internet Explorer RPC support to enable the browser parent window to communicate with its child windows if the child window is opened by using the Open method of the window object
For more information, see Internet Explorer RPC Support.
- A customizable font range, which enables custom mapping of HTML and CSS font sizes to your own font sizes
By default, the font sizes are set for 14 to 40 points. For more information, see Customizing the Browser Font Table.
- XML data islands, which allow you to use scripting with an XML document without having to load the XML document through a script or an <OBJECT> tag
For more information, see XML Data Islands.
- Mouse events that support TVLens, which provides television-style navigation through Web pages on devices
The mouse event support allows you to use TV lens to handle mouse events during navigation by using directional keys. For more information, see Internet Explorer TV-Style Navigation Registry Settings.
- A replaceable Browser Control Host (Shdocvw) user interface, which provides resources that you can use to replace Shdocvw UI elements such as dialog boxes and message boxes
- Popup blocking, which enables the user to block unwanted popup windows that appear while browsing
For more information, see Using the Popup Blocker Interfaces.
- Platform for Privacy Preferences (P3P), which enables filtering cookies
For more information, see Platform for Privacy Preferences (P3P).
- Enhancements to the focus rectangle, which notifies the user of an action with an audio cue
- Improved security for Internet Explorer 6 for Windows CE and the Microsoft® JScript® development system and the Microsoft Visual Basic® Scripting Edition (VBScript) programming language
Certificate Chaining Engine
In Windows CE 5.0, the certificate chaining engine has been upgraded to Windows .NET Server 2003. However, the following functionality is not supported:
- Online discovery and download from HTTP
- File Transfer Protocol (FTP)
- Lightweight Directory Access Protocol (LDAP) using Authority Information Access (AIA) fields
- The ability for users to download certificate revocation lists (CRLs), trust lists, issuer certificates, and cross certificates
In Windows CE 5.0, the PFX APIs are used to export and import certificates with their associated private keys. The certificates and encrypted private keys are represented in the Public-Key Cryptography Standards (PKCS) #12 format. The encryption uses a secret key derived from a password. The format is compatible with that used by Windows XP.
For more information, see Certificates Functions.
Message APIs for Cryptography
Windows CE adds new messaging APIs for cryptography. These APIs perform the following tasks:
- Create and work directly with PKCS #7 messages.
- Encode PKCS #7 data for transmission.
- Decode PKCS #7 data received.
- Decrypt and verify the signatures of received messages.
For more information, see Cryptography Functions.
Local Authentication Subsystem
Windows CE 5.0 adds the local authentication subsystem, which enables a modular device lock mechanism with support for plug-ins that include a password and PIN plug-in, a smart card plug-in, and a fingerprint plug-in.
For more information, see Local Authentication Subsystem (LASS).
Credential Manager is one of several authentication services in Windows CE that authenticates clients using accessing remote resources. Credential Manager manages credential information, such as user names and passwords. Windows CE 5.0 provides the following enhancements to Credential Manager:
- More secure caching of Security Support Provider (SSP) credentials
- Credential caching for multiple targets
- Modification of applications to use Credential Manager APIs
For more information, see Credential Manager.
Windows CE 5.0 provides the following authentication services:
- Support for client datagram mode in the NTLM package
- Support for AcceptSecurityContext in the Negotiate security package
Graphics, Windowing and Events (GWES)
Windows CE 5.0 adds the following GWES functionality:
- Support for device-independent bitmap (DIB) in the ImageList_Add function, which allows the ImageList_Add function to accept a DIB for the images that are added to the Image List
In versions earlier than 4.2, the Image List control accepted only DDB for the images that are sent to the control through ImageList_Add.
- New styles for list boxes so a list box owner can draw its contents and specify whether the items in the list box are fixed or variable height
For more information on LBS_OWNERDRAWFIXED and LBS_OWNERDRAWVARIABLE, see List Box Styles.
Windows CE Standard Shell
Windows CE 5.0 adds or enhances the following Windows CE Standard Shell functionality:
- Animation control, which supports the Microsoft Win32® common control known as an animation control
An animation control is a window that displays an Audio-Video Interleaved (AVI) clip. For more information, see Animation Controls.
- A recycle bin that works with DB volume
This enables OEMs to target where a database volume should reside to preserve its state. The recycle bin uses a database in the object store to track what has been deleted. In earlier versions of Windows CE, this database was lost and could not be restored if the device powered down. For more information, see SHGetSpecialFolderPath
- A new extension for the Desktop.ini file, which enables a link (LNK) file to be associated with a resource string that will become the name of the LNK file
- An update to the ShellExecuteEx function, which enables a missing verb or action functionality
For more information, see ShellExecuteEx.
- Support for the following list-view common controls:
- Background image
- Double buffer
- Work area
- Support for the Taskbar interface, ITaskbarList2
- Updates to the following functionality in Windows CE Explorer:
- The Taskbar is componentized and easier to customize.
- Background images for Windows CE Explorer can be generated from files other than BMP files.
- A wider set of formats for the background image is based on the image decoder availability starting in Windows CE 5.0.
When the appropriate image decoders are included in the run-time image, you can choose among several formats for the background image that include .bmp, .gif, and .jpg. For more information, see Control Panel Applications.
- Windows CE Explorer and GetOpenFileName display consistent views, which provides a better usability experience.
Windows Thin Client Shell
In Windows CE 5.0, the Windows Thin Client Shell bypasses, by default, the Thin Client wizards, providing a default connection. When this default connection is used, the user is prompted for a server.
For more information, see Configuring the Thin Client Startup Behavior.
In Windows CE 5.0, the Network User Interface (UI) and the security support providers (SSPs) use the new Credential Manager infrastructure. These changes might impact OS developers that have their own custom Network UI. For more information, see Network User Interface Migration.
Voice Over IP (VoIP)
Windows CE 5.0 adds the following functionality to enable easier OS design customization for IP phones:
- A general-purpose integration library for Microsoft Exchange Server, which you can use to provide contact information
- An updated VoIP Application Interface Layer (VAIL) component, for automatic locking and unlocking of a phone when connected to a Windows-based desktop computer
You can access this functionality in the Platform Builder Catalog under Voice over IP Phone Services.
For more information, see Developing an IP Phone.
Windows CE 5.0 adds a Windows CE Local Authentication Plugin (LAP), which performs user authentication by determining if a computer running Windows CE is locked or unlocked.
For more information, see PC Authentication.
Windows CE 5.0 adds a Phone input method editor (IME) that provides triple-tap functionality for use only by the Telephony User Interface (TUI) application. Extending Phone IME or using it in other applications is not supported.
For more information, see Phone IME.
Real-time Communications (RTC) Client API
In Windows CE 5.0, the RTC Client API is the same as RTC Client 1.2 that is included in Microsoft Windows XP.
Telephony User Interface (TUI)
The TUI application provides an IP phone user interface that customers can use as example code or as a base for their own IP phone UI. TUI is targeted for the Broadcom BCM91101SP hardware platform.
Windows CE adds the following TUI functionality:
- Integration with Microsoft Exchange for finding contacts
- Free and busy status information
- Voice messaging
- Multi-party call conferencing
TUI is available through the Voice over IP Phone Services Catalog item.
For more information, see Developing an IP Phone.
VoIP Application Interface Layer (VAIL)
VAIL abstracts the lower-level interface provided by the RTC Client API to provide you with programming constructs better suited for use in VoIP applications.
For more information, see VoIP Application Interface Layer (VAIL).
Windows CE 5.0 adds the Windows CE Error Reporting tool, which collects specific information about a program error or program crash on a Windows CE-based system. When enabled, Windows CE Error Reporting collects crash information automatically. In addition, the Error Reporting tool offers you the option to use command-line instructions to collect similar information.
Windows CE 5.0 adds the following functionality for error reporting:
- Support for collecting program error or program crash information
- Support for saving program error or crash information to a dump file, and uploading the file to the Microsoft Web site, watson.microsoft.com
- Support for programmatically uploading any file from the device to watson.microsoft.com
- Support for programmatically generating error reports using the ReportFault and CaptureDumpFileOnDevice functions
- Inclusion of an option in a run-time image to display a user-consent dialog box before uploading error reports
- Inclusion of an option to choose control settings for Error Reporting from Control Panel
For more information, see Windows CE Error Reporting.
Windows CE 5.0 adds a unified build system to Platform Builder, which allows Platform Builder users to switch between the integrated development environment (IDE) and the command-line without problems. Because the IDE is a thin layer over the command-line build system, there is no functional difference in the run-time images that are produced using the IDE or the command-line.
The unified Build system adds the following functionality:
- Targeted Build, which enables you to select a node on the FileView tab in the Workspace window, and then from the context menu, choose a command to build files in the selected node
The commands are Build, Build and Sysgen, and Sysgen.
- An XML file (.pbxml) that contains information about a workspace
Previously .wce files contained this information.
- Workspaces that, by default, are under the %_WINCEROOT%\PBWorkspaces directory
For more information, see Workspaces.
- Projects that are based on sources and dirs files, and Platform Builder project (.pbp) files that are deprecated
For more information, see Sources File and Dirs File. When you create a project using the New Project Wizard, the information necessary for Platform Builder to build the project is contained in an XML-based project (.pbpxml) file. For more information, see Projects.
- A FileView display that coincides with the directory structure you see when you use sources and dirs files
Projects you create appear in a node called Projects. A My Favorites folder exists for nodes for which you might want quick access. For more information, see FileView Tab.
- A Build menu that is divided into Build Project and Build OS to accommodate new and changed menu options
- A Project menu that includes updated commands
For more information, see Project Menu Options.
- A Cesysgen.bat file that is divided into a master Cesysgen.bat file and smaller .bat files that correspond to each dependency tree in the %_WINCEROOT% directory
- More robust dependencies for Platform Builder Catalog items in an OS design
This enables users to see complex dependencies for a selected item.
Windows CE 5.0 includes many enhancements to Platform Builder. For a comprehensive list of the changes, see Platform Builder User Interface Migration Issues. The following list highlights some of the enhancements:
Windows CE adds the following breakpoint functionality to Platform Builder:
- A new breakpoint dialog box, which allows you to set a location, data, or message breakpoint
- A Breakpoints List window
This is a window that can be docked that displays the list of user breakpoints in loaded executable code. The Breakpoints List window includes buttons that allow you to do the following tasks:
- Create a new breakpoint
- Delete a breakpoint or clear all breakpoints
- Enable or disable breakpoints
- Display breakpoint properties
- Display source code at a breakpoint location
For more information, see Breakpoints List Window.
Core Connectivity UI
Windows CE provides a unified connectivity framework called Core Connectivity that supports developers working in Microsoft Platform Builder and Microsoft Visual Studio® .NET 2003 development system. Windows CE 5.0 adds the following Core Connectivity UI functionality:
- A USB over serial transport
- Support for configuring Remote Connection functionality in the Target Device Connectivity Options dialog box and the Debug Message Options dialog box
- An updated Target menu
For more information, see Target Menu Options.
Windows CE 5.0 includes only one configuration called CEBASE. The functionality is no longer divided into HLBASE or IABASE for headless and display-based devices, respectively.
Windows CE 5.0 improves the driver resolver. It determines which drivers must be added to an OS design based on the drivers supported by the current OS configuration and the drivers supported by the current BSP.
An environment variable contains information about an aspect of the OS design, such as a drive, path, or configuration string. Windows CE 5.0 includes updated environment variables and new PRJ environment variables, which provide project-specific functionality in your OS designs.
In Windows CE 5.0, the Platform Builder directory structure has been updated.
For more information, see Platform Builder Directory Structure.
Windows CE 5.0 adds or enhances the following Platform Builder dialog boxes:
- New Project Settings dialog box
For more information, see Project Settings Dialog Box.
- Updated Platform Settings dialog box
For more information, see Platform Settings Dialog Box.
- SDK Settings dialog box
When creating a software development kit (SDK), the EULA files on the EULA/Readme tab must be in .rtf format, not .txt format. Also, custom user license agreements are now displayed to the end user in a separate dialog box from the Microsoft EULA that is required.
Platform Builder IDE Terminology
Windows CE 5.0 provides updated terminology in the Platform Builder IDE, which corresponds with terminology used in Help.
For more information, see Terminology.
Compiler and Linker
The language of Windows CE 5.0 compilers conforms to the Microsoft Visual C++ .NET 7.1 development system. Windows CE 5.0 adds the following C++ language features.
- New Compiler Options
These enable link-time code generation, stack checking, and run-time error checking.
- New Linker Options
These enable the Microsoft Interface Definition Language (MIDL) compiler and help manage IDL output.
- DUMPBIN Utility Options
These enable you to view standard libraries, executables, and DLL files.
- C++ Language Changes
These changes include conformance options; WMMX, SSE, and SSE2 intrinsic functions; and wide-character types.
For more information, see Compiler Migration Issues.
Removed or Changed Functionality in Platform Builder
In Windows CE 5.0, the following functionality has been removed or changed:
- Catalog item (.cec) files do not contain information about how to build the related Catalog item.
For more information, see Catalog Item Files.
- Some IMG environment variables have been removed.
For more information, see IMG Environment Variables.
- Some BSP_NO environment variables have been removed.
For more information, see BSP_NO Environment Variables.
In Windows CE 5.0, the Help system for Platform Builder adds the following functionality:
- An improved user interface
- Customized filtering that allows you to filter Help topics based on development phases, information types, design templates, and Catalog item
For more information, see Help Filters.
- The ability to access Help from the Catalog for device drivers and core OS services
- The ability to open and view multiple document windows simultaneously
- The ability to customize toolbars and move or dock navigation windows
For more information, see Help on Help in Document Explorer. To learn how to open Document Explorer, and to review other Help features, see Getting Assistance.
Migrating from an Earlier Version of Windows CE | Bringing Up a Hardware Platform | Developing a Device Driver | Windows CE Features | Platform Builder User's Guide | Developing an Operating System | Developing an Application | Debugging and Testing | Developing a Target Device
Send Feedback on this topic to the authors