Originally Posted by MSDN edited for clarity
Microsoft Windows CE 3.0
API Considerations
When you are porting an application from a Windows-based desktop computer to a Windows CE-based platform you need to consider the difference in APIs that are supported by each platform. Although Windows CE is based on the Win32 APIs, there are some important differences between the Windows CE API set and the Win32 API set:
- Windows CE supports a subset of the Win32 API set. Some Win32 functions are not supported at all — and no 16-bit Windows functions are supported. You must replace the unsupported functions with alternative functions, if available, or create a work-around. For example, Windows CE does not support the MoveTo and LineTo drawing functions, but you can use the PolyLine function as an alternative.
- Some of the APIs that are supported have a reduced feature set — fewer supported window styles, for example, and more limited support for colors and fonts. Some APIs have one or more parameters completely disabled. Others have parameters with a reduced range of options. For example, while both the CreateWindow and CreateWindowEx functions are supported, Windows CE only supports only a subset of the Win32 window styles.
- The Windows CE API set contains a number of Windows CE–specific extensions. Many of these — including the touch screen and notification — support the hardware capabilities of the various devices
- Some Win32 functions have been replaced by Windows CE equivalents. For example, tool and menu bars have been combined into a single Command Bar, which has a new API.
- You might have to modify some of the supported data types. Windows CE supports all necessary Win32 structures, but a Windows CE-based platform might not use all members of a structure. Other structures might not accept the full range of options.
- Some messages, for example many WM_* and EM_* messages, are not supported in Windows CE. Some supported messages have been modified for Windows CE, so that their might differ from the desktop counterpart. Windows CE also features some CE-specific messages, such as WM_HIBERNATE.
- There are limitations on the use of exception handling. While there is support for Win32-structured exception handling, Windows CE does not support C++ exception