Издательство: Addison Wesley, 1999
ForewordTable of Contents
When I first saw the title of this book, I told Chris Sells that it
sounded like the book I always wanted to writed. Ever since we released ATL,
some of us have been saying, "I've often thought that I should write a book on
how ATL works." After reading ATL Internals, I don't think there would
be much left for me to write about. Actually, this is kind of a relief.
At this point, I think most aspects of ATL have been covered,
and ATL Internals provides an excellent source of information on the
inner workings of ATL. So, Chris asked me to provide some information that
can't be deduced by looking at the ATL source code.
Inventor of ATL
Table of Contents
Chapter 1. Hello, ATL.
What Is ATL?
Creating a COM Server.
Inserting a COM Class.
Adding Properties and Methods.
Implementing Additional Interfaces.
Support for Scripting.
Adding and Firing Events.
Using a Window.
Implementing Component Categories.
Adding a User Interface.
Hosting a Control.
Chapter 2. ATL Smart Types: Strings, BSTRs, VARIANTs, and Interface Pointers.
String Data Types, Conversion Macros, and Helper Functions.
The CComBSTR Smart BSTR Class.
The CComBSTR Class.
The ComVariant Smart VARIANT Class.
The CComPtr, CComQIPtr, and CComDispatchDriver Smart Pointer Classes.
Chapter 3. Objects in ATL.
Recall: COM Apartments.
The Layers of ATL.
Threading Model Support.
The Core of IUnknown.
CComObject et al.
Chapter 4. COM Servers.
A Review of COM Servers.
The Object Map and the CComModule Class.
The Object Map.
Methods Required of an Object Map Class.
The CComModule Class.
Server Optimization Compilation Options.
Chapter 5. Interface Maps.
Recall: COM Identity.
Aggregation: The Controlling Outer.
Interface Map Tricks.
Chapter 6. Persistence in ATL.
A Review of COM Persistence.
ATL Persistence Implementation Classes.
The Property Map.
The Persistence Implementations.
Additional Persistence Implementations.
Adding Marshal-by-Value Semantics Using Persistence.
Chapter 7. Collections and Enumerators.
COM Collection and Enumeration Interfaces.
Enumerating STL Collections.
STL Collections of ATL Data Types.
Chapter 8. Connection Points.
A Review of Connection Points.
Creating an ATL-Based Connectable Object.
Creating an Object That Is an Event Recipient.
How It All Works: The Messy Implementation Details.
Chapter 9. Windowing.
The Structure of a Windows Application.
Windows Control Wrappers.
Chapter 10. ActiveX Controls.
A Review of ActiveX Controls.
The BullsEye Control Requirements.
Creating the Initial Control Using the ATL Wizard.
The Initial BullsEye Source Files.
Developing the BullsEye Control Step by Step.
Chapter 11. Control Containment.
How Controls Are Contained.
Basic Control Containment.
Hosting a Control in a Dialog.
ATL's Control Containment Limitations.
Appendix A. C++ Templates by Example.
The Need for Templates.
A Different Kind of Polymorphism.
Member Function Templates.
Appendix B. ATL Classes and Headers.
- Игорь Ткачёв