The Active Template Library (ATL) is a library of C++ class templates provided by Microsoft that simplify the programming of Component Object Model (COM) objects. This tag should be used to indicate questions about the use of ATL. For questions about COM unrelated to ATL use the com tag.
The Active Template Library (ATL) is a set of C++ class templates that simplify the programming of Component Object Model (COM) objects. When first introduced around the time of Visual C++ 5.0 and Windows 95 the name of the library was ActiveX Template Library as it was intended to be used for the development of ActiveX objects.
The library can be used for purposes other than COM programming as it provides templates for a number of pieces of functionality including thread and window management. ATL can be used as a lightweight alternative to MFC to program Win32 GUI desktop applications and is the basis for the Windows Template Library (WTL).
ATL provides several different classes for programming both client and server COM objects. It has been extended over the years with additional functionality to support more complex COM objects.
The library uses an RAII approach along with smart pointers and automatic reference counting to wrap much of the underlying Windows API used for COM objects to make programming COM easier and safer.
The library is available with retail versions of Microsoft Visual Studio, see details and reference on MSDN: ATL Reference.