33 lines
1.4 KiB
Plaintext
33 lines
1.4 KiB
Plaintext
/**
|
|
|
|
\page com_helper COM Helper
|
|
|
|
This namespace is Windows specific.
|
|
It will be invisible on other platforms.
|
|
|
|
This namespace is used by internal functions as intended.
|
|
They should not be used outside of this library.
|
|
But if you compel to use them, it is also okey.
|
|
|
|
\section com_helper__memory_safe_ptr Memory Safe Pointer Types
|
|
|
|
This namespace also provided various memory-safe types for interacting with COM functions.
|
|
Although Microsoft also has similar smart pointer called \c CComPtr.
|
|
But this library is eager to hide all Microsoft-related functions calling.
|
|
Using \c CComPtr is not corresponding with the philosophy of this library.
|
|
So these standard library based smart pointer types were created.
|
|
|
|
\section com_helper__com_guard COM Guard
|
|
|
|
This namespace contain a COM Guard which make sure COM was initialized in current module when loading current module.
|
|
It is essential because all calling to COM functions should be under the premise that COM has been initialized.
|
|
This guard also will uninitialize COM when unloading this module.
|
|
|
|
There is only an exposed function called YYCC::COMHelper::IsInitialized for user calling.
|
|
This function will check whether COM environment is initialized.
|
|
If you want YYCC automatically initialize COM environment for you,
|
|
you must call this function in your program at least one time.
|
|
Otherwise COM Guard code may be unavailable,
|
|
because compiler may think they are not essential code and drop them.
|
|
|
|
*/ |