The Active Template Library (ATL) for Windows CE is a specially designed C++ template library optimized to help you create small, fast, ActiveX servers. It provides stock implementations of many of the most commonly used interfaces. It also supports dual interfaces, aggregation, connection points, enumerators, tear-off interfaces, and ActiveX controls (including the new windowless controls).
An ActiveX server is a dynamic link library (DLL) or executable (EXE) that contains one or more COM components. These components can be anything from a simple object, dialog box, or property sheet to a full ActiveX control, with or without Internet browser support. In addition to the components themselves, a server provides the class factories that instantiate the components when requested by clients. The server also contains code to register and unregister itself, and to let COM know when it can safely be unloaded from memory.
ATL for Windows CE is expressly designed for creating ActiveX controls and other COM components, so your ATL components only implement the specific interfaces your project requires. Because of this, the code you create using ATL is smaller, faster, and more efficient than the code you would create by using MFC for an equivalent project. To get the most benefit from using ATL, however, you do need to have some familiarity with the Component Object Model (COM).
For more information about how the Active Template Library for Windows CE can help make it easier to develop ActiveX components and controls, see Using a Template Library and Using the ATL for Windows CE Wizards to Simplify Application Development.
For information on differences between ATL for Windows CE and ATL for desktop platforms, see How is ATL for Windows CE Different from ATL for Desktop Platforms?