About This Book... Offering a distinctive approach, this book will teach readers not only how to use COM but how to think in COM. COM can greatly improve the efficiency of applications, but COM fluency is a difficult task. The book is a top resource for developers who need to make the transition from superficial understanding to deep knowledge. Table Of Content... Foreword Charlie Kindel Foreword Grady Booch Preface Chapter 1 COM as a Better C++ Software Distribution and C++ Dynamic Linking and C++ C++ and Portability Encapsulation and C++ Separating Interface from Implementation Abstract Bases as Binary Interfaces Runtime Polymorphism Object Extensibility Resource Management Where Are We? Chapter 2 Interfaces Interfaces and Implementations Revisited IDL Methods and Results Interfaces and IDL IUnknown Resource Management and IUnknown Type Coercion and IUnknown Implementing IUnknown Using COM Interface Pointers Optimizing QueryInterface Data Types Attributes and Properties Exceptions Where Are We? Chapter 3 Classes Interface and Implementation Class Objects Activation Using the SCM Classes and Servers Generalizations Optimizations Interface and Implementation Again Monikers and Composition Monikers and Persistence Server Lifetime Classes and IDL Class Emulation Competent Categories Where Are We? Chapter 4 Objects IUnknown Revisited QueryInterface Is Symmetric QueryInterface Is Transitive QueryInterface Is Reflexive Objects Have Static Type QueryInterface and IUnknown Uniqueness and Identity Multiple Interfaces and Method Names Dynamic Composition Binary Composition Containment Where Are We? Chapter 5 Apartments Interface and Implementation Revisited Objects, Interfaces, and Apartments Cross-Apartment Access In-Process Marshaling Helpers Standard Marshaling Architecture Lifecycle Managing and Marshaling Custom Marshaling The Free Threaded Marshaler Where Are We? Chapter 6 Applications In-Proces