Make your own free website on Tripod.com
1. COM Interfaces 2. Implementing COM Objects 3. COM classes 4. Inproc Servers
  • Interface vs Implementation
  • COM Notation
  • Naming
  • GUIDS
  • COM Interfaces
  • Interfaces in IDL
  • IDL Interface Definition
  • IDL Compiler output
  • IUnknown
  • Lifetime Control and IUnknown
  • AddRef / Release Rules
  • Example
  • QueryInterface
  • dynamic_cast Example
  • Dynamically Typed Interfaces and Type-Safety
  • Interfaces & Inheritance
  • QueryInterface & Evolution
  • Handling Errors in COM
  • HRESULTs
  • Conclusions
  • Binary Interoperability
  • Implementation
  • Lifetime Control
  • Implementing QueryInterface
  • Summary
  • Classes & Interfaces
  • Class Objects
  • Using the COM Library
  • The SCM
  • Finding Class Objects
  • Example
  • CoCreateInstance vs CoGetClassObject/ CreateInstance
  • Registering Implementations
  • Conclusions
  • The SCM and the Registry
  • CLSIDs and the Registry
  • ProgIDs and the Registry
  • Component Categories (CATIDs) and the Registry
  • Self-Registration
  • Example
  • Implementing Class Objects
  • Exposing Class Objects/Inproc
  • Example
  • CoGetClassObject
  • Server Lifecycle Management
  • Locks and Inproc Servers
  • Example
  • Implementing Server Lifetime
    • Heap-based Objects
    • Non-heap-based Objects
  • Conclusions
5. IDL 6. Identity 7. Apartments 8. Remote Activation
  • TypeLibraries
  • Simple IDL Example
  • Managing multiple IDL files
  • COM Interfaces in IDL
  • Physical and Logical Results
  • Logical Properties
  • COM classes and IDL
  • Generating type libraries
  • ITypeLib
  • ITypeInfo
  • Loading Type Libraries
  • VJ++ and COM
  • Base Types
  • Text & COM
  • Programming with BSTR API
  • Unions and COM
  • VARTYPE
  • VARIANT/VARIANTARG
  • Using Variants
  • Type Coercion & Variants
  • VariantChangeType[Ex]
  • Coercing Variants
  • Summary
  • Query Interface
  • Identity
  • Implementation using Member Composition
  • Implementing Nested Classes
  • Multiple Inheritance vs Composition
  • Tearoffs
  • COM Aggregation
  • COM Containment
  • Summary
  • Apartments, Processes and Threads
  • Cross-Apartment Access
  • Mashaling
  • CoMarshalInterface API
  • Wire Representation
  • Proxys and Stubs
  • COM and Reentrancy
  • Callbacks and Apartments
  • Summary
  • Locality and COM
  • Inproc and OutOfProc Servers
  • CoRegisterClassObject
  • Starting Servers
  • Server Lifetime
  • Surrogates
  • COM Security
  • Summary
9. Interface Design 10. Dynamic Invocation 11. Tools & Frameworks 12. Language Integration
  • Design Goals
  • Pointers and Interfaces
  • Arrays
  • IEnum<T> interface
  • Summary
  • Logical and Physical Interfaces
  • Dual Interfaces
  • IDispatch
  • ITypeInfo
  • Tradeoffs
  • Conclusions
  • MFC
  • ATL
  • VC5 Direct to COM
  • Conclusions
  • VJ++ Basics
  • Safearrays
  • Collections
  • VJ++ Syntax
  • Events and VJ++
  • Exceptions
13. Monikers 14. COM persistence 15. Rendering 16. Custom Marshalling
  • Moniker Architecture
    • MkParseDisplayName
    • Binding
  • Custom Monikers
  • Class Moniker
  • Java Moniker
  • Item Monikers and Composition
    • IOleItemContainer
    • ParseDisplayName
    • IClassActivator
  • Summary
  • Persistence Model
    • IStream
    • IPersistStream
    • IStorage
    • IPersistStorage
  • FileMonikers & BindToObject
    • GetClassFile
    • IRunningObjectTable
  • Summary
  • Rendering Inproc Objects
  • Rendering OutOfProc Objects
  • IDataObject
  • IAdviseSink
  • Summary
  • CoMarshal API
  • IMarshal
  • Marshal by Value
  • CoGetStandardMarshal
17. Advanced Threading 18. COM and the Web 19. COM+  
  • Inside the Channel (MTAs and STAs)
  • CoInitializeEx
  • MessageFilters
  • IMessageFilter
  • COM Threading Rules
  • Thread Marshaling functions
  • CoMarshalInterThreadInterfaceInStream
  • Summary
  • CreateURLMoniker
  • BindToObject and the URL Moniker
  • Asynchronous Binding
  • IBindStatusCallback
  • GetBindInfo
  • Implementing OnObjectAvailable
  • Synchronous binding
  • CoGetClassObjectFromURL
  • Conclusions
  • MTS
  • Deployment
  • MS-DTC
  • Transaction Management
  • GetObjectContext
  • MTS and Security
  • COM+ Services
  • COM+ Explorer
  • COM+ Queued Components
  • COM+ Event Service
  • COM+ Runtime
  • Conclusions