Click here to Skip to main content
13,189,506 members (62,303 online)
Click here to Skip to main content
Add your own
alternative version


79 bookmarked
Posted 29 Apr 2000

Introduction to WTL - Part 1

, 30 Apr 2001
Rate this:
Please Sign up or sign in to vote.
The 'what' and 'where do I get it' of WTL

What is the Windows Template Library you ask?

Brief history

In the beginning when ATL appeared, developers were happy. We had a way to write fast, small COM components. Well the happiness ended soon after when we found that we had to write code wrappers for any of the window's controls we wanted to use. So MS responded to our plight and gave us WTL, completely unfinished and unsupported (for now).

See WTL Documented for more information.


  • All the power of C++
  • Thin wrappers for the common controls
  • A small but functional Application framework (minus the ever-popular Document-View Architecture)
  • Print and Print Preview support
  • Ports of MFC’s CPoint, CRect, CSize, CString, etc.
  • New Message cracking Macros, conceivably they’re an upgrade of the existing ones.

All this but no documentation! Oh well, we're all professionals and can read code, so for now that will have to suffice.

Where do you get it?

Thanks to Nenad Stefanovic of the WTL development team we now have 2 methods of downloading the WTL source file (Special thanks to Shannon McCoy for pointing this out).

Method 1

Click here to download the WTL source files.

Method 2

Go and get the Platform SDKs.

WTL resides in the Platform SDKs. To find and install WTL you need to download the latest release of the Platform SDKs. In the screen seen below, Expand the Source code tree item and select the Windows Template Library for download.

So, you have the SDKs installed, your ready to go... well almost. Don’t forget to add the WTL include path to Developer Studio. To do that in Developer Studio go to Tools | Options and click on the 'Directories' tab. Once you are there simply add the include path to the 'Include files' list.

What’s in the box?

Let’s take a look at the goodies we got. The WTL is setup so that all the code resides in header files; it's setup this way so that we have full control of what is been tacked into your project.

The Headers

File nameDescription
atlapp.hMessage loop, interfaces, general app stuff
atlcrack.hMessage cracker macros atlctrls.h Standard and common control classes
atlctrlw.hCommand bar class atlctrlx.h Bitmap button, check list view, and other controls
atlddx.hData exchange for dialogs and windows
atldlgs.hCommon dialog classes, property sheet and page classes
atlframe.hFrame window classes, MDI, update UI classes

DC classes, GDI object classes


ATL ports of CPoint, CRect, CSize, CString, etc.


Printing and print preview

atlres.hStandard resource Ids
atlscrl.hScrollable windows
atlsplit.hSplitter windows
atluser.hMenu class

The Samples


Multithreaded notepad sample


ATL version of the MDI sample


ATL version of the GuidGen sample

The App-Wizard

File NameDescription
AtlApp60.AwxATL/WTL AppWizard

And of course there is a 'readme.txt', which outlines the class hierarchy of the WTL. Sorry, I said there was no documentation, my bad :)

Thats it! You got the WTL and your ready to go.

Ben Burnett


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Ben Burnett
Team Leader Farmer's Edge
Canada Canada
Ben was born in New Zealand and grew up in Mexico; however, he has lived in Canada for most of his adult life. He has traveled to a few places in Canada so far: British Columbia, Saskatchewan, Manitoba, Ontario and Nova Scotia, but has only ever lived in Alberta — all over Alberta. From Lethbridge to Calgary to Fort McMurray: he has seen most of what the province has to offer. He has also left the comfort of his—at the time—home country and gone abroad. In recent history he has been in China, New Zealand, the US, Central America and back to Canada (where he now resides).

He completed a degree at the University of Lethbridge, in Computer Science; worked for the University of Wisconsin-Madison in the Computer Sciences Department as a Systems Programmer for the Condor Research Project[^]; and is currently completing another degree at the University of Lethbridge, once again, in Computer Science.

Ben has been known to enjoy reading, watching movies, playing console games, and learning everything he can about computers. And, more importantly, with regards to his character: does not usually speaks about himself in the third person.

You may also be interested in...

Comments and Discussions

