Active Template Library
Encyclopedia
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. The COM support in Microsoft Visual C++ allows developers to create a variety of COM objects, OLE Automation
servers, and ActiveX
controls. ATL includes an object wizard that sets up primary structure of the objects very quickly with a minimum of hand coding.
s. MFC applications tend to be large and require support DLL
s. ATL allows creating smaller controls without support DLLs, so ATL is in a sense a lightweight alternative to MFC for the COM control environment.
A common use of ATL in Active Server Pages
(ASP) is to construct objects that can be called from a script. While limited in certain respects, VBScript
is able to call C++ Windows code contained in a COM object.
On July 28, 2009, Microsoft released a patch to ATL to fix a bug that could allow ActiveX
controls created using ATL to be vulnerable to a remote code execution security flaw.
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
classes developed by Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
, intended to simplify the programming of Component Object Model
Component Object Model
Component Object Model is a binary-interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages...
(COM) objects. The COM support in Microsoft Visual C++ allows developers to create a variety of COM objects, OLE Automation
OLE Automation
In Microsoft Windows applications programming, OLE Automation , is an inter-process communication mechanism based on Component Object Model that was intended for use by scripting languages – originally Visual Basic – but now are used by languages run on Windows...
servers, and ActiveX
ActiveX
ActiveX is a framework for defining reusable software components in a programming language-independent way. Software applications can then be composed from one or more of these components in order to provide their functionality....
controls. ATL includes an object wizard that sets up primary structure of the objects very quickly with a minimum of hand coding.
History and use
Controls for the Internet market could have been made with the Microsoft Foundation Classes (MFC), but the market requires controls to be small and compact for downloading over the network from Web serverWeb server
Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....
s. MFC applications tend to be large and require support DLL
Dynamic-link library
Dynamic-link library , or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems...
s. ATL allows creating smaller controls without support DLLs, so ATL is in a sense a lightweight alternative to MFC for the COM control environment.
A common use of ATL in Active Server Pages
Active Server Pages
Active Server Pages , also known as Classic ASP or ASP Classic, was Microsoft's first server-side script engine for dynamically-generated Web pages. Initially released as an add-on to Internet Information Services via the Windows NT 4.0 Option Pack Active Server Pages (ASP), also known as Classic...
(ASP) is to construct objects that can be called from a script. While limited in certain respects, VBScript
VBScript
VBScript is an Active Scripting language developed by Microsoft that is modeled on Visual Basic. It is designed as a “lightweight” language with a fast interpreter for use in a wide variety of Microsoft environments...
is able to call C++ Windows code contained in a COM object.
On July 28, 2009, Microsoft released a patch to ATL to fix a bug that could allow ActiveX
ActiveX
ActiveX is a framework for defining reusable software components in a programming language-independent way. Software applications can then be composed from one or more of these components in order to provide their functionality....
controls created using ATL to be vulnerable to a remote code execution security flaw.
See also
- ATL ServerATL ServerATL Server is a technology originally developed by Microsoft for developing web based applications. It uses a tag replacement engine written in C++ to render web pages...
- OLE AutomationOLE AutomationIn Microsoft Windows applications programming, OLE Automation , is an inter-process communication mechanism based on Component Object Model that was intended for use by scripting languages – originally Visual Basic – but now are used by languages run on Windows...
- Standard Template LibraryStandard Template LibraryThe Standard Template Library is a C++ software library which later evolved into the C++ Standard Library. It provides four components called algorithms, containers, functors, and iterators. More specifically, the C++ Standard Library is based on the STL published by SGI. Both include some...
- Windows Template LibraryWindows Template LibraryThe Windows Template Library is a free software, object-oriented C++ template library for Win32 development. WTL was created by Microsoft employee Nenad Stefanovic for internal use and later released as an unsupported add-on to Visual Studio and the Win32 Framework SDK...
- Microsoft Windows SDK