Active Template Library

In the Active Template Library (ATL) is a set of Visual C class libraries for Microsoft Windows for creating and using COM components, including ActiveX controls. The name component template is due to the extensive use of C templates forth. Compared to generated using MFC programs components generated with ATL are smaller and faster to load on the Internet. As is usual in the use of class libraries is done using the ATL about incorporating the header files and linking with the actual library binaries. However, Visual C provides special ATL project templates where the integration is already given. It is a commercial product from Microsoft, which is sold with the VC compiler.


The COM support in VC allows developers to create a variety of COM objects, OLE servers and ActiveX controls in a simple way. The source code of the ATL are of a similar structure Standard Template Library (STL ); A wizard also assumes the creation of classes and interfaces and facilitates the developer so that work.

Controls that can be embedded in web pages could be just created with the Microsoft Foundation Classes, but care should be taken to the download size, where the ATL MFC has the opposite advantages. The dependencies of the MFC add up according to the use of several megabytes, whereas all ATL dependencies are compiled into a DLL that is only a few hundred kilobytes in size.


A specific application for ATL is the Microsoft ASP technology where VBScript is used as programming language used, their functionality by ActiveX controls and COM objects can be extended. Furthermore, ATL is the basis of the Windows Template Library ( WTL ). This is a shared Microsoft as an open source framework for creating user interfaces ( dialogs, views ) for Windows programs (Windows Desktop Applications / WDA). From the ATL there is also a variant called ATL Server to develop server-side software.

Revision history

The development of ATL began in late 1995 when they wanted to develop new in Microsoft class libraries for Visual C 4.2 Enterprise Edition. During development time, these libraries were designated initially as a Microsoft Enterprise Classes ( MEC). The first version, ATL 1.0, was offered in the early summer of 1996 for download on the Internet. In late summer, followed ATL 1.1, which contained, besides bug fixes and new features such as connection points, NT Services, RGS registry support and security features. With the following ATL 2.0 it was able to create ActiveX controls. It was delivered in December 1996 together with VC 5.0. It was soon followed by version 2.1, which contained only fixes for Alpha, MIPS and PowerPC processors. ATL 2.1 was delivered together with the alpha version of Visual C 5.0, and there could be downloaded via the Internet for VC 4.2. In June 1998, VC 6.0 was delivered jointly with ATL 3.0. With the Visual Studio 2005 version of ATL was delivered in version 7. Current version as of ATL is 9.0.