ATL COM Desktop Components Active Template Library (ATL) Concepts Active Template Library (ATL) Tutorial Creating the Project (ATL Tutorial, Part 1) Adding a Control (ATL Tutorial, Part 2) Adding a Property to the Control (ATL Tutorial, Part 3) Changing the Drawing Code (ATL Tutorial, Part 4) Adding an Event (ATL Tutorial, Part 5) Adding a Property Page (ATL Tutorial, Part 6) Putting the Control on a Web Page (ATL Tutorial, Part 7) Introduction to COM and ATL Introduction to COM Interfaces (ATL) IUnknown Reference Counting QueryInterface Marshaling Aggregation Introduction to ATL Using a Template Library Scope of ATL Recommendations for Choosing Between ATL and MFC Fundamentals of ATL COM Objects Implementing CComObjectRootEx Implementing CComObject, CComAggObject, and CComPolyObject Supporting IDispatch and IErrorInfo Supporting IDispEventImpl Changing the Default Class Factory and Aggregation Model Creating an Aggregated Object Dual Interfaces and ATL Implementing a Dual Interface Multiple Dual Interfaces nonextensible Attribute Dual Interfaces and Events ATL Collections and Enumerators ATL Collection and Enumerator Classes Design Principles for Collection and Enumerator Interfaces Implementing a C++ Standard Library-Based Collection ATL Copy Policy Classes ATL Composite Control Fundamentals Inserting a Composite Control Modifying the ATL Project Adding Functionality to the Composite Control Building and Testing the ATL Project ATL Control Containment FAQ Which ATL Classes Facilitate ActiveX Control Containment? What Is the ATL Control-Hosting API? What Is AtlAxWin100? When Do I Need to Call AtlAxWinInit? What Is a Host Object? Can I Host More Than One Control in a Single Window? Can I Reuse a Host Window? When Do I Need to Call AtlAxWinTerm? Hosting ActiveX Controls Using ATL AXHost ATL COM Property Pages Specifying Property Pages Implementing Property Pages Example: Implementing a Property Page ATL Support for DHTML Controls Identifying the Elements of the DHTML Control Project Calling C++ Code from DHTML Creating an ATL DHTML Control Testing the ATL DHTML Control Modifying the ATL DHTML Control Testing the Modified ATL DHTML Control ATL Connection Points ATL Connection Point Classes Adding Connection Points to an Object ATL Connection Point Example Event Handling and ATL Event Handling Principles Implementing the Event Handling Interface Using IDispEventImpl Using IDispEventSimpleImpl ATL Event Handling Summary ATL and the Free Threaded Marshaler Specifying the Threading Model for a Project (ATL) ATL Module Classes ATL Services CAtlServiceModuleT::Start Function CAtlServiceModuleT::ServiceMain Function CAtlServiceModuleT::Run Function CAtlServiceModuleT::Handler Function Registry Entries DCOMCNFG Debugging Tips Using Task Manager Displaying Assertions Running the Program as a Local Server ATL Window Classes Introduction to ATL Window Classes Using a Window Implementing a Window Adding an ATL Message Handler Message Maps (ATL) Message Handler Functions CommandHandler MessageHandler NotifyHandler Implementing a Window with CWindowImpl Implementing a Dialog Box Using Contained Windows Understanding Window Traits ATL Collection Classes ATL Registry Component (Registrar) Creating Registrar Scripts Understanding Backus Nauer Form (BNF) Syntax Understanding Parse Trees Registry Scripting Examples Using Replaceable Parameters (The Registrar's Preprocessor) Invoking Scripts Setting Up a Static Link to the Registrar Code (C++ Only) Programming with ATL and C Run-Time Code Benefits and Tradeoffs of the Method Used to Link to the CRT Linking to the CRT in Your ATL Project Programming with CComBSTR (ATL) ATL Encoding Reference ATL Utilities Reference ATL Class Overview Class Factories Classes Class Information Classes Collection Classes COM Modules Classes Composite Controls Classes Connection Points Classes Control Containment Classes Controls: General Support Classes Data Transfer Classes Data Types Classes Debugging and Exceptions Classes Dual Interfaces Classes Enumerators and Collections Classes Error Information Classes File Handling Classes Interface Pointers Classes IUnknown Implementation Classes Memory Management Classes MMC Snap-In Classes Object Safety Classes Persistence Classes Properties and Property Pages Classes Registry Support Classes Running Objects Classes Security Classes Service Provider Support Classes Site Information Classes String and Text Classes Tear-Off Interfaces Classes Thread Pooling Classes Threading Models and Critical Sections Classes UI Support Classes Utility Classes Windows Support Classes Reference