WinStd/_common_8h.html

288 lines
36 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.3"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>WinStd: include/WinStd/Common.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">WinStd
</div>
<div id="projectbrief">Additional templates and function helpers for Microsoft Windows using Standard C++ classes</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.3 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_6f50bb204833d887b928571856c82fbe.html">WinStd</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">Common.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>General API.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;Windows.h&gt;</code><br />
<code>#include &lt;assert.h&gt;</code><br />
<code>#include &lt;stdarg.h&gt;</code><br />
<code>#include &lt;tchar.h&gt;</code><br />
<code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;memory&gt;</code><br />
<code>#include &lt;stdexcept&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div>
<p><a href="_common_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structwinstd_1_1_local_free__delete.html">winstd::LocalFree_delete&lt; _Ty &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deleter for unique_ptr using LocalFree. <a href="structwinstd_1_1_local_free__delete.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html">winstd::LocalFree_delete&lt; _Ty[]&gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deleter for unique_ptr to array of unknown size using LocalFree. <a href="structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1ref__unique__ptr.html">winstd::ref_unique_ptr&lt; _Ty, _Dx &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper class for returning pointers to std::unique_ptr. <a href="classwinstd_1_1ref__unique__ptr.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html">winstd::ref_unique_ptr&lt; _Ty[], _Dx &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper class for returning pointers to std::unique_ptr (specialization for arrays) <a href="classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base abstract template class to support generic object handle keeping. <a href="classwinstd_1_1handle.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base abstract template class to support object handle keeping for objects that support trivial handle duplication. <a href="classwinstd_1_1dplhandle.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; _Tn &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Numerical runtime error. <a href="classwinstd_1_1num__runtime__error.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1win__runtime__error.html">winstd::win_runtime_error</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Windows runtime error. <a href="classwinstd_1_1win__runtime__error.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__printf.html">winstd::basic_string_printf&lt; _Elem, _Traits, _Ax &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base template class to support string formatting using <code>printf()</code> style templates. <a href="classwinstd_1_1basic__string__printf.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base template class to support string formatting using <code><a class="el" href="group___win_std_str_format.html#ga78bf19793ce080f2826f56f228d64623" title="Formats a message string.">FormatMessage()</a></code> style templates. <a href="classwinstd_1_1basic__string__msg.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__guid.html">winstd::basic_string_guid&lt; _Elem, _Traits, _Ax &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base template class to support converting GUID to string. <a href="classwinstd_1_1basic__string__guid.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1string__guid.html">winstd::string_guid</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-byte character implementation of a class to support converting GUID to string. <a href="classwinstd_1_1string__guid.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1wstring__guid.html">winstd::wstring_guid</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wide character implementation of a class to support converting GUID to string. <a href="classwinstd_1_1wstring__guid.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1sanitizing__allocator.html">winstd::sanitizing_allocator&lt; _Ty &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An allocator template that sanitizes each memory block before it is destroyed or reallocated. <a href="classwinstd_1_1sanitizing__allocator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structwinstd_1_1sanitizing__allocator_1_1rebind.html">winstd::sanitizing_allocator&lt; _Ty &gt;::rebind&lt; _Other &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert this type to sanitizing_allocator&lt;_Other&gt; <a href="structwinstd_1_1sanitizing__allocator_1_1rebind.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1sanitizing__blob.html">winstd::sanitizing_blob&lt; N &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sanitizing BLOB. <a href="classwinstd_1_1sanitizing__blob.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga2cbff438813b72648c18c8af875f47c9"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><b>__L</b>(x)&#160;&#160;&#160;L ## x</td></tr>
<tr class="memdesc:ga2cbff438813b72648c18c8af875f47c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">"L" stringizing macro <br /></td></tr>
<tr class="separator:ga2cbff438813b72648c18c8af875f47c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b08a24569840250e78cb8d510f1324a"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><b>_L</b>(x)&#160;&#160;&#160;<a class="el" href="group___win_std_general.html#ga2cbff438813b72648c18c8af875f47c9">__L</a>(x)</td></tr>
<tr class="memdesc:ga8b08a24569840250e78cb8d510f1324a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes string Unicode. <br /></td></tr>
<tr class="separator:ga8b08a24569840250e78cb8d510f1324a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a46b36a9276ea0451d0790e51c7621f"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><b>WINSTD_STRING_IMPL</b>(x)&#160;&#160;&#160;#x</td></tr>
<tr class="memdesc:ga4a46b36a9276ea0451d0790e51c7621f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stringizing macro helper. <br /></td></tr>
<tr class="separator:ga4a46b36a9276ea0451d0790e51c7621f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac2a4fa0600886ba34fd4f7d2116d35da"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><b>WINSTD_STRING</b>(x)&#160;&#160;&#160;<a class="el" href="group___win_std_general.html#ga4a46b36a9276ea0451d0790e51c7621f">WINSTD_STRING_IMPL</a>(x)</td></tr>
<tr class="memdesc:gac2a4fa0600886ba34fd4f7d2116d35da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stringizing macro. <br /></td></tr>
<tr class="separator:gac2a4fa0600886ba34fd4f7d2116d35da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11254c72ad33a6e0f5de31db708f784c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a>(C)</td></tr>
<tr class="memdesc:ga11254c72ad33a6e0f5de31db708f784c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares a class as non-copyable. <a href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">More...</a><br /></td></tr>
<tr class="separator:ga11254c72ad33a6e0f5de31db708f784c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac91fa8d79c860b1fdbba65b6a322f760"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___win_std_general.html#gac91fa8d79c860b1fdbba65b6a322f760">WINSTD_NONMOVABLE</a>(C)</td></tr>
<tr class="memdesc:gac91fa8d79c860b1fdbba65b6a322f760"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares a class as non-movable. <a href="group___win_std_general.html#gac91fa8d79c860b1fdbba65b6a322f760">More...</a><br /></td></tr>
<tr class="separator:gac91fa8d79c860b1fdbba65b6a322f760"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ca39107a61bbcd05f901898ec584986"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>&#160;&#160;&#160;1024</td></tr>
<tr class="memdesc:ga3ca39107a61bbcd05f901898ec584986"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of the stack buffer in bytes used for initial system function call. <a href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">More...</a><br /></td></tr>
<tr class="separator:ga3ca39107a61bbcd05f901898ec584986"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga145b6285cc6fced0a7a61c4368b0bf12"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PRINTF_LPTSTR</b>&#160;&#160;&#160;&quot;s&quot;</td></tr>
<tr class="memdesc:ga145b6285cc6fced0a7a61c4368b0bf12"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPTSTR printf/scanf format specifier. <br /></td></tr>
<tr class="separator:ga145b6285cc6fced0a7a61c4368b0bf12"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1bb2b564655d7b0dee3ec63a0fda2eb5"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><b>PRINTF_LPOLESTR</b>&#160;&#160;&#160;&quot;ls&quot;</td></tr>
<tr class="memdesc:ga1bb2b564655d7b0dee3ec63a0fda2eb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPOLESTR printf/scanf format specifier. <br /></td></tr>
<tr class="separator:ga1bb2b564655d7b0dee3ec63a0fda2eb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd052e867c5d82d180924da9d0e16798"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___win_std_str_format.html#gadd052e867c5d82d180924da9d0e16798">_tcin</a>&#160;&#160;&#160;(std::cin )</td></tr>
<tr class="memdesc:gadd052e867c5d82d180924da9d0e16798"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard input stream for TCHAR strings. <a href="group___win_std_str_format.html#gadd052e867c5d82d180924da9d0e16798">More...</a><br /></td></tr>
<tr class="separator:gadd052e867c5d82d180924da9d0e16798"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b7f5dbc77bb5d56afbb217a8dcc8544"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><b>_tcout</b>&#160;&#160;&#160;(std::cout)</td></tr>
<tr class="memdesc:ga4b7f5dbc77bb5d56afbb217a8dcc8544"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard output stream for TCHAR strings. <br /></td></tr>
<tr class="separator:ga4b7f5dbc77bb5d56afbb217a8dcc8544"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad92c7b3354a4cc35a5b9ddd16841a9c0"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><b>_tcerr</b>&#160;&#160;&#160;(std::cerr)</td></tr>
<tr class="memdesc:gad92c7b3354a4cc35a5b9ddd16841a9c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard error stream for TCHAR strings. <br /></td></tr>
<tr class="separator:gad92c7b3354a4cc35a5b9ddd16841a9c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51ea87c84320a64b846a002ab52ac1b8"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><b>_tclog</b>&#160;&#160;&#160;(std::clog)</td></tr>
<tr class="memdesc:ga51ea87c84320a64b846a002ab52ac1b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard logging stream for TCHAR strings. <br /></td></tr>
<tr class="separator:ga51ea87c84320a64b846a002ab52ac1b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga419efffd12b5c96abc8a275ba375ca60"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a>(C, INVAL)</td></tr>
<tr class="memdesc:ga419efffd12b5c96abc8a275ba375ca60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements default constructors and operators to prevent their auto-generation by compiler. <a href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">More...</a><br /></td></tr>
<tr class="separator:ga419efffd12b5c96abc8a275ba375ca60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2768b80bcf124e3127f0b7fe64395adb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">WINSTD_DPLHANDLE_IMPL</a>(C, INVAL)</td></tr>
<tr class="memdesc:ga2768b80bcf124e3127f0b7fe64395adb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implements default constructors and operators to prevent their auto-generation by compiler. <a href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">More...</a><br /></td></tr>
<tr class="separator:ga2768b80bcf124e3127f0b7fe64395adb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga8081292a94f5d070e644bdc90662d1fc"><td class="memItemLeft" align="right" valign="top">
typedef std::string&#160;</td><td class="memItemRight" valign="bottom"><b>winstd::tstring</b></td></tr>
<tr class="memdesc:ga8081292a94f5d070e644bdc90662d1fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multi-byte / Wide-character string (according to _UNICODE) <br /></td></tr>
<tr class="separator:ga8081292a94f5d070e644bdc90662d1fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9dda7a9a763b666f6fe00c4c6626621d"><td class="memItemLeft" align="right" valign="top">
typedef basic_string_printf&lt; char, std::char_traits&lt; char &gt;, std::allocator&lt; char &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>winstd::string_printf</b></td></tr>
<tr class="memdesc:ga9dda7a9a763b666f6fe00c4c6626621d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-byte character implementation of a class to support string formatting using <code>printf()</code> style templates. <br /></td></tr>
<tr class="separator:ga9dda7a9a763b666f6fe00c4c6626621d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0abdccf0a03840f984b7a889fea13cac"><td class="memItemLeft" align="right" valign="top">
typedef basic_string_printf&lt; wchar_t, std::char_traits&lt; wchar_t &gt;, std::allocator&lt; wchar_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>winstd::wstring_printf</b></td></tr>
<tr class="memdesc:ga0abdccf0a03840f984b7a889fea13cac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wide character implementation of a class to support string formatting using <code>printf()</code> style templates. <br /></td></tr>
<tr class="separator:ga0abdccf0a03840f984b7a889fea13cac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab805ccda115191833fb01ba4457f208a"><td class="memItemLeft" align="right" valign="top">
typedef string_printf&#160;</td><td class="memItemRight" valign="bottom"><b>winstd::tstring_printf</b></td></tr>
<tr class="memdesc:gab805ccda115191833fb01ba4457f208a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multi-byte / Wide-character formatted string (according to _UNICODE) <br /></td></tr>
<tr class="separator:gab805ccda115191833fb01ba4457f208a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae63195e25e08e2b3d9a9b9c2987f5740"><td class="memItemLeft" align="right" valign="top">
typedef basic_string_msg&lt; char, std::char_traits&lt; char &gt;, std::allocator&lt; char &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>winstd::string_msg</b></td></tr>
<tr class="memdesc:gae63195e25e08e2b3d9a9b9c2987f5740"><td class="mdescLeft">&#160;</td><td class="mdescRight">Single-byte character implementation of a class to support string formatting using <code><a class="el" href="group___win_std_str_format.html#ga78bf19793ce080f2826f56f228d64623" title="Formats a message string.">FormatMessage()</a></code> style templates. <br /></td></tr>
<tr class="separator:gae63195e25e08e2b3d9a9b9c2987f5740"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga52a88ab19a1a96f778dbf7a2938bc98f"><td class="memItemLeft" align="right" valign="top">
typedef basic_string_msg&lt; wchar_t, std::char_traits&lt; wchar_t &gt;, std::allocator&lt; wchar_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>winstd::wstring_msg</b></td></tr>
<tr class="memdesc:ga52a88ab19a1a96f778dbf7a2938bc98f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wide character implementation of a class to support string formatting using <code><a class="el" href="group___win_std_str_format.html#ga78bf19793ce080f2826f56f228d64623" title="Formats a message string.">FormatMessage()</a></code> style templates. <br /></td></tr>
<tr class="separator:ga52a88ab19a1a96f778dbf7a2938bc98f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf47f07aac0b4c8ef47cf42216ab17f1b"><td class="memItemLeft" align="right" valign="top">
typedef string_msg&#160;</td><td class="memItemRight" valign="bottom"><b>winstd::tstring_msg</b></td></tr>
<tr class="memdesc:gaf47f07aac0b4c8ef47cf42216ab17f1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multi-byte / Wide-character formatted string (according to _UNICODE) <br /></td></tr>
<tr class="separator:gaf47f07aac0b4c8ef47cf42216ab17f1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4c44b6a587f894ee33bb58a10ba27d6b"><td class="memItemLeft" align="right" valign="top">
typedef string_guid&#160;</td><td class="memItemRight" valign="bottom"><b>winstd::tstring_guid</b></td></tr>
<tr class="memdesc:ga4c44b6a587f894ee33bb58a10ba27d6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multi-byte / Wide-character string GUID (according to _UNICODE) <br /></td></tr>
<tr class="separator:ga4c44b6a587f894ee33bb58a10ba27d6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafaf527687e080349d49b51c2362c32e8"><td class="memItemLeft" align="right" valign="top">typedef std::basic_string&lt; char, std::char_traits&lt; char &gt;, sanitizing_allocator&lt; char &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___win_std_mem_sanitize.html#gafaf527687e080349d49b51c2362c32e8">winstd::sanitizing_string</a></td></tr>
<tr class="memdesc:gafaf527687e080349d49b51c2362c32e8"><td class="mdescLeft">&#160;</td><td class="mdescRight">A sanitizing variant of std::string. <a href="group___win_std_mem_sanitize.html#gafaf527687e080349d49b51c2362c32e8">More...</a><br /></td></tr>
<tr class="separator:gafaf527687e080349d49b51c2362c32e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga57776f4affaac5040ba220302003eedc"><td class="memItemLeft" align="right" valign="top">typedef std::basic_string&lt; wchar_t, std::char_traits&lt; wchar_t &gt;, sanitizing_allocator&lt; wchar_t &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___win_std_mem_sanitize.html#ga57776f4affaac5040ba220302003eedc">winstd::sanitizing_wstring</a></td></tr>
<tr class="memdesc:ga57776f4affaac5040ba220302003eedc"><td class="mdescLeft">&#160;</td><td class="mdescRight">A sanitizing variant of std::wstring. <a href="group___win_std_mem_sanitize.html#ga57776f4affaac5040ba220302003eedc">More...</a><br /></td></tr>
<tr class="separator:ga57776f4affaac5040ba220302003eedc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa149b89d04cc80c125023a14e241e8bd"><td class="memItemLeft" align="right" valign="top">
typedef sanitizing_string&#160;</td><td class="memItemRight" valign="bottom"><b>winstd::sanitizing_tstring</b></td></tr>
<tr class="memdesc:gaa149b89d04cc80c125023a14e241e8bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multi-byte / Wide-character sanitizing string (according to _UNICODE) <br /></td></tr>
<tr class="separator:gaa149b89d04cc80c125023a14e241e8bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaad906b9a0f259f7c45470a7d548957ed"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___win_std_str_format.html#gaad906b9a0f259f7c45470a7d548957ed">vsnprintf</a> (char *str, size_t capacity, const char *format, va_list arg)</td></tr>
<tr class="memdesc:gaad906b9a0f259f7c45470a7d548957ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formats string using <code>printf()</code>. <a href="group___win_std_str_format.html#gaad906b9a0f259f7c45470a7d548957ed">More...</a><br /></td></tr>
<tr class="separator:gaad906b9a0f259f7c45470a7d548957ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f831951f2e74c57aea12da36fe136d4"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___win_std_str_format.html#ga9f831951f2e74c57aea12da36fe136d4">vsnprintf</a> (wchar_t *str, size_t capacity, const wchar_t *format, va_list arg) noexcept</td></tr>
<tr class="memdesc:ga9f831951f2e74c57aea12da36fe136d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formats string using <code>printf()</code>. <a href="group___win_std_str_format.html#ga9f831951f2e74c57aea12da36fe136d4">More...</a><br /></td></tr>
<tr class="separator:ga9f831951f2e74c57aea12da36fe136d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga583555761f3d01787d5e5f0226472f4e"><td class="memTemplParams" colspan="2">template&lt;class _Elem , class _Traits , class _Ax &gt; </td></tr>
<tr class="memitem:ga583555761f3d01787d5e5f0226472f4e"><td class="memTemplItemLeft" align="right" valign="top">static int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___win_std_str_format.html#ga583555761f3d01787d5e5f0226472f4e">vsprintf</a> (std::basic_string&lt; _Elem, _Traits, _Ax &gt; &amp;str, const _Elem *format, va_list arg)</td></tr>
<tr class="memdesc:ga583555761f3d01787d5e5f0226472f4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formats string using <code>printf()</code>. <a href="group___win_std_str_format.html#ga583555761f3d01787d5e5f0226472f4e">More...</a><br /></td></tr>
<tr class="separator:ga583555761f3d01787d5e5f0226472f4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac397f655a858a069b3e521940af64331"><td class="memTemplParams" colspan="2">template&lt;class _Elem , class _Traits , class _Ax &gt; </td></tr>
<tr class="memitem:gac397f655a858a069b3e521940af64331"><td class="memTemplItemLeft" align="right" valign="top">static int&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___win_std_str_format.html#gac397f655a858a069b3e521940af64331">sprintf</a> (std::basic_string&lt; _Elem, _Traits, _Ax &gt; &amp;str, const _Elem *format,...)</td></tr>
<tr class="memdesc:gac397f655a858a069b3e521940af64331"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formats string using <code>printf()</code>. <a href="group___win_std_str_format.html#gac397f655a858a069b3e521940af64331">More...</a><br /></td></tr>
<tr class="separator:gac397f655a858a069b3e521940af64331"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga78bf19793ce080f2826f56f228d64623"><td class="memTemplParams" colspan="2">template&lt;class _Traits , class _Ax &gt; </td></tr>
<tr class="memitem:ga78bf19793ce080f2826f56f228d64623"><td class="memTemplItemLeft" align="right" valign="top">static DWORD&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___win_std_str_format.html#ga78bf19793ce080f2826f56f228d64623">FormatMessage</a> (DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, std::basic_string&lt; char, _Traits, _Ax &gt; &amp;str, va_list *Arguments)</td></tr>
<tr class="memdesc:ga78bf19793ce080f2826f56f228d64623"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formats a message string. <a href="group___win_std_str_format.html#ga78bf19793ce080f2826f56f228d64623">More...</a><br /></td></tr>
<tr class="separator:ga78bf19793ce080f2826f56f228d64623"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaebf39378c982c5116ea0110a69eb2f75"><td class="memTemplParams" colspan="2">template&lt;class _Traits , class _Ax &gt; </td></tr>
<tr class="memitem:gaebf39378c982c5116ea0110a69eb2f75"><td class="memTemplItemLeft" align="right" valign="top">static DWORD&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___win_std_str_format.html#gaebf39378c982c5116ea0110a69eb2f75">FormatMessage</a> (DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;str, va_list *Arguments)</td></tr>
<tr class="memdesc:gaebf39378c982c5116ea0110a69eb2f75"><td class="mdescLeft">&#160;</td><td class="mdescRight">Formats a message string. <a href="group___win_std_str_format.html#gaebf39378c982c5116ea0110a69eb2f75">More...</a><br /></td></tr>
<tr class="separator:gaebf39378c982c5116ea0110a69eb2f75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab4ddaca47a234b4f81a1c3314b3ba205"><td class="memTemplParams" colspan="2">template&lt;class _Ty , class _Dx &gt; </td></tr>
<tr class="memitem:gab4ddaca47a234b4f81a1c3314b3ba205"><td class="memTemplItemLeft" align="right" valign="top">ref_unique_ptr&lt; _Ty, _Dx &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___win_std_general.html#gab4ddaca47a234b4f81a1c3314b3ba205">winstd::get_ptr</a> (std::unique_ptr&lt; _Ty, _Dx &gt; &amp;owner) noexcept</td></tr>
<tr class="memdesc:gab4ddaca47a234b4f81a1c3314b3ba205"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function template for returning pointers to std::unique_ptr. <a href="group___win_std_general.html#gab4ddaca47a234b4f81a1c3314b3ba205">More...</a><br /></td></tr>
<tr class="separator:gab4ddaca47a234b4f81a1c3314b3ba205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ecb3b65341fd45c36fce1fe692ec19a"><td class="memTemplParams" colspan="2">template&lt;class _Ty , class _Dx &gt; </td></tr>
<tr class="memitem:ga7ecb3b65341fd45c36fce1fe692ec19a"><td class="memTemplItemLeft" align="right" valign="top">ref_unique_ptr&lt; _Ty[], _Dx &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___win_std_general.html#ga7ecb3b65341fd45c36fce1fe692ec19a">winstd::get_ptr</a> (std::unique_ptr&lt; _Ty[], _Dx &gt; &amp;owner) noexcept</td></tr>
<tr class="memdesc:ga7ecb3b65341fd45c36fce1fe692ec19a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function template for returning pointers to std::unique_ptr (specialization for arrays) <a href="group___win_std_general.html#ga7ecb3b65341fd45c36fce1fe692ec19a">More...</a><br /></td></tr>
<tr class="separator:ga7ecb3b65341fd45c36fce1fe692ec19a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p >General API. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 7 2022 11:58:55 for WinStd by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.3
</small></address>
</body>
</html>