While developers have been able to create ActiveX controls using MFC for some time now, using MFC imposes certain design decisions, and your control has to link to the MFC DLL. ATL is a lightweight framework for implementing COM classes. In addition to providing all the machinery for writing basic COM classes, ATL includes the interfaces necessary to implement ActiveX controls. Part of that machinery includes describing interfaces that the client is willing to implement so that the ActiveX control can call back to the client. ATL fully supports this connection mechanism through its IConnectionPointContainerImpl and IConnectionPointImpl classes.
In Chapter 13, we'll look at how ActiveX controls work in Visual Basic and Visual C++.