| | Copyright |
| | The Addison-Wesley Object Technology Series |
| | Foreword to the Second Edition |
| | Foreword to the First Edition |
| | Preface |
| | Acknowledgments |
| | About the Authors |
| | 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 Persistence |
| | | Adding and Firing Events |
| | | Using a Window |
| | | COM Controls |
| | | Hosting a Control |
| | | ATL Server Web Projects |
| | | Summary |
| | Chapter 2. Strings and Text |
| | | String Data Types, Conversion Classes, and Helper Functions |
| | | The CComBSTR Smart BSTR Class |
| | | The CComBSTR Class |
| | | The CString Class |
| | | Summary |
| | Chapter 3. ATL Smart Types |
| | | VARIANTs, SAFEARRAYs, and Interface Pointers |
| | | The CComVariant Smart VARIANT Class |
| | | The CComSafeArray Smart SAFEARRAY Class |
| | | The CComPtr and CComQIPtr Smart Pointer Classes |
| | | The CAutoPtr and CAutoVectorPtr Smart Pointer Classes |
| | | ATL Memory Managers |
| | | Summary |
| | Chapter 4. Objects in ATL |
| | | Implementing IUnknown |
| | | The Layers of ATL |
| | | Threading Model Support |
| | | The Core of IUnknown |
| | | Your Class |
| | | CComObject Et Al |
| | | ATL Creators |
| | | Debugging |
| | | Summary |
| | Chapter 5. COM Servers |
| | | A Review of COM Servers |
| | | The Object Map and the CAtlModule Class |
| | | The Object Map |
| | | Methods Required of an Object Map Class |
| | | The CAtlModule Class |
| | | CComCoClass Revisited |
| | | ATL and the C Runtime Library |
| | | Summary |
| | Chapter 6. Interface Maps |
| | | Recall: COM Identity |
| | | Table-Driven QueryInterface |
| | | Multiple Inheritance |
| | | Tear-Off Interfaces |
| | | Aggregation: The Controlling Outer |
| | | Interface Map Chaining |
| | | Just Say "No" |
| | | Debugging |
| | | Extensibility |
| | | Summary |
| | Chapter 7. 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 |
| | | Summary |
| | Chapter 8. Collections and Enumerators |
| | | COM Collection and Enumeration Interfaces |
| | | Enumerating Arrays |
| | | Enumerating Standard C++ Collections |
| | | Collections |
| | | Standard C++ Collections of ATL Data Types |
| | | ATL Collections |
| | | Object Models |
| | | Summary |
| | Chapter 9. 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 |
| | | Summary |
| | Chapter 10. Windowing |
| | | The Structure of a Windows Application |
| | | CWindow |
| | | CWindowImpl |
| | | CDialogImpl |
| | | Window Control Wrappers |
| | | CContainedWindow |
| | | Summary |
| | Chapter 11. 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 |
| | | Summary |
| | Chapter 12. Control Containment |
| | | How Controls Are Contained |
| | | Basic Control Containment |
| | | Hosting a Control in a Dialog |
| | | Composite Controls |
| | | HTML Controls |
| | | ATL's Control Containment Limitations |
| | | Summary |
| | Chapter 13. Hello, ATL Server: A Modern C++ Web Platform |
| | | The Microsoft Web Platform (Internet Information Services) |
| | | The Simplest ISAPI Extension That Could Possibly Work |
| | | Wrapping ISAPI |
| | | ATL Server |
| | | Web Services in ATL Server |
| | | Summary |
| | Chapter 14. ATL Server Internals |
| | | Implementing ISAPI in ATL Server |
| | | Server Response Files |
| | | An Example Request Handler |
| | | Handling Input |
| | | Session Management |
| | | Data Caching |
| | | Summary |
| | Appendix A. C++ Templates by Example |
| | | The Need for Templates |
| | | Template Basics |
| | | A Different Kind of Polymorphism |
| | | Function Templates |
| | | Member Function Templates |
| | | Summary |
| | Appendix B. ATL Header Files |
| | Appendix C. Moving to ATL 8 |
| | | Strings, Character Sets, and Conversions |
| | | Shared Classes with MFC |
| | | Implementing COM Servers |
| | | ActiveX Controls and Control Hosting |
| | | ATL_MIN_CRT Changes |
| | | Summary |
| | Appendix D. Attributed ATL |
| | | Fundamentals of ATL Attributes |
| | | The Future of Attributed ATL |
| | | Summary |
| | Index |