ATL for Windows CE is a template library specifically designed for creating ActiveX controls and other COM components. Because your ATL components implement only the specific interfaces that your project requires, the code you create is smaller and faster than the code you would create by using MFC for the same project.
One important use of ATL is to help you create ActiveX servers. An ActiveX server is a DLL or .exe that contains one or more COM components. The components may include simple objects, dialog boxes, and property sheets that belong to a full ActiveX control. A server also provides the class factories that instantiate the components when they are requested by clients. It contains code to enter and remove itself from the registry and notify COM when it can safely be unloaded from memory. Windows CE supports only in-process servers, which are DLLs that are loaded directly into the address space of the calling process. 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.