doc: add documentation for COMHelper
This commit is contained in:
parent
9f47d0fe24
commit
b912be082c
33
doc/src/com_helper.dox
Normal file
33
doc/src/com_helper.dox
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
/**
|
||||||
|
|
||||||
|
\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.
|
||||||
|
|
||||||
|
*/
|
|
@ -54,6 +54,8 @@
|
||||||
|
|
||||||
\li \subpage win_import
|
\li \subpage win_import
|
||||||
|
|
||||||
|
\li \subpage com_helper
|
||||||
|
|
||||||
\li \subpage dialog_helper
|
\li \subpage dialog_helper
|
||||||
|
|
||||||
\li \subpage win_fct_helper
|
\li \subpage win_fct_helper
|
||||||
|
|
|
@ -28,16 +28,16 @@ std::vector<yycc_u8string> Split(const yycc_u8string_view&, const yycc_char8_t*)
|
||||||
std::vector<yycc_u8string_view> SplitView(const yycc_u8string_view&, const yycc_char8_t*);
|
std::vector<yycc_u8string_view> SplitView(const yycc_u8string_view&, const yycc_char8_t*);
|
||||||
\endcode
|
\endcode
|
||||||
|
|
||||||
All these overloads take a string view as the first argument for the string need to be split.
|
All these overloads take a string view as the first argument representing the string need to be split.
|
||||||
The second argument is a raw string pointer representing the decilmer for splitting.
|
The second argument is a raw string pointer representing the decilmer for splitting.
|
||||||
The only difference between these 2 split function are overt according to their names.
|
The only difference between these 2 split function are overt according to their names.
|
||||||
The first split function will return a list of copied string as its split result.
|
The first split function will return a list of copied string as its split result.
|
||||||
The second split function will return a list of string view as its split result,
|
The second split function will return a list of string view as its split result,
|
||||||
and it will keep valid as long as the life time of your given string view argument.
|
and it will keep valid as long as the life time of your given string view argument.
|
||||||
It also means that the last type will cost less memory if you don't need the copy of original string.
|
It also means that the last overload will cost less memory if you don't need the copy of original string.
|
||||||
|
|
||||||
If the source string (the string need to be split) is empty, or the decilmer is \c nullptr or empty,
|
If the source string (the string need to be split) is empty, or the decilmer is \c nullptr or empty,
|
||||||
the result will only has 1 item and this item is source string itself.
|
the result will only has 1 item and this item is source string itself.
|
||||||
There is no way that this method return an empty list, except the code is buggy.
|
There is no way that these methods return an empty list, except the code is buggy.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -9,25 +9,6 @@
|
||||||
#include <shlobj_core.h>
|
#include <shlobj_core.h>
|
||||||
#include "WinImportSuffix.hpp"
|
#include "WinImportSuffix.hpp"
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief COM fucntions related namespace.
|
|
||||||
* @details
|
|
||||||
* This namespace is Windows specific and is unavailable on other platforms.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* 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 std-based smart pointer type were created.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
namespace YYCC::COMHelper {
|
namespace YYCC::COMHelper {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue
Block a user