Axian Software Consulting and Training

Fundamentals of COM/ActiveX using ATL


Call 644-6106, ext. 107



for course registration or more information





ATL is a new class library from Microsoft which allows you to create a variety of small, fast COM objects. ATL is an excellent library to learn COM programming techniques. Many COM programmers are already using ATL and many more projects are converting to ATL. ATL provides you a lot of the boilerplate code allowing you to concentrate on the functionality provided by the COM object.

This course will give the student a thorough introduction to COM using ATL and go behind the wizards to give the student an inside look into the ATL implementation.

This course includes a number of interactive demonstrations and comprehensive labs which will give the students experience with COM and ATL programming techniques. The students will understand both the limitations and strengths of ATL and how it can be used effectively in a COM programming project.


Course prerequisites

Exposure to Windows programming techniques. C++ experience required. No prior COM exposure required. A shorter version of this course is available for students with prior COM experience.


Course outline

COM overview and rationale

COM clients - concepts

COM clients - Class Factories

COM Servers - Implementing a in-process server

Interface Definition Language (IDL)

COM Servers - Implementing a Local Server, Standard and Custom marshalling

Intro to ATL, ATL rationale, philosophy and history, C++ template usage in ATL.

IDL - Interface definition language

ATL project - Anatomy of an in-process or executable ATL project, CComModule, ATL AppWizard, object maps

ATL object - Anatomy of a ATL object, Creation process, Core ATL classes, Interface maps, ATL object wizard

ATL object - Part II Class factories, aggregation

ATL utilities - CComPtr, CComQIPtr, registry scripts, debugging tips, ATLstring macros

ATL window classes

Automation, Concepts, type libraries, dual interfaces

Threading models

Persistence, Structured storage, IPersistXXX interfaces

Connection points

ActiveX controls