Yet Another COM Library (YACL) - Preview

This is my first drop. It contains a family of preprocessor macros that automate the boilerplate activities used in COM programming.

Please send comments and bug reports to cbbugs@braintrust.com

The freshest drop is always available at http://www.develop.com/dbox/yacl.zip

Design Goals (in Order)

  1. Easily used without Wizard support
  2. Easily kept in one's head
  3. Modular (use only what you need and nothing else)
  4. Extensible
  5. Small Code
  6. Fast Code
  7. No DLL ever
  8. Compiler-friendly
  9. Platform-neutral where possible (including 16-bit Windows)

Current Feature Set

  1. Anal-rententive Smart Pointer
  2. Efficient and intuitive Unicode handling
  3. Table-driven QueryInterface
  4. Table-driven Registration
  5. Table-driven Class management
  6. Generic Class Factory implementation.
  7. Preprocessor macros for de facto IUnknown implementation techniques.
  8. Preprocessor macros for de facto module management routines.
  9. Preprocessor macros for de facto DllXXX routines.
  10. Preprocessor macros for de facto out-of-proc CRCO/Wait/CRCO sequence.

Planned Work

  1. Performance/size tuning
  2. Compiler/Platform testing
  3. Verify ATL/MFC interoperation
  4. Macro-ization of smart pointer for 16-bit windows
  5. Add optional exception semantics to smart pointer
  6. Map COM hresults/exception to C++ exceptions
  7. Add support for IDispatch and friends
  8. Add support for IConnectionPoint and friends
  9. Add IEnum -> stl thunks