By Michael Dunn
WTL for MFC Programmers, Part I – ATL GUI Classes
WTL for MFC Programmers, Part II – WTL GUI Base Classes
WTL for MFC Programmers, Part III – Toolbars and Status Bars
WTL for MFC Programmers, Part IV – Dialogs and Controls
WTL for MFC Programmers, Part V – Advanced Dialog UI Classes
WTL for MFC Programmers, Part VI – Hosting ActiveX Controls
WTL for MFC Programmers, Part VII – Splitter Windows
WTL for MFC Programmers, Part VIII – Property Sheets and Wizards
WTL for MFC Programmers, Part IX – GDI Classes, Common Dialogs, and Utility Classes
WTL for MFC Programmers, Part X – Implementing a Drag and Drop Source
What is WTL?
The Windows Template Library (WTL) is an object-oriented Win32 encapsulation C++ library by Microsoft. The WTL supports an API for use by programmers. It was developed as a light-weight alternative to Microsoft Foundation Classes. WTL extends Microsoft’s ATL, another lightweight API for using COM and for creating ActiveX controls. Though created by Microsoft, it is unsupported.
Microsoft made the source code of WTL freely available under an open source license. Releasing it under the Common Public License, Microsoft posted the source on SourceForge, an Internet repository for open-source code. As of version 7.5, the library was also dual licensed under the Microsoft Permissive License. 
Most of the WTL API is a direct mirror of the standard Win32 calls, so the interface is familiar to most Windows programmers. Being an unsupported library, WTL has little formal documentation. Faced with this problem the “WTL Documentation” project  was started and now has a semi-complete documentation.
Windows Template Library, or WTL, is a set of classes that extend ATL to support more complex user interfaces for either applications or various UI components, while maintaining the big advantage of ATL—small and fast code. WTL classes were designed to be the best and the easiest way to implement rich Win32 based UI for ATL based applications, servers, components, and controls.
WTL provides support for implementing various user interface elements, from frame and popup windows, to MDI, standard and common controls, common dialogs, property sheets and pages, GDI objects, UI updating, scrollable windows, splitter windows, command bars, etc. The WTL classes are mostly templated and use minimal instance data and inline functions. They were not designed as a framework, so they do not impose a particular application model, and can accommodate any. The classes do not use hooks or thread local storage, so they have no restrictions that those techniques impose. They also have no inter-dependencies and can be freely mixed with straight SDK code. In summary, WTL delivers very small and efficient code, very close in size and speed to SDK programs, while presenting a more logical, object oriented model to a programmer.