Appendix D.
Attributed ATL
ATL has always been the most powerful way to build
COM objects in C++. Unfortunately, with that power comes
complexity. ATL requires an advanced understanding of C++ to use it
effectively. That advanced understanding took more effort than many
people were willing to invest. Instead, many of those users used
Visual Basic to do COM instead of C++. Unfortunately, there are
some COM things VB 6 just doesn't do (including marshal-by-value,
ActiveX controls with sophisticated drawing, and multithreading);
when people hit those limits, they were forced back into the C++
world.
Even for those who are experienced C++
developers, building ATL projects can be a headache. Some of the
most important information about your project isn't even in C++;
it's in IDL and RGS files and resources. It can be a real effort to
keep all these different parts in sync.
When Visual Studio .NET was released in 2002,
the ATL team took an unusual approach in attempting to address
these issues: They extended the C++ language. That extension is
called attributed ATL.
|