A good ATL book
ATL is an interesting C++ framework to easily create COM classes. It uses extensively the C++ templates and is coupled with Visual C++ wizards to automate the writing of skeleton code of an ATL project. However there is not much documentation coming with VC++ on ATL and there are so much options in the wizards dialog windows that unless you know what you are doing, you will probably not do the right thing. This is where this book comes in.
First, one of the coauthor, George Shepherd, is also the coauthor of the book MFC Internals: Inside the Microsoft(c) Foundation Class Architecture that I really liked. This book does a good job to guide you through the main ATL features. My only complain is that, like almost every other book on COM that I have read, it assumes that you know nothing about C++ and COM and takes the first 2 chapters to introduce you these topics and that represents almost 100 pages of prerequisite material that should have been found only in a introduction book IMO.
A reference book that would be ok to keep
First of all, this book wouldn't teach you anything from ground-up. Also, it doesn't go into much detail. If you are already familiar with COM/ATL, it will probably make a good reference book that you can use to brush up. Buy it, only you have extra money lying around and really wanna get an additional COM book. For new readers, Troelsen's COM ATL Workshop is a God-send.
Solid ATL book if you have other reference books
Excellent book for readers yearning a stronger understanding of ATL and COM. The auther does a concise job of explaining some of the more difficult or less well understood aspects of COM - APARTMENTS and THREADS.Apartments and threads, in most other COM books are often inadequete and rushed - not this book. The level of detail to apartments and threads can easily make this book worth buying all together, not to say, that the rest of the book isn't worth reading because it is.
Although, they did a wonderful job of explaining threads and apartments this book isn't without its challenges. For example, to understand many of the code samples you must have some Windows 32 programming experience or be familiar with some of the Win32 API calls and libraries. Make sure you have a Windows 32 programming book as reference (e.g. Advanced Windows by Jeffrey Richter).
Furthermore, I can understand how some readers may be intimidated by this book because they might not be as comfortable working with C++, templates, macros and the Win32 API...typical in most hardcore COM books I have read. However, don't let that stop you from reading this book. Just make sure that you purchase the necessary reference books to bring yourself up to speed.
So, if you want to understand the internals of "ATL" and "COM", do yourself a favor and buy this book. It should have an excellent shelf life, unlike some of the other COM books I've purchased, such as "Beginning ATL COM" from Wrox (save your money on this book).
Over the years I've come to rely upon a few trusted books on COM and Win32 programming and have provided them below:
COM:
- Essential COM by Don Box (COM primer)
- Inside COM by Dale Rogerson (COM primer)
WIN 32 PROGRAMMING:
- Advanced Windows by Jeffrey Richter (good advanced topics...threading, kernal, locking)
- Programming Windows by Charles Petzold (good all-around ref.)
- Learn Windows Programming in 21 days (excellent primer!)
For God sake, try something else
The lousiest book I have ever read. I happened to buy this just because its from Microsoft press. I bet there should be better books on ATL
A useful and worthwhile book
I had just about given up hope of finding one single book that could help me understand ATL - then I found this book. As an experienced C++ programmer, but a newcomer to ATL, I looked for a single source of information on the hows and whys of ATL. There are many good books out there, but each seems to fill a niche. But with this book I found, in one place, answers to all the questions I've been wrestling with for months now. Besides covering ATL, it contains a wealth of tips and tidbits that you'll likely run across during coding and testing that arent covered anywhere else. This fact alone justifies buying the book. I'm resigned that one book cant cover everything a programmer may need to know about ATL, but after digesting this one I'm confident that I'll be able to digest the others as well. I paid list price for this one, but I dont regret it. Neither will you.