This developer's guide to Microsoft's ATL provides detailed coverage of using the new ATL to create COM-based applications. Section topics include ActiveX controls, NT services, moving from MFC to ATL, and non-Windows ATL development.
Introduction to ATL (Active Template Library)Quick list of what ATL providesMFC Vs ATLATL's Implementation FilesATL's Support for COM ATL's WizardsATL COM AppWizardThe ATL Object WizardObject wizard's Names dialog boxObject Wizard AttributesThreading Model Interface Aggregation Support for ISupportErrorInfo Support Connection Points Free Threaded Marshaler The Structure of an ATL ProjectBasic IDL Keywords Relationship between IDL and its filesATL Project Build OptionsATL's Basic Housing Support: CComModuleObject MapEntry points for a DLL-based COM serverATL's Support for ComponentsATL's IUnknown SupportCComObjectRootEx and CComObjectRootBaseCComObjectRoot and ThreadingWhere are AddRef and Release?CComObjectList of CComObject-like classes that can be used to create an actual, instantiable class using ATLWhy are there so many ways to create classes? Good questionFollowing are some ways that you might access our math component using C++.Interfaces and Multiple InheritanceATL_NO_VTABLEATL's Class Factory Support: CComCoClassCComCreatorCComClassFactorySelf-Registration: The RegistrarCustom interfacesIDispatch Interfaces: DispinterfacesDual InterfacesMarshalingDistributed COMStandard MarshalingType Library (Universal) MarshalingCustom MarshallingBuilding the Proxy/Stub DLLHow COM Finds the Proxy/Stub DLLIDL & TypeLibraryDeclaring Interfaces: Methods and PropertiesIDL Data TypesArraysStringsStructuresEnumsATL and COM Data TypesInterface PointersC++ Smart PointersCComPtrCComQIPtrBSTRsCComBSTRCOM Memory ManagementCoTaskMemAlloc and CoTaskMemFreeIDL and Memory ManagementCOM Error HandlingContainment and AggregationBinary ReuseCOM ContainmentCOM AggregationSupporting AggregationBlind AggregationSelective AggregationATL's Support for ContainmentFinalConstruct and FinalReleaseATL's Support for AggregationImplementing Aggregatable ComponentsDECLARE_AGGREGATABLEDECLARE_NOT_AGGREGATABLEDECLARE_ONLY_AGGREGATABLEImplementing AggregationCOM_INTERFACE_ENTRY_AGGREGATECOM_INTERFACE_ENTRY_AGGREGATE_BLINDCOM_INTERFACE_ENTRY_AUTOAGGREGATE and COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLINDDECLARE_GET_CONTROLLING_UNKNOWNAutomationIDispatch methodsTable to describes each of the automation data typesATL's Support for AutomationAutomation and Interface VersioningEvents and Connection PointsSteps to provide a component with callback (or notification) capabilitiesConnectable ObjectsConnectable object technology supports the following set of featuresGeneral flow of connectable object negotiation proceeds as follows
This guide is a practical manual for COM, with the core architecture of ATL clarified and illuminated with code. Text also develops a full control that can be extended or used directly.
An authoritative guide to programming with Active Template Library (ATL), complete with under-the-hood details and explanations. Visual C++ programmers will learn how to develop components easier and faster by mastering ATL. The CD-ROM supplies programmers with the book's sample code as well as abundant sample controls and components.
Focusing on using the Microsoft Foundation Classes (MFC) effectively in Windows programs, this book contains extensive coverage of Database programming and the new Windows 95 controls. It provides valuable techniques for customizing MFC programs. Readers gain a better understanding of MFC by learning how to build their own classes.
Microsoft’s Component Object Model is one of the most important concepts in software development today. Developer’s Workshop to COM and ATL 3.0 provides an in-depth treatment of COM and shows how to adopt a component framework, namely ATL, to help lessen the burden of repetitive code. Every chapter contains integrated lab assignments that give you numerous opportunities to build COM clients and servers using raw C++ and IDL, as well as the Active Template Library. The book is divided into five sections, each focusing on a particular aspect of COM and ATL development. The book begins with a review of object-oriented and interface-based programming techniques, then moves into the core aspects of COM, including a full examination of language independence and location transparency. The author illustrates the numerous CASE tools used during ATL development and discusses apartments, COM exceptions, object identity, and component housing, in addition to various advanced concepts such as COM categories and tear-off interfaces. The fourth section examines a number of “COM patterns” such as enumerators, collections, scriptable objects, and callback interfaces. The book closes with an investigation of using ATL as a windowing framework and wraps up with the development of a full-blown animated ActiveX control using ATL. Learn how to build Visual Basic, Java, C++, and web-based COM clients; use common VBA programming structures such as conditions, loops, arrays, and collections; master ATL’s integrated CASE tools; dive into the details of object identity and the ATL COM map; build COM object models and leverage the ATL object map; develop full ActiveX controls with ATL.