GeneralRe: Poor Windows Programmers! Pin
jhalsey11-Oct-00 12:42
sussjhalsey11-Oct-00 12:42 
GeneralRe: Poor Windows Programmers! Pin
jhalsey11-Oct-00 12:43
sussjhalsey11-Oct-00 12:43 
GeneralRe: Poor Windows Programmers! Pin
JWright13-Oct-00 5:42
sussJWright13-Oct-00 5:42 
GeneralRe: Poor Windows Programmers! Pin
Anonymous2-Nov-00 13:21
sussAnonymous2-Nov-00 13:21 
GeneralRe: Poor Windows Programmers! Pin
Fabio3-Nov-00 12:31
memberFabio3-Nov-00 12:31 
GeneralRe: Poor Windows Programmers! Pin
Crispy1-Apr-01 7:55
memberCrispy1-Apr-01 7:55 
GeneralRe: Poor Windows Programmers! Pin
S van Leent8-Jan-02 8:27
memberS van Leent8-Jan-02 8:27 
Generalassert(++critique != convaincant | réaliste) Pin
-o-m-24-Apr-01 8:19
member-o-m-24-Apr-01 8:19 
Why do you go here for such topics, try industry-strong linux news (if they exists?)

1 => template it's really useful&powerful: since C++ is avalaible it's the only (important) change in ISO (iso96) it ocurs for stream now C# stream are usefull for inet (thanks) and it's better than php + perl + jsp. second consider STL, FTL, VTL, MTL boosts, leda thanks

2 => com is really amizing in any part and with dcom is egal to corba. don't you neither like corba or rpc ?

3 => what have you really done with linux so great for industry where integration remains a pity and where java is SOOOOOOOOOO slow (i believe licence of cache page is at least same cost than ms complete suite, am i wrong?)

4=> gradientcome froms with gtk (not kde sorry) before windows it isn't a tip1

5=> for history you're wrong the deadlock is that bedore NT3.51 things are like DOS
After egal to unix. the problem is not enhancement is to always deal with dde or GDI16
so C# is really a promess

we host 7000 post on our DB and never stop it with NT+SQL server, consider also this.
PHP+XML+COM+PERL+C++ +awk+yacc+ada+java2+uml+ado+atl+js+flash+XHTML programmer's thinking
ciaoRose | [Rose]

but bad point to cl bugs Cry | :((
GeneralRe: Poor Windows Programmers! Pin
Anonymous8-Oct-01 17:55
memberAnonymous8-Oct-01 17:55 
GeneralRe: Poor Windows Programmers! Pin
Shannon McCoy15-Aug-02 23:27
sussShannon McCoy15-Aug-02 23:27 
GeneralRe: Poor Windows Programmers! Pin
Bill Dickinson25-Feb-03 11:01
memberBill Dickinson25-Feb-03 11:01 
GeneralWTL Download Pin
Franky Braem15-Jun-00 23:54
sussFranky Braem15-Jun-00 23:54 
GeneralRe: WTL Download Pin
takashi (in japan)27-Jul-00 17:54
susstakashi (in japan)27-Jul-00 17:54 
GeneralWTL support from MFC Pin
David Hubbard12-May-00 6:09
sussDavid Hubbard12-May-00 6:09 
GeneralDocumentation Pin
Ben Burnett4-May-00 6:41
sussBen Burnett4-May-00 6:41 
GeneralMicrosoft will not support WTL Pin
Alvaro Mendez4-May-00 6:16
sussAlvaro Mendez4-May-00 6:16 
GeneralWTL is the best thing MS has released in years! [Was: Microsoft will not support WTL] Pin
Carlos A. Ferarro Cavallini30-May-00 3:47
sussCarlos A. Ferarro Cavallini30-May-00 3:47 
GeneralThe cat's out of the bag Pin
cdr26-Jun-00 16:44
susscdr26-Jun-00 16:44 
GeneralThis article Pin
anonymous2-May-00 2:34
sussanonymous2-May-00 2:34 
GeneralRe: This article Pin
bajy2-May-00 18:51
sussbajy2-May-00 18:51 
GeneralRe: This article Pin
anonymous6-May-00 4:18
sussanonymous6-May-00 4:18 
GeneralLink to another introductory article Pin
Stuart Carter1-May-00 22:45
sussStuart Carter1-May-00 22:45 
GeneralExcellent article!! Pin
Ramon Smits30-Apr-00 20:47
sussRamon Smits30-Apr-00 20:47 
GeneralRe: Excellent article!! Pin
Ben Burnett30-Apr-00 23:44
sussBen Burnett30-Apr-00 23:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.171016.2 | Last Updated 1 May 2001
Article Copyright 2000 by Ben Burnett
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid