ATL and WTL resources
The story of ATL and WTL (fit for a cocktail napkin):
In the beginning, (at least in *this* beginning) there was COM. As developers embraced COM programming for Windows applications Microsoft created the Active Template Library (ATL) as a framework to simplify and envelop the routine tasks in the creation of COM components.
Using ATL developers were happy with the ease with which small fast components could be created. They were unhappy with all the code wrappers they had to write to use any Windows controls. And, of course, everyone wrote their wrappers differently so this became an entropy generator on projects. While ATL does provide “Window” classes, they really don’t help much outside of COM. They’re mainly intended for COM control property pages.
In response, developers within Microsoft developed (in an unsupported way) the Windows Template Library (WTL). WTL extends ATL and provides a framework of light wrappers to use with Windows controls. Developers competent with ATL find WTL a great framework to quickly build small (in terms of KB EXE size) applications. Versions 7.0-7.5 are available from Microsoft but WTL has been released in the public domain and is maintained at SourceForge (see links below).
On a recent project I found these resources useful in catching up on how to work with ATL/WTL:
ATL resources:
Code:
ATL is part of the Windows SDK.
Web:
New MFC and ATL Features - MSDN
ATL Samples - MSDN
ATL Server Samples - MSDN
Code Project: Active Template Library (ATL)
Books:
ATL Internals: Working with ATL 8, 2nd Edition (New! July, 2006) (Amazon), by Christopher Tavares, Kirk Fertitta, Brent Rector, Chris Sells. Very good but does not have any material on ways to build ATL Window apps without WTL (Note: I stand corrected, see Chris’s post below). Chris Sells’ web page for this book
Beginning ATL 3 COM Programming (1999)(Amazon), by Julian Templeman, Richard Grimes, Alex Stockton, Karli Watson, George V. Reilly. This is “beginning” as in “beginning cliff diving” – has an ATL Windows app section.
Professional ATL Com Programming (1998) (Amazon), by Richard Grimes.
Developer’s Workshop to COM and ATL 3.0 (2000) (Amazon), by Andrew Troelsen.
WTL resources:
Code:
Windows Template Library (WTL) 7.0 4/2/2002
Windows Template Library (WTL) 7.1 12/9/2003
Windows Template Library (WTL) 7.5 6/13/2006
WTL open source at SourceForge. V 7.5 is released, 8.0 in development.
Web:
Chris Sells: Whitepapers, sample code and walkthroughs. Based on an old version of WTL but still the best starting point. WTL Makes UI Programming a Joy, part 1 and part 2, 6/2000
Yahoo! Tech Group: WTL – online group discussion and help.
Code Project: Windows Template Library (WTL)
Code Project: Michael Dunn’s series on WTL for MFC Programmers is outstanding. Something like ten parts. Starts with WTL for MFC Programmers, Part I – ATL GUI Classes
Books:
None as far as I know.
December 22nd, 2006 at 5:03 pm
Chapter 10: Windowing of ATL Internals, 2e, is all about building Windows apps using the built-in windowing support in ATL8. We mention WTL, but you can certainly program Windows apps in ATL w/o it.
December 24th, 2006 at 6:45 am
Thanks Chris: I’ve noted your correction above.
Dan S.
February 6th, 2007 at 12:26 pm
[...] The DLA is built in Win32/C++ as an ATL Windows application but we get some goodies from WTL as well. For those going “huh?” look at my post ATL and WTL resources. [...]