ATL是一組小而靈活的類,可用于開發(fā)COM組件。本書對ATL的內(nèi)部工作原理做了深入的剖析,詳細介紹了關(guān)于ATL設(shè)計的基礎(chǔ)知識和體系結(jié)構(gòu),展示了ATL如何與COM相匹配,并對一些重要的實施細節(jié)做了具體提示。在此基礎(chǔ)上,對ATL的一些高級內(nèi)容和功能做了充分的介紹。更為重要的是,本書還指出了ATL存在的一些缺陷,并告訴讀者如何去避免。本書具有一定的技術(shù)深度,適合有經(jīng)驗的COM和VC++程序員閱讀。 Brent Rector is President of Wise Owl Consulting,Inc., a form that specializes in Windows/COM development and consulting.He also teaches classes on COM, ATL,and MTS for DevelpMentor,a leading COM education firm.His previous books include Win32 Programming ,Developing windows 3 Applications with Microsoft SDK,and Developing Windows 3.1 Applications with Microsoft C/C++.He received the Microsoft Annual MVP award for his contributions to CompuServes Windows forums.Chris Sells Works as an independent consultant specializing in design and development using COM.He is also a COM C++, and ATL instructor for DevelopMentor,where he authored the Essential ATL five-day shor course.His previous books include Effective COM and Windows Telephony Programming .He is a contributor to the Visual C++ Developers Journal and the Visual C++ Professional newsletter,and a frequent speaker at conferences ,including Software Development,WinDev,and the Visual C++ Developers Conference.
作者簡介
暫缺《ATL技術(shù)內(nèi)幕(影印版)》作者簡介
圖書目錄
Foreword</font><br>Preface</font><br></font><br>Chapter 1 Hello,ATL</font><br></font><br>What is Atl?</font><br>Creating a COM Server</font><br>Inaerting a COM Class</font><br>Adding Properties and Methods</font><br>Implementing Additional Interfaces</font><br>Support for Scripting</font><br>Adding Persistence</font><br>Adding and Firing Events</font><br>Using a window</font><br>Implementing Component Categories</font><br>Adding a User Interface</font><br>Hosting a Control </font><br>Summary</font><br></font><br>Chapter 2 ATL Smart Types: Strings,BSTRs,VARIANTs,and Ineterface Pointers </font><br></font><br>Sting Data Types,Conversion Macros,and Helper Function </font><br>The CComBSTR Smart BSTR Class</font><br>The CComBSTR Class</font><br>The CComVariant Smart VARIANT Class</font><br>The CComPtr,CComQIPtr,and CComDispactchDriver Smart Pointer Classes</font><br>Summary</font><br></font><br>Chapter 3 Objects in ATL</font><br></font><br>Recall:COM Apartments</font><br>Implementing IUknown</font><br>The Layers of ATM</font><br>Threading Model Support</font><br>The Core of IUknown</font><br>Yours Class</font><br>CComObjects et al.</font><br>ATL Creators</font><br>Debugging</font><br>Summary</font><br></font><br>Chapter 4 COM Servers</font><br></font><br>A Review of COM Servers</font><br>The object Map and CComModule Class</font><br>The object Map</font><br>Methods Required of an Object Map Class</font><br>The CComModule Class</font><br>CComCoClass Revisited</font><br>Server Optimization Compilation Options</font><br>Summary</font><br></font><br>Chaqpter 5 Interface Maps</font><br></font><br>Recall:COM Identity</font><br>Table-Driven Queryinterface </font><br>Multiple Inheritance</font><br>Tear-off interfaces</font><br>Aggregation:The Controlling Outer</font><br>Inface Map Tricks</font><br>Summary</font><br></font><br>Chapter 6 Persistence in ATL </font><br></font><br>A Review of Persistence </font><br>ATL Persistence Implementation Classes</font><br>The Property Map</font><br>The Persistence Implementations</font><br>Additionalo Persistence implementations</font><br>Adding Marshal-by-Value Semantics Using Persistence</font><br>Summary</font><br></font><br>Chapter 7 Collections and Enumerators</font><br></font><br>COM Collecion and Enumeration Interfaces</font><br>Enumerating Arrays</font><br>Enumerating STL Collections</font><br>Collections</font><br>STL Collections of ATL Dats Types</font><br>Simple Collecions</font><br>Object Models</font><br>Summary</font><br></font><br>Chapter 8 Connection Points</font><br></font><br>A Review of Connection Points</font><br>Creating an ATL-Based Connectable Object</font><br>Creating an object That is an event Recipient</font><br>How it all Works:The Messy Implemengtation Details</font><br>Summary</font><br></font><br>Chapter 9 Windowing </font><br></font><br>The Structure of a Windows Application</font><br>CWindow</font><br>CWindowlmpl</font><br>CDialoglmpl</font><br>Windows Control Wrappers</font><br>CContainedWindow</font><br>Summary</font><br></font><br>Chapter 10 Activex Controls</font><br></font><br>A Review of Activeex Controls</font><br>The BullsEye Control Requirements</font><br>Creating the Initial Control Using the ATL Wizard</font><br>The Inital BullsEye Control Step by Step</font><br>Developing the BullsEye Control Step by Step</font><br>Summary </font><br></font><br>Chapter 11 Control Containment</font><br></font><br>How Controls Are Contained</font><br>Basic Control Containment</font><br>Hosting a Contol in a Dialog</font><br>Composite Controls</font><br>HTML Controls</font><br>ATL's Control Containment Limitations</font><br>Summary</font><br></font><br>Appendix A C++Templates by Example</font><br></font><br>The Need for Templates</font><br>Template Basics</font><br>A Different Kind of Polymorphism</font><br>Member Function Templates</font><br>Summary</font><br></font><br>Appendix B ATL Classes and Headers</font><br></font><br>Index