Active Template Library

ATLATL (Active Template Library)
The Active Template Library (ATL) is a set of template-based C++ classes developed by Microsoft, intended to simplify the programming of Component Object Model (COM) objects.wikipedia
34 Related Articles

ActiveX

ActiveX controlActive XActiveX Development Kit
The COM support in Microsoft Visual C++ allows developers to create a variety of COM objects, OLE Automation servers, and ActiveX controls.
ActiveX is supported in many [[List of graphical user interface builders and rapid application development tools|rapid application development]] technologies, such as Active Template Library, Delphi, JavaBeans, Microsoft Foundation Class Library, Qt, Visual Basic, Windows Forms and wxWidgets, to enable application developers to embed ActiveX controls into their products.

Curiously recurring template pattern

The library makes heavy use of the curiously recurring template pattern.
The Microsoft Implementation of CRTP in Active Template Library (ATL) was independently discovered, also in 1995 by Jan Falkin who accidentally derived a base class from a derived class.

Component Object Model

COMActiveXActiveX/COM
The Active Template Library (ATL) is a set of template-based C++ classes developed by Microsoft, intended to simplify the programming of Component Object Model (COM) objects.
To simplify COM development, Microsoft introduced ATL (Active Template Library) for C++ developers.

OLE Automation

AutomationAutomation ObjectsCOM/OLE Automation
The COM support in Microsoft Visual C++ allows developers to create a variety of COM objects, OLE Automation servers, and ActiveX controls.

ATL Server

Server Response File
It draws on the existing technologies like ISAPI and the Active Template Library, and includes a template library which is dedicated for use with developing Web-based applications.

Windows Template Library

WTL
It was developed primarily as a light-weight alternative to the Microsoft Foundation Classes and builds upon Microsoft's ATL, another lightweight API widely used to create COM and ActiveX libraries.

Microsoft Foundation Class Library

MFCMicrosoft Foundation ClassesApplication Framework eXtensions
COM objects can also be created with Microsoft Foundation Classes (MFC), but this leads to larger binaries that require support DLLs.

C++

C++ programming languageC++98C with Classes
The Active Template Library (ATL) is a set of template-based C++ classes developed by Microsoft, intended to simplify the programming of Component Object Model (COM) objects.

Microsoft

Microsoft CorporationMicrosoft Corp.MS
The Active Template Library (ATL) is a set of template-based C++ classes developed by Microsoft, intended to simplify the programming of Component Object Model (COM) objects.

Microsoft Visual C++

Visual C++MSVCMicrosoft C
The COM support in Microsoft Visual C++ allows developers to create a variety of COM objects, OLE Automation servers, and ActiveX controls.

Smart pointer

smart pointershandleshared_ptrs
On the COM client side ATL provides smart pointers that deal with COM reference counting.

Dynamic-link library

DLLDLLsdynamic-link libraries
COM objects can also be created with Microsoft Foundation Classes (MFC), but this leads to larger binaries that require support DLLs.

Metadata (CLI)

MetadataCLI metadataCLI Attribute
ATL version 7 also introduced attributes in C++ in an attempt to provide something similar to CLI attributes, however these have not been particularly successful, and have been deemphasized in ATL version 8 (Visual Studio 2005); the various wizards no longer generate them by default.

Resource acquisition is initialization

RAIIclosure blocksConstructor Acquires Destructor Releases
ATL includes many RAII classes to simplify management of COM types.

WinMerge

It has also removed ATL/MFC dependencies so that WinMerge can be built using the free Visual C++ Express editions.

Crystal Analysis

After disappointing application performance, a decision was made to rewrite using ATL COM in C++.