Axian Software Consulting and Training

Fundamentals of Component Object Model (COM) using C++


Call 644-6106, ext. 107



for course registration or more information





The Component Object Model (COM) has become the foundation of new Windows technologies. A good understanding of COM is vital to all Windows programmers. This course gives the student insight into the design philosophies and concepts underlying COM. A significant portion of the course uses C++ without any frameworks to provide the student with a clear understanding of COM infrastructure. MFC (Microsoft Foundation Class) and ATL (ActiveX Template Library) support for COM are also discussed in the course. The emphasis in this course is to introduce the rationale for various COM techniques to prepare the student for other classes which go into more detail on using a specific framework like MFC or ATL.

The student will implement a COM object in a variety of ways including raw C++, MFC and ATL. At the end of the course the student will be able to understand the tradeoffs involved in choosing one of these frameworks. Extensive pictures, code examples and labs reinforce the concepts. The course concludes with a look at the future of COM including a discussion of Microsoft Transaction Server and COM+, a runtime infrastructure available next year which should considerably simplify COM development.


Course prerequisites

This course requires prior programming experience in the C++ language.  Exposure to Windows API and MFC programming is desirable.


Course outline

COM overview and rationale

COM clients - concepts

COM clients - Class Factories

COM Servers - Implementing a inprocess server

Interface Definition Language (IDL)

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

COM Servers - Aggregation and Containment

Automation & Type Libraries, dual interfaces

Persistence, Structured storage, IPersistXXX interfaces

MultiThreading & COM, threading models



Distributed COM

Microsoft Transaction Server

COM futures - COM+