ATL is my favourite library to use as a base for Windows development. It helps to solve wide variety of problems, on both sides: client and server, especially strongly simplifies creation of COM components. ATL-based binaries are very small and robust. ATL is also an underlaying layer for WTL which is a GUI toolkit, light-weight and modern alternative to MFC.
From C++ language perspective, ATL is designed using modern C++ techniques and intensively uses template metaprogramming paradigm. One of the base concept used in ATL is the Curiously Recurring Template Pattern (CRTP). Next pattern based on the CRTP is Upside-Down Inheritance, very well explained in the ATL and Upside-Down Inheritance article.
I’d like to encourage everyone serious about Windows programming in C++ to learn ATL and WTL.
ATL Internals: Working with ATL 8, 2nd Edition by Christopher Tavares, Kirk Fertitta, Brent Rector, Chris Sells