Сущность технологии СОМ. Библиотека программиста - Страница 118
CoRevokeClassObject(dwReg);
}
g_pacUsers->Release();
g_pacAdmins->Release();
}
if (FAILED(hr))
MessageBox(0, pszPrompt, __TEXT(«Error»),
MB_SETFOREGROUND);
CoUninitialize();
return 0;
}
Source Code
COM Chat Compilable versions of the source code in Appendix B of the book.
YACL Yet another COM library. Contains the various macros and C++ classes described in the book.
IGlobalInterfaceTable Wrapper/Sample A simplification of apartment-independent pointer use.
HostHook A custom channel hook that allows you to find out the caller's and callee's network address.
APTSUR A custom surrogate that spawns distinct STA threads for each activation request.
Custom Moniker Stuff I worked with some friends on a custom moniker framework. Here is some of the 1st bits and pieces.
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 [email protected]
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