Windows CE is a more compact operating system than Windows-based desktop platforms, so ATL for Windows CE supports a streamlined subset of the standard ATL library. ATL for Windows CE does not support the following standard ATL features:
ATL for Windows CE supports only in-process servers, not out-of-process servers. An in-process server is a DLL that is loaded directly into the address space of the calling process. An out-of-process server is a stand-alone executable that runs in its own address space. Because an in-process server runs in the same address space as its host, it does not incur the overhead associated with cross-process marshalling on every call.
ATL for Windows CE does not support the apartment threading model because it requires more memory resources than the single threading and free threading models. Part of the overhead of the apartment threading model is its built-in marshalling support. Because Windows CE supports only in-process servers and does not support marshalling, it saves both memory and performance overhead by supporting only the single and free threading models.
Windows CE does not support asynchronous monikers, so ATL for Windows CE does not support the CBindStatusCallback class.
For information about standard ATL classes, methods, macros, and global functions that ATL for Windows CE does not support, see the following topics: