The basic ATL windowing classes are convenient enough to make them an attractive alternative to SDK windowing. In addition, Visual C++ offers built-in support to add and remove message handlers and event handlers. The ATL windowing classes are lightweight and granular in their implementation and have the ability to change base classes and separate message-handling implementation from the window object itself. ATL implements a large part of ActiveX control containment for you in the host window classes.
ATL isn't just for COM. As you'll see in the next chapter, ATL can offer you a great way to build Win32 applications using the windowing techniques you just learned, and you'll learn some new tricks as well.