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)
- Easily used without Wizard support
- Easily kept in one's head
- Modular (use only what you need and nothing else)
- Extensible
- Small Code
- Fast Code
- No DLL ever
- Compiler-friendly
- Platform-neutral where possible (including 16-bit Windows)
Current Feature Set
- Anal-rententive Smart Pointer
- Efficient and intuitive Unicode handling
- Table-driven QueryInterface
- Table-driven Registration
- Table-driven Class management
- Generic Class Factory implementation.
- Preprocessor macros for de facto IUnknown implementation techniques.
- Preprocessor macros for de facto module management routines.
- Preprocessor macros for de facto DllXXX routines.
- Preprocessor macros for de facto out-of-proc CRCO/Wait/CRCO sequence.
Planned Work
- Performance/size tuning
- Compiler/Platform testing
- Verify ATL/MFC interoperation
- Macro-ization of smart pointer for 16-bit windows
- Add optional exception semantics to smart pointer
- Map COM hresults/exception to C++ exceptions
- Add support for IDispatch and friends
- Add support for IConnectionPoint and friends
- Add IEnum -> stl thunks