|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer|
The Active Template Library (ATL) is a set of template-based C++ classes that let you create small, fast Component Object Model (COM) objects. It has special support for key COM features, including stock implementations, dual interfaces, standard COM enumerator interfaces, connection points, tear-off interfaces, and ActiveX controls.
If you do a lot of ATL programming, you will want to learn more about attributes, a new feature in Visual C++ .NET that is designed to simplify COM programming. For more information, see Attributed Programming.
In This Section
- ATL Tutorial
- Leads you through the creation of a control and demonstrates some ATL fundamentals in the process.
- Attributes Tutorial
- Leads you through the creation of a client and a server application using attributes and events.
- Introduction to COM and ATL
- Introduces the major concepts behind the Component Object Model (COM). This article also briefly explains what ATL is and when you should use it.
- Fundamentals of ATL COM Objects
- Discusses the relationship among various ATL classes and how those classes are implemented.
- Dual Interfaces and ATL
- Describes dual interfaces from an ATL perspective.
- ATL Collections and Enumerators
- Describes the implementation and creation of collections and enumerators in ATL.
- Composite Control Fundamentals
- Provides step-by-step instructions for creating a composite control. A composite control is a type of ActiveX control that can contain other ActiveX controls or Windows controls.
- ATL Control Containment FAQ
- Covers the fundamental questions related to hosting controls with ATL.
- ATL COM Property Pages
- Shows you how to specify and implement COM property pages.
- ATL Support for DHTML Controls
- Provides step-by-step instructions for creating a DHTML control.
Events and Connection Points
- ATL Connection Points
- Explains what connection points are and how ATL implements them.
- Event Handling and ATL
- Describes the steps that you need to take to handle COM events using ATL's IDispEventImpl and IDispEventSimpleImpl classes.
- ATL and the Free Threaded Marshaler
- Provides details on the ATL Simple Object Wizard's option that allows your class to aggregate the free threaded marshaler (FTM).
- Specifying the Project's Threading Model
- Describes the macros that are available to control run-time performance related to threading in your project.
General ATL Programming
- ATL Module Classes
- Discusses the module classes new for ATL 7.0. Module classes implement the basic functionality required by ATL.
- ATL Services
- Covers the series of events that occur when a service is implemented. Also talks about some of the concepts related to developing a service.
- ATL Window Classes
- Describes how to create, superclass, and subclass windows in ATL. The ATL window classes are not COM classes.
- ATL Collection Classes
- Describes how to use arrays and maps in ATL.
- The ATL Registry Component (Registrar)
- Discusses ATL scripting syntax and replaceable parameters. It also explains how to set up a static link to the Registrar.
- Programming with ATL and C Run-Time Code
- Discusses the benefits of using the C Run-Time Library (CRT) or alternatively using the _ATL_MIN_CRT macro to reduce dependency on CRT code.
- Programming with CComBSTR
- Discusses several situations that require caution when programming with CComBSTR.
- ATL Samples
- Provides descriptions of and links to the ATL sample programs.
- Creating an ATL Project
- Contains information on the ATL Project Wizard.
- ATL Control Wizard
- Discusses how to add classes.
- ATL Debugging Techniques
- Tells you how to use ATL's built-in support for debugging QueryInterface, AddRef, and Release calls.
- Breaking Changes in ATL 7.0 and MFC 7.0 Since Visual C++ 6.0
- Lists items to take into account when updating code from previous versions to ATL 7.0.
- Changes from ATL Version 2.1
- Summarizes important changes from ATL 2.1.
- Attributed Programming
- Provides an overview on using attributes to simplify COM programming plus a list of links to more detailed topics.
- ATL Class Overview
- Provides reference information and links to the ATL classes.
- Adding Functionality
- Provides links to topics describing conceptual information about Visual C++ libraries and topics discussing various coding technologies and techniques.