Active Template Library

from Wikipedia, the free encyclopedia

The Active Template Library (ATL) is a set of Visual C ++ - programming libraries to create and use of COM components, including ActiveX controls built. The part of the name template (German: template) comes from the extensive use of C ++ class templates . Compared to programs generated using MFC , the components generated with ATL are smaller and can therefore be loaded more quickly via the Internet. As is usual with the use of class libraries, the ATL is used by including the header files and links with the actual library binary files. However, Visual C ++ offers special ATL project templates in which the integration is already specified. It is a commercial product from Microsoft, which is distributed with the VC ++ compiler.

Range of functions

The COM support in VC ++ allows developers to easily create a variety of COM objects, OLE servers and ActiveX controls. The source codes of the ATL are structured similarly to the Standard Template Library (STL); a “ wizard ” also takes on the task of creating classes and interfaces, making work easier for the developer.

Controls that can be embedded in web pages could also be created with the Microsoft Foundation Classes , but attention should be paid to the size of the data to be downloaded, where the ATL has advantages over the MFC. The MFC's dependencies add up to several megabytes depending on use, whereas all ATL dependencies are compiled into a library file (DLL) that is only a few hundred kilobytes in size.


A specific area of ​​application for ATL is Microsoft's Active Server Pages , where VBScript is used as the programming language, the range of functions of which can be expanded as required using ActiveX controls and COM objects. Furthermore, ATL is the basis of the Windows Template Library (WTL). This is an open source framework released by Microsoft for creating user interfaces (dialogs, views) for Windows programs (Windows desktop applications / WDA). There is also a variant of the ATL called ATL Server for developing server-side software.


The development of ATL began at the end of 1995 when Microsoft wanted to develop new class libraries for the Visual C ++ 4.2 Enterprise Edition . During the development phase, these libraries were initially referred to as Microsoft Enterprise Classes (MEC). The first version, ATL 1.0, was made available for download on the Internet in the early summer of 1996. ATL 1.1 followed in late summer, which in addition to bug fixes also contained innovations such as connection points, NT services, RGS registry support and security functions. With the subsequent ATL 2.0 you could create ActiveX controls. It was shipped together with VC 5.0 in December 1996. Version 2.1 soon followed, which only contained bug fixes for Alpha , MIPS and PowerPC processors. ATL 2.1 was shipped with the alpha version of Visual C ++ 5.0; it could also be downloaded from the internet for VC 4.2. In June 1998 VC 6.0 was shipped together with ATL 3.0. ATL version 7 was delivered with Visual Studio version 2003. The current version is ATL 9.0. In November 2014 Microsoft released the free Visual Studio Community 2013, which includes the current ATL.

Individual evidence

  1. Jim Springfield: Foreword to B. Rector, C. Sells: ATL internals . Addison-Wesley, 2nd edition, 1999, ISBN 0-201-69589-8

Web links