Unsupported ATL Macros and Global Functions

Although ATL for Windows CE supports most of the standard ATL global functions, a few are not relevant to the current version of Windows CE.

In Windows CE, you can use ATL to create in-process servers only. Because Windows CE does not support marshalling, ATL for Windows CE does not support the AtlFreeMarshalStream, AtlMarshalPtrInProc, or AtlUnMarshalPtr global functions.

In Windows CE, whenever an application blocks, waiting for a message or some other event, the kernel puts the CPU into low power mode. If an application loops for a long time without blocking, it defeats this power management feature. Because the AtlWaitWithMessageLoop function does not block while waiting for the object to be signaled, ATL for Windows CE does not support this function. ‹This may be implemented in the next version.

ATL for Windows CE also does not support the AtlCreateTargetDC global function. In Windows CE, this function simply returns the same device context handle you pass to it.

ATL for Windows CE supports most of the macros defined in the standard Active Template Library exactly as they are supported on Windows-based desktop platforms. However, it does not support the BEGIN_CATEGORY_MAP, END_CATEGORY_MAP, IMPLEMENTED_CATEGORY, or REQUIRED_CATEGORY macros because Windows CE does not support category maps.

In addition, because Windows CE does not support service maps, snap-in objects, or some extended window styles, ATL for Windows CE does not support the following macros: