deploy: 89a79c330be484d0aac2c2d204f5839bfe9cff82

This commit is contained in:
rozmansi 2022-02-04 12:23:57 +00:00
commit da11b7a8cc
530 changed files with 57047 additions and 0 deletions

0
.nojekyll Normal file
View File

902
_c_o_m_8h_source.html Normal file
View File

@ -0,0 +1,902 @@
<!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/COM.h Source File</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="headertitle"><div class="title">COM.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;unknwn.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span>{</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__runtime__error.html"> 23</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1com__runtime__error.html">com_runtime_error</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;HRESULT&gt;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__runtime__error.html#ac5974f81a49bc2cf13c048ab1e93a883"> 32</a></span> <a class="code hl_function" href="classwinstd_1_1com__runtime__error.html#ac5974f81a49bc2cf13c048ab1e93a883">com_runtime_error</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_ <span class="keyword">const</span> std::string&amp; msg) : <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;HRESULT&gt;(num, msg)</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> {</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__runtime__error.html#a948a502b8e2c088192c7a8f28b93f0cf"> 42</a></span> <a class="code hl_function" href="classwinstd_1_1com__runtime__error.html#a948a502b8e2c088192c7a8f28b93f0cf">com_runtime_error</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_opt_z_ <span class="keyword">const</span> <span class="keywordtype">char</span> *msg = <span class="keyword">nullptr</span>) : <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;HRESULT&gt;(num, msg)</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> }</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> };</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="structwinstd_1_1_co_task_mem_free__delete.html"> 58</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structwinstd_1_1_co_task_mem_free__delete.html">CoTaskMemFree_delete</a></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> {</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structwinstd_1_1_co_task_mem_free__delete.html#a712d2e91abc99bebe8cf8d32ac649326"> 63</a></span> <a class="code hl_function" href="structwinstd_1_1_co_task_mem_free__delete.html#a712d2e91abc99bebe8cf8d32ac649326">CoTaskMemFree_delete</a>() noexcept {}</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _T&gt;</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="structwinstd_1_1_co_task_mem_free__delete.html#a66d6fbd417d9073624387c4664db782f"> 71</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structwinstd_1_1_co_task_mem_free__delete.html#a66d6fbd417d9073624387c4664db782f">operator()</a>(_T *_Ptr)<span class="keyword"> const</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> CoTaskMemFree(_Ptr);</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> };</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__obj.html"> 81</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1com__obj.html">com_obj</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt;T*, NULL&gt;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> {</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1com__obj.html">com_obj</a>, NULL)</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__obj.html#acb2f90ae927378156683517718aa1d1d"> 91</a></span> <a class="code hl_function" href="classwinstd_1_1com__obj.html#acb2f90ae927378156683517718aa1d1d">com_obj</a>(_In_ REFCLSID rclsid, _In_opt_ LPUNKNOWN pUnkOuter = NULL, DWORD dwClsContext = CLSCTX_ALL)</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> {</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> CoCreateInstance(rclsid, pUnkOuter, dwClsContext, __uuidof(T), (LPVOID*)&amp;<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> }</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Other&gt;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__obj.html#a5891697029f9fe6fb93113bd8dd06c25"> 102</a></span> <a class="code hl_function" href="classwinstd_1_1com__obj.html#a5891697029f9fe6fb93113bd8dd06c25">com_obj</a>(_In_ _Other *other)</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> {</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> assert(other);</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> other-&gt;QueryInterface(__uuidof(T), (<span class="keywordtype">void</span>**)&amp;<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Other&gt;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__obj.html#a544fcc007dd4588b257867d2e2a805b0"> 114</a></span> <a class="code hl_function" href="classwinstd_1_1com__obj.html#a544fcc007dd4588b257867d2e2a805b0">com_obj</a>(_In_ <a class="code hl_class" href="classwinstd_1_1com__obj.html">com_obj&lt;_Other&gt;</a> &amp;other)</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> {</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> other-&gt;QueryInterface(__uuidof(T), (<span class="keywordtype">void</span>**)&amp;<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> }</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__obj.html#a91383e6e26266b0d3803c8594b8c5149"> 122</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1com__obj.html#a91383e6e26266b0d3803c8594b8c5149">~com_obj</a>()</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> {</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_function" href="classwinstd_1_1com__obj.html#a028b86f770253f74a62ca3eaebb14de5">free_internal</a>();</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> }</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__obj.html#a778ef4c90c978b2dfb9a3a5d9325ce8a"> 133</a></span> HRESULT <a class="code hl_function" href="classwinstd_1_1com__obj.html#a778ef4c90c978b2dfb9a3a5d9325ce8a">create</a>(_In_ REFCLSID rclsid, _In_opt_ LPUNKNOWN pUnkOuter = NULL, _In_ DWORD dwClsContext = CLSCTX_ALL)</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> {</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> HRESULT hr = CoCreateInstance(rclsid, pUnkOuter, dwClsContext, __uuidof(T), (<span class="keywordtype">void</span>**)&amp;h);</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">if</span> (SUCCEEDED(hr))</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">return</span> hr;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Other&gt;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__obj.html#adaf8aacd14f27142cdb99edff9ac07a9"> 148</a></span> HRESULT <a class="code hl_function" href="classwinstd_1_1com__obj.html#adaf8aacd14f27142cdb99edff9ac07a9">query_interface</a>(_Out_ _Other **h)<span class="keyword"> const</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> assert(h);</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> assert(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;QueryInterface(__uuidof(_Other), (<span class="keywordtype">void</span>**)h);</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> }</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Other&gt;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__obj.html#adbce2534b586fb53bce5cd2e5508dbb3"> 161</a></span> HRESULT <a class="code hl_function" href="classwinstd_1_1com__obj.html#adbce2534b586fb53bce5cd2e5508dbb3">query_interface</a>(_Out_ <a class="code hl_class" href="classwinstd_1_1com__obj.html">com_obj&lt;_Other&gt;</a> &amp;h)<span class="keyword"> const</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> assert(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> _Other *_h;</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> HRESULT hr = <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;QueryInterface(__uuidof(_Other), (<span class="keywordtype">void</span>**)&amp;_h);</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">if</span> (SUCCEEDED(hr))</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> h.attach(_h);</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">return</span> hr;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> }</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__obj.html#a028b86f770253f74a62ca3eaebb14de5"> 177</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1com__obj.html#a028b86f770253f74a62ca3eaebb14de5">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;Release();</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> }</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__obj.html#a2e16632274f2014e45f3cf593edbf110"> 191</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> <a class="code hl_function" href="classwinstd_1_1com__obj.html#a2e16632274f2014e45f3cf593edbf110">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) <span class="keyword">const</span> <span class="keyword">noexcept</span> <span class="keyword">override</span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> {</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> h-&gt;AddRef();</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">return</span> h;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> }</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> };</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"><a class="line" href="classwinstd_1_1bstr.html"> 201</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1bstr.html">bstr</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt;BSTR, NULL&gt;</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> {</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1bstr.html">bstr</a>, NULL)</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="classwinstd_1_1bstr.html#a9fd6b7039c624f1265c7787424f65843"> 209</a></span> <a class="code hl_function" href="classwinstd_1_1bstr.html#a9fd6b7039c624f1265c7787424f65843">bstr</a>(_In_ LPCOLESTR src) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> {</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> = SysAllocString(src);</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> }</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"><a class="line" href="classwinstd_1_1bstr.html#af5f7b0ad4e6e6cc9d0ccd3673dd3b721"> 217</a></span> <a class="code hl_function" href="classwinstd_1_1bstr.html#af5f7b0ad4e6e6cc9d0ccd3673dd3b721">bstr</a>(_In_ LPCOLESTR src, _In_ UINT len) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> {</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> = SysAllocStringLen(src, len);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> }</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"><a class="line" href="classwinstd_1_1bstr.html#a47dbb28d3cd833edbd242d328b86ecde"> 226</a></span> <a class="code hl_function" href="classwinstd_1_1bstr.html#a47dbb28d3cd833edbd242d328b86ecde">bstr</a>(_In_ <span class="keyword">const</span> std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;src) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> {</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> = SysAllocStringLen(src.c_str(), (UINT)src.length());</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> }</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> </div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"><a class="line" href="classwinstd_1_1bstr.html#a317d3e0783e7d3de7cc6516964ea3f5e"> 236</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1bstr.html#a317d3e0783e7d3de7cc6516964ea3f5e">~bstr</a>()</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> {</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <a class="code hl_function" href="classwinstd_1_1bstr.html#a87edcb348af7d69ad86709e32b519870">free_internal</a>();</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> }</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> </div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"><a class="line" href="classwinstd_1_1bstr.html#aa6970921c6334a993f5f0fc1be5d54e3"> 247</a></span> UINT <a class="code hl_function" href="classwinstd_1_1bstr.html#aa6970921c6334a993f5f0fc1be5d54e3">length</a>() const noexcept</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> {</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">return</span> SysStringLen(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> }</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"><a class="line" href="classwinstd_1_1bstr.html#a87edcb348af7d69ad86709e32b519870"> 258</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1bstr.html#a87edcb348af7d69ad86709e32b519870">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> SysFreeString(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> }</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"><a class="line" href="classwinstd_1_1bstr.html#aea8518f7b0a9303f9e646c133c7d8039"> 272</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> <a class="code hl_function" href="classwinstd_1_1bstr.html#aea8518f7b0a9303f9e646c133c7d8039">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) <span class="keyword">const</span> <span class="keyword">noexcept</span> <span class="keyword">override</span></div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> {</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordflow">return</span> SysAllocStringLen(h, SysStringLen(h));</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> }</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> };</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> </div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span><span class="preprocessor"> #pragma warning(push)</span></div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="preprocessor"> #pragma warning(disable: 26432) </span><span class="comment">// Copy constructor and assignment operator are also present, but not detected by code analysis as they are using base type source object reference.</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html"> 283</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1variant.html">variant</a> : <span class="keyword">public</span> VARIANT</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> {</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ab5b8d68675d23082008f57e9439c3a19"> 289</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#ab5b8d68675d23082008f57e9439c3a19">variant</a>() noexcept</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> {</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> VariantInit(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> }</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> </div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ad8a47c76dcd37b9a869320994d9e58f5"> 297</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#ad8a47c76dcd37b9a869320994d9e58f5">variant</a>(_In_ <span class="keyword">const</span> VARIANT&amp; varSrc)</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> {</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> vt = VT_EMPTY;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keyword">const</span> HRESULT hr = VariantCopy(<span class="keyword">this</span>, &amp;varSrc);</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="keywordflow">if</span> (FAILED(hr))</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">throw</span> <a class="code hl_class" href="classwinstd_1_1com__runtime__error.html">winstd::com_runtime_error</a>(hr, <span class="stringliteral">&quot;VariantCopy failed.&quot;</span>);</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> }</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> </div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span><span class="preprocessor"> #pragma warning(suppress: 26495) </span><span class="comment">// vt member is initialized as a result of memcpy()</span></div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#adbe89a8e13dd00157ab1fdd90b1b67ac"> 309</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#adbe89a8e13dd00157ab1fdd90b1b67ac">variant</a>(_Inout_ VARIANT&amp;&amp; varSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> {</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> memcpy(<span class="keyword">this</span>, &amp;varSrc, <span class="keyword">sizeof</span>(VARIANT));</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> varSrc.vt = VT_EMPTY;</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> }</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> </div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#af0b2b43f646cc3efe14db8b9d8a4c1d6"> 318</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#af0b2b43f646cc3efe14db8b9d8a4c1d6">variant</a>(_In_ <span class="keywordtype">bool</span> bSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> {</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> vt = VT_BOOL;</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> boolVal = bSrc ? VARIANT_TRUE : VARIANT_FALSE;</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> }</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> </div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ae0a73f84187ad60f32a2001ce1ba1f8d"> 327</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#ae0a73f84187ad60f32a2001ce1ba1f8d">variant</a>(_In_ <span class="keywordtype">char</span> cSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> {</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> vt = VT_I1;</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> cVal = cSrc;</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> }</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> </div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a500314b7d65deff04c1339a3bfbaf40c"> 336</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a500314b7d65deff04c1339a3bfbaf40c">variant</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> {</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> vt = VT_UI1;</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> bVal = nSrc;</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> }</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> </div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a90a9a4e578a9b1d20acbc456a8b666b7"> 345</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a90a9a4e578a9b1d20acbc456a8b666b7">variant</a>(_In_ <span class="keywordtype">short</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> {</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> vt = VT_I2;</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> iVal = nSrc;</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> }</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> </div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a91e9fc562b5cc4cd27c1c9a682eb9085"> 354</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a91e9fc562b5cc4cd27c1c9a682eb9085">variant</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> {</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> vt = VT_UI2;</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> uiVal = nSrc;</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> }</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> </div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a3dd035fa775b6f75c446b646d65174c7"> 363</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a3dd035fa775b6f75c446b646d65174c7">variant</a>(_In_ <span class="keywordtype">int</span> nSrc, _In_ VARTYPE vtSrc = VT_I4) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> {</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> assert(vtSrc == VT_I4 || vtSrc == VT_INT);</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> vt = vtSrc;</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> intVal = nSrc;</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> }</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> </div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a6500b19e9fa43b5c0605f549d15054d2"> 373</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a6500b19e9fa43b5c0605f549d15054d2">variant</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nSrc, _In_ VARTYPE vtSrc = VT_UI4) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> {</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> assert(vtSrc == VT_UI4 || vtSrc == VT_UINT);</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> vt = vtSrc;</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> uintVal= nSrc;</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> }</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> </div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a5cca53d17432a3d40c5ccb8569dc31cf"> 383</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a5cca53d17432a3d40c5ccb8569dc31cf">variant</a>(_In_ <span class="keywordtype">long</span> nSrc, _In_ VARTYPE vtSrc = VT_I4) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> {</div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> assert(vtSrc == VT_I4 || vtSrc == VT_ERROR);</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> vt = vtSrc;</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> lVal = nSrc;</div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> }</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> </div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a57cd72d5caf58774a4737708b4432d4d"> 393</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a57cd72d5caf58774a4737708b4432d4d">variant</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> {</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> vt = VT_UI4;</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> ulVal = nSrc;</div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> }</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> </div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a52872aa5ff0279eb2d12a85d42e67fc4"> 402</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a52872aa5ff0279eb2d12a85d42e67fc4">variant</a>(_In_ <span class="keywordtype">float</span> fltSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> {</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> vt = VT_R4;</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> fltVal = fltSrc;</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> }</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> </div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a5a5acd6cff4a9f193f8582eab6ce673d"> 411</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a5a5acd6cff4a9f193f8582eab6ce673d">variant</a>(_In_ <span class="keywordtype">double</span> dblSrc, _In_ VARTYPE vtSrc = VT_R8) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> {</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> assert(vtSrc == VT_R8 || vtSrc == VT_DATE);</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> vt = vtSrc;</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> dblVal = dblSrc;</div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> }</div>
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> </div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a2d606237c1a891909b708a32b3bfdbf9"> 421</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a2d606237c1a891909b708a32b3bfdbf9">variant</a>(_In_ <span class="keywordtype">long</span> <span class="keywordtype">long</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> {</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> vt = VT_I8;</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> llVal = nSrc;</div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> }</div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> </div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a99560b48d48a24f978fb5bfbf64396ce"> 430</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a99560b48d48a24f978fb5bfbf64396ce">variant</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> {</div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> vt = VT_UI8;</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> ullVal = nSrc;</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> }</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> </div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ae5a7432031f89195062550805bc18a0a"> 439</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#ae5a7432031f89195062550805bc18a0a">variant</a>(_In_ CY cySrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> {</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> vt = VT_CY;</div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> cyVal.Hi = cySrc.Hi;</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> cyVal.Lo = cySrc.Lo;</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> }</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> </div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a2a90318b634577b6d4929bf67131ef7a"> 449</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a2a90318b634577b6d4929bf67131ef7a">variant</a>(_In_z_ LPCOLESTR lpszSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> {</div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> vt = VT_EMPTY;</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> *<span class="keyword">this</span> = lpszSrc;</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> }</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> </div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#aabf5f5e5d1147ab39e4df78159d3df2a"> 458</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#aabf5f5e5d1147ab39e4df78159d3df2a">variant</a>(_In_z_ BSTR <a class="code hl_class" href="classwinstd_1_1bstr.html">bstr</a>) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> {</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> vt = VT_EMPTY;</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> *<span class="keyword">this</span> = <a class="code hl_class" href="classwinstd_1_1bstr.html">bstr</a>;</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> }</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> </div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a26c20b800a261cff5fed1fe72848c29c"> 467</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#a26c20b800a261cff5fed1fe72848c29c">variant</a>(_In_opt_ IDispatch* pSrc)</div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> {</div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> vt = VT_DISPATCH;</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> pdispVal = pSrc;</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> </div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> <span class="keywordflow">if</span> (pdispVal != NULL)</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> pdispVal-&gt;AddRef();</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> }</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> </div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ae952c6fac0c8e1de3d7d5512e2573f7b"> 479</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#ae952c6fac0c8e1de3d7d5512e2573f7b">variant</a>(_In_opt_ IUnknown* pSrc)</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> {</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> vt = VT_UNKNOWN;</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> punkVal = pSrc;</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> </div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> <span class="keywordflow">if</span> (punkVal != NULL)</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> punkVal-&gt;AddRef();</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> }</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> </div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#af1956163d01e705a8514ed3314cf5e69"> 491</a></span> <a class="code hl_function" href="classwinstd_1_1variant.html#af1956163d01e705a8514ed3314cf5e69">variant</a>(_In_ <span class="keyword">const</span> SAFEARRAY *pSrc)</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> {</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> assert(pSrc != NULL);</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> </div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> LPSAFEARRAY pCopy;</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <span class="keyword">const</span> HRESULT hr = SafeArrayCopy(<span class="keyword">const_cast&lt;</span>LPSAFEARRAY<span class="keyword">&gt;</span>(pSrc), &amp;pCopy);</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <span class="keywordflow">if</span> (FAILED(hr))</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <span class="keywordflow">throw</span> <a class="code hl_class" href="classwinstd_1_1com__runtime__error.html">winstd::com_runtime_error</a>(hr, <span class="stringliteral">&quot;SafeArrayCopy failed.&quot;</span>);</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> </div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> SafeArrayGetVartype(<span class="keyword">const_cast&lt;</span>LPSAFEARRAY<span class="keyword">&gt;</span>(pSrc), &amp;vt);</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> vt |= VT_ARRAY;</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> parray = pCopy;</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> }</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> </div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a69b429a61582fc777b07541daad7887b"> 508</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1variant.html#a69b429a61582fc777b07541daad7887b">~variant</a>()</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> {</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> }</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> </div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#abe65600c073ddcf89faf02e066a9738f"> 516</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#abe65600c073ddcf89faf02e066a9738f">operator=</a>(_In_ <span class="keyword">const</span> VARIANT&amp; varSrc)</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> {</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;varSrc) {</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> <span class="keyword">const</span> HRESULT hr = VariantCopy(<span class="keyword">this</span>, &amp;varSrc);</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="keywordflow">if</span> (FAILED(hr))</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> <span class="keywordflow">throw</span> <a class="code hl_class" href="classwinstd_1_1com__runtime__error.html">winstd::com_runtime_error</a>(hr, <span class="stringliteral">&quot;VariantCopy failed.&quot;</span>);</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> }</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> }</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> </div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#af069314c298c59020052749418e1c940"> 529</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#af069314c298c59020052749418e1c940">operator=</a>(_Inout_ VARIANT&amp;&amp; varSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> {</div>
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;varSrc) {</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> memcpy(<span class="keyword">this</span>, &amp;varSrc, <span class="keyword">sizeof</span>(VARIANT));</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> varSrc.vt = VT_EMPTY;</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> }</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> }</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> </div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ac22ca62b7cafcd4dc9841680c0a12436"> 542</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#ac22ca62b7cafcd4dc9841680c0a12436">operator=</a>(_In_ <span class="keywordtype">bool</span> bSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> {</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <span class="keywordflow">if</span> (vt != VT_BOOL) {</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> vt = VT_BOOL;</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> }</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> boolVal = bSrc ? VARIANT_TRUE : VARIANT_FALSE;</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> }</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> </div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a39539bd84a533981524a41ff65780683"> 555</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a39539bd84a533981524a41ff65780683">operator=</a>(_In_ <span class="keywordtype">char</span> cSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> {</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> <span class="keywordflow">if</span> (vt != VT_I1) {</div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> vt = VT_I1;</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> }</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> cVal = cSrc;</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> }</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> </div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ae79092e97108c3fed94325d3d679fbb6"> 568</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#ae79092e97108c3fed94325d3d679fbb6">operator=</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> {</div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="keywordflow">if</span> (vt != VT_UI1) {</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> vt = VT_UI1;</div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> }</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> bVal = nSrc;</div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> }</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> </div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a12a6898c591406981754d09be9c60538"> 581</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a12a6898c591406981754d09be9c60538">operator=</a>(_In_ <span class="keywordtype">short</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> {</div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span> <span class="keywordflow">if</span> (vt != VT_I2) {</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> vt = VT_I2;</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> }</div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> iVal = nSrc;</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> }</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> </div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a38e77a19c8722042827632bda007357c"> 594</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a38e77a19c8722042827632bda007357c">operator=</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> {</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <span class="keywordflow">if</span> (vt != VT_UI2) {</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> vt = VT_UI2;</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> }</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> uiVal = nSrc;</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> }</div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> </div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a83be1ae666c090c5eb9f6ac0eca1ca6c"> 607</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a83be1ae666c090c5eb9f6ac0eca1ca6c">operator=</a>(_In_ <span class="keywordtype">int</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> {</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <span class="keywordflow">if</span> (vt != VT_I4) {</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> vt = VT_I4;</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> }</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> intVal = nSrc;</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> }</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> </div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ae9d6f63e7a4e59705e9ee8fa1df6cd29"> 620</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#ae9d6f63e7a4e59705e9ee8fa1df6cd29">operator=</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> {</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> <span class="keywordflow">if</span> (vt != VT_UI4) {</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> vt = VT_UI4;</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> }</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> uintVal= nSrc;</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> }</div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> </div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a7dfb5130045649ff9d51194d9927f445"> 633</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a7dfb5130045649ff9d51194d9927f445">operator=</a>(_In_ <span class="keywordtype">long</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> {</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> <span class="keywordflow">if</span> (vt != VT_I4) {</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> vt = VT_I4;</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> }</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> lVal = nSrc;</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> }</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> </div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ac6f0f3d0b3e908436fa99904996ac94a"> 646</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#ac6f0f3d0b3e908436fa99904996ac94a">operator=</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> {</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> <span class="keywordflow">if</span> (vt != VT_UI4) {</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> vt = VT_UI4;</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> }</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> ulVal = nSrc;</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> }</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> </div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a8b07463db82883a101faa45b341c1948"> 659</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a8b07463db82883a101faa45b341c1948">operator=</a>(_In_ <span class="keywordtype">long</span> <span class="keywordtype">long</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> {</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> <span class="keywordflow">if</span> (vt != VT_I8) {</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> vt = VT_I8;</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> }</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> llVal = nSrc;</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> }</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> </div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a1ce513ce87d06ec275316c288d49eb01"> 672</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a1ce513ce87d06ec275316c288d49eb01">operator=</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> nSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> {</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="keywordflow">if</span> (vt != VT_UI8) {</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> vt = VT_UI8;</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> }</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> ullVal = nSrc;</div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> </div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"> 680</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> }</div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"> 682</span> </div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a37b2ffd79fe6495c2c9b52556a45354e"> 686</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a37b2ffd79fe6495c2c9b52556a45354e">operator=</a>(_In_ <span class="keywordtype">float</span> fltSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> {</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> <span class="keywordflow">if</span> (vt != VT_R4) {</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> vt = VT_R4;</div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> }</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> fltVal = fltSrc;</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> }</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> </div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#abca411f6a72f6a7ecc117596251b442c"> 699</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#abca411f6a72f6a7ecc117596251b442c">operator=</a>(_In_ <span class="keywordtype">double</span> dblSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> {</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> <span class="keywordflow">if</span> (vt != VT_R8) {</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> vt = VT_R8;</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> }</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> dblVal = dblSrc;</div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> }</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> </div>
<div class="line"><a id="l00712" name="l00712"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a3fb364ce88eee71357376600857cb410"> 712</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a3fb364ce88eee71357376600857cb410">operator=</a>(_In_ CY cySrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00713" name="l00713"></a><span class="lineno"> 713</span> {</div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"> 714</span> <span class="keywordflow">if</span> (vt != VT_CY) {</div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> vt = VT_CY;</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> }</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> cyVal.Hi = cySrc.Hi;</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> cyVal.Lo = cySrc.Lo;</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> }</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> </div>
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ad855816c6daa12abd06e43beb08caac7"> 726</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#ad855816c6daa12abd06e43beb08caac7">operator=</a>(_In_z_ LPCOLESTR lpszSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00727" name="l00727"></a><span class="lineno"> 727</span> {</div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> vt = VT_BSTR;</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> bstrVal = SysAllocString(lpszSrc);</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"> 732</span> }</div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> </div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a4fc3255f55c166f7fd5754c7e809d666"> 737</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a4fc3255f55c166f7fd5754c7e809d666">operator=</a>(_Inout_opt_ IDispatch* pSrc)</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> {</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> vt = VT_DISPATCH;</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> pdispVal = pSrc;</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> <span class="keywordflow">if</span> (pdispVal != NULL)</div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> pdispVal-&gt;AddRef();</div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> }</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> </div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a875583fd50e4bc7cd922974a593f2e8d"> 750</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a875583fd50e4bc7cd922974a593f2e8d">operator=</a>(_Inout_opt_ IUnknown* pSrc)</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> {</div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> vt = VT_UNKNOWN;</div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span> punkVal = pSrc;</div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> <span class="keywordflow">if</span> (punkVal != NULL)</div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> punkVal-&gt;AddRef();</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> }</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> </div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a9e2f934ee0c118119e7e61ceccb44758"> 763</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a9e2f934ee0c118119e7e61ceccb44758">operator=</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* pbSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> {</div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> <span class="keywordflow">if</span> (vt != (VT_UI1|VT_BYREF)) {</div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> vt = VT_UI1|VT_BYREF;</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> }</div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> pbVal = pbSrc;</div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> }</div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> </div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a0693a3896f5b6fbb6ba30befb5da7d0b"> 776</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a0693a3896f5b6fbb6ba30befb5da7d0b">operator=</a>(_In_ <span class="keywordtype">short</span>* pnSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> {</div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> <span class="keywordflow">if</span> (vt != (VT_I2|VT_BYREF)) {</div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> vt = VT_I2|VT_BYREF;</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> }</div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> piVal = pnSrc;</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> }</div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> </div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#af3c84072dcf7c6b35a6350d2a2365d32"> 789</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#af3c84072dcf7c6b35a6350d2a2365d32">operator=</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>* pnSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> {</div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> <span class="keywordflow">if</span> (vt != (VT_UI2|VT_BYREF)) {</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> vt = VT_UI2|VT_BYREF;</div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> }</div>
<div class="line"><a id="l00795" name="l00795"></a><span class="lineno"> 795</span> puiVal = pnSrc;</div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> }</div>
<div class="line"><a id="l00798" name="l00798"></a><span class="lineno"> 798</span> </div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a31b35fbf0b8a3662573a1d8b01289c62"> 802</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a31b35fbf0b8a3662573a1d8b01289c62">operator=</a>(_In_ <span class="keywordtype">int</span>* pnSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> {</div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> <span class="keywordflow">if</span> (vt != (VT_I4|VT_BYREF)) {</div>
<div class="line"><a id="l00805" name="l00805"></a><span class="lineno"> 805</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00806" name="l00806"></a><span class="lineno"> 806</span> vt = VT_I4|VT_BYREF;</div>
<div class="line"><a id="l00807" name="l00807"></a><span class="lineno"> 807</span> }</div>
<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"> 808</span> pintVal = pnSrc;</div>
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"> 809</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00810" name="l00810"></a><span class="lineno"> 810</span> }</div>
<div class="line"><a id="l00811" name="l00811"></a><span class="lineno"> 811</span> </div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#af703f9de3fa0554c37d2f41c7dd407b7"> 815</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#af703f9de3fa0554c37d2f41c7dd407b7">operator=</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* pnSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> {</div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> <span class="keywordflow">if</span> (vt != (VT_UI4|VT_BYREF)) {</div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> vt = VT_UI4|VT_BYREF;</div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> }</div>
<div class="line"><a id="l00821" name="l00821"></a><span class="lineno"> 821</span> puintVal = pnSrc;</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> }</div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> </div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#af4a8867576603379317a452a2faf3f6f"> 828</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#af4a8867576603379317a452a2faf3f6f">operator=</a>(_In_ <span class="keywordtype">long</span>* pnSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00829" name="l00829"></a><span class="lineno"> 829</span> {</div>
<div class="line"><a id="l00830" name="l00830"></a><span class="lineno"> 830</span> <span class="keywordflow">if</span> (vt != (VT_I4|VT_BYREF)) {</div>
<div class="line"><a id="l00831" name="l00831"></a><span class="lineno"> 831</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"> 832</span> vt = VT_I4|VT_BYREF;</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> }</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> plVal = pnSrc;</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> }</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> </div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a70c3636a264c1d4935de33411b0ea6f2"> 841</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a70c3636a264c1d4935de33411b0ea6f2">operator=</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>* pnSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> {</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> <span class="keywordflow">if</span> (vt != (VT_UI4|VT_BYREF)) {</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> vt = VT_UI4|VT_BYREF;</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> }</div>
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"> 847</span> pulVal = pnSrc;</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> }</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> </div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ad071b63c62d7c29f96ba09ddf79599d3"> 854</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#ad071b63c62d7c29f96ba09ddf79599d3">operator=</a>(_In_ <span class="keywordtype">long</span> <span class="keywordtype">long</span>* pnSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> {</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> <span class="keywordflow">if</span> (vt != (VT_I8|VT_BYREF)) {</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> vt = VT_I8|VT_BYREF;</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> }</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> pllVal = pnSrc;</div>
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"> 861</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00862" name="l00862"></a><span class="lineno"> 862</span> }</div>
<div class="line"><a id="l00863" name="l00863"></a><span class="lineno"> 863</span> </div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a42dae05f2aebc59f4b9a8971ef661651"> 867</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a42dae05f2aebc59f4b9a8971ef661651">operator=</a>(_In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span>* pnSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> {</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> <span class="keywordflow">if</span> (vt != (VT_UI8|VT_BYREF)) {</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> vt = VT_UI8|VT_BYREF;</div>
<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"> 872</span> }</div>
<div class="line"><a id="l00873" name="l00873"></a><span class="lineno"> 873</span> pullVal = pnSrc;</div>
<div class="line"><a id="l00874" name="l00874"></a><span class="lineno"> 874</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"> 875</span> }</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> </div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#aed34b9e71663c0e54fac63b2493d81c9"> 880</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#aed34b9e71663c0e54fac63b2493d81c9">operator=</a>(_In_ <span class="keywordtype">float</span>* pfSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> {</div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span> <span class="keywordflow">if</span> (vt != (VT_R4|VT_BYREF)) {</div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"> 884</span> vt = VT_R4|VT_BYREF;</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> }</div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> pfltVal = pfSrc;</div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> }</div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> </div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a060a0296bb201e8e571ca4aab70f35ed"> 893</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a060a0296bb201e8e571ca4aab70f35ed">operator=</a>(_In_ <span class="keywordtype">double</span>* pfSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> {</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> <span class="keywordflow">if</span> (vt != (VT_R8|VT_BYREF)) {</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> vt = VT_R8|VT_BYREF;</div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> }</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> pdblVal = pfSrc;</div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00901" name="l00901"></a><span class="lineno"> 901</span> }</div>
<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"> 902</span> </div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a8b829b758e6e859508a0f0f3817aeaa8"> 906</a></span> <a class="code hl_class" href="classwinstd_1_1variant.html">variant</a>&amp; <a class="code hl_function" href="classwinstd_1_1variant.html#a8b829b758e6e859508a0f0f3817aeaa8">operator=</a>(_In_ <span class="keyword">const</span> SAFEARRAY *pSrc) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> {</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> assert(pSrc != NULL);</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> VariantClear(<span class="keyword">this</span>);</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> </div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> LPSAFEARRAY pCopy;</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> <span class="keyword">const</span> HRESULT hr = SafeArrayCopy(<span class="keyword">const_cast&lt;</span>LPSAFEARRAY<span class="keyword">&gt;</span>(pSrc), &amp;pCopy);</div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span> <span class="keywordflow">if</span> (SUCCEEDED(hr)) {</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> SafeArrayGetVartype(<span class="keyword">const_cast&lt;</span>LPSAFEARRAY<span class="keyword">&gt;</span>(pSrc), &amp;vt);</div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> vt |= VT_ARRAY;</div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> parray = pCopy;</div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00918" name="l00918"></a><span class="lineno"> 918</span> assert(0);</div>
<div class="line"><a id="l00919" name="l00919"></a><span class="lineno"> 919</span> </div>
<div class="line"><a id="l00920" name="l00920"></a><span class="lineno"> 920</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"> 921</span> }</div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> </div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a9e1f77a641cfa4388a1c7d91b95c7a57"> 932</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1variant.html#a9e1f77a641cfa4388a1c7d91b95c7a57">operator==</a>(_In_ <span class="keyword">const</span> VARIANT&amp; varSrc) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> {</div>
<div class="line"><a id="l00934" name="l00934"></a><span class="lineno"> 934</span> <span class="keywordflow">if</span> (vt == VT_NULL &amp;&amp; varSrc.vt == VT_NULL) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00935" name="l00935"></a><span class="lineno"> 935</span> <span class="keywordflow">if</span> (vt != varSrc.vt) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00936" name="l00936"></a><span class="lineno"> 936</span> <span class="keywordflow">return</span> compare(<span class="keyword">static_cast&lt;</span><span class="keyword">const </span>VARIANT&amp;<span class="keyword">&gt;</span>(*<span class="keyword">this</span>), varSrc, LOCALE_USER_DEFAULT, 0) == <span class="keyword">static_cast&lt;</span>HRESULT<span class="keyword">&gt;</span>(VARCMP_EQ);</div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"> 937</span> }</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> </div>
<div class="line"><a id="l00947" name="l00947"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a8bde27b765d17663ea36f9fb84a530af"> 947</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1variant.html#a8bde27b765d17663ea36f9fb84a530af">operator!=</a>(_In_ <span class="keyword">const</span> VARIANT&amp; varSrc) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00948" name="l00948"></a><span class="lineno"> 948</span> {</div>
<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"> 949</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="classwinstd_1_1variant.html#a9e1f77a641cfa4388a1c7d91b95c7a57">operator==</a>(varSrc);</div>
<div class="line"><a id="l00950" name="l00950"></a><span class="lineno"> 950</span> }</div>
<div class="line"><a id="l00951" name="l00951"></a><span class="lineno"> 951</span> </div>
<div class="line"><a id="l00960" name="l00960"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a6e2bed5ef96a45e1dcabced3804d2a37"> 960</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1variant.html#a6e2bed5ef96a45e1dcabced3804d2a37">operator&lt;</a>(_In_ <span class="keyword">const</span> VARIANT&amp; varSrc) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"> 961</span> {</div>
<div class="line"><a id="l00962" name="l00962"></a><span class="lineno"> 962</span> <span class="keywordflow">if</span> (vt == VT_NULL &amp;&amp; varSrc.vt == VT_NULL) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00963" name="l00963"></a><span class="lineno"> 963</span> <span class="keywordflow">return</span> compare(<span class="keyword">static_cast&lt;</span><span class="keyword">const </span>VARIANT&amp;<span class="keyword">&gt;</span>(*<span class="keyword">this</span>), varSrc, LOCALE_USER_DEFAULT, 0)== <span class="keyword">static_cast&lt;</span>HRESULT<span class="keyword">&gt;</span>(VARCMP_LT);</div>
<div class="line"><a id="l00964" name="l00964"></a><span class="lineno"> 964</span> }</div>
<div class="line"><a id="l00965" name="l00965"></a><span class="lineno"> 965</span> </div>
<div class="line"><a id="l00974" name="l00974"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a3585d11e34e2358a628155e6e6fe3904"> 974</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1variant.html#a3585d11e34e2358a628155e6e6fe3904">operator&gt;</a>(_In_ <span class="keyword">const</span> VARIANT&amp; varSrc) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00975" name="l00975"></a><span class="lineno"> 975</span> {</div>
<div class="line"><a id="l00976" name="l00976"></a><span class="lineno"> 976</span> <span class="keywordflow">if</span> (vt == VT_NULL &amp;&amp; varSrc.vt == VT_NULL) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00977" name="l00977"></a><span class="lineno"> 977</span> <span class="keywordflow">return</span> compare(<span class="keyword">static_cast&lt;</span><span class="keyword">const </span>VARIANT&amp;<span class="keyword">&gt;</span>(*<span class="keyword">this</span>), varSrc, LOCALE_USER_DEFAULT, 0)== <span class="keyword">static_cast&lt;</span>HRESULT<span class="keyword">&gt;</span>(VARCMP_GT);</div>
<div class="line"><a id="l00978" name="l00978"></a><span class="lineno"> 978</span> }</div>
<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"> 979</span> </div>
<div class="line"><a id="l00988" name="l00988"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ac62778c2de1a28e3089d096aa264a4ec"> 988</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1variant.html#ac62778c2de1a28e3089d096aa264a4ec">operator&lt;=</a>(_In_ <span class="keyword">const</span> VARIANT&amp; varSrc) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00989" name="l00989"></a><span class="lineno"> 989</span> {</div>
<div class="line"><a id="l00990" name="l00990"></a><span class="lineno"> 990</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="classwinstd_1_1variant.html#a3585d11e34e2358a628155e6e6fe3904">operator&gt;</a>(varSrc);</div>
<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"> 991</span> }</div>
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span> </div>
<div class="line"><a id="l01001" name="l01001"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#a29e844f3313d0337e4ba6f50308f4662"> 1001</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1variant.html#a29e844f3313d0337e4ba6f50308f4662">operator&gt;=</a>(_In_ <span class="keyword">const</span> VARIANT&amp; varSrc) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l01002" name="l01002"></a><span class="lineno"> 1002</span> {</div>
<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"> 1003</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="classwinstd_1_1variant.html#a6e2bed5ef96a45e1dcabced3804d2a37">operator&lt;</a>(varSrc);</div>
<div class="line"><a id="l01004" name="l01004"></a><span class="lineno"> 1004</span> }</div>
<div class="line"><a id="l01005" name="l01005"></a><span class="lineno"> 1005</span> </div>
<div class="line"><a id="l01011" name="l01011"></a><span class="lineno"><a class="line" href="classwinstd_1_1variant.html#ac22bafa14170d08098a643e8e7ce31d7"> 1011</a></span> HRESULT <a class="code hl_function" href="classwinstd_1_1variant.html#ac22bafa14170d08098a643e8e7ce31d7">change_type</a>(_In_ VARTYPE _vt, _In_opt_ USHORT wFlags = 0) noexcept</div>
<div class="line"><a id="l01012" name="l01012"></a><span class="lineno"> 1012</span> {</div>
<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"> 1013</span> <span class="keywordflow">return</span> VariantChangeType(<span class="keyword">this</span>, <span class="keyword">this</span>, wFlags, _vt);</div>
<div class="line"><a id="l01014" name="l01014"></a><span class="lineno"> 1014</span> }</div>
<div class="line"><a id="l01015" name="l01015"></a><span class="lineno"> 1015</span> </div>
<div class="line"><a id="l01016" name="l01016"></a><span class="lineno"> 1016</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l01018" name="l01018"></a><span class="lineno"> 1018</span> HRESULT compare(_In_ <span class="keyword">const</span> VARIANT &amp;varLeft, _In_ <span class="keyword">const</span> VARIANT &amp;varRight, _In_ LCID lcid, _In_ ULONG dwFlags) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l01019" name="l01019"></a><span class="lineno"> 1019</span> {</div>
<div class="line"><a id="l01020" name="l01020"></a><span class="lineno"> 1020</span> <span class="keywordflow">switch</span>(vt) {</div>
<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"> 1021</span> <span class="keywordflow">case</span> VT_I1: <span class="keywordflow">return</span> varLeft.cVal == varRight.cVal ? VARCMP_EQ : varLeft.cVal &gt; varRight.cVal ? VARCMP_GT : VARCMP_LT;</div>
<div class="line"><a id="l01022" name="l01022"></a><span class="lineno"> 1022</span> <span class="keywordflow">case</span> VT_UI2: <span class="keywordflow">return</span> varLeft.uiVal == varRight.uiVal ? VARCMP_EQ : varLeft.uiVal &gt; varRight.uiVal ? VARCMP_GT : VARCMP_LT;</div>
<div class="line"><a id="l01023" name="l01023"></a><span class="lineno"> 1023</span> <span class="keywordflow">case</span> VT_UI4: <span class="keywordflow">return</span> varLeft.uintVal == varRight.uintVal ? VARCMP_EQ : varLeft.uintVal &gt; varRight.uintVal ? VARCMP_GT : VARCMP_LT;</div>
<div class="line"><a id="l01024" name="l01024"></a><span class="lineno"> 1024</span> <span class="keywordflow">case</span> VT_UI8: <span class="keywordflow">return</span> varLeft.ullVal == varRight.ullVal ? VARCMP_EQ : varLeft.ullVal &gt; varRight.ullVal ? VARCMP_GT : VARCMP_LT;</div>
<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"> 1025</span> <span class="keywordflow">default</span>: <span class="keywordflow">return</span> VarCmp(<span class="keyword">const_cast&lt;</span>LPVARIANT<span class="keyword">&gt;</span>(&amp;varLeft), <span class="keyword">const_cast&lt;</span>LPVARIANT<span class="keyword">&gt;</span>(&amp;varRight), lcid, dwFlags);</div>
<div class="line"><a id="l01026" name="l01026"></a><span class="lineno"> 1026</span> }</div>
<div class="line"><a id="l01027" name="l01027"></a><span class="lineno"> 1027</span> }</div>
<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"> 1029</span> };</div>
<div class="line"><a id="l01030" name="l01030"></a><span class="lineno"> 1030</span><span class="preprocessor"> #pragma warning(pop)</span></div>
<div class="line"><a id="l01031" name="l01031"></a><span class="lineno"> 1031</span> </div>
<div class="line"><a id="l01035" name="l01035"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__initializer.html"> 1035</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1com__initializer.html">com_initializer</a></div>
<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"> 1036</span> {</div>
<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"> 1037</span> <a class="code hl_define" href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a>(<a class="code hl_class" href="classwinstd_1_1com__initializer.html">com_initializer</a>)</div>
<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"> 1038</span> <a class="code hl_define" href="group___win_std_general.html#gac91fa8d79c860b1fdbba65b6a322f760">WINSTD_NONMOVABLE</a>(<a class="code hl_class" href="classwinstd_1_1com__initializer.html">com_initializer</a>)</div>
<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> </div>
<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"> 1040</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__initializer.html#a1cf02a325b1064e1dc37145d3be7924d"> 1046</a></span> <a class="code hl_function" href="classwinstd_1_1com__initializer.html#a1cf02a325b1064e1dc37145d3be7924d">com_initializer</a>(_In_opt_ LPVOID pvReserved) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> {</div>
<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"> 1048</span> <a class="code hl_variable" href="classwinstd_1_1com__initializer.html#ae9478fd05b5b1c82e0f762c2b517155b">m_result</a> = CoInitialize(pvReserved);</div>
<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"> 1049</span> }</div>
<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"> 1050</span> </div>
<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__initializer.html#a3661b5ceac98e049b72ed2a6fd708b73"> 1056</a></span> <a class="code hl_function" href="classwinstd_1_1com__initializer.html#a3661b5ceac98e049b72ed2a6fd708b73">com_initializer</a>(_In_opt_ LPVOID pvReserved, _In_ DWORD dwCoInit) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> {</div>
<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"> 1058</span> <a class="code hl_variable" href="classwinstd_1_1com__initializer.html#ae9478fd05b5b1c82e0f762c2b517155b">m_result</a> = CoInitializeEx(pvReserved, dwCoInit);</div>
<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"> 1059</span> }</div>
<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"> 1060</span> </div>
<div class="line"><a id="l01066" name="l01066"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__initializer.html#ad53a7697dfaf83d4832f8a57a4cf00f6"> 1066</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1com__initializer.html#ad53a7697dfaf83d4832f8a57a4cf00f6">~com_initializer</a>()</div>
<div class="line"><a id="l01067" name="l01067"></a><span class="lineno"> 1067</span> {</div>
<div class="line"><a id="l01068" name="l01068"></a><span class="lineno"> 1068</span> <span class="keywordflow">if</span> (SUCCEEDED(<a class="code hl_variable" href="classwinstd_1_1com__initializer.html#ae9478fd05b5b1c82e0f762c2b517155b">m_result</a>))</div>
<div class="line"><a id="l01069" name="l01069"></a><span class="lineno"> 1069</span> CoUninitialize();</div>
<div class="line"><a id="l01070" name="l01070"></a><span class="lineno"> 1070</span> }</div>
<div class="line"><a id="l01071" name="l01071"></a><span class="lineno"> 1071</span> </div>
<div class="line"><a id="l01077" name="l01077"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__initializer.html#ac3c997f810e8439096d8ca14fecb5b7d"> 1077</a></span> HRESULT <a class="code hl_function" href="classwinstd_1_1com__initializer.html#ac3c997f810e8439096d8ca14fecb5b7d">status</a>() const noexcept</div>
<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"> 1078</span> {</div>
<div class="line"><a id="l01079" name="l01079"></a><span class="lineno"> 1079</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1com__initializer.html#ae9478fd05b5b1c82e0f762c2b517155b">m_result</a>;</div>
<div class="line"><a id="l01080" name="l01080"></a><span class="lineno"> 1080</span> }</div>
<div class="line"><a id="l01081" name="l01081"></a><span class="lineno"> 1081</span> </div>
<div class="line"><a id="l01082" name="l01082"></a><span class="lineno"> 1082</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"><a class="line" href="classwinstd_1_1com__initializer.html#ae9478fd05b5b1c82e0f762c2b517155b"> 1083</a></span> HRESULT <a class="code hl_variable" href="classwinstd_1_1com__initializer.html#ae9478fd05b5b1c82e0f762c2b517155b">m_result</a>; </div>
<div class="line"><a id="l01084" name="l01084"></a><span class="lineno"> 1084</span> };</div>
<div class="line"><a id="l01085" name="l01085"></a><span class="lineno"> 1085</span> </div>
<div class="line"><a id="l01087" name="l01087"></a><span class="lineno"> 1087</span>}</div>
<div class="ttc" id="aclasswinstd_1_1bstr_html"><div class="ttname"><a href="classwinstd_1_1bstr.html">winstd::bstr</a></div><div class="ttdoc">BSTR string wrapper.</div><div class="ttdef"><b>Definition:</b> COM.h:202</div></div>
<div class="ttc" id="aclasswinstd_1_1bstr_html_a317d3e0783e7d3de7cc6516964ea3f5e"><div class="ttname"><a href="classwinstd_1_1bstr.html#a317d3e0783e7d3de7cc6516964ea3f5e">winstd::bstr::~bstr</a></div><div class="ttdeci">virtual ~bstr()</div><div class="ttdoc">Destroys the string.</div><div class="ttdef"><b>Definition:</b> COM.h:236</div></div>
<div class="ttc" id="aclasswinstd_1_1bstr_html_a47dbb28d3cd833edbd242d328b86ecde"><div class="ttname"><a href="classwinstd_1_1bstr.html#a47dbb28d3cd833edbd242d328b86ecde">winstd::bstr::bstr</a></div><div class="ttdeci">bstr(_In_ const std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;src) noexcept</div><div class="ttdoc">Constructs BSTR from std::basic_string.</div><div class="ttdef"><b>Definition:</b> COM.h:226</div></div>
<div class="ttc" id="aclasswinstd_1_1bstr_html_a87edcb348af7d69ad86709e32b519870"><div class="ttname"><a href="classwinstd_1_1bstr.html#a87edcb348af7d69ad86709e32b519870">winstd::bstr::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Destroys the string.</div><div class="ttdef"><b>Definition:</b> COM.h:258</div></div>
<div class="ttc" id="aclasswinstd_1_1bstr_html_a9fd6b7039c624f1265c7787424f65843"><div class="ttname"><a href="classwinstd_1_1bstr.html#a9fd6b7039c624f1265c7787424f65843">winstd::bstr::bstr</a></div><div class="ttdeci">bstr(_In_ LPCOLESTR src) noexcept</div><div class="ttdoc">Constructs BSTR from OLE string.</div><div class="ttdef"><b>Definition:</b> COM.h:209</div></div>
<div class="ttc" id="aclasswinstd_1_1bstr_html_aa6970921c6334a993f5f0fc1be5d54e3"><div class="ttname"><a href="classwinstd_1_1bstr.html#aa6970921c6334a993f5f0fc1be5d54e3">winstd::bstr::length</a></div><div class="ttdeci">UINT length() const noexcept</div><div class="ttdoc">Returns the length of the string.</div><div class="ttdef"><b>Definition:</b> COM.h:247</div></div>
<div class="ttc" id="aclasswinstd_1_1bstr_html_aea8518f7b0a9303f9e646c133c7d8039"><div class="ttname"><a href="classwinstd_1_1bstr.html#aea8518f7b0a9303f9e646c133c7d8039">winstd::bstr::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(_In_ handle_type h) const noexcept override</div><div class="ttdoc">Duplicates the string.</div><div class="ttdef"><b>Definition:</b> COM.h:272</div></div>
<div class="ttc" id="aclasswinstd_1_1bstr_html_af5f7b0ad4e6e6cc9d0ccd3673dd3b721"><div class="ttname"><a href="classwinstd_1_1bstr.html#af5f7b0ad4e6e6cc9d0ccd3673dd3b721">winstd::bstr::bstr</a></div><div class="ttdeci">bstr(_In_ LPCOLESTR src, _In_ UINT len) noexcept</div><div class="ttdoc">Constructs BSTR from OLE string with length.</div><div class="ttdef"><b>Definition:</b> COM.h:217</div></div>
<div class="ttc" id="aclasswinstd_1_1com__initializer_html"><div class="ttname"><a href="classwinstd_1_1com__initializer.html">winstd::com_initializer</a></div><div class="ttdoc">Context scope automatic COM (un)initialization.</div><div class="ttdef"><b>Definition:</b> COM.h:1036</div></div>
<div class="ttc" id="aclasswinstd_1_1com__initializer_html_a1cf02a325b1064e1dc37145d3be7924d"><div class="ttname"><a href="classwinstd_1_1com__initializer.html#a1cf02a325b1064e1dc37145d3be7924d">winstd::com_initializer::com_initializer</a></div><div class="ttdeci">com_initializer(_In_opt_ LPVOID pvReserved) noexcept</div><div class="ttdoc">Initializes the COM library on the current thread and identifies the concurrency model as single-thre...</div><div class="ttdef"><b>Definition:</b> COM.h:1046</div></div>
<div class="ttc" id="aclasswinstd_1_1com__initializer_html_a3661b5ceac98e049b72ed2a6fd708b73"><div class="ttname"><a href="classwinstd_1_1com__initializer.html#a3661b5ceac98e049b72ed2a6fd708b73">winstd::com_initializer::com_initializer</a></div><div class="ttdeci">com_initializer(_In_opt_ LPVOID pvReserved, _In_ DWORD dwCoInit) noexcept</div><div class="ttdoc">Initializes the COM library for use by the calling thread, sets the thread's concurrency model,...</div><div class="ttdef"><b>Definition:</b> COM.h:1056</div></div>
<div class="ttc" id="aclasswinstd_1_1com__initializer_html_ac3c997f810e8439096d8ca14fecb5b7d"><div class="ttname"><a href="classwinstd_1_1com__initializer.html#ac3c997f810e8439096d8ca14fecb5b7d">winstd::com_initializer::status</a></div><div class="ttdeci">HRESULT status() const noexcept</div><div class="ttdoc">Return result of CoInitialize() call.</div><div class="ttdef"><b>Definition:</b> COM.h:1077</div></div>
<div class="ttc" id="aclasswinstd_1_1com__initializer_html_ad53a7697dfaf83d4832f8a57a4cf00f6"><div class="ttname"><a href="classwinstd_1_1com__initializer.html#ad53a7697dfaf83d4832f8a57a4cf00f6">winstd::com_initializer::~com_initializer</a></div><div class="ttdeci">virtual ~com_initializer()</div><div class="ttdoc">Uninitializes COM.</div><div class="ttdef"><b>Definition:</b> COM.h:1066</div></div>
<div class="ttc" id="aclasswinstd_1_1com__initializer_html_ae9478fd05b5b1c82e0f762c2b517155b"><div class="ttname"><a href="classwinstd_1_1com__initializer.html#ae9478fd05b5b1c82e0f762c2b517155b">winstd::com_initializer::m_result</a></div><div class="ttdeci">HRESULT m_result</div><div class="ttdoc">Result of CoInitialize call.</div><div class="ttdef"><b>Definition:</b> COM.h:1083</div></div>
<div class="ttc" id="aclasswinstd_1_1com__obj_html"><div class="ttname"><a href="classwinstd_1_1com__obj.html">winstd::com_obj</a></div><div class="ttdoc">COM object wrapper template.</div><div class="ttdef"><b>Definition:</b> COM.h:82</div></div>
<div class="ttc" id="aclasswinstd_1_1com__obj_html_a028b86f770253f74a62ca3eaebb14de5"><div class="ttname"><a href="classwinstd_1_1com__obj.html#a028b86f770253f74a62ca3eaebb14de5">winstd::com_obj::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Releases the object by decrementing reference counter.</div><div class="ttdef"><b>Definition:</b> COM.h:177</div></div>
<div class="ttc" id="aclasswinstd_1_1com__obj_html_a2e16632274f2014e45f3cf593edbf110"><div class="ttname"><a href="classwinstd_1_1com__obj.html#a2e16632274f2014e45f3cf593edbf110">winstd::com_obj::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(_In_ handle_type h) const noexcept override</div><div class="ttdoc">Duplicates the object by incrementing the reference counter.</div><div class="ttdef"><b>Definition:</b> COM.h:191</div></div>
<div class="ttc" id="aclasswinstd_1_1com__obj_html_a544fcc007dd4588b257867d2e2a805b0"><div class="ttname"><a href="classwinstd_1_1com__obj.html#a544fcc007dd4588b257867d2e2a805b0">winstd::com_obj::com_obj</a></div><div class="ttdeci">com_obj(_In_ com_obj&lt; _Other &gt; &amp;other)</div><div class="ttdoc">Queries the object for another interface and creates new class with it.</div><div class="ttdef"><b>Definition:</b> COM.h:114</div></div>
<div class="ttc" id="aclasswinstd_1_1com__obj_html_a5891697029f9fe6fb93113bd8dd06c25"><div class="ttname"><a href="classwinstd_1_1com__obj.html#a5891697029f9fe6fb93113bd8dd06c25">winstd::com_obj::com_obj</a></div><div class="ttdeci">com_obj(_In_ _Other *other)</div><div class="ttdoc">Queries the object for another interface and creates new class with it.</div><div class="ttdef"><b>Definition:</b> COM.h:102</div></div>
<div class="ttc" id="aclasswinstd_1_1com__obj_html_a778ef4c90c978b2dfb9a3a5d9325ce8a"><div class="ttname"><a href="classwinstd_1_1com__obj.html#a778ef4c90c978b2dfb9a3a5d9325ce8a">winstd::com_obj::create</a></div><div class="ttdeci">HRESULT create(_In_ REFCLSID rclsid, _In_opt_ LPUNKNOWN pUnkOuter=NULL, _In_ DWORD dwClsContext=CLSCTX_ALL)</div><div class="ttdoc">Creates a new object.</div><div class="ttdef"><b>Definition:</b> COM.h:133</div></div>
<div class="ttc" id="aclasswinstd_1_1com__obj_html_a91383e6e26266b0d3803c8594b8c5149"><div class="ttname"><a href="classwinstd_1_1com__obj.html#a91383e6e26266b0d3803c8594b8c5149">winstd::com_obj::~com_obj</a></div><div class="ttdeci">virtual ~com_obj()</div><div class="ttdoc">Releases object.</div><div class="ttdef"><b>Definition:</b> COM.h:122</div></div>
<div class="ttc" id="aclasswinstd_1_1com__obj_html_acb2f90ae927378156683517718aa1d1d"><div class="ttname"><a href="classwinstd_1_1com__obj.html#acb2f90ae927378156683517718aa1d1d">winstd::com_obj::com_obj</a></div><div class="ttdeci">com_obj(_In_ REFCLSID rclsid, _In_opt_ LPUNKNOWN pUnkOuter=NULL, DWORD dwClsContext=CLSCTX_ALL)</div><div class="ttdoc">Constructs a new object and creates a new class with it.</div><div class="ttdef"><b>Definition:</b> COM.h:91</div></div>
<div class="ttc" id="aclasswinstd_1_1com__obj_html_adaf8aacd14f27142cdb99edff9ac07a9"><div class="ttname"><a href="classwinstd_1_1com__obj.html#adaf8aacd14f27142cdb99edff9ac07a9">winstd::com_obj::query_interface</a></div><div class="ttdeci">HRESULT query_interface(_Out_ _Other **h) const</div><div class="ttdoc">Queries the object for another interface.</div><div class="ttdef"><b>Definition:</b> COM.h:148</div></div>
<div class="ttc" id="aclasswinstd_1_1com__obj_html_adbce2534b586fb53bce5cd2e5508dbb3"><div class="ttname"><a href="classwinstd_1_1com__obj.html#adbce2534b586fb53bce5cd2e5508dbb3">winstd::com_obj::query_interface</a></div><div class="ttdeci">HRESULT query_interface(_Out_ com_obj&lt; _Other &gt; &amp;h) const</div><div class="ttdoc">Queries the object for another interface.</div><div class="ttdef"><b>Definition:</b> COM.h:161</div></div>
<div class="ttc" id="aclasswinstd_1_1com__runtime__error_html"><div class="ttname"><a href="classwinstd_1_1com__runtime__error.html">winstd::com_runtime_error</a></div><div class="ttdoc">COM runtime error.</div><div class="ttdef"><b>Definition:</b> COM.h:24</div></div>
<div class="ttc" id="aclasswinstd_1_1com__runtime__error_html_a948a502b8e2c088192c7a8f28b93f0cf"><div class="ttname"><a href="classwinstd_1_1com__runtime__error.html#a948a502b8e2c088192c7a8f28b93f0cf">winstd::com_runtime_error::com_runtime_error</a></div><div class="ttdeci">com_runtime_error(_In_ error_type num, _In_opt_z_ const char *msg=nullptr)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition:</b> COM.h:42</div></div>
<div class="ttc" id="aclasswinstd_1_1com__runtime__error_html_ac5974f81a49bc2cf13c048ab1e93a883"><div class="ttname"><a href="classwinstd_1_1com__runtime__error.html#ac5974f81a49bc2cf13c048ab1e93a883">winstd::com_runtime_error::com_runtime_error</a></div><div class="ttdeci">com_runtime_error(_In_ error_type num, _In_ const std::string &amp;msg)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition:</b> COM.h:32</div></div>
<div class="ttc" id="aclasswinstd_1_1dplhandle_html"><div class="ttname"><a href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a></div><div class="ttdoc">Base abstract template class to support object handle keeping for objects that support handle duplica...</div><div class="ttdef"><b>Definition:</b> Common.h:844</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a3dda19199ecfbc378c932e7d84d0ea81"><div class="ttname"><a href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">winstd::handle&lt; T *, INVAL &gt;::handle_type</a></div><div class="ttdeci">T * handle_type</div><div class="ttdoc">Datatype of the object handle this template class handles.</div><div class="ttdef"><b>Definition:</b> Common.h:585</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a98d09f9c2970890a5c83a0c2aedd3a30"><div class="ttname"><a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">winstd::handle&lt; T *, INVAL &gt;::attach</a></div><div class="ttdeci">void attach(_In_opt_ handle_type h) noexcept</div><div class="ttdoc">Sets a new object handle for the class.</div><div class="ttdef"><b>Definition:</b> Common.h:794</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_aabde3f16fd98b06b3b0282ef7806eb59"><div class="ttname"><a href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">winstd::handle&lt; T *, INVAL &gt;::m_h</a></div><div class="ttdeci">handle_type m_h</div><div class="ttdoc">Object handle.</div><div class="ttdef"><b>Definition:</b> Common.h:833</div></div>
<div class="ttc" id="aclasswinstd_1_1num__runtime__error_html"><div class="ttname"><a href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error</a></div><div class="ttdoc">Numerical runtime error.</div><div class="ttdef"><b>Definition:</b> Common.h:1390</div></div>
<div class="ttc" id="aclasswinstd_1_1num__runtime__error_html_a6fa2de87d0151b3ad9cac58f838852e0"><div class="ttname"><a href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">winstd::num_runtime_error&lt; HRESULT &gt;::error_type</a></div><div class="ttdeci">HRESULT error_type</div><div class="ttdoc">Error number type.</div><div class="ttdef"><b>Definition:</b> Common.h:1392</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html"><div class="ttname"><a href="classwinstd_1_1variant.html">winstd::variant</a></div><div class="ttdoc">VARIANT struct wrapper.</div><div class="ttdef"><b>Definition:</b> COM.h:284</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a060a0296bb201e8e571ca4aab70f35ed"><div class="ttname"><a href="classwinstd_1_1variant.html#a060a0296bb201e8e571ca4aab70f35ed">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ double *pfSrc) noexcept</div><div class="ttdoc">Copy from double reference.</div><div class="ttdef"><b>Definition:</b> COM.h:893</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a0693a3896f5b6fbb6ba30befb5da7d0b"><div class="ttname"><a href="classwinstd_1_1variant.html#a0693a3896f5b6fbb6ba30befb5da7d0b">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ short *pnSrc) noexcept</div><div class="ttdoc">Copy from short reference.</div><div class="ttdef"><b>Definition:</b> COM.h:776</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a12a6898c591406981754d09be9c60538"><div class="ttname"><a href="classwinstd_1_1variant.html#a12a6898c591406981754d09be9c60538">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ short nSrc) noexcept</div><div class="ttdoc">Copy from short value.</div><div class="ttdef"><b>Definition:</b> COM.h:581</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a1ce513ce87d06ec275316c288d49eb01"><div class="ttname"><a href="classwinstd_1_1variant.html#a1ce513ce87d06ec275316c288d49eb01">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ unsigned long long nSrc) noexcept</div><div class="ttdoc">Copy from unsigned long long value.</div><div class="ttdef"><b>Definition:</b> COM.h:672</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a26c20b800a261cff5fed1fe72848c29c"><div class="ttname"><a href="classwinstd_1_1variant.html#a26c20b800a261cff5fed1fe72848c29c">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_opt_ IDispatch *pSrc)</div><div class="ttdoc">Constructs VARIANT from IDispatch.</div><div class="ttdef"><b>Definition:</b> COM.h:467</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a29e844f3313d0337e4ba6f50308f4662"><div class="ttname"><a href="classwinstd_1_1variant.html#a29e844f3313d0337e4ba6f50308f4662">winstd::variant::operator&gt;=</a></div><div class="ttdeci">bool operator&gt;=(_In_ const VARIANT &amp;varSrc) const noexcept</div><div class="ttdoc">Is variant greater than or equal to?</div><div class="ttdef"><b>Definition:</b> COM.h:1001</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a2a90318b634577b6d4929bf67131ef7a"><div class="ttname"><a href="classwinstd_1_1variant.html#a2a90318b634577b6d4929bf67131ef7a">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_z_ LPCOLESTR lpszSrc) noexcept</div><div class="ttdoc">Constructs VARIANT from OLE string.</div><div class="ttdef"><b>Definition:</b> COM.h:449</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a2d606237c1a891909b708a32b3bfdbf9"><div class="ttname"><a href="classwinstd_1_1variant.html#a2d606237c1a891909b708a32b3bfdbf9">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ long long nSrc) noexcept</div><div class="ttdoc">Constructs VARIANT from 64-bit integer.</div><div class="ttdef"><b>Definition:</b> COM.h:421</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a31b35fbf0b8a3662573a1d8b01289c62"><div class="ttname"><a href="classwinstd_1_1variant.html#a31b35fbf0b8a3662573a1d8b01289c62">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ int *pnSrc) noexcept</div><div class="ttdoc">Copy from int reference.</div><div class="ttdef"><b>Definition:</b> COM.h:802</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a3585d11e34e2358a628155e6e6fe3904"><div class="ttname"><a href="classwinstd_1_1variant.html#a3585d11e34e2358a628155e6e6fe3904">winstd::variant::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(_In_ const VARIANT &amp;varSrc) const noexcept</div><div class="ttdoc">Is variant greater than?</div><div class="ttdef"><b>Definition:</b> COM.h:974</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a37b2ffd79fe6495c2c9b52556a45354e"><div class="ttname"><a href="classwinstd_1_1variant.html#a37b2ffd79fe6495c2c9b52556a45354e">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ float fltSrc) noexcept</div><div class="ttdoc">Copy from float value.</div><div class="ttdef"><b>Definition:</b> COM.h:686</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a38e77a19c8722042827632bda007357c"><div class="ttname"><a href="classwinstd_1_1variant.html#a38e77a19c8722042827632bda007357c">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ unsigned short nSrc) noexcept</div><div class="ttdoc">Copy from unsigned short value.</div><div class="ttdef"><b>Definition:</b> COM.h:594</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a39539bd84a533981524a41ff65780683"><div class="ttname"><a href="classwinstd_1_1variant.html#a39539bd84a533981524a41ff65780683">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ char cSrc) noexcept</div><div class="ttdoc">Copy from char value.</div><div class="ttdef"><b>Definition:</b> COM.h:555</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a3dd035fa775b6f75c446b646d65174c7"><div class="ttname"><a href="classwinstd_1_1variant.html#a3dd035fa775b6f75c446b646d65174c7">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ int nSrc, _In_ VARTYPE vtSrc=VT_I4) noexcept</div><div class="ttdoc">Constructs VARIANT from integer.</div><div class="ttdef"><b>Definition:</b> COM.h:363</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a3fb364ce88eee71357376600857cb410"><div class="ttname"><a href="classwinstd_1_1variant.html#a3fb364ce88eee71357376600857cb410">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ CY cySrc) noexcept</div><div class="ttdoc">Copy from CY value.</div><div class="ttdef"><b>Definition:</b> COM.h:712</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a42dae05f2aebc59f4b9a8971ef661651"><div class="ttname"><a href="classwinstd_1_1variant.html#a42dae05f2aebc59f4b9a8971ef661651">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ unsigned long long *pnSrc) noexcept</div><div class="ttdoc">Copy from unsigned long long reference.</div><div class="ttdef"><b>Definition:</b> COM.h:867</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a4fc3255f55c166f7fd5754c7e809d666"><div class="ttname"><a href="classwinstd_1_1variant.html#a4fc3255f55c166f7fd5754c7e809d666">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_Inout_opt_ IDispatch *pSrc)</div><div class="ttdoc">Copy from IDispatch.</div><div class="ttdef"><b>Definition:</b> COM.h:737</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a500314b7d65deff04c1339a3bfbaf40c"><div class="ttname"><a href="classwinstd_1_1variant.html#a500314b7d65deff04c1339a3bfbaf40c">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ unsigned char nSrc) noexcept</div><div class="ttdoc">Constructs VARIANT from byte.</div><div class="ttdef"><b>Definition:</b> COM.h:336</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a52872aa5ff0279eb2d12a85d42e67fc4"><div class="ttname"><a href="classwinstd_1_1variant.html#a52872aa5ff0279eb2d12a85d42e67fc4">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ float fltSrc) noexcept</div><div class="ttdoc">Constructs VARIANT from float.</div><div class="ttdef"><b>Definition:</b> COM.h:402</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a57cd72d5caf58774a4737708b4432d4d"><div class="ttname"><a href="classwinstd_1_1variant.html#a57cd72d5caf58774a4737708b4432d4d">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ unsigned long nSrc) noexcept</div><div class="ttdoc">Constructs VARIANT from unsigned long.</div><div class="ttdef"><b>Definition:</b> COM.h:393</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a5a5acd6cff4a9f193f8582eab6ce673d"><div class="ttname"><a href="classwinstd_1_1variant.html#a5a5acd6cff4a9f193f8582eab6ce673d">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ double dblSrc, _In_ VARTYPE vtSrc=VT_R8) noexcept</div><div class="ttdoc">Constructs VARIANT from double or variant date.</div><div class="ttdef"><b>Definition:</b> COM.h:411</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a5cca53d17432a3d40c5ccb8569dc31cf"><div class="ttname"><a href="classwinstd_1_1variant.html#a5cca53d17432a3d40c5ccb8569dc31cf">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ long nSrc, _In_ VARTYPE vtSrc=VT_I4) noexcept</div><div class="ttdoc">Constructs VARIANT from long.</div><div class="ttdef"><b>Definition:</b> COM.h:383</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a6500b19e9fa43b5c0605f549d15054d2"><div class="ttname"><a href="classwinstd_1_1variant.html#a6500b19e9fa43b5c0605f549d15054d2">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ unsigned int nSrc, _In_ VARTYPE vtSrc=VT_UI4) noexcept</div><div class="ttdoc">Constructs VARIANT from unsigned integer.</div><div class="ttdef"><b>Definition:</b> COM.h:373</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a69b429a61582fc777b07541daad7887b"><div class="ttname"><a href="classwinstd_1_1variant.html#a69b429a61582fc777b07541daad7887b">winstd::variant::~variant</a></div><div class="ttdeci">virtual ~variant()</div><div class="ttdoc">Destroys VARIANT.</div><div class="ttdef"><b>Definition:</b> COM.h:508</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a6e2bed5ef96a45e1dcabced3804d2a37"><div class="ttname"><a href="classwinstd_1_1variant.html#a6e2bed5ef96a45e1dcabced3804d2a37">winstd::variant::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(_In_ const VARIANT &amp;varSrc) const noexcept</div><div class="ttdoc">Is variant less than?</div><div class="ttdef"><b>Definition:</b> COM.h:960</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a70c3636a264c1d4935de33411b0ea6f2"><div class="ttname"><a href="classwinstd_1_1variant.html#a70c3636a264c1d4935de33411b0ea6f2">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ unsigned long *pnSrc) noexcept</div><div class="ttdoc">Copy from unsigned long reference.</div><div class="ttdef"><b>Definition:</b> COM.h:841</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a7dfb5130045649ff9d51194d9927f445"><div class="ttname"><a href="classwinstd_1_1variant.html#a7dfb5130045649ff9d51194d9927f445">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ long nSrc) noexcept</div><div class="ttdoc">Copy from long value.</div><div class="ttdef"><b>Definition:</b> COM.h:633</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a83be1ae666c090c5eb9f6ac0eca1ca6c"><div class="ttname"><a href="classwinstd_1_1variant.html#a83be1ae666c090c5eb9f6ac0eca1ca6c">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ int nSrc) noexcept</div><div class="ttdoc">Copy from int value.</div><div class="ttdef"><b>Definition:</b> COM.h:607</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a875583fd50e4bc7cd922974a593f2e8d"><div class="ttname"><a href="classwinstd_1_1variant.html#a875583fd50e4bc7cd922974a593f2e8d">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_Inout_opt_ IUnknown *pSrc)</div><div class="ttdoc">Copy from IUnknown.</div><div class="ttdef"><b>Definition:</b> COM.h:750</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a8b07463db82883a101faa45b341c1948"><div class="ttname"><a href="classwinstd_1_1variant.html#a8b07463db82883a101faa45b341c1948">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ long long nSrc) noexcept</div><div class="ttdoc">Copy from long long value.</div><div class="ttdef"><b>Definition:</b> COM.h:659</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a8b829b758e6e859508a0f0f3817aeaa8"><div class="ttname"><a href="classwinstd_1_1variant.html#a8b829b758e6e859508a0f0f3817aeaa8">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ const SAFEARRAY *pSrc) noexcept</div><div class="ttdoc">Copy from SAFEARRAY.</div><div class="ttdef"><b>Definition:</b> COM.h:906</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a8bde27b765d17663ea36f9fb84a530af"><div class="ttname"><a href="classwinstd_1_1variant.html#a8bde27b765d17663ea36f9fb84a530af">winstd::variant::operator!=</a></div><div class="ttdeci">bool operator!=(_In_ const VARIANT &amp;varSrc) const noexcept</div><div class="ttdoc">Is variant not equal to?</div><div class="ttdef"><b>Definition:</b> COM.h:947</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a90a9a4e578a9b1d20acbc456a8b666b7"><div class="ttname"><a href="classwinstd_1_1variant.html#a90a9a4e578a9b1d20acbc456a8b666b7">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ short nSrc) noexcept</div><div class="ttdoc">Constructs VARIANT from short.</div><div class="ttdef"><b>Definition:</b> COM.h:345</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a91e9fc562b5cc4cd27c1c9a682eb9085"><div class="ttname"><a href="classwinstd_1_1variant.html#a91e9fc562b5cc4cd27c1c9a682eb9085">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ unsigned short nSrc) noexcept</div><div class="ttdoc">Constructs VARIANT from unsigned short.</div><div class="ttdef"><b>Definition:</b> COM.h:354</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a99560b48d48a24f978fb5bfbf64396ce"><div class="ttname"><a href="classwinstd_1_1variant.html#a99560b48d48a24f978fb5bfbf64396ce">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ unsigned long long nSrc) noexcept</div><div class="ttdoc">Constructs VARIANT from unsigned integer.</div><div class="ttdef"><b>Definition:</b> COM.h:430</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a9e1f77a641cfa4388a1c7d91b95c7a57"><div class="ttname"><a href="classwinstd_1_1variant.html#a9e1f77a641cfa4388a1c7d91b95c7a57">winstd::variant::operator==</a></div><div class="ttdeci">bool operator==(_In_ const VARIANT &amp;varSrc) const noexcept</div><div class="ttdoc">Is variant equal to?</div><div class="ttdef"><b>Definition:</b> COM.h:932</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_a9e2f934ee0c118119e7e61ceccb44758"><div class="ttname"><a href="classwinstd_1_1variant.html#a9e2f934ee0c118119e7e61ceccb44758">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ unsigned char *pbSrc) noexcept</div><div class="ttdoc">Copy from unsigned char reference.</div><div class="ttdef"><b>Definition:</b> COM.h:763</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_aabf5f5e5d1147ab39e4df78159d3df2a"><div class="ttname"><a href="classwinstd_1_1variant.html#aabf5f5e5d1147ab39e4df78159d3df2a">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_z_ BSTR bstr) noexcept</div><div class="ttdoc">Constructs VARIANT from BSTR.</div><div class="ttdef"><b>Definition:</b> COM.h:458</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ab5b8d68675d23082008f57e9439c3a19"><div class="ttname"><a href="classwinstd_1_1variant.html#ab5b8d68675d23082008f57e9439c3a19">winstd::variant::variant</a></div><div class="ttdeci">variant() noexcept</div><div class="ttdoc">Constructs blank VARIANT.</div><div class="ttdef"><b>Definition:</b> COM.h:289</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_abca411f6a72f6a7ecc117596251b442c"><div class="ttname"><a href="classwinstd_1_1variant.html#abca411f6a72f6a7ecc117596251b442c">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ double dblSrc) noexcept</div><div class="ttdoc">Copy from double value.</div><div class="ttdef"><b>Definition:</b> COM.h:699</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_abe65600c073ddcf89faf02e066a9738f"><div class="ttname"><a href="classwinstd_1_1variant.html#abe65600c073ddcf89faf02e066a9738f">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ const VARIANT &amp;varSrc)</div><div class="ttdoc">Copy from another VARIANT.</div><div class="ttdef"><b>Definition:</b> COM.h:516</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ac22bafa14170d08098a643e8e7ce31d7"><div class="ttname"><a href="classwinstd_1_1variant.html#ac22bafa14170d08098a643e8e7ce31d7">winstd::variant::change_type</a></div><div class="ttdeci">HRESULT change_type(_In_ VARTYPE _vt, _In_opt_ USHORT wFlags=0) noexcept</div><div class="ttdoc">Converts a variant from one type to another.</div><div class="ttdef"><b>Definition:</b> COM.h:1011</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ac22ca62b7cafcd4dc9841680c0a12436"><div class="ttname"><a href="classwinstd_1_1variant.html#ac22ca62b7cafcd4dc9841680c0a12436">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ bool bSrc) noexcept</div><div class="ttdoc">Copy from bool value.</div><div class="ttdef"><b>Definition:</b> COM.h:542</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ac62778c2de1a28e3089d096aa264a4ec"><div class="ttname"><a href="classwinstd_1_1variant.html#ac62778c2de1a28e3089d096aa264a4ec">winstd::variant::operator&lt;=</a></div><div class="ttdeci">bool operator&lt;=(_In_ const VARIANT &amp;varSrc) const noexcept</div><div class="ttdoc">Is variant less than or equal to?</div><div class="ttdef"><b>Definition:</b> COM.h:988</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ac6f0f3d0b3e908436fa99904996ac94a"><div class="ttname"><a href="classwinstd_1_1variant.html#ac6f0f3d0b3e908436fa99904996ac94a">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ unsigned long nSrc) noexcept</div><div class="ttdoc">Copy from unsigned long value.</div><div class="ttdef"><b>Definition:</b> COM.h:646</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ad071b63c62d7c29f96ba09ddf79599d3"><div class="ttname"><a href="classwinstd_1_1variant.html#ad071b63c62d7c29f96ba09ddf79599d3">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ long long *pnSrc) noexcept</div><div class="ttdoc">Copy from long long reference.</div><div class="ttdef"><b>Definition:</b> COM.h:854</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ad855816c6daa12abd06e43beb08caac7"><div class="ttname"><a href="classwinstd_1_1variant.html#ad855816c6daa12abd06e43beb08caac7">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_z_ LPCOLESTR lpszSrc) noexcept</div><div class="ttdoc">Copy from OLE string value.</div><div class="ttdef"><b>Definition:</b> COM.h:726</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ad8a47c76dcd37b9a869320994d9e58f5"><div class="ttname"><a href="classwinstd_1_1variant.html#ad8a47c76dcd37b9a869320994d9e58f5">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ const VARIANT &amp;varSrc)</div><div class="ttdoc">Constructs VARIANT from another.</div><div class="ttdef"><b>Definition:</b> COM.h:297</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_adbe89a8e13dd00157ab1fdd90b1b67ac"><div class="ttname"><a href="classwinstd_1_1variant.html#adbe89a8e13dd00157ab1fdd90b1b67ac">winstd::variant::variant</a></div><div class="ttdeci">variant(_Inout_ VARIANT &amp;&amp;varSrc) noexcept</div><div class="ttdoc">Moves VARIANT from another.</div><div class="ttdef"><b>Definition:</b> COM.h:309</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ae0a73f84187ad60f32a2001ce1ba1f8d"><div class="ttname"><a href="classwinstd_1_1variant.html#ae0a73f84187ad60f32a2001ce1ba1f8d">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ char cSrc) noexcept</div><div class="ttdoc">Constructs VARIANT from character.</div><div class="ttdef"><b>Definition:</b> COM.h:327</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ae5a7432031f89195062550805bc18a0a"><div class="ttname"><a href="classwinstd_1_1variant.html#ae5a7432031f89195062550805bc18a0a">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ CY cySrc) noexcept</div><div class="ttdoc">Constructs VARIANT from CY (64-bit integer)</div><div class="ttdef"><b>Definition:</b> COM.h:439</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ae79092e97108c3fed94325d3d679fbb6"><div class="ttname"><a href="classwinstd_1_1variant.html#ae79092e97108c3fed94325d3d679fbb6">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ unsigned char nSrc) noexcept</div><div class="ttdoc">Copy from unsigned char value.</div><div class="ttdef"><b>Definition:</b> COM.h:568</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ae952c6fac0c8e1de3d7d5512e2573f7b"><div class="ttname"><a href="classwinstd_1_1variant.html#ae952c6fac0c8e1de3d7d5512e2573f7b">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_opt_ IUnknown *pSrc)</div><div class="ttdoc">Constructs VARIANT from IUnknown.</div><div class="ttdef"><b>Definition:</b> COM.h:479</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_ae9d6f63e7a4e59705e9ee8fa1df6cd29"><div class="ttname"><a href="classwinstd_1_1variant.html#ae9d6f63e7a4e59705e9ee8fa1df6cd29">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ unsigned int nSrc) noexcept</div><div class="ttdoc">Copy from unsigned int value.</div><div class="ttdef"><b>Definition:</b> COM.h:620</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_aed34b9e71663c0e54fac63b2493d81c9"><div class="ttname"><a href="classwinstd_1_1variant.html#aed34b9e71663c0e54fac63b2493d81c9">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ float *pfSrc) noexcept</div><div class="ttdoc">Copy from float reference.</div><div class="ttdef"><b>Definition:</b> COM.h:880</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_af069314c298c59020052749418e1c940"><div class="ttname"><a href="classwinstd_1_1variant.html#af069314c298c59020052749418e1c940">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_Inout_ VARIANT &amp;&amp;varSrc) noexcept</div><div class="ttdoc">Moves from another VARIANT.</div><div class="ttdef"><b>Definition:</b> COM.h:529</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_af0b2b43f646cc3efe14db8b9d8a4c1d6"><div class="ttname"><a href="classwinstd_1_1variant.html#af0b2b43f646cc3efe14db8b9d8a4c1d6">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ bool bSrc) noexcept</div><div class="ttdoc">Constructs VARIANT from bool.</div><div class="ttdef"><b>Definition:</b> COM.h:318</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_af1956163d01e705a8514ed3314cf5e69"><div class="ttname"><a href="classwinstd_1_1variant.html#af1956163d01e705a8514ed3314cf5e69">winstd::variant::variant</a></div><div class="ttdeci">variant(_In_ const SAFEARRAY *pSrc)</div><div class="ttdoc">Constructs VARIANT from SAFEARRAY.</div><div class="ttdef"><b>Definition:</b> COM.h:491</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_af3c84072dcf7c6b35a6350d2a2365d32"><div class="ttname"><a href="classwinstd_1_1variant.html#af3c84072dcf7c6b35a6350d2a2365d32">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ unsigned short *pnSrc) noexcept</div><div class="ttdoc">Copy from unsigned short reference.</div><div class="ttdef"><b>Definition:</b> COM.h:789</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_af4a8867576603379317a452a2faf3f6f"><div class="ttname"><a href="classwinstd_1_1variant.html#af4a8867576603379317a452a2faf3f6f">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ long *pnSrc) noexcept</div><div class="ttdoc">Copy from long reference.</div><div class="ttdef"><b>Definition:</b> COM.h:828</div></div>
<div class="ttc" id="aclasswinstd_1_1variant_html_af703f9de3fa0554c37d2f41c7dd407b7"><div class="ttname"><a href="classwinstd_1_1variant.html#af703f9de3fa0554c37d2f41c7dd407b7">winstd::variant::operator=</a></div><div class="ttdeci">variant &amp; operator=(_In_ unsigned int *pnSrc) noexcept</div><div class="ttdoc">Copy from unsigned int reference.</div><div class="ttdef"><b>Definition:</b> COM.h:815</div></div>
<div class="ttc" id="agroup___win_std_general_html_ga11254c72ad33a6e0f5de31db708f784c"><div class="ttname"><a href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a></div><div class="ttdeci">#define WINSTD_NONCOPYABLE(C)</div><div class="ttdoc">Declares a class as non-copyable.</div><div class="ttdef"><b>Definition:</b> Common.h:53</div></div>
<div class="ttc" id="agroup___win_std_general_html_gac91fa8d79c860b1fdbba65b6a322f760"><div class="ttname"><a href="group___win_std_general.html#gac91fa8d79c860b1fdbba65b6a322f760">WINSTD_NONMOVABLE</a></div><div class="ttdeci">#define WINSTD_NONMOVABLE(C)</div><div class="ttdoc">Declares a class as non-movable.</div><div class="ttdef"><b>Definition:</b> Common.h:61</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga2768b80bcf124e3127f0b7fe64395adb"><div class="ttname"><a href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">WINSTD_DPLHANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_DPLHANDLE_IMPL(C, INVAL)</div><div class="ttdoc">Implements default constructors and operators to prevent their auto-generation by compiler.</div><div class="ttdef"><b>Definition:</b> Common.h:150</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_gacf43e306968474166474090690857e1c"><div class="ttname"><a href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">winstd::handle&lt; T *, INVAL &gt;::invalid</a></div><div class="ttdeci">static const T * invalid</div><div class="ttdoc">Invalid handle value.</div><div class="ttdef"><b>Definition:</b> Common.h:590</div></div>
<div class="ttc" id="astructwinstd_1_1_co_task_mem_free__delete_html"><div class="ttname"><a href="structwinstd_1_1_co_task_mem_free__delete.html">winstd::CoTaskMemFree_delete</a></div><div class="ttdoc">Deleter for unique_ptr using CoTaskMemFree.</div><div class="ttdef"><b>Definition:</b> COM.h:59</div></div>
<div class="ttc" id="astructwinstd_1_1_co_task_mem_free__delete_html_a66d6fbd417d9073624387c4664db782f"><div class="ttname"><a href="structwinstd_1_1_co_task_mem_free__delete.html#a66d6fbd417d9073624387c4664db782f">winstd::CoTaskMemFree_delete::operator()</a></div><div class="ttdeci">void operator()(_T *_Ptr) const</div><div class="ttdoc">Delete a pointer.</div><div class="ttdef"><b>Definition:</b> COM.h:71</div></div>
<div class="ttc" id="astructwinstd_1_1_co_task_mem_free__delete_html_a712d2e91abc99bebe8cf8d32ac649326"><div class="ttname"><a href="structwinstd_1_1_co_task_mem_free__delete.html#a712d2e91abc99bebe8cf8d32ac649326">winstd::CoTaskMemFree_delete::CoTaskMemFree_delete</a></div><div class="ttdeci">CoTaskMemFree_delete() noexcept</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> COM.h:63</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

1329
_common_8h_source.html Normal file

File diff suppressed because it is too large Load Diff

245
_cred_8h_source.html Normal file
View File

@ -0,0 +1,245 @@
<!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/Cred.h Source File</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="headertitle"><div class="title">Cred.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;wincred.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">static</span> BOOL CredProtectA(_In_ BOOL fAsSelf, _In_count_(cchCredentials) LPCSTR pszCredentials, _In_ DWORD cchCredentials, _Inout_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sProtectedCredentials, _Out_ CRED_PROTECTION_TYPE *ProtectionType)</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span>{</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordtype">char</span> buf[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(char)];</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> DWORD dwSize = _countof(buf);</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">if</span> (CredProtectA(fAsSelf, <span class="keyword">const_cast&lt;</span>LPSTR<span class="keyword">&gt;</span>(pszCredentials), cchCredentials, buf, &amp;dwSize, ProtectionType)) {</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> sProtectedCredentials.assign(buf, dwSize - 1);</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// Allocate on heap and retry.</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> std::unique_ptr&lt;char[]&gt; buf(<span class="keyword">new</span> <span class="keywordtype">char</span>[dwSize]);</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">if</span> (CredProtectA(fAsSelf, <span class="keyword">const_cast&lt;</span>LPSTR<span class="keyword">&gt;</span>(pszCredentials), cchCredentials, buf.get(), &amp;dwSize, ProtectionType)) {</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> sProtectedCredentials.assign(buf.get(), dwSize - 1);</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> }</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>}</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="keyword">static</span> BOOL CredProtectW(_In_ BOOL fAsSelf, _In_count_(cchCredentials) LPCWSTR pszCredentials, _In_ DWORD cchCredentials, _Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sProtectedCredentials, _Out_ CRED_PROTECTION_TYPE *ProtectionType)</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>{</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordtype">wchar_t</span> buf[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(wchar_t)];</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> DWORD dwSize = _countof(buf);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">if</span> (CredProtectW(fAsSelf, <span class="keyword">const_cast&lt;</span>LPWSTR<span class="keyword">&gt;</span>(pszCredentials), cchCredentials, buf, &amp;dwSize, ProtectionType)) {</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> sProtectedCredentials.assign(buf, dwSize - 1);</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// Allocate on heap and retry.</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> std::unique_ptr&lt;wchar_t[]&gt; buf(<span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[dwSize]);</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">if</span> (CredProtectW(fAsSelf, <span class="keyword">const_cast&lt;</span>LPWSTR<span class="keyword">&gt;</span>(pszCredentials), cchCredentials, buf.get(), &amp;dwSize, ProtectionType)) {</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> sProtectedCredentials.assign(buf.get(), dwSize - 1);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> }</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> }</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span>}</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="keyword">static</span> BOOL CredUnprotectA(_In_ BOOL fAsSelf, _In_count_(cchCredentials) LPCSTR pszProtectedCredentials, _In_ DWORD cchCredentials, _Inout_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sCredentials)</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span>{</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordtype">char</span> buf[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(char)];</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> DWORD dwSize = _countof(buf);</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">if</span> (CredUnprotectA(fAsSelf, <span class="keyword">const_cast&lt;</span>LPSTR<span class="keyword">&gt;</span>(pszProtectedCredentials), cchCredentials, buf, &amp;dwSize)) {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> sCredentials.assign(buf, dwSize);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// Allocate on heap and retry.</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> std::unique_ptr&lt;char[]&gt; buf(<span class="keyword">new</span> <span class="keywordtype">char</span>[dwSize]);</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordflow">if</span> (CredUnprotectA(fAsSelf, <span class="keyword">const_cast&lt;</span>LPSTR<span class="keyword">&gt;</span>(pszProtectedCredentials), cchCredentials, buf.get(), &amp;dwSize)) {</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> sCredentials.assign(buf.get(), dwSize);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> }</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> }</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span>}</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keyword">static</span> BOOL CredUnprotectW(_In_ BOOL fAsSelf, _In_count_(cchCredentials) LPCWSTR pszProtectedCredentials, _In_ DWORD cchCredentials, _Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sCredentials)</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span>{</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">wchar_t</span> buf[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(wchar_t)];</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> DWORD dwSize = _countof(buf);</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">if</span> (CredUnprotectW(fAsSelf, <span class="keyword">const_cast&lt;</span>LPWSTR<span class="keyword">&gt;</span>(pszProtectedCredentials), cchCredentials, buf, &amp;dwSize)) {</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> sCredentials.assign(buf, dwSize);</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// Allocate on heap and retry.</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> std::unique_ptr&lt;wchar_t[]&gt; buf(<span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[dwSize]);</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">if</span> (CredUnprotectW(fAsSelf, <span class="keyword">const_cast&lt;</span>LPWSTR<span class="keyword">&gt;</span>(pszProtectedCredentials), cchCredentials, buf.get(), &amp;dwSize)) {</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> sCredentials.assign(buf.get(), dwSize);</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> }</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> }</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span>}</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span>{</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete.html"> 133</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Ty&gt; <span class="keyword">struct </span><a class="code hl_struct" href="structwinstd_1_1_cred_free__delete.html">CredFree_delete</a></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> {</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete.html#ab46fe0807ba356084523c04c8c565b53"> 135</a></span> <span class="keyword">typedef</span> <a class="code hl_struct" href="structwinstd_1_1_cred_free__delete.html">CredFree_delete&lt;_Ty&gt;</a> <a class="code hl_typedef" href="structwinstd_1_1_cred_free__delete.html#ab46fe0807ba356084523c04c8c565b53">_Myt</a>; </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete.html#a3959d2b3727e557e19d8b0f5c449b57a"> 140</a></span> <a class="code hl_function" href="structwinstd_1_1_cred_free__delete.html#a3959d2b3727e557e19d8b0f5c449b57a">CredFree_delete</a>() {}</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete.html#ac4cc203e783bcc1c71011cde00ddf9ad"> 145</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Ty2&gt; <a class="code hl_function" href="structwinstd_1_1_cred_free__delete.html#ac4cc203e783bcc1c71011cde00ddf9ad">CredFree_delete</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structwinstd_1_1_cred_free__delete.html">CredFree_delete&lt;_Ty2&gt;</a>&amp;) {}</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete.html#a247d6f53f119468b6ccb08ff01338465"> 152</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structwinstd_1_1_cred_free__delete.html#a247d6f53f119468b6ccb08ff01338465">operator()</a>(_Ty *_Ptr)<span class="keyword"> const</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> CredFree(_Ptr);</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> }</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> };</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html"> 161</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Ty&gt; <span class="keyword">struct </span><a class="code hl_struct" href="structwinstd_1_1_cred_free__delete.html">CredFree_delete</a>&lt;_Ty[]&gt;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> {</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aa735db2daba14212c29b3c5af0e0b0d1"> 163</a></span> <span class="keyword">typedef</span> <a class="code hl_struct" href="structwinstd_1_1_cred_free__delete.html">CredFree_delete&lt;_Ty&gt;</a> <a class="code hl_typedef" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aa735db2daba14212c29b3c5af0e0b0d1">_Myt</a>; </div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aad102423f4fb96fd105b57a88a6031ab"> 168</a></span> <a class="code hl_function" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aad102423f4fb96fd105b57a88a6031ab">CredFree_delete</a>() {}</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aea662a4ce3e32723646313a9a56c4c9a"> 175</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aea662a4ce3e32723646313a9a56c4c9a">operator()</a>(_Ty *_Ptr) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> {</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> CredFree(_Ptr);</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> }</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> _Other&gt;</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#acc62d6419d7dea72f237ab2788171f48"> 186</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#acc62d6419d7dea72f237ab2788171f48">operator()</a>(_Other *)<span class="keyword"> const</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> CredFree(_Ptr);</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> }</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> };</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span>}</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="preprocessor">#pragma warning(suppress: 4505) </span><span class="comment">// Don&#39;t warn on unused code</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="keyword">static</span> BOOL CredEnumerate(_In_z_ LPCTSTR Filter, _Reserved_ DWORD Flags, _Out_ DWORD *Count, _Inout_ std::unique_ptr&lt;PCREDENTIAL[], <a class="code hl_struct" href="structwinstd_1_1_cred_free__delete.html">winstd::CredFree_delete</a>&lt;PCREDENTIAL[]&gt; &gt; &amp;cCredentials) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span>{</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> PCREDENTIAL *pCredentials;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">if</span> (CredEnumerate(Filter, Flags, Count, &amp;pCredentials)) {</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> cCredentials.reset(pCredentials);</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> }</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> </div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span>}</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
<div class="ttc" id="agroup___win_std_general_html_ga3ca39107a61bbcd05f901898ec584986"><div class="ttname"><a href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a></div><div class="ttdeci">#define WINSTD_STACK_BUFFER_BYTES</div><div class="ttdoc">Size of the stack buffer in bytes used for initial system function call.</div><div class="ttdef"><b>Definition:</b> Common.h:80</div></div>
<div class="ttc" id="astructwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4_html_aa735db2daba14212c29b3c5af0e0b0d1"><div class="ttname"><a href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aa735db2daba14212c29b3c5af0e0b0d1">winstd::CredFree_delete&lt; _Ty[]&gt;::_Myt</a></div><div class="ttdeci">CredFree_delete&lt; _Ty &gt; _Myt</div><div class="ttdoc">This type.</div><div class="ttdef"><b>Definition:</b> Cred.h:163</div></div>
<div class="ttc" id="astructwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4_html_aad102423f4fb96fd105b57a88a6031ab"><div class="ttname"><a href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aad102423f4fb96fd105b57a88a6031ab">winstd::CredFree_delete&lt; _Ty[]&gt;::CredFree_delete</a></div><div class="ttdeci">CredFree_delete()</div><div class="ttdoc">Default construct.</div><div class="ttdef"><b>Definition:</b> Cred.h:168</div></div>
<div class="ttc" id="astructwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4_html_acc62d6419d7dea72f237ab2788171f48"><div class="ttname"><a href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#acc62d6419d7dea72f237ab2788171f48">winstd::CredFree_delete&lt; _Ty[]&gt;::operator()</a></div><div class="ttdeci">void operator()(_Other *) const</div><div class="ttdoc">Delete a pointer of another type.</div><div class="ttdef"><b>Definition:</b> Cred.h:186</div></div>
<div class="ttc" id="astructwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4_html_aea662a4ce3e32723646313a9a56c4c9a"><div class="ttname"><a href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aea662a4ce3e32723646313a9a56c4c9a">winstd::CredFree_delete&lt; _Ty[]&gt;::operator()</a></div><div class="ttdeci">void operator()(_Ty *_Ptr) const noexcept</div><div class="ttdoc">Delete a pointer.</div><div class="ttdef"><b>Definition:</b> Cred.h:175</div></div>
<div class="ttc" id="astructwinstd_1_1_cred_free__delete_html"><div class="ttname"><a href="structwinstd_1_1_cred_free__delete.html">winstd::CredFree_delete</a></div><div class="ttdoc">Deleter for unique_ptr using CredFree.</div><div class="ttdef"><b>Definition:</b> Cred.h:134</div></div>
<div class="ttc" id="astructwinstd_1_1_cred_free__delete_html_a247d6f53f119468b6ccb08ff01338465"><div class="ttname"><a href="structwinstd_1_1_cred_free__delete.html#a247d6f53f119468b6ccb08ff01338465">winstd::CredFree_delete::operator()</a></div><div class="ttdeci">void operator()(_Ty *_Ptr) const</div><div class="ttdoc">Delete a pointer.</div><div class="ttdef"><b>Definition:</b> Cred.h:152</div></div>
<div class="ttc" id="astructwinstd_1_1_cred_free__delete_html_a3959d2b3727e557e19d8b0f5c449b57a"><div class="ttname"><a href="structwinstd_1_1_cred_free__delete.html#a3959d2b3727e557e19d8b0f5c449b57a">winstd::CredFree_delete::CredFree_delete</a></div><div class="ttdeci">CredFree_delete()</div><div class="ttdoc">Default construct.</div><div class="ttdef"><b>Definition:</b> Cred.h:140</div></div>
<div class="ttc" id="astructwinstd_1_1_cred_free__delete_html_ab46fe0807ba356084523c04c8c565b53"><div class="ttname"><a href="structwinstd_1_1_cred_free__delete.html#ab46fe0807ba356084523c04c8c565b53">winstd::CredFree_delete::_Myt</a></div><div class="ttdeci">CredFree_delete&lt; _Ty &gt; _Myt</div><div class="ttdoc">This type.</div><div class="ttdef"><b>Definition:</b> Cred.h:135</div></div>
<div class="ttc" id="astructwinstd_1_1_cred_free__delete_html_ac4cc203e783bcc1c71011cde00ddf9ad"><div class="ttname"><a href="structwinstd_1_1_cred_free__delete.html#ac4cc203e783bcc1c71011cde00ddf9ad">winstd::CredFree_delete::CredFree_delete</a></div><div class="ttdeci">CredFree_delete(const CredFree_delete&lt; _Ty2 &gt; &amp;)</div><div class="ttdoc">Construct from another CredFree_delete.</div><div class="ttdef"><b>Definition:</b> Cred.h:145</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

751
_crypt_8h_source.html Normal file
View File

@ -0,0 +1,751 @@
<!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/Crypt.h Source File</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="headertitle"><div class="title">Crypt.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;assert.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;WinCrypt.h&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;algorithm&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">static</span> DWORD CertGetNameStringA(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwType, _In_ DWORD dwFlags, _In_opt_ <span class="keywordtype">void</span> *pvTypePara, _Out_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sNameString)</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span>{</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// Query the final string length first.</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> DWORD dwSize = ::CertGetNameStringA(pCertContext, dwType, dwFlags, pvTypePara, NULL, 0);</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> std::unique_ptr&lt;char[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">char</span>[dwSize]);</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> dwSize = ::CertGetNameStringA(pCertContext, dwType, dwFlags, pvTypePara, szBuffer.get(), dwSize);</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> sNameString.assign(szBuffer.get(), dwSize - 1);</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> dwSize;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>}</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keyword">static</span> DWORD CertGetNameStringW(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwType, _In_ DWORD dwFlags, _In_opt_ <span class="keywordtype">void</span> *pvTypePara, _Out_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sNameString)</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span>{</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Query the final string length first.</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> DWORD dwSize = ::CertGetNameStringW(pCertContext, dwType, dwFlags, pvTypePara, NULL, 0);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> std::unique_ptr&lt;wchar_t[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[dwSize]);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> dwSize = ::CertGetNameStringW(pCertContext, dwType, dwFlags, pvTypePara, szBuffer.get(), dwSize);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> sNameString.assign(szBuffer.get(), dwSize - 1);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">return</span> dwSize;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>}</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL WINAPI CertGetCertificateContextProperty(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwPropId, _Out_ std::vector&lt;_Ty, _Ax&gt; &amp;aData)</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>{</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> BYTE buf[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>];</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> DWORD dwSize = <a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">if</span> (CertGetCertificateContextProperty(pCertContext, dwPropId, buf, &amp;dwSize)) {</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> aData.assign((<span class="keyword">const</span> _Ty*)buf, (<span class="keyword">const</span> _Ty*)buf + (dwSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> aData.resize((dwSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">if</span> (CertGetCertificateContextProperty(pCertContext, dwPropId, (BYTE*)aData.data(), &amp;dwSize))</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>}</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL CryptGetHashParam(_In_ HCRYPTHASH hHash, _In_ DWORD dwParam, _Out_ std::vector&lt;_Ty, _Ax&gt; &amp;aData, _In_ DWORD dwFlags)</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>{</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> BYTE buf[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>];</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> DWORD dwSize = <a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">if</span> (CryptGetHashParam(hHash, dwParam, buf, &amp;dwSize, dwFlags)) {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> aData.assign((<span class="keyword">const</span> _Ty*)buf, (<span class="keyword">const</span> _Ty*)buf + (dwSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> aData.resize((dwSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">if</span> (CryptGetHashParam(hHash, dwParam, (BYTE*)aData.data(), &amp;dwSize, dwFlags))</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> }</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span>}</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL CryptGetHashParam(_In_ HCRYPTHASH hHash, _In_ DWORD dwParam, _Out_ T &amp;data, _In_ DWORD dwFlags)</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>{</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> DWORD dwSize = <span class="keyword">sizeof</span>(T);</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">return</span> CryptGetHashParam(hHash, dwParam, (BYTE*)&amp;data, &amp;dwSize, dwFlags);</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span>}</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL CryptGetKeyParam(_In_ HCRYPTKEY hKey, _In_ DWORD dwParam, _Out_ std::vector&lt;_Ty, _Ax&gt; &amp;aData, _In_ DWORD dwFlags)</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span>{</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> BYTE buf[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>];</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> DWORD dwSize = <a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">if</span> (CryptGetKeyParam(hKey, dwParam, buf, &amp;dwSize, dwFlags)) {</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> aData.assign((<span class="keyword">const</span> _Ty*)buf, (<span class="keyword">const</span> _Ty*)buf + (dwSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> aData.resize((dwSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">if</span> (CryptGetKeyParam(hKey, dwParam, (BYTE*)aData.data(), &amp;dwSize, dwFlags))</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> }</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span>}</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="keyword">static</span> BOOL CryptGetKeyParam(_In_ HCRYPTKEY hKey, _In_ DWORD dwParam, _Out_ T &amp;data, _In_ DWORD dwFlags)</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span>{</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> DWORD dwSize = <span class="keyword">sizeof</span>(T);</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keywordflow">return</span> CryptGetKeyParam(hKey, dwParam, (BYTE*)&amp;data, &amp;dwSize, dwFlags);</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span>}</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL CryptExportKey(_In_ HCRYPTKEY hKey, _In_ HCRYPTKEY hExpKey, _In_ DWORD dwBlobType, _In_ DWORD dwFlags, _Out_ std::vector&lt;_Ty, _Ax&gt; &amp;aData)</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span>{</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> DWORD dwKeyBLOBSize = 0;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">if</span> (CryptExportKey(hKey, hExpKey, dwBlobType, dwFlags, NULL, &amp;dwKeyBLOBSize)) {</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> aData.resize((dwKeyBLOBSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keywordflow">if</span> (CryptExportKey(hKey, hExpKey, dwBlobType, dwFlags, aData.data(), &amp;dwKeyBLOBSize))</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> }</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span>}</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL CryptEncrypt(_In_ HCRYPTKEY hKey, _In_opt_ HCRYPTHASH hHash, _In_ BOOL Final, _In_ DWORD dwFlags, _Inout_ std::vector&lt;_Ty, _Ax&gt; &amp;aData)</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span>{</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> DWORD</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> dwDataLen = (DWORD)(aData.size() * <span class="keyword">sizeof</span>(_Ty)),</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> dwBufLen = (DWORD)(aData.capacity() * <span class="keyword">sizeof</span>(_Ty)),</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> dwEncLen = dwDataLen,</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> dwResult;</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> </div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">if</span> (dwBufLen) {</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> aData.resize(dwBufLen);</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">if</span> (CryptEncrypt(hKey, hHash, Final, dwFlags, (BYTE*)aData.data(), &amp;dwEncLen, dwBufLen)) {</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// Encryption succeeded.</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> assert(dwEncLen &lt;= dwBufLen);</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordflow">if</span> (dwEncLen &lt; dwBufLen)</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> aData.resize((dwEncLen + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> dwResult = GetLastError();</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (CryptEncrypt(hKey, NULL, Final, dwFlags, NULL, &amp;dwEncLen, 0)) {</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// CryptEncrypt() always succeeds for output data size queries.</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// dwEncLen contains required output data size. Continue as if the buffer was to small. Actually, the output buffer _was_ too small!</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> dwResult = ERROR_MORE_DATA;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> dwResult = GetLastError();</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keywordflow">if</span> (dwResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="comment">// Encrypted data will be longer. Reserve more space and retry.</span></div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> aData.resize(((dwBufLen = dwEncLen) + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> dwEncLen = dwDataLen;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">if</span> (CryptEncrypt(hKey, hHash, Final, dwFlags, (BYTE*)aData.data(), &amp;dwEncLen, dwBufLen)) {</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="comment">// Encryption succeeded.</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> assert(dwEncLen &lt;= dwBufLen);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordflow">if</span> (dwEncLen &lt; dwBufLen)</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> aData.resize((dwEncLen + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> }</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="comment">// Resize back to data length.</span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> aData.resize((dwDataLen + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> }</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> </div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span>}</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL CryptDecrypt(_In_ HCRYPTKEY hKey, _In_opt_ HCRYPTHASH hHash, _In_ BOOL Final, _In_ DWORD dwFlags, _Inout_ std::vector&lt;_Ty, _Ax&gt; &amp;aData)</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span>{</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> DWORD dwDataLen = (DWORD)(aData.size() * <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> </div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">if</span> (CryptDecrypt(hKey, hHash, Final, dwFlags, (BYTE*)aData.data(), &amp;dwDataLen)) {</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="comment">// Decryption succeeded.</span></div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> aData.resize((dwDataLen + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> }</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> </div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span>}</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> </div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> </div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span>{</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> </div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html"> 251</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1cert__context.html">cert_context</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt;PCCERT_CONTEXT, NULL&gt;</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> {</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1cert__context.html">cert_context</a>, NULL)</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> </div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#affa4b97554e6676d392301b5928130fd"> 261</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#affa4b97554e6676d392301b5928130fd">~cert_context</a>()</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> {</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a1615ec6693eb68764543456ad418a970">free_internal</a>();</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> }</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> </div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a23defa4c6756cc3da3965d6fa1911340"> 276</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a23defa4c6756cc3da3965d6fa1911340">create</a>(_In_ DWORD dwCertEncodingType, _In_ LPCBYTE pbCertEncoded, _In_ DWORD cbCertEncoded) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> {</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h = CertCreateCertificateContext(dwCertEncodingType, pbCertEncoded, cbCertEncoded);</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keywordflow">if</span> (h != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>) {</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> }</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> </div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a094988aa40f5ca3148bad44ff568e448"> 294</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a094988aa40f5ca3148bad44ff568e448">operator==</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> {</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="comment">// TODO: [Crypto] Make constant time.</span></div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">return</span></div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> == other ||</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;cbCertEncoded == other-&gt;cbCertEncoded &amp;&amp; memcmp(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;pbCertEncoded, other-&gt;pbCertEncoded, <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;cbCertEncoded) == 0;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> }</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> </div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a27e4d118208c02e4023d0456124522af"> 310</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a27e4d118208c02e4023d0456124522af">operator!=</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> {</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="classwinstd_1_1cert__context.html#a094988aa40f5ca3148bad44ff568e448">operator==</a>(other);</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> }</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> </div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a7f320b91ee26685eb9f9702a011ecc74"> 323</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a7f320b91ee26685eb9f9702a011ecc74">operator&lt;</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> {</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="comment">// TODO: [Crypto] Make constant time.</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <span class="keyword">const</span> <span class="keywordtype">int</span> r = memcmp(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;pbCertEncoded, other-&gt;pbCertEncoded, std::min&lt;DWORD&gt;(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;cbCertEncoded, other-&gt;cbCertEncoded));</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="keywordflow">return</span> r &lt; 0 || r == 0 &amp;&amp; <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;cbCertEncoded &lt; other-&gt;cbCertEncoded;</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> }</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> </div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#af307ba398c117eed2731e532551c7e32"> 338</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#af307ba398c117eed2731e532551c7e32">operator&gt;</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> {</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <span class="comment">// TODO: [Crypto] Make constant time.</span></div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">const</span> <span class="keywordtype">int</span> r = memcmp(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;pbCertEncoded, other-&gt;pbCertEncoded, std::min&lt;DWORD&gt;(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;cbCertEncoded, other-&gt;cbCertEncoded));</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> <span class="keywordflow">return</span> r &gt; 0 || r == 0 &amp;&amp; <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;cbCertEncoded &gt; other-&gt;cbCertEncoded;</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> }</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> </div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a1c545da45189367bcfeead3809c3e393"> 353</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a1c545da45189367bcfeead3809c3e393">operator&lt;=</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> {</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="classwinstd_1_1cert__context.html#af307ba398c117eed2731e532551c7e32">operator&gt;</a>(other);</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> }</div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> </div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a30e6faf35a3d6a0817927a811f55817d"> 366</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a30e6faf35a3d6a0817927a811f55817d">operator&gt;=</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> {</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="classwinstd_1_1cert__context.html#a7f320b91ee26685eb9f9702a011ecc74">operator&lt;</a>(other);</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> }</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> </div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a1615ec6693eb68764543456ad418a970"> 377</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a1615ec6693eb68764543456ad418a970">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> CertFreeCertificateContext(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> }</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> </div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#ae3740c4c2e9fd7caedfda928add3df0f"> 391</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> <a class="code hl_function" href="classwinstd_1_1cert__context.html#ae3740c4c2e9fd7caedfda928add3df0f">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) <span class="keyword">const</span> <span class="keyword">noexcept</span> <span class="keyword">override</span></div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> {</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> <span class="keywordflow">return</span> CertDuplicateCertificateContext(h);</div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> }</div>
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> };</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> </div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__chain__context.html"> 400</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1cert__chain__context.html">cert_chain_context</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt;PCCERT_CHAIN_CONTEXT, NULL&gt;</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> {</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1cert__chain__context.html">cert_chain_context</a>, NULL)</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> </div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__chain__context.html#a9f8b8604ea5766ffa59726b46e210eb3"> 410</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1cert__chain__context.html#a9f8b8604ea5766ffa59726b46e210eb3">~cert_chain_context</a>()</div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> {</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> <a class="code hl_function" href="classwinstd_1_1cert__chain__context.html#ae15044b1a7be10d96643d3921e149ee6">free_internal</a>();</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> }</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> </div>
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__chain__context.html#a9f446f3ac5ad702c98d16d296adab7a2"> 425</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__chain__context.html#a9f446f3ac5ad702c98d16d296adab7a2">create</a>(_In_opt_ HCERTCHAINENGINE hChainEngine, _In_ PCCERT_CONTEXT pCertContext, _In_opt_ LPFILETIME pTime, _In_opt_ HCERTSTORE hAdditionalStore, _In_ PCERT_CHAIN_PARA pChainPara, _In_ DWORD dwFlags, __reserved LPVOID pvReserved = NULL) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span> {</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <span class="keywordflow">if</span> (CertGetCertificateChain(hChainEngine, pCertContext, pTime, hAdditionalStore, pChainPara, dwFlags, pvReserved, &amp;h)) {</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> }</div>
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span> </div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__chain__context.html#ae15044b1a7be10d96643d3921e149ee6"> 441</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1cert__chain__context.html#ae15044b1a7be10d96643d3921e149ee6">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> CertFreeCertificateChain(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> }</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> </div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__chain__context.html#a656b1a040b92b732f9d3b2559c663799"> 455</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> <a class="code hl_function" href="classwinstd_1_1cert__chain__context.html#a656b1a040b92b732f9d3b2559c663799">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) <span class="keyword">const</span> <span class="keyword">noexcept</span> <span class="keyword">override</span></div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> {</div>
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> <span class="keywordflow">return</span> CertDuplicateCertificateChain(h);</div>
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> }</div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> };</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> </div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__store.html"> 464</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1cert__store.html">cert_store</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;HCERTSTORE, NULL&gt;</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> {</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1cert__store.html">cert_store</a>, NULL)</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> </div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__store.html#a80783d444ae3555aea01f959c9c01405"> 474</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1cert__store.html#a80783d444ae3555aea01f959c9c01405">~cert_store</a>()</div>
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> {</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> <a class="code hl_function" href="classwinstd_1_1cert__store.html#ab709fe692a4117173eae26e741da2069">free_internal</a>();</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> }</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> </div>
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__store.html#ade7fa4cac43ae0f21ed3fdf0fa154c15"> 489</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__store.html#ade7fa4cac43ae0f21ed3fdf0fa154c15">create</a>(_In_ LPCSTR lpszStoreProvider, _In_ DWORD dwEncodingType, _In_opt_ HCRYPTPROV_LEGACY hCryptProv, _In_ DWORD dwFlags, _In_opt_ <span class="keyword">const</span> <span class="keywordtype">void</span> *pvPara) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> {</div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h = CertOpenStore(lpszStoreProvider, dwEncodingType, hCryptProv, dwFlags, pvPara);</div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <span class="keywordflow">if</span> (h != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>) {</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> }</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> </div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__store.html#a4c56db8f6907668dffa71d66e2208eaf"> 508</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__store.html#a4c56db8f6907668dffa71d66e2208eaf">create</a>(_In_opt_ HCRYPTPROV_LEGACY hCryptProv, _In_z_ LPCTSTR szSubsystemProtocol) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> {</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h = CertOpenSystemStore(hCryptProv, szSubsystemProtocol);</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> <span class="keywordflow">if</span> (h != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>) {</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> }</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> </div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__store.html#ab709fe692a4117173eae26e741da2069"> 524</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1cert__store.html#ab709fe692a4117173eae26e741da2069">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> CertCloseStore(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, 0);</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> }</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> };</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> </div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__prov.html"> 533</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1crypt__prov.html">crypt_prov</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;HCRYPTPROV, NULL&gt;</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> {</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1crypt__prov.html">crypt_prov</a>, NULL)</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> </div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__prov.html#a91c1f3d10b03ef1b5d1e1da029060289"> 543</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1crypt__prov.html#a91c1f3d10b03ef1b5d1e1da029060289">~crypt_prov</a>()</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> {</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <a class="code hl_function" href="classwinstd_1_1crypt__prov.html#aa351d2dbc42daf51dddcf847fd95c39f">free_internal</a>();</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> }</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> </div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__prov.html#ae5be9fe3991b004f249d685a9932a0db"> 558</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1crypt__prov.html#ae5be9fe3991b004f249d685a9932a0db">create</a>(_In_opt_z_ LPCTSTR szContainer, _In_opt_z_ LPCTSTR szProvider, _In_ DWORD dwProvType, _In_ DWORD dwFlags = 0) noexcept</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> {</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keywordflow">if</span> (CryptAcquireContext(&amp;h, szContainer, szProvider, dwProvType, dwFlags)) {</div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> }</div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> </div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__prov.html#aa351d2dbc42daf51dddcf847fd95c39f"> 574</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1crypt__prov.html#aa351d2dbc42daf51dddcf847fd95c39f">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> CryptReleaseContext(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, 0);</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> }</div>
<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span> };</div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> </div>
<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__hash.html"> 583</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1crypt__hash.html">crypt_hash</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt;HCRYPTHASH, NULL&gt;</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> {</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1crypt__hash.html">crypt_hash</a>, NULL)</div>
<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"> 586</span> </div>
<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"> 587</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__hash.html#a7c688405c14799681018e0dfc8b51264"> 593</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1crypt__hash.html#a7c688405c14799681018e0dfc8b51264">~crypt_hash</a>()</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> {</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <a class="code hl_function" href="classwinstd_1_1crypt__hash.html#a3c19a87b4ff646d9e87524feac4e41b5">free_internal</a>();</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> }</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> </div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__hash.html#aee19825d23e4f0325e95c689b7dc9364"> 608</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1crypt__hash.html#aee19825d23e4f0325e95c689b7dc9364">create</a>(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_opt_ HCRYPTKEY hKey = NULL, _In_opt_ DWORD dwFlags = 0) noexcept</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> {</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <span class="keywordflow">if</span> (CryptCreateHash(hProv, Algid, hKey, dwFlags, &amp;h)) {</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> }</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> </div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__hash.html#a3c19a87b4ff646d9e87524feac4e41b5"> 624</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1crypt__hash.html#a3c19a87b4ff646d9e87524feac4e41b5">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> CryptDestroyHash(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> }</div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> </div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__hash.html#ac83439d59f00b673ae3f584e5452cdcb"> 638</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> <a class="code hl_function" href="classwinstd_1_1crypt__hash.html#ac83439d59f00b673ae3f584e5452cdcb">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) <span class="keyword">const</span> <span class="keyword">noexcept</span> <span class="keyword">override</span></div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> {</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> hNew = <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>;</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> <span class="keywordflow">return</span> CryptDuplicateHash(h, NULL, 0, &amp;hNew) ? hNew : <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>;</div>
<div class="line"><a id="l00642" name="l00642"></a><span class="lineno"> 642</span> }</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> };</div>
<div class="line"><a id="l00644" name="l00644"></a><span class="lineno"> 644</span> </div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html"> 648</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1crypt__key.html">crypt_key</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt;HCRYPTKEY, NULL&gt;</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> {</div>
<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"> 650</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1crypt__key.html">crypt_key</a>, NULL)</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> </div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00658" name="l00658"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#a396a4af75fd99c896757679a890e6e29"> 658</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1crypt__key.html#a396a4af75fd99c896757679a890e6e29">~crypt_key</a>()</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> {</div>
<div class="line"><a id="l00660" name="l00660"></a><span class="lineno"> 660</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"> 661</span> <a class="code hl_function" href="classwinstd_1_1crypt__key.html#acf2f2ad35dd7602adcdeef17f605e391">free_internal</a>();</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> }</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> </div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#a29bd17cc076234a9ed86bec0f808e920"> 669</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1crypt__key.html#a29bd17cc076234a9ed86bec0f808e920">generate</a>(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_ DWORD dwFlags) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> {</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> <span class="keywordflow">if</span> (CryptGenKey(hProv, Algid, dwFlags, &amp;h)) {</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"> 677</span> }</div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> </div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#a838eb6fc602988725a1e0c9747de5e76"> 684</a></span> <span class="keywordtype">bool</span> <span class="keyword">import</span>(_In_ HCRYPTPROV hProv, __in_bcount(dwDataLen) LPCBYTE pbData, _In_ DWORD dwDataLen, _In_ HCRYPTKEY hPubKey, _In_ DWORD dwFlags) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"> 685</span> {</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> <span class="keywordflow">if</span> (CryptImportKey(hProv, pbData, dwDataLen, hPubKey, dwFlags, &amp;h)) {</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"> 692</span> }</div>
<div class="line"><a id="l00693" name="l00693"></a><span class="lineno"> 693</span> </div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#aad8c23f4cc013bba01347ee482c931a6"> 699</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1crypt__key.html#aad8c23f4cc013bba01347ee482c931a6">import_public</a>(_In_ HCRYPTPROV hCryptProv, _In_ DWORD dwCertEncodingType, _In_ PCERT_PUBLIC_KEY_INFO pInfo) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00700" name="l00700"></a><span class="lineno"> 700</span> {</div>
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"> 701</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> <span class="keywordflow">if</span> (CryptImportPublicKeyInfo(hCryptProv, dwCertEncodingType, pInfo, &amp;h)) {</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00706" name="l00706"></a><span class="lineno"> 706</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00707" name="l00707"></a><span class="lineno"> 707</span> }</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> </div>
<div class="line"><a id="l00714" name="l00714"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#a31e237167b5831c663370902705b243d"> 714</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1crypt__key.html#a31e237167b5831c663370902705b243d">derive</a>(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_ HCRYPTHASH hBaseData, _In_ DWORD dwFlags) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"> 715</span> {</div>
<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"> 716</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> <span class="keywordflow">if</span> (CryptDeriveKey(hProv, Algid, hBaseData, dwFlags, &amp;h)) {</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> }</div>
<div class="line"><a id="l00723" name="l00723"></a><span class="lineno"> 723</span> </div>
<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#a36bfe476dc4785ac005e4e4305aa360e"> 732</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1crypt__key.html#a36bfe476dc4785ac005e4e4305aa360e">create_exp1</a>(_In_ HCRYPTPROV hProv, _In_ DWORD dwKeySpec)</div>
<div class="line"><a id="l00733" name="l00733"></a><span class="lineno"> 733</span> {</div>
<div class="line"><a id="l00734" name="l00734"></a><span class="lineno"> 734</span> <span class="keywordflow">if</span> (dwKeySpec != AT_KEYEXCHANGE &amp;&amp; dwKeySpec != AT_SIGNATURE) {</div>
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"> 735</span> SetLastError(ERROR_INVALID_PARAMETER);</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> }</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> </div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> <span class="comment">// Generate the private key.</span></div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> <span class="keywordflow">if</span> (CryptGenKey(hProv, dwKeySpec, CRYPT_EXPORTABLE, &amp;h)) {</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</span> <span class="comment">// Export the private key, we&#39;ll convert it to a private exponent of one key.</span></div>
<div class="line"><a id="l00743" name="l00743"></a><span class="lineno"> 743</span> std::vector&lt;BYTE, sanitizing_allocator&lt;BYTE&gt;&gt; key_blob;</div>
<div class="line"><a id="l00744" name="l00744"></a><span class="lineno"> 744</span> <span class="keywordflow">if</span> (CryptExportKey(h, 0, PRIVATEKEYBLOB, 0, key_blob)) {</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> CryptDestroyKey(h);</div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> </div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> <span class="comment">// Get the byte length of the key.</span></div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> <span class="keywordtype">size_t</span></div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> size_key = *<span class="keyword">reinterpret_cast&lt;</span>DWORD*<span class="keyword">&gt;</span>(&amp;key_blob[12])/8,</div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> size_prime = size_key/2;</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> </div>
<div class="line"><a id="l00752" name="l00752"></a><span class="lineno"> 752</span> <span class="comment">// Modify the Exponent in Key BLOB format</span></div>
<div class="line"><a id="l00753" name="l00753"></a><span class="lineno"> 753</span> <span class="comment">// Key BLOB format is documented in SDK</span></div>
<div class="line"><a id="l00754" name="l00754"></a><span class="lineno"> 754</span> </div>
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"> 755</span> <span class="comment">// Convert pubexp in rsapubkey to 1</span></div>
<div class="line"><a id="l00756" name="l00756"></a><span class="lineno"> 756</span> LPBYTE ptr = &amp;key_blob[16];</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> *<span class="keyword">reinterpret_cast&lt;</span>DWORD*<span class="keyword">&gt;</span>(ptr) = 1;</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> ptr += <span class="keyword">sizeof</span>(DWORD);</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> </div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> <span class="comment">// Skip modulus, prime1, prime2</span></div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> ptr += size_key;</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> ptr += size_prime;</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> ptr += size_prime;</div>
<div class="line"><a id="l00764" name="l00764"></a><span class="lineno"> 764</span> </div>
<div class="line"><a id="l00765" name="l00765"></a><span class="lineno"> 765</span> <span class="comment">// Convert exponent1 to 1</span></div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> ptr[0] = 1;</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> memset(ptr + 1, 0, size_prime - 1);</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> ptr += size_prime;</div>
<div class="line"><a id="l00769" name="l00769"></a><span class="lineno"> 769</span> </div>
<div class="line"><a id="l00770" name="l00770"></a><span class="lineno"> 770</span> <span class="comment">// Convert exponent2 to 1</span></div>
<div class="line"><a id="l00771" name="l00771"></a><span class="lineno"> 771</span> ptr[0] = 1;</div>
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"> 772</span> memset(ptr + 1, 0, size_prime - 1);</div>
<div class="line"><a id="l00773" name="l00773"></a><span class="lineno"> 773</span> ptr += size_prime;</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> </div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> <span class="comment">// Skip coefficient</span></div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> ptr += size_prime;</div>
<div class="line"><a id="l00777" name="l00777"></a><span class="lineno"> 777</span> </div>
<div class="line"><a id="l00778" name="l00778"></a><span class="lineno"> 778</span> <span class="comment">// Convert privateExponent to 1</span></div>
<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"> 779</span> ptr[0] = 1;</div>
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"> 780</span> memset(ptr + 1, 0, size_key - 1);</div>
<div class="line"><a id="l00781" name="l00781"></a><span class="lineno"> 781</span> </div>
<div class="line"><a id="l00782" name="l00782"></a><span class="lineno"> 782</span> <span class="comment">// Import the exponent-of-one private key.</span></div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> <span class="keywordflow">if</span> (CryptImportKey(hProv, key_blob.data(), <span class="keyword">static_cast&lt;</span>DWORD<span class="keyword">&gt;</span>(key_blob.size()), 0, 0, &amp;h)) {</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00785" name="l00785"></a><span class="lineno"> 785</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00786" name="l00786"></a><span class="lineno"> 786</span> }</div>
<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"> 787</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"> 788</span> CryptDestroyKey(h);</div>
<div class="line"><a id="l00789" name="l00789"></a><span class="lineno"> 789</span> }</div>
<div class="line"><a id="l00790" name="l00790"></a><span class="lineno"> 790</span> </div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> }</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span> </div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#acf2f2ad35dd7602adcdeef17f605e391"> 800</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1crypt__key.html#acf2f2ad35dd7602adcdeef17f605e391">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</span> CryptDestroyKey(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00803" name="l00803"></a><span class="lineno"> 803</span> }</div>
<div class="line"><a id="l00804" name="l00804"></a><span class="lineno"> 804</span> </div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#ac3babcd9f0cf2fca9922437e47f644d7"> 814</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> <a class="code hl_function" href="classwinstd_1_1crypt__key.html#ac3babcd9f0cf2fca9922437e47f644d7">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) <span class="keyword">const</span> <span class="keyword">noexcept</span> <span class="keyword">override</span></div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> {</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> hNew = <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>;</div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> <span class="keywordflow">return</span> CryptDuplicateKey(h, NULL, 0, &amp;hNew) ? hNew : <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>;</div>
<div class="line"><a id="l00818" name="l00818"></a><span class="lineno"> 818</span> }</div>
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"> 819</span> };</div>
<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"> 820</span> </div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span><span class="preprocessor"> #pragma warning(push)</span></div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span><span class="preprocessor"> #pragma warning(disable: 26432) </span><span class="comment">// Copy constructor and assignment operator are also present, but not detected by code analysis as they are using base type source object reference.</span></div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html"> 826</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1data__blob.html">data_blob</a> : <span class="keyword">public</span> DATA_BLOB</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> {</div>
<div class="line"><a id="l00828" name="l00828"></a><span class="lineno"> 828</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a5bed8028538f9688eea5dc8353ff69d8"> 832</a></span> <a class="code hl_function" href="classwinstd_1_1data__blob.html#a5bed8028538f9688eea5dc8353ff69d8">data_blob</a>() noexcept</div>
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"> 833</span> {</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span> cbData = 0;</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> pbData = NULL;</div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> }</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> </div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a962f93ced2fc8fb8721da62d1d80fb0a"> 841</a></span> <a class="code hl_function" href="classwinstd_1_1data__blob.html#a962f93ced2fc8fb8721da62d1d80fb0a">data_blob</a>(_In_count_(<a class="code hl_function" href="classwinstd_1_1data__blob.html#ab2ad06e271e8503d7158408773054d23">size</a>) BYTE *<a class="code hl_function" href="classwinstd_1_1data__blob.html#a498ffe8fa857c8fee0c68803049e9528">data</a>, _In_ DWORD <a class="code hl_function" href="classwinstd_1_1data__blob.html#ab2ad06e271e8503d7158408773054d23">size</a>) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00842" name="l00842"></a><span class="lineno"> 842</span> {</div>
<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"> 843</span> cbData = <a class="code hl_function" href="classwinstd_1_1data__blob.html#ab2ad06e271e8503d7158408773054d23">size</a>;</div>
<div class="line"><a id="l00844" name="l00844"></a><span class="lineno"> 844</span> pbData = <a class="code hl_function" href="classwinstd_1_1data__blob.html#a498ffe8fa857c8fee0c68803049e9528">data</a>;</div>
<div class="line"><a id="l00845" name="l00845"></a><span class="lineno"> 845</span> }</div>
<div class="line"><a id="l00846" name="l00846"></a><span class="lineno"> 846</span> </div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a4ffce3ac1f997d6268c9e2c1cb925b76"> 850</a></span> <a class="code hl_function" href="classwinstd_1_1data__blob.html#a4ffce3ac1f997d6268c9e2c1cb925b76">data_blob</a>(_In_ <span class="keyword">const</span> DATA_BLOB &amp;other)</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> {</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> cbData = other.cbData;</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span> <span class="keywordflow">if</span> (cbData) {</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span> pbData = <span class="keyword">static_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(LocalAlloc(LMEM_FIXED, other.cbData));</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> <span class="keywordflow">if</span> (!pbData) <span class="keywordflow">throw</span> <a class="code hl_class" href="classwinstd_1_1win__runtime__error.html">win_runtime_error</a>(<span class="stringliteral">&quot;LocalAlloc failed.&quot;</span>);</div>
<div class="line"><a id="l00856" name="l00856"></a><span class="lineno"> 856</span> memcpy(pbData, other.pbData, other.cbData);</div>
<div class="line"><a id="l00857" name="l00857"></a><span class="lineno"> 857</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00858" name="l00858"></a><span class="lineno"> 858</span> pbData = NULL;</div>
<div class="line"><a id="l00859" name="l00859"></a><span class="lineno"> 859</span> }</div>
<div class="line"><a id="l00860" name="l00860"></a><span class="lineno"> 860</span> </div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a1bb57925e36a5c6727077f39adfbd146"> 864</a></span> <a class="code hl_function" href="classwinstd_1_1data__blob.html#a1bb57925e36a5c6727077f39adfbd146">data_blob</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1data__blob.html">data_blob</a> &amp;&amp;other) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> {</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> cbData = other.cbData;</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> pbData = other.pbData;</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span> other.cbData = 0;</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> other.pbData = NULL;</div>
<div class="line"><a id="l00870" name="l00870"></a><span class="lineno"> 870</span> }</div>
<div class="line"><a id="l00871" name="l00871"></a><span class="lineno"> 871</span> </div>
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a1c79df4fa5413536c745258d09e69599"> 875</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1data__blob.html#a1c79df4fa5413536c745258d09e69599">~data_blob</a>()</div>
<div class="line"><a id="l00876" name="l00876"></a><span class="lineno"> 876</span> {</div>
<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"> 877</span> <span class="keywordflow">if</span> (pbData != NULL)</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> LocalFree(pbData);</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> }</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> </div>
<div class="line"><a id="l00884" name="l00884"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a2c1806cf29475d732fe0cdf14f930d48"> 884</a></span> <a class="code hl_class" href="classwinstd_1_1data__blob.html">data_blob</a>&amp; <a class="code hl_function" href="classwinstd_1_1data__blob.html#a2c1806cf29475d732fe0cdf14f930d48">operator=</a>(_In_ <span class="keyword">const</span> DATA_BLOB &amp;other)</div>
<div class="line"><a id="l00885" name="l00885"></a><span class="lineno"> 885</span> {</div>
<div class="line"><a id="l00886" name="l00886"></a><span class="lineno"> 886</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"> 887</span> cbData = other.cbData;</div>
<div class="line"><a id="l00888" name="l00888"></a><span class="lineno"> 888</span> <span class="keywordflow">if</span> (pbData)</div>
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"> 889</span> LocalFree(pbData);</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span> <span class="keywordflow">if</span> (cbData) {</div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> pbData = <span class="keyword">static_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(LocalAlloc(LMEM_FIXED, other.cbData));</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> <span class="keywordflow">if</span> (!pbData) <span class="keywordflow">throw</span> <a class="code hl_class" href="classwinstd_1_1win__runtime__error.html">win_runtime_error</a>(<span class="stringliteral">&quot;LocalAlloc failed.&quot;</span>);</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> memcpy(pbData, other.pbData, other.cbData);</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> pbData = NULL;</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span> }</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> </div>
<div class="line"><a id="l00898" name="l00898"></a><span class="lineno"> 898</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00899" name="l00899"></a><span class="lineno"> 899</span> }</div>
<div class="line"><a id="l00900" name="l00900"></a><span class="lineno"> 900</span> </div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a3c3c62cee228c581c6eabb37e5cb526b"> 904</a></span> <a class="code hl_class" href="classwinstd_1_1data__blob.html">data_blob</a>&amp; <a class="code hl_function" href="classwinstd_1_1data__blob.html#a3c3c62cee228c581c6eabb37e5cb526b">operator=</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1data__blob.html">data_blob</a> &amp;&amp;other) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> {</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> cbData = other.cbData;</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> <span class="keywordflow">if</span> (pbData)</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> LocalFree(pbData);</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span> pbData = other.pbData;</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> other.cbData = 0;</div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span> other.pbData = NULL;</div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</span> }</div>
<div class="line"><a id="l00914" name="l00914"></a><span class="lineno"> 914</span> </div>
<div class="line"><a id="l00915" name="l00915"></a><span class="lineno"> 915</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00916" name="l00916"></a><span class="lineno"> 916</span> }</div>
<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"> 917</span> </div>
<div class="line"><a id="l00921" name="l00921"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#ab2ad06e271e8503d7158408773054d23"> 921</a></span> DWORD <a class="code hl_function" href="classwinstd_1_1data__blob.html#ab2ad06e271e8503d7158408773054d23">size</a>() const noexcept</div>
<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"> 922</span> {</div>
<div class="line"><a id="l00923" name="l00923"></a><span class="lineno"> 923</span> <span class="keywordflow">return</span> cbData;</div>
<div class="line"><a id="l00924" name="l00924"></a><span class="lineno"> 924</span> }</div>
<div class="line"><a id="l00925" name="l00925"></a><span class="lineno"> 925</span> </div>
<div class="line"><a id="l00929" name="l00929"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a498ffe8fa857c8fee0c68803049e9528"> 929</a></span> <span class="keyword">const</span> BYTE* <a class="code hl_function" href="classwinstd_1_1data__blob.html#a498ffe8fa857c8fee0c68803049e9528">data</a>() const noexcept</div>
<div class="line"><a id="l00930" name="l00930"></a><span class="lineno"> 930</span> {</div>
<div class="line"><a id="l00931" name="l00931"></a><span class="lineno"> 931</span> <span class="keywordflow">return</span> pbData;</div>
<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"> 932</span> }</div>
<div class="line"><a id="l00933" name="l00933"></a><span class="lineno"> 933</span> </div>
<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a3cb5b805288c8d74cd103cac3acf10bf"> 937</a></span> BYTE* <a class="code hl_function" href="classwinstd_1_1data__blob.html#a3cb5b805288c8d74cd103cac3acf10bf">data</a>() noexcept</div>
<div class="line"><a id="l00938" name="l00938"></a><span class="lineno"> 938</span> {</div>
<div class="line"><a id="l00939" name="l00939"></a><span class="lineno"> 939</span> <span class="keywordflow">return</span> pbData;</div>
<div class="line"><a id="l00940" name="l00940"></a><span class="lineno"> 940</span> }</div>
<div class="line"><a id="l00941" name="l00941"></a><span class="lineno"> 941</span> };</div>
<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"> 942</span><span class="preprocessor"> #pragma warning(pop)</span></div>
<div class="line"><a id="l00943" name="l00943"></a><span class="lineno"> 943</span> </div>
<div class="line"><a id="l00945" name="l00945"></a><span class="lineno"> 945</span>}</div>
<div class="ttc" id="aclasswinstd_1_1cert__chain__context_html"><div class="ttname"><a href="classwinstd_1_1cert__chain__context.html">winstd::cert_chain_context</a></div><div class="ttdoc">PCCERT_CHAIN_CONTEXT wrapper class.</div><div class="ttdef"><b>Definition:</b> Crypt.h:401</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__chain__context_html_a656b1a040b92b732f9d3b2559c663799"><div class="ttname"><a href="classwinstd_1_1cert__chain__context.html#a656b1a040b92b732f9d3b2559c663799">winstd::cert_chain_context::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(_In_ handle_type h) const noexcept override</div><div class="ttdoc">Duplicates the certificate chain context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:455</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__chain__context_html_a9f446f3ac5ad702c98d16d296adab7a2"><div class="ttname"><a href="classwinstd_1_1cert__chain__context.html#a9f446f3ac5ad702c98d16d296adab7a2">winstd::cert_chain_context::create</a></div><div class="ttdeci">bool create(_In_opt_ HCERTCHAINENGINE hChainEngine, _In_ PCCERT_CONTEXT pCertContext, _In_opt_ LPFILETIME pTime, _In_opt_ HCERTSTORE hAdditionalStore, _In_ PCERT_CHAIN_PARA pChainPara, _In_ DWORD dwFlags, __reserved LPVOID pvReserved=NULL) noexcept</div><div class="ttdoc">Creates the certificate chain context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:425</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__chain__context_html_a9f8b8604ea5766ffa59726b46e210eb3"><div class="ttname"><a href="classwinstd_1_1cert__chain__context.html#a9f8b8604ea5766ffa59726b46e210eb3">winstd::cert_chain_context::~cert_chain_context</a></div><div class="ttdeci">virtual ~cert_chain_context()</div><div class="ttdoc">Destroys the certificate chain context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:410</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__chain__context_html_ae15044b1a7be10d96643d3921e149ee6"><div class="ttname"><a href="classwinstd_1_1cert__chain__context.html#ae15044b1a7be10d96643d3921e149ee6">winstd::cert_chain_context::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Destroys the certificate chain context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:441</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html"><div class="ttname"><a href="classwinstd_1_1cert__context.html">winstd::cert_context</a></div><div class="ttdoc">PCCERT_CONTEXT wrapper class.</div><div class="ttdef"><b>Definition:</b> Crypt.h:252</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a094988aa40f5ca3148bad44ff568e448"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a094988aa40f5ca3148bad44ff568e448">winstd::cert_context::operator==</a></div><div class="ttdeci">bool operator==(_In_ const handle_type &amp;other) const noexcept</div><div class="ttdoc">Is certificate equal to?</div><div class="ttdef"><b>Definition:</b> Crypt.h:294</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a1615ec6693eb68764543456ad418a970"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a1615ec6693eb68764543456ad418a970">winstd::cert_context::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Destroys the certificate context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:377</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a1c545da45189367bcfeead3809c3e393"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a1c545da45189367bcfeead3809c3e393">winstd::cert_context::operator&lt;=</a></div><div class="ttdeci">bool operator&lt;=(_In_ const handle_type &amp;other) const noexcept</div><div class="ttdoc">Is certificate less than or equal?</div><div class="ttdef"><b>Definition:</b> Crypt.h:353</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a23defa4c6756cc3da3965d6fa1911340"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a23defa4c6756cc3da3965d6fa1911340">winstd::cert_context::create</a></div><div class="ttdeci">bool create(_In_ DWORD dwCertEncodingType, _In_ LPCBYTE pbCertEncoded, _In_ DWORD cbCertEncoded) noexcept</div><div class="ttdoc">Creates the certificate context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:276</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a27e4d118208c02e4023d0456124522af"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a27e4d118208c02e4023d0456124522af">winstd::cert_context::operator!=</a></div><div class="ttdeci">bool operator!=(_In_ const handle_type &amp;other) const noexcept</div><div class="ttdoc">Is certificate not equal to?</div><div class="ttdef"><b>Definition:</b> Crypt.h:310</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a30e6faf35a3d6a0817927a811f55817d"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a30e6faf35a3d6a0817927a811f55817d">winstd::cert_context::operator&gt;=</a></div><div class="ttdeci">bool operator&gt;=(_In_ const handle_type &amp;other) const noexcept</div><div class="ttdoc">Is certificate greater than or equal?</div><div class="ttdef"><b>Definition:</b> Crypt.h:366</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a7f320b91ee26685eb9f9702a011ecc74"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a7f320b91ee26685eb9f9702a011ecc74">winstd::cert_context::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(_In_ const handle_type &amp;other) const noexcept</div><div class="ttdoc">Is certificate less than?</div><div class="ttdef"><b>Definition:</b> Crypt.h:323</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_ae3740c4c2e9fd7caedfda928add3df0f"><div class="ttname"><a href="classwinstd_1_1cert__context.html#ae3740c4c2e9fd7caedfda928add3df0f">winstd::cert_context::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(_In_ handle_type h) const noexcept override</div><div class="ttdoc">Duplicates the certificate context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:391</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_af307ba398c117eed2731e532551c7e32"><div class="ttname"><a href="classwinstd_1_1cert__context.html#af307ba398c117eed2731e532551c7e32">winstd::cert_context::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(_In_ const handle_type &amp;other) const noexcept</div><div class="ttdoc">Is certificate greater than?</div><div class="ttdef"><b>Definition:</b> Crypt.h:338</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_affa4b97554e6676d392301b5928130fd"><div class="ttname"><a href="classwinstd_1_1cert__context.html#affa4b97554e6676d392301b5928130fd">winstd::cert_context::~cert_context</a></div><div class="ttdeci">virtual ~cert_context()</div><div class="ttdoc">Destroys the certificate context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:261</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__store_html"><div class="ttname"><a href="classwinstd_1_1cert__store.html">winstd::cert_store</a></div><div class="ttdoc">HCERTSTORE wrapper class.</div><div class="ttdef"><b>Definition:</b> Crypt.h:465</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__store_html_a4c56db8f6907668dffa71d66e2208eaf"><div class="ttname"><a href="classwinstd_1_1cert__store.html#a4c56db8f6907668dffa71d66e2208eaf">winstd::cert_store::create</a></div><div class="ttdeci">bool create(_In_opt_ HCRYPTPROV_LEGACY hCryptProv, _In_z_ LPCTSTR szSubsystemProtocol) noexcept</div><div class="ttdoc">Opens the most common system certificate store. To open certificate stores with more complex requirem...</div><div class="ttdef"><b>Definition:</b> Crypt.h:508</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__store_html_a80783d444ae3555aea01f959c9c01405"><div class="ttname"><a href="classwinstd_1_1cert__store.html#a80783d444ae3555aea01f959c9c01405">winstd::cert_store::~cert_store</a></div><div class="ttdeci">virtual ~cert_store()</div><div class="ttdoc">Closes the certificate store.</div><div class="ttdef"><b>Definition:</b> Crypt.h:474</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__store_html_ab709fe692a4117173eae26e741da2069"><div class="ttname"><a href="classwinstd_1_1cert__store.html#ab709fe692a4117173eae26e741da2069">winstd::cert_store::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Closes the certificate store.</div><div class="ttdef"><b>Definition:</b> Crypt.h:524</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__store_html_ade7fa4cac43ae0f21ed3fdf0fa154c15"><div class="ttname"><a href="classwinstd_1_1cert__store.html#ade7fa4cac43ae0f21ed3fdf0fa154c15">winstd::cert_store::create</a></div><div class="ttdeci">bool create(_In_ LPCSTR lpszStoreProvider, _In_ DWORD dwEncodingType, _In_opt_ HCRYPTPROV_LEGACY hCryptProv, _In_ DWORD dwFlags, _In_opt_ const void *pvPara) noexcept</div><div class="ttdoc">Opens the certificate store.</div><div class="ttdef"><b>Definition:</b> Crypt.h:489</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__hash_html"><div class="ttname"><a href="classwinstd_1_1crypt__hash.html">winstd::crypt_hash</a></div><div class="ttdoc">HCRYPTHASH wrapper class.</div><div class="ttdef"><b>Definition:</b> Crypt.h:584</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__hash_html_a3c19a87b4ff646d9e87524feac4e41b5"><div class="ttname"><a href="classwinstd_1_1crypt__hash.html#a3c19a87b4ff646d9e87524feac4e41b5">winstd::crypt_hash::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Destroys the hash context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:624</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__hash_html_a7c688405c14799681018e0dfc8b51264"><div class="ttname"><a href="classwinstd_1_1crypt__hash.html#a7c688405c14799681018e0dfc8b51264">winstd::crypt_hash::~crypt_hash</a></div><div class="ttdeci">virtual ~crypt_hash()</div><div class="ttdoc">Destroys the hash context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:593</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__hash_html_ac83439d59f00b673ae3f584e5452cdcb"><div class="ttname"><a href="classwinstd_1_1crypt__hash.html#ac83439d59f00b673ae3f584e5452cdcb">winstd::crypt_hash::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(_In_ handle_type h) const noexcept override</div><div class="ttdoc">Duplicates the hash context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:638</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__hash_html_aee19825d23e4f0325e95c689b7dc9364"><div class="ttname"><a href="classwinstd_1_1crypt__hash.html#aee19825d23e4f0325e95c689b7dc9364">winstd::crypt_hash::create</a></div><div class="ttdeci">bool create(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_opt_ HCRYPTKEY hKey=NULL, _In_opt_ DWORD dwFlags=0) noexcept</div><div class="ttdoc">Creates the hash context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:608</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__key_html"><div class="ttname"><a href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a></div><div class="ttdoc">HCRYPTKEY wrapper class.</div><div class="ttdef"><b>Definition:</b> Crypt.h:649</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__key_html_a29bd17cc076234a9ed86bec0f808e920"><div class="ttname"><a href="classwinstd_1_1crypt__key.html#a29bd17cc076234a9ed86bec0f808e920">winstd::crypt_key::generate</a></div><div class="ttdeci">bool generate(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_ DWORD dwFlags) noexcept</div><div class="ttdoc">Generates the key.</div><div class="ttdef"><b>Definition:</b> Crypt.h:669</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__key_html_a31e237167b5831c663370902705b243d"><div class="ttname"><a href="classwinstd_1_1crypt__key.html#a31e237167b5831c663370902705b243d">winstd::crypt_key::derive</a></div><div class="ttdeci">bool derive(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_ HCRYPTHASH hBaseData, _In_ DWORD dwFlags) noexcept</div><div class="ttdoc">Generates cryptographic session keys derived from a base data value.</div><div class="ttdef"><b>Definition:</b> Crypt.h:714</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__key_html_a36bfe476dc4785ac005e4e4305aa360e"><div class="ttname"><a href="classwinstd_1_1crypt__key.html#a36bfe476dc4785ac005e4e4305aa360e">winstd::crypt_key::create_exp1</a></div><div class="ttdeci">bool create_exp1(_In_ HCRYPTPROV hProv, _In_ DWORD dwKeySpec)</div><div class="ttdoc">Creates Exponent-of-one key.</div><div class="ttdef"><b>Definition:</b> Crypt.h:732</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__key_html_a396a4af75fd99c896757679a890e6e29"><div class="ttname"><a href="classwinstd_1_1crypt__key.html#a396a4af75fd99c896757679a890e6e29">winstd::crypt_key::~crypt_key</a></div><div class="ttdeci">virtual ~crypt_key()</div><div class="ttdoc">Destroys the key.</div><div class="ttdef"><b>Definition:</b> Crypt.h:658</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__key_html_aad8c23f4cc013bba01347ee482c931a6"><div class="ttname"><a href="classwinstd_1_1crypt__key.html#aad8c23f4cc013bba01347ee482c931a6">winstd::crypt_key::import_public</a></div><div class="ttdeci">bool import_public(_In_ HCRYPTPROV hCryptProv, _In_ DWORD dwCertEncodingType, _In_ PCERT_PUBLIC_KEY_INFO pInfo) noexcept</div><div class="ttdoc">Imports the public key.</div><div class="ttdef"><b>Definition:</b> Crypt.h:699</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__key_html_ac3babcd9f0cf2fca9922437e47f644d7"><div class="ttname"><a href="classwinstd_1_1crypt__key.html#ac3babcd9f0cf2fca9922437e47f644d7">winstd::crypt_key::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(_In_ handle_type h) const noexcept override</div><div class="ttdoc">Duplicates the key.</div><div class="ttdef"><b>Definition:</b> Crypt.h:814</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__key_html_acf2f2ad35dd7602adcdeef17f605e391"><div class="ttname"><a href="classwinstd_1_1crypt__key.html#acf2f2ad35dd7602adcdeef17f605e391">winstd::crypt_key::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Destroys the key.</div><div class="ttdef"><b>Definition:</b> Crypt.h:800</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__prov_html"><div class="ttname"><a href="classwinstd_1_1crypt__prov.html">winstd::crypt_prov</a></div><div class="ttdoc">HCRYPTPROV wrapper class.</div><div class="ttdef"><b>Definition:</b> Crypt.h:534</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__prov_html_a91c1f3d10b03ef1b5d1e1da029060289"><div class="ttname"><a href="classwinstd_1_1crypt__prov.html#a91c1f3d10b03ef1b5d1e1da029060289">winstd::crypt_prov::~crypt_prov</a></div><div class="ttdeci">virtual ~crypt_prov()</div><div class="ttdoc">Releases the cryptographic context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:543</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__prov_html_aa351d2dbc42daf51dddcf847fd95c39f"><div class="ttname"><a href="classwinstd_1_1crypt__prov.html#aa351d2dbc42daf51dddcf847fd95c39f">winstd::crypt_prov::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Releases the cryptographic context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:574</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__prov_html_ae5be9fe3991b004f249d685a9932a0db"><div class="ttname"><a href="classwinstd_1_1crypt__prov.html#ae5be9fe3991b004f249d685a9932a0db">winstd::crypt_prov::create</a></div><div class="ttdeci">bool create(_In_opt_z_ LPCTSTR szContainer, _In_opt_z_ LPCTSTR szProvider, _In_ DWORD dwProvType, _In_ DWORD dwFlags=0) noexcept</div><div class="ttdoc">Acquires the cryptographic context.</div><div class="ttdef"><b>Definition:</b> Crypt.h:558</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html"><div class="ttname"><a href="classwinstd_1_1data__blob.html">winstd::data_blob</a></div><div class="ttdoc">DATA_BLOB wrapper class.</div><div class="ttdef"><b>Definition:</b> Crypt.h:827</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a1bb57925e36a5c6727077f39adfbd146"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a1bb57925e36a5c6727077f39adfbd146">winstd::data_blob::data_blob</a></div><div class="ttdeci">data_blob(_Inout_ data_blob &amp;&amp;other) noexcept</div><div class="ttdoc">Move an existing BLOB.</div><div class="ttdef"><b>Definition:</b> Crypt.h:864</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a1c79df4fa5413536c745258d09e69599"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a1c79df4fa5413536c745258d09e69599">winstd::data_blob::~data_blob</a></div><div class="ttdeci">virtual ~data_blob()</div><div class="ttdoc">Destroys the BLOB.</div><div class="ttdef"><b>Definition:</b> Crypt.h:875</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a2c1806cf29475d732fe0cdf14f930d48"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a2c1806cf29475d732fe0cdf14f930d48">winstd::data_blob::operator=</a></div><div class="ttdeci">data_blob &amp; operator=(_In_ const DATA_BLOB &amp;other)</div><div class="ttdoc">Copy an existing BLOB.</div><div class="ttdef"><b>Definition:</b> Crypt.h:884</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a3c3c62cee228c581c6eabb37e5cb526b"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a3c3c62cee228c581c6eabb37e5cb526b">winstd::data_blob::operator=</a></div><div class="ttdeci">data_blob &amp; operator=(_Inout_ data_blob &amp;&amp;other) noexcept</div><div class="ttdoc">Move an existing BLOB.</div><div class="ttdef"><b>Definition:</b> Crypt.h:904</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a3cb5b805288c8d74cd103cac3acf10bf"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a3cb5b805288c8d74cd103cac3acf10bf">winstd::data_blob::data</a></div><div class="ttdeci">BYTE * data() noexcept</div><div class="ttdoc">Get BLOB buffer.</div><div class="ttdef"><b>Definition:</b> Crypt.h:937</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a498ffe8fa857c8fee0c68803049e9528"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a498ffe8fa857c8fee0c68803049e9528">winstd::data_blob::data</a></div><div class="ttdeci">const BYTE * data() const noexcept</div><div class="ttdoc">Get BLOB buffer.</div><div class="ttdef"><b>Definition:</b> Crypt.h:929</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a4ffce3ac1f997d6268c9e2c1cb925b76"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a4ffce3ac1f997d6268c9e2c1cb925b76">winstd::data_blob::data_blob</a></div><div class="ttdeci">data_blob(_In_ const DATA_BLOB &amp;other)</div><div class="ttdoc">Duplicate an existing BLOB.</div><div class="ttdef"><b>Definition:</b> Crypt.h:850</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a5bed8028538f9688eea5dc8353ff69d8"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a5bed8028538f9688eea5dc8353ff69d8">winstd::data_blob::data_blob</a></div><div class="ttdeci">data_blob() noexcept</div><div class="ttdoc">Initializes an empty BLOB.</div><div class="ttdef"><b>Definition:</b> Crypt.h:832</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a962f93ced2fc8fb8721da62d1d80fb0a"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a962f93ced2fc8fb8721da62d1d80fb0a">winstd::data_blob::data_blob</a></div><div class="ttdeci">data_blob(_In_count_(size) BYTE *data, _In_ DWORD size) noexcept</div><div class="ttdoc">Initializes a BLOB from existing data.</div><div class="ttdef"><b>Definition:</b> Crypt.h:841</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_ab2ad06e271e8503d7158408773054d23"><div class="ttname"><a href="classwinstd_1_1data__blob.html#ab2ad06e271e8503d7158408773054d23">winstd::data_blob::size</a></div><div class="ttdeci">DWORD size() const noexcept</div><div class="ttdoc">Get BLOB size.</div><div class="ttdef"><b>Definition:</b> Crypt.h:921</div></div>
<div class="ttc" id="aclasswinstd_1_1dplhandle_html"><div class="ttname"><a href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a></div><div class="ttdoc">Base abstract template class to support object handle keeping for objects that support handle duplica...</div><div class="ttdef"><b>Definition:</b> Common.h:844</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html"><div class="ttname"><a href="classwinstd_1_1handle.html">winstd::handle</a></div><div class="ttdoc">Base abstract template class to support generic object handle keeping.</div><div class="ttdef"><b>Definition:</b> Common.h:580</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a3dda19199ecfbc378c932e7d84d0ea81"><div class="ttname"><a href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;::handle_type</a></div><div class="ttdeci">PCCERT_CONTEXT handle_type</div><div class="ttdoc">Datatype of the object handle this template class handles.</div><div class="ttdef"><b>Definition:</b> Common.h:585</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a98d09f9c2970890a5c83a0c2aedd3a30"><div class="ttname"><a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;::attach</a></div><div class="ttdeci">void attach(_In_opt_ handle_type h) noexcept</div><div class="ttdoc">Sets a new object handle for the class.</div><div class="ttdef"><b>Definition:</b> Common.h:794</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_aabde3f16fd98b06b3b0282ef7806eb59"><div class="ttname"><a href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;::m_h</a></div><div class="ttdeci">handle_type m_h</div><div class="ttdoc">Object handle.</div><div class="ttdef"><b>Definition:</b> Common.h:833</div></div>
<div class="ttc" id="aclasswinstd_1_1win__runtime__error_html"><div class="ttname"><a href="classwinstd_1_1win__runtime__error.html">winstd::win_runtime_error</a></div><div class="ttdoc">Windows runtime error.</div><div class="ttdef"><b>Definition:</b> Common.h:1435</div></div>
<div class="ttc" id="agroup___win_std_general_html_ga3ca39107a61bbcd05f901898ec584986"><div class="ttname"><a href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a></div><div class="ttdeci">#define WINSTD_STACK_BUFFER_BYTES</div><div class="ttdoc">Size of the stack buffer in bytes used for initial system function call.</div><div class="ttdef"><b>Definition:</b> Common.h:80</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga2768b80bcf124e3127f0b7fe64395adb"><div class="ttname"><a href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">WINSTD_DPLHANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_DPLHANDLE_IMPL(C, INVAL)</div><div class="ttdoc">Implements default constructors and operators to prevent their auto-generation by compiler.</div><div class="ttdef"><b>Definition:</b> Common.h:150</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga419efffd12b5c96abc8a275ba375ca60"><div class="ttname"><a href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, INVAL)</div><div class="ttdoc">Implements default constructors and operators to prevent their auto-generation by compiler.</div><div class="ttdef"><b>Definition:</b> Common.h:138</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_gacf43e306968474166474090690857e1c"><div class="ttname"><a href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;::invalid</a></div><div class="ttdeci">static const PCCERT_CONTEXT invalid</div><div class="ttdoc">Invalid handle value.</div><div class="ttdef"><b>Definition:</b> Common.h:590</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

625
_e_a_p_8h_source.html Normal file
View File

@ -0,0 +1,625 @@
<!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/EAP.h Source File</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="headertitle"><div class="title">EAP.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;eaphostpeerconfigapis.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;eaptypes.h&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;EapHostPeerTypes.h&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &lt;eapmethodtypes.h&gt;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;eappapis.h&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;WinSock2.h&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#pragma warning(disable: 26812) </span><span class="comment">// Windows EAP API is using unscoped enums</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#pragma warning(disable: 4505) </span><span class="comment">// Don&#39;t warn on unused code</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="keyword">static</span> <span class="keywordtype">bool</span> operator==(_In_ <span class="keyword">const</span> EAP_METHOD_TYPE &amp;a, _In_ <span class="keyword">const</span> EAP_METHOD_TYPE &amp;b) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>{</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">return</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> a.eapType.type == b.eapType.type &amp;&amp;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> a.eapType.dwVendorId == b.eapType.dwVendorId &amp;&amp;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> a.eapType.dwVendorType == b.eapType.dwVendorType &amp;&amp;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> a.dwAuthorId == a.dwAuthorId;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>}</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="keyword">static</span> <span class="keywordtype">bool</span> operator!=(_In_ <span class="keyword">const</span> EAP_METHOD_TYPE &amp;a, _In_ <span class="keyword">const</span> EAP_METHOD_TYPE &amp;b) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span>{</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">return</span> !operator==(a, b);</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span>}</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span>{</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="preprocessor"> #pragma warning(suppress: 4480)</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#ga50f5584ca708165f43cec42c42243315"> 79</a></span> <span class="keyword">enum class</span> <a class="code hl_enumeration" href="group___win_std_e_a_p_a_p_i.html#ga50f5584ca708165f43cec42c42243315">eap_type_t</a> : <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a5e543256c480ac577d30f76f9120eb74">undefined</a> = 0, </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315aff483d1ff591898a9942916050d2ca3f">identity</a> = 1, </div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a0cfd653d5d3e1e9fdbb644523d77971d">notification</a> = 2, </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315aa755bc3c9689ab5eaedd25afc4a79b9f">nak</a> = 3, </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a1f61e547b81232a658f0704e85488a6c">md5_challenge</a> = 4, </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315ad2270e7120a93c8b0a6a34760e654c7d">otp</a> = 5, </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a3761e7920c97542314b1aa50434f9293">gtc</a> = 6, </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315aa60aeea3d4cdbb5049fc37164644bb34">tls</a> = 13, </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315accd905a8bbc449980aa7f26fcbd206e2">ttls</a> = 21, </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315ab62d9100a672844bff4ac5cbc8de9fce">peap</a> = 25, </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315af579ec4460aed7126de9ed539845a0f4">mschapv2</a> = 26, </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315ae19141eb8aa04ffb76d616409efcdf03">ms_auth_tlv</a> = 33, </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a811f41353a6e1e0ecf7a03308c4f8e0e">gtcp</a> = 128 + <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a3761e7920c97542314b1aa50434f9293">gtc</a>, </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a262032c7bb2ef8f08d5b85ee63f79eff">legacy_pap</a> = 192, </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315adfe86ce1b68c3cdefe90e35904fc744a">legacy_mschapv2</a> = 193, </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315aea2b2676c28c0db26d39331a336c6b92">start</a> = 1, </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a7f021a1415b86f2d013b2618fb31ae53">end</a> = 192, </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a8fb40a36c92da4be50f5052602e6fcf4">noneap_start</a> = 192, </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <a class="code hl_enumvalue" href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315aa93b0d36fa0eb07db651bb830470be12">noneap_end</a> = 254, </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> };</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_memory__delete.html"> 107</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structwinstd_1_1_eap_host_peer_free_memory__delete.html">EapHostPeerFreeMemory_delete</a></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_memory__delete.html#af6220ac1d99cc114670c363ecfe64557"> 112</a></span> <a class="code hl_function" href="structwinstd_1_1_eap_host_peer_free_memory__delete.html#af6220ac1d99cc114670c363ecfe64557">EapHostPeerFreeMemory_delete</a>() noexcept {}</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _T&gt;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_memory__delete.html#a20b97a65abb2063a31fc8fd7a9cb0f1f"> 120</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structwinstd_1_1_eap_host_peer_free_memory__delete.html#a20b97a65abb2063a31fc8fd7a9cb0f1f">operator()</a>(_T *_Ptr)<span class="keyword"> const</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> EapHostPeerFreeMemory((BYTE*)_Ptr);</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> };</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#ga25f2a0eea11e8332bfcec6b032a17a05"> 129</a></span> <span class="keyword">typedef</span> std::unique_ptr&lt;BYTE[], EapHostPeerFreeMemory_delete&gt; <a class="code hl_typedef" href="group___win_std_e_a_p_a_p_i.html#ga25f2a0eea11e8332bfcec6b032a17a05">eap_blob</a>;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html"> 134</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html">EapHostPeerFreeRuntimeMemory_delete</a></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> {</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#afdd46f3517e59ce19fdaddebbbaeb10d"> 139</a></span> <a class="code hl_function" href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#afdd46f3517e59ce19fdaddebbbaeb10d">EapHostPeerFreeRuntimeMemory_delete</a>() noexcept {}</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _T&gt;</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#a4c573463394fc3ea6781f796d29fe26e"> 145</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#a4c573463394fc3ea6781f796d29fe26e">operator()</a>(_T *_Ptr)<span class="keyword"> const</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> EapHostPeerFreeRuntimeMemory((BYTE*)_Ptr);</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> }</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> };</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#gabd2665596cc49191b36e6378147c47ad"> 154</a></span> <span class="keyword">typedef</span> std::unique_ptr&lt;BYTE[], EapHostPeerFreeRuntimeMemory_delete&gt; <a class="code hl_typedef" href="group___win_std_e_a_p_a_p_i.html#gabd2665596cc49191b36e6378147c47ad">eap_blob_runtime</a>;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html"> 159</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html">EapHostPeerFreeErrorMemory_delete</a></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> {</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a43f0b1a440b9a431e9fee807bc1386be"> 164</a></span> <a class="code hl_function" href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a43f0b1a440b9a431e9fee807bc1386be">EapHostPeerFreeErrorMemory_delete</a>() noexcept {}</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a5dd9a56b7344ef66c378041a97fdb307"> 171</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a5dd9a56b7344ef66c378041a97fdb307">operator()</a>(EAP_ERROR *_Ptr) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> {</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> EapHostPeerFreeErrorMemory(_Ptr);</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> };</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#ga910edec3d3d1ba4f6f306dcafdc2117a"> 180</a></span> <span class="keyword">typedef</span> std::unique_ptr&lt;EAP_ERROR, EapHostPeerFreeErrorMemory_delete&gt; <a class="code hl_typedef" href="group___win_std_e_a_p_a_p_i.html#ga910edec3d3d1ba4f6f306dcafdc2117a">eap_error</a>;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html"> 185</a></span> <span class="keyword">struct </span><a class="code hl_struct" href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html">EapHostPeerFreeEapError_delete</a></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> {</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ab4dd927d7e4cd40b2ce7068fe252b76e"> 190</a></span> <a class="code hl_function" href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ab4dd927d7e4cd40b2ce7068fe252b76e">EapHostPeerFreeEapError_delete</a>() noexcept {}</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ae6aa071d5b9824f6062746360478a683"> 197</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ae6aa071d5b9824f6062746360478a683">operator()</a>(EAP_ERROR *_Ptr) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> {</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> EapHostPeerFreeEapError(_Ptr);</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> }</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> };</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#ga102f6e28f2ae479af7b6555894f110ac"> 206</a></span> <span class="keyword">typedef</span> std::unique_ptr&lt;EAP_ERROR, EapHostPeerFreeEapError_delete&gt; <a class="code hl_typedef" href="group___win_std_e_a_p_a_p_i.html#ga102f6e28f2ae479af7b6555894f110ac">eap_error_runtime</a>;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="preprocessor"> #pragma warning(push)</span></div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span><span class="preprocessor"> #pragma warning(disable: 26432) </span><span class="comment">// Copy constructor and assignment operator are also present, but not detected by code analysis as they are using base type source object reference.</span></div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html"> 213</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1eap__attr.html">eap_attr</a> : <span class="keyword">public</span> EAP_ATTRIBUTE</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> {</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#a015a82d7f91679f76ca590bbdabc04c1"> 219</a></span> <a class="code hl_function" href="classwinstd_1_1eap__attr.html#a015a82d7f91679f76ca590bbdabc04c1">eap_attr</a>() noexcept</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> {</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> eaType = eatReserved;</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> dwLength = 0;</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> pValue = NULL;</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> }</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#a472e8b06aaef71131a37b3c48d1a9b4f"> 229</a></span> <a class="code hl_function" href="classwinstd_1_1eap__attr.html#a472e8b06aaef71131a37b3c48d1a9b4f">eap_attr</a>(_In_ <span class="keyword">const</span> EAP_ATTRIBUTE &amp;a)</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> {</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> eaType = a.eaType;</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> dwLength = a.dwLength;</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keywordflow">if</span> (a.dwLength) {</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> pValue = <span class="keyword">new</span> BYTE[a.dwLength];</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> assert(pValue);</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> memcpy(pValue, a.pValue, a.dwLength);</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> pValue = NULL;</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> }</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> </div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#a1e59dbfc56d8c9450fd27a6d7e049ff1"> 244</a></span> <a class="code hl_function" href="classwinstd_1_1eap__attr.html#a1e59dbfc56d8c9450fd27a6d7e049ff1">eap_attr</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1eap__attr.html">eap_attr</a> &amp;&amp;a) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> {</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> eaType = a.eaType;</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> dwLength = a.dwLength;</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">if</span> (a.dwLength) {</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> pValue = a.pValue;</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> a.dwLength = 0;</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> a.pValue = NULL;</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> pValue = NULL;</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> }</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> </div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#a085d6ade88a42ba69cf128a97b7c9b0d"> 259</a></span> <a class="code hl_function" href="classwinstd_1_1eap__attr.html#a085d6ade88a42ba69cf128a97b7c9b0d">~eap_attr</a>()</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> {</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="keywordflow">if</span> (pValue)</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keyword">delete</span> [] pValue;</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> }</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> </div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#af82d813fa541bd218afb672a8886c287"> 268</a></span> <a class="code hl_class" href="classwinstd_1_1eap__attr.html">eap_attr</a>&amp; <a class="code hl_function" href="classwinstd_1_1eap__attr.html#af82d813fa541bd218afb672a8886c287">operator=</a>(_In_ <span class="keyword">const</span> EAP_ATTRIBUTE &amp;a)</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> {</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;a) {</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> eaType = a.eaType;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> dwLength = a.dwLength;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">if</span> (a.dwLength) {</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> BYTE *pValueNew = <span class="keyword">new</span> BYTE[a.dwLength];</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">if</span> (pValueNew) {</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordflow">if</span> (pValue)</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keyword">delete</span> [] pValue;</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> memcpy(pValueNew, a.pValue, a.dwLength);</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> pValue = pValueNew;</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> assert(0); <span class="comment">// Could not allocate memory</span></div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> pValue = NULL;</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> }</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> }</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#a7ad2a3d553168173588261656a151c30"> 291</a></span> <a class="code hl_class" href="classwinstd_1_1eap__attr.html">eap_attr</a>&amp; <a class="code hl_function" href="classwinstd_1_1eap__attr.html#a7ad2a3d553168173588261656a151c30">operator=</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1eap__attr.html">eap_attr</a> &amp;&amp;a) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> {</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;a) {</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> eaType = a.eaType;</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> dwLength = a.dwLength;</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">if</span> (pValue)</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keyword">delete</span> [] pValue;</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">if</span> (a.dwLength) {</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> pValue = a.pValue;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> a.dwLength = 0;</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> a.pValue = NULL;</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> pValue = NULL;</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> }</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> }</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> </div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#acd0112e3997ba52c54a905360b4af5e6"> 315</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1eap__attr.html#acd0112e3997ba52c54a905360b4af5e6">create_ms_mppe_key</a>(_In_ BYTE bVendorType, _In_count_(nKeySize) LPCBYTE pbKey, _In_ BYTE nKeySize)</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> {</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">const</span> BYTE nPaddingLength = <span class="keyword">static_cast&lt;</span>BYTE<span class="keyword">&gt;</span>((16 - (1 + <span class="keyword">static_cast&lt;</span>DWORD<span class="keyword">&gt;</span>(nKeySize))) % 16);</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="keyword">const</span> DWORD dwLengthNew =</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> 4 + <span class="comment">// Vendor-Id</span></div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> 1 + <span class="comment">// Vendor type</span></div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> 1 + <span class="comment">// Vendor length</span></div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> 2 + <span class="comment">// Salt</span></div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> 1 + <span class="comment">// Key-Length</span></div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> nKeySize + <span class="comment">// Key</span></div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> nPaddingLength; <span class="comment">// Padding</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> </div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span><span class="preprocessor"> #pragma warning(push)</span></div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span><span class="preprocessor"> #pragma warning(disable: 6386)</span></div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> LPBYTE p = <span class="keyword">new</span> BYTE[dwLengthNew];</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> p[0] = 0x00; <span class="comment">// Vendor-Id (0x137 = 311 = Microsoft)</span></div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> p[1] = 0x00; <span class="comment">// --|</span></div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> p[2] = 0x01; <span class="comment">// --|</span></div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> p[3] = 0x37; <span class="comment">// --^</span></div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> p[4] = bVendorType; <span class="comment">// Vendor type</span></div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> p[5] = <span class="keyword">static_cast&lt;</span>BYTE<span class="keyword">&gt;</span>(dwLengthNew - 4); <span class="comment">// Vendor length</span></div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> p[6] = 0x00; <span class="comment">// Salt</span></div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> p[7] = 0x00; <span class="comment">// --^</span></div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> p[8] = nKeySize; <span class="comment">// Key-Length</span></div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span><span class="preprocessor"> #pragma warning(pop)</span></div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> memcpy(p + 9, pbKey, nKeySize); <span class="comment">// Key</span></div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> memset(p + 9 + nKeySize, 0, nPaddingLength); <span class="comment">// Padding</span></div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> </div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> <span class="keywordflow">if</span> (pValue)</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> <span class="keyword">delete</span> [] pValue;</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> </div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span><span class="preprocessor"> #pragma warning(suppress: 26812) </span><span class="comment">// EAP_ATTRIBUTE_TYPE is unscoped.</span></div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> eaType = eatVendorSpecific;</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> dwLength = dwLengthNew;</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> pValue = p;</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> }</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> };</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span><span class="preprocessor"> #pragma warning(pop)</span></div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> </div>
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> <span class="keyword">static</span> <span class="keyword">const</span> EAP_ATTRIBUTE blank_eap_attr = {};</div>
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> </div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__prop.html"> 362</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1eap__method__prop.html">eap_method_prop</a> : <span class="keyword">public</span> EAP_METHOD_PROPERTY</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> {</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__prop.html#aaef29e7f5af8ed0a1c685166114c21b6"> 371</a></span> <a class="code hl_function" href="classwinstd_1_1eap__method__prop.html#aaef29e7f5af8ed0a1c685166114c21b6">eap_method_prop</a>(_In_ EAP_METHOD_PROPERTY_TYPE type, _In_ BOOL value) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> {</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> eapMethodPropertyType = type;</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> eapMethodPropertyValueType = empvtBool;</div>
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> eapMethodPropertyValue.empvBool.length = <span class="keyword">sizeof</span>(BOOL);</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> eapMethodPropertyValue.empvBool.value = value;</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> }</div>
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> </div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__prop.html#a6f0cdaaa85b3da835ce220837fd8a86c"> 385</a></span> <a class="code hl_function" href="classwinstd_1_1eap__method__prop.html#a6f0cdaaa85b3da835ce220837fd8a86c">eap_method_prop</a>(_In_ EAP_METHOD_PROPERTY_TYPE type, _In_ DWORD value) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> {</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> eapMethodPropertyType = type;</div>
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> eapMethodPropertyValueType = empvtDword;</div>
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> eapMethodPropertyValue.empvDword.length = <span class="keyword">sizeof</span>(DWORD);</div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> eapMethodPropertyValue.empvDword.value = value;</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> }</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> </div>
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__prop.html#a63398838bd2f79c993f968691408692c"> 399</a></span> <a class="code hl_function" href="classwinstd_1_1eap__method__prop.html#a63398838bd2f79c993f968691408692c">eap_method_prop</a>(_In_ EAP_METHOD_PROPERTY_TYPE type, _In_z_ LPCWSTR value) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> {</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> eapMethodPropertyType = type;</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> eapMethodPropertyValueType = empvtString;</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> eapMethodPropertyValue.empvString.length = <span class="keyword">static_cast&lt;</span>DWORD<span class="keyword">&gt;</span>(<span class="keyword">sizeof</span>(WCHAR)*(wcslen(value) + 1));</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> eapMethodPropertyValue.empvString.value = <span class="keyword">const_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span>BYTE*<span class="keyword">&gt;</span>(value));</div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> }</div>
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> };</div>
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> </div>
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html"> 411</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1eap__packet.html">eap_packet</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt;EapPacket*, NULL&gt;</div>
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> {</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1eap__packet.html">eap_packet</a>, NULL)</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> </div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html#a6abed7e1c0460fd6e2ae5d832fbd7493"> 419</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1eap__packet.html#a6abed7e1c0460fd6e2ae5d832fbd7493">~eap_packet</a>()</div>
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> {</div>
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> <a class="code hl_function" href="classwinstd_1_1eap__packet.html#a6d68149b92c1564b2683ddb3a87b60f0">free_internal</a>();</div>
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> }</div>
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span> </div>
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html#a6ea65c39536a3646a0f7746a2ba40d62"> 438</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1eap__packet.html#a6ea65c39536a3646a0f7746a2ba40d62">create</a>(_In_ EapCode code, _In_ BYTE <span class="keywordtype">id</span>, _In_ WORD <a class="code hl_function" href="classwinstd_1_1eap__packet.html#a2534ad15ae47e2d46354d9f535f4031f">size</a>) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> {</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> assert(<a class="code hl_function" href="classwinstd_1_1eap__packet.html#a2534ad15ae47e2d46354d9f535f4031f">size</a> &gt;= 4); <span class="comment">// EAP packets must contain at least Code, Id, and Length fields: 4B.</span></div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> </div>
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h = <span class="keyword">static_cast&lt;</span><a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a><span class="keyword">&gt;</span>(HeapAlloc(GetProcessHeap(), 0, <a class="code hl_function" href="classwinstd_1_1eap__packet.html#a2534ad15ae47e2d46354d9f535f4031f">size</a>));</div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> <span class="keywordflow">if</span> (h != NULL) {</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> h-&gt;Code = <span class="keyword">static_cast&lt;</span>BYTE<span class="keyword">&gt;</span>(code);</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> h-&gt;Id = id;</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> *<span class="keyword">reinterpret_cast&lt;</span>WORD*<span class="keyword">&gt;</span>(h-&gt;Length) = htons(<a class="code hl_function" href="classwinstd_1_1eap__packet.html#a2534ad15ae47e2d46354d9f535f4031f">size</a>);</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> </div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> SetLastError(ERROR_OUTOFMEMORY);</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> }</div>
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> }</div>
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> </div>
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html#a2534ad15ae47e2d46354d9f535f4031f"> 459</a></span> WORD <a class="code hl_function" href="classwinstd_1_1eap__packet.html#a2534ad15ae47e2d46354d9f535f4031f">size</a>() const noexcept</div>
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> {</div>
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != NULL ? ntohs(*(WORD*)<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>-&gt;Length) : 0;</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> }</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> </div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html#a6d68149b92c1564b2683ddb3a87b60f0"> 468</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1eap__packet.html#a6d68149b92c1564b2683ddb3a87b60f0">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span> HeapFree(GetProcessHeap(), 0, <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> }</div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> </div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html#ac217972c25aebfdd300a56ff52ee9112"> 476</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> <a class="code hl_function" href="classwinstd_1_1eap__packet.html#ac217972c25aebfdd300a56ff52ee9112">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) <span class="keyword">const</span> <span class="keyword">noexcept</span> <span class="keyword">override</span></div>
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> {</div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> <span class="keyword">const</span> WORD n = ntohs(*<span class="keyword">reinterpret_cast&lt;</span>WORD*<span class="keyword">&gt;</span>(h-&gt;Length));</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h2 = <span class="keyword">static_cast&lt;</span><a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a><span class="keyword">&gt;</span>(HeapAlloc(GetProcessHeap(), 0, n));</div>
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> <span class="keywordflow">if</span> (h2 == NULL) {</div>
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> SetLastError(ERROR_OUTOFMEMORY);</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> }</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> memcpy(h2, h, n);</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> <span class="keywordflow">return</span> h2;</div>
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> }</div>
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> };</div>
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> </div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__info__array.html"> 492</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a> : <span class="keyword">public</span> EAP_METHOD_INFO_ARRAY</div>
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> {</div>
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <a class="code hl_define" href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a>(<a class="code hl_class" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a>)</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> </div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__info__array.html#a3dc5d1571c9e85dedd3dd3d6626947b7"> 500</a></span> <a class="code hl_function" href="classwinstd_1_1eap__method__info__array.html#a3dc5d1571c9e85dedd3dd3d6626947b7">eap_method_info_array</a>() noexcept</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> {</div>
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> dwNumberOfMethods = 0;</div>
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> pEapMethods = NULL;</div>
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> }</div>
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> </div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__info__array.html#a9d1274021845f1c4bd115a9fa1a0bf51"> 511</a></span> <a class="code hl_function" href="classwinstd_1_1eap__method__info__array.html#a9d1274021845f1c4bd115a9fa1a0bf51">eap_method_info_array</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a> &amp;&amp;other) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> {</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> dwNumberOfMethods = other.dwNumberOfMethods;</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> pEapMethods = other.pEapMethods;</div>
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> other.dwNumberOfMethods = 0;</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span> other.pEapMethods = NULL;</div>
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> }</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> </div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__info__array.html#a6870644e66359b0448094a193ef0b4b8"> 522</a></span> <a class="code hl_function" href="classwinstd_1_1eap__method__info__array.html#a6870644e66359b0448094a193ef0b4b8">~eap_method_info_array</a>()</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> {</div>
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keywordflow">if</span> (pEapMethods)</div>
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> free_internal();</div>
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> }</div>
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> </div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__info__array.html#a3619fce0e5d8a683ea5b704f24ff38a7"> 533</a></span> <a class="code hl_class" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a>&amp; <a class="code hl_function" href="classwinstd_1_1eap__method__info__array.html#a3619fce0e5d8a683ea5b704f24ff38a7">operator=</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a> &amp;&amp;other) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> {</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(other)) {</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> <span class="keywordflow">if</span> (pEapMethods)</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> free_internal();</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> dwNumberOfMethods = other.dwNumberOfMethods;</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> pEapMethods = other.pEapMethods;</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> other.dwNumberOfMethods = 0;</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> other.pEapMethods = NULL;</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> }</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> }</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> </div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> </div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordtype">void</span> free_internal() noexcept</div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> {</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> <span class="keywordflow">for</span> (DWORD i = 0; i &lt; dwNumberOfMethods; i++)</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> free_internal(pEapMethods + i);</div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> </div>
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> EapHostPeerFreeMemory(<span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(pEapMethods));</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> }</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> </div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> <span class="keyword">static</span> <span class="keywordtype">void</span> free_internal(_In_ EAP_METHOD_INFO *pMethodInfo) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> {</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <span class="keywordflow">if</span> (pMethodInfo-&gt;pInnerMethodInfo)</div>
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> free_internal(pMethodInfo-&gt;pInnerMethodInfo);</div>
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> </div>
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> EapHostPeerFreeMemory(<span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(pMethodInfo-&gt;pwszAuthorName));</div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> EapHostPeerFreeMemory(<span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(pMethodInfo-&gt;pwszFriendlyName));</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> }</div>
<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> </div>
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> };</div>
<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> </div>
<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> </div>
<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> </div>
<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html"> 579</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1eap__runtime__error.html">eap_runtime_error</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1win__runtime__error.html">win_runtime_error</a></div>
<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span> {</div>
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"> 581</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a8d4f80bde143ee1a06d78bd922b0d295"> 588</a></span> <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#a8d4f80bde143ee1a06d78bd922b0d295">eap_runtime_error</a>(_In_ <span class="keyword">const</span> EAP_ERROR &amp;err, _In_ <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a>) :</div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a4d7e04b38831f029d862990b607333aa">m_type</a> (err.<a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#a0562abef7454f9a6f97902d4260b7f50">type</a> ),</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#af7d0e9785475719f4b1b0b59c4ae49e3">m_reason</a> (err.dwReasonCode ),</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a084ddacb051932c211a995872fb67b57">m_root_cause_id</a> (err.rootCauseGuid ),</div>
<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#aea17d371de31216ac0754c1ed1f0b99a">m_root_cause_desc</a>(err.pRootCauseString ),</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a526d2ae63c12d1a439d69412e7f13ec7">m_repair_id</a> (err.repairGuid ),</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a2b237993f0c860b8b0ad83416d499f18">m_repair_desc</a> (err.pRepairString ),</div>
<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"> 595</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#aa23bf8c3fc64f54e7021bb97dfefda89">m_help_link_id</a> (err.helpLinkGuid ),</div>
<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"> 596</span> <a class="code hl_class" href="classwinstd_1_1win__runtime__error.html">win_runtime_error</a>(err.dwWinError, <a class="code hl_function" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a>.c_str())</div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> {</div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</span> }</div>
<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"> 599</span> </div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a7c3d33a53ad6258d33a493c92c03d1bd"> 606</a></span> <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#a7c3d33a53ad6258d33a493c92c03d1bd">eap_runtime_error</a>(_In_ <span class="keyword">const</span> EAP_ERROR &amp;err, _In_opt_z_ <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_function" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a> = <span class="keyword">nullptr</span>) :</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a4d7e04b38831f029d862990b607333aa">m_type</a> (err.<a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#a0562abef7454f9a6f97902d4260b7f50">type</a> ),</div>
<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"> 608</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#af7d0e9785475719f4b1b0b59c4ae49e3">m_reason</a> (err.dwReasonCode ),</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a084ddacb051932c211a995872fb67b57">m_root_cause_id</a> (err.rootCauseGuid ),</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#aea17d371de31216ac0754c1ed1f0b99a">m_root_cause_desc</a>(err.pRootCauseString),</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a526d2ae63c12d1a439d69412e7f13ec7">m_repair_id</a> (err.repairGuid ),</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a2b237993f0c860b8b0ad83416d499f18">m_repair_desc</a> (err.pRepairString ),</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#aa23bf8c3fc64f54e7021bb97dfefda89">m_help_link_id</a> (err.helpLinkGuid ),</div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <a class="code hl_class" href="classwinstd_1_1win__runtime__error.html">win_runtime_error</a>(err.dwWinError, <a class="code hl_function" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a> )</div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> {</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> }</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> </div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a0562abef7454f9a6f97902d4260b7f50"> 621</a></span> <span class="keyword">const</span> EAP_METHOD_TYPE&amp; <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#a0562abef7454f9a6f97902d4260b7f50">type</a>() const noexcept</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> {</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a4d7e04b38831f029d862990b607333aa">m_type</a>;</div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> }</div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> </div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a3329eb549dce7f57f5a59e3f5a16705c"> 629</a></span> DWORD <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#a3329eb549dce7f57f5a59e3f5a16705c">reason</a>() const noexcept</div>
<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"> 630</span> {</div>
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"> 631</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#af7d0e9785475719f4b1b0b59c4ae49e3">m_reason</a>;</div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> }</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</span> </div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#ae39b6b32c9505c0be2e199d8692175d1"> 637</a></span> <span class="keyword">const</span> GUID&amp; <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#ae39b6b32c9505c0be2e199d8692175d1">root_cause_id</a>() const noexcept</div>
<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"> 638</span> {</div>
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"> 639</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a084ddacb051932c211a995872fb67b57">m_root_cause_id</a>;</div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> }</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> </div>
<div class="line"><a id="l00645" name="l00645"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a0aa17a51b2c110e874b60924281a3743"> 645</a></span> <span class="keyword">const</span> <span class="keywordtype">wchar_t</span>* <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#a0aa17a51b2c110e874b60924281a3743">root_cause</a>() const noexcept</div>
<div class="line"><a id="l00646" name="l00646"></a><span class="lineno"> 646</span> {</div>
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"> 647</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#aea17d371de31216ac0754c1ed1f0b99a">m_root_cause_desc</a>.c_str();</div>
<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"> 648</span> }</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</span> </div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a1e80ead2a4d348ab2c939bfbbaf9330a"> 653</a></span> <span class="keyword">const</span> GUID&amp; <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#a1e80ead2a4d348ab2c939bfbbaf9330a">repair_id</a>() const noexcept</div>
<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"> 654</span> {</div>
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"> 655</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a526d2ae63c12d1a439d69412e7f13ec7">m_repair_id</a>;</div>
<div class="line"><a id="l00656" name="l00656"></a><span class="lineno"> 656</span> }</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</span> </div>
<div class="line"><a id="l00661" name="l00661"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a981cb9a1cbf0c6e7e19252d776a2558f"> 661</a></span> <span class="keyword">const</span> <span class="keywordtype">wchar_t</span>* <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#a981cb9a1cbf0c6e7e19252d776a2558f">repair</a>() const noexcept</div>
<div class="line"><a id="l00662" name="l00662"></a><span class="lineno"> 662</span> {</div>
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"> 663</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a2b237993f0c860b8b0ad83416d499f18">m_repair_desc</a>.c_str();</div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span> }</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> </div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#af7179a9cc9ff633a0e7d5983a4680171"> 669</a></span> <span class="keyword">const</span> GUID&amp; <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#af7179a9cc9ff633a0e7d5983a4680171">help_link_id</a>() const noexcept</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> {</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#aa23bf8c3fc64f54e7021bb97dfefda89">m_help_link_id</a>;</div>
<div class="line"><a id="l00672" name="l00672"></a><span class="lineno"> 672</span> }</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</span> </div>
<div class="line"><a id="l00674" name="l00674"></a><span class="lineno"> 674</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a4d7e04b38831f029d862990b607333aa"> 675</a></span> EAP_METHOD_TYPE <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a4d7e04b38831f029d862990b607333aa">m_type</a>; </div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</span> </div>
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#af7d0e9785475719f4b1b0b59c4ae49e3"> 677</a></span> DWORD <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#af7d0e9785475719f4b1b0b59c4ae49e3">m_reason</a>; </div>
<div class="line"><a id="l00678" name="l00678"></a><span class="lineno"> 678</span> </div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a084ddacb051932c211a995872fb67b57"> 679</a></span> GUID <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a084ddacb051932c211a995872fb67b57">m_root_cause_id</a>; </div>
<div class="line"><a id="l00680" name="l00680"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#aea17d371de31216ac0754c1ed1f0b99a"> 680</a></span> std::wstring <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#aea17d371de31216ac0754c1ed1f0b99a">m_root_cause_desc</a>; </div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</span> </div>
<div class="line"><a id="l00682" name="l00682"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a526d2ae63c12d1a439d69412e7f13ec7"> 682</a></span> GUID <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a526d2ae63c12d1a439d69412e7f13ec7">m_repair_id</a>; </div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a2b237993f0c860b8b0ad83416d499f18"> 683</a></span> std::wstring <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#a2b237993f0c860b8b0ad83416d499f18">m_repair_desc</a>; </div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> </div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#aa23bf8c3fc64f54e7021bb97dfefda89"> 685</a></span> GUID <a class="code hl_variable" href="classwinstd_1_1eap__runtime__error.html#aa23bf8c3fc64f54e7021bb97dfefda89">m_help_link_id</a>; </div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> };</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> </div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"> 689</span>}</div>
<div class="line"><a id="l00690" name="l00690"></a><span class="lineno"> 690</span> </div>
<div class="line"><a id="l00691" name="l00691"></a><span class="lineno"> 691</span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="ttc" id="aclasswinstd_1_1dplhandle_html"><div class="ttname"><a href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a></div><div class="ttdoc">Base abstract template class to support object handle keeping for objects that support handle duplica...</div><div class="ttdef"><b>Definition:</b> Common.h:844</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html"><div class="ttname"><a href="classwinstd_1_1eap__attr.html">winstd::eap_attr</a></div><div class="ttdoc">EAP_ATTRIBUTE wrapper class.</div><div class="ttdef"><b>Definition:</b> EAP.h:214</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_a015a82d7f91679f76ca590bbdabc04c1"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#a015a82d7f91679f76ca590bbdabc04c1">winstd::eap_attr::eap_attr</a></div><div class="ttdeci">eap_attr() noexcept</div><div class="ttdoc">Initializes a new EAP attribute set to eatReserved.</div><div class="ttdef"><b>Definition:</b> EAP.h:219</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_a085d6ade88a42ba69cf128a97b7c9b0d"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#a085d6ade88a42ba69cf128a97b7c9b0d">winstd::eap_attr::~eap_attr</a></div><div class="ttdeci">~eap_attr()</div><div class="ttdoc">Destroys the EAP attribute.</div><div class="ttdef"><b>Definition:</b> EAP.h:259</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_a1e59dbfc56d8c9450fd27a6d7e049ff1"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#a1e59dbfc56d8c9450fd27a6d7e049ff1">winstd::eap_attr::eap_attr</a></div><div class="ttdeci">eap_attr(_Inout_ eap_attr &amp;&amp;a) noexcept</div><div class="ttdoc">Moves an existing EAP attribute.</div><div class="ttdef"><b>Definition:</b> EAP.h:244</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_a472e8b06aaef71131a37b3c48d1a9b4f"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#a472e8b06aaef71131a37b3c48d1a9b4f">winstd::eap_attr::eap_attr</a></div><div class="ttdeci">eap_attr(_In_ const EAP_ATTRIBUTE &amp;a)</div><div class="ttdoc">Copies an existing EAP attribute.</div><div class="ttdef"><b>Definition:</b> EAP.h:229</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_a7ad2a3d553168173588261656a151c30"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#a7ad2a3d553168173588261656a151c30">winstd::eap_attr::operator=</a></div><div class="ttdeci">eap_attr &amp; operator=(_Inout_ eap_attr &amp;&amp;a) noexcept</div><div class="ttdoc">Moves an existing EAP attribute.</div><div class="ttdef"><b>Definition:</b> EAP.h:291</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_acd0112e3997ba52c54a905360b4af5e6"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#acd0112e3997ba52c54a905360b4af5e6">winstd::eap_attr::create_ms_mppe_key</a></div><div class="ttdeci">void create_ms_mppe_key(_In_ BYTE bVendorType, _In_count_(nKeySize) LPCBYTE pbKey, _In_ BYTE nKeySize)</div><div class="ttdoc">Creates MS-MPPE-Send-Key or MS-MPPE-Recv-Key.</div><div class="ttdef"><b>Definition:</b> EAP.h:315</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_af82d813fa541bd218afb672a8886c287"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#af82d813fa541bd218afb672a8886c287">winstd::eap_attr::operator=</a></div><div class="ttdeci">eap_attr &amp; operator=(_In_ const EAP_ATTRIBUTE &amp;a)</div><div class="ttdoc">Copies an existing EAP attribute.</div><div class="ttdef"><b>Definition:</b> EAP.h:268</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__info__array_html"><div class="ttname"><a href="classwinstd_1_1eap__method__info__array.html">winstd::eap_method_info_array</a></div><div class="ttdoc">EAP_METHOD_INFO_ARRAY wrapper class.</div><div class="ttdef"><b>Definition:</b> EAP.h:493</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__info__array_html_a3619fce0e5d8a683ea5b704f24ff38a7"><div class="ttname"><a href="classwinstd_1_1eap__method__info__array.html#a3619fce0e5d8a683ea5b704f24ff38a7">winstd::eap_method_info_array::operator=</a></div><div class="ttdeci">eap_method_info_array &amp; operator=(_Inout_ eap_method_info_array &amp;&amp;other) noexcept</div><div class="ttdoc">Move assignment.</div><div class="ttdef"><b>Definition:</b> EAP.h:533</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__info__array_html_a3dc5d1571c9e85dedd3dd3d6626947b7"><div class="ttname"><a href="classwinstd_1_1eap__method__info__array.html#a3dc5d1571c9e85dedd3dd3d6626947b7">winstd::eap_method_info_array::eap_method_info_array</a></div><div class="ttdeci">eap_method_info_array() noexcept</div><div class="ttdoc">Constructs an empty array.</div><div class="ttdef"><b>Definition:</b> EAP.h:500</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__info__array_html_a6870644e66359b0448094a193ef0b4b8"><div class="ttname"><a href="classwinstd_1_1eap__method__info__array.html#a6870644e66359b0448094a193ef0b4b8">winstd::eap_method_info_array::~eap_method_info_array</a></div><div class="ttdeci">~eap_method_info_array()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> EAP.h:522</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__info__array_html_a9d1274021845f1c4bd115a9fa1a0bf51"><div class="ttname"><a href="classwinstd_1_1eap__method__info__array.html#a9d1274021845f1c4bd115a9fa1a0bf51">winstd::eap_method_info_array::eap_method_info_array</a></div><div class="ttdeci">eap_method_info_array(_Inout_ eap_method_info_array &amp;&amp;other) noexcept</div><div class="ttdoc">Move constructor.</div><div class="ttdef"><b>Definition:</b> EAP.h:511</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__prop_html"><div class="ttname"><a href="classwinstd_1_1eap__method__prop.html">winstd::eap_method_prop</a></div><div class="ttdoc">EAP_METHOD_PROPERTY wrapper class.</div><div class="ttdef"><b>Definition:</b> EAP.h:363</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__prop_html_a63398838bd2f79c993f968691408692c"><div class="ttname"><a href="classwinstd_1_1eap__method__prop.html#a63398838bd2f79c993f968691408692c">winstd::eap_method_prop::eap_method_prop</a></div><div class="ttdeci">eap_method_prop(_In_ EAP_METHOD_PROPERTY_TYPE type, _In_z_ LPCWSTR value) noexcept</div><div class="ttdoc">Constructs a Unicode string method property.</div><div class="ttdef"><b>Definition:</b> EAP.h:399</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__prop_html_a6f0cdaaa85b3da835ce220837fd8a86c"><div class="ttname"><a href="classwinstd_1_1eap__method__prop.html#a6f0cdaaa85b3da835ce220837fd8a86c">winstd::eap_method_prop::eap_method_prop</a></div><div class="ttdeci">eap_method_prop(_In_ EAP_METHOD_PROPERTY_TYPE type, _In_ DWORD value) noexcept</div><div class="ttdoc">Constructs a DWORD method property.</div><div class="ttdef"><b>Definition:</b> EAP.h:385</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__prop_html_aaef29e7f5af8ed0a1c685166114c21b6"><div class="ttname"><a href="classwinstd_1_1eap__method__prop.html#aaef29e7f5af8ed0a1c685166114c21b6">winstd::eap_method_prop::eap_method_prop</a></div><div class="ttdeci">eap_method_prop(_In_ EAP_METHOD_PROPERTY_TYPE type, _In_ BOOL value) noexcept</div><div class="ttdoc">Constructs a BOOL method property.</div><div class="ttdef"><b>Definition:</b> EAP.h:371</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__packet_html"><div class="ttname"><a href="classwinstd_1_1eap__packet.html">winstd::eap_packet</a></div><div class="ttdoc">EapPacket wrapper class.</div><div class="ttdef"><b>Definition:</b> EAP.h:412</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__packet_html_a2534ad15ae47e2d46354d9f535f4031f"><div class="ttname"><a href="classwinstd_1_1eap__packet.html#a2534ad15ae47e2d46354d9f535f4031f">winstd::eap_packet::size</a></div><div class="ttdeci">WORD size() const noexcept</div><div class="ttdoc">Returns total EAP packet size in bytes.</div><div class="ttdef"><b>Definition:</b> EAP.h:459</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__packet_html_a6abed7e1c0460fd6e2ae5d832fbd7493"><div class="ttname"><a href="classwinstd_1_1eap__packet.html#a6abed7e1c0460fd6e2ae5d832fbd7493">winstd::eap_packet::~eap_packet</a></div><div class="ttdeci">virtual ~eap_packet()</div><div class="ttdoc">Destroys the EAP packet.</div><div class="ttdef"><b>Definition:</b> EAP.h:419</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__packet_html_a6d68149b92c1564b2683ddb3a87b60f0"><div class="ttname"><a href="classwinstd_1_1eap__packet.html#a6d68149b92c1564b2683ddb3a87b60f0">winstd::eap_packet::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Destroys the EAP packet.</div><div class="ttdef"><b>Definition:</b> EAP.h:468</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__packet_html_a6ea65c39536a3646a0f7746a2ba40d62"><div class="ttname"><a href="classwinstd_1_1eap__packet.html#a6ea65c39536a3646a0f7746a2ba40d62">winstd::eap_packet::create</a></div><div class="ttdeci">bool create(_In_ EapCode code, _In_ BYTE id, _In_ WORD size) noexcept</div><div class="ttdoc">Create new EAP packet.</div><div class="ttdef"><b>Definition:</b> EAP.h:438</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__packet_html_ac217972c25aebfdd300a56ff52ee9112"><div class="ttname"><a href="classwinstd_1_1eap__packet.html#ac217972c25aebfdd300a56ff52ee9112">winstd::eap_packet::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(_In_ handle_type h) const noexcept override</div><div class="ttdoc">Duplicates the EAP packet.</div><div class="ttdef"><b>Definition:</b> EAP.h:476</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></div><div class="ttdoc">EapHost runtime error.</div><div class="ttdef"><b>Definition:</b> EAP.h:580</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a0562abef7454f9a6f97902d4260b7f50"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a0562abef7454f9a6f97902d4260b7f50">winstd::eap_runtime_error::type</a></div><div class="ttdeci">const EAP_METHOD_TYPE &amp; type() const noexcept</div><div class="ttdoc">Returns EAP method type.</div><div class="ttdef"><b>Definition:</b> EAP.h:621</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a084ddacb051932c211a995872fb67b57"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a084ddacb051932c211a995872fb67b57">winstd::eap_runtime_error::m_root_cause_id</a></div><div class="ttdeci">GUID m_root_cause_id</div><div class="ttdoc">A unique ID that identifies cause of error in EAPHost.</div><div class="ttdef"><b>Definition:</b> EAP.h:679</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a0aa17a51b2c110e874b60924281a3743"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a0aa17a51b2c110e874b60924281a3743">winstd::eap_runtime_error::root_cause</a></div><div class="ttdeci">const wchar_t * root_cause() const noexcept</div><div class="ttdoc">Returns root cause ID.</div><div class="ttdef"><b>Definition:</b> EAP.h:645</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a1e80ead2a4d348ab2c939bfbbaf9330a"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a1e80ead2a4d348ab2c939bfbbaf9330a">winstd::eap_runtime_error::repair_id</a></div><div class="ttdeci">const GUID &amp; repair_id() const noexcept</div><div class="ttdoc">Returns repair ID.</div><div class="ttdef"><b>Definition:</b> EAP.h:653</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a2b237993f0c860b8b0ad83416d499f18"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a2b237993f0c860b8b0ad83416d499f18">winstd::eap_runtime_error::m_repair_desc</a></div><div class="ttdeci">std::wstring m_repair_desc</div><div class="ttdoc">A localized and readable string that describes the possible repair action.</div><div class="ttdef"><b>Definition:</b> EAP.h:683</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a3329eb549dce7f57f5a59e3f5a16705c"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a3329eb549dce7f57f5a59e3f5a16705c">winstd::eap_runtime_error::reason</a></div><div class="ttdeci">DWORD reason() const noexcept</div><div class="ttdoc">Returns the reason code for error.</div><div class="ttdef"><b>Definition:</b> EAP.h:629</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a4d7e04b38831f029d862990b607333aa"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a4d7e04b38831f029d862990b607333aa">winstd::eap_runtime_error::m_type</a></div><div class="ttdeci">EAP_METHOD_TYPE m_type</div><div class="ttdoc">Structure that identifies the EAP method that raised the error.</div><div class="ttdef"><b>Definition:</b> EAP.h:675</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a526d2ae63c12d1a439d69412e7f13ec7"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a526d2ae63c12d1a439d69412e7f13ec7">winstd::eap_runtime_error::m_repair_id</a></div><div class="ttdeci">GUID m_repair_id</div><div class="ttdoc">A unique ID that maps to a localizable string that identifies the repair action that can be taken to ...</div><div class="ttdef"><b>Definition:</b> EAP.h:682</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a7c3d33a53ad6258d33a493c92c03d1bd"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a7c3d33a53ad6258d33a493c92c03d1bd">winstd::eap_runtime_error::eap_runtime_error</a></div><div class="ttdeci">eap_runtime_error(_In_ const EAP_ERROR &amp;err, _In_opt_z_ const char *msg=nullptr)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition:</b> EAP.h:606</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a8d4f80bde143ee1a06d78bd922b0d295"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a8d4f80bde143ee1a06d78bd922b0d295">winstd::eap_runtime_error::eap_runtime_error</a></div><div class="ttdeci">eap_runtime_error(_In_ const EAP_ERROR &amp;err, _In_ const std::string &amp;msg)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition:</b> EAP.h:588</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a981cb9a1cbf0c6e7e19252d776a2558f"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a981cb9a1cbf0c6e7e19252d776a2558f">winstd::eap_runtime_error::repair</a></div><div class="ttdeci">const wchar_t * repair() const noexcept</div><div class="ttdoc">Returns root cause ID.</div><div class="ttdef"><b>Definition:</b> EAP.h:661</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_aa23bf8c3fc64f54e7021bb97dfefda89"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#aa23bf8c3fc64f54e7021bb97dfefda89">winstd::eap_runtime_error::m_help_link_id</a></div><div class="ttdeci">GUID m_help_link_id</div><div class="ttdoc">A unique ID that maps to a localizable string that specifies an URL for a page that contains addition...</div><div class="ttdef"><b>Definition:</b> EAP.h:685</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_ae39b6b32c9505c0be2e199d8692175d1"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#ae39b6b32c9505c0be2e199d8692175d1">winstd::eap_runtime_error::root_cause_id</a></div><div class="ttdeci">const GUID &amp; root_cause_id() const noexcept</div><div class="ttdoc">Returns root cause ID.</div><div class="ttdef"><b>Definition:</b> EAP.h:637</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_aea17d371de31216ac0754c1ed1f0b99a"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#aea17d371de31216ac0754c1ed1f0b99a">winstd::eap_runtime_error::m_root_cause_desc</a></div><div class="ttdeci">std::wstring m_root_cause_desc</div><div class="ttdoc">A localized and readable string that describes the root cause of the error.</div><div class="ttdef"><b>Definition:</b> EAP.h:680</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_af7179a9cc9ff633a0e7d5983a4680171"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#af7179a9cc9ff633a0e7d5983a4680171">winstd::eap_runtime_error::help_link_id</a></div><div class="ttdeci">const GUID &amp; help_link_id() const noexcept</div><div class="ttdoc">Returns help_link ID.</div><div class="ttdef"><b>Definition:</b> EAP.h:669</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_af7d0e9785475719f4b1b0b59c4ae49e3"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#af7d0e9785475719f4b1b0b59c4ae49e3">winstd::eap_runtime_error::m_reason</a></div><div class="ttdeci">DWORD m_reason</div><div class="ttdoc">The reason code for the error.</div><div class="ttdef"><b>Definition:</b> EAP.h:677</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a3dda19199ecfbc378c932e7d84d0ea81"><div class="ttname"><a href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">winstd::handle&lt; EapPacket *, INVAL &gt;::handle_type</a></div><div class="ttdeci">EapPacket * handle_type</div><div class="ttdoc">Datatype of the object handle this template class handles.</div><div class="ttdef"><b>Definition:</b> Common.h:585</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a98d09f9c2970890a5c83a0c2aedd3a30"><div class="ttname"><a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">winstd::handle&lt; EapPacket *, INVAL &gt;::attach</a></div><div class="ttdeci">void attach(_In_opt_ handle_type h) noexcept</div><div class="ttdoc">Sets a new object handle for the class.</div><div class="ttdef"><b>Definition:</b> Common.h:794</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_aabde3f16fd98b06b3b0282ef7806eb59"><div class="ttname"><a href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">winstd::handle&lt; EapPacket *, INVAL &gt;::m_h</a></div><div class="ttdeci">handle_type m_h</div><div class="ttdoc">Object handle.</div><div class="ttdef"><b>Definition:</b> Common.h:833</div></div>
<div class="ttc" id="aclasswinstd_1_1win__runtime__error_html"><div class="ttname"><a href="classwinstd_1_1win__runtime__error.html">winstd::win_runtime_error</a></div><div class="ttdoc">Windows runtime error.</div><div class="ttdef"><b>Definition:</b> Common.h:1435</div></div>
<div class="ttc" id="aclasswinstd_1_1win__runtime__error_html_a016e0f951d68ea42b9d33beea39d642b"><div class="ttname"><a href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">winstd::win_runtime_error::msg</a></div><div class="ttdeci">tstring msg(_In_opt_ DWORD dwLanguageId=0) const</div><div class="ttdoc">Returns a user-readable Windows error message.</div><div class="ttdef"><b>Definition:</b> Common.h:1480</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_ga102f6e28f2ae479af7b6555894f110ac"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#ga102f6e28f2ae479af7b6555894f110ac">winstd::eap_error_runtime</a></div><div class="ttdeci">std::unique_ptr&lt; EAP_ERROR, EapHostPeerFreeEapError_delete &gt; eap_error_runtime</div><div class="ttdoc">EAP_ERROR wrapper class.</div><div class="ttdef"><b>Definition:</b> EAP.h:206</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_ga25f2a0eea11e8332bfcec6b032a17a05"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#ga25f2a0eea11e8332bfcec6b032a17a05">winstd::eap_blob</a></div><div class="ttdeci">std::unique_ptr&lt; BYTE[], EapHostPeerFreeMemory_delete &gt; eap_blob</div><div class="ttdoc">EapHost BLOB wrapper class.</div><div class="ttdef"><b>Definition:</b> EAP.h:129</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_ga50f5584ca708165f43cec42c42243315"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#ga50f5584ca708165f43cec42c42243315">winstd::eap_type_t</a></div><div class="ttdeci">eap_type_t</div><div class="ttdoc">EAP method numbers.</div><div class="ttdef"><b>Definition:</b> EAP.h:79</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_ga910edec3d3d1ba4f6f306dcafdc2117a"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#ga910edec3d3d1ba4f6f306dcafdc2117a">winstd::eap_error</a></div><div class="ttdeci">std::unique_ptr&lt; EAP_ERROR, EapHostPeerFreeErrorMemory_delete &gt; eap_error</div><div class="ttdoc">EAP_ERROR wrapper class.</div><div class="ttdef"><b>Definition:</b> EAP.h:180</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gabd2665596cc49191b36e6378147c47ad"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gabd2665596cc49191b36e6378147c47ad">winstd::eap_blob_runtime</a></div><div class="ttdeci">std::unique_ptr&lt; BYTE[], EapHostPeerFreeRuntimeMemory_delete &gt; eap_blob_runtime</div><div class="ttdoc">EapHost BLOB wrapper class.</div><div class="ttdef"><b>Definition:</b> EAP.h:154</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315a0cfd653d5d3e1e9fdbb644523d77971d"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a0cfd653d5d3e1e9fdbb644523d77971d">winstd::eap_type_t::notification</a></div><div class="ttdeci">@ notification</div><div class="ttdoc">Notification.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315a1f61e547b81232a658f0704e85488a6c"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a1f61e547b81232a658f0704e85488a6c">winstd::eap_type_t::md5_challenge</a></div><div class="ttdeci">@ md5_challenge</div><div class="ttdoc">MD5-Challenge.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315a262032c7bb2ef8f08d5b85ee63f79eff"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a262032c7bb2ef8f08d5b85ee63f79eff">winstd::eap_type_t::legacy_pap</a></div><div class="ttdeci">@ legacy_pap</div><div class="ttdoc">PAP (Not actually an EAP method; Moved to the Unassigned area)</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315a3761e7920c97542314b1aa50434f9293"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a3761e7920c97542314b1aa50434f9293">winstd::eap_type_t::gtc</a></div><div class="ttdeci">@ gtc</div><div class="ttdoc">Generic Token Card (GTC)</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315a5e543256c480ac577d30f76f9120eb74"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a5e543256c480ac577d30f76f9120eb74">winstd::eap_type_t::undefined</a></div><div class="ttdeci">@ undefined</div><div class="ttdoc">Undefined EAP type.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315a7f021a1415b86f2d013b2618fb31ae53"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a7f021a1415b86f2d013b2618fb31ae53">winstd::eap_type_t::end</a></div><div class="ttdeci">@ end</div><div class="ttdoc">End of EAP methods (non-inclusive)</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315a811f41353a6e1e0ecf7a03308c4f8e0e"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a811f41353a6e1e0ecf7a03308c4f8e0e">winstd::eap_type_t::gtcp</a></div><div class="ttdeci">@ gtcp</div><div class="ttdoc">EAP-GTC using a password.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315a8fb40a36c92da4be50f5052602e6fcf4"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a8fb40a36c92da4be50f5052602e6fcf4">winstd::eap_type_t::noneap_start</a></div><div class="ttdeci">@ noneap_start</div><div class="ttdoc">Start of non-EAP methods.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315aa60aeea3d4cdbb5049fc37164644bb34"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315aa60aeea3d4cdbb5049fc37164644bb34">winstd::eap_type_t::tls</a></div><div class="ttdeci">@ tls</div><div class="ttdoc">EAP-TLS.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315aa755bc3c9689ab5eaedd25afc4a79b9f"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315aa755bc3c9689ab5eaedd25afc4a79b9f">winstd::eap_type_t::nak</a></div><div class="ttdeci">@ nak</div><div class="ttdoc">Legacy Nak.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315aa93b0d36fa0eb07db651bb830470be12"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315aa93b0d36fa0eb07db651bb830470be12">winstd::eap_type_t::noneap_end</a></div><div class="ttdeci">@ noneap_end</div><div class="ttdoc">End of non-EAP methods (non-inclusive)</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315ab62d9100a672844bff4ac5cbc8de9fce"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315ab62d9100a672844bff4ac5cbc8de9fce">winstd::eap_type_t::peap</a></div><div class="ttdeci">@ peap</div><div class="ttdoc">PEAP.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315accd905a8bbc449980aa7f26fcbd206e2"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315accd905a8bbc449980aa7f26fcbd206e2">winstd::eap_type_t::ttls</a></div><div class="ttdeci">@ ttls</div><div class="ttdoc">EAP-TTLS.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315ad2270e7120a93c8b0a6a34760e654c7d"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315ad2270e7120a93c8b0a6a34760e654c7d">winstd::eap_type_t::otp</a></div><div class="ttdeci">@ otp</div><div class="ttdoc">One-Time Password (OTP)</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315adfe86ce1b68c3cdefe90e35904fc744a"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315adfe86ce1b68c3cdefe90e35904fc744a">winstd::eap_type_t::legacy_mschapv2</a></div><div class="ttdeci">@ legacy_mschapv2</div><div class="ttdoc">MSCHAPv2 (Not actually an EAP method; Moved to the Unassigned area)</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315ae19141eb8aa04ffb76d616409efcdf03"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315ae19141eb8aa04ffb76d616409efcdf03">winstd::eap_type_t::ms_auth_tlv</a></div><div class="ttdeci">@ ms_auth_tlv</div><div class="ttdoc">MS-Authentication-TLV.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315aea2b2676c28c0db26d39331a336c6b92"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315aea2b2676c28c0db26d39331a336c6b92">winstd::eap_type_t::start</a></div><div class="ttdeci">@ start</div><div class="ttdoc">Start of EAP methods.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315af579ec4460aed7126de9ed539845a0f4"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315af579ec4460aed7126de9ed539845a0f4">winstd::eap_type_t::mschapv2</a></div><div class="ttdeci">@ mschapv2</div><div class="ttdoc">EAP-MSCHAPv2.</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gga50f5584ca708165f43cec42c42243315aff483d1ff591898a9942916050d2ca3f"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315aff483d1ff591898a9942916050d2ca3f">winstd::eap_type_t::identity</a></div><div class="ttdeci">@ identity</div><div class="ttdoc">Identity.</div></div>
<div class="ttc" id="agroup___win_std_general_html_ga11254c72ad33a6e0f5de31db708f784c"><div class="ttname"><a href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a></div><div class="ttdeci">#define WINSTD_NONCOPYABLE(C)</div><div class="ttdoc">Declares a class as non-copyable.</div><div class="ttdef"><b>Definition:</b> Common.h:53</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga2768b80bcf124e3127f0b7fe64395adb"><div class="ttname"><a href="group___win_std_sys_handles.html#ga2768b80bcf124e3127f0b7fe64395adb">WINSTD_DPLHANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_DPLHANDLE_IMPL(C, INVAL)</div><div class="ttdoc">Implements default constructors and operators to prevent their auto-generation by compiler.</div><div class="ttdef"><b>Definition:</b> Common.h:150</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_gacf43e306968474166474090690857e1c"><div class="ttname"><a href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">winstd::handle&lt; EapPacket *, INVAL &gt;::invalid</a></div><div class="ttdeci">static const EapPacket * invalid</div><div class="ttdoc">Invalid handle value.</div><div class="ttdef"><b>Definition:</b> Common.h:590</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_eap_error__delete_html"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html">winstd::EapHostPeerFreeEapError_delete</a></div><div class="ttdoc">Deleter for unique_ptr to EAP_ERROR using EapHostPeerFreeEapError.</div><div class="ttdef"><b>Definition:</b> EAP.h:186</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_eap_error__delete_html_ab4dd927d7e4cd40b2ce7068fe252b76e"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ab4dd927d7e4cd40b2ce7068fe252b76e">winstd::EapHostPeerFreeEapError_delete::EapHostPeerFreeEapError_delete</a></div><div class="ttdeci">EapHostPeerFreeEapError_delete() noexcept</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> EAP.h:190</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_eap_error__delete_html_ae6aa071d5b9824f6062746360478a683"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ae6aa071d5b9824f6062746360478a683">winstd::EapHostPeerFreeEapError_delete::operator()</a></div><div class="ttdeci">void operator()(EAP_ERROR *_Ptr) const noexcept</div><div class="ttdoc">Delete a pointer.</div><div class="ttdef"><b>Definition:</b> EAP.h:197</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_error_memory__delete_html"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html">winstd::EapHostPeerFreeErrorMemory_delete</a></div><div class="ttdoc">Deleter for unique_ptr to EAP_ERROR using EapHostPeerFreeErrorMemory.</div><div class="ttdef"><b>Definition:</b> EAP.h:160</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_error_memory__delete_html_a43f0b1a440b9a431e9fee807bc1386be"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a43f0b1a440b9a431e9fee807bc1386be">winstd::EapHostPeerFreeErrorMemory_delete::EapHostPeerFreeErrorMemory_delete</a></div><div class="ttdeci">EapHostPeerFreeErrorMemory_delete() noexcept</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> EAP.h:164</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_error_memory__delete_html_a5dd9a56b7344ef66c378041a97fdb307"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a5dd9a56b7344ef66c378041a97fdb307">winstd::EapHostPeerFreeErrorMemory_delete::operator()</a></div><div class="ttdeci">void operator()(EAP_ERROR *_Ptr) const noexcept</div><div class="ttdoc">Delete a pointer.</div><div class="ttdef"><b>Definition:</b> EAP.h:171</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_memory__delete_html"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_memory__delete.html">winstd::EapHostPeerFreeMemory_delete</a></div><div class="ttdoc">Deleter for unique_ptr using EapHostPeerFreeMemory.</div><div class="ttdef"><b>Definition:</b> EAP.h:108</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_memory__delete_html_a20b97a65abb2063a31fc8fd7a9cb0f1f"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_memory__delete.html#a20b97a65abb2063a31fc8fd7a9cb0f1f">winstd::EapHostPeerFreeMemory_delete::operator()</a></div><div class="ttdeci">void operator()(_T *_Ptr) const</div><div class="ttdoc">Delete a pointer.</div><div class="ttdef"><b>Definition:</b> EAP.h:120</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_memory__delete_html_af6220ac1d99cc114670c363ecfe64557"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_memory__delete.html#af6220ac1d99cc114670c363ecfe64557">winstd::EapHostPeerFreeMemory_delete::EapHostPeerFreeMemory_delete</a></div><div class="ttdeci">EapHostPeerFreeMemory_delete() noexcept</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> EAP.h:112</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_runtime_memory__delete_html"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html">winstd::EapHostPeerFreeRuntimeMemory_delete</a></div><div class="ttdoc">Deleter for unique_ptr using EapHostPeerFreeRuntimeMemory.</div><div class="ttdef"><b>Definition:</b> EAP.h:135</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_runtime_memory__delete_html_a4c573463394fc3ea6781f796d29fe26e"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#a4c573463394fc3ea6781f796d29fe26e">winstd::EapHostPeerFreeRuntimeMemory_delete::operator()</a></div><div class="ttdeci">void operator()(_T *_Ptr) const</div><div class="ttdoc">Delete a pointer.</div><div class="ttdef"><b>Definition:</b> EAP.h:145</div></div>
<div class="ttc" id="astructwinstd_1_1_eap_host_peer_free_runtime_memory__delete_html_afdd46f3517e59ce19fdaddebbbaeb10d"><div class="ttname"><a href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#afdd46f3517e59ce19fdaddebbbaeb10d">winstd::EapHostPeerFreeRuntimeMemory_delete::EapHostPeerFreeRuntimeMemory_delete</a></div><div class="ttdeci">EapHostPeerFreeRuntimeMemory_delete() noexcept</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> EAP.h:139</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

1000
_e_t_w_8h_source.html Normal file

File diff suppressed because it is too large Load Diff

223
_g_d_i_8h_source.html Normal file
View File

@ -0,0 +1,223 @@
<!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/GDI.h Source File</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="headertitle"><div class="title">GDI.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">*/</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span>{</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="classwinstd_1_1gdi__handle.html"> 22</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1gdi__handle.html">gdi_handle</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;T, NULL&gt;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> {</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1gdi__handle.html">gdi_handle</a>, NULL)</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="classwinstd_1_1gdi__handle.html#aae79abc9495f415a548d7f1f1ce4dab2"> 32</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1gdi__handle.html#aae79abc9495f415a548d7f1f1ce4dab2">~gdi_handle</a>()</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> {</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <a class="code hl_function" href="classwinstd_1_1gdi__handle.html#a777cd2403d6b8d0fb0a4b69c82fcca87">free_internal</a>();</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> }</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classwinstd_1_1gdi__handle.html#a777cd2403d6b8d0fb0a4b69c82fcca87"> 44</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1gdi__handle.html#a777cd2403d6b8d0fb0a4b69c82fcca87">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> DeleteObject(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> }</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> };</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc.html"> 53</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1dc.html">dc</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;HDC, NULL&gt;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1dc.html">dc</a>, NULL)</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc.html#ae8c5722935c8a1c3f6a1857679f4563c"> 63</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1dc.html#ae8c5722935c8a1c3f6a1857679f4563c">~dc</a>()</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> {</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <a class="code hl_function" href="classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557">free_internal</a>();</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557"> 75</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> DeleteDC(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> }</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> };</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html"> 84</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1window__dc.html">window_dc</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;HDC, NULL&gt;</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> {</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <a class="code hl_class" href="classwinstd_1_1window__dc.html">window_dc</a>() noexcept :</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <a class="code hl_variable" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">m_hwnd</a>(NULL)</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> {}</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_class" href="classwinstd_1_1window__dc.html">window_dc</a>(_In_opt_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h, _In_opt_ HWND hwnd) noexcept :</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle&lt;handle_type, NULL&gt;</a>(h),</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <a class="code hl_variable" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">m_hwnd</a>(hwnd)</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> {}</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <a class="code hl_class" href="classwinstd_1_1window__dc.html">window_dc</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1window__dc.html">window_dc</a> &amp;&amp;h) noexcept :</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle&lt;handle_type, NULL&gt;</a>(std::move(h)),</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <a class="code hl_variable" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">m_hwnd</a>(h.m_hwnd)</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> {}</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <a class="code hl_class" href="classwinstd_1_1window__dc.html">window_dc</a>&amp; operator=(_Inout_ <a class="code hl_class" href="classwinstd_1_1window__dc.html">window_dc</a> &amp;&amp;h) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle&lt;handle_type, NULL&gt;::operator=</a>(std::move(h));</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <a class="code hl_variable" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">m_hwnd</a> = h.m_hwnd;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_define" href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a>(<a class="code hl_class" href="classwinstd_1_1window__dc.html">window_dc</a>)</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a3fd01c5264443520462cb7cab886a79b"> 116</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1window__dc.html#a3fd01c5264443520462cb7cab886a79b">~window_dc</a>()</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> {</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <a class="code hl_function" href="classwinstd_1_1window__dc.html#a351bae4203ad766c94f4fc6eac74e98a">free_internal</a>();</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> }</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> </div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a351bae4203ad766c94f4fc6eac74e98a"> 128</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1window__dc.html#a351bae4203ad766c94f4fc6eac74e98a">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> ReleaseDC(<a class="code hl_variable" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">m_hwnd</a>, <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> }</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3"> 134</a></span> HWND <a class="code hl_variable" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">m_hwnd</a>; </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> };</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html"> 140</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1dc__selector.html">dc_selector</a></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> {</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <a class="code hl_define" href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a>(<a class="code hl_class" href="classwinstd_1_1dc__selector.html">dc_selector</a>)</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <a class="code hl_define" href="group___win_std_general.html#gac91fa8d79c860b1fdbba65b6a322f760">WINSTD_NONMOVABLE</a>(<a class="code hl_class" href="classwinstd_1_1dc__selector.html">dc_selector</a>)</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#aea810206b4b8977f45137425af16c2cc"> 151</a></span> <a class="code hl_function" href="classwinstd_1_1dc__selector.html#aea810206b4b8977f45137425af16c2cc">dc_selector</a>(_In_ HDC hdc, _In_ HGDIOBJ h) noexcept :</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3">m_hdc</a>(hdc),</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e">m_orig</a>(SelectObject(hdc, h))</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> {</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> }</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#a6e4daf6736cab31fc696dd3adfe4bcfd"> 162</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1dc__selector.html#a6e4daf6736cab31fc696dd3adfe4bcfd">~dc_selector</a>()</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> {</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e">m_orig</a>)</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> SelectObject(<a class="code hl_variable" href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3">m_hdc</a>, <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e">m_orig</a>);</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#aacb4060094f2c4b1747ffa76455b235d"> 173</a></span> HGDIOBJ <a class="code hl_function" href="classwinstd_1_1dc__selector.html#aacb4060094f2c4b1747ffa76455b235d">status</a>() const noexcept</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> {</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e">m_orig</a>;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> }</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> </div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3"> 179</a></span> HDC <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3">m_hdc</a>; </div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e"> 180</a></span> HGDIOBJ <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e">m_orig</a>; </div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> };</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span>}</div>
<div class="ttc" id="aclasswinstd_1_1dc__selector_html"><div class="ttname"><a href="classwinstd_1_1dc__selector.html">winstd::dc_selector</a></div><div class="ttdoc">Context scope DC object restorer.</div><div class="ttdef"><b>Definition:</b> GDI.h:141</div></div>
<div class="ttc" id="aclasswinstd_1_1dc__selector_html_a6e4daf6736cab31fc696dd3adfe4bcfd"><div class="ttname"><a href="classwinstd_1_1dc__selector.html#a6e4daf6736cab31fc696dd3adfe4bcfd">winstd::dc_selector::~dc_selector</a></div><div class="ttdeci">virtual ~dc_selector()</div><div class="ttdoc">Restores original object.</div><div class="ttdef"><b>Definition:</b> GDI.h:162</div></div>
<div class="ttc" id="aclasswinstd_1_1dc__selector_html_aa443ed25d281078db2172808e7c74b3e"><div class="ttname"><a href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e">winstd::dc_selector::m_orig</a></div><div class="ttdeci">HGDIOBJ m_orig</div><div class="ttdoc">Original object handle.</div><div class="ttdef"><b>Definition:</b> GDI.h:180</div></div>
<div class="ttc" id="aclasswinstd_1_1dc__selector_html_aacb4060094f2c4b1747ffa76455b235d"><div class="ttname"><a href="classwinstd_1_1dc__selector.html#aacb4060094f2c4b1747ffa76455b235d">winstd::dc_selector::status</a></div><div class="ttdeci">HGDIOBJ status() const noexcept</div><div class="ttdoc">Return result of SelectObject() call.</div><div class="ttdef"><b>Definition:</b> GDI.h:173</div></div>
<div class="ttc" id="aclasswinstd_1_1dc__selector_html_ab2d1223cd41529b6b2c9bb09c34568e3"><div class="ttname"><a href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3">winstd::dc_selector::m_hdc</a></div><div class="ttdeci">HDC m_hdc</div><div class="ttdoc">A handle to the device context.</div><div class="ttdef"><b>Definition:</b> GDI.h:179</div></div>
<div class="ttc" id="aclasswinstd_1_1dc__selector_html_aea810206b4b8977f45137425af16c2cc"><div class="ttname"><a href="classwinstd_1_1dc__selector.html#aea810206b4b8977f45137425af16c2cc">winstd::dc_selector::dc_selector</a></div><div class="ttdeci">dc_selector(_In_ HDC hdc, _In_ HGDIOBJ h) noexcept</div><div class="ttdoc">Selects an object into the specified device context (DC). The new object replaces the previous object...</div><div class="ttdef"><b>Definition:</b> GDI.h:151</div></div>
<div class="ttc" id="aclasswinstd_1_1dc_html"><div class="ttname"><a href="classwinstd_1_1dc.html">winstd::dc</a></div><div class="ttdoc">Device context wrapper class.</div><div class="ttdef"><b>Definition:</b> GDI.h:54</div></div>
<div class="ttc" id="aclasswinstd_1_1dc_html_ad3dc9d48645022e7a1adcdb9ea01a557"><div class="ttname"><a href="classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557">winstd::dc::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Deletes the specified device context (DC).</div><div class="ttdef"><b>Definition:</b> GDI.h:75</div></div>
<div class="ttc" id="aclasswinstd_1_1dc_html_ae8c5722935c8a1c3f6a1857679f4563c"><div class="ttname"><a href="classwinstd_1_1dc.html#ae8c5722935c8a1c3f6a1857679f4563c">winstd::dc::~dc</a></div><div class="ttdeci">virtual ~dc()</div><div class="ttdoc">Deletes the specified device context (DC).</div><div class="ttdef"><b>Definition:</b> GDI.h:63</div></div>
<div class="ttc" id="aclasswinstd_1_1gdi__handle_html"><div class="ttname"><a href="classwinstd_1_1gdi__handle.html">winstd::gdi_handle</a></div><div class="ttdoc">Windows HGDIOBJ wrapper class.</div><div class="ttdef"><b>Definition:</b> GDI.h:23</div></div>
<div class="ttc" id="aclasswinstd_1_1gdi__handle_html_a777cd2403d6b8d0fb0a4b69c82fcca87"><div class="ttname"><a href="classwinstd_1_1gdi__handle.html#a777cd2403d6b8d0fb0a4b69c82fcca87">winstd::gdi_handle::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Closes an open object handle.</div><div class="ttdef"><b>Definition:</b> GDI.h:44</div></div>
<div class="ttc" id="aclasswinstd_1_1gdi__handle_html_aae79abc9495f415a548d7f1f1ce4dab2"><div class="ttname"><a href="classwinstd_1_1gdi__handle.html#aae79abc9495f415a548d7f1f1ce4dab2">winstd::gdi_handle::~gdi_handle</a></div><div class="ttdeci">virtual ~gdi_handle()</div><div class="ttdoc">Closes an open object handle.</div><div class="ttdef"><b>Definition:</b> GDI.h:32</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html"><div class="ttname"><a href="classwinstd_1_1handle.html">winstd::handle</a></div><div class="ttdoc">Base abstract template class to support generic object handle keeping.</div><div class="ttdef"><b>Definition:</b> Common.h:580</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a3dda19199ecfbc378c932e7d84d0ea81"><div class="ttname"><a href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">winstd::handle&lt; HDC, NULL &gt;::handle_type</a></div><div class="ttdeci">HDC handle_type</div><div class="ttdoc">Datatype of the object handle this template class handles.</div><div class="ttdef"><b>Definition:</b> Common.h:585</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_aabde3f16fd98b06b3b0282ef7806eb59"><div class="ttname"><a href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">winstd::handle&lt; T, NULL &gt;::m_h</a></div><div class="ttdeci">handle_type m_h</div><div class="ttdoc">Object handle.</div><div class="ttdef"><b>Definition:</b> Common.h:833</div></div>
<div class="ttc" id="aclasswinstd_1_1window__dc_html"><div class="ttname"><a href="classwinstd_1_1window__dc.html">winstd::window_dc</a></div><div class="ttdoc">Device context wrapper class.</div><div class="ttdef"><b>Definition:</b> GDI.h:85</div></div>
<div class="ttc" id="aclasswinstd_1_1window__dc_html_a04f6e8a97f6a492cc2f0683738e978d3"><div class="ttname"><a href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">winstd::window_dc::m_hwnd</a></div><div class="ttdeci">HWND m_hwnd</div><div class="ttdoc">Window handle.</div><div class="ttdef"><b>Definition:</b> GDI.h:134</div></div>
<div class="ttc" id="aclasswinstd_1_1window__dc_html_a351bae4203ad766c94f4fc6eac74e98a"><div class="ttname"><a href="classwinstd_1_1window__dc.html#a351bae4203ad766c94f4fc6eac74e98a">winstd::window_dc::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Releases a device context (DC), freeing it for use by other applications.</div><div class="ttdef"><b>Definition:</b> GDI.h:128</div></div>
<div class="ttc" id="aclasswinstd_1_1window__dc_html_a3fd01c5264443520462cb7cab886a79b"><div class="ttname"><a href="classwinstd_1_1window__dc.html#a3fd01c5264443520462cb7cab886a79b">winstd::window_dc::~window_dc</a></div><div class="ttdeci">virtual ~window_dc()</div><div class="ttdoc">Releases a device context (DC), freeing it for use by other applications.</div><div class="ttdef"><b>Definition:</b> GDI.h:116</div></div>
<div class="ttc" id="agroup___win_std_general_html_ga11254c72ad33a6e0f5de31db708f784c"><div class="ttname"><a href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a></div><div class="ttdeci">#define WINSTD_NONCOPYABLE(C)</div><div class="ttdoc">Declares a class as non-copyable.</div><div class="ttdef"><b>Definition:</b> Common.h:53</div></div>
<div class="ttc" id="agroup___win_std_general_html_gac91fa8d79c860b1fdbba65b6a322f760"><div class="ttname"><a href="group___win_std_general.html#gac91fa8d79c860b1fdbba65b6a322f760">WINSTD_NONMOVABLE</a></div><div class="ttdeci">#define WINSTD_NONMOVABLE(C)</div><div class="ttdoc">Declares a class as non-movable.</div><div class="ttdef"><b>Definition:</b> Common.h:61</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga419efffd12b5c96abc8a275ba375ca60"><div class="ttname"><a href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, INVAL)</div><div class="ttdoc">Implements default constructors and operators to prevent their auto-generation by compiler.</div><div class="ttdef"><b>Definition:</b> Common.h:138</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_gacf43e306968474166474090690857e1c"><div class="ttname"><a href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">winstd::handle&lt; T, NULL &gt;::invalid</a></div><div class="ttdeci">static const T invalid</div><div class="ttdoc">Invalid handle value.</div><div class="ttdef"><b>Definition:</b> Common.h:590</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

371
_m_s_i_8h_source.html Normal file
View File

@ -0,0 +1,371 @@
<!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/MSI.h Source File</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="headertitle"><div class="title">MSI.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;MsiQuery.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">static</span> UINT MsiGetPropertyA(_In_ MSIHANDLE hInstall, _In_z_ LPCSTR szName, _Inout_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sValue)</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span>{</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> assert(0); <span class="comment">// TODO: Test this code.</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">char</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(char)];</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> UINT uiResult;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> uiResult = ::MsiGetPropertyA(hInstall, szName, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// Allocate buffer on heap to read the string data into and read it.</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> std::unique_ptr&lt;char[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">char</span>[++dwSize]);</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> uiResult = ::MsiGetPropertyA(hInstall, szName, szBuffer.get(), &amp;dwSize);</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> sValue.assign(szBuffer.get(), uiResult == ERROR_SUCCESS ? dwSize : 0);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> }</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>}</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="keyword">static</span> UINT MsiGetPropertyW(_In_ MSIHANDLE hInstall, _In_z_ LPCWSTR szName, _Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sValue)</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span>{</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordtype">wchar_t</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(wchar_t)];</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> UINT uiResult;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> uiResult = ::MsiGetPropertyW(hInstall, szName, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// Allocate buffer on heap to read the string data into and read it.</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> std::unique_ptr&lt;wchar_t[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[++dwSize]);</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> uiResult = ::MsiGetPropertyW(hInstall, szName, szBuffer.get(), &amp;dwSize);</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> sValue.assign(szBuffer.get(), uiResult == ERROR_SUCCESS ? dwSize : 0);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> }</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span>}</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="keyword">static</span> UINT MsiRecordGetStringA(_In_ MSIHANDLE hRecord, _In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> iField, _Inout_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sValue)</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span>{</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> assert(0); <span class="comment">// TODO: Test this code.</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordtype">char</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(char)];</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> UINT uiResult;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> uiResult = ::MsiRecordGetStringA(hRecord, iField, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// Allocate buffer on heap to read the string data into and read it.</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> std::unique_ptr&lt;char[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">char</span>[++dwSize]);</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> uiResult = ::MsiRecordGetStringA(hRecord, iField, szBuffer.get(), &amp;dwSize);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> sValue.assign(szBuffer.get(), uiResult == ERROR_SUCCESS ? dwSize : 0);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span>}</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="keyword">static</span> UINT MsiRecordGetStringW(_In_ MSIHANDLE hRecord, _In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> iField, _Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sValue)</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span>{</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordtype">wchar_t</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(wchar_t)];</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> UINT uiResult;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> uiResult = ::MsiRecordGetStringW(hRecord, iField, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// Allocate buffer on heap to read the string data into and read it.</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> std::unique_ptr&lt;wchar_t[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[++dwSize]);</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> uiResult = ::MsiRecordGetStringW(hRecord, iField, szBuffer.get(), &amp;dwSize);</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> sValue.assign(szBuffer.get(), uiResult == ERROR_SUCCESS ? dwSize : 0);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> }</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span>}</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="keyword">static</span> UINT MsiFormatRecordA(_In_ MSIHANDLE hInstall, _In_ MSIHANDLE hRecord, _Inout_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sValue)</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span>{</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> assert(0); <span class="comment">// TODO: Test this code.</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordtype">char</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(char)];</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> UINT uiResult;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> uiResult = ::MsiFormatRecordA(hInstall, hRecord, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> std::unique_ptr&lt;char[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">char</span>[++dwSize]);</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> uiResult = ::MsiFormatRecordA(hInstall, hRecord, szBuffer.get(), &amp;dwSize);</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> sValue.assign(szBuffer.get(), uiResult == ERROR_SUCCESS ? dwSize : 0);</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> }</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span>}</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="keyword">static</span> UINT MsiFormatRecordW(_In_ MSIHANDLE hInstall, _In_ MSIHANDLE hRecord, _Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sValue)</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span>{</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordtype">wchar_t</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(wchar_t)];</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> UINT uiResult;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> uiResult = ::MsiFormatRecordW(hInstall, hRecord, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> std::unique_ptr&lt;wchar_t[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[++dwSize]);</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> uiResult = ::MsiFormatRecordW(hInstall, hRecord, szBuffer.get(), &amp;dwSize);</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> sValue.assign(szBuffer.get(), uiResult == ERROR_SUCCESS ? dwSize : 0);</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> }</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span>}</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span><span class="keyword">static</span> UINT MsiRecordReadStream(_In_ MSIHANDLE hRecord, _In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> iField, _Inout_ std::vector&lt;_Ty, _Ax&gt; &amp;binData)</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span>{</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> assert(0); <span class="comment">// TODO: Test this code.</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> DWORD dwSize = 0;</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> UINT uiResult;</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="comment">// Query the actual data length first.</span></div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> uiResult = ::MsiRecordReadStream(hRecord, iField, NULL, &amp;dwSize);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> binData.resize((dwSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> return ::MsiRecordReadStream(hRecord, iField, <span class="keyword">reinterpret_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(binData.data()), &amp;dwSize);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> }</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span>}</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span><span class="keyword">static</span> UINT MsiGetTargetPathA(_In_ MSIHANDLE hInstall, _In_z_ LPCSTR szFolder, _Out_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sValue)</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span>{</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> assert(0); <span class="comment">// TODO: Test this code.</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="keywordtype">char</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(char)];</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> UINT uiResult;</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> </div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> uiResult = ::MsiGetTargetPathA(hInstall, szFolder, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> std::unique_ptr&lt;char[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">char</span>[++dwSize]);</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> uiResult = ::MsiGetTargetPathA(hInstall, szFolder, szBuffer.get(), &amp;dwSize);</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> sValue.assign(szBuffer.get(), uiResult == ERROR_SUCCESS ? dwSize : 0);</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> }</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span>}</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span><span class="keyword">static</span> UINT MsiGetTargetPathW(_In_ MSIHANDLE hInstall, _In_z_ LPCWSTR szFolder, _Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sValue)</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span>{</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keywordtype">wchar_t</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(wchar_t)];</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> UINT uiResult;</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> </div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> uiResult = ::MsiGetTargetPathW(hInstall, szFolder, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> std::unique_ptr&lt;wchar_t[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[++dwSize]);</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> uiResult = ::MsiGetTargetPathW(hInstall, szFolder, szBuffer.get(), &amp;dwSize);</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> sValue.assign(szBuffer.get(), uiResult == ERROR_SUCCESS ? dwSize : 0);</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> }</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span>}</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> </div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span><span class="keyword">static</span> INSTALLSTATE MsiGetComponentPathA(_In_z_ LPCSTR szProduct, _In_z_ LPCSTR szComponent, _Inout_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sValue)</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span>{</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordtype">char</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(char)];</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> INSTALLSTATE state;</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> </div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> state = ::MsiGetComponentPathA(szProduct, szComponent, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <span class="keywordflow">if</span> (state &gt;= INSTALLSTATE_BROKEN) {</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> <span class="keywordflow">return</span> state;</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (state == INSTALLSTATE_MOREDATA) {</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> std::unique_ptr&lt;char[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">char</span>[++dwSize]);</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> state = ::MsiGetComponentPathA(szProduct, szComponent, szBuffer.get(), &amp;dwSize);</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> sValue.assign(szBuffer.get(), state &gt;= INSTALLSTATE_BROKEN ? dwSize : 0);</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> <span class="keywordflow">return</span> state;</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="keywordflow">return</span> state;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> }</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span>}</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> </div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span><span class="keyword">static</span> INSTALLSTATE MsiGetComponentPathW(_In_z_ LPCWSTR szProduct, _In_z_ LPCWSTR szComponent, _Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sValue)</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span>{</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> <span class="keywordtype">wchar_t</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(wchar_t)];</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> INSTALLSTATE state;</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> </div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> state = ::MsiGetComponentPathW(szProduct, szComponent, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keywordflow">if</span> (state &gt;= INSTALLSTATE_BROKEN) {</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> <span class="keywordflow">return</span> state;</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (state == INSTALLSTATE_MOREDATA) {</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> std::unique_ptr&lt;wchar_t[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[++dwSize]);</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> state = ::MsiGetComponentPathW(szProduct, szComponent, szBuffer.get(), &amp;dwSize);</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> sValue.assign(szBuffer.get(), state &gt;= INSTALLSTATE_BROKEN ? dwSize : 0);</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <span class="keywordflow">return</span> state;</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="keywordflow">return</span> state;</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> }</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span>}</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> </div>
<div class="ttc" id="agroup___win_std_general_html_ga3ca39107a61bbcd05f901898ec584986"><div class="ttname"><a href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a></div><div class="ttdeci">#define WINSTD_STACK_BUFFER_BYTES</div><div class="ttdoc">Size of the stack buffer in bytes used for initial system function call.</div><div class="ttdef"><b>Definition:</b> Common.h:80</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

374
_sec_8h_source.html Normal file
View File

@ -0,0 +1,374 @@
<!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/Sec.h Source File</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="headertitle"><div class="title">Sec.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;Security.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#if defined(SECURITY_WIN32) || defined(SECURITY_KERNEL)</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">static</span> BOOLEAN GetUserNameExA(_In_ EXTENDED_NAME_FORMAT NameFormat, _Inout_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sName)</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span>{</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> assert(0); <span class="comment">// TODO: Test this code.</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordtype">char</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(char)];</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> ULONG ulSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">if</span> (::GetUserNameExA(NameFormat, szStackBuffer, &amp;ulSize)) {</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> sName.assign(szStackBuffer, ulSize);</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">if</span> (::GetLastError() == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// Allocate buffer on heap and retry.</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> std::unique_ptr&lt;char[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">char</span>[ulSize]);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">if</span> (::GetUserNameExA(NameFormat, szBuffer.get(), &amp;ulSize)) {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> sName.assign(szBuffer.get(), ulSize);</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> }</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> }</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> }</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>}</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="keyword">static</span> BOOLEAN GetUserNameExW(_In_ EXTENDED_NAME_FORMAT NameFormat, _Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sName)</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span>{</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> assert(0); <span class="comment">// TODO: Test this code.</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordtype">wchar_t</span> szStackBuffer[<a class="code hl_define" href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a>/<span class="keyword">sizeof</span>(wchar_t)];</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> ULONG ulSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">if</span> (::GetUserNameExW(NameFormat, szStackBuffer, &amp;ulSize)) {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> sName.assign(szStackBuffer, ulSize);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">if</span> (::GetLastError() == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// Allocate buffer on heap and retry.</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> std::unique_ptr&lt;wchar_t[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[ulSize]);</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">if</span> (::GetUserNameExW(NameFormat, szBuffer.get(), &amp;ulSize)) {</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> sName.assign(szBuffer.get(), ulSize);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> }</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> }</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>}</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>{</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html"> 93</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1sec__credentials.html">sec_credentials</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;PCredHandle, NULL&gt;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> {</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <a class="code hl_define" href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a>(<a class="code hl_class" href="classwinstd_1_1sec__credentials.html">sec_credentials</a>)</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#a4cc86fe337998e5becc41c3f78563df8"> 101</a></span> <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#a4cc86fe337998e5becc41c3f78563df8">sec_credentials</a>()</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> {</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_variable" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a">m_expires</a>.QuadPart = -1;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#af68308c08ff6c3ce1d0f6f9f3ca57dd2"> 112</a></span> <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#af68308c08ff6c3ce1d0f6f9f3ca57dd2">sec_credentials</a>(_In_opt_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h, _In_ <span class="keyword">const</span> TimeStamp expires) :</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <a class="code hl_variable" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a">m_expires</a>(expires),</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>(h)</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> {</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> }</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#a1a657671cd68f72e4ff5da496235269f"> 123</a></span> <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#a1a657671cd68f72e4ff5da496235269f">sec_credentials</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1sec__credentials.html">sec_credentials</a> &amp;&amp;h) noexcept :</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <a class="code hl_variable" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a">m_expires</a>(std::move(h.m_expires)),</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle&lt;PCredHandle, NULL&gt;</a>(std::move(h))</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> {</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#ad8b34c3a231201fd201e56a28235b9c3"> 134</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#ad8b34c3a231201fd201e56a28235b9c3">~sec_credentials</a>()</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> {</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#a6156649d1a93696c8369361cb426e260">free_internal</a>();</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> }</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#aed4c8c2b825574c57b0beaa9da0eed9c"> 145</a></span> <a class="code hl_class" href="classwinstd_1_1sec__credentials.html">sec_credentials</a>&amp; <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#aed4c8c2b825574c57b0beaa9da0eed9c">operator=</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1sec__credentials.html">sec_credentials</a> &amp;&amp;h) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> {</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(h)) {</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> *(<a class="code hl_class" href="classwinstd_1_1handle.html">handle&lt;handle_type, NULL&gt;</a>*)<span class="keyword">this</span> = std::move(h);</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <a class="code hl_variable" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a">m_expires</a> = std::move(h.m_expires);</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> }</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> }</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#ad78873844214566e36c381c05ac476f9"> 163</a></span> SECURITY_STATUS <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#ad78873844214566e36c381c05ac476f9">acquire</a>(</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> _In_opt_ LPTSTR pszPrincipal,</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> _In_ LPTSTR pszPackage,</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> _In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> fCredentialUse,</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> _In_opt_ <span class="keywordtype">void</span> *pvLogonId,</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> _In_opt_ <span class="keywordtype">void</span> *pAuthData,</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> _In_opt_ SEC_GET_KEY_FN pGetKeyFn = NULL,</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> _In_opt_ <span class="keywordtype">void</span> *pvGetKeyArgument = NULL)</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> {</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h = <span class="keyword">new</span> CredHandle;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> TimeStamp exp;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> SECURITY_STATUS res = AcquireCredentialsHandle(pszPrincipal, pszPackage, fCredentialUse, pvLogonId, pAuthData, pGetKeyFn, pvGetKeyArgument, h, &amp;exp);</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">if</span> (SUCCEEDED(res)) {</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <a class="code hl_variable" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a">m_expires</a> = exp;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">delete</span> h;</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> }</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#a6156649d1a93696c8369361cb426e260"> 189</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#a6156649d1a93696c8369361cb426e260">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> FreeCredentialsHandle(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">delete</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>;</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> }</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a"> 196</a></span> TimeStamp <a class="code hl_variable" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a">m_expires</a>; </div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> };</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html"> 202</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1sec__context.html">sec_context</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;PCtxtHandle, NULL&gt;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> {</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a5d41cc2cbe613fcc2bd37cc260de9763"> 208</a></span> <a class="code hl_function" href="classwinstd_1_1sec__context.html#a5d41cc2cbe613fcc2bd37cc260de9763">sec_context</a>() :</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f">m_attrib</a>(0),</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;PCtxtHandle, NULL&gt;()</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> {</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304">m_expires</a>.QuadPart = -1;</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> }</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a504f0f4cf6abf3edb868b35d588fb597"> 220</a></span> <a class="code hl_function" href="classwinstd_1_1sec__context.html#a504f0f4cf6abf3edb868b35d588fb597">sec_context</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1sec__context.html">sec_context</a> &amp;&amp;h) noexcept :</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f">m_attrib</a> (std::move(h.m_attrib )),</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304">m_expires</a>(std::move(h.m_expires)),</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle&lt;PCtxtHandle, NULL&gt;</a>(std::move(h))</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> {</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> }</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> </div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a2307770cc707a4f8e815c3fea57ac8a9"> 232</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1sec__context.html#a2307770cc707a4f8e815c3fea57ac8a9">~sec_context</a>()</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> {</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <a class="code hl_function" href="classwinstd_1_1sec__context.html#afe8682a77fe50e5818ee6c4c741f36d9">free_internal</a>();</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> }</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> </div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#ae514c48916fa6859ccb9591fa1313e27"> 243</a></span> <a class="code hl_class" href="classwinstd_1_1sec__context.html">sec_context</a>&amp; <a class="code hl_function" href="classwinstd_1_1sec__context.html#ae514c48916fa6859ccb9591fa1313e27">operator=</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1sec__context.html">sec_context</a> &amp;&amp;h) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> {</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(h)) {</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> *(<a class="code hl_class" href="classwinstd_1_1handle.html">handle&lt;handle_type, NULL&gt;</a>*)<span class="keyword">this</span> = std::move(h);</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f">m_attrib</a> = std::move(h.m_attrib);</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304">m_expires</a> = std::move(h.m_expires);</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> }</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> }</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> </div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#aa74e971e2aeeb1fccde7c377df48e4cb"> 262</a></span> SECURITY_STATUS <a class="code hl_function" href="classwinstd_1_1sec__context.html#aa74e971e2aeeb1fccde7c377df48e4cb">initialize</a>(</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> _In_opt_ PCredHandle phCredential,</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> _In_opt_z_ LPCTSTR pszTargetName,</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> _In_ ULONG fContextReq,</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> _In_ ULONG TargetDataRep,</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> _In_opt_ PSecBufferDesc pInput,</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> _Inout_opt_ PSecBufferDesc pOutput)</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> {</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h = <span class="keyword">new</span> CtxtHandle;</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> h-&gt;dwUpper = 0;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> h-&gt;dwLower = 0;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> ULONG attr;</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> TimeStamp exp;</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> SECURITY_STATUS res = InitializeSecurityContext(phCredential, NULL, <span class="keyword">const_cast&lt;</span>LPTSTR<span class="keyword">&gt;</span>(pszTargetName), fContextReq, 0, TargetDataRep, pInput, 0, h, pOutput, &amp;attr, &amp;exp);</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordflow">if</span> (SUCCEEDED(res)) {</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f">m_attrib</a> = attr;</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304">m_expires</a> = exp;</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keyword">delete</span> h;</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> }</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> </div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a38fc9a1281be19c1c1627dfcd1c0a5a3"> 294</a></span> SECURITY_STATUS <a class="code hl_function" href="classwinstd_1_1sec__context.html#a38fc9a1281be19c1c1627dfcd1c0a5a3">process</a>(</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> _In_opt_ PCredHandle phCredential,</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> _In_opt_z_ LPCTSTR pszTargetName,</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> _In_ ULONG fContextReq,</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> _In_ ULONG TargetDataRep,</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> _In_opt_ PSecBufferDesc pInput,</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> _Inout_opt_ PSecBufferDesc pOutput)</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> {</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="keywordflow">return</span> InitializeSecurityContext(phCredential, <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, <span class="keyword">const_cast&lt;</span>LPTSTR<span class="keyword">&gt;</span>(pszTargetName), fContextReq, 0, TargetDataRep, pInput, 0, NULL, pOutput, &amp;<a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f">m_attrib</a>, &amp;<a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304">m_expires</a>);</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> }</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> </div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#afe8682a77fe50e5818ee6c4c741f36d9"> 311</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1sec__context.html#afe8682a77fe50e5818ee6c4c741f36d9">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> DeleteSecurityContext(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> <span class="keyword">delete</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>;</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> }</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> </div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f"> 318</a></span> ULONG <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f">m_attrib</a>; </div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304"> 319</a></span> TimeStamp <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304">m_expires</a>; </div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> };</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> </div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__buffer__desc.html"> 325</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1sec__buffer__desc.html">sec_buffer_desc</a> : <span class="keyword">public</span> SecBufferDesc</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> {</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__buffer__desc.html#aa4922b79094e4c38a04fbbecdd97580c"> 331</a></span> <a class="code hl_function" href="classwinstd_1_1sec__buffer__desc.html#aa4922b79094e4c38a04fbbecdd97580c">sec_buffer_desc</a>(_Inout_count_(count) PSecBuffer buf, ULONG count, _In_ ULONG version = SECBUFFER_VERSION)</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> {</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> ulVersion = version;</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> cBuffers = count;</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> pBuffers = buf;</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> }</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> </div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__buffer__desc.html#a70ebe23821ab3f90eb20e4a5e69c49c4"> 343</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1sec__buffer__desc.html#a70ebe23821ab3f90eb20e4a5e69c49c4">~sec_buffer_desc</a>()</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> {</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <span class="keywordflow">for</span> (ULONG i = 0; i &lt; cBuffers; i++) {</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> <span class="keywordflow">if</span> (pBuffers[i].pvBuffer)</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> FreeContextBuffer(pBuffers[i].pvBuffer);</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> }</div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> }</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> };</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> </div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> </div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> </div>
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__runtime__error.html"> 362</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1sec__runtime__error.html">sec_runtime_error</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;SECURITY_STATUS&gt;</div>
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> {</div>
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__runtime__error.html#a9ad2dce38cb8a47fdfad72afd6ff3ff6"> 371</a></span> <a class="code hl_function" href="classwinstd_1_1sec__runtime__error.html#a9ad2dce38cb8a47fdfad72afd6ff3ff6">sec_runtime_error</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_ <span class="keyword">const</span> std::string&amp; msg) : <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;SECURITY_STATUS&gt;(num, msg)</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> {</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> }</div>
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> </div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__runtime__error.html#a208aaaed379ef884d20c48a798128df4"> 381</a></span> <a class="code hl_function" href="classwinstd_1_1sec__runtime__error.html#a208aaaed379ef884d20c48a798128df4">sec_runtime_error</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_opt_z_ <span class="keyword">const</span> <span class="keywordtype">char</span> *msg = <span class="keyword">nullptr</span>) : <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;SECURITY_STATUS&gt;(num, msg)</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> {</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> }</div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> </div>
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__runtime__error.html#ac9f3ac01e422ce43aebb8e5eae9290ce"> 390</a></span> <a class="code hl_function" href="classwinstd_1_1sec__runtime__error.html#ac9f3ac01e422ce43aebb8e5eae9290ce">sec_runtime_error</a>(<span class="keyword">const</span> <a class="code hl_class" href="classwinstd_1_1sec__runtime__error.html">sec_runtime_error</a> &amp;other) : <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;SECURITY_STATUS&gt;(other)</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> {</div>
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> }</div>
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> };</div>
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> </div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span>}</div>
<div class="ttc" id="aclasswinstd_1_1handle_html"><div class="ttname"><a href="classwinstd_1_1handle.html">winstd::handle</a></div><div class="ttdoc">Base abstract template class to support generic object handle keeping.</div><div class="ttdef"><b>Definition:</b> Common.h:580</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a3dda19199ecfbc378c932e7d84d0ea81"><div class="ttname"><a href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">winstd::handle&lt; PCredHandle, NULL &gt;::handle_type</a></div><div class="ttdeci">PCredHandle handle_type</div><div class="ttdoc">Datatype of the object handle this template class handles.</div><div class="ttdef"><b>Definition:</b> Common.h:585</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a98d09f9c2970890a5c83a0c2aedd3a30"><div class="ttname"><a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">winstd::handle&lt; PCredHandle, NULL &gt;::attach</a></div><div class="ttdeci">void attach(_In_opt_ handle_type h) noexcept</div><div class="ttdoc">Sets a new object handle for the class.</div><div class="ttdef"><b>Definition:</b> Common.h:794</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_aabde3f16fd98b06b3b0282ef7806eb59"><div class="ttname"><a href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">winstd::handle&lt; PCredHandle, NULL &gt;::m_h</a></div><div class="ttdeci">handle_type m_h</div><div class="ttdoc">Object handle.</div><div class="ttdef"><b>Definition:</b> Common.h:833</div></div>
<div class="ttc" id="aclasswinstd_1_1num__runtime__error_html"><div class="ttname"><a href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error</a></div><div class="ttdoc">Numerical runtime error.</div><div class="ttdef"><b>Definition:</b> Common.h:1390</div></div>
<div class="ttc" id="aclasswinstd_1_1num__runtime__error_html_a6fa2de87d0151b3ad9cac58f838852e0"><div class="ttname"><a href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">winstd::num_runtime_error&lt; SECURITY_STATUS &gt;::error_type</a></div><div class="ttdeci">SECURITY_STATUS error_type</div><div class="ttdoc">Error number type.</div><div class="ttdef"><b>Definition:</b> Common.h:1392</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__buffer__desc_html"><div class="ttname"><a href="classwinstd_1_1sec__buffer__desc.html">winstd::sec_buffer_desc</a></div><div class="ttdoc">SecBufferDesc wrapper class.</div><div class="ttdef"><b>Definition:</b> Sec.h:326</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__buffer__desc_html_a70ebe23821ab3f90eb20e4a5e69c49c4"><div class="ttname"><a href="classwinstd_1_1sec__buffer__desc.html#a70ebe23821ab3f90eb20e4a5e69c49c4">winstd::sec_buffer_desc::~sec_buffer_desc</a></div><div class="ttdeci">virtual ~sec_buffer_desc()</div><div class="ttdoc">Frees the security buffer descriptor.</div><div class="ttdef"><b>Definition:</b> Sec.h:343</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__buffer__desc_html_aa4922b79094e4c38a04fbbecdd97580c"><div class="ttname"><a href="classwinstd_1_1sec__buffer__desc.html#aa4922b79094e4c38a04fbbecdd97580c">winstd::sec_buffer_desc::sec_buffer_desc</a></div><div class="ttdeci">sec_buffer_desc(_Inout_count_(count) PSecBuffer buf, ULONG count, _In_ ULONG version=SECBUFFER_VERSION)</div><div class="ttdoc">Initializes security buffer descriptor.</div><div class="ttdef"><b>Definition:</b> Sec.h:331</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html"><div class="ttname"><a href="classwinstd_1_1sec__context.html">winstd::sec_context</a></div><div class="ttdoc">PCtxtHandle wrapper class.</div><div class="ttdef"><b>Definition:</b> Sec.h:203</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_a2307770cc707a4f8e815c3fea57ac8a9"><div class="ttname"><a href="classwinstd_1_1sec__context.html#a2307770cc707a4f8e815c3fea57ac8a9">winstd::sec_context::~sec_context</a></div><div class="ttdeci">virtual ~sec_context()</div><div class="ttdoc">Frees the security context.</div><div class="ttdef"><b>Definition:</b> Sec.h:232</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_a38fc9a1281be19c1c1627dfcd1c0a5a3"><div class="ttname"><a href="classwinstd_1_1sec__context.html#a38fc9a1281be19c1c1627dfcd1c0a5a3">winstd::sec_context::process</a></div><div class="ttdeci">SECURITY_STATUS process(_In_opt_ PCredHandle phCredential, _In_opt_z_ LPCTSTR pszTargetName, _In_ ULONG fContextReq, _In_ ULONG TargetDataRep, _In_opt_ PSecBufferDesc pInput, _Inout_opt_ PSecBufferDesc pOutput)</div><div class="ttdoc">Continue security context.</div><div class="ttdef"><b>Definition:</b> Sec.h:294</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_a504f0f4cf6abf3edb868b35d588fb597"><div class="ttname"><a href="classwinstd_1_1sec__context.html#a504f0f4cf6abf3edb868b35d588fb597">winstd::sec_context::sec_context</a></div><div class="ttdeci">sec_context(_Inout_ sec_context &amp;&amp;h) noexcept</div><div class="ttdoc">Move constructor.</div><div class="ttdef"><b>Definition:</b> Sec.h:220</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_a5d41cc2cbe613fcc2bd37cc260de9763"><div class="ttname"><a href="classwinstd_1_1sec__context.html#a5d41cc2cbe613fcc2bd37cc260de9763">winstd::sec_context::sec_context</a></div><div class="ttdeci">sec_context()</div><div class="ttdoc">Initializes a new class instance with the object handle set to NULL.</div><div class="ttdef"><b>Definition:</b> Sec.h:208</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_a8a211355b63585e9cc633639d801a13f"><div class="ttname"><a href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f">winstd::sec_context::m_attrib</a></div><div class="ttdeci">ULONG m_attrib</div><div class="ttdoc">Context attributes.</div><div class="ttdef"><b>Definition:</b> Sec.h:318</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_a8ea323950689fbfa34e945825f013304"><div class="ttname"><a href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304">winstd::sec_context::m_expires</a></div><div class="ttdeci">TimeStamp m_expires</div><div class="ttdoc">Context expiration time.</div><div class="ttdef"><b>Definition:</b> Sec.h:319</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_aa74e971e2aeeb1fccde7c377df48e4cb"><div class="ttname"><a href="classwinstd_1_1sec__context.html#aa74e971e2aeeb1fccde7c377df48e4cb">winstd::sec_context::initialize</a></div><div class="ttdeci">SECURITY_STATUS initialize(_In_opt_ PCredHandle phCredential, _In_opt_z_ LPCTSTR pszTargetName, _In_ ULONG fContextReq, _In_ ULONG TargetDataRep, _In_opt_ PSecBufferDesc pInput, _Inout_opt_ PSecBufferDesc pOutput)</div><div class="ttdoc">Initializes security context.</div><div class="ttdef"><b>Definition:</b> Sec.h:262</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_ae514c48916fa6859ccb9591fa1313e27"><div class="ttname"><a href="classwinstd_1_1sec__context.html#ae514c48916fa6859ccb9591fa1313e27">winstd::sec_context::operator=</a></div><div class="ttdeci">sec_context &amp; operator=(_Inout_ sec_context &amp;&amp;h) noexcept</div><div class="ttdoc">Move assignment.</div><div class="ttdef"><b>Definition:</b> Sec.h:243</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_afe8682a77fe50e5818ee6c4c741f36d9"><div class="ttname"><a href="classwinstd_1_1sec__context.html#afe8682a77fe50e5818ee6c4c741f36d9">winstd::sec_context::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Frees the security context.</div><div class="ttdef"><b>Definition:</b> Sec.h:311</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html">winstd::sec_credentials</a></div><div class="ttdoc">PCredHandle wrapper class.</div><div class="ttdef"><b>Definition:</b> Sec.h:94</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_a1a657671cd68f72e4ff5da496235269f"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#a1a657671cd68f72e4ff5da496235269f">winstd::sec_credentials::sec_credentials</a></div><div class="ttdeci">sec_credentials(_Inout_ sec_credentials &amp;&amp;h) noexcept</div><div class="ttdoc">Move constructor.</div><div class="ttdef"><b>Definition:</b> Sec.h:123</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_a4cc86fe337998e5becc41c3f78563df8"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#a4cc86fe337998e5becc41c3f78563df8">winstd::sec_credentials::sec_credentials</a></div><div class="ttdeci">sec_credentials()</div><div class="ttdoc">Initializes a new class instance with the object handle set to NULL.</div><div class="ttdef"><b>Definition:</b> Sec.h:101</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_a6156649d1a93696c8369361cb426e260"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#a6156649d1a93696c8369361cb426e260">winstd::sec_credentials::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Frees the security credentials.</div><div class="ttdef"><b>Definition:</b> Sec.h:189</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_ab2b392dc45e270c5855245fe4c8d159a"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a">winstd::sec_credentials::m_expires</a></div><div class="ttdeci">TimeStamp m_expires</div><div class="ttdoc">Credentials expiration time.</div><div class="ttdef"><b>Definition:</b> Sec.h:196</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_ad78873844214566e36c381c05ac476f9"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#ad78873844214566e36c381c05ac476f9">winstd::sec_credentials::acquire</a></div><div class="ttdeci">SECURITY_STATUS acquire(_In_opt_ LPTSTR pszPrincipal, _In_ LPTSTR pszPackage, _In_ unsigned long fCredentialUse, _In_opt_ void *pvLogonId, _In_opt_ void *pAuthData, _In_opt_ SEC_GET_KEY_FN pGetKeyFn=NULL, _In_opt_ void *pvGetKeyArgument=NULL)</div><div class="ttdoc">Acquires the security credentials.</div><div class="ttdef"><b>Definition:</b> Sec.h:163</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_ad8b34c3a231201fd201e56a28235b9c3"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#ad8b34c3a231201fd201e56a28235b9c3">winstd::sec_credentials::~sec_credentials</a></div><div class="ttdeci">virtual ~sec_credentials()</div><div class="ttdoc">Frees the security credentials.</div><div class="ttdef"><b>Definition:</b> Sec.h:134</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_aed4c8c2b825574c57b0beaa9da0eed9c"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#aed4c8c2b825574c57b0beaa9da0eed9c">winstd::sec_credentials::operator=</a></div><div class="ttdeci">sec_credentials &amp; operator=(_Inout_ sec_credentials &amp;&amp;h) noexcept</div><div class="ttdoc">Move assignment.</div><div class="ttdef"><b>Definition:</b> Sec.h:145</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_af68308c08ff6c3ce1d0f6f9f3ca57dd2"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#af68308c08ff6c3ce1d0f6f9f3ca57dd2">winstd::sec_credentials::sec_credentials</a></div><div class="ttdeci">sec_credentials(_In_opt_ handle_type h, _In_ const TimeStamp expires)</div><div class="ttdoc">Initializes a new class with an already available object handle.</div><div class="ttdef"><b>Definition:</b> Sec.h:112</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__runtime__error_html"><div class="ttname"><a href="classwinstd_1_1sec__runtime__error.html">winstd::sec_runtime_error</a></div><div class="ttdoc">Security runtime error.</div><div class="ttdef"><b>Definition:</b> Sec.h:363</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__runtime__error_html_a208aaaed379ef884d20c48a798128df4"><div class="ttname"><a href="classwinstd_1_1sec__runtime__error.html#a208aaaed379ef884d20c48a798128df4">winstd::sec_runtime_error::sec_runtime_error</a></div><div class="ttdeci">sec_runtime_error(_In_ error_type num, _In_opt_z_ const char *msg=nullptr)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition:</b> Sec.h:381</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__runtime__error_html_a9ad2dce38cb8a47fdfad72afd6ff3ff6"><div class="ttname"><a href="classwinstd_1_1sec__runtime__error.html#a9ad2dce38cb8a47fdfad72afd6ff3ff6">winstd::sec_runtime_error::sec_runtime_error</a></div><div class="ttdeci">sec_runtime_error(_In_ error_type num, _In_ const std::string &amp;msg)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition:</b> Sec.h:371</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__runtime__error_html_ac9f3ac01e422ce43aebb8e5eae9290ce"><div class="ttname"><a href="classwinstd_1_1sec__runtime__error.html#ac9f3ac01e422ce43aebb8e5eae9290ce">winstd::sec_runtime_error::sec_runtime_error</a></div><div class="ttdeci">sec_runtime_error(const sec_runtime_error &amp;other)</div><div class="ttdoc">Copies an exception.</div><div class="ttdef"><b>Definition:</b> Sec.h:390</div></div>
<div class="ttc" id="agroup___win_std_general_html_ga11254c72ad33a6e0f5de31db708f784c"><div class="ttname"><a href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a></div><div class="ttdeci">#define WINSTD_NONCOPYABLE(C)</div><div class="ttdoc">Declares a class as non-copyable.</div><div class="ttdef"><b>Definition:</b> Common.h:53</div></div>
<div class="ttc" id="agroup___win_std_general_html_ga3ca39107a61bbcd05f901898ec584986"><div class="ttname"><a href="group___win_std_general.html#ga3ca39107a61bbcd05f901898ec584986">WINSTD_STACK_BUFFER_BYTES</a></div><div class="ttdeci">#define WINSTD_STACK_BUFFER_BYTES</div><div class="ttdoc">Size of the stack buffer in bytes used for initial system function call.</div><div class="ttdef"><b>Definition:</b> Common.h:80</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_gacf43e306968474166474090690857e1c"><div class="ttname"><a href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">winstd::handle&lt; PCredHandle, NULL &gt;::invalid</a></div><div class="ttdeci">static const PCredHandle invalid</div><div class="ttdoc">Invalid handle value.</div><div class="ttdef"><b>Definition:</b> Common.h:590</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

196
_setup_a_p_i_8h_source.html Normal file
View File

@ -0,0 +1,196 @@
<!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/SetupAPI.h Source File</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="headertitle"><div class="title">SetupAPI.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;SetupAPI.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span>{</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__device__info__list.html"> 23</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1setup__device__info__list.html">setup_device_info_list</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;HDEVINFO, INVALID_HANDLE_VALUE&gt;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1setup__device__info__list.html">setup_device_info_list</a>, INVALID_HANDLE_VALUE)</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__device__info__list.html#a25368d32a4f4bfe23cb9749464daa487"> 33</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1setup__device__info__list.html#a25368d32a4f4bfe23cb9749464daa487">~setup_device_info_list</a>()</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> {</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <a class="code hl_function" href="classwinstd_1_1setup__device__info__list.html#a41f013a37e16074f1972fd279f8c1437">free_internal</a>();</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__device__info__list.html#ac77fbc283dc19bfd8caafdfaf4e213af"> 48</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1setup__device__info__list.html#ac77fbc283dc19bfd8caafdfaf4e213af">create</a>(</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> _In_opt_ <span class="keyword">const</span> GUID * ClassGuid,</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> _In_opt_ HWND hwndParent) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> {</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h = SetupDiCreateDeviceInfoList(ClassGuid, hwndParent);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">if</span> (h != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>) {</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> }</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__device__info__list.html#a307ebb13ec79a48f78e2208779dc4d8e"> 70</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1setup__device__info__list.html#a307ebb13ec79a48f78e2208779dc4d8e">create</a>(</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> _In_opt_ <span class="keyword">const</span> GUID * ClassGuid,</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> _In_opt_ PCTSTR Enumerator,</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> _In_opt_ HWND hwndParent,</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> _In_ DWORD Flags,</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> _In_opt_ HDEVINFO DeviceInfoSet,</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> _In_opt_ PCTSTR MachineName,</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> _Reserved_ PVOID Reserved) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> {</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h = SetupDiGetClassDevsEx(ClassGuid, Enumerator, hwndParent, Flags, DeviceInfoSet, MachineName, Reserved);</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">if</span> (h != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>) {</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> }</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__device__info__list.html#a41f013a37e16074f1972fd279f8c1437"> 94</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1setup__device__info__list.html#a41f013a37e16074f1972fd279f8c1437">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> SetupDiDestroyDeviceInfoList(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> }</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> };</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__driver__info__list__builder.html"> 103</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1setup__driver__info__list__builder.html">setup_driver_info_list_builder</a></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> {</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <a class="code hl_define" href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a>(<a class="code hl_class" href="classwinstd_1_1setup__driver__info__list__builder.html">setup_driver_info_list_builder</a>)</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <a class="code hl_define" href="group___win_std_general.html#gac91fa8d79c860b1fdbba65b6a322f760">WINSTD_NONMOVABLE</a>(<a class="code hl_class" href="classwinstd_1_1setup__driver__info__list__builder.html">setup_driver_info_list_builder</a>)</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__driver__info__list__builder.html#a457646c5448b031b96f9067d42ca8b05"> 114</a></span> <a class="code hl_function" href="classwinstd_1_1setup__driver__info__list__builder.html#a457646c5448b031b96f9067d42ca8b05">setup_driver_info_list_builder</a>(</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> _In_ HDEVINFO DeviceInfoSet,</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> _Inout_opt_ PSP_DEVINFO_DATA DeviceInfoData,</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> _In_ DWORD DriverType) noexcept :</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> m_DeviceInfoSet (DeviceInfoSet),</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> m_DeviceInfoData(DeviceInfoData),</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> m_DriverType (DriverType)</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <a class="code hl_variable" href="classwinstd_1_1setup__driver__info__list__builder.html#ae2c9f0f68a5068823a903092ef940d50">m_result</a> = SetupDiBuildDriverInfoList(m_DeviceInfoSet, m_DeviceInfoData, m_DriverType);</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__driver__info__list__builder.html#a836a7bb6c3c78c7c78965a32cfc2750e"> 130</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1setup__driver__info__list__builder.html#a836a7bb6c3c78c7c78965a32cfc2750e">~setup_driver_info_list_builder</a>()</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1setup__driver__info__list__builder.html#ae2c9f0f68a5068823a903092ef940d50">m_result</a>)</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> SetupDiDestroyDriverInfoList(m_DeviceInfoSet, m_DeviceInfoData, m_DriverType);</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> }</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__driver__info__list__builder.html#ae9c062e82afc1ee1eda5926a0567637e"> 141</a></span> BOOL <a class="code hl_function" href="classwinstd_1_1setup__driver__info__list__builder.html#ae9c062e82afc1ee1eda5926a0567637e">status</a>() const noexcept</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> {</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="classwinstd_1_1setup__driver__info__list__builder.html#ae2c9f0f68a5068823a903092ef940d50">m_result</a>;</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> }</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> HDEVINFO m_DeviceInfoSet;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> PSP_DEVINFO_DATA m_DeviceInfoData;</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> DWORD m_DriverType;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__driver__info__list__builder.html#ae2c9f0f68a5068823a903092ef940d50"> 150</a></span> BOOL <a class="code hl_variable" href="classwinstd_1_1setup__driver__info__list__builder.html#ae2c9f0f68a5068823a903092ef940d50">m_result</a>; </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> };</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span>}</div>
<div class="ttc" id="aclasswinstd_1_1handle_html"><div class="ttname"><a href="classwinstd_1_1handle.html">winstd::handle</a></div><div class="ttdoc">Base abstract template class to support generic object handle keeping.</div><div class="ttdef"><b>Definition:</b> Common.h:580</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a3dda19199ecfbc378c932e7d84d0ea81"><div class="ttname"><a href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">winstd::handle&lt; HDEVINFO, INVALID_HANDLE_VALUE &gt;::handle_type</a></div><div class="ttdeci">HDEVINFO handle_type</div><div class="ttdoc">Datatype of the object handle this template class handles.</div><div class="ttdef"><b>Definition:</b> Common.h:585</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a98d09f9c2970890a5c83a0c2aedd3a30"><div class="ttname"><a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">winstd::handle&lt; HDEVINFO, INVALID_HANDLE_VALUE &gt;::attach</a></div><div class="ttdeci">void attach(_In_opt_ handle_type h) noexcept</div><div class="ttdoc">Sets a new object handle for the class.</div><div class="ttdef"><b>Definition:</b> Common.h:794</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_aabde3f16fd98b06b3b0282ef7806eb59"><div class="ttname"><a href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">winstd::handle&lt; HDEVINFO, INVALID_HANDLE_VALUE &gt;::m_h</a></div><div class="ttdeci">handle_type m_h</div><div class="ttdoc">Object handle.</div><div class="ttdef"><b>Definition:</b> Common.h:833</div></div>
<div class="ttc" id="aclasswinstd_1_1setup__device__info__list_html"><div class="ttname"><a href="classwinstd_1_1setup__device__info__list.html">winstd::setup_device_info_list</a></div><div class="ttdoc">HDEVINFO wrapper class.</div><div class="ttdef"><b>Definition:</b> SetupAPI.h:24</div></div>
<div class="ttc" id="aclasswinstd_1_1setup__device__info__list_html_a25368d32a4f4bfe23cb9749464daa487"><div class="ttname"><a href="classwinstd_1_1setup__device__info__list.html#a25368d32a4f4bfe23cb9749464daa487">winstd::setup_device_info_list::~setup_device_info_list</a></div><div class="ttdeci">virtual ~setup_device_info_list()</div><div class="ttdoc">Frees the device information set.</div><div class="ttdef"><b>Definition:</b> SetupAPI.h:33</div></div>
<div class="ttc" id="aclasswinstd_1_1setup__device__info__list_html_a307ebb13ec79a48f78e2208779dc4d8e"><div class="ttname"><a href="classwinstd_1_1setup__device__info__list.html#a307ebb13ec79a48f78e2208779dc4d8e">winstd::setup_device_info_list::create</a></div><div class="ttdeci">bool create(_In_opt_ const GUID *ClassGuid, _In_opt_ PCTSTR Enumerator, _In_opt_ HWND hwndParent, _In_ DWORD Flags, _In_opt_ HDEVINFO DeviceInfoSet, _In_opt_ PCTSTR MachineName, _Reserved_ PVOID Reserved) noexcept</div><div class="ttdoc">Creates a device information set that contains requested device information elements for a local or a...</div><div class="ttdef"><b>Definition:</b> SetupAPI.h:70</div></div>
<div class="ttc" id="aclasswinstd_1_1setup__device__info__list_html_a41f013a37e16074f1972fd279f8c1437"><div class="ttname"><a href="classwinstd_1_1setup__device__info__list.html#a41f013a37e16074f1972fd279f8c1437">winstd::setup_device_info_list::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Frees the device information set.</div><div class="ttdef"><b>Definition:</b> SetupAPI.h:94</div></div>
<div class="ttc" id="aclasswinstd_1_1setup__device__info__list_html_ac77fbc283dc19bfd8caafdfaf4e213af"><div class="ttname"><a href="classwinstd_1_1setup__device__info__list.html#ac77fbc283dc19bfd8caafdfaf4e213af">winstd::setup_device_info_list::create</a></div><div class="ttdeci">bool create(_In_opt_ const GUID *ClassGuid, _In_opt_ HWND hwndParent) noexcept</div><div class="ttdoc">Creates an empty device information set and optionally associates the set with a device setup class a...</div><div class="ttdef"><b>Definition:</b> SetupAPI.h:48</div></div>
<div class="ttc" id="aclasswinstd_1_1setup__driver__info__list__builder_html"><div class="ttname"><a href="classwinstd_1_1setup__driver__info__list__builder.html">winstd::setup_driver_info_list_builder</a></div><div class="ttdoc">Builds a list of drivers in constructor and deletes it in destructor.</div><div class="ttdef"><b>Definition:</b> SetupAPI.h:104</div></div>
<div class="ttc" id="aclasswinstd_1_1setup__driver__info__list__builder_html_a457646c5448b031b96f9067d42ca8b05"><div class="ttname"><a href="classwinstd_1_1setup__driver__info__list__builder.html#a457646c5448b031b96f9067d42ca8b05">winstd::setup_driver_info_list_builder::setup_driver_info_list_builder</a></div><div class="ttdeci">setup_driver_info_list_builder(_In_ HDEVINFO DeviceInfoSet, _Inout_opt_ PSP_DEVINFO_DATA DeviceInfoData, _In_ DWORD DriverType) noexcept</div><div class="ttdoc">Construct the builder and builds a list of drivers that is associated with a specific device or with ...</div><div class="ttdef"><b>Definition:</b> SetupAPI.h:114</div></div>
<div class="ttc" id="aclasswinstd_1_1setup__driver__info__list__builder_html_a836a7bb6c3c78c7c78965a32cfc2750e"><div class="ttname"><a href="classwinstd_1_1setup__driver__info__list__builder.html#a836a7bb6c3c78c7c78965a32cfc2750e">winstd::setup_driver_info_list_builder::~setup_driver_info_list_builder</a></div><div class="ttdeci">virtual ~setup_driver_info_list_builder()</div><div class="ttdoc">Deletes a driver list and destructs the builder.</div><div class="ttdef"><b>Definition:</b> SetupAPI.h:130</div></div>
<div class="ttc" id="aclasswinstd_1_1setup__driver__info__list__builder_html_ae2c9f0f68a5068823a903092ef940d50"><div class="ttname"><a href="classwinstd_1_1setup__driver__info__list__builder.html#ae2c9f0f68a5068823a903092ef940d50">winstd::setup_driver_info_list_builder::m_result</a></div><div class="ttdeci">BOOL m_result</div><div class="ttdoc">Did building succeed?</div><div class="ttdef"><b>Definition:</b> SetupAPI.h:150</div></div>
<div class="ttc" id="aclasswinstd_1_1setup__driver__info__list__builder_html_ae9c062e82afc1ee1eda5926a0567637e"><div class="ttname"><a href="classwinstd_1_1setup__driver__info__list__builder.html#ae9c062e82afc1ee1eda5926a0567637e">winstd::setup_driver_info_list_builder::status</a></div><div class="ttdeci">BOOL status() const noexcept</div><div class="ttdoc">Return result of SetupDiBuildDriverInfoList() call.</div><div class="ttdef"><b>Definition:</b> SetupAPI.h:141</div></div>
<div class="ttc" id="agroup___win_std_general_html_ga11254c72ad33a6e0f5de31db708f784c"><div class="ttname"><a href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a></div><div class="ttdeci">#define WINSTD_NONCOPYABLE(C)</div><div class="ttdoc">Declares a class as non-copyable.</div><div class="ttdef"><b>Definition:</b> Common.h:53</div></div>
<div class="ttc" id="agroup___win_std_general_html_gac91fa8d79c860b1fdbba65b6a322f760"><div class="ttname"><a href="group___win_std_general.html#gac91fa8d79c860b1fdbba65b6a322f760">WINSTD_NONMOVABLE</a></div><div class="ttdeci">#define WINSTD_NONMOVABLE(C)</div><div class="ttdoc">Declares a class as non-movable.</div><div class="ttdef"><b>Definition:</b> Common.h:61</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga419efffd12b5c96abc8a275ba375ca60"><div class="ttname"><a href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, INVAL)</div><div class="ttdoc">Implements default constructors and operators to prevent their auto-generation by compiler.</div><div class="ttdef"><b>Definition:</b> Common.h:138</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_gacf43e306968474166474090690857e1c"><div class="ttname"><a href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">winstd::handle&lt; HDEVINFO, INVALID_HANDLE_VALUE &gt;::invalid</a></div><div class="ttdeci">static const HDEVINFO invalid</div><div class="ttdoc">Invalid handle value.</div><div class="ttdef"><b>Definition:</b> Common.h:590</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

115
_shell_8h_source.html Normal file
View File

@ -0,0 +1,115 @@
<!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/Shell.h Source File</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="headertitle"><div class="title">Shell.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;Shlwapi.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">static</span> BOOL PathCanonicalizeA(_Inout_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sValue, _In_ LPCSTR pszPath)</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span>{</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> assert(0); <span class="comment">// TODO: Test this code.</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="comment">// Allocate buffer on heap and read into it.</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">char</span> szBuffer[MAX_PATH + 1];</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> BOOL bResult = ::PathCanonicalizeA(szBuffer, pszPath);</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> sValue.assign(szBuffer, bResult ? MAX_PATH : 0);</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>}</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">static</span> BOOL PathCanonicalizeW(_Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sValue, _In_ LPCWSTR pszPath)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>{</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> assert(0); <span class="comment">// TODO: Test this code.</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">wchar_t</span> szBuffer[MAX_PATH + 1];</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> BOOL bResult = ::PathCanonicalizeW(szBuffer, pszPath);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> sValue.assign(szBuffer, bResult ? MAX_PATH : 0);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span>}</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

212
_w_l_a_n_8h_source.html Normal file
View File

@ -0,0 +1,212 @@
<!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/WLAN.h Source File</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="headertitle"><div class="title">WLAN.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;wlanapi.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">// Must not statically link to Wlanapi.dll as it is not available on Windows</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">// without a WLAN interface.</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">extern</span> DWORD (WINAPI *pfnWlanReasonCodeToString)(__in DWORD dwReasonCode, __in DWORD dwBufferSize, __in_ecount(dwBufferSize) PWCHAR pStringBuffer, __reserved PVOID pReserved);</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">static</span> DWORD WlanReasonCodeToString(_In_ DWORD dwReasonCode, _Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sValue, __reserved PVOID pReserved)</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>{</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> DWORD dwSize = 0;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">if</span> (!::pfnWlanReasonCodeToString)</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">return</span> ERROR_CALL_NOT_IMPLEMENTED;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">for</span> (;;) {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// Increment size and allocate buffer.</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> dwSize += 1024;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> std::unique_ptr&lt;wchar_t[]&gt; szBuffer(<span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[dwSize]);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Try!</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> DWORD dwResult = ::pfnWlanReasonCodeToString(dwReasonCode, dwSize, szBuffer.get(), pReserved);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">if</span> (dwResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> DWORD dwLength = (DWORD)wcsnlen(szBuffer.get(), dwSize);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">if</span> (dwLength &lt; dwSize - 1) {</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// Buffer was long enough.</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> sValue.assign(szBuffer.get(), dwLength);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> }</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">return</span> dwResult;</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> }</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span>}</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>{</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete.html"> 71</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Ty&gt; <span class="keyword">struct </span><a class="code hl_struct" href="structwinstd_1_1_wlan_free_memory__delete.html">WlanFreeMemory_delete</a></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> {</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete.html#a92dd05a3becb4a67ad858472eb615668"> 73</a></span> <span class="keyword">typedef</span> <a class="code hl_struct" href="structwinstd_1_1_wlan_free_memory__delete.html">WlanFreeMemory_delete&lt;_Ty&gt;</a> <a class="code hl_typedef" href="structwinstd_1_1_wlan_free_memory__delete.html#a92dd05a3becb4a67ad858472eb615668">_Myt</a>; </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete.html#a3e356b7c4a09f33100e3e35a71d1d94e"> 78</a></span> <a class="code hl_function" href="structwinstd_1_1_wlan_free_memory__delete.html#a3e356b7c4a09f33100e3e35a71d1d94e">WlanFreeMemory_delete</a>() {}</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete.html#ab30e2946800931f214e9a55a527fe546"> 83</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Ty2&gt; <a class="code hl_function" href="structwinstd_1_1_wlan_free_memory__delete.html#ab30e2946800931f214e9a55a527fe546">WlanFreeMemory_delete</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structwinstd_1_1_wlan_free_memory__delete.html">WlanFreeMemory_delete&lt;_Ty2&gt;</a>&amp;) {}</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete.html#a5013eb2213d92798d755cbb9fa24e26b"> 88</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structwinstd_1_1_wlan_free_memory__delete.html#a5013eb2213d92798d755cbb9fa24e26b">operator()</a>(_Ty *_Ptr)<span class="keyword"> const</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> WlanFreeMemory(_Ptr);</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> }</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> };</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html"> 97</a></span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Ty&gt; <span class="keyword">struct </span><a class="code hl_struct" href="structwinstd_1_1_wlan_free_memory__delete.html">WlanFreeMemory_delete</a>&lt;_Ty[]&gt;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> {</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a42bc91dcaea20ff32034ba5482027837"> 99</a></span> <span class="keyword">typedef</span> <a class="code hl_struct" href="structwinstd_1_1_wlan_free_memory__delete.html">WlanFreeMemory_delete&lt;_Ty&gt;</a> <a class="code hl_typedef" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a42bc91dcaea20ff32034ba5482027837">_Myt</a>; </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a39d42f9429ac337513cd2cad1b5c8fdf"> 104</a></span> <a class="code hl_function" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a39d42f9429ac337513cd2cad1b5c8fdf">WlanFreeMemory_delete</a>() {}</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a60d22784612a4cfd16ca8ad6629a77e4"> 109</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a60d22784612a4cfd16ca8ad6629a77e4">operator()</a>(_Ty *_Ptr)<span class="keyword"> const</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> WlanFreeMemory(_Ptr);</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> }</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> _Other&gt;</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a3b0a5a8db35677a63c3583a45658df1b"> 118</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a3b0a5a8db35677a63c3583a45658df1b">operator()</a>(_Other *)<span class="keyword"> const</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> WlanFreeMemory(_Ptr);</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> }</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> };</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="classwinstd_1_1wlan__handle.html"> 127</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1wlan__handle.html">wlan_handle</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;HANDLE, NULL&gt;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> {</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1wlan__handle.html">wlan_handle</a>, NULL)</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"><a class="line" href="classwinstd_1_1wlan__handle.html#a57e97a572a121f6e28673e6d84493de9"> 137</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1wlan__handle.html#a57e97a572a121f6e28673e6d84493de9">~wlan_handle</a>()</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> {</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <a class="code hl_function" href="classwinstd_1_1wlan__handle.html#a86e2b4aa2a5177b6ebac0258099f9261">free_internal</a>();</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="classwinstd_1_1wlan__handle.html#a4de83a8c128da9d644667ff1f62739f7"> 152</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1wlan__handle.html#a4de83a8c128da9d644667ff1f62739f7">open</a>(_In_ DWORD dwClientVersion, _Out_ PDWORD pdwNegotiatedVersion) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> {</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">const</span> DWORD dwResult = WlanOpenHandle(dwClientVersion, 0, pdwNegotiatedVersion, &amp;h);</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">if</span> (dwResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> SetLastError(dwResult);</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> }</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> }</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"><a class="line" href="classwinstd_1_1wlan__handle.html#a86e2b4aa2a5177b6ebac0258099f9261"> 171</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1wlan__handle.html#a86e2b4aa2a5177b6ebac0258099f9261">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> WlanCloseHandle(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, NULL);</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> }</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> };</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span>}</div>
<div class="ttc" id="aclasswinstd_1_1handle_html"><div class="ttname"><a href="classwinstd_1_1handle.html">winstd::handle</a></div><div class="ttdoc">Base abstract template class to support generic object handle keeping.</div><div class="ttdef"><b>Definition:</b> Common.h:580</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a3dda19199ecfbc378c932e7d84d0ea81"><div class="ttname"><a href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">winstd::handle&lt; HANDLE, NULL &gt;::handle_type</a></div><div class="ttdeci">HANDLE handle_type</div><div class="ttdoc">Datatype of the object handle this template class handles.</div><div class="ttdef"><b>Definition:</b> Common.h:585</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a98d09f9c2970890a5c83a0c2aedd3a30"><div class="ttname"><a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">winstd::handle&lt; HANDLE, NULL &gt;::attach</a></div><div class="ttdeci">void attach(_In_opt_ handle_type h) noexcept</div><div class="ttdoc">Sets a new object handle for the class.</div><div class="ttdef"><b>Definition:</b> Common.h:794</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_aabde3f16fd98b06b3b0282ef7806eb59"><div class="ttname"><a href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">winstd::handle&lt; HANDLE, NULL &gt;::m_h</a></div><div class="ttdeci">handle_type m_h</div><div class="ttdoc">Object handle.</div><div class="ttdef"><b>Definition:</b> Common.h:833</div></div>
<div class="ttc" id="aclasswinstd_1_1wlan__handle_html"><div class="ttname"><a href="classwinstd_1_1wlan__handle.html">winstd::wlan_handle</a></div><div class="ttdoc">WLAN handle wrapper.</div><div class="ttdef"><b>Definition:</b> WLAN.h:128</div></div>
<div class="ttc" id="aclasswinstd_1_1wlan__handle_html_a4de83a8c128da9d644667ff1f62739f7"><div class="ttname"><a href="classwinstd_1_1wlan__handle.html#a4de83a8c128da9d644667ff1f62739f7">winstd::wlan_handle::open</a></div><div class="ttdeci">bool open(_In_ DWORD dwClientVersion, _Out_ PDWORD pdwNegotiatedVersion) noexcept</div><div class="ttdoc">Opens a connection to the server.</div><div class="ttdef"><b>Definition:</b> WLAN.h:152</div></div>
<div class="ttc" id="aclasswinstd_1_1wlan__handle_html_a57e97a572a121f6e28673e6d84493de9"><div class="ttname"><a href="classwinstd_1_1wlan__handle.html#a57e97a572a121f6e28673e6d84493de9">winstd::wlan_handle::~wlan_handle</a></div><div class="ttdeci">virtual ~wlan_handle()</div><div class="ttdoc">Closes a connection to the server.</div><div class="ttdef"><b>Definition:</b> WLAN.h:137</div></div>
<div class="ttc" id="aclasswinstd_1_1wlan__handle_html_a86e2b4aa2a5177b6ebac0258099f9261"><div class="ttname"><a href="classwinstd_1_1wlan__handle.html#a86e2b4aa2a5177b6ebac0258099f9261">winstd::wlan_handle::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Closes a connection to the server.</div><div class="ttdef"><b>Definition:</b> WLAN.h:171</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga419efffd12b5c96abc8a275ba375ca60"><div class="ttname"><a href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, INVAL)</div><div class="ttdoc">Implements default constructors and operators to prevent their auto-generation by compiler.</div><div class="ttdef"><b>Definition:</b> Common.h:138</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_gacf43e306968474166474090690857e1c"><div class="ttname"><a href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">winstd::handle&lt; HANDLE, NULL &gt;::invalid</a></div><div class="ttdeci">static const HANDLE invalid</div><div class="ttdoc">Invalid handle value.</div><div class="ttdef"><b>Definition:</b> Common.h:590</div></div>
<div class="ttc" id="astructwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4_html_a39d42f9429ac337513cd2cad1b5c8fdf"><div class="ttname"><a href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a39d42f9429ac337513cd2cad1b5c8fdf">winstd::WlanFreeMemory_delete&lt; _Ty[]&gt;::WlanFreeMemory_delete</a></div><div class="ttdeci">WlanFreeMemory_delete()</div><div class="ttdoc">Default construct.</div><div class="ttdef"><b>Definition:</b> WLAN.h:104</div></div>
<div class="ttc" id="astructwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4_html_a3b0a5a8db35677a63c3583a45658df1b"><div class="ttname"><a href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a3b0a5a8db35677a63c3583a45658df1b">winstd::WlanFreeMemory_delete&lt; _Ty[]&gt;::operator()</a></div><div class="ttdeci">void operator()(_Other *) const</div><div class="ttdoc">Delete a pointer of another type.</div><div class="ttdef"><b>Definition:</b> WLAN.h:118</div></div>
<div class="ttc" id="astructwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4_html_a42bc91dcaea20ff32034ba5482027837"><div class="ttname"><a href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a42bc91dcaea20ff32034ba5482027837">winstd::WlanFreeMemory_delete&lt; _Ty[]&gt;::_Myt</a></div><div class="ttdeci">WlanFreeMemory_delete&lt; _Ty &gt; _Myt</div><div class="ttdoc">This type.</div><div class="ttdef"><b>Definition:</b> WLAN.h:99</div></div>
<div class="ttc" id="astructwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4_html_a60d22784612a4cfd16ca8ad6629a77e4"><div class="ttname"><a href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a60d22784612a4cfd16ca8ad6629a77e4">winstd::WlanFreeMemory_delete&lt; _Ty[]&gt;::operator()</a></div><div class="ttdeci">void operator()(_Ty *_Ptr) const</div><div class="ttdoc">Delete a pointer.</div><div class="ttdef"><b>Definition:</b> WLAN.h:109</div></div>
<div class="ttc" id="astructwinstd_1_1_wlan_free_memory__delete_html"><div class="ttname"><a href="structwinstd_1_1_wlan_free_memory__delete.html">winstd::WlanFreeMemory_delete</a></div><div class="ttdoc">Deleter for unique_ptr using WlanFreeMemory.</div><div class="ttdef"><b>Definition:</b> WLAN.h:72</div></div>
<div class="ttc" id="astructwinstd_1_1_wlan_free_memory__delete_html_a3e356b7c4a09f33100e3e35a71d1d94e"><div class="ttname"><a href="structwinstd_1_1_wlan_free_memory__delete.html#a3e356b7c4a09f33100e3e35a71d1d94e">winstd::WlanFreeMemory_delete::WlanFreeMemory_delete</a></div><div class="ttdeci">WlanFreeMemory_delete()</div><div class="ttdoc">Default construct.</div><div class="ttdef"><b>Definition:</b> WLAN.h:78</div></div>
<div class="ttc" id="astructwinstd_1_1_wlan_free_memory__delete_html_a5013eb2213d92798d755cbb9fa24e26b"><div class="ttname"><a href="structwinstd_1_1_wlan_free_memory__delete.html#a5013eb2213d92798d755cbb9fa24e26b">winstd::WlanFreeMemory_delete::operator()</a></div><div class="ttdeci">void operator()(_Ty *_Ptr) const</div><div class="ttdoc">Delete a pointer.</div><div class="ttdef"><b>Definition:</b> WLAN.h:88</div></div>
<div class="ttc" id="astructwinstd_1_1_wlan_free_memory__delete_html_a92dd05a3becb4a67ad858472eb615668"><div class="ttname"><a href="structwinstd_1_1_wlan_free_memory__delete.html#a92dd05a3becb4a67ad858472eb615668">winstd::WlanFreeMemory_delete::_Myt</a></div><div class="ttdeci">WlanFreeMemory_delete&lt; _Ty &gt; _Myt</div><div class="ttdoc">This type.</div><div class="ttdef"><b>Definition:</b> WLAN.h:73</div></div>
<div class="ttc" id="astructwinstd_1_1_wlan_free_memory__delete_html_ab30e2946800931f214e9a55a527fe546"><div class="ttname"><a href="structwinstd_1_1_wlan_free_memory__delete.html#ab30e2946800931f214e9a55a527fe546">winstd::WlanFreeMemory_delete::WlanFreeMemory_delete</a></div><div class="ttdeci">WlanFreeMemory_delete(const WlanFreeMemory_delete&lt; _Ty2 &gt; &amp;)</div><div class="ttdoc">Construct from another WlanFreeMemory_delete.</div><div class="ttdef"><b>Definition:</b> WLAN.h:83</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

1838
_win_8h_source.html Normal file

File diff suppressed because it is too large Load Diff

184
_win_sock2_8h_source.html Normal file
View File

@ -0,0 +1,184 @@
<!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/WinSock2.h Source File</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="headertitle"><div class="title">WinSock2.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;WinSock2.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &lt;ws2def.h&gt;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;WS2tcpip.h&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span>{</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html"> 25</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1ws2__runtime__error.html">ws2_runtime_error</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;int&gt;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#a7ee44663b58f4f841e561f18f745d6d5"> 34</a></span> <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a7ee44663b58f4f841e561f18f745d6d5">ws2_runtime_error</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_ <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a22e0c60032ca14b54cb66440170e9fdf">msg</a>) : <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;int&gt;(num, <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a22e0c60032ca14b54cb66440170e9fdf">msg</a>)</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> }</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#ad2d3e6773809e8aa023ec94aae2b856e"> 44</a></span> <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#ad2d3e6773809e8aa023ec94aae2b856e">ws2_runtime_error</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_opt_z_ <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a22e0c60032ca14b54cb66440170e9fdf">msg</a> = <span class="keyword">nullptr</span>) : <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;int&gt;(num, <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a22e0c60032ca14b54cb66440170e9fdf">msg</a>)</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> }</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#a38eb9c2360b74a836c325d31d61eaeee"> 53</a></span> <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a38eb9c2360b74a836c325d31d61eaeee">ws2_runtime_error</a>(_In_ <span class="keyword">const</span> std::string&amp; <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a22e0c60032ca14b54cb66440170e9fdf">msg</a>) : <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;int&gt;(WSAGetLastError(), <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a22e0c60032ca14b54cb66440170e9fdf">msg</a>)</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#abec9bd20aad7633c83ade946fc9c907f"> 62</a></span> <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#abec9bd20aad7633c83ade946fc9c907f">ws2_runtime_error</a>(_In_opt_z_ <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a22e0c60032ca14b54cb66440170e9fdf">msg</a> = <span class="keyword">nullptr</span>) : <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;int&gt;(WSAGetLastError(), <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a22e0c60032ca14b54cb66440170e9fdf">msg</a>)</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> }</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#a22e0c60032ca14b54cb66440170e9fdf"> 71</a></span> <a class="code hl_typedef" href="group___win_std_general.html#ga8081292a94f5d070e644bdc90662d1fc">tstring</a> <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a22e0c60032ca14b54cb66440170e9fdf">msg</a>(_In_opt_ DWORD dwLanguageId = 0)<span class="keyword"> const</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <a class="code hl_typedef" href="group___win_std_general.html#ga8081292a94f5d070e644bdc90662d1fc">tstring</a> str;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">if</span> (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, 0, <a class="code hl_variable" href="classwinstd_1_1num__runtime__error.html#a865b8400a5a5a962c3068bf55f022d1f">m_num</a>, dwLanguageId, str, NULL)) {</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// Stock Windows error messages contain CRLF. Well... Trim all the trailing white space.</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> str.erase(str.find_last_not_of(_T(<span class="stringliteral">&quot; \t\n\r\f\v&quot;</span>)) + 1);</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> sprintf(str, <a class="code hl_variable" href="classwinstd_1_1num__runtime__error.html#a865b8400a5a5a962c3068bf55f022d1f">m_num</a> &gt;= 0x10000 ? _T(<span class="stringliteral">&quot;Error 0x%X&quot;</span>) : _T(<span class="stringliteral">&quot;Error %u&quot;</span>), <a class="code hl_variable" href="classwinstd_1_1num__runtime__error.html#a865b8400a5a5a962c3068bf55f022d1f">m_num</a>);</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">return</span> str;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> }</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> };</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="preprocessor">#if (NTDDI_VERSION &gt;= NTDDI_WINXPSP2) || (_WIN32_WINNT &gt;= 0x0502)</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="classwinstd_1_1addrinfo.html"> 93</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1addrinfo.html">addrinfo</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;PADDRINFOT, NULL&gt;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> {</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1addrinfo.html">addrinfo</a>, NULL)</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="classwinstd_1_1addrinfo.html#a4dfe202e1a3d0eaa574480f0e54f440f"> 103</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1addrinfo.html#a4dfe202e1a3d0eaa574480f0e54f440f">get</a>(</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> _In_opt_ PCTSTR pNodeName,</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> _In_opt_ PCTSTR pServiceName,</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> _In_opt_ <span class="keyword">const</span> ADDRINFOT *pHints)</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> {</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h;</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">if</span> (GetAddrInfo(pNodeName, pServiceName, pHints, &amp;h) == 0) {</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(h);</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> }</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="classwinstd_1_1addrinfo.html#aaa7a9365cde194bb9f54a96ea04f9883"> 121</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1addrinfo.html#aaa7a9365cde194bb9f54a96ea04f9883">~addrinfo</a>()</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> {</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> != <a class="code hl_variable" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a>)</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <a class="code hl_function" href="classwinstd_1_1addrinfo.html#a279ad84ce2877b22797eedbec80cd55f">free_internal</a>();</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> }</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="classwinstd_1_1addrinfo.html#a279ad84ce2877b22797eedbec80cd55f"> 133</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1addrinfo.html#a279ad84ce2877b22797eedbec80cd55f">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> FreeAddrInfo(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> }</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> };</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span>}</div>
<div class="ttc" id="aclasswinstd_1_1addrinfo_html"><div class="ttname"><a href="classwinstd_1_1addrinfo.html">winstd::addrinfo</a></div><div class="ttdoc">SID wrapper class.</div><div class="ttdef"><b>Definition:</b> WinSock2.h:94</div></div>
<div class="ttc" id="aclasswinstd_1_1addrinfo_html_a279ad84ce2877b22797eedbec80cd55f"><div class="ttname"><a href="classwinstd_1_1addrinfo.html#a279ad84ce2877b22797eedbec80cd55f">winstd::addrinfo::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Frees address information.</div><div class="ttdef"><b>Definition:</b> WinSock2.h:133</div></div>
<div class="ttc" id="aclasswinstd_1_1addrinfo_html_a4dfe202e1a3d0eaa574480f0e54f440f"><div class="ttname"><a href="classwinstd_1_1addrinfo.html#a4dfe202e1a3d0eaa574480f0e54f440f">winstd::addrinfo::get</a></div><div class="ttdeci">bool get(_In_opt_ PCTSTR pNodeName, _In_opt_ PCTSTR pServiceName, _In_opt_ const ADDRINFOT *pHints)</div><div class="ttdoc">Provides protocol-independent translation from a host name to an address.</div><div class="ttdef"><b>Definition:</b> WinSock2.h:103</div></div>
<div class="ttc" id="aclasswinstd_1_1addrinfo_html_aaa7a9365cde194bb9f54a96ea04f9883"><div class="ttname"><a href="classwinstd_1_1addrinfo.html#aaa7a9365cde194bb9f54a96ea04f9883">winstd::addrinfo::~addrinfo</a></div><div class="ttdeci">virtual ~addrinfo()</div><div class="ttdoc">Frees address information.</div><div class="ttdef"><b>Definition:</b> WinSock2.h:121</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html"><div class="ttname"><a href="classwinstd_1_1handle.html">winstd::handle</a></div><div class="ttdoc">Base abstract template class to support generic object handle keeping.</div><div class="ttdef"><b>Definition:</b> Common.h:580</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a3dda19199ecfbc378c932e7d84d0ea81"><div class="ttname"><a href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">winstd::handle&lt; PADDRINFOT, NULL &gt;::handle_type</a></div><div class="ttdeci">PADDRINFOT handle_type</div><div class="ttdoc">Datatype of the object handle this template class handles.</div><div class="ttdef"><b>Definition:</b> Common.h:585</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a98d09f9c2970890a5c83a0c2aedd3a30"><div class="ttname"><a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">winstd::handle&lt; PADDRINFOT, NULL &gt;::attach</a></div><div class="ttdeci">void attach(_In_opt_ handle_type h) noexcept</div><div class="ttdoc">Sets a new object handle for the class.</div><div class="ttdef"><b>Definition:</b> Common.h:794</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_aabde3f16fd98b06b3b0282ef7806eb59"><div class="ttname"><a href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">winstd::handle&lt; PADDRINFOT, NULL &gt;::m_h</a></div><div class="ttdeci">handle_type m_h</div><div class="ttdoc">Object handle.</div><div class="ttdef"><b>Definition:</b> Common.h:833</div></div>
<div class="ttc" id="aclasswinstd_1_1num__runtime__error_html"><div class="ttname"><a href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error</a></div><div class="ttdoc">Numerical runtime error.</div><div class="ttdef"><b>Definition:</b> Common.h:1390</div></div>
<div class="ttc" id="aclasswinstd_1_1num__runtime__error_html_a6fa2de87d0151b3ad9cac58f838852e0"><div class="ttname"><a href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">winstd::num_runtime_error&lt; int &gt;::error_type</a></div><div class="ttdeci">int error_type</div><div class="ttdoc">Error number type.</div><div class="ttdef"><b>Definition:</b> Common.h:1392</div></div>
<div class="ttc" id="aclasswinstd_1_1num__runtime__error_html_a865b8400a5a5a962c3068bf55f022d1f"><div class="ttname"><a href="classwinstd_1_1num__runtime__error.html#a865b8400a5a5a962c3068bf55f022d1f">winstd::num_runtime_error&lt; int &gt;::m_num</a></div><div class="ttdeci">error_type m_num</div><div class="ttdoc">Numeric error code.</div><div class="ttdef"><b>Definition:</b> Common.h:1428</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html">winstd::ws2_runtime_error</a></div><div class="ttdoc">WinSock2 runtime error.</div><div class="ttdef"><b>Definition:</b> WinSock2.h:26</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_a22e0c60032ca14b54cb66440170e9fdf"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#a22e0c60032ca14b54cb66440170e9fdf">winstd::ws2_runtime_error::msg</a></div><div class="ttdeci">tstring msg(_In_opt_ DWORD dwLanguageId=0) const</div><div class="ttdoc">Returns a user-readable Windows error message.</div><div class="ttdef"><b>Definition:</b> WinSock2.h:71</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_a38eb9c2360b74a836c325d31d61eaeee"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#a38eb9c2360b74a836c325d31d61eaeee">winstd::ws2_runtime_error::ws2_runtime_error</a></div><div class="ttdeci">ws2_runtime_error(_In_ const std::string &amp;msg)</div><div class="ttdoc">Constructs an exception using WSAGetLastError()</div><div class="ttdef"><b>Definition:</b> WinSock2.h:53</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_a7ee44663b58f4f841e561f18f745d6d5"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#a7ee44663b58f4f841e561f18f745d6d5">winstd::ws2_runtime_error::ws2_runtime_error</a></div><div class="ttdeci">ws2_runtime_error(_In_ error_type num, _In_ const std::string &amp;msg)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition:</b> WinSock2.h:34</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_abec9bd20aad7633c83ade946fc9c907f"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#abec9bd20aad7633c83ade946fc9c907f">winstd::ws2_runtime_error::ws2_runtime_error</a></div><div class="ttdeci">ws2_runtime_error(_In_opt_z_ const char *msg=nullptr)</div><div class="ttdoc">Constructs an exception using WSAGetLastError()</div><div class="ttdef"><b>Definition:</b> WinSock2.h:62</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_ad2d3e6773809e8aa023ec94aae2b856e"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#ad2d3e6773809e8aa023ec94aae2b856e">winstd::ws2_runtime_error::ws2_runtime_error</a></div><div class="ttdeci">ws2_runtime_error(_In_ error_type num, _In_opt_z_ const char *msg=nullptr)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition:</b> WinSock2.h:44</div></div>
<div class="ttc" id="agroup___win_std_general_html_ga8081292a94f5d070e644bdc90662d1fc"><div class="ttname"><a href="group___win_std_general.html#ga8081292a94f5d070e644bdc90662d1fc">winstd::tstring</a></div><div class="ttdeci">std::string tstring</div><div class="ttdoc">Multi-byte / Wide-character string (according to _UNICODE)</div><div class="ttdef"><b>Definition:</b> Common.h:311</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga419efffd12b5c96abc8a275ba375ca60"><div class="ttname"><a href="group___win_std_sys_handles.html#ga419efffd12b5c96abc8a275ba375ca60">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, INVAL)</div><div class="ttdoc">Implements default constructors and operators to prevent their auto-generation by compiler.</div><div class="ttdef"><b>Definition:</b> Common.h:138</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_gacf43e306968474166474090690857e1c"><div class="ttname"><a href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">winstd::handle&lt; PADDRINFOT, NULL &gt;::invalid</a></div><div class="ttdeci">static const PADDRINFOT invalid</div><div class="ttdoc">Invalid handle value.</div><div class="ttdef"><b>Definition:</b> Common.h:590</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

128
_win_trust_8h_source.html Normal file
View File

@ -0,0 +1,128 @@
<!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/WinTrust.h Source File</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="headertitle"><div class="title">WinTrust.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/*</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment"> SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment"> Copyright © 1991-2022 Amebis</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment"> Copyright © 2016 GÉANT</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*/</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span> </div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;WinTrust.h&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span>{</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="classwinstd_1_1wintrust.html"> 23</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1wintrust.html">wintrust</a></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_define" href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a>(<a class="code hl_class" href="classwinstd_1_1wintrust.html">wintrust</a>)</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <a class="code hl_define" href="group___win_std_general.html#gac91fa8d79c860b1fdbba65b6a322f760">WINSTD_NONMOVABLE</a>(<a class="code hl_class" href="classwinstd_1_1wintrust.html">wintrust</a>)</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="classwinstd_1_1wintrust.html#a8d9d451a4d94eec56406a64d73970860"> 32</a></span> <a class="code hl_function" href="classwinstd_1_1wintrust.html#a8d9d451a4d94eec56406a64d73970860">wintrust</a>(_In_opt_ HWND hwnd, _In_ <span class="keyword">const</span> GUID &amp;action, _Inout_ WINTRUST_DATA &amp;wtd) :</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> m_hwnd(hwnd),</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> m_action(action),</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> m_wtd(wtd)</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> {</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">const</span> LONG lResult = WinVerifyTrust(m_hwnd, &amp;m_action, &amp;m_wtd);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">if</span> (lResult != ERROR_SUCCESS)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">throw</span> <a class="code hl_class" href="classwinstd_1_1win__runtime__error.html">win_runtime_error</a>(lResult, <span class="stringliteral">&quot;WinVerifyTrust failed.&quot;</span>);</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> }</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classwinstd_1_1wintrust.html#ac529a244b4f2f4eb85bcdf594ff723c3"> 45</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1wintrust.html#ac529a244b4f2f4eb85bcdf594ff723c3">~wintrust</a>()</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> {</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> m_wtd.dwStateAction = WTD_STATEACTION_CLOSE;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> WinVerifyTrust(m_hwnd, &amp;m_action, &amp;m_wtd);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> }</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> HWND m_hwnd;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> GUID m_action;</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> WINTRUST_DATA &amp;m_wtd;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> };</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span>}</div>
<div class="ttc" id="aclasswinstd_1_1win__runtime__error_html"><div class="ttname"><a href="classwinstd_1_1win__runtime__error.html">winstd::win_runtime_error</a></div><div class="ttdoc">Windows runtime error.</div><div class="ttdef"><b>Definition:</b> Common.h:1435</div></div>
<div class="ttc" id="aclasswinstd_1_1wintrust_html"><div class="ttname"><a href="classwinstd_1_1wintrust.html">winstd::wintrust</a></div><div class="ttdoc">WinTrust engine wrapper class.</div><div class="ttdef"><b>Definition:</b> WinTrust.h:24</div></div>
<div class="ttc" id="aclasswinstd_1_1wintrust_html_a8d9d451a4d94eec56406a64d73970860"><div class="ttname"><a href="classwinstd_1_1wintrust.html#a8d9d451a4d94eec56406a64d73970860">winstd::wintrust::wintrust</a></div><div class="ttdeci">wintrust(_In_opt_ HWND hwnd, _In_ const GUID &amp;action, _Inout_ WINTRUST_DATA &amp;wtd)</div><div class="ttdoc">Initializes a new class instance.</div><div class="ttdef"><b>Definition:</b> WinTrust.h:32</div></div>
<div class="ttc" id="aclasswinstd_1_1wintrust_html_ac529a244b4f2f4eb85bcdf594ff723c3"><div class="ttname"><a href="classwinstd_1_1wintrust.html#ac529a244b4f2f4eb85bcdf594ff723c3">winstd::wintrust::~wintrust</a></div><div class="ttdeci">virtual ~wintrust()</div><div class="ttdoc">Destroys the WinTrust context.</div><div class="ttdef"><b>Definition:</b> WinTrust.h:45</div></div>
<div class="ttc" id="agroup___win_std_general_html_ga11254c72ad33a6e0f5de31db708f784c"><div class="ttname"><a href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a></div><div class="ttdeci">#define WINSTD_NONCOPYABLE(C)</div><div class="ttdoc">Declares a class as non-copyable.</div><div class="ttdef"><b>Definition:</b> Common.h:53</div></div>
<div class="ttc" id="agroup___win_std_general_html_gac91fa8d79c860b1fdbba65b6a322f760"><div class="ttname"><a href="group___win_std_general.html#gac91fa8d79c860b1fdbba65b6a322f760">WINSTD_NONMOVABLE</a></div><div class="ttdeci">#define WINSTD_NONMOVABLE(C)</div><div class="ttdoc">Declares a class as non-movable.</div><div class="ttdef"><b>Definition:</b> Common.h:61</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

162
annotated.html Normal file
View File

@ -0,0 +1,162 @@
<!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: Class List</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>
</div><!-- top -->
<!-- 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 class="header">
<div class="headertitle"><div class="title">Class List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><b>winstd</b></td><td class="desc"></td></tr>
<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1actctx__activator.html" target="_self">actctx_activator</a></td><td class="desc">Activates given activation context in constructor and deactivates it in destructor </td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1addrinfo.html" target="_self">addrinfo</a></td><td class="desc">SID wrapper class </td></tr>
<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1basic__string__guid.html" target="_self">basic_string_guid</a></td><td class="desc">Base template class to support converting GUID to string </td></tr>
<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1basic__string__msg.html" target="_self">basic_string_msg</a></td><td class="desc">Base template class to support string formatting using <code>FormatMessage()</code> style templates </td></tr>
<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1basic__string__printf.html" target="_self">basic_string_printf</a></td><td class="desc">Base template class to support string formatting using <code>printf()</code> style templates </td></tr>
<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1bstr.html" target="_self">bstr</a></td><td class="desc">BSTR string wrapper </td></tr>
<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1cert__chain__context.html" target="_self">cert_chain_context</a></td><td class="desc">PCCERT_CHAIN_CONTEXT wrapper class </td></tr>
<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1cert__context.html" target="_self">cert_context</a></td><td class="desc">PCCERT_CONTEXT wrapper class </td></tr>
<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1cert__store.html" target="_self">cert_store</a></td><td class="desc">HCERTSTORE wrapper class </td></tr>
<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1com__initializer.html" target="_self">com_initializer</a></td><td class="desc">Context scope automatic COM (un)initialization </td></tr>
<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1com__obj.html" target="_self">com_obj</a></td><td class="desc">COM object wrapper template </td></tr>
<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1com__runtime__error.html" target="_self">com_runtime_error</a></td><td class="desc">COM runtime error </td></tr>
<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1console__ctrl__handler.html" target="_self">console_ctrl_handler</a></td><td class="desc">Console control handler stack management </td></tr>
<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1_co_task_mem_free__delete.html" target="_self">CoTaskMemFree_delete</a></td><td class="desc">Deleter for unique_ptr using CoTaskMemFree </td></tr>
<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1_cred_free__delete.html" target="_self">CredFree_delete</a></td><td class="desc">Deleter for unique_ptr using CredFree </td></tr>
<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html" target="_self">CredFree_delete&lt; _Ty[]&gt;</a></td><td class="desc">Deleter for unique_ptr to array of unknown size using CredFree </td></tr>
<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1critical__section.html" target="_self">critical_section</a></td><td class="desc">Critical section wrapper </td></tr>
<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1crypt__hash.html" target="_self">crypt_hash</a></td><td class="desc">HCRYPTHASH wrapper class </td></tr>
<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1crypt__key.html" target="_self">crypt_key</a></td><td class="desc">HCRYPTKEY wrapper class </td></tr>
<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1crypt__prov.html" target="_self">crypt_prov</a></td><td class="desc">HCRYPTPROV wrapper class </td></tr>
<tr id="row_0_20_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1data__blob.html" target="_self">data_blob</a></td><td class="desc">DATA_BLOB wrapper class </td></tr>
<tr id="row_0_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1dc.html" target="_self">dc</a></td><td class="desc">Device context wrapper class </td></tr>
<tr id="row_0_22_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1dc__selector.html" target="_self">dc_selector</a></td><td class="desc">Context scope DC object restorer </td></tr>
<tr id="row_0_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1dplhandle.html" target="_self">dplhandle</a></td><td class="desc">Base abstract template class to support object handle keeping for objects that support handle duplication </td></tr>
<tr id="row_0_24_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1eap__attr.html" target="_self">eap_attr</a></td><td class="desc">EAP_ATTRIBUTE wrapper class </td></tr>
<tr id="row_0_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1eap__method__info__array.html" target="_self">eap_method_info_array</a></td><td class="desc">EAP_METHOD_INFO_ARRAY wrapper class </td></tr>
<tr id="row_0_26_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1eap__method__prop.html" target="_self">eap_method_prop</a></td><td class="desc">EAP_METHOD_PROPERTY wrapper class </td></tr>
<tr id="row_0_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1eap__packet.html" target="_self">eap_packet</a></td><td class="desc">EapPacket wrapper class </td></tr>
<tr id="row_0_28_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1eap__runtime__error.html" target="_self">eap_runtime_error</a></td><td class="desc">EapHost runtime error </td></tr>
<tr id="row_0_29_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html" target="_self">EapHostPeerFreeEapError_delete</a></td><td class="desc">Deleter for unique_ptr to EAP_ERROR using EapHostPeerFreeEapError </td></tr>
<tr id="row_0_30_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html" target="_self">EapHostPeerFreeErrorMemory_delete</a></td><td class="desc">Deleter for unique_ptr to EAP_ERROR using EapHostPeerFreeErrorMemory </td></tr>
<tr id="row_0_31_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1_eap_host_peer_free_memory__delete.html" target="_self">EapHostPeerFreeMemory_delete</a></td><td class="desc">Deleter for unique_ptr using EapHostPeerFreeMemory </td></tr>
<tr id="row_0_32_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html" target="_self">EapHostPeerFreeRuntimeMemory_delete</a></td><td class="desc">Deleter for unique_ptr using EapHostPeerFreeRuntimeMemory </td></tr>
<tr id="row_0_33_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1event.html" target="_self">event</a></td><td class="desc">Event handle wrapper </td></tr>
<tr id="row_0_34_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1event__data.html" target="_self">event_data</a></td><td class="desc">EVENT_DATA_DESCRIPTOR wrapper </td></tr>
<tr id="row_0_35_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1event__fn__auto.html" target="_self">event_fn_auto</a></td><td class="desc">Helper class to write an event on entry/exit of scope </td></tr>
<tr id="row_0_36_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1event__fn__auto__ret.html" target="_self">event_fn_auto_ret</a></td><td class="desc">Helper template to write an event on entry/exit of scope with one parameter (typically result) </td></tr>
<tr id="row_0_37_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1event__provider.html" target="_self">event_provider</a></td><td class="desc">ETW event provider </td></tr>
<tr id="row_0_38_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1event__rec.html" target="_self">event_rec</a></td><td class="desc">EVENT_RECORD wrapper </td></tr>
<tr id="row_0_39_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1event__session.html" target="_self">event_session</a></td><td class="desc">ETW session </td></tr>
<tr id="row_0_40_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1event__trace.html" target="_self">event_trace</a></td><td class="desc">ETW trace </td></tr>
<tr id="row_0_41_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1event__trace__enabler.html" target="_self">event_trace_enabler</a></td><td class="desc">Helper class to enable event provider in constructor and disables it in destructor </td></tr>
<tr id="row_0_42_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1file.html" target="_self">file</a></td><td class="desc">File handle wrapper </td></tr>
<tr id="row_0_43_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1find__file.html" target="_self">find_file</a></td><td class="desc">Find-file handle wrapper </td></tr>
<tr id="row_0_44_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1gdi__handle.html" target="_self">gdi_handle</a></td><td class="desc">Windows HGDIOBJ wrapper class </td></tr>
<tr id="row_0_45_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1handle.html" target="_self">handle</a></td><td class="desc">Base abstract template class to support generic object handle keeping </td></tr>
<tr id="row_0_46_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1heap.html" target="_self">heap</a></td><td class="desc">Heap handle wrapper </td></tr>
<tr id="row_0_47_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_47_" class="arrow" onclick="toggleFolder('0_47_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1heap__allocator.html" target="_self">heap_allocator</a></td><td class="desc">HeapAlloc allocator </td></tr>
<tr id="row_0_47_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1heap__allocator_1_1rebind.html" target="_self">rebind</a></td><td class="desc">A structure that enables an allocator for objects of one type to allocate storage for objects of another type </td></tr>
<tr id="row_0_48_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1library.html" target="_self">library</a></td><td class="desc">Module handle wrapper </td></tr>
<tr id="row_0_49_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1_local_free__delete.html" target="_self">LocalFree_delete</a></td><td class="desc">Deleter for unique_ptr using LocalFree </td></tr>
<tr id="row_0_50_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html" target="_self">LocalFree_delete&lt; _Ty[]&gt;</a></td><td class="desc">Deleter for unique_ptr to array of unknown size using LocalFree </td></tr>
<tr id="row_0_51_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1num__runtime__error.html" target="_self">num_runtime_error</a></td><td class="desc">Numerical runtime error </td></tr>
<tr id="row_0_52_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1process.html" target="_self">process</a></td><td class="desc">Process handle wrapper </td></tr>
<tr id="row_0_53_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1process__information.html" target="_self">process_information</a></td><td class="desc">PROCESS_INFORMATION struct wrapper </td></tr>
<tr id="row_0_54_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1ref__unique__ptr.html" target="_self">ref_unique_ptr</a></td><td class="desc">Helper class for returning pointers to std::unique_ptr </td></tr>
<tr id="row_0_55_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html" target="_self">ref_unique_ptr&lt; _Ty[], _Dx &gt;</a></td><td class="desc">Helper class for returning pointers to std::unique_ptr (specialization for arrays) </td></tr>
<tr id="row_0_56_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1reg__key.html" target="_self">reg_key</a></td><td class="desc">Registry wrapper class </td></tr>
<tr id="row_0_57_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_57_" class="arrow" onclick="toggleFolder('0_57_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1sanitizing__allocator.html" target="_self">sanitizing_allocator</a></td><td class="desc">An allocator template that sanitizes each memory block before it is destroyed or reallocated </td></tr>
<tr id="row_0_57_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1sanitizing__allocator_1_1rebind.html" target="_self">rebind</a></td><td class="desc">Convert this type to sanitizing_allocator&lt;_Other&gt; </td></tr>
<tr id="row_0_58_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1sanitizing__blob.html" target="_self">sanitizing_blob</a></td><td class="desc">Sanitizing BLOB </td></tr>
<tr id="row_0_59_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1sec__buffer__desc.html" target="_self">sec_buffer_desc</a></td><td class="desc">SecBufferDesc wrapper class </td></tr>
<tr id="row_0_60_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1sec__context.html" target="_self">sec_context</a></td><td class="desc">PCtxtHandle wrapper class </td></tr>
<tr id="row_0_61_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1sec__credentials.html" target="_self">sec_credentials</a></td><td class="desc">PCredHandle wrapper class </td></tr>
<tr id="row_0_62_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1sec__runtime__error.html" target="_self">sec_runtime_error</a></td><td class="desc">Security runtime error </td></tr>
<tr id="row_0_63_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1security__id.html" target="_self">security_id</a></td><td class="desc">SID wrapper class </td></tr>
<tr id="row_0_64_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1setup__device__info__list.html" target="_self">setup_device_info_list</a></td><td class="desc">HDEVINFO wrapper class </td></tr>
<tr id="row_0_65_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1setup__driver__info__list__builder.html" target="_self">setup_driver_info_list_builder</a></td><td class="desc">Builds a list of drivers in constructor and deletes it in destructor </td></tr>
<tr id="row_0_66_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1string__guid.html" target="_self">string_guid</a></td><td class="desc">Single-byte character implementation of a class to support converting GUID to string </td></tr>
<tr id="row_0_67_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1user__impersonator.html" target="_self">user_impersonator</a></td><td class="desc">Lets the calling thread impersonate the security context of a logged-on user </td></tr>
<tr id="row_0_68_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1variant.html" target="_self">variant</a></td><td class="desc">VARIANT struct wrapper </td></tr>
<tr id="row_0_69_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1vector__queue.html" target="_self">vector_queue</a></td><td class="desc">Helper class to allow limited size FIFO queues implemented as vector of elements </td></tr>
<tr id="row_0_70_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1vmemory.html" target="_self">vmemory</a></td><td class="desc">Memory in virtual address space of a process handle wrapper </td></tr>
<tr id="row_0_71_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1win__handle.html" target="_self">win_handle</a></td><td class="desc">Windows HANDLE wrapper class </td></tr>
<tr id="row_0_72_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1win__runtime__error.html" target="_self">win_runtime_error</a></td><td class="desc">Windows runtime error </td></tr>
<tr id="row_0_73_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1window__dc.html" target="_self">window_dc</a></td><td class="desc">Device context wrapper class </td></tr>
<tr id="row_0_74_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1wintrust.html" target="_self">wintrust</a></td><td class="desc">WinTrust engine wrapper class </td></tr>
<tr id="row_0_75_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1wlan__handle.html" target="_self">wlan_handle</a></td><td class="desc">WLAN handle wrapper </td></tr>
<tr id="row_0_76_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1_wlan_free_memory__delete.html" target="_self">WlanFreeMemory_delete</a></td><td class="desc">Deleter for unique_ptr using WlanFreeMemory </td></tr>
<tr id="row_0_77_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html" target="_self">WlanFreeMemory_delete&lt; _Ty[]&gt;</a></td><td class="desc">Deleter for unique_ptr to array of unknown size using WlanFreeMemory </td></tr>
<tr id="row_0_78_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1ws2__runtime__error.html" target="_self">ws2_runtime_error</a></td><td class="desc">WinSock2 runtime error </td></tr>
<tr id="row_0_79_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwinstd_1_1wstring__guid.html" target="_self">wstring_guid</a></td><td class="desc">Wide character implementation of a class to support converting GUID to string </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:57 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>

BIN
bc_s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

BIN
bdwn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

126
classes.html Normal file
View File

@ -0,0 +1,126 @@
<!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: Class Index</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>
</div><!-- top -->
<!-- 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 class="header">
<div class="headertitle"><div class="title">Class Index</div></div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
<div class="classindex">
<dl class="classindex even">
<dt class="alphachar"><a id="letter_A" name="letter_A">A</a></dt>
<dd><a class="el" href="classwinstd_1_1actctx__activator.html">actctx_activator</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1addrinfo.html">addrinfo</a> (winstd)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_B" name="letter_B">B</a></dt>
<dd><a class="el" href="classwinstd_1_1basic__string__guid.html">basic_string_guid</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1basic__string__msg.html">basic_string_msg</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1basic__string__printf.html">basic_string_printf</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1bstr.html">bstr</a> (winstd)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_C" name="letter_C">C</a></dt>
<dd><a class="el" href="classwinstd_1_1cert__chain__context.html">cert_chain_context</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1cert__context.html">cert_context</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1cert__store.html">cert_store</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1com__initializer.html">com_initializer</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1com__obj.html">com_obj</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1com__runtime__error.html">com_runtime_error</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1console__ctrl__handler.html">console_ctrl_handler</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1_co_task_mem_free__delete.html">CoTaskMemFree_delete</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1_cred_free__delete.html">CredFree_delete</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html">CredFree_delete&lt; _Ty[]&gt;</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1critical__section.html">critical_section</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1crypt__hash.html">crypt_hash</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1crypt__key.html">crypt_key</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1crypt__prov.html">crypt_prov</a> (winstd)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_D" name="letter_D">D</a></dt>
<dd><a class="el" href="classwinstd_1_1data__blob.html">data_blob</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1dc.html">dc</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1dc__selector.html">dc_selector</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a> (winstd)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_E" name="letter_E">E</a></dt>
<dd><a class="el" href="classwinstd_1_1eap__attr.html">eap_attr</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1eap__method__prop.html">eap_method_prop</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1eap__packet.html">eap_packet</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1eap__runtime__error.html">eap_runtime_error</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html">EapHostPeerFreeEapError_delete</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html">EapHostPeerFreeErrorMemory_delete</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1_eap_host_peer_free_memory__delete.html">EapHostPeerFreeMemory_delete</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html">EapHostPeerFreeRuntimeMemory_delete</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1event.html">event</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1event__data.html">event_data</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1event__fn__auto.html">event_fn_auto</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1event__fn__auto__ret.html">event_fn_auto_ret</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1event__provider.html">event_provider</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1event__rec.html">event_rec</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1event__session.html">event_session</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1event__trace.html">event_trace</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1event__trace__enabler.html">event_trace_enabler</a> (winstd)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_F" name="letter_F">F</a></dt>
<dd><a class="el" href="classwinstd_1_1file.html">file</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1find__file.html">find_file</a> (winstd)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_G" name="letter_G">G</a></dt>
<dd><a class="el" href="classwinstd_1_1gdi__handle.html">gdi_handle</a> (winstd)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_H" name="letter_H">H</a></dt>
<dd><a class="el" href="classwinstd_1_1handle.html">handle</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1heap.html">heap</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1heap__allocator.html">heap_allocator</a> (winstd)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_L" name="letter_L">L</a></dt>
<dd><a class="el" href="classwinstd_1_1library.html">library</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1_local_free__delete.html">LocalFree_delete</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html">LocalFree_delete&lt; _Ty[]&gt;</a> (winstd)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_N" name="letter_N">N</a></dt>
<dd><a class="el" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a> (winstd)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_P" name="letter_P">P</a></dt>
<dd><a class="el" href="classwinstd_1_1process.html">process</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1process__information.html">process_information</a> (winstd)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_R" name="letter_R">R</a></dt>
<dd><a class="el" href="structwinstd_1_1heap__allocator_1_1rebind.html">heap_allocator::rebind</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1sanitizing__allocator_1_1rebind.html">sanitizing_allocator::rebind</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1ref__unique__ptr.html">ref_unique_ptr</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html">ref_unique_ptr&lt; _Ty[], _Dx &gt;</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1reg__key.html">reg_key</a> (winstd)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_S" name="letter_S">S</a></dt>
<dd><a class="el" href="classwinstd_1_1sanitizing__allocator.html">sanitizing_allocator</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1sanitizing__blob.html">sanitizing_blob</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1sec__buffer__desc.html">sec_buffer_desc</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1sec__context.html">sec_context</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1sec__credentials.html">sec_credentials</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1sec__runtime__error.html">sec_runtime_error</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1security__id.html">security_id</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1setup__device__info__list.html">setup_device_info_list</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1setup__driver__info__list__builder.html">setup_driver_info_list_builder</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1string__guid.html">string_guid</a> (winstd)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_U" name="letter_U">U</a></dt>
<dd><a class="el" href="classwinstd_1_1user__impersonator.html">user_impersonator</a> (winstd)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_V" name="letter_V">V</a></dt>
<dd><a class="el" href="classwinstd_1_1variant.html">variant</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1vector__queue.html">vector_queue</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1vmemory.html">vmemory</a> (winstd)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_W" name="letter_W">W</a></dt>
<dd><a class="el" href="classwinstd_1_1win__handle.html">win_handle</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1win__runtime__error.html">win_runtime_error</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1window__dc.html">window_dc</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1wintrust.html">wintrust</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1wlan__handle.html">wlan_handle</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1_wlan_free_memory__delete.html">WlanFreeMemory_delete</a> (winstd)</dd><dd><a class="el" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html">WlanFreeMemory_delete&lt; _Ty[]&gt;</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1ws2__runtime__error.html">ws2_runtime_error</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1wstring__guid.html">wstring_guid</a> (winstd)</dd></dl>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:57 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>

View File

@ -0,0 +1,85 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1actctx__activator.html">actctx_activator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::actctx_activator Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1actctx__activator.html">winstd::actctx_activator</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1actctx__activator.html#a75dc507148041bd81b3376c3a22b3b8f">actctx_activator</a>(_In_ HANDLE hActCtx) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1actctx__activator.html">winstd::actctx_activator</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1actctx__activator.html#ab3556f1baf628459929c8c394341a9a6">m_cookie</a></td><td class="entry"><a class="el" href="classwinstd_1_1actctx__activator.html">winstd::actctx_activator</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1actctx__activator.html#a9487820e29c331362b1ecd36de3b692a">~actctx_activator</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1actctx__activator.html">winstd::actctx_activator</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,174 @@
<!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: winstd::actctx_activator Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1actctx__activator.html">actctx_activator</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classwinstd_1_1actctx__activator-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::actctx_activator Class Reference<div class="ingroups"><a class="el" href="group___win_std_win_a_p_i.html">Windows API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Activates given activation context in constructor and deactivates it in destructor.
<a href="classwinstd_1_1actctx__activator.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_win_8h_source.html">Win.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a75dc507148041bd81b3376c3a22b3b8f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1actctx__activator.html#a75dc507148041bd81b3376c3a22b3b8f">actctx_activator</a> (_In_ HANDLE hActCtx) noexcept</td></tr>
<tr class="memdesc:a75dc507148041bd81b3376c3a22b3b8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the activator and activates the given activation context. <a href="classwinstd_1_1actctx__activator.html#a75dc507148041bd81b3376c3a22b3b8f">More...</a><br /></td></tr>
<tr class="separator:a75dc507148041bd81b3376c3a22b3b8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9487820e29c331362b1ecd36de3b692a"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1actctx__activator.html#a9487820e29c331362b1ecd36de3b692a">~actctx_activator</a> ()</td></tr>
<tr class="memdesc:a9487820e29c331362b1ecd36de3b692a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deactivates activation context and destructs the activator. <a href="classwinstd_1_1actctx__activator.html#a9487820e29c331362b1ecd36de3b692a">More...</a><br /></td></tr>
<tr class="separator:a9487820e29c331362b1ecd36de3b692a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ab3556f1baf628459929c8c394341a9a6"><td class="memItemLeft" align="right" valign="top"><a id="ab3556f1baf628459929c8c394341a9a6" name="ab3556f1baf628459929c8c394341a9a6"></a>
ULONG_PTR&#160;</td><td class="memItemRight" valign="bottom"><b>m_cookie</b></td></tr>
<tr class="memdesc:ab3556f1baf628459929c8c394341a9a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cookie for context deactivation. <br /></td></tr>
<tr class="separator:ab3556f1baf628459929c8c394341a9a6"><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 >Activates given activation context in constructor and deactivates it in destructor. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a75dc507148041bd81b3376c3a22b3b8f" name="a75dc507148041bd81b3376c3a22b3b8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75dc507148041bd81b3376c3a22b3b8f">&#9670;&nbsp;</a></span>actctx_activator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::actctx_activator::actctx_activator </td>
<td>(</td>
<td class="paramtype">_In_ HANDLE&#160;</td>
<td class="paramname"><em>hActCtx</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct the activator and activates the given activation context. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">hActCtx</td><td>Activation context</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa374151.aspx">ActivateActCtx function</a> </dd></dl>
</div>
</div>
<a id="a9487820e29c331362b1ecd36de3b692a" name="a9487820e29c331362b1ecd36de3b692a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9487820e29c331362b1ecd36de3b692a">&#9670;&nbsp;</a></span>~actctx_activator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::actctx_activator::~actctx_activator </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Deactivates activation context and destructs the activator. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa375140.aspx">DeactivateActCtx function</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_win_8h_source.html">Win.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,107 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1addrinfo.html">addrinfo</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::addrinfo Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1addrinfo.html">winstd::addrinfo</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1addrinfo.html#a279ad84ce2877b22797eedbec80cd55f">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1addrinfo.html">winstd::addrinfo</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1addrinfo.html#a4dfe202e1a3d0eaa574480f0e54f440f">get</a>(_In_opt_ PCTSTR pNodeName, _In_opt_ PCTSTR pServiceName, _In_opt_ const ADDRINFOT *pHints)</td><td class="entry"><a class="el" href="classwinstd_1_1addrinfo.html">winstd::addrinfo</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1addrinfo.html#aaa7a9365cde194bb9f54a96ea04f9883">~addrinfo</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1addrinfo.html">winstd::addrinfo</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,304 @@
<!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: winstd::addrinfo Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1addrinfo.html">addrinfo</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1addrinfo-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::addrinfo Class Reference<div class="ingroups"><a class="el" href="group___win_sock2_a_p_i.html">WinSock2 API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>SID wrapper class.
<a href="classwinstd_1_1addrinfo.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_win_sock2_8h_source.html">WinSock2.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::addrinfo:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1addrinfo.png" usemap="#winstd::addrinfo_map" alt=""/>
<map id="winstd::addrinfo_map" name="winstd::addrinfo_map">
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; PADDRINFOT, NULL &gt;" shape="rect" coords="0,0,235,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4dfe202e1a3d0eaa574480f0e54f440f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1addrinfo.html#a4dfe202e1a3d0eaa574480f0e54f440f">get</a> (_In_opt_ PCTSTR pNodeName, _In_opt_ PCTSTR pServiceName, _In_opt_ const ADDRINFOT *pHints)</td></tr>
<tr class="memdesc:a4dfe202e1a3d0eaa574480f0e54f440f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides protocol-independent translation from a host name to an address. <a href="classwinstd_1_1addrinfo.html#a4dfe202e1a3d0eaa574480f0e54f440f">More...</a><br /></td></tr>
<tr class="separator:a4dfe202e1a3d0eaa574480f0e54f440f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa7a9365cde194bb9f54a96ea04f9883"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1addrinfo.html#aaa7a9365cde194bb9f54a96ea04f9883">~addrinfo</a> ()</td></tr>
<tr class="memdesc:aaa7a9365cde194bb9f54a96ea04f9883"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees address information. <a href="classwinstd_1_1addrinfo.html#aaa7a9365cde194bb9f54a96ea04f9883">More...</a><br /></td></tr>
<tr class="separator:aaa7a9365cde194bb9f54a96ea04f9883"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a279ad84ce2877b22797eedbec80cd55f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1addrinfo.html#a279ad84ce2877b22797eedbec80cd55f">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:a279ad84ce2877b22797eedbec80cd55f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees address information. <a href="classwinstd_1_1addrinfo.html#a279ad84ce2877b22797eedbec80cd55f">More...</a><br /></td></tr>
<tr class="separator:a279ad84ce2877b22797eedbec80cd55f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef PADDRINFOT&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const PADDRINFOT&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOT, NULL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><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 >SID wrapper class. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aaa7a9365cde194bb9f54a96ea04f9883" name="aaa7a9365cde194bb9f54a96ea04f9883"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa7a9365cde194bb9f54a96ea04f9883">&#9670;&nbsp;</a></span>~addrinfo()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::addrinfo::~addrinfo </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Frees address information. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/desktop/api/ws2tcpip/nf-ws2tcpip-freeaddrinfow">FreeAddrInfoW function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a279ad84ce2877b22797eedbec80cd55f" name="a279ad84ce2877b22797eedbec80cd55f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a279ad84ce2877b22797eedbec80cd55f">&#9670;&nbsp;</a></span>free_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void winstd::addrinfo::free_internal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Frees address information. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/desktop/api/ws2tcpip/nf-ws2tcpip-freeaddrinfow">FreeAddrInfoW function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; PADDRINFOT, NULL &gt;</a>.</p>
</div>
</div>
<a id="a4dfe202e1a3d0eaa574480f0e54f440f" name="a4dfe202e1a3d0eaa574480f0e54f440f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4dfe202e1a3d0eaa574480f0e54f440f">&#9670;&nbsp;</a></span>get()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::addrinfo::get </td>
<td>(</td>
<td class="paramtype">_In_opt_ PCTSTR&#160;</td>
<td class="paramname"><em>pNodeName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ PCTSTR&#160;</td>
<td class="paramname"><em>pServiceName</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ const ADDRINFOT *&#160;</td>
<td class="paramname"><em>pHints</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Provides protocol-independent translation from a host name to an address. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/desktop/api/ws2tcpip/nf-ws2tcpip-getaddrinfow">GetAddrInfoW function</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_win_sock2_8h_source.html">WinSock2.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

BIN
classwinstd_1_1addrinfo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

View File

@ -0,0 +1,83 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1basic__string__guid.html">basic_string_guid</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::basic_string_guid&lt; _Elem, _Traits, _Ax &gt; Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1basic__string__guid.html">winstd::basic_string_guid&lt; _Elem, _Traits, _Ax &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1basic__string__guid.html#a924b921415b69fcc1ff5fab54be10f19">basic_string_guid</a>(_In_ const GUID &amp;guid, _In_z_ _Printf_format_string_ const _Elem *format)</td><td class="entry"><a class="el" href="classwinstd_1_1basic__string__guid.html">winstd::basic_string_guid&lt; _Elem, _Traits, _Ax &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,154 @@
<!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: winstd::basic_string_guid&lt; _Elem, _Traits, _Ax &gt; Class Template 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1basic__string__guid.html">basic_string_guid</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="classwinstd_1_1basic__string__guid-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::basic_string_guid&lt; _Elem, _Traits, _Ax &gt; Class Template Reference<div class="ingroups"><a class="el" href="group___win_std_str_format.html">String Formatting</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Base template class to support converting GUID to string.
<a href="classwinstd_1_1basic__string__guid.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_common_8h_source.html">Common.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::basic_string_guid&lt; _Elem, _Traits, _Ax &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1basic__string__guid.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Initializing string using template in memory</div></td></tr>
<tr class="memitem:a924b921415b69fcc1ff5fab54be10f19"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__guid.html#a924b921415b69fcc1ff5fab54be10f19">basic_string_guid</a> (_In_ const GUID &amp;guid, _In_z_ _Printf_format_string_ const _Elem *format)</td></tr>
<tr class="memdesc:a924b921415b69fcc1ff5fab54be10f19"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents to string representation of given GUID. <a href="classwinstd_1_1basic__string__guid.html#a924b921415b69fcc1ff5fab54be10f19">More...</a><br /></td></tr>
<tr class="separator:a924b921415b69fcc1ff5fab54be10f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;class _Elem, class _Traits, class _Ax&gt;<br />
class winstd::basic_string_guid&lt; _Elem, _Traits, _Ax &gt;</div><p >Base template class to support converting GUID to string. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a924b921415b69fcc1ff5fab54be10f19" name="a924b921415b69fcc1ff5fab54be10f19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a924b921415b69fcc1ff5fab54be10f19">&#9670;&nbsp;</a></span>basic_string_guid()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1basic__string__guid.html">winstd::basic_string_guid</a>&lt; _Elem, _Traits, _Ax &gt;::basic_string_guid </td>
<td>(</td>
<td class="paramtype">_In_ const GUID &amp;&#160;</td>
<td class="paramname"><em>guid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_z_ _Printf_format_string_ const _Elem *&#160;</td>
<td class="paramname"><em>format</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new string and formats its contents to string representation of given GUID. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">guid</td><td>GUID to convert </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>A <code>printf()</code> syntax template to convert GUID to string (i.e. <code>"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}"</code>) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_common_8h_source.html">Common.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,89 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1basic__string__msg.html">basic_string_msg</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt; Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html#af6b6d09fc171d0086315f374d03266b1">basic_string_msg</a>(_In_z_ _FormatMessage_format_string_ const _Elem *format,...)</td><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html#acd069536c1a980778368385f0aabd88c">basic_string_msg</a>(_In_ HINSTANCE hInstance, _In_ UINT nFormatID,...)</td><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html#a30932569a07f12c7b5a282502dd39eec">basic_string_msg</a>(_In_ HINSTANCE hInstance, _In_ WORD wLanguageID, _In_ UINT nFormatID,...)</td><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html#a1d0b2d1dd06ba8577341c0986934fd4d">basic_string_msg</a>(_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _In_opt_ va_list *Arguments)</td><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html#acad49c7a6a6ebbb543c3fcbc0977dc97">basic_string_msg</a>(_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _In_opt_ DWORD_PTR *Arguments)</td><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html#a83b3f10344f634f66944ea1d050b1e1f">basic_string_msg</a>(_In_ DWORD dwFlags, _In_z_ LPCTSTR pszFormat, _In_opt_ va_list *Arguments)</td><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html#a61d6fe3020f28c502fe18762de7a7f2c">basic_string_msg</a>(_In_ DWORD dwFlags, _In_z_ LPCTSTR pszFormat, _In_opt_ DWORD_PTR *Arguments)</td><td class="entry"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,498 @@
<!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: winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt; Class Template 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1basic__string__msg.html">basic_string_msg</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classwinstd_1_1basic__string__msg-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt; Class Template Reference<div class="ingroups"><a class="el" href="group___win_std_str_format.html">String Formatting</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Base template class to support string formatting using <code>FormatMessage()</code> style templates.
<a href="classwinstd_1_1basic__string__msg.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_common_8h_source.html">Common.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1basic__string__msg.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1d0b2d1dd06ba8577341c0986934fd4d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__msg.html#a1d0b2d1dd06ba8577341c0986934fd4d">basic_string_msg</a> (_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _In_opt_ va_list *Arguments)</td></tr>
<tr class="memdesc:a1d0b2d1dd06ba8577341c0986934fd4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style. <a href="classwinstd_1_1basic__string__msg.html#a1d0b2d1dd06ba8577341c0986934fd4d">More...</a><br /></td></tr>
<tr class="separator:a1d0b2d1dd06ba8577341c0986934fd4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acad49c7a6a6ebbb543c3fcbc0977dc97"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__msg.html#acad49c7a6a6ebbb543c3fcbc0977dc97">basic_string_msg</a> (_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _In_opt_ DWORD_PTR *Arguments)</td></tr>
<tr class="memdesc:acad49c7a6a6ebbb543c3fcbc0977dc97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style. <a href="classwinstd_1_1basic__string__msg.html#acad49c7a6a6ebbb543c3fcbc0977dc97">More...</a><br /></td></tr>
<tr class="separator:acad49c7a6a6ebbb543c3fcbc0977dc97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83b3f10344f634f66944ea1d050b1e1f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__msg.html#a83b3f10344f634f66944ea1d050b1e1f">basic_string_msg</a> (_In_ DWORD dwFlags, _In_z_ LPCTSTR pszFormat, _In_opt_ va_list *Arguments)</td></tr>
<tr class="memdesc:a83b3f10344f634f66944ea1d050b1e1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style. <a href="classwinstd_1_1basic__string__msg.html#a83b3f10344f634f66944ea1d050b1e1f">More...</a><br /></td></tr>
<tr class="separator:a83b3f10344f634f66944ea1d050b1e1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61d6fe3020f28c502fe18762de7a7f2c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__msg.html#a61d6fe3020f28c502fe18762de7a7f2c">basic_string_msg</a> (_In_ DWORD dwFlags, _In_z_ LPCTSTR pszFormat, _In_opt_ DWORD_PTR *Arguments)</td></tr>
<tr class="memdesc:a61d6fe3020f28c502fe18762de7a7f2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style. <a href="classwinstd_1_1basic__string__msg.html#a61d6fe3020f28c502fe18762de7a7f2c">More...</a><br /></td></tr>
<tr class="separator:a61d6fe3020f28c502fe18762de7a7f2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Initializing string using template in memory</div></td></tr>
<tr class="memitem:af6b6d09fc171d0086315f374d03266b1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__msg.html#af6b6d09fc171d0086315f374d03266b1">basic_string_msg</a> (_In_z_ _FormatMessage_format_string_ const _Elem *format,...)</td></tr>
<tr class="memdesc:af6b6d09fc171d0086315f374d03266b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style template. <a href="classwinstd_1_1basic__string__msg.html#af6b6d09fc171d0086315f374d03266b1">More...</a><br /></td></tr>
<tr class="separator:af6b6d09fc171d0086315f374d03266b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Initializing string using template in resources</div></td></tr>
<tr class="memitem:acd069536c1a980778368385f0aabd88c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__msg.html#acd069536c1a980778368385f0aabd88c">basic_string_msg</a> (_In_ HINSTANCE hInstance, _In_ UINT nFormatID,...)</td></tr>
<tr class="memdesc:acd069536c1a980778368385f0aabd88c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style template in resources. <a href="classwinstd_1_1basic__string__msg.html#acd069536c1a980778368385f0aabd88c">More...</a><br /></td></tr>
<tr class="separator:acd069536c1a980778368385f0aabd88c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30932569a07f12c7b5a282502dd39eec"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__msg.html#a30932569a07f12c7b5a282502dd39eec">basic_string_msg</a> (_In_ HINSTANCE hInstance, _In_ WORD wLanguageID, _In_ UINT nFormatID,...)</td></tr>
<tr class="memdesc:a30932569a07f12c7b5a282502dd39eec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style template in resources. <a href="classwinstd_1_1basic__string__msg.html#a30932569a07f12c7b5a282502dd39eec">More...</a><br /></td></tr>
<tr class="separator:a30932569a07f12c7b5a282502dd39eec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;class _Elem, class _Traits, class _Ax&gt;<br />
class winstd::basic_string_msg&lt; _Elem, _Traits, _Ax &gt;</div><p >Base template class to support string formatting using <code>FormatMessage()</code> style templates. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="af6b6d09fc171d0086315f374d03266b1" name="af6b6d09fc171d0086315f374d03266b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6b6d09fc171d0086315f374d03266b1">&#9670;&nbsp;</a></span>basic_string_msg() <span class="overload">[1/7]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg</a>&lt; _Elem, _Traits, _Ax &gt;::basic_string_msg </td>
<td>(</td>
<td class="paramtype">_In_z_ _FormatMessage_format_string_ const _Elem *&#160;</td>
<td class="paramname"><em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new string and formats its contents using <code>FormatMessage()</code> style template. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>String template using <code>FormatMessage()</code> style </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="acd069536c1a980778368385f0aabd88c" name="acd069536c1a980778368385f0aabd88c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd069536c1a980778368385f0aabd88c">&#9670;&nbsp;</a></span>basic_string_msg() <span class="overload">[2/7]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg</a>&lt; _Elem, _Traits, _Ax &gt;::basic_string_msg </td>
<td>(</td>
<td class="paramtype">_In_ HINSTANCE&#160;</td>
<td class="paramname"><em>hInstance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ UINT&#160;</td>
<td class="paramname"><em>nFormatID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new string and formats its contents using <code>FormatMessage()</code> style template in resources. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">hInstance</td><td>Resource module handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nFormatID</td><td>Resource ID of the string template using <code>FormatMessage()</code> style </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a30932569a07f12c7b5a282502dd39eec" name="a30932569a07f12c7b5a282502dd39eec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30932569a07f12c7b5a282502dd39eec">&#9670;&nbsp;</a></span>basic_string_msg() <span class="overload">[3/7]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg</a>&lt; _Elem, _Traits, _Ax &gt;::basic_string_msg </td>
<td>(</td>
<td class="paramtype">_In_ HINSTANCE&#160;</td>
<td class="paramname"><em>hInstance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ WORD&#160;</td>
<td class="paramname"><em>wLanguageID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ UINT&#160;</td>
<td class="paramname"><em>nFormatID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new string and formats its contents using <code>FormatMessage()</code> style template in resources. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">hInstance</td><td>Resource module handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">wLanguageID</td><td>Resource language </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nFormatID</td><td>Resource ID of the string template using <code>FormatMessage()</code> style </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a1d0b2d1dd06ba8577341c0986934fd4d" name="a1d0b2d1dd06ba8577341c0986934fd4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d0b2d1dd06ba8577341c0986934fd4d">&#9670;&nbsp;</a></span>basic_string_msg() <span class="overload">[4/7]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg</a>&lt; _Elem, _Traits, _Ax &gt;::basic_string_msg </td>
<td>(</td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwFlags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ LPCVOID&#160;</td>
<td class="paramname"><em>lpSource</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwMessageId</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwLanguageId</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ va_list *&#160;</td>
<td class="paramname"><em>Arguments</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new string and formats its contents using <code>FormatMessage()</code> style. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms679351.aspx">FormatMessage function</a> </dd></dl>
</div>
</div>
<a id="acad49c7a6a6ebbb543c3fcbc0977dc97" name="acad49c7a6a6ebbb543c3fcbc0977dc97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acad49c7a6a6ebbb543c3fcbc0977dc97">&#9670;&nbsp;</a></span>basic_string_msg() <span class="overload">[5/7]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg</a>&lt; _Elem, _Traits, _Ax &gt;::basic_string_msg </td>
<td>(</td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwFlags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ LPCVOID&#160;</td>
<td class="paramname"><em>lpSource</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwMessageId</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwLanguageId</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ DWORD_PTR *&#160;</td>
<td class="paramname"><em>Arguments</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new string and formats its contents using <code>FormatMessage()</code> style. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms679351.aspx">FormatMessage function</a> </dd></dl>
</div>
</div>
<a id="a83b3f10344f634f66944ea1d050b1e1f" name="a83b3f10344f634f66944ea1d050b1e1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a83b3f10344f634f66944ea1d050b1e1f">&#9670;&nbsp;</a></span>basic_string_msg() <span class="overload">[6/7]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg</a>&lt; _Elem, _Traits, _Ax &gt;::basic_string_msg </td>
<td>(</td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwFlags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_z_ LPCTSTR&#160;</td>
<td class="paramname"><em>pszFormat</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ va_list *&#160;</td>
<td class="paramname"><em>Arguments</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new string and formats its contents using <code>FormatMessage()</code> style. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms679351.aspx">FormatMessage function</a> </dd></dl>
</div>
</div>
<a id="a61d6fe3020f28c502fe18762de7a7f2c" name="a61d6fe3020f28c502fe18762de7a7f2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61d6fe3020f28c502fe18762de7a7f2c">&#9670;&nbsp;</a></span>basic_string_msg() <span class="overload">[7/7]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1basic__string__msg.html">winstd::basic_string_msg</a>&lt; _Elem, _Traits, _Ax &gt;::basic_string_msg </td>
<td>(</td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwFlags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_z_ LPCTSTR&#160;</td>
<td class="paramname"><em>pszFormat</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ DWORD_PTR *&#160;</td>
<td class="paramname"><em>Arguments</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new string and formats its contents using <code>FormatMessage()</code> style. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms679351.aspx">FormatMessage function</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_common_8h_source.html">Common.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,85 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1basic__string__printf.html">basic_string_printf</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::basic_string_printf&lt; _Elem, _Traits, _Ax &gt; Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1basic__string__printf.html">winstd::basic_string_printf&lt; _Elem, _Traits, _Ax &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1basic__string__printf.html#ab394fd3438a22f02baf47f41ba7f1020">basic_string_printf</a>(_In_z_ _Printf_format_string_ const _Elem *format,...)</td><td class="entry"><a class="el" href="classwinstd_1_1basic__string__printf.html">winstd::basic_string_printf&lt; _Elem, _Traits, _Ax &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1basic__string__printf.html#adad524e2913883cce72f635b90d2d820">basic_string_printf</a>(_In_ HINSTANCE hInstance, _In_ UINT nFormatID,...)</td><td class="entry"><a class="el" href="classwinstd_1_1basic__string__printf.html">winstd::basic_string_printf&lt; _Elem, _Traits, _Ax &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1basic__string__printf.html#adda133198791d97d15f042ccd79bf23d">basic_string_printf</a>(_In_ HINSTANCE hInstance, _In_ WORD wLanguageID, _In_ UINT nFormatID,...)</td><td class="entry"><a class="el" href="classwinstd_1_1basic__string__printf.html">winstd::basic_string_printf&lt; _Elem, _Traits, _Ax &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,273 @@
<!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: winstd::basic_string_printf&lt; _Elem, _Traits, _Ax &gt; Class Template 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1basic__string__printf.html">basic_string_printf</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="classwinstd_1_1basic__string__printf-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::basic_string_printf&lt; _Elem, _Traits, _Ax &gt; Class Template Reference<div class="ingroups"><a class="el" href="group___win_std_str_format.html">String Formatting</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Base template class to support string formatting using <code>printf()</code> style templates.
<a href="classwinstd_1_1basic__string__printf.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_common_8h_source.html">Common.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::basic_string_printf&lt; _Elem, _Traits, _Ax &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1basic__string__printf.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Initializing string using template in memory</div></td></tr>
<tr class="memitem:ab394fd3438a22f02baf47f41ba7f1020"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__printf.html#ab394fd3438a22f02baf47f41ba7f1020">basic_string_printf</a> (_In_z_ _Printf_format_string_ const _Elem *format,...)</td></tr>
<tr class="memdesc:ab394fd3438a22f02baf47f41ba7f1020"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>printf()</code> style template. <a href="classwinstd_1_1basic__string__printf.html#ab394fd3438a22f02baf47f41ba7f1020">More...</a><br /></td></tr>
<tr class="separator:ab394fd3438a22f02baf47f41ba7f1020"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Initializing string using template in resources</div></td></tr>
<tr class="memitem:adad524e2913883cce72f635b90d2d820"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__printf.html#adad524e2913883cce72f635b90d2d820">basic_string_printf</a> (_In_ HINSTANCE hInstance, _In_ UINT nFormatID,...)</td></tr>
<tr class="memdesc:adad524e2913883cce72f635b90d2d820"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>printf()</code> style template in resources. <a href="classwinstd_1_1basic__string__printf.html#adad524e2913883cce72f635b90d2d820">More...</a><br /></td></tr>
<tr class="separator:adad524e2913883cce72f635b90d2d820"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adda133198791d97d15f042ccd79bf23d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1basic__string__printf.html#adda133198791d97d15f042ccd79bf23d">basic_string_printf</a> (_In_ HINSTANCE hInstance, _In_ WORD wLanguageID, _In_ UINT nFormatID,...)</td></tr>
<tr class="memdesc:adda133198791d97d15f042ccd79bf23d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>printf()</code> style template in resources. <a href="classwinstd_1_1basic__string__printf.html#adda133198791d97d15f042ccd79bf23d">More...</a><br /></td></tr>
<tr class="separator:adda133198791d97d15f042ccd79bf23d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;class _Elem, class _Traits, class _Ax&gt;<br />
class winstd::basic_string_printf&lt; _Elem, _Traits, _Ax &gt;</div><p >Base template class to support string formatting using <code>printf()</code> style templates. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab394fd3438a22f02baf47f41ba7f1020" name="ab394fd3438a22f02baf47f41ba7f1020"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab394fd3438a22f02baf47f41ba7f1020">&#9670;&nbsp;</a></span>basic_string_printf() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1basic__string__printf.html">winstd::basic_string_printf</a>&lt; _Elem, _Traits, _Ax &gt;::basic_string_printf </td>
<td>(</td>
<td class="paramtype">_In_z_ _Printf_format_string_ const _Elem *&#160;</td>
<td class="paramname"><em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new string and formats its contents using <code>printf()</code> style template. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">format</td><td>String template using <code>printf()</code> style </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="adad524e2913883cce72f635b90d2d820" name="adad524e2913883cce72f635b90d2d820"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adad524e2913883cce72f635b90d2d820">&#9670;&nbsp;</a></span>basic_string_printf() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1basic__string__printf.html">winstd::basic_string_printf</a>&lt; _Elem, _Traits, _Ax &gt;::basic_string_printf </td>
<td>(</td>
<td class="paramtype">_In_ HINSTANCE&#160;</td>
<td class="paramname"><em>hInstance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ UINT&#160;</td>
<td class="paramname"><em>nFormatID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new string and formats its contents using <code>printf()</code> style template in resources. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">hInstance</td><td>Resource module handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nFormatID</td><td>Resource ID of the string template using <code>printf()</code> style </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="adda133198791d97d15f042ccd79bf23d" name="adda133198791d97d15f042ccd79bf23d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adda133198791d97d15f042ccd79bf23d">&#9670;&nbsp;</a></span>basic_string_printf() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1basic__string__printf.html">winstd::basic_string_printf</a>&lt; _Elem, _Traits, _Ax &gt;::basic_string_printf </td>
<td>(</td>
<td class="paramtype">_In_ HINSTANCE&#160;</td>
<td class="paramname"><em>hInstance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ WORD&#160;</td>
<td class="paramname"><em>wLanguageID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ UINT&#160;</td>
<td class="paramname"><em>nFormatID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new string and formats its contents using <code>printf()</code> style template in resources. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">hInstance</td><td>Resource module handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">wLanguageID</td><td>Resource language </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nFormatID</td><td>Resource ID of the string template using <code>printf()</code> style </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_common_8h_source.html">Common.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,119 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1bstr.html">bstr</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::bstr Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1bstr.html">winstd::bstr</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a>(_In_opt_ handle_type h)</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; BSTR, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1bstr.html#a9fd6b7039c624f1265c7787424f65843">bstr</a>(_In_ LPCOLESTR src) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1bstr.html">winstd::bstr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1bstr.html#af5f7b0ad4e6e6cc9d0ccd3673dd3b721">bstr</a>(_In_ LPCOLESTR src, _In_ UINT len) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1bstr.html">winstd::bstr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1bstr.html#a47dbb28d3cd833edbd242d328b86ecde">bstr</a>(_In_ const std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;src) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1bstr.html">winstd::bstr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac95cbfb481c0d5e6c60d130f3c270b59">dplhandle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; BSTR, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; BSTR, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; BSTR, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; BSTR, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; BSTR, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1bstr.html#aea8518f7b0a9303f9e646c133c7d8039">duplicate_internal</a>(_In_ handle_type h) const noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1bstr.html">winstd::bstr</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1bstr.html#a87edcb348af7d69ad86709e32b519870">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1bstr.html">winstd::bstr</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1bstr.html#aa6970921c6334a993f5f0fc1be5d54e3">length</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1bstr.html">winstd::bstr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; BSTR, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; BSTR, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; BSTR, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">handle&lt; BSTR, INVAL &gt;::operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1bstr.html#a317d3e0783e7d3de7cc6516964ea3f5e">~bstr</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1bstr.html">winstd::bstr</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

374
classwinstd_1_1bstr.html Normal file
View File

@ -0,0 +1,374 @@
<!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: winstd::bstr Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1bstr.html">bstr</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1bstr-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::bstr Class Reference<div class="ingroups"><a class="el" href="group___win_std_c_o_m.html">COM object management</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>BSTR string wrapper.
<a href="classwinstd_1_1bstr.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_c_o_m_8h_source.html">COM.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::bstr:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1bstr.png" usemap="#winstd::bstr_map" alt=""/>
<map id="winstd::bstr_map" name="winstd::bstr_map">
<area href="classwinstd_1_1dplhandle.html" alt="winstd::dplhandle&lt; BSTR, NULL &gt;" shape="rect" coords="0,56,203,80"/>
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; BSTR, INVAL &gt;" shape="rect" coords="0,0,203,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a9fd6b7039c624f1265c7787424f65843"><td class="memItemLeft" align="right" valign="top"><a id="a9fd6b7039c624f1265c7787424f65843" name="a9fd6b7039c624f1265c7787424f65843"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>bstr</b> (_In_ LPCOLESTR src) noexcept</td></tr>
<tr class="memdesc:a9fd6b7039c624f1265c7787424f65843"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs BSTR from OLE string. <br /></td></tr>
<tr class="separator:a9fd6b7039c624f1265c7787424f65843"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5f7b0ad4e6e6cc9d0ccd3673dd3b721"><td class="memItemLeft" align="right" valign="top"><a id="af5f7b0ad4e6e6cc9d0ccd3673dd3b721" name="af5f7b0ad4e6e6cc9d0ccd3673dd3b721"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>bstr</b> (_In_ LPCOLESTR src, _In_ UINT len) noexcept</td></tr>
<tr class="memdesc:af5f7b0ad4e6e6cc9d0ccd3673dd3b721"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs BSTR from OLE string with length. <br /></td></tr>
<tr class="separator:af5f7b0ad4e6e6cc9d0ccd3673dd3b721"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47dbb28d3cd833edbd242d328b86ecde"><td class="memTemplParams" colspan="2"><a id="a47dbb28d3cd833edbd242d328b86ecde" name="a47dbb28d3cd833edbd242d328b86ecde"></a>
template&lt;class _Traits , class _Ax &gt; </td></tr>
<tr class="memitem:a47dbb28d3cd833edbd242d328b86ecde"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>bstr</b> (_In_ const std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;src) noexcept</td></tr>
<tr class="memdesc:a47dbb28d3cd833edbd242d328b86ecde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs BSTR from std::basic_string. <br /></td></tr>
<tr class="separator:a47dbb28d3cd833edbd242d328b86ecde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a317d3e0783e7d3de7cc6516964ea3f5e"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1bstr.html#a317d3e0783e7d3de7cc6516964ea3f5e">~bstr</a> ()</td></tr>
<tr class="memdesc:a317d3e0783e7d3de7cc6516964ea3f5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the string. <a href="classwinstd_1_1bstr.html#a317d3e0783e7d3de7cc6516964ea3f5e">More...</a><br /></td></tr>
<tr class="separator:a317d3e0783e7d3de7cc6516964ea3f5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6970921c6334a993f5f0fc1be5d54e3"><td class="memItemLeft" align="right" valign="top">UINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1bstr.html#aa6970921c6334a993f5f0fc1be5d54e3">length</a> () const noexcept</td></tr>
<tr class="memdesc:aa6970921c6334a993f5f0fc1be5d54e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of the string. <a href="classwinstd_1_1bstr.html#aa6970921c6334a993f5f0fc1be5d54e3">More...</a><br /></td></tr>
<tr class="separator:aa6970921c6334a993f5f0fc1be5d54e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; BSTR, NULL &gt;</a></td></tr>
<tr class="memitem:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a id="ac95cbfb481c0d5e6c60d130f3c270b59" name="ac95cbfb481c0d5e6c60d130f3c270b59"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>dplhandle</b> () noexcept</td></tr>
<tr class="memdesc:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">More...</a><br /></td></tr>
<tr class="separator:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">More...</a><br /></td></tr>
<tr class="separator:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">More...</a><br /></td></tr>
<tr class="separator:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">More...</a><br /></td></tr>
<tr class="separator:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <a href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">More...</a><br /></td></tr>
<tr class="separator:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <a href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">More...</a><br /></td></tr>
<tr class="separator:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a> () const</td></tr>
<tr class="memdesc:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates and returns a new object handle. <a href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">More...</a><br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h)</td></tr>
<tr class="memdesc:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates an object handle and sets a new object handle. <a href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">More...</a><br /></td></tr>
<tr class="separator:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a87edcb348af7d69ad86709e32b519870"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1bstr.html#a87edcb348af7d69ad86709e32b519870">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:a87edcb348af7d69ad86709e32b519870"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the string. <a href="classwinstd_1_1bstr.html#a87edcb348af7d69ad86709e32b519870">More...</a><br /></td></tr>
<tr class="separator:a87edcb348af7d69ad86709e32b519870"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea8518f7b0a9303f9e646c133c7d8039"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1bstr.html#aea8518f7b0a9303f9e646c133c7d8039">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept override</td></tr>
<tr class="memdesc:aea8518f7b0a9303f9e646c133c7d8039"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the string. <a href="classwinstd_1_1bstr.html#aea8518f7b0a9303f9e646c133c7d8039">More...</a><br /></td></tr>
<tr class="separator:aea8518f7b0a9303f9e646c133c7d8039"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0094309e30d7780908b261c53e5a07d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept=0</td></tr>
<tr class="memdesc:aa0094309e30d7780908b261c53e5a07d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object handle duplication. <a href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">More...</a><br /></td></tr>
<tr class="separator:aa0094309e30d7780908b261c53e5a07d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef BSTR&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const BSTR&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; BSTR, INVAL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><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 >BSTR string wrapper. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a317d3e0783e7d3de7cc6516964ea3f5e" name="a317d3e0783e7d3de7cc6516964ea3f5e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a317d3e0783e7d3de7cc6516964ea3f5e">&#9670;&nbsp;</a></span>~bstr()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::bstr::~bstr </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the string. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms221481.aspx">SysFreeString function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aea8518f7b0a9303f9e646c133c7d8039" name="aea8518f7b0a9303f9e646c133c7d8039"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea8518f7b0a9303f9e646c133c7d8039">&#9670;&nbsp;</a></span>duplicate_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> winstd::bstr::duplicate_internal </td>
<td>(</td>
<td class="paramtype">_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Duplicates the string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Existing string</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Duplicated string</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms221458.aspx">SysAllocString function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">winstd::dplhandle&lt; BSTR, NULL &gt;</a>.</p>
</div>
</div>
<a id="a87edcb348af7d69ad86709e32b519870" name="a87edcb348af7d69ad86709e32b519870"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87edcb348af7d69ad86709e32b519870">&#9670;&nbsp;</a></span>free_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void winstd::bstr::free_internal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the string. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms221481.aspx">SysFreeString function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; BSTR, INVAL &gt;</a>.</p>
</div>
</div>
<a id="aa6970921c6334a993f5f0fc1be5d54e3" name="aa6970921c6334a993f5f0fc1be5d54e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa6970921c6334a993f5f0fc1be5d54e3">&#9670;&nbsp;</a></span>length()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">UINT winstd::bstr::length </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the length of the string. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms221240.aspx">SysStringLen function</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_c_o_m_8h_source.html">COM.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

BIN
classwinstd_1_1bstr.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,116 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1cert__chain__context.html">cert_chain_context</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::cert_chain_context Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1cert__chain__context.html">winstd::cert_chain_context</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a>(_In_opt_ handle_type h)</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1cert__chain__context.html#a9f446f3ac5ad702c98d16d296adab7a2">create</a>(_In_opt_ HCERTCHAINENGINE hChainEngine, _In_ PCCERT_CONTEXT pCertContext, _In_opt_ LPFILETIME pTime, _In_opt_ HCERTSTORE hAdditionalStore, _In_ PCERT_CHAIN_PARA pChainPara, _In_ DWORD dwFlags, __reserved LPVOID pvReserved=NULL) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1cert__chain__context.html">winstd::cert_chain_context</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac95cbfb481c0d5e6c60d130f3c270b59">dplhandle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__chain__context.html#a656b1a040b92b732f9d3b2559c663799">duplicate_internal</a>(_In_ handle_type h) const noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1cert__chain__context.html">winstd::cert_chain_context</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__chain__context.html#ae15044b1a7be10d96643d3921e149ee6">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1cert__chain__context.html">winstd::cert_chain_context</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;::operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__chain__context.html#a9f8b8604ea5766ffa59726b46e210eb3">~cert_chain_context</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1cert__chain__context.html">winstd::cert_chain_context</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,407 @@
<!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: winstd::cert_chain_context Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1cert__chain__context.html">cert_chain_context</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1cert__chain__context-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::cert_chain_context Class Reference<div class="ingroups"><a class="el" href="group___win_std_crypto_a_p_i.html">Cryptography API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>PCCERT_CHAIN_CONTEXT wrapper class.
<a href="classwinstd_1_1cert__chain__context.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">Crypt.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::cert_chain_context:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1cert__chain__context.png" usemap="#winstd::cert_5Fchain_5Fcontext_map" alt=""/>
<map id="winstd::cert_5Fchain_5Fcontext_map" name="winstd::cert_5Fchain_5Fcontext_map">
<area href="classwinstd_1_1dplhandle.html" alt="winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;" shape="rect" coords="0,56,333,80"/>
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;" shape="rect" coords="0,0,333,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a9f8b8604ea5766ffa59726b46e210eb3"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__chain__context.html#a9f8b8604ea5766ffa59726b46e210eb3">~cert_chain_context</a> ()</td></tr>
<tr class="memdesc:a9f8b8604ea5766ffa59726b46e210eb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the certificate chain context. <a href="classwinstd_1_1cert__chain__context.html#a9f8b8604ea5766ffa59726b46e210eb3">More...</a><br /></td></tr>
<tr class="separator:a9f8b8604ea5766ffa59726b46e210eb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f446f3ac5ad702c98d16d296adab7a2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__chain__context.html#a9f446f3ac5ad702c98d16d296adab7a2">create</a> (_In_opt_ HCERTCHAINENGINE hChainEngine, _In_ PCCERT_CONTEXT pCertContext, _In_opt_ LPFILETIME pTime, _In_opt_ HCERTSTORE hAdditionalStore, _In_ PCERT_CHAIN_PARA pChainPara, _In_ DWORD dwFlags, __reserved LPVOID pvReserved=NULL) noexcept</td></tr>
<tr class="memdesc:a9f446f3ac5ad702c98d16d296adab7a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the certificate chain context. <a href="classwinstd_1_1cert__chain__context.html#a9f446f3ac5ad702c98d16d296adab7a2">More...</a><br /></td></tr>
<tr class="separator:a9f446f3ac5ad702c98d16d296adab7a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;</a></td></tr>
<tr class="memitem:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a id="ac95cbfb481c0d5e6c60d130f3c270b59" name="ac95cbfb481c0d5e6c60d130f3c270b59"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>dplhandle</b> () noexcept</td></tr>
<tr class="memdesc:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">More...</a><br /></td></tr>
<tr class="separator:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">More...</a><br /></td></tr>
<tr class="separator:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">More...</a><br /></td></tr>
<tr class="separator:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">More...</a><br /></td></tr>
<tr class="separator:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <a href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">More...</a><br /></td></tr>
<tr class="separator:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <a href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">More...</a><br /></td></tr>
<tr class="separator:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a> () const</td></tr>
<tr class="memdesc:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates and returns a new object handle. <a href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">More...</a><br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h)</td></tr>
<tr class="memdesc:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates an object handle and sets a new object handle. <a href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">More...</a><br /></td></tr>
<tr class="separator:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ae15044b1a7be10d96643d3921e149ee6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__chain__context.html#ae15044b1a7be10d96643d3921e149ee6">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:ae15044b1a7be10d96643d3921e149ee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the certificate chain context. <a href="classwinstd_1_1cert__chain__context.html#ae15044b1a7be10d96643d3921e149ee6">More...</a><br /></td></tr>
<tr class="separator:ae15044b1a7be10d96643d3921e149ee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a656b1a040b92b732f9d3b2559c663799"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__chain__context.html#a656b1a040b92b732f9d3b2559c663799">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept override</td></tr>
<tr class="memdesc:a656b1a040b92b732f9d3b2559c663799"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the certificate chain context. <a href="classwinstd_1_1cert__chain__context.html#a656b1a040b92b732f9d3b2559c663799">More...</a><br /></td></tr>
<tr class="separator:a656b1a040b92b732f9d3b2559c663799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0094309e30d7780908b261c53e5a07d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept=0</td></tr>
<tr class="memdesc:aa0094309e30d7780908b261c53e5a07d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object handle duplication. <a href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">More...</a><br /></td></tr>
<tr class="separator:aa0094309e30d7780908b261c53e5a07d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef PCCERT_CHAIN_CONTEXT&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const PCCERT_CHAIN_CONTEXT&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><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 >PCCERT_CHAIN_CONTEXT wrapper class. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a9f8b8604ea5766ffa59726b46e210eb3" name="a9f8b8604ea5766ffa59726b46e210eb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f8b8604ea5766ffa59726b46e210eb3">&#9670;&nbsp;</a></span>~cert_chain_context()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::cert_chain_context::~cert_chain_context </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the certificate chain context. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376073.aspx">CertFreeCertificateChain function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a9f446f3ac5ad702c98d16d296adab7a2" name="a9f446f3ac5ad702c98d16d296adab7a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f446f3ac5ad702c98d16d296adab7a2">&#9670;&nbsp;</a></span>create()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::cert_chain_context::create </td>
<td>(</td>
<td class="paramtype">_In_opt_ HCERTCHAINENGINE&#160;</td>
<td class="paramname"><em>hChainEngine</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ PCCERT_CONTEXT&#160;</td>
<td class="paramname"><em>pCertContext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ LPFILETIME&#160;</td>
<td class="paramname"><em>pTime</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ HCERTSTORE&#160;</td>
<td class="paramname"><em>hAdditionalStore</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ PCERT_CHAIN_PARA&#160;</td>
<td class="paramname"><em>pChainPara</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwFlags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__reserved LPVOID&#160;</td>
<td class="paramname"><em>pvReserved</em> = <code>NULL</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates the certificate chain context. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>true when creation succeeds;</li>
<li>false when creation fails. For extended error information, call <code>GetLastError()</code>.</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376078.aspx">CertGetCertificateChain function</a> </dd></dl>
</div>
</div>
<a id="a656b1a040b92b732f9d3b2559c663799" name="a656b1a040b92b732f9d3b2559c663799"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a656b1a040b92b732f9d3b2559c663799">&#9670;&nbsp;</a></span>duplicate_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> winstd::cert_chain_context::duplicate_internal </td>
<td>(</td>
<td class="paramtype">_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Duplicates the certificate chain context. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Object handle of existing certificate chain context</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Duplicated certificate chain context handle</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376045.aspx">CertDuplicateCertificateContext function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">winstd::dplhandle&lt; PCCERT_CHAIN_CONTEXT, NULL &gt;</a>.</p>
</div>
</div>
<a id="ae15044b1a7be10d96643d3921e149ee6" name="ae15044b1a7be10d96643d3921e149ee6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae15044b1a7be10d96643d3921e149ee6">&#9670;&nbsp;</a></span>free_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void winstd::cert_chain_context::free_internal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the certificate chain context. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376073.aspx">CertFreeCertificateChain function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_crypt_8h_source.html">Crypt.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,122 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1cert__context.html">cert_context</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::cert_context Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1cert__context.html">winstd::cert_context</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a>(_In_opt_ handle_type h)</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#a23defa4c6756cc3da3965d6fa1911340">create</a>(_In_ DWORD dwCertEncodingType, _In_ LPCBYTE pbCertEncoded, _In_ DWORD cbCertEncoded) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html">winstd::cert_context</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac95cbfb481c0d5e6c60d130f3c270b59">dplhandle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#ae3740c4c2e9fd7caedfda928add3df0f">duplicate_internal</a>(_In_ handle_type h) const noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html">winstd::cert_context</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#a1615ec6693eb68764543456ad418a970">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html">winstd::cert_context</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#a27e4d118208c02e4023d0456124522af">operator!=</a>(_In_ const handle_type &amp;other) const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html">winstd::cert_context</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#a7f320b91ee26685eb9f9702a011ecc74">operator&lt;</a>(_In_ const handle_type &amp;other) const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html">winstd::cert_context</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#a1c545da45189367bcfeead3809c3e393">operator&lt;=</a>(_In_ const handle_type &amp;other) const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html">winstd::cert_context</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">handle&lt; PCCERT_CONTEXT, INVAL &gt;::operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#a094988aa40f5ca3148bad44ff568e448">operator==</a>(_In_ const handle_type &amp;other) const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html">winstd::cert_context</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#af307ba398c117eed2731e532551c7e32">operator&gt;</a>(_In_ const handle_type &amp;other) const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html">winstd::cert_context</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#a30e6faf35a3d6a0817927a811f55817d">operator&gt;=</a>(_In_ const handle_type &amp;other) const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html">winstd::cert_context</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#affa4b97554e6676d392301b5928130fd">~cert_context</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html">winstd::cert_context</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,635 @@
<!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: winstd::cert_context Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1cert__context.html">cert_context</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1cert__context-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::cert_context Class Reference<div class="ingroups"><a class="el" href="group___win_std_crypto_a_p_i.html">Cryptography API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>PCCERT_CONTEXT wrapper class.
<a href="classwinstd_1_1cert__context.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">Crypt.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::cert_context:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1cert__context.png" usemap="#winstd::cert_5Fcontext_map" alt=""/>
<map id="winstd::cert_5Fcontext_map" name="winstd::cert_5Fcontext_map">
<area href="classwinstd_1_1dplhandle.html" alt="winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;" shape="rect" coords="0,56,287,80"/>
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;" shape="rect" coords="0,0,287,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:affa4b97554e6676d392301b5928130fd"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__context.html#affa4b97554e6676d392301b5928130fd">~cert_context</a> ()</td></tr>
<tr class="memdesc:affa4b97554e6676d392301b5928130fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the certificate context. <a href="classwinstd_1_1cert__context.html#affa4b97554e6676d392301b5928130fd">More...</a><br /></td></tr>
<tr class="separator:affa4b97554e6676d392301b5928130fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23defa4c6756cc3da3965d6fa1911340"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__context.html#a23defa4c6756cc3da3965d6fa1911340">create</a> (_In_ DWORD dwCertEncodingType, _In_ LPCBYTE pbCertEncoded, _In_ DWORD cbCertEncoded) noexcept</td></tr>
<tr class="memdesc:a23defa4c6756cc3da3965d6fa1911340"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the certificate context. <a href="classwinstd_1_1cert__context.html#a23defa4c6756cc3da3965d6fa1911340">More...</a><br /></td></tr>
<tr class="separator:a23defa4c6756cc3da3965d6fa1911340"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a094988aa40f5ca3148bad44ff568e448"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__context.html#a094988aa40f5ca3148bad44ff568e448">operator==</a> (_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:a094988aa40f5ca3148bad44ff568e448"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate equal to? <a href="classwinstd_1_1cert__context.html#a094988aa40f5ca3148bad44ff568e448">More...</a><br /></td></tr>
<tr class="separator:a094988aa40f5ca3148bad44ff568e448"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27e4d118208c02e4023d0456124522af"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__context.html#a27e4d118208c02e4023d0456124522af">operator!=</a> (_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:a27e4d118208c02e4023d0456124522af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate not equal to? <a href="classwinstd_1_1cert__context.html#a27e4d118208c02e4023d0456124522af">More...</a><br /></td></tr>
<tr class="separator:a27e4d118208c02e4023d0456124522af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f320b91ee26685eb9f9702a011ecc74"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__context.html#a7f320b91ee26685eb9f9702a011ecc74">operator&lt;</a> (_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:a7f320b91ee26685eb9f9702a011ecc74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate less than? <a href="classwinstd_1_1cert__context.html#a7f320b91ee26685eb9f9702a011ecc74">More...</a><br /></td></tr>
<tr class="separator:a7f320b91ee26685eb9f9702a011ecc74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af307ba398c117eed2731e532551c7e32"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__context.html#af307ba398c117eed2731e532551c7e32">operator&gt;</a> (_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:af307ba398c117eed2731e532551c7e32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate greater than? <a href="classwinstd_1_1cert__context.html#af307ba398c117eed2731e532551c7e32">More...</a><br /></td></tr>
<tr class="separator:af307ba398c117eed2731e532551c7e32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c545da45189367bcfeead3809c3e393"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__context.html#a1c545da45189367bcfeead3809c3e393">operator&lt;=</a> (_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:a1c545da45189367bcfeead3809c3e393"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate less than or equal? <a href="classwinstd_1_1cert__context.html#a1c545da45189367bcfeead3809c3e393">More...</a><br /></td></tr>
<tr class="separator:a1c545da45189367bcfeead3809c3e393"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30e6faf35a3d6a0817927a811f55817d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__context.html#a30e6faf35a3d6a0817927a811f55817d">operator&gt;=</a> (_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:a30e6faf35a3d6a0817927a811f55817d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate greater than or equal? <a href="classwinstd_1_1cert__context.html#a30e6faf35a3d6a0817927a811f55817d">More...</a><br /></td></tr>
<tr class="separator:a30e6faf35a3d6a0817927a811f55817d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a></td></tr>
<tr class="memitem:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a id="ac95cbfb481c0d5e6c60d130f3c270b59" name="ac95cbfb481c0d5e6c60d130f3c270b59"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>dplhandle</b> () noexcept</td></tr>
<tr class="memdesc:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">More...</a><br /></td></tr>
<tr class="separator:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">More...</a><br /></td></tr>
<tr class="separator:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">More...</a><br /></td></tr>
<tr class="separator:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">More...</a><br /></td></tr>
<tr class="separator:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <a href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">More...</a><br /></td></tr>
<tr class="separator:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <a href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">More...</a><br /></td></tr>
<tr class="separator:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a> () const</td></tr>
<tr class="memdesc:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates and returns a new object handle. <a href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">More...</a><br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h)</td></tr>
<tr class="memdesc:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates an object handle and sets a new object handle. <a href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">More...</a><br /></td></tr>
<tr class="separator:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a1615ec6693eb68764543456ad418a970"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__context.html#a1615ec6693eb68764543456ad418a970">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:a1615ec6693eb68764543456ad418a970"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the certificate context. <a href="classwinstd_1_1cert__context.html#a1615ec6693eb68764543456ad418a970">More...</a><br /></td></tr>
<tr class="separator:a1615ec6693eb68764543456ad418a970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3740c4c2e9fd7caedfda928add3df0f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__context.html#ae3740c4c2e9fd7caedfda928add3df0f">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept override</td></tr>
<tr class="memdesc:ae3740c4c2e9fd7caedfda928add3df0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the certificate context. <a href="classwinstd_1_1cert__context.html#ae3740c4c2e9fd7caedfda928add3df0f">More...</a><br /></td></tr>
<tr class="separator:ae3740c4c2e9fd7caedfda928add3df0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0094309e30d7780908b261c53e5a07d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept=0</td></tr>
<tr class="memdesc:aa0094309e30d7780908b261c53e5a07d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object handle duplication. <a href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">More...</a><br /></td></tr>
<tr class="separator:aa0094309e30d7780908b261c53e5a07d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef PCCERT_CONTEXT&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const PCCERT_CONTEXT&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><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 >PCCERT_CONTEXT wrapper class. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="affa4b97554e6676d392301b5928130fd" name="affa4b97554e6676d392301b5928130fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affa4b97554e6676d392301b5928130fd">&#9670;&nbsp;</a></span>~cert_context()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::cert_context::~cert_context </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the certificate context. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376075.aspx">CertFreeCertificateContext function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a23defa4c6756cc3da3965d6fa1911340" name="a23defa4c6756cc3da3965d6fa1911340"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23defa4c6756cc3da3965d6fa1911340">&#9670;&nbsp;</a></span>create()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::cert_context::create </td>
<td>(</td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwCertEncodingType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ LPCBYTE&#160;</td>
<td class="paramname"><em>pbCertEncoded</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>cbCertEncoded</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates the certificate context. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>true when creation succeeds;</li>
<li>false when creation fails. For extended error information, call <code>GetLastError()</code>.</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376033.aspx">CertCreateCertificateContext function</a> </dd></dl>
</div>
</div>
<a id="ae3740c4c2e9fd7caedfda928add3df0f" name="ae3740c4c2e9fd7caedfda928add3df0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3740c4c2e9fd7caedfda928add3df0f">&#9670;&nbsp;</a></span>duplicate_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> winstd::cert_context::duplicate_internal </td>
<td>(</td>
<td class="paramtype">_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Duplicates the certificate context. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Object handle of existing certificate context</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Duplicated certificate context handle</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376045.aspx">CertDuplicateCertificateContext function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a>.</p>
</div>
</div>
<a id="a1615ec6693eb68764543456ad418a970" name="a1615ec6693eb68764543456ad418a970"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1615ec6693eb68764543456ad418a970">&#9670;&nbsp;</a></span>free_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void winstd::cert_context::free_internal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the certificate context. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376075.aspx">CertFreeCertificateContext function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;</a>.</p>
</div>
</div>
<a id="a27e4d118208c02e4023d0456124522af" name="a27e4d118208c02e4023d0456124522af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a27e4d118208c02e4023d0456124522af">&#9670;&nbsp;</a></span>operator!=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">winstd::cert_context::operator!</a>= </td>
<td>(</td>
<td class="paramtype">_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Is certificate not equal to? </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>Certificate to compare against </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Non zero when certificate is not equal to <code>other</code>;</li>
<li>Zero otherwise. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a7f320b91ee26685eb9f9702a011ecc74" name="a7f320b91ee26685eb9f9702a011ecc74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f320b91ee26685eb9f9702a011ecc74">&#9670;&nbsp;</a></span>operator&lt;()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::cert_context::operator&lt; </td>
<td>(</td>
<td class="paramtype">_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Is certificate less than? </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>Certificate to compare against </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Non zero when certificate is less than <code>other</code>;</li>
<li>Zero otherwise. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a1c545da45189367bcfeead3809c3e393" name="a1c545da45189367bcfeead3809c3e393"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c545da45189367bcfeead3809c3e393">&#9670;&nbsp;</a></span>operator&lt;=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::cert_context::operator&lt;= </td>
<td>(</td>
<td class="paramtype">_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Is certificate less than or equal? </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>Certificate to compare against </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Non zero when certificate is less than <code>other</code>;</li>
<li>Zero otherwise. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a094988aa40f5ca3148bad44ff568e448" name="a094988aa40f5ca3148bad44ff568e448"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a094988aa40f5ca3148bad44ff568e448">&#9670;&nbsp;</a></span>operator==()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::cert_context::operator== </td>
<td>(</td>
<td class="paramtype">_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Is certificate equal to? </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>Certificate to compare against </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Non zero when certificate is equal to <code>other</code>;</li>
<li>Zero otherwise. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="af307ba398c117eed2731e532551c7e32" name="af307ba398c117eed2731e532551c7e32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af307ba398c117eed2731e532551c7e32">&#9670;&nbsp;</a></span>operator&gt;()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::cert_context::operator&gt; </td>
<td>(</td>
<td class="paramtype">_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Is certificate greater than? </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>Certificate to compare against </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Non zero when certificate is greater than <code>other</code>;</li>
<li>Zero otherwise. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a30e6faf35a3d6a0817927a811f55817d" name="a30e6faf35a3d6a0817927a811f55817d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30e6faf35a3d6a0817927a811f55817d">&#9670;&nbsp;</a></span>operator&gt;=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::cert_context::operator&gt;= </td>
<td>(</td>
<td class="paramtype">_In_ const <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Is certificate greater than or equal? </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>Certificate to compare against </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>Non zero when certificate is greater than <code>other</code>;</li>
<li>Zero otherwise. </li>
</ul>
</dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_crypt_8h_source.html">Crypt.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,108 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1cert__store.html">cert_store</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::cert_store Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1cert__store.html">winstd::cert_store</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__store.html#ade7fa4cac43ae0f21ed3fdf0fa154c15">create</a>(_In_ LPCSTR lpszStoreProvider, _In_ DWORD dwEncodingType, _In_opt_ HCRYPTPROV_LEGACY hCryptProv, _In_ DWORD dwFlags, _In_opt_ const void *pvPara) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1cert__store.html">winstd::cert_store</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1cert__store.html#a4c56db8f6907668dffa71d66e2208eaf">create</a>(_In_opt_ HCRYPTPROV_LEGACY hCryptProv, _In_z_ LPCTSTR szSubsystemProtocol) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1cert__store.html">winstd::cert_store</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__store.html#ab709fe692a4117173eae26e741da2069">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1cert__store.html">winstd::cert_store</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__store.html#a80783d444ae3555aea01f959c9c01405">~cert_store</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1cert__store.html">winstd::cert_store</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,368 @@
<!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: winstd::cert_store Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1cert__store.html">cert_store</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1cert__store-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::cert_store Class Reference<div class="ingroups"><a class="el" href="group___win_std_crypto_a_p_i.html">Cryptography API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>HCERTSTORE wrapper class.
<a href="classwinstd_1_1cert__store.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">Crypt.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::cert_store:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1cert__store.png" usemap="#winstd::cert_5Fstore_map" alt=""/>
<map id="winstd::cert_5Fstore_map" name="winstd::cert_5Fstore_map">
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; HCERTSTORE, NULL &gt;" shape="rect" coords="0,0,237,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a80783d444ae3555aea01f959c9c01405"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__store.html#a80783d444ae3555aea01f959c9c01405">~cert_store</a> ()</td></tr>
<tr class="memdesc:a80783d444ae3555aea01f959c9c01405"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the certificate store. <a href="classwinstd_1_1cert__store.html#a80783d444ae3555aea01f959c9c01405">More...</a><br /></td></tr>
<tr class="separator:a80783d444ae3555aea01f959c9c01405"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade7fa4cac43ae0f21ed3fdf0fa154c15"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__store.html#ade7fa4cac43ae0f21ed3fdf0fa154c15">create</a> (_In_ LPCSTR lpszStoreProvider, _In_ DWORD dwEncodingType, _In_opt_ HCRYPTPROV_LEGACY hCryptProv, _In_ DWORD dwFlags, _In_opt_ const void *pvPara) noexcept</td></tr>
<tr class="memdesc:ade7fa4cac43ae0f21ed3fdf0fa154c15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens the certificate store. <a href="classwinstd_1_1cert__store.html#ade7fa4cac43ae0f21ed3fdf0fa154c15">More...</a><br /></td></tr>
<tr class="separator:ade7fa4cac43ae0f21ed3fdf0fa154c15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c56db8f6907668dffa71d66e2208eaf"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__store.html#a4c56db8f6907668dffa71d66e2208eaf">create</a> (_In_opt_ HCRYPTPROV_LEGACY hCryptProv, _In_z_ LPCTSTR szSubsystemProtocol) noexcept</td></tr>
<tr class="memdesc:a4c56db8f6907668dffa71d66e2208eaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens the most common system certificate store. To open certificate stores with more complex requirements, such as file-based or memory-based stores, use <code><a class="el" href="classwinstd_1_1cert__store.html#ade7fa4cac43ae0f21ed3fdf0fa154c15" title="Opens the certificate store.">create()</a></code>. <a href="classwinstd_1_1cert__store.html#a4c56db8f6907668dffa71d66e2208eaf">More...</a><br /></td></tr>
<tr class="separator:a4c56db8f6907668dffa71d66e2208eaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ab709fe692a4117173eae26e741da2069"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1cert__store.html#ab709fe692a4117173eae26e741da2069">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:ab709fe692a4117173eae26e741da2069"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the certificate store. <a href="classwinstd_1_1cert__store.html#ab709fe692a4117173eae26e741da2069">More...</a><br /></td></tr>
<tr class="separator:ab709fe692a4117173eae26e741da2069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef HCERTSTORE&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const HCERTSTORE&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCERTSTORE, NULL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><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 >HCERTSTORE wrapper class. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a80783d444ae3555aea01f959c9c01405" name="a80783d444ae3555aea01f959c9c01405"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80783d444ae3555aea01f959c9c01405">&#9670;&nbsp;</a></span>~cert_store()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::cert_store::~cert_store </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Closes the certificate store. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376026.aspx">CertCloseStore function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ade7fa4cac43ae0f21ed3fdf0fa154c15" name="ade7fa4cac43ae0f21ed3fdf0fa154c15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade7fa4cac43ae0f21ed3fdf0fa154c15">&#9670;&nbsp;</a></span>create() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::cert_store::create </td>
<td>(</td>
<td class="paramtype">_In_ LPCSTR&#160;</td>
<td class="paramname"><em>lpszStoreProvider</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwEncodingType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ HCRYPTPROV_LEGACY&#160;</td>
<td class="paramname"><em>hCryptProv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwFlags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ const void *&#160;</td>
<td class="paramname"><em>pvPara</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Opens the certificate store. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>true when creation succeeds;</li>
<li>false when creation fails. For extended error information, call <code>GetLastError()</code>.</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376559.aspx">CertOpenStore function</a> </dd></dl>
</div>
</div>
<a id="a4c56db8f6907668dffa71d66e2208eaf" name="a4c56db8f6907668dffa71d66e2208eaf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c56db8f6907668dffa71d66e2208eaf">&#9670;&nbsp;</a></span>create() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::cert_store::create </td>
<td>(</td>
<td class="paramtype">_In_opt_ HCRYPTPROV_LEGACY&#160;</td>
<td class="paramname"><em>hCryptProv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_z_ LPCTSTR&#160;</td>
<td class="paramname"><em>szSubsystemProtocol</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Opens the most common system certificate store. To open certificate stores with more complex requirements, such as file-based or memory-based stores, use <code><a class="el" href="classwinstd_1_1cert__store.html#ade7fa4cac43ae0f21ed3fdf0fa154c15" title="Opens the certificate store.">create()</a></code>. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>true when creation succeeds;</li>
<li>false when creation fails. For extended error information, call <code>GetLastError()</code>.</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376560.aspx">CertOpenSystemStore function</a> </dd></dl>
</div>
</div>
<a id="ab709fe692a4117173eae26e741da2069" name="ab709fe692a4117173eae26e741da2069"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab709fe692a4117173eae26e741da2069">&#9670;&nbsp;</a></span>free_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void winstd::cert_store::free_internal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Closes the certificate store. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376026.aspx">CertCloseStore function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; HCERTSTORE, NULL &gt;</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_crypt_8h_source.html">Crypt.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

View File

@ -0,0 +1,87 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1com__initializer.html">com_initializer</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::com_initializer Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1com__initializer.html">winstd::com_initializer</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1com__initializer.html#a1cf02a325b1064e1dc37145d3be7924d">com_initializer</a>(_In_opt_ LPVOID pvReserved) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1com__initializer.html">winstd::com_initializer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1com__initializer.html#a3661b5ceac98e049b72ed2a6fd708b73">com_initializer</a>(_In_opt_ LPVOID pvReserved, _In_ DWORD dwCoInit) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1com__initializer.html">winstd::com_initializer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1com__initializer.html#ae9478fd05b5b1c82e0f762c2b517155b">m_result</a></td><td class="entry"><a class="el" href="classwinstd_1_1com__initializer.html">winstd::com_initializer</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1com__initializer.html#ac3c997f810e8439096d8ca14fecb5b7d">status</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1com__initializer.html">winstd::com_initializer</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1com__initializer.html#ad53a7697dfaf83d4832f8a57a4cf00f6">~com_initializer</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1com__initializer.html">winstd::com_initializer</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,242 @@
<!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: winstd::com_initializer Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1com__initializer.html">com_initializer</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classwinstd_1_1com__initializer-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::com_initializer Class Reference<div class="ingroups"><a class="el" href="group___win_std_c_o_m.html">COM object management</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Context scope automatic COM (un)initialization.
<a href="classwinstd_1_1com__initializer.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_c_o_m_8h_source.html">COM.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1cf02a325b1064e1dc37145d3be7924d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__initializer.html#a1cf02a325b1064e1dc37145d3be7924d">com_initializer</a> (_In_opt_ LPVOID pvReserved) noexcept</td></tr>
<tr class="memdesc:a1cf02a325b1064e1dc37145d3be7924d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the COM library on the current thread and identifies the concurrency model as single-thread apartment (STA). <a href="classwinstd_1_1com__initializer.html#a1cf02a325b1064e1dc37145d3be7924d">More...</a><br /></td></tr>
<tr class="separator:a1cf02a325b1064e1dc37145d3be7924d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3661b5ceac98e049b72ed2a6fd708b73"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__initializer.html#a3661b5ceac98e049b72ed2a6fd708b73">com_initializer</a> (_In_opt_ LPVOID pvReserved, _In_ DWORD dwCoInit) noexcept</td></tr>
<tr class="memdesc:a3661b5ceac98e049b72ed2a6fd708b73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the COM library for use by the calling thread, sets the thread's concurrency model, and creates a new apartment for the thread if one is required. <a href="classwinstd_1_1com__initializer.html#a3661b5ceac98e049b72ed2a6fd708b73">More...</a><br /></td></tr>
<tr class="separator:a3661b5ceac98e049b72ed2a6fd708b73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad53a7697dfaf83d4832f8a57a4cf00f6"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__initializer.html#ad53a7697dfaf83d4832f8a57a4cf00f6">~com_initializer</a> ()</td></tr>
<tr class="memdesc:ad53a7697dfaf83d4832f8a57a4cf00f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uninitializes COM. <a href="classwinstd_1_1com__initializer.html#ad53a7697dfaf83d4832f8a57a4cf00f6">More...</a><br /></td></tr>
<tr class="separator:ad53a7697dfaf83d4832f8a57a4cf00f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3c997f810e8439096d8ca14fecb5b7d"><td class="memItemLeft" align="right" valign="top">HRESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__initializer.html#ac3c997f810e8439096d8ca14fecb5b7d">status</a> () const noexcept</td></tr>
<tr class="memdesc:ac3c997f810e8439096d8ca14fecb5b7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return result of <code>CoInitialize()</code> call. <a href="classwinstd_1_1com__initializer.html#ac3c997f810e8439096d8ca14fecb5b7d">More...</a><br /></td></tr>
<tr class="separator:ac3c997f810e8439096d8ca14fecb5b7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ae9478fd05b5b1c82e0f762c2b517155b"><td class="memItemLeft" align="right" valign="top"><a id="ae9478fd05b5b1c82e0f762c2b517155b" name="ae9478fd05b5b1c82e0f762c2b517155b"></a>
HRESULT&#160;</td><td class="memItemRight" valign="bottom"><b>m_result</b></td></tr>
<tr class="memdesc:ae9478fd05b5b1c82e0f762c2b517155b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result of CoInitialize call. <br /></td></tr>
<tr class="separator:ae9478fd05b5b1c82e0f762c2b517155b"><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 >Context scope automatic COM (un)initialization. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a1cf02a325b1064e1dc37145d3be7924d" name="a1cf02a325b1064e1dc37145d3be7924d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1cf02a325b1064e1dc37145d3be7924d">&#9670;&nbsp;</a></span>com_initializer() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::com_initializer::com_initializer </td>
<td>(</td>
<td class="paramtype">_In_opt_ LPVOID&#160;</td>
<td class="paramname"><em>pvReserved</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the COM library on the current thread and identifies the concurrency model as single-thread apartment (STA). </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms678543.aspx">CoInitialize function</a> </dd></dl>
</div>
</div>
<a id="a3661b5ceac98e049b72ed2a6fd708b73" name="a3661b5ceac98e049b72ed2a6fd708b73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3661b5ceac98e049b72ed2a6fd708b73">&#9670;&nbsp;</a></span>com_initializer() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::com_initializer::com_initializer </td>
<td>(</td>
<td class="paramtype">_In_opt_ LPVOID&#160;</td>
<td class="paramname"><em>pvReserved</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwCoInit</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes the COM library for use by the calling thread, sets the thread's concurrency model, and creates a new apartment for the thread if one is required. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms695279.aspx">CoInitializeEx function</a> </dd></dl>
</div>
</div>
<a id="ad53a7697dfaf83d4832f8a57a4cf00f6" name="ad53a7697dfaf83d4832f8a57a4cf00f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad53a7697dfaf83d4832f8a57a4cf00f6">&#9670;&nbsp;</a></span>~com_initializer()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::com_initializer::~com_initializer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Uninitializes COM. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms688715.aspx">CoUninitialize function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ac3c997f810e8439096d8ca14fecb5b7d" name="ac3c997f810e8439096d8ca14fecb5b7d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3c997f810e8439096d8ca14fecb5b7d">&#9670;&nbsp;</a></span>status()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">HRESULT winstd::com_initializer::status </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return result of <code>CoInitialize()</code> call. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms678543.aspx">CoInitialize function</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_c_o_m_8h_source.html">COM.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,121 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1com__obj.html">com_obj</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::com_obj&lt; T &gt; Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj&lt; T &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a>(_In_opt_ handle_type h)</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html#acb2f90ae927378156683517718aa1d1d">com_obj</a>(_In_ REFCLSID rclsid, _In_opt_ LPUNKNOWN pUnkOuter=NULL, DWORD dwClsContext=CLSCTX_ALL)</td><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html#a5891697029f9fe6fb93113bd8dd06c25">com_obj</a>(_In_ _Other *other)</td><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html#a544fcc007dd4588b257867d2e2a805b0">com_obj</a>(_In_ com_obj&lt; _Other &gt; &amp;other)</td><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html#a778ef4c90c978b2dfb9a3a5d9325ce8a">create</a>(_In_ REFCLSID rclsid, _In_opt_ LPUNKNOWN pUnkOuter=NULL, _In_ DWORD dwClsContext=CLSCTX_ALL)</td><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac95cbfb481c0d5e6c60d130f3c270b59">dplhandle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html#a2e16632274f2014e45f3cf593edbf110">duplicate_internal</a>(_In_ handle_type h) const noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html#a028b86f770253f74a62ca3eaebb14de5">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">handle&lt; T *, INVAL &gt;::operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html#adaf8aacd14f27142cdb99edff9ac07a9">query_interface</a>(_Out_ _Other **h) const</td><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html#adbce2534b586fb53bce5cd2e5508dbb3">query_interface</a>(_Out_ com_obj&lt; _Other &gt; &amp;h) const</td><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html#a91383e6e26266b0d3803c8594b8c5149">~com_obj</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj&lt; T &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,556 @@
<!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: winstd::com_obj&lt; T &gt; Class Template 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1com__obj.html">com_obj</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1com__obj-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::com_obj&lt; T &gt; Class Template Reference<div class="ingroups"><a class="el" href="group___win_std_c_o_m.html">COM object management</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>COM object wrapper template.
<a href="classwinstd_1_1com__obj.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_c_o_m_8h_source.html">COM.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::com_obj&lt; T &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1com__obj.png" usemap="#winstd::com_5Fobj_3C_20T_20_3E_map" alt=""/>
<map id="winstd::com_5Fobj_3C_20T_20_3E_map" name="winstd::com_5Fobj_3C_20T_20_3E_map">
<area href="classwinstd_1_1dplhandle.html" alt="winstd::dplhandle&lt; T *, NULL &gt;" shape="rect" coords="0,56,191,80"/>
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; T *, INVAL &gt;" shape="rect" coords="0,0,191,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:acb2f90ae927378156683517718aa1d1d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__obj.html#acb2f90ae927378156683517718aa1d1d">com_obj</a> (_In_ REFCLSID rclsid, _In_opt_ LPUNKNOWN pUnkOuter=NULL, DWORD dwClsContext=CLSCTX_ALL)</td></tr>
<tr class="memdesc:acb2f90ae927378156683517718aa1d1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new object and creates a new class with it. <a href="classwinstd_1_1com__obj.html#acb2f90ae927378156683517718aa1d1d">More...</a><br /></td></tr>
<tr class="separator:acb2f90ae927378156683517718aa1d1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5891697029f9fe6fb93113bd8dd06c25"><td class="memTemplParams" colspan="2">template&lt;class _Other &gt; </td></tr>
<tr class="memitem:a5891697029f9fe6fb93113bd8dd06c25"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__obj.html#a5891697029f9fe6fb93113bd8dd06c25">com_obj</a> (_In_ _Other *other)</td></tr>
<tr class="memdesc:a5891697029f9fe6fb93113bd8dd06c25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries the object for another interface and creates new class with it. <a href="classwinstd_1_1com__obj.html#a5891697029f9fe6fb93113bd8dd06c25">More...</a><br /></td></tr>
<tr class="separator:a5891697029f9fe6fb93113bd8dd06c25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a544fcc007dd4588b257867d2e2a805b0"><td class="memTemplParams" colspan="2">template&lt;class _Other &gt; </td></tr>
<tr class="memitem:a544fcc007dd4588b257867d2e2a805b0"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__obj.html#a544fcc007dd4588b257867d2e2a805b0">com_obj</a> (_In_ <a class="el" href="classwinstd_1_1com__obj.html">com_obj</a>&lt; _Other &gt; &amp;other)</td></tr>
<tr class="memdesc:a544fcc007dd4588b257867d2e2a805b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries the object for another interface and creates new class with it. <a href="classwinstd_1_1com__obj.html#a544fcc007dd4588b257867d2e2a805b0">More...</a><br /></td></tr>
<tr class="separator:a544fcc007dd4588b257867d2e2a805b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91383e6e26266b0d3803c8594b8c5149"><td class="memItemLeft" align="right" valign="top"><a id="a91383e6e26266b0d3803c8594b8c5149" name="a91383e6e26266b0d3803c8594b8c5149"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><b>~com_obj</b> ()</td></tr>
<tr class="memdesc:a91383e6e26266b0d3803c8594b8c5149"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases object. <br /></td></tr>
<tr class="separator:a91383e6e26266b0d3803c8594b8c5149"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a778ef4c90c978b2dfb9a3a5d9325ce8a"><td class="memItemLeft" align="right" valign="top">HRESULT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__obj.html#a778ef4c90c978b2dfb9a3a5d9325ce8a">create</a> (_In_ REFCLSID rclsid, _In_opt_ LPUNKNOWN pUnkOuter=NULL, _In_ DWORD dwClsContext=CLSCTX_ALL)</td></tr>
<tr class="memdesc:a778ef4c90c978b2dfb9a3a5d9325ce8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new object. <a href="classwinstd_1_1com__obj.html#a778ef4c90c978b2dfb9a3a5d9325ce8a">More...</a><br /></td></tr>
<tr class="separator:a778ef4c90c978b2dfb9a3a5d9325ce8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaf8aacd14f27142cdb99edff9ac07a9"><td class="memTemplParams" colspan="2">template&lt;class _Other &gt; </td></tr>
<tr class="memitem:adaf8aacd14f27142cdb99edff9ac07a9"><td class="memTemplItemLeft" align="right" valign="top">HRESULT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__obj.html#adaf8aacd14f27142cdb99edff9ac07a9">query_interface</a> (_Out_ _Other **h) const</td></tr>
<tr class="memdesc:adaf8aacd14f27142cdb99edff9ac07a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries the object for another interface. <a href="classwinstd_1_1com__obj.html#adaf8aacd14f27142cdb99edff9ac07a9">More...</a><br /></td></tr>
<tr class="separator:adaf8aacd14f27142cdb99edff9ac07a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbce2534b586fb53bce5cd2e5508dbb3"><td class="memTemplParams" colspan="2">template&lt;class _Other &gt; </td></tr>
<tr class="memitem:adbce2534b586fb53bce5cd2e5508dbb3"><td class="memTemplItemLeft" align="right" valign="top">HRESULT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__obj.html#adbce2534b586fb53bce5cd2e5508dbb3">query_interface</a> (_Out_ <a class="el" href="classwinstd_1_1com__obj.html">com_obj</a>&lt; _Other &gt; &amp;h) const</td></tr>
<tr class="memdesc:adbce2534b586fb53bce5cd2e5508dbb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries the object for another interface. <a href="classwinstd_1_1com__obj.html#adbce2534b586fb53bce5cd2e5508dbb3">More...</a><br /></td></tr>
<tr class="separator:adbce2534b586fb53bce5cd2e5508dbb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T *, NULL &gt;</a></td></tr>
<tr class="memitem:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a id="ac95cbfb481c0d5e6c60d130f3c270b59" name="ac95cbfb481c0d5e6c60d130f3c270b59"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>dplhandle</b> () noexcept</td></tr>
<tr class="memdesc:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">More...</a><br /></td></tr>
<tr class="separator:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">More...</a><br /></td></tr>
<tr class="separator:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">More...</a><br /></td></tr>
<tr class="separator:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">More...</a><br /></td></tr>
<tr class="separator:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <a href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">More...</a><br /></td></tr>
<tr class="separator:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <a href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">More...</a><br /></td></tr>
<tr class="separator:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a> () const</td></tr>
<tr class="memdesc:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates and returns a new object handle. <a href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">More...</a><br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h)</td></tr>
<tr class="memdesc:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates an object handle and sets a new object handle. <a href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">More...</a><br /></td></tr>
<tr class="separator:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a028b86f770253f74a62ca3eaebb14de5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__obj.html#a028b86f770253f74a62ca3eaebb14de5">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:a028b86f770253f74a62ca3eaebb14de5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases the object by decrementing reference counter. <a href="classwinstd_1_1com__obj.html#a028b86f770253f74a62ca3eaebb14de5">More...</a><br /></td></tr>
<tr class="separator:a028b86f770253f74a62ca3eaebb14de5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e16632274f2014e45f3cf593edbf110"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__obj.html#a2e16632274f2014e45f3cf593edbf110">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept override</td></tr>
<tr class="memdesc:a2e16632274f2014e45f3cf593edbf110"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object by incrementing the reference counter. <a href="classwinstd_1_1com__obj.html#a2e16632274f2014e45f3cf593edbf110">More...</a><br /></td></tr>
<tr class="separator:a2e16632274f2014e45f3cf593edbf110"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0094309e30d7780908b261c53e5a07d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept=0</td></tr>
<tr class="memdesc:aa0094309e30d7780908b261c53e5a07d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object handle duplication. <a href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">More...</a><br /></td></tr>
<tr class="separator:aa0094309e30d7780908b261c53e5a07d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef T *&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const T *&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T *, INVAL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;class T&gt;<br />
class winstd::com_obj&lt; T &gt;</div><p >COM object wrapper template. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="acb2f90ae927378156683517718aa1d1d" name="acb2f90ae927378156683517718aa1d1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb2f90ae927378156683517718aa1d1d">&#9670;&nbsp;</a></span>com_obj() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj</a>&lt; T &gt;::com_obj </td>
<td>(</td>
<td class="paramtype">_In_ REFCLSID&#160;</td>
<td class="paramname"><em>rclsid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ LPUNKNOWN&#160;</td>
<td class="paramname"><em>pUnkOuter</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DWORD&#160;</td>
<td class="paramname"><em>dwClsContext</em> = <code>CLSCTX_ALL</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a new object and creates a new class with it. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms686615.aspx">CoCreateInstance function</a> </dd></dl>
</div>
</div>
<a id="a5891697029f9fe6fb93113bd8dd06c25" name="a5891697029f9fe6fb93113bd8dd06c25"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5891697029f9fe6fb93113bd8dd06c25">&#9670;&nbsp;</a></span>com_obj() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<div class="memtemplate">
template&lt;class _Other &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj</a>&lt; T &gt;::com_obj </td>
<td>(</td>
<td class="paramtype">_In_ _Other *&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Queries the object for another interface and creates new class with it. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms682521.aspx">IUnknown::QueryInterface method</a> </dd></dl>
</div>
</div>
<a id="a544fcc007dd4588b257867d2e2a805b0" name="a544fcc007dd4588b257867d2e2a805b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a544fcc007dd4588b257867d2e2a805b0">&#9670;&nbsp;</a></span>com_obj() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<div class="memtemplate">
template&lt;class _Other &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj</a>&lt; T &gt;::com_obj </td>
<td>(</td>
<td class="paramtype">_In_ <a class="el" href="classwinstd_1_1com__obj.html">com_obj</a>&lt; _Other &gt; &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Queries the object for another interface and creates new class with it. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms682521.aspx">IUnknown::QueryInterface method</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a778ef4c90c978b2dfb9a3a5d9325ce8a" name="a778ef4c90c978b2dfb9a3a5d9325ce8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a778ef4c90c978b2dfb9a3a5d9325ce8a">&#9670;&nbsp;</a></span>create()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">HRESULT <a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj</a>&lt; T &gt;::create </td>
<td>(</td>
<td class="paramtype">_In_ REFCLSID&#160;</td>
<td class="paramname"><em>rclsid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ LPUNKNOWN&#160;</td>
<td class="paramname"><em>pUnkOuter</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwClsContext</em> = <code>CLSCTX_ALL</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new object. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms686615.aspx">CoCreateInstance function</a> </dd></dl>
</div>
</div>
<a id="a2e16632274f2014e45f3cf593edbf110" name="a2e16632274f2014e45f3cf593edbf110"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e16632274f2014e45f3cf593edbf110">&#9670;&nbsp;</a></span>duplicate_internal()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> <a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj</a>&lt; T &gt;::duplicate_internal </td>
<td>(</td>
<td class="paramtype">_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Duplicates the object by incrementing the reference counter. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms691379.aspx">IUnknown::AddRef method</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Object handle of existing object</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Duplicated object handle </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">winstd::dplhandle&lt; T *, NULL &gt;</a>.</p>
</div>
</div>
<a id="a028b86f770253f74a62ca3eaebb14de5" name="a028b86f770253f74a62ca3eaebb14de5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a028b86f770253f74a62ca3eaebb14de5">&#9670;&nbsp;</a></span>free_internal()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj</a>&lt; T &gt;::free_internal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Releases the object by decrementing reference counter. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms682317.aspx">IUnknown::Release method</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; T *, INVAL &gt;</a>.</p>
</div>
</div>
<a id="adaf8aacd14f27142cdb99edff9ac07a9" name="adaf8aacd14f27142cdb99edff9ac07a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adaf8aacd14f27142cdb99edff9ac07a9">&#9670;&nbsp;</a></span>query_interface() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<div class="memtemplate">
template&lt;class _Other &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">HRESULT <a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj</a>&lt; T &gt;::query_interface </td>
<td>(</td>
<td class="paramtype">_Out_ _Other **&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Queries the object for another interface. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms682521.aspx">IUnknown::QueryInterface method</a> </dd></dl>
</div>
</div>
<a id="adbce2534b586fb53bce5cd2e5508dbb3" name="adbce2534b586fb53bce5cd2e5508dbb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbce2534b586fb53bce5cd2e5508dbb3">&#9670;&nbsp;</a></span>query_interface() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<div class="memtemplate">
template&lt;class _Other &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">HRESULT <a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj</a>&lt; T &gt;::query_interface </td>
<td>(</td>
<td class="paramtype">_Out_ <a class="el" href="classwinstd_1_1com__obj.html">com_obj</a>&lt; _Other &gt; &amp;&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Queries the object for another interface. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms682521.aspx">IUnknown::QueryInterface method</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_c_o_m_8h_source.html">COM.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

BIN
classwinstd_1_1com__obj.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,89 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1com__runtime__error.html">com_runtime_error</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::com_runtime_error Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1com__runtime__error.html">winstd::com_runtime_error</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1com__runtime__error.html#ac5974f81a49bc2cf13c048ab1e93a883">com_runtime_error</a>(_In_ error_type num, _In_ const std::string &amp;msg)</td><td class="entry"><a class="el" href="classwinstd_1_1com__runtime__error.html">winstd::com_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1com__runtime__error.html#a948a502b8e2c088192c7a8f28b93f0cf">com_runtime_error</a>(_In_ error_type num, _In_opt_z_ const char *msg=nullptr)</td><td class="entry"><a class="el" href="classwinstd_1_1com__runtime__error.html">winstd::com_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; HRESULT &gt;</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html#a865b8400a5a5a962c3068bf55f022d1f">m_num</a></td><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; HRESULT &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html#a5f8894c1634e9b80ab67c573d7315824">num_runtime_error</a>(_In_ error_type num, _In_ const std::string &amp;msg)</td><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; HRESULT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html#aa775e07ef587393c66cb21a6c809c0ca">num_runtime_error</a>(_In_ error_type num, _In_opt_z_ const char *msg=nullptr)</td><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; HRESULT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html#a6388a483c00628c1a94a5ce45ca63e70">number</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; HRESULT &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,227 @@
<!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: winstd::com_runtime_error Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1com__runtime__error.html">com_runtime_error</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classwinstd_1_1com__runtime__error-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::com_runtime_error Class Reference<div class="ingroups"><a class="el" href="group___win_std_exceptions.html">Exceptions</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>COM runtime error.
<a href="classwinstd_1_1com__runtime__error.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_c_o_m_8h_source.html">COM.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::com_runtime_error:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1com__runtime__error.png" usemap="#winstd::com_5Fruntime_5Ferror_map" alt=""/>
<map id="winstd::com_5Fruntime_5Ferror_map" name="winstd::com_5Fruntime_5Ferror_map">
<area href="classwinstd_1_1num__runtime__error.html" alt="winstd::num_runtime_error&lt; HRESULT &gt;" shape="rect" coords="0,56,239,80"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac5974f81a49bc2cf13c048ab1e93a883"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__runtime__error.html#ac5974f81a49bc2cf13c048ab1e93a883">com_runtime_error</a> (_In_ <a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_ const std::string &amp;msg)</td></tr>
<tr class="memdesc:ac5974f81a49bc2cf13c048ab1e93a883"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <a href="classwinstd_1_1com__runtime__error.html#ac5974f81a49bc2cf13c048ab1e93a883">More...</a><br /></td></tr>
<tr class="separator:ac5974f81a49bc2cf13c048ab1e93a883"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a948a502b8e2c088192c7a8f28b93f0cf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1com__runtime__error.html#a948a502b8e2c088192c7a8f28b93f0cf">com_runtime_error</a> (_In_ <a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_opt_z_ const char *msg=nullptr)</td></tr>
<tr class="memdesc:a948a502b8e2c088192c7a8f28b93f0cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <a href="classwinstd_1_1com__runtime__error.html#a948a502b8e2c088192c7a8f28b93f0cf">More...</a><br /></td></tr>
<tr class="separator:a948a502b8e2c088192c7a8f28b93f0cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1num__runtime__error"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1num__runtime__error')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; HRESULT &gt;</a></td></tr>
<tr class="memitem:a5f8894c1634e9b80ab67c573d7315824 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1num__runtime__error.html#a5f8894c1634e9b80ab67c573d7315824">num_runtime_error</a> (_In_ <a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_ const std::string &amp;msg)</td></tr>
<tr class="memdesc:a5f8894c1634e9b80ab67c573d7315824 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <a href="classwinstd_1_1num__runtime__error.html#a5f8894c1634e9b80ab67c573d7315824">More...</a><br /></td></tr>
<tr class="separator:a5f8894c1634e9b80ab67c573d7315824 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa775e07ef587393c66cb21a6c809c0ca inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1num__runtime__error.html#aa775e07ef587393c66cb21a6c809c0ca">num_runtime_error</a> (_In_ <a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_opt_z_ const char *msg=nullptr)</td></tr>
<tr class="memdesc:aa775e07ef587393c66cb21a6c809c0ca inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <a href="classwinstd_1_1num__runtime__error.html#aa775e07ef587393c66cb21a6c809c0ca">More...</a><br /></td></tr>
<tr class="separator:aa775e07ef587393c66cb21a6c809c0ca inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6388a483c00628c1a94a5ce45ca63e70 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memItemLeft" align="right" valign="top"><a id="a6388a483c00628c1a94a5ce45ca63e70" name="a6388a483c00628c1a94a5ce45ca63e70"></a>
<a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>number</b> () const</td></tr>
<tr class="memdesc:a6388a483c00628c1a94a5ce45ca63e70 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Windows error number. <br /></td></tr>
<tr class="separator:a6388a483c00628c1a94a5ce45ca63e70 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1num__runtime__error"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1num__runtime__error')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; HRESULT &gt;</a></td></tr>
<tr class="memitem:a6fa2de87d0151b3ad9cac58f838852e0 inherit pub_types_classwinstd_1_1num__runtime__error"><td class="memItemLeft" align="right" valign="top"><a id="a6fa2de87d0151b3ad9cac58f838852e0" name="a6fa2de87d0151b3ad9cac58f838852e0"></a>
typedef HRESULT&#160;</td><td class="memItemRight" valign="bottom"><b>error_type</b></td></tr>
<tr class="memdesc:a6fa2de87d0151b3ad9cac58f838852e0 inherit pub_types_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error number type. <br /></td></tr>
<tr class="separator:a6fa2de87d0151b3ad9cac58f838852e0 inherit pub_types_classwinstd_1_1num__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1num__runtime__error"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1num__runtime__error')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; HRESULT &gt;</a></td></tr>
<tr class="memitem:a865b8400a5a5a962c3068bf55f022d1f inherit pro_attribs_classwinstd_1_1num__runtime__error"><td class="memItemLeft" align="right" valign="top"><a id="a865b8400a5a5a962c3068bf55f022d1f" name="a865b8400a5a5a962c3068bf55f022d1f"></a>
<a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_num</b></td></tr>
<tr class="memdesc:a865b8400a5a5a962c3068bf55f022d1f inherit pro_attribs_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Numeric error code. <br /></td></tr>
<tr class="separator:a865b8400a5a5a962c3068bf55f022d1f inherit pro_attribs_classwinstd_1_1num__runtime__error"><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 >COM runtime error. </p>
<dl class="section note"><dt>Note</dt><dd>Must be defined as derived class from num_runtime_error&lt;&gt; to allow correct type info for dynamic typecasting and prevent folding with other derivates of num_runtime_error&lt;&gt;. </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ac5974f81a49bc2cf13c048ab1e93a883" name="ac5974f81a49bc2cf13c048ab1e93a883"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5974f81a49bc2cf13c048ab1e93a883">&#9670;&nbsp;</a></span>com_runtime_error() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::com_runtime_error::com_runtime_error </td>
<td>(</td>
<td class="paramtype">_In_ <a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a>&#160;</td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ const std::string &amp;&#160;</td>
<td class="paramname"><em>msg</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an exception. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">num</td><td>COM error code </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Error message </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a948a502b8e2c088192c7a8f28b93f0cf" name="a948a502b8e2c088192c7a8f28b93f0cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a948a502b8e2c088192c7a8f28b93f0cf">&#9670;&nbsp;</a></span>com_runtime_error() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::com_runtime_error::com_runtime_error </td>
<td>(</td>
<td class="paramtype">_In_ <a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a>&#160;</td>
<td class="paramname"><em>num</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_z_ const char *&#160;</td>
<td class="paramname"><em>msg</em> = <code>nullptr</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an exception. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">num</td><td>COM error code </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Error message </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_c_o_m_8h_source.html">COM.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,86 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1console__ctrl__handler.html">console_ctrl_handler</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::console_ctrl_handler Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1console__ctrl__handler.html">winstd::console_ctrl_handler</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1console__ctrl__handler.html#ad195c9300c718b50bc09bc9bfc31ba91">console_ctrl_handler</a>(_In_opt_ PHANDLER_ROUTINE HandlerRoutine) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1console__ctrl__handler.html">winstd::console_ctrl_handler</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1console__ctrl__handler.html#ae46848a80c517f95fc3fd7c1ee832134">m_cookie</a></td><td class="entry"><a class="el" href="classwinstd_1_1console__ctrl__handler.html">winstd::console_ctrl_handler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1console__ctrl__handler.html#a9ef863ec7a6cd26788acb94430948e60">m_handler</a></td><td class="entry"><a class="el" href="classwinstd_1_1console__ctrl__handler.html">winstd::console_ctrl_handler</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1console__ctrl__handler.html#a2cba550aa8c659f63386ed6322ccbd6e">~console_ctrl_handler</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1console__ctrl__handler.html">winstd::console_ctrl_handler</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,178 @@
<!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: winstd::console_ctrl_handler Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1console__ctrl__handler.html">console_ctrl_handler</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classwinstd_1_1console__ctrl__handler-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::console_ctrl_handler Class Reference<div class="ingroups"><a class="el" href="group___win_std_win_a_p_i.html">Windows API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Console control handler stack management.
<a href="classwinstd_1_1console__ctrl__handler.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_win_8h_source.html">Win.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad195c9300c718b50bc09bc9bfc31ba91"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1console__ctrl__handler.html#ad195c9300c718b50bc09bc9bfc31ba91">console_ctrl_handler</a> (_In_opt_ PHANDLER_ROUTINE HandlerRoutine) noexcept</td></tr>
<tr class="memdesc:ad195c9300c718b50bc09bc9bfc31ba91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the console control handler object and pushes the given handler to the console control handler stack. <a href="classwinstd_1_1console__ctrl__handler.html#ad195c9300c718b50bc09bc9bfc31ba91">More...</a><br /></td></tr>
<tr class="separator:ad195c9300c718b50bc09bc9bfc31ba91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cba550aa8c659f63386ed6322ccbd6e"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1console__ctrl__handler.html#a2cba550aa8c659f63386ed6322ccbd6e">~console_ctrl_handler</a> ()</td></tr>
<tr class="memdesc:a2cba550aa8c659f63386ed6322ccbd6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pops console control handler from the console control handler stack. <a href="classwinstd_1_1console__ctrl__handler.html#a2cba550aa8c659f63386ed6322ccbd6e">More...</a><br /></td></tr>
<tr class="separator:a2cba550aa8c659f63386ed6322ccbd6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ae46848a80c517f95fc3fd7c1ee832134"><td class="memItemLeft" align="right" valign="top"><a id="ae46848a80c517f95fc3fd7c1ee832134" name="ae46848a80c517f95fc3fd7c1ee832134"></a>
BOOL&#160;</td><td class="memItemRight" valign="bottom"><b>m_cookie</b></td></tr>
<tr class="memdesc:ae46848a80c517f95fc3fd7c1ee832134"><td class="mdescLeft">&#160;</td><td class="mdescRight">Did pushing the console control handler succeed? <br /></td></tr>
<tr class="separator:ae46848a80c517f95fc3fd7c1ee832134"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ef863ec7a6cd26788acb94430948e60"><td class="memItemLeft" align="right" valign="top"><a id="a9ef863ec7a6cd26788acb94430948e60" name="a9ef863ec7a6cd26788acb94430948e60"></a>
PHANDLER_ROUTINE&#160;</td><td class="memItemRight" valign="bottom"><b>m_handler</b></td></tr>
<tr class="memdesc:a9ef863ec7a6cd26788acb94430948e60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to console control handler. <br /></td></tr>
<tr class="separator:a9ef863ec7a6cd26788acb94430948e60"><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 >Console control handler stack management. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ad195c9300c718b50bc09bc9bfc31ba91" name="ad195c9300c718b50bc09bc9bfc31ba91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad195c9300c718b50bc09bc9bfc31ba91">&#9670;&nbsp;</a></span>console_ctrl_handler()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::console_ctrl_handler::console_ctrl_handler </td>
<td>(</td>
<td class="paramtype">_In_opt_ PHANDLER_ROUTINE&#160;</td>
<td class="paramname"><em>HandlerRoutine</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct the console control handler object and pushes the given handler to the console control handler stack. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">HandlerRoutine</td><td>A pointer to the application-defined HandlerRoutine function to be added.</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/console/setconsolectrlhandler">SetConsoleCtrlHandler function</a> </dd></dl>
</div>
</div>
<a id="a2cba550aa8c659f63386ed6322ccbd6e" name="a2cba550aa8c659f63386ed6322ccbd6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cba550aa8c659f63386ed6322ccbd6e">&#9670;&nbsp;</a></span>~console_ctrl_handler()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::console_ctrl_handler::~console_ctrl_handler </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Pops console control handler from the console control handler stack. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/console/setconsolectrlhandler">SetConsoleCtrlHandler function</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_win_8h_source.html">Win.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,86 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1critical__section.html">critical_section</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::critical_section Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1critical__section.html">winstd::critical_section</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1critical__section.html#aa8875ee96e273ba72e86457fe0f4c768">critical_section</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1critical__section.html">winstd::critical_section</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1critical__section.html#a55b9b9e7f38b94cd5c3fc15a319a6719">m_data</a></td><td class="entry"><a class="el" href="classwinstd_1_1critical__section.html">winstd::critical_section</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1critical__section.html#a7d071e54253a18e11dfdba7130333083">operator LPCRITICAL_SECTION</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1critical__section.html">winstd::critical_section</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1critical__section.html#a67af5836304f27084f296c0cc17d7d20">~critical_section</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1critical__section.html">winstd::critical_section</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,199 @@
<!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: winstd::critical_section Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1critical__section.html">critical_section</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classwinstd_1_1critical__section-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::critical_section Class Reference<div class="ingroups"><a class="el" href="group___win_std_win_a_p_i.html">Windows API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Critical section wrapper.
<a href="classwinstd_1_1critical__section.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_win_8h_source.html">Win.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa8875ee96e273ba72e86457fe0f4c768"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1critical__section.html#aa8875ee96e273ba72e86457fe0f4c768">critical_section</a> ()</td></tr>
<tr class="memdesc:aa8875ee96e273ba72e86457fe0f4c768"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the object and initializes a critical section object. <a href="classwinstd_1_1critical__section.html#aa8875ee96e273ba72e86457fe0f4c768">More...</a><br /></td></tr>
<tr class="separator:aa8875ee96e273ba72e86457fe0f4c768"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67af5836304f27084f296c0cc17d7d20"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1critical__section.html#a67af5836304f27084f296c0cc17d7d20">~critical_section</a> ()</td></tr>
<tr class="memdesc:a67af5836304f27084f296c0cc17d7d20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases all resources used by an unowned critical section object. <a href="classwinstd_1_1critical__section.html#a67af5836304f27084f296c0cc17d7d20">More...</a><br /></td></tr>
<tr class="separator:a67af5836304f27084f296c0cc17d7d20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d071e54253a18e11dfdba7130333083"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1critical__section.html#a7d071e54253a18e11dfdba7130333083">operator LPCRITICAL_SECTION</a> () noexcept</td></tr>
<tr class="memdesc:a7d071e54253a18e11dfdba7130333083"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1critical__section.html#a7d071e54253a18e11dfdba7130333083">More...</a><br /></td></tr>
<tr class="separator:a7d071e54253a18e11dfdba7130333083"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a55b9b9e7f38b94cd5c3fc15a319a6719"><td class="memItemLeft" align="right" valign="top"><a id="a55b9b9e7f38b94cd5c3fc15a319a6719" name="a55b9b9e7f38b94cd5c3fc15a319a6719"></a>
CRITICAL_SECTION&#160;</td><td class="memItemRight" valign="bottom"><b>m_data</b></td></tr>
<tr class="memdesc:a55b9b9e7f38b94cd5c3fc15a319a6719"><td class="mdescLeft">&#160;</td><td class="mdescRight">Critical section struct. <br /></td></tr>
<tr class="separator:a55b9b9e7f38b94cd5c3fc15a319a6719"><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 >Critical section wrapper. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aa8875ee96e273ba72e86457fe0f4c768" name="aa8875ee96e273ba72e86457fe0f4c768"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8875ee96e273ba72e86457fe0f4c768">&#9670;&nbsp;</a></span>critical_section()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::critical_section::critical_section </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct the object and initializes a critical section object. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/desktop/api/synchapi/nf-synchapi-initializecriticalsection">InitializeCriticalSection function</a> </dd></dl>
</div>
</div>
<a id="a67af5836304f27084f296c0cc17d7d20" name="a67af5836304f27084f296c0cc17d7d20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67af5836304f27084f296c0cc17d7d20">&#9670;&nbsp;</a></span>~critical_section()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::critical_section::~critical_section </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Releases all resources used by an unowned critical section object. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/desktop/api/synchapi/nf-synchapi-deletecriticalsection">DeleteCriticalSection function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a7d071e54253a18e11dfdba7130333083" name="a7d071e54253a18e11dfdba7130333083"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d071e54253a18e11dfdba7130333083">&#9670;&nbsp;</a></span>operator LPCRITICAL_SECTION()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::critical_section::operator LPCRITICAL_SECTION </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Auto-typecasting operator. </p>
<dl class="section return"><dt>Returns</dt><dd>Pointer to critical section </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_win_8h_source.html">Win.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,116 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1crypt__hash.html">crypt_hash</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::crypt_hash Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1crypt__hash.html">winstd::crypt_hash</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a>(_In_opt_ handle_type h)</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1crypt__hash.html#aee19825d23e4f0325e95c689b7dc9364">create</a>(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_opt_ HCRYPTKEY hKey=NULL, _In_opt_ DWORD dwFlags=0) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__hash.html">winstd::crypt_hash</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac95cbfb481c0d5e6c60d130f3c270b59">dplhandle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1crypt__hash.html#ac83439d59f00b673ae3f584e5452cdcb">duplicate_internal</a>(_In_ handle_type h) const noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__hash.html">winstd::crypt_hash</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1crypt__hash.html#a3c19a87b4ff646d9e87524feac4e41b5">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__hash.html">winstd::crypt_hash</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">handle&lt; HCRYPTHASH, INVAL &gt;::operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1crypt__hash.html#a7c688405c14799681018e0dfc8b51264">~crypt_hash</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__hash.html">winstd::crypt_hash</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,389 @@
<!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: winstd::crypt_hash Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1crypt__hash.html">crypt_hash</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1crypt__hash-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::crypt_hash Class Reference<div class="ingroups"><a class="el" href="group___win_std_crypto_a_p_i.html">Cryptography API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>HCRYPTHASH wrapper class.
<a href="classwinstd_1_1crypt__hash.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">Crypt.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::crypt_hash:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1crypt__hash.png" usemap="#winstd::crypt_5Fhash_map" alt=""/>
<map id="winstd::crypt_5Fhash_map" name="winstd::crypt_5Fhash_map">
<area href="classwinstd_1_1dplhandle.html" alt="winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;" shape="rect" coords="0,56,257,80"/>
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; HCRYPTHASH, INVAL &gt;" shape="rect" coords="0,0,257,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a7c688405c14799681018e0dfc8b51264"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__hash.html#a7c688405c14799681018e0dfc8b51264">~crypt_hash</a> ()</td></tr>
<tr class="memdesc:a7c688405c14799681018e0dfc8b51264"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the hash context. <a href="classwinstd_1_1crypt__hash.html#a7c688405c14799681018e0dfc8b51264">More...</a><br /></td></tr>
<tr class="separator:a7c688405c14799681018e0dfc8b51264"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee19825d23e4f0325e95c689b7dc9364"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__hash.html#aee19825d23e4f0325e95c689b7dc9364">create</a> (_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_opt_ HCRYPTKEY hKey=NULL, _In_opt_ DWORD dwFlags=0) noexcept</td></tr>
<tr class="memdesc:aee19825d23e4f0325e95c689b7dc9364"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the hash context. <a href="classwinstd_1_1crypt__hash.html#aee19825d23e4f0325e95c689b7dc9364">More...</a><br /></td></tr>
<tr class="separator:aee19825d23e4f0325e95c689b7dc9364"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a></td></tr>
<tr class="memitem:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a id="ac95cbfb481c0d5e6c60d130f3c270b59" name="ac95cbfb481c0d5e6c60d130f3c270b59"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>dplhandle</b> () noexcept</td></tr>
<tr class="memdesc:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">More...</a><br /></td></tr>
<tr class="separator:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">More...</a><br /></td></tr>
<tr class="separator:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">More...</a><br /></td></tr>
<tr class="separator:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">More...</a><br /></td></tr>
<tr class="separator:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <a href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">More...</a><br /></td></tr>
<tr class="separator:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <a href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">More...</a><br /></td></tr>
<tr class="separator:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a> () const</td></tr>
<tr class="memdesc:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates and returns a new object handle. <a href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">More...</a><br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h)</td></tr>
<tr class="memdesc:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates an object handle and sets a new object handle. <a href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">More...</a><br /></td></tr>
<tr class="separator:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a3c19a87b4ff646d9e87524feac4e41b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__hash.html#a3c19a87b4ff646d9e87524feac4e41b5">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:a3c19a87b4ff646d9e87524feac4e41b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the hash context. <a href="classwinstd_1_1crypt__hash.html#a3c19a87b4ff646d9e87524feac4e41b5">More...</a><br /></td></tr>
<tr class="separator:a3c19a87b4ff646d9e87524feac4e41b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac83439d59f00b673ae3f584e5452cdcb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__hash.html#ac83439d59f00b673ae3f584e5452cdcb">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept override</td></tr>
<tr class="memdesc:ac83439d59f00b673ae3f584e5452cdcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the hash context. <a href="classwinstd_1_1crypt__hash.html#ac83439d59f00b673ae3f584e5452cdcb">More...</a><br /></td></tr>
<tr class="separator:ac83439d59f00b673ae3f584e5452cdcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0094309e30d7780908b261c53e5a07d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept=0</td></tr>
<tr class="memdesc:aa0094309e30d7780908b261c53e5a07d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object handle duplication. <a href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">More...</a><br /></td></tr>
<tr class="separator:aa0094309e30d7780908b261c53e5a07d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef HCRYPTHASH&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const HCRYPTHASH&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><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 >HCRYPTHASH wrapper class. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a7c688405c14799681018e0dfc8b51264" name="a7c688405c14799681018e0dfc8b51264"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c688405c14799681018e0dfc8b51264">&#9670;&nbsp;</a></span>~crypt_hash()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::crypt_hash::~crypt_hash </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the hash context. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379917.aspx">CryptDestroyHash function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aee19825d23e4f0325e95c689b7dc9364" name="aee19825d23e4f0325e95c689b7dc9364"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee19825d23e4f0325e95c689b7dc9364">&#9670;&nbsp;</a></span>create()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::crypt_hash::create </td>
<td>(</td>
<td class="paramtype">_In_ HCRYPTPROV&#160;</td>
<td class="paramname"><em>hProv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ ALG_ID&#160;</td>
<td class="paramname"><em>Algid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ HCRYPTKEY&#160;</td>
<td class="paramname"><em>hKey</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ DWORD&#160;</td>
<td class="paramname"><em>dwFlags</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates the hash context. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>true when creation succeeds;</li>
<li>false when creation fails. For extended error information, call <code>GetLastError()</code>.</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379908.aspx">CryptCreateHash function</a> </dd></dl>
</div>
</div>
<a id="ac83439d59f00b673ae3f584e5452cdcb" name="ac83439d59f00b673ae3f584e5452cdcb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac83439d59f00b673ae3f584e5452cdcb">&#9670;&nbsp;</a></span>duplicate_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> winstd::crypt_hash::duplicate_internal </td>
<td>(</td>
<td class="paramtype">_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Duplicates the hash context. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Object handle of existing hash context</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Duplicated hash context handle</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379919.aspx">CryptDuplicateHash function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a>.</p>
</div>
</div>
<a id="a3c19a87b4ff646d9e87524feac4e41b5" name="a3c19a87b4ff646d9e87524feac4e41b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c19a87b4ff646d9e87524feac4e41b5">&#9670;&nbsp;</a></span>free_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void winstd::crypt_hash::free_internal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the hash context. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379917.aspx">CryptDestroyHash function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; HCRYPTHASH, INVAL &gt;</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_crypt_8h_source.html">Crypt.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,120 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1crypt__key.html">crypt_key</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::crypt_key Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a>(_In_opt_ handle_type h)</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html#a36bfe476dc4785ac005e4e4305aa360e">create_exp1</a>(_In_ HCRYPTPROV hProv, _In_ DWORD dwKeySpec)</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html#a31e237167b5831c663370902705b243d">derive</a>(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_ HCRYPTHASH hBaseData, _In_ DWORD dwFlags) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac95cbfb481c0d5e6c60d130f3c270b59">dplhandle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html#ac3babcd9f0cf2fca9922437e47f644d7">duplicate_internal</a>(_In_ handle_type h) const noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html#acf2f2ad35dd7602adcdeef17f605e391">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html#a29bd17cc076234a9ed86bec0f808e920">generate</a>(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_ DWORD dwFlags) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html#a838eb6fc602988725a1e0c9747de5e76">import</a>(_In_ HCRYPTPROV hProv, __in_bcount(dwDataLen) LPCBYTE pbData, _In_ DWORD dwDataLen, _In_ HCRYPTKEY hPubKey, _In_ DWORD dwFlags) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html#aad8c23f4cc013bba01347ee482c931a6">import_public</a>(_In_ HCRYPTPROV hCryptProv, _In_ DWORD dwCertEncodingType, _In_ PCERT_PUBLIC_KEY_INFO pInfo) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">handle&lt; HCRYPTKEY, INVAL &gt;::operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html#a396a4af75fd99c896757679a890e6e29">~crypt_key</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,589 @@
<!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: winstd::crypt_key Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1crypt__key.html">crypt_key</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1crypt__key-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::crypt_key Class Reference<div class="ingroups"><a class="el" href="group___win_std_crypto_a_p_i.html">Cryptography API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>HCRYPTKEY wrapper class.
<a href="classwinstd_1_1crypt__key.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">Crypt.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::crypt_key:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1crypt__key.png" usemap="#winstd::crypt_5Fkey_map" alt=""/>
<map id="winstd::crypt_5Fkey_map" name="winstd::crypt_5Fkey_map">
<area href="classwinstd_1_1dplhandle.html" alt="winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;" shape="rect" coords="0,56,247,80"/>
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; HCRYPTKEY, INVAL &gt;" shape="rect" coords="0,0,247,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a396a4af75fd99c896757679a890e6e29"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__key.html#a396a4af75fd99c896757679a890e6e29">~crypt_key</a> ()</td></tr>
<tr class="memdesc:a396a4af75fd99c896757679a890e6e29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the key. <a href="classwinstd_1_1crypt__key.html#a396a4af75fd99c896757679a890e6e29">More...</a><br /></td></tr>
<tr class="separator:a396a4af75fd99c896757679a890e6e29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29bd17cc076234a9ed86bec0f808e920"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__key.html#a29bd17cc076234a9ed86bec0f808e920">generate</a> (_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_ DWORD dwFlags) noexcept</td></tr>
<tr class="memdesc:a29bd17cc076234a9ed86bec0f808e920"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates the key. <a href="classwinstd_1_1crypt__key.html#a29bd17cc076234a9ed86bec0f808e920">More...</a><br /></td></tr>
<tr class="separator:a29bd17cc076234a9ed86bec0f808e920"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a838eb6fc602988725a1e0c9747de5e76"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__key.html#a838eb6fc602988725a1e0c9747de5e76">import</a> (_In_ HCRYPTPROV hProv, __in_bcount(dwDataLen) LPCBYTE pbData, _In_ DWORD dwDataLen, _In_ HCRYPTKEY hPubKey, _In_ DWORD dwFlags) noexcept</td></tr>
<tr class="memdesc:a838eb6fc602988725a1e0c9747de5e76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imports the key. <a href="classwinstd_1_1crypt__key.html#a838eb6fc602988725a1e0c9747de5e76">More...</a><br /></td></tr>
<tr class="separator:a838eb6fc602988725a1e0c9747de5e76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad8c23f4cc013bba01347ee482c931a6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__key.html#aad8c23f4cc013bba01347ee482c931a6">import_public</a> (_In_ HCRYPTPROV hCryptProv, _In_ DWORD dwCertEncodingType, _In_ PCERT_PUBLIC_KEY_INFO pInfo) noexcept</td></tr>
<tr class="memdesc:aad8c23f4cc013bba01347ee482c931a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Imports the public key. <a href="classwinstd_1_1crypt__key.html#aad8c23f4cc013bba01347ee482c931a6">More...</a><br /></td></tr>
<tr class="separator:aad8c23f4cc013bba01347ee482c931a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31e237167b5831c663370902705b243d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__key.html#a31e237167b5831c663370902705b243d">derive</a> (_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_ HCRYPTHASH hBaseData, _In_ DWORD dwFlags) noexcept</td></tr>
<tr class="memdesc:a31e237167b5831c663370902705b243d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates cryptographic session keys derived from a base data value. <a href="classwinstd_1_1crypt__key.html#a31e237167b5831c663370902705b243d">More...</a><br /></td></tr>
<tr class="separator:a31e237167b5831c663370902705b243d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36bfe476dc4785ac005e4e4305aa360e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__key.html#a36bfe476dc4785ac005e4e4305aa360e">create_exp1</a> (_In_ HCRYPTPROV hProv, _In_ DWORD dwKeySpec)</td></tr>
<tr class="memdesc:a36bfe476dc4785ac005e4e4305aa360e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates Exponent-of-one key. <a href="classwinstd_1_1crypt__key.html#a36bfe476dc4785ac005e4e4305aa360e">More...</a><br /></td></tr>
<tr class="separator:a36bfe476dc4785ac005e4e4305aa360e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a></td></tr>
<tr class="memitem:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a id="ac95cbfb481c0d5e6c60d130f3c270b59" name="ac95cbfb481c0d5e6c60d130f3c270b59"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>dplhandle</b> () noexcept</td></tr>
<tr class="memdesc:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">More...</a><br /></td></tr>
<tr class="separator:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">More...</a><br /></td></tr>
<tr class="separator:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">More...</a><br /></td></tr>
<tr class="separator:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">More...</a><br /></td></tr>
<tr class="separator:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <a href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">More...</a><br /></td></tr>
<tr class="separator:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <a href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">More...</a><br /></td></tr>
<tr class="separator:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a> () const</td></tr>
<tr class="memdesc:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates and returns a new object handle. <a href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">More...</a><br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h)</td></tr>
<tr class="memdesc:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates an object handle and sets a new object handle. <a href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">More...</a><br /></td></tr>
<tr class="separator:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:acf2f2ad35dd7602adcdeef17f605e391"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__key.html#acf2f2ad35dd7602adcdeef17f605e391">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:acf2f2ad35dd7602adcdeef17f605e391"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the key. <a href="classwinstd_1_1crypt__key.html#acf2f2ad35dd7602adcdeef17f605e391">More...</a><br /></td></tr>
<tr class="separator:acf2f2ad35dd7602adcdeef17f605e391"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3babcd9f0cf2fca9922437e47f644d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__key.html#ac3babcd9f0cf2fca9922437e47f644d7">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept override</td></tr>
<tr class="memdesc:ac3babcd9f0cf2fca9922437e47f644d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the key. <a href="classwinstd_1_1crypt__key.html#ac3babcd9f0cf2fca9922437e47f644d7">More...</a><br /></td></tr>
<tr class="separator:ac3babcd9f0cf2fca9922437e47f644d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0094309e30d7780908b261c53e5a07d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept=0</td></tr>
<tr class="memdesc:aa0094309e30d7780908b261c53e5a07d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object handle duplication. <a href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">More...</a><br /></td></tr>
<tr class="separator:aa0094309e30d7780908b261c53e5a07d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef HCRYPTKEY&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const HCRYPTKEY&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><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 >HCRYPTKEY wrapper class. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a396a4af75fd99c896757679a890e6e29" name="a396a4af75fd99c896757679a890e6e29"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a396a4af75fd99c896757679a890e6e29">&#9670;&nbsp;</a></span>~crypt_key()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::crypt_key::~crypt_key </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the key. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379918.aspx">CryptDestroyKey function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a36bfe476dc4785ac005e4e4305aa360e" name="a36bfe476dc4785ac005e4e4305aa360e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36bfe476dc4785ac005e4e4305aa360e">&#9670;&nbsp;</a></span>create_exp1()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::crypt_key::create_exp1 </td>
<td>(</td>
<td class="paramtype">_In_ HCRYPTPROV&#160;</td>
<td class="paramname"><em>hProv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwKeySpec</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates Exponent-of-one key. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://support.microsoft.com/en-us/kb/228786">How to export and import plain text session keys by using CryptoAPI</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">hProv</td><td>Handle of cryptographics provider to use </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dwKeySpec</td><td>Key specification (<code>AT_KEYEXCHANGE</code> or <code>AT_SIGNATURE</code>) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a31e237167b5831c663370902705b243d" name="a31e237167b5831c663370902705b243d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a31e237167b5831c663370902705b243d">&#9670;&nbsp;</a></span>derive()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::crypt_key::derive </td>
<td>(</td>
<td class="paramtype">_In_ HCRYPTPROV&#160;</td>
<td class="paramname"><em>hProv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ ALG_ID&#160;</td>
<td class="paramname"><em>Algid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ HCRYPTHASH&#160;</td>
<td class="paramname"><em>hBaseData</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwFlags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Generates cryptographic session keys derived from a base data value. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379916.aspx">CryptDeriveKey function</a> </dd></dl>
</div>
</div>
<a id="ac3babcd9f0cf2fca9922437e47f644d7" name="ac3babcd9f0cf2fca9922437e47f644d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3babcd9f0cf2fca9922437e47f644d7">&#9670;&nbsp;</a></span>duplicate_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> winstd::crypt_key::duplicate_internal </td>
<td>(</td>
<td class="paramtype">_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Duplicates the key. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Object handle of existing key</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Duplicated key handle</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379920.aspx">CryptDuplicateKey function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a>.</p>
</div>
</div>
<a id="acf2f2ad35dd7602adcdeef17f605e391" name="acf2f2ad35dd7602adcdeef17f605e391"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf2f2ad35dd7602adcdeef17f605e391">&#9670;&nbsp;</a></span>free_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void winstd::crypt_key::free_internal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the key. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379918.aspx">CryptDestroyKey function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; HCRYPTKEY, INVAL &gt;</a>.</p>
</div>
</div>
<a id="a29bd17cc076234a9ed86bec0f808e920" name="a29bd17cc076234a9ed86bec0f808e920"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29bd17cc076234a9ed86bec0f808e920">&#9670;&nbsp;</a></span>generate()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::crypt_key::generate </td>
<td>(</td>
<td class="paramtype">_In_ HCRYPTPROV&#160;</td>
<td class="paramname"><em>hProv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ ALG_ID&#160;</td>
<td class="paramname"><em>Algid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwFlags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Generates the key. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379941.aspx">CryptGenKey function</a> </dd></dl>
</div>
</div>
<a id="a838eb6fc602988725a1e0c9747de5e76" name="a838eb6fc602988725a1e0c9747de5e76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a838eb6fc602988725a1e0c9747de5e76">&#9670;&nbsp;</a></span>import()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::crypt_key::import </td>
<td>(</td>
<td class="paramtype">_In_ HCRYPTPROV&#160;</td>
<td class="paramname"><em>hProv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">__in_bcount(dwDataLen) LPCBYTE&#160;</td>
<td class="paramname"><em>pbData</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwDataLen</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ HCRYPTKEY&#160;</td>
<td class="paramname"><em>hPubKey</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwFlags</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Imports the key. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa380207.aspx">CryptImportKey function</a> </dd></dl>
</div>
</div>
<a id="aad8c23f4cc013bba01347ee482c931a6" name="aad8c23f4cc013bba01347ee482c931a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad8c23f4cc013bba01347ee482c931a6">&#9670;&nbsp;</a></span>import_public()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::crypt_key::import_public </td>
<td>(</td>
<td class="paramtype">_In_ HCRYPTPROV&#160;</td>
<td class="paramname"><em>hCryptProv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwCertEncodingType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ PCERT_PUBLIC_KEY_INFO&#160;</td>
<td class="paramname"><em>pInfo</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Imports the public key. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa380209.aspx">CryptImportPublicKeyInfo function</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_crypt_8h_source.html">Crypt.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,107 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1crypt__prov.html">crypt_prov</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::crypt_prov Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1crypt__prov.html">winstd::crypt_prov</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1crypt__prov.html#ae5be9fe3991b004f249d685a9932a0db">create</a>(_In_opt_z_ LPCTSTR szContainer, _In_opt_z_ LPCTSTR szProvider, _In_ DWORD dwProvType, _In_ DWORD dwFlags=0) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__prov.html">winstd::crypt_prov</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1crypt__prov.html#aa351d2dbc42daf51dddcf847fd95c39f">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__prov.html">winstd::crypt_prov</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1crypt__prov.html#a91c1f3d10b03ef1b5d1e1da029060289">~crypt_prov</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1crypt__prov.html">winstd::crypt_prov</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,315 @@
<!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: winstd::crypt_prov Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1crypt__prov.html">crypt_prov</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1crypt__prov-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::crypt_prov Class Reference<div class="ingroups"><a class="el" href="group___win_std_crypto_a_p_i.html">Cryptography API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>HCRYPTPROV wrapper class.
<a href="classwinstd_1_1crypt__prov.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">Crypt.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::crypt_prov:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1crypt__prov.png" usemap="#winstd::crypt_5Fprov_map" alt=""/>
<map id="winstd::crypt_5Fprov_map" name="winstd::crypt_5Fprov_map">
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; HCRYPTPROV, NULL &gt;" shape="rect" coords="0,0,240,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a91c1f3d10b03ef1b5d1e1da029060289"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__prov.html#a91c1f3d10b03ef1b5d1e1da029060289">~crypt_prov</a> ()</td></tr>
<tr class="memdesc:a91c1f3d10b03ef1b5d1e1da029060289"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases the cryptographic context. <a href="classwinstd_1_1crypt__prov.html#a91c1f3d10b03ef1b5d1e1da029060289">More...</a><br /></td></tr>
<tr class="separator:a91c1f3d10b03ef1b5d1e1da029060289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5be9fe3991b004f249d685a9932a0db"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__prov.html#ae5be9fe3991b004f249d685a9932a0db">create</a> (_In_opt_z_ LPCTSTR szContainer, _In_opt_z_ LPCTSTR szProvider, _In_ DWORD dwProvType, _In_ DWORD dwFlags=0) noexcept</td></tr>
<tr class="memdesc:ae5be9fe3991b004f249d685a9932a0db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acquires the cryptographic context. <a href="classwinstd_1_1crypt__prov.html#ae5be9fe3991b004f249d685a9932a0db">More...</a><br /></td></tr>
<tr class="separator:ae5be9fe3991b004f249d685a9932a0db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:aa351d2dbc42daf51dddcf847fd95c39f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1crypt__prov.html#aa351d2dbc42daf51dddcf847fd95c39f">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:aa351d2dbc42daf51dddcf847fd95c39f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases the cryptographic context. <a href="classwinstd_1_1crypt__prov.html#aa351d2dbc42daf51dddcf847fd95c39f">More...</a><br /></td></tr>
<tr class="separator:aa351d2dbc42daf51dddcf847fd95c39f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef HCRYPTPROV&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const HCRYPTPROV&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><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 >HCRYPTPROV wrapper class. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a91c1f3d10b03ef1b5d1e1da029060289" name="a91c1f3d10b03ef1b5d1e1da029060289"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91c1f3d10b03ef1b5d1e1da029060289">&#9670;&nbsp;</a></span>~crypt_prov()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::crypt_prov::~crypt_prov </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Releases the cryptographic context. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa380268.aspx">CryptReleaseContext function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ae5be9fe3991b004f249d685a9932a0db" name="ae5be9fe3991b004f249d685a9932a0db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5be9fe3991b004f249d685a9932a0db">&#9670;&nbsp;</a></span>create()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::crypt_prov::create </td>
<td>(</td>
<td class="paramtype">_In_opt_z_ LPCTSTR&#160;</td>
<td class="paramname"><em>szContainer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_z_ LPCTSTR&#160;</td>
<td class="paramname"><em>szProvider</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwProvType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwFlags</em> = <code>0</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Acquires the cryptographic context. </p>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>true when creation succeeds;</li>
<li>false when creation fails. For extended error information, call <code>GetLastError()</code>.</li>
</ul>
</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379886.aspx">CryptAcquireContext function</a> </dd></dl>
</div>
</div>
<a id="aa351d2dbc42daf51dddcf847fd95c39f" name="aa351d2dbc42daf51dddcf847fd95c39f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa351d2dbc42daf51dddcf847fd95c39f">&#9670;&nbsp;</a></span>free_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void winstd::crypt_prov::free_internal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Releases the cryptographic context. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa380268.aspx">CryptReleaseContext function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; HCRYPTPROV, NULL &gt;</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_crypt_8h_source.html">Crypt.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

View File

@ -0,0 +1,92 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1data__blob.html">data_blob</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::data_blob Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1data__blob.html">winstd::data_blob</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html#a498ffe8fa857c8fee0c68803049e9528">data</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html">winstd::data_blob</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html#a3cb5b805288c8d74cd103cac3acf10bf">data</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html">winstd::data_blob</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html#a5bed8028538f9688eea5dc8353ff69d8">data_blob</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html">winstd::data_blob</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html#a962f93ced2fc8fb8721da62d1d80fb0a">data_blob</a>(_In_count_(size) BYTE *data, _In_ DWORD size) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html">winstd::data_blob</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html#a4ffce3ac1f997d6268c9e2c1cb925b76">data_blob</a>(_In_ const DATA_BLOB &amp;other)</td><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html">winstd::data_blob</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html#a1bb57925e36a5c6727077f39adfbd146">data_blob</a>(_Inout_ data_blob &amp;&amp;other) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html">winstd::data_blob</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html#a2c1806cf29475d732fe0cdf14f930d48">operator=</a>(_In_ const DATA_BLOB &amp;other)</td><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html">winstd::data_blob</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html#a3c3c62cee228c581c6eabb37e5cb526b">operator=</a>(_Inout_ data_blob &amp;&amp;other) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html">winstd::data_blob</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html#ab2ad06e271e8503d7158408773054d23">size</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html">winstd::data_blob</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html#a1c79df4fa5413536c745258d09e69599">~data_blob</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1data__blob.html">winstd::data_blob</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,142 @@
<!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: winstd::data_blob Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1data__blob.html">data_blob</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classwinstd_1_1data__blob-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::data_blob Class Reference<div class="ingroups"><a class="el" href="group___win_std_crypto_a_p_i.html">Cryptography API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>DATA_BLOB wrapper class.
<a href="classwinstd_1_1data__blob.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">Crypt.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::data_blob:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1data__blob.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a5bed8028538f9688eea5dc8353ff69d8"><td class="memItemLeft" align="right" valign="top"><a id="a5bed8028538f9688eea5dc8353ff69d8" name="a5bed8028538f9688eea5dc8353ff69d8"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>data_blob</b> () noexcept</td></tr>
<tr class="memdesc:a5bed8028538f9688eea5dc8353ff69d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes an empty BLOB. <br /></td></tr>
<tr class="separator:a5bed8028538f9688eea5dc8353ff69d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a962f93ced2fc8fb8721da62d1d80fb0a"><td class="memItemLeft" align="right" valign="top"><a id="a962f93ced2fc8fb8721da62d1d80fb0a" name="a962f93ced2fc8fb8721da62d1d80fb0a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>data_blob</b> (_In_count_(<a class="el" href="classwinstd_1_1data__blob.html#ab2ad06e271e8503d7158408773054d23">size</a>) BYTE *<a class="el" href="classwinstd_1_1data__blob.html#a498ffe8fa857c8fee0c68803049e9528">data</a>, _In_ DWORD <a class="el" href="classwinstd_1_1data__blob.html#ab2ad06e271e8503d7158408773054d23">size</a>) noexcept</td></tr>
<tr class="memdesc:a962f93ced2fc8fb8721da62d1d80fb0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a BLOB from existing data. <br /></td></tr>
<tr class="separator:a962f93ced2fc8fb8721da62d1d80fb0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ffce3ac1f997d6268c9e2c1cb925b76"><td class="memItemLeft" align="right" valign="top"><a id="a4ffce3ac1f997d6268c9e2c1cb925b76" name="a4ffce3ac1f997d6268c9e2c1cb925b76"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>data_blob</b> (_In_ const DATA_BLOB &amp;other)</td></tr>
<tr class="memdesc:a4ffce3ac1f997d6268c9e2c1cb925b76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate an existing BLOB. <br /></td></tr>
<tr class="separator:a4ffce3ac1f997d6268c9e2c1cb925b76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1bb57925e36a5c6727077f39adfbd146"><td class="memItemLeft" align="right" valign="top"><a id="a1bb57925e36a5c6727077f39adfbd146" name="a1bb57925e36a5c6727077f39adfbd146"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>data_blob</b> (_Inout_ <a class="el" href="classwinstd_1_1data__blob.html">data_blob</a> &amp;&amp;other) noexcept</td></tr>
<tr class="memdesc:a1bb57925e36a5c6727077f39adfbd146"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move an existing BLOB. <br /></td></tr>
<tr class="separator:a1bb57925e36a5c6727077f39adfbd146"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c79df4fa5413536c745258d09e69599"><td class="memItemLeft" align="right" valign="top"><a id="a1c79df4fa5413536c745258d09e69599" name="a1c79df4fa5413536c745258d09e69599"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><b>~data_blob</b> ()</td></tr>
<tr class="memdesc:a1c79df4fa5413536c745258d09e69599"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the BLOB. <br /></td></tr>
<tr class="separator:a1c79df4fa5413536c745258d09e69599"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c1806cf29475d732fe0cdf14f930d48"><td class="memItemLeft" align="right" valign="top"><a id="a2c1806cf29475d732fe0cdf14f930d48" name="a2c1806cf29475d732fe0cdf14f930d48"></a>
<a class="el" href="classwinstd_1_1data__blob.html">data_blob</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (_In_ const DATA_BLOB &amp;other)</td></tr>
<tr class="memdesc:a2c1806cf29475d732fe0cdf14f930d48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy an existing BLOB. <br /></td></tr>
<tr class="separator:a2c1806cf29475d732fe0cdf14f930d48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c3c62cee228c581c6eabb37e5cb526b"><td class="memItemLeft" align="right" valign="top"><a id="a3c3c62cee228c581c6eabb37e5cb526b" name="a3c3c62cee228c581c6eabb37e5cb526b"></a>
<a class="el" href="classwinstd_1_1data__blob.html">data_blob</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (_Inout_ <a class="el" href="classwinstd_1_1data__blob.html">data_blob</a> &amp;&amp;other) noexcept</td></tr>
<tr class="memdesc:a3c3c62cee228c581c6eabb37e5cb526b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move an existing BLOB. <br /></td></tr>
<tr class="separator:a3c3c62cee228c581c6eabb37e5cb526b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2ad06e271e8503d7158408773054d23"><td class="memItemLeft" align="right" valign="top"><a id="ab2ad06e271e8503d7158408773054d23" name="ab2ad06e271e8503d7158408773054d23"></a>
DWORD&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const noexcept</td></tr>
<tr class="memdesc:ab2ad06e271e8503d7158408773054d23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get BLOB size. <br /></td></tr>
<tr class="separator:ab2ad06e271e8503d7158408773054d23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a498ffe8fa857c8fee0c68803049e9528"><td class="memItemLeft" align="right" valign="top"><a id="a498ffe8fa857c8fee0c68803049e9528" name="a498ffe8fa857c8fee0c68803049e9528"></a>
const BYTE *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> () const noexcept</td></tr>
<tr class="memdesc:a498ffe8fa857c8fee0c68803049e9528"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get BLOB buffer. <br /></td></tr>
<tr class="separator:a498ffe8fa857c8fee0c68803049e9528"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cb5b805288c8d74cd103cac3acf10bf"><td class="memItemLeft" align="right" valign="top"><a id="a3cb5b805288c8d74cd103cac3acf10bf" name="a3cb5b805288c8d74cd103cac3acf10bf"></a>
BYTE *&#160;</td><td class="memItemRight" valign="bottom"><b>data</b> () noexcept</td></tr>
<tr class="memdesc:a3cb5b805288c8d74cd103cac3acf10bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get BLOB buffer. <br /></td></tr>
<tr class="separator:a3cb5b805288c8d74cd103cac3acf10bf"><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 >DATA_BLOB wrapper class. </p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_crypt_8h_source.html">Crypt.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

View File

@ -0,0 +1,106 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1dc.html">dc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::dc Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1dc.html">winstd::dc</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1dc.html">winstd::dc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dc.html#ae8c5722935c8a1c3f6a1857679f4563c">~dc</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1dc.html">winstd::dc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

256
classwinstd_1_1dc.html Normal file
View File

@ -0,0 +1,256 @@
<!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: winstd::dc Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1dc.html">dc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1dc-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::dc Class Reference<div class="ingroups"><a class="el" href="group___win_std_gdi_a_p_i.html">GDI API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Device context wrapper class.
<a href="classwinstd_1_1dc.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_g_d_i_8h_source.html">GDI.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::dc:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1dc.png" usemap="#winstd::dc_map" alt=""/>
<map id="winstd::dc_map" name="winstd::dc_map">
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; HDC, NULL &gt;" shape="rect" coords="0,0,182,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae8c5722935c8a1c3f6a1857679f4563c"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dc.html#ae8c5722935c8a1c3f6a1857679f4563c">~dc</a> ()</td></tr>
<tr class="memdesc:ae8c5722935c8a1c3f6a1857679f4563c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the specified device context (DC). <a href="classwinstd_1_1dc.html#ae8c5722935c8a1c3f6a1857679f4563c">More...</a><br /></td></tr>
<tr class="separator:ae8c5722935c8a1c3f6a1857679f4563c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ad3dc9d48645022e7a1adcdb9ea01a557"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:ad3dc9d48645022e7a1adcdb9ea01a557"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the specified device context (DC). <a href="classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557">More...</a><br /></td></tr>
<tr class="separator:ad3dc9d48645022e7a1adcdb9ea01a557"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef HDC&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const HDC&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HDC, NULL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><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 >Device context wrapper class. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ae8c5722935c8a1c3f6a1857679f4563c" name="ae8c5722935c8a1c3f6a1857679f4563c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8c5722935c8a1c3f6a1857679f4563c">&#9670;&nbsp;</a></span>~dc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::dc::~dc </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Deletes the specified device context (DC). </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-deletedc">DeleteDC function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ad3dc9d48645022e7a1adcdb9ea01a557" name="ad3dc9d48645022e7a1adcdb9ea01a557"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3dc9d48645022e7a1adcdb9ea01a557">&#9670;&nbsp;</a></span>free_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void winstd::dc::free_internal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Deletes the specified device context (DC). </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-deletedc">DeleteDC function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; HDC, NULL &gt;</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_g_d_i_8h_source.html">GDI.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

BIN
classwinstd_1_1dc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

View File

@ -0,0 +1,87 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1dc__selector.html">dc_selector</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::dc_selector Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1dc__selector.html">winstd::dc_selector</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dc__selector.html#aea810206b4b8977f45137425af16c2cc">dc_selector</a>(_In_ HDC hdc, _In_ HGDIOBJ h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dc__selector.html">winstd::dc_selector</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3">m_hdc</a></td><td class="entry"><a class="el" href="classwinstd_1_1dc__selector.html">winstd::dc_selector</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e">m_orig</a></td><td class="entry"><a class="el" href="classwinstd_1_1dc__selector.html">winstd::dc_selector</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dc__selector.html#aacb4060094f2c4b1747ffa76455b235d">status</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dc__selector.html">winstd::dc_selector</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dc__selector.html#a6e4daf6736cab31fc696dd3adfe4bcfd">~dc_selector</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1dc__selector.html">winstd::dc_selector</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,214 @@
<!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: winstd::dc_selector Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1dc__selector.html">dc_selector</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classwinstd_1_1dc__selector-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::dc_selector Class Reference<div class="ingroups"><a class="el" href="group___win_std_gdi_a_p_i.html">GDI API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Context scope DC object restorer.
<a href="classwinstd_1_1dc__selector.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_g_d_i_8h_source.html">GDI.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aea810206b4b8977f45137425af16c2cc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dc__selector.html#aea810206b4b8977f45137425af16c2cc">dc_selector</a> (_In_ HDC hdc, _In_ HGDIOBJ h) noexcept</td></tr>
<tr class="memdesc:aea810206b4b8977f45137425af16c2cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selects an object into the specified device context (DC). The new object replaces the previous object of the same type. <a href="classwinstd_1_1dc__selector.html#aea810206b4b8977f45137425af16c2cc">More...</a><br /></td></tr>
<tr class="separator:aea810206b4b8977f45137425af16c2cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e4daf6736cab31fc696dd3adfe4bcfd"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dc__selector.html#a6e4daf6736cab31fc696dd3adfe4bcfd">~dc_selector</a> ()</td></tr>
<tr class="memdesc:a6e4daf6736cab31fc696dd3adfe4bcfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restores original object. <a href="classwinstd_1_1dc__selector.html#a6e4daf6736cab31fc696dd3adfe4bcfd">More...</a><br /></td></tr>
<tr class="separator:a6e4daf6736cab31fc696dd3adfe4bcfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacb4060094f2c4b1747ffa76455b235d"><td class="memItemLeft" align="right" valign="top">HGDIOBJ&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dc__selector.html#aacb4060094f2c4b1747ffa76455b235d">status</a> () const noexcept</td></tr>
<tr class="memdesc:aacb4060094f2c4b1747ffa76455b235d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return result of <code>SelectObject()</code> call. <a href="classwinstd_1_1dc__selector.html#aacb4060094f2c4b1747ffa76455b235d">More...</a><br /></td></tr>
<tr class="separator:aacb4060094f2c4b1747ffa76455b235d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ab2d1223cd41529b6b2c9bb09c34568e3"><td class="memItemLeft" align="right" valign="top"><a id="ab2d1223cd41529b6b2c9bb09c34568e3" name="ab2d1223cd41529b6b2c9bb09c34568e3"></a>
HDC&#160;</td><td class="memItemRight" valign="bottom"><b>m_hdc</b></td></tr>
<tr class="memdesc:ab2d1223cd41529b6b2c9bb09c34568e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">A handle to the device context. <br /></td></tr>
<tr class="separator:ab2d1223cd41529b6b2c9bb09c34568e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa443ed25d281078db2172808e7c74b3e"><td class="memItemLeft" align="right" valign="top"><a id="aa443ed25d281078db2172808e7c74b3e" name="aa443ed25d281078db2172808e7c74b3e"></a>
HGDIOBJ&#160;</td><td class="memItemRight" valign="bottom"><b>m_orig</b></td></tr>
<tr class="memdesc:aa443ed25d281078db2172808e7c74b3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Original object handle. <br /></td></tr>
<tr class="separator:aa443ed25d281078db2172808e7c74b3e"><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 >Context scope DC object restorer. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aea810206b4b8977f45137425af16c2cc" name="aea810206b4b8977f45137425af16c2cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea810206b4b8977f45137425af16c2cc">&#9670;&nbsp;</a></span>dc_selector()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::dc_selector::dc_selector </td>
<td>(</td>
<td class="paramtype">_In_ HDC&#160;</td>
<td class="paramname"><em>hdc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ HGDIOBJ&#160;</td>
<td class="paramname"><em>h</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Selects an object into the specified device context (DC). The new object replaces the previous object of the same type. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-selectobject">SelectObject function</a> </dd></dl>
</div>
</div>
<a id="a6e4daf6736cab31fc696dd3adfe4bcfd" name="a6e4daf6736cab31fc696dd3adfe4bcfd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e4daf6736cab31fc696dd3adfe4bcfd">&#9670;&nbsp;</a></span>~dc_selector()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::dc_selector::~dc_selector </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Restores original object. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-selectobject">SelectObject function</a> </dd></dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aacb4060094f2c4b1747ffa76455b235d" name="aacb4060094f2c4b1747ffa76455b235d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aacb4060094f2c4b1747ffa76455b235d">&#9670;&nbsp;</a></span>status()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">HGDIOBJ winstd::dc_selector::status </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return result of <code>SelectObject()</code> call. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-selectobject">SelectObject function</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_g_d_i_8h_source.html">GDI.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,114 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::dplhandle&lt; T, INVAL &gt; Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a>(_In_opt_ handle_type h)</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac95cbfb481c0d5e6c60d130f3c270b59">dplhandle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">duplicate_internal</a>(_In_ handle_type h) const noexcept=0</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a>() noexcept=0</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">winstd::handle::operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,551 @@
<!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: winstd::dplhandle&lt; T, INVAL &gt; Class Template 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1dplhandle-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::dplhandle&lt; T, INVAL &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group___win_std_sys_handles.html">System Handles</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Base abstract template class to support object handle keeping for objects that support handle duplication.
<a href="classwinstd_1_1dplhandle.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_common_8h_source.html">Common.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::dplhandle&lt; T, INVAL &gt;:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1dplhandle.png" usemap="#winstd::dplhandle_3C_20T_2C_20INVAL_20_3E_map" alt=""/>
<map id="winstd::dplhandle_3C_20T_2C_20INVAL_20_3E_map" name="winstd::dplhandle_3C_20T_2C_20INVAL_20_3E_map">
<area href="classwinstd_1_1handle.html" title="Base abstract template class to support generic object handle keeping." alt="winstd::handle&lt; T, INVAL &gt;" shape="rect" coords="0,0,185,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac95cbfb481c0d5e6c60d130f3c270b59"><td class="memItemLeft" align="right" valign="top"><a id="ac95cbfb481c0d5e6c60d130f3c270b59" name="ac95cbfb481c0d5e6c60d130f3c270b59"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>dplhandle</b> () noexcept</td></tr>
<tr class="memdesc:ac95cbfb481c0d5e6c60d130f3c270b59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:ac95cbfb481c0d5e6c60d130f3c270b59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb2b52f07f8e9f85905fb968c8bfbd62"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:abb2b52f07f8e9f85905fb968c8bfbd62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">More...</a><br /></td></tr>
<tr class="separator:abb2b52f07f8e9f85905fb968c8bfbd62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3acfebc61ea283e7520dc6b5ec6b5af4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a3acfebc61ea283e7520dc6b5ec6b5af4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">More...</a><br /></td></tr>
<tr class="separator:a3acfebc61ea283e7520dc6b5ec6b5af4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69802162f59013066dc30fcfc8089738"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a69802162f59013066dc30fcfc8089738"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">More...</a><br /></td></tr>
<tr class="separator:a69802162f59013066dc30fcfc8089738"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6211e58546daef11a28b0c9a8563e063"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a6211e58546daef11a28b0c9a8563e063"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">More...</a><br /></td></tr>
<tr class="separator:a6211e58546daef11a28b0c9a8563e063"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ad67897459bc81536481a6a1321b302"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a9ad67897459bc81536481a6a1321b302"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <a href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">More...</a><br /></td></tr>
<tr class="separator:a9ad67897459bc81536481a6a1321b302"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfba6b3dca0d5b8511085741d8d32eb6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:abfba6b3dca0d5b8511085741d8d32eb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <a href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">More...</a><br /></td></tr>
<tr class="separator:abfba6b3dca0d5b8511085741d8d32eb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a> () const</td></tr>
<tr class="memdesc:a48e66c8979560019e339867de944a265"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates and returns a new object handle. <a href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">More...</a><br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4812d286ff9f34df62933f77d2c8b659"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h)</td></tr>
<tr class="memdesc:a4812d286ff9f34df62933f77d2c8b659"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates an object handle and sets a new object handle. <a href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">More...</a><br /></td></tr>
<tr class="separator:a4812d286ff9f34df62933f77d2c8b659"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:aa0094309e30d7780908b261c53e5a07d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept=0</td></tr>
<tr class="memdesc:aa0094309e30d7780908b261c53e5a07d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object handle duplication. <a href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">More...</a><br /></td></tr>
<tr class="separator:aa0094309e30d7780908b261c53e5a07d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629 inherit pro_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629 inherit pro_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629 inherit pro_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef T&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">
static const T&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b> = INVAL</td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; T, INVAL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;class T, T INVAL&gt;<br />
class winstd::dplhandle&lt; T, INVAL &gt;</div><p >Base abstract template class to support object handle keeping for objects that support handle duplication. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="abb2b52f07f8e9f85905fb968c8bfbd62" name="abb2b52f07f8e9f85905fb968c8bfbd62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb2b52f07f8e9f85905fb968c8bfbd62">&#9670;&nbsp;</a></span>dplhandle() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , T INVAL&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a>&lt; T, INVAL &gt;::dplhandle </td>
<td>(</td>
<td class="paramtype">_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes a new class instance with an already available object handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Initial object handle value </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a3acfebc61ea283e7520dc6b5ec6b5af4" name="a3acfebc61ea283e7520dc6b5ec6b5af4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3acfebc61ea283e7520dc6b5ec6b5af4">&#9670;&nbsp;</a></span>dplhandle() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , T INVAL&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a>&lt; T, INVAL &gt;::dplhandle </td>
<td>(</td>
<td class="paramtype">_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Copy constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">h</td><td>A reference of another object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a69802162f59013066dc30fcfc8089738" name="a69802162f59013066dc30fcfc8089738"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69802162f59013066dc30fcfc8089738">&#9670;&nbsp;</a></span>dplhandle() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , T INVAL&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a>&lt; T, INVAL &gt;::dplhandle </td>
<td>(</td>
<td class="paramtype">_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">h</td><td>A rvalue reference of another object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4812d286ff9f34df62933f77d2c8b659" name="a4812d286ff9f34df62933f77d2c8b659"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4812d286ff9f34df62933f77d2c8b659">&#9670;&nbsp;</a></span>attach_duplicated()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , T INVAL&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a>&lt; T, INVAL &gt;::attach_duplicated </td>
<td>(</td>
<td class="paramtype">_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Duplicates an object handle and sets a new object handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Object handle of existing object</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>true when duplication succeeds;</li>
<li>false when duplication fails. In case of failure obtaining the extended error information is object type specific (for example: <code>GetLastError()</code>). </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a48e66c8979560019e339867de944a265" name="a48e66c8979560019e339867de944a265"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48e66c8979560019e339867de944a265">&#9670;&nbsp;</a></span>duplicate()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , T INVAL&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a>&lt; T, INVAL &gt;::duplicate </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Duplicates and returns a new object handle. </p>
<dl class="section return"><dt>Returns</dt><dd>Duplicated object handle </dd></dl>
</div>
</div>
<a id="aa0094309e30d7780908b261c53e5a07d" name="aa0094309e30d7780908b261c53e5a07d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0094309e30d7780908b261c53e5a07d">&#9670;&nbsp;</a></span>duplicate_internal()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , T INVAL&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a>&lt; T, INVAL &gt;::duplicate_internal </td>
<td>(</td>
<td class="paramtype">_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Abstract member function that must be implemented by child classes to do the actual object handle duplication. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Object handle of existing object</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Duplicated object handle </dd></dl>
<p>Implemented in <a class="el" href="classwinstd_1_1com__obj.html#a2e16632274f2014e45f3cf593edbf110">winstd::com_obj&lt; T &gt;</a>, <a class="el" href="classwinstd_1_1bstr.html#aea8518f7b0a9303f9e646c133c7d8039">winstd::bstr</a>, <a class="el" href="classwinstd_1_1cert__context.html#ae3740c4c2e9fd7caedfda928add3df0f">winstd::cert_context</a>, <a class="el" href="classwinstd_1_1cert__chain__context.html#a656b1a040b92b732f9d3b2559c663799">winstd::cert_chain_context</a>, <a class="el" href="classwinstd_1_1crypt__hash.html#ac83439d59f00b673ae3f584e5452cdcb">winstd::crypt_hash</a>, <a class="el" href="classwinstd_1_1crypt__key.html#ac3babcd9f0cf2fca9922437e47f644d7">winstd::crypt_key</a>, and <a class="el" href="classwinstd_1_1eap__packet.html#ac217972c25aebfdd300a56ff52ee9112">winstd::eap_packet</a>.</p>
</div>
</div>
<a id="a9ad67897459bc81536481a6a1321b302" name="a9ad67897459bc81536481a6a1321b302"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ad67897459bc81536481a6a1321b302">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , T INVAL&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp; <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a>&lt; T, INVAL &gt;::operator= </td>
<td>(</td>
<td class="paramtype">_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Duplicates the object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a6211e58546daef11a28b0c9a8563e063" name="a6211e58546daef11a28b0c9a8563e063"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6211e58546daef11a28b0c9a8563e063">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , T INVAL&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp; <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a>&lt; T, INVAL &gt;::operator= </td>
<td>(</td>
<td class="paramtype">_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Attaches already available object handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Object handle value </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="abfba6b3dca0d5b8511085741d8d32eb6" name="abfba6b3dca0d5b8511085741d8d32eb6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfba6b3dca0d5b8511085741d8d32eb6">&#9670;&nbsp;</a></span>operator=() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T , T INVAL&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp; <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a>&lt; T, INVAL &gt;::operator= </td>
<td>(</td>
<td class="paramtype">_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Moves the object. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">h</td><td>A rvalue reference of another object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_common_8h_source.html">Common.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B

View File

@ -0,0 +1,89 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1eap__attr.html">eap_attr</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::eap_attr Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1eap__attr.html">winstd::eap_attr</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html#acd0112e3997ba52c54a905360b4af5e6">create_ms_mppe_key</a>(_In_ BYTE bVendorType, _In_count_(nKeySize) LPCBYTE pbKey, _In_ BYTE nKeySize)</td><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html">winstd::eap_attr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html#a015a82d7f91679f76ca590bbdabc04c1">eap_attr</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html">winstd::eap_attr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html#a472e8b06aaef71131a37b3c48d1a9b4f">eap_attr</a>(_In_ const EAP_ATTRIBUTE &amp;a)</td><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html">winstd::eap_attr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html#a1e59dbfc56d8c9450fd27a6d7e049ff1">eap_attr</a>(_Inout_ eap_attr &amp;&amp;a) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html">winstd::eap_attr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html#af82d813fa541bd218afb672a8886c287">operator=</a>(_In_ const EAP_ATTRIBUTE &amp;a)</td><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html">winstd::eap_attr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html#a7ad2a3d553168173588261656a151c30">operator=</a>(_Inout_ eap_attr &amp;&amp;a) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html">winstd::eap_attr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html#a085d6ade88a42ba69cf128a97b7c9b0d">~eap_attr</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1eap__attr.html">winstd::eap_attr</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,179 @@
<!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: winstd::eap_attr Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1eap__attr.html">eap_attr</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classwinstd_1_1eap__attr-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::eap_attr Class Reference<div class="ingroups"><a class="el" href="group___win_std_e_a_p_a_p_i.html">Extensible Authentication Protocol API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>EAP_ATTRIBUTE wrapper class.
<a href="classwinstd_1_1eap__attr.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_e_a_p_8h_source.html">EAP.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::eap_attr:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1eap__attr.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a015a82d7f91679f76ca590bbdabc04c1"><td class="memItemLeft" align="right" valign="top"><a id="a015a82d7f91679f76ca590bbdabc04c1" name="a015a82d7f91679f76ca590bbdabc04c1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>eap_attr</b> () noexcept</td></tr>
<tr class="memdesc:a015a82d7f91679f76ca590bbdabc04c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new EAP attribute set to eatReserved. <br /></td></tr>
<tr class="separator:a015a82d7f91679f76ca590bbdabc04c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a472e8b06aaef71131a37b3c48d1a9b4f"><td class="memItemLeft" align="right" valign="top"><a id="a472e8b06aaef71131a37b3c48d1a9b4f" name="a472e8b06aaef71131a37b3c48d1a9b4f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>eap_attr</b> (_In_ const EAP_ATTRIBUTE &amp;a)</td></tr>
<tr class="memdesc:a472e8b06aaef71131a37b3c48d1a9b4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies an existing EAP attribute. <br /></td></tr>
<tr class="separator:a472e8b06aaef71131a37b3c48d1a9b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e59dbfc56d8c9450fd27a6d7e049ff1"><td class="memItemLeft" align="right" valign="top"><a id="a1e59dbfc56d8c9450fd27a6d7e049ff1" name="a1e59dbfc56d8c9450fd27a6d7e049ff1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>eap_attr</b> (_Inout_ <a class="el" href="classwinstd_1_1eap__attr.html">eap_attr</a> &amp;&amp;a) noexcept</td></tr>
<tr class="memdesc:a1e59dbfc56d8c9450fd27a6d7e049ff1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves an existing EAP attribute. <br /></td></tr>
<tr class="separator:a1e59dbfc56d8c9450fd27a6d7e049ff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a085d6ade88a42ba69cf128a97b7c9b0d"><td class="memItemLeft" align="right" valign="top"><a id="a085d6ade88a42ba69cf128a97b7c9b0d" name="a085d6ade88a42ba69cf128a97b7c9b0d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>~eap_attr</b> ()</td></tr>
<tr class="memdesc:a085d6ade88a42ba69cf128a97b7c9b0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the EAP attribute. <br /></td></tr>
<tr class="separator:a085d6ade88a42ba69cf128a97b7c9b0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af82d813fa541bd218afb672a8886c287"><td class="memItemLeft" align="right" valign="top"><a id="af82d813fa541bd218afb672a8886c287" name="af82d813fa541bd218afb672a8886c287"></a>
<a class="el" href="classwinstd_1_1eap__attr.html">eap_attr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (_In_ const EAP_ATTRIBUTE &amp;a)</td></tr>
<tr class="memdesc:af82d813fa541bd218afb672a8886c287"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies an existing EAP attribute. <br /></td></tr>
<tr class="separator:af82d813fa541bd218afb672a8886c287"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ad2a3d553168173588261656a151c30"><td class="memItemLeft" align="right" valign="top"><a id="a7ad2a3d553168173588261656a151c30" name="a7ad2a3d553168173588261656a151c30"></a>
<a class="el" href="classwinstd_1_1eap__attr.html">eap_attr</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (_Inout_ <a class="el" href="classwinstd_1_1eap__attr.html">eap_attr</a> &amp;&amp;a) noexcept</td></tr>
<tr class="memdesc:a7ad2a3d553168173588261656a151c30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves an existing EAP attribute. <br /></td></tr>
<tr class="separator:a7ad2a3d553168173588261656a151c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd0112e3997ba52c54a905360b4af5e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1eap__attr.html#acd0112e3997ba52c54a905360b4af5e6">create_ms_mppe_key</a> (_In_ BYTE bVendorType, _In_count_(nKeySize) LPCBYTE pbKey, _In_ BYTE nKeySize)</td></tr>
<tr class="memdesc:acd0112e3997ba52c54a905360b4af5e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates MS-MPPE-Send-Key or MS-MPPE-Recv-Key. <a href="classwinstd_1_1eap__attr.html#acd0112e3997ba52c54a905360b4af5e6">More...</a><br /></td></tr>
<tr class="separator:acd0112e3997ba52c54a905360b4af5e6"><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 >EAP_ATTRIBUTE wrapper class. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="acd0112e3997ba52c54a905360b4af5e6" name="acd0112e3997ba52c54a905360b4af5e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd0112e3997ba52c54a905360b4af5e6">&#9670;&nbsp;</a></span>create_ms_mppe_key()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void winstd::eap_attr::create_ms_mppe_key </td>
<td>(</td>
<td class="paramtype">_In_ BYTE&#160;</td>
<td class="paramname"><em>bVendorType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_count_(nKeySize) LPCBYTE&#160;</td>
<td class="paramname"><em>pbKey</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ BYTE&#160;</td>
<td class="paramname"><em>nKeySize</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates MS-MPPE-Send-Key or MS-MPPE-Recv-Key. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://tools.ietf.org/html/rfc2865#section-5.26">RADIUS Vendor-Specific</a> </dd>
<dd>
<a href="https://tools.ietf.org/html/rfc2548#section-2.4.2">MS-MPPE-Send-Key</a> </dd>
<dd>
<a href="https://tools.ietf.org/html/rfc2548#section-2.4.3">MS-MPPE-Recv-Key</a> </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_e_a_p_8h_source.html">EAP.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

View File

@ -0,0 +1,86 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::eap_method_info_array Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1eap__method__info__array.html">winstd::eap_method_info_array</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__method__info__array.html#a3dc5d1571c9e85dedd3dd3d6626947b7">eap_method_info_array</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__method__info__array.html">winstd::eap_method_info_array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__method__info__array.html#a9d1274021845f1c4bd115a9fa1a0bf51">eap_method_info_array</a>(_Inout_ eap_method_info_array &amp;&amp;other) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__method__info__array.html">winstd::eap_method_info_array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__method__info__array.html#a3619fce0e5d8a683ea5b704f24ff38a7">operator=</a>(_Inout_ eap_method_info_array &amp;&amp;other) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__method__info__array.html">winstd::eap_method_info_array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__method__info__array.html#a6870644e66359b0448094a193ef0b4b8">~eap_method_info_array</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1eap__method__info__array.html">winstd::eap_method_info_array</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,186 @@
<!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: winstd::eap_method_info_array Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classwinstd_1_1eap__method__info__array-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::eap_method_info_array Class Reference<div class="ingroups"><a class="el" href="group___win_std_e_a_p_a_p_i.html">Extensible Authentication Protocol API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>EAP_METHOD_INFO_ARRAY wrapper class.
<a href="classwinstd_1_1eap__method__info__array.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_e_a_p_8h_source.html">EAP.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::eap_method_info_array:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1eap__method__info__array.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3dc5d1571c9e85dedd3dd3d6626947b7"><td class="memItemLeft" align="right" valign="top"><a id="a3dc5d1571c9e85dedd3dd3d6626947b7" name="a3dc5d1571c9e85dedd3dd3d6626947b7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>eap_method_info_array</b> () noexcept</td></tr>
<tr class="memdesc:a3dc5d1571c9e85dedd3dd3d6626947b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an empty array. <br /></td></tr>
<tr class="separator:a3dc5d1571c9e85dedd3dd3d6626947b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d1274021845f1c4bd115a9fa1a0bf51"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1eap__method__info__array.html#a9d1274021845f1c4bd115a9fa1a0bf51">eap_method_info_array</a> (_Inout_ <a class="el" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a> &amp;&amp;other) noexcept</td></tr>
<tr class="memdesc:a9d1274021845f1c4bd115a9fa1a0bf51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1eap__method__info__array.html#a9d1274021845f1c4bd115a9fa1a0bf51">More...</a><br /></td></tr>
<tr class="separator:a9d1274021845f1c4bd115a9fa1a0bf51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6870644e66359b0448094a193ef0b4b8"><td class="memItemLeft" align="right" valign="top"><a id="a6870644e66359b0448094a193ef0b4b8" name="a6870644e66359b0448094a193ef0b4b8"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>~eap_method_info_array</b> ()</td></tr>
<tr class="memdesc:a6870644e66359b0448094a193ef0b4b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a6870644e66359b0448094a193ef0b4b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3619fce0e5d8a683ea5b704f24ff38a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1eap__method__info__array.html#a3619fce0e5d8a683ea5b704f24ff38a7">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a> &amp;&amp;other) noexcept</td></tr>
<tr class="memdesc:a3619fce0e5d8a683ea5b704f24ff38a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1eap__method__info__array.html#a3619fce0e5d8a683ea5b704f24ff38a7">More...</a><br /></td></tr>
<tr class="separator:a3619fce0e5d8a683ea5b704f24ff38a7"><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 >EAP_METHOD_INFO_ARRAY wrapper class. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a9d1274021845f1c4bd115a9fa1a0bf51" name="a9d1274021845f1c4bd115a9fa1a0bf51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d1274021845f1c4bd115a9fa1a0bf51">&#9670;&nbsp;</a></span>eap_method_info_array()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::eap_method_info_array::eap_method_info_array </td>
<td>(</td>
<td class="paramtype">_Inout_ <a class="el" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a> &amp;&amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">other</td><td>A rvalue reference of another object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a3619fce0e5d8a683ea5b704f24ff38a7" name="a3619fce0e5d8a683ea5b704f24ff38a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3619fce0e5d8a683ea5b704f24ff38a7">&#9670;&nbsp;</a></span>operator=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a> &amp; winstd::eap_method_info_array::operator= </td>
<td>(</td>
<td class="paramtype">_Inout_ <a class="el" href="classwinstd_1_1eap__method__info__array.html">eap_method_info_array</a> &amp;&amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Move assignment. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">other</td><td>A rvalue reference of another object </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_e_a_p_8h_source.html">EAP.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

View File

@ -0,0 +1,85 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1eap__method__prop.html">eap_method_prop</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::eap_method_prop Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1eap__method__prop.html">winstd::eap_method_prop</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__method__prop.html#aaef29e7f5af8ed0a1c685166114c21b6">eap_method_prop</a>(_In_ EAP_METHOD_PROPERTY_TYPE type, _In_ BOOL value) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__method__prop.html">winstd::eap_method_prop</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__method__prop.html#a6f0cdaaa85b3da835ce220837fd8a86c">eap_method_prop</a>(_In_ EAP_METHOD_PROPERTY_TYPE type, _In_ DWORD value) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__method__prop.html">winstd::eap_method_prop</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__method__prop.html#a63398838bd2f79c993f968691408692c">eap_method_prop</a>(_In_ EAP_METHOD_PROPERTY_TYPE type, _In_z_ LPCWSTR value) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__method__prop.html">winstd::eap_method_prop</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,247 @@
<!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: winstd::eap_method_prop Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1eap__method__prop.html">eap_method_prop</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classwinstd_1_1eap__method__prop-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::eap_method_prop Class Reference<div class="ingroups"><a class="el" href="group___win_std_e_a_p_a_p_i.html">Extensible Authentication Protocol API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>EAP_METHOD_PROPERTY wrapper class.
<a href="classwinstd_1_1eap__method__prop.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_e_a_p_8h_source.html">EAP.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::eap_method_prop:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1eap__method__prop.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aaef29e7f5af8ed0a1c685166114c21b6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1eap__method__prop.html#aaef29e7f5af8ed0a1c685166114c21b6">eap_method_prop</a> (_In_ EAP_METHOD_PROPERTY_TYPE type, _In_ BOOL value) noexcept</td></tr>
<tr class="memdesc:aaef29e7f5af8ed0a1c685166114c21b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a BOOL method property. <a href="classwinstd_1_1eap__method__prop.html#aaef29e7f5af8ed0a1c685166114c21b6">More...</a><br /></td></tr>
<tr class="separator:aaef29e7f5af8ed0a1c685166114c21b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f0cdaaa85b3da835ce220837fd8a86c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1eap__method__prop.html#a6f0cdaaa85b3da835ce220837fd8a86c">eap_method_prop</a> (_In_ EAP_METHOD_PROPERTY_TYPE type, _In_ DWORD value) noexcept</td></tr>
<tr class="memdesc:a6f0cdaaa85b3da835ce220837fd8a86c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a DWORD method property. <a href="classwinstd_1_1eap__method__prop.html#a6f0cdaaa85b3da835ce220837fd8a86c">More...</a><br /></td></tr>
<tr class="separator:a6f0cdaaa85b3da835ce220837fd8a86c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63398838bd2f79c993f968691408692c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1eap__method__prop.html#a63398838bd2f79c993f968691408692c">eap_method_prop</a> (_In_ EAP_METHOD_PROPERTY_TYPE type, _In_z_ LPCWSTR value) noexcept</td></tr>
<tr class="memdesc:a63398838bd2f79c993f968691408692c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a Unicode string method property. <a href="classwinstd_1_1eap__method__prop.html#a63398838bd2f79c993f968691408692c">More...</a><br /></td></tr>
<tr class="separator:a63398838bd2f79c993f968691408692c"><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 >EAP_METHOD_PROPERTY wrapper class. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aaef29e7f5af8ed0a1c685166114c21b6" name="aaef29e7f5af8ed0a1c685166114c21b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaef29e7f5af8ed0a1c685166114c21b6">&#9670;&nbsp;</a></span>eap_method_prop() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::eap_method_prop::eap_method_prop </td>
<td>(</td>
<td class="paramtype">_In_ EAP_METHOD_PROPERTY_TYPE&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ BOOL&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a BOOL method property. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>EAP method property type </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Property value </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a6f0cdaaa85b3da835ce220837fd8a86c" name="a6f0cdaaa85b3da835ce220837fd8a86c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f0cdaaa85b3da835ce220837fd8a86c">&#9670;&nbsp;</a></span>eap_method_prop() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::eap_method_prop::eap_method_prop </td>
<td>(</td>
<td class="paramtype">_In_ EAP_METHOD_PROPERTY_TYPE&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a DWORD method property. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>EAP method property type </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Property value </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a63398838bd2f79c993f968691408692c" name="a63398838bd2f79c993f968691408692c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63398838bd2f79c993f968691408692c">&#9670;&nbsp;</a></span>eap_method_prop() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::eap_method_prop::eap_method_prop </td>
<td>(</td>
<td class="paramtype">_In_ EAP_METHOD_PROPERTY_TYPE&#160;</td>
<td class="paramname"><em>type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_z_ LPCWSTR&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs a Unicode string method property. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>EAP method property type </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>Property value </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_e_a_p_8h_source.html">EAP.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

View File

@ -0,0 +1,117 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1eap__packet.html">eap_packet</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::eap_packet Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1eap__packet.html">winstd::eap_packet</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a>(_In_opt_ handle_type h)</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; EapPacket *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__packet.html#a6ea65c39536a3646a0f7746a2ba40d62">create</a>(_In_ EapCode code, _In_ BYTE id, _In_ WORD size) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__packet.html">winstd::eap_packet</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac95cbfb481c0d5e6c60d130f3c270b59">dplhandle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; EapPacket *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; EapPacket *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; EapPacket *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; EapPacket *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; EapPacket *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__packet.html#ac217972c25aebfdd300a56ff52ee9112">duplicate_internal</a>(_In_ handle_type h) const noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1eap__packet.html">winstd::eap_packet</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__packet.html#a6d68149b92c1564b2683ddb3a87b60f0">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1eap__packet.html">winstd::eap_packet</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; EapPacket *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a>(_In_ const dplhandle&lt; handle_type, INVAL &gt; &amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; EapPacket *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a>(_Inout_ dplhandle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; EapPacket *, NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">handle&lt; EapPacket *, INVAL &gt;::operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__packet.html#a2534ad15ae47e2d46354d9f535f4031f">size</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__packet.html">winstd::eap_packet</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__packet.html#a6abed7e1c0460fd6e2ae5d832fbd7493">~eap_packet</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1eap__packet.html">winstd::eap_packet</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,358 @@
<!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: winstd::eap_packet Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1eap__packet.html">eap_packet</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="classwinstd_1_1eap__packet-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::eap_packet Class Reference<div class="ingroups"><a class="el" href="group___win_std_e_a_p_a_p_i.html">Extensible Authentication Protocol API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>EapPacket wrapper class.
<a href="classwinstd_1_1eap__packet.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_e_a_p_8h_source.html">EAP.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::eap_packet:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1eap__packet.png" usemap="#winstd::eap_5Fpacket_map" alt=""/>
<map id="winstd::eap_5Fpacket_map" name="winstd::eap_5Fpacket_map">
<area href="classwinstd_1_1dplhandle.html" alt="winstd::dplhandle&lt; EapPacket *, NULL &gt;" shape="rect" coords="0,56,244,80"/>
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; EapPacket *, INVAL &gt;" shape="rect" coords="0,0,244,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a6abed7e1c0460fd6e2ae5d832fbd7493"><td class="memItemLeft" align="right" valign="top"><a id="a6abed7e1c0460fd6e2ae5d832fbd7493" name="a6abed7e1c0460fd6e2ae5d832fbd7493"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><b>~eap_packet</b> ()</td></tr>
<tr class="memdesc:a6abed7e1c0460fd6e2ae5d832fbd7493"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the EAP packet. <br /></td></tr>
<tr class="separator:a6abed7e1c0460fd6e2ae5d832fbd7493"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ea65c39536a3646a0f7746a2ba40d62"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1eap__packet.html#a6ea65c39536a3646a0f7746a2ba40d62">create</a> (_In_ EapCode code, _In_ BYTE id, _In_ WORD <a class="el" href="classwinstd_1_1eap__packet.html#a2534ad15ae47e2d46354d9f535f4031f">size</a>) noexcept</td></tr>
<tr class="memdesc:a6ea65c39536a3646a0f7746a2ba40d62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new EAP packet. <a href="classwinstd_1_1eap__packet.html#a6ea65c39536a3646a0f7746a2ba40d62">More...</a><br /></td></tr>
<tr class="separator:a6ea65c39536a3646a0f7746a2ba40d62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2534ad15ae47e2d46354d9f535f4031f"><td class="memItemLeft" align="right" valign="top"><a id="a2534ad15ae47e2d46354d9f535f4031f" name="a2534ad15ae47e2d46354d9f535f4031f"></a>
WORD&#160;</td><td class="memItemRight" valign="bottom"><b>size</b> () const noexcept</td></tr>
<tr class="memdesc:a2534ad15ae47e2d46354d9f535f4031f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns total EAP packet size in bytes. <br /></td></tr>
<tr class="separator:a2534ad15ae47e2d46354d9f535f4031f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; EapPacket *, NULL &gt;</a></td></tr>
<tr class="memitem:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a id="ac95cbfb481c0d5e6c60d130f3c270b59" name="ac95cbfb481c0d5e6c60d130f3c270b59"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>dplhandle</b> () noexcept</td></tr>
<tr class="memdesc:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:ac95cbfb481c0d5e6c60d130f3c270b59 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">dplhandle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1dplhandle.html#abb2b52f07f8e9f85905fb968c8bfbd62">More...</a><br /></td></tr>
<tr class="separator:abb2b52f07f8e9f85905fb968c8bfbd62 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">dplhandle</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <a href="classwinstd_1_1dplhandle.html#a3acfebc61ea283e7520dc6b5ec6b5af4">More...</a><br /></td></tr>
<tr class="separator:a3acfebc61ea283e7520dc6b5ec6b5af4 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">dplhandle</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1dplhandle.html#a69802162f59013066dc30fcfc8089738">More...</a><br /></td></tr>
<tr class="separator:a69802162f59013066dc30fcfc8089738 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1dplhandle.html#a6211e58546daef11a28b0c9a8563e063">More...</a><br /></td></tr>
<tr class="separator:a6211e58546daef11a28b0c9a8563e063 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">operator=</a> (_In_ const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <a href="classwinstd_1_1dplhandle.html#a9ad67897459bc81536481a6a1321b302">More...</a><br /></td></tr>
<tr class="separator:a9ad67897459bc81536481a6a1321b302 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <a href="classwinstd_1_1dplhandle.html#abfba6b3dca0d5b8511085741d8d32eb6">More...</a><br /></td></tr>
<tr class="separator:abfba6b3dca0d5b8511085741d8d32eb6 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">duplicate</a> () const</td></tr>
<tr class="memdesc:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates and returns a new object handle. <a href="classwinstd_1_1dplhandle.html#a48e66c8979560019e339867de944a265">More...</a><br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">attach_duplicated</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h)</td></tr>
<tr class="memdesc:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates an object handle and sets a new object handle. <a href="classwinstd_1_1dplhandle.html#a4812d286ff9f34df62933f77d2c8b659">More...</a><br /></td></tr>
<tr class="separator:a4812d286ff9f34df62933f77d2c8b659 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a6d68149b92c1564b2683ddb3a87b60f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1eap__packet.html#a6d68149b92c1564b2683ddb3a87b60f0">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:a6d68149b92c1564b2683ddb3a87b60f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the EAP packet. <a href="classwinstd_1_1eap__packet.html#a6d68149b92c1564b2683ddb3a87b60f0">More...</a><br /></td></tr>
<tr class="separator:a6d68149b92c1564b2683ddb3a87b60f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac217972c25aebfdd300a56ff52ee9112"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1eap__packet.html#ac217972c25aebfdd300a56ff52ee9112">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept override</td></tr>
<tr class="memdesc:ac217972c25aebfdd300a56ff52ee9112"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the EAP packet. <a href="classwinstd_1_1eap__packet.html#ac217972c25aebfdd300a56ff52ee9112">More...</a><br /></td></tr>
<tr class="separator:ac217972c25aebfdd300a56ff52ee9112"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0094309e30d7780908b261c53e5a07d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">duplicate_internal</a> (_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const noexcept=0</td></tr>
<tr class="memdesc:aa0094309e30d7780908b261c53e5a07d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object handle duplication. <a href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">More...</a><br /></td></tr>
<tr class="separator:aa0094309e30d7780908b261c53e5a07d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef EapPacket *&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const EapPacket *&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; EapPacket *, INVAL &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><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 >EapPacket wrapper class. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a6ea65c39536a3646a0f7746a2ba40d62" name="a6ea65c39536a3646a0f7746a2ba40d62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ea65c39536a3646a0f7746a2ba40d62">&#9670;&nbsp;</a></span>create()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::eap_packet::create </td>
<td>(</td>
<td class="paramtype">_In_ EapCode&#160;</td>
<td class="paramname"><em>code</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ BYTE&#160;</td>
<td class="paramname"><em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ WORD&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create new EAP packet. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">code</td><td>EAP code (one of EapCode enum values) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>Packet ID </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Total packet size in bytes, including header. Must be at least 4B.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>Packet data (beyond first 4B) is not initialized.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>true when creation succeeds;</li>
<li>false when creation fails. For extended error information, call <code>GetLastError()</code>. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="ac217972c25aebfdd300a56ff52ee9112" name="ac217972c25aebfdd300a56ff52ee9112"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac217972c25aebfdd300a56ff52ee9112">&#9670;&nbsp;</a></span>duplicate_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> winstd::eap_packet::duplicate_internal </td>
<td>(</td>
<td class="paramtype">_In_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td>
<td class="paramname"><em>h</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Duplicates the EAP packet. </p>
<p>Implements <a class="el" href="classwinstd_1_1dplhandle.html#aa0094309e30d7780908b261c53e5a07d">winstd::dplhandle&lt; EapPacket *, NULL &gt;</a>.</p>
</div>
</div>
<a id="a6d68149b92c1564b2683ddb3a87b60f0" name="a6d68149b92c1564b2683ddb3a87b60f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d68149b92c1564b2683ddb3a87b60f0">&#9670;&nbsp;</a></span>free_internal()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void winstd::eap_packet::free_internal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">protected</span><span class="mlabel">virtual</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys the EAP packet. </p>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; EapPacket *, INVAL &gt;</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_e_a_p_8h_source.html">EAP.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,108 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1eap__runtime__error.html">eap_runtime_error</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::eap_runtime_error Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a8d4f80bde143ee1a06d78bd922b0d295">eap_runtime_error</a>(_In_ const EAP_ERROR &amp;err, _In_ const std::string &amp;msg)</td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a7c3d33a53ad6258d33a493c92c03d1bd">eap_runtime_error</a>(_In_ const EAP_ERROR &amp;err, _In_opt_z_ const char *msg=nullptr)</td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; DWORD &gt;</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#af7179a9cc9ff633a0e7d5983a4680171">help_link_id</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#aa23bf8c3fc64f54e7021bb97dfefda89">m_help_link_id</a></td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html#a865b8400a5a5a962c3068bf55f022d1f">m_num</a></td><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; DWORD &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#af7d0e9785475719f4b1b0b59c4ae49e3">m_reason</a></td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a2b237993f0c860b8b0ad83416d499f18">m_repair_desc</a></td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a526d2ae63c12d1a439d69412e7f13ec7">m_repair_id</a></td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#aea17d371de31216ac0754c1ed1f0b99a">m_root_cause_desc</a></td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a084ddacb051932c211a995872fb67b57">m_root_cause_id</a></td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a4d7e04b38831f029d862990b607333aa">m_type</a></td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a>(_In_opt_ DWORD dwLanguageId=0) const</td><td class="entry"><a class="el" href="classwinstd_1_1win__runtime__error.html">winstd::win_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html#a5f8894c1634e9b80ab67c573d7315824">num_runtime_error</a>(_In_ error_type num, _In_ const std::string &amp;msg)</td><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; DWORD &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html#aa775e07ef587393c66cb21a6c809c0ca">num_runtime_error</a>(_In_ error_type num, _In_opt_z_ const char *msg=nullptr)</td><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; DWORD &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html#a6388a483c00628c1a94a5ce45ca63e70">number</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; DWORD &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a3329eb549dce7f57f5a59e3f5a16705c">reason</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a981cb9a1cbf0c6e7e19252d776a2558f">repair</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a1e80ead2a4d348ab2c939bfbbaf9330a">repair_id</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a0aa17a51b2c110e874b60924281a3743">root_cause</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#ae39b6b32c9505c0be2e199d8692175d1">root_cause_id</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a0562abef7454f9a6f97902d4260b7f50">type</a>() const noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1eap__runtime__error.html">winstd::eap_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1win__runtime__error.html#a7973d300dddb3e27febd68605ebbcb23">win_runtime_error</a>(_In_ error_type num, _In_ const std::string &amp;msg)</td><td class="entry"><a class="el" href="classwinstd_1_1win__runtime__error.html">winstd::win_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1win__runtime__error.html#a5380b16bc57585a6ff4c83d6bbae994e">win_runtime_error</a>(_In_ error_type num, _In_opt_z_ const char *msg=nullptr)</td><td class="entry"><a class="el" href="classwinstd_1_1win__runtime__error.html">winstd::win_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1win__runtime__error.html#a2ce6109914601a3a3266a517919bce39">win_runtime_error</a>(_In_ const std::string &amp;msg)</td><td class="entry"><a class="el" href="classwinstd_1_1win__runtime__error.html">winstd::win_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1win__runtime__error.html#a71a13f0228c88c55415926b55450360d">win_runtime_error</a>(_In_opt_z_ const char *msg=nullptr)</td><td class="entry"><a class="el" href="classwinstd_1_1win__runtime__error.html">winstd::win_runtime_error</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,304 @@
<!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: winstd::eap_runtime_error Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1eap__runtime__error.html">eap_runtime_error</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classwinstd_1_1eap__runtime__error-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::eap_runtime_error Class Reference<div class="ingroups"><a class="el" href="group___win_std_exceptions.html">Exceptions</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>EapHost runtime error.
<a href="classwinstd_1_1eap__runtime__error.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_e_a_p_8h_source.html">EAP.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::eap_runtime_error:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1eap__runtime__error.png" usemap="#winstd::eap_5Fruntime_5Ferror_map" alt=""/>
<map id="winstd::eap_5Fruntime_5Ferror_map" name="winstd::eap_5Fruntime_5Ferror_map">
<area href="classwinstd_1_1win__runtime__error.html" title="Windows runtime error." alt="winstd::win_runtime_error" shape="rect" coords="0,112,231,136"/>
<area href="classwinstd_1_1num__runtime__error.html" alt="winstd::num_runtime_error&lt; DWORD &gt;" shape="rect" coords="0,56,231,80"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8d4f80bde143ee1a06d78bd922b0d295"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a8d4f80bde143ee1a06d78bd922b0d295">eap_runtime_error</a> (_In_ const EAP_ERROR &amp;err, _In_ const std::string &amp;<a class="el" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a>)</td></tr>
<tr class="memdesc:a8d4f80bde143ee1a06d78bd922b0d295"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <a href="classwinstd_1_1eap__runtime__error.html#a8d4f80bde143ee1a06d78bd922b0d295">More...</a><br /></td></tr>
<tr class="separator:a8d4f80bde143ee1a06d78bd922b0d295"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c3d33a53ad6258d33a493c92c03d1bd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1eap__runtime__error.html#a7c3d33a53ad6258d33a493c92c03d1bd">eap_runtime_error</a> (_In_ const EAP_ERROR &amp;err, _In_opt_z_ const char *<a class="el" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a>=nullptr)</td></tr>
<tr class="memdesc:a7c3d33a53ad6258d33a493c92c03d1bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <a href="classwinstd_1_1eap__runtime__error.html#a7c3d33a53ad6258d33a493c92c03d1bd">More...</a><br /></td></tr>
<tr class="separator:a7c3d33a53ad6258d33a493c92c03d1bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0562abef7454f9a6f97902d4260b7f50"><td class="memItemLeft" align="right" valign="top"><a id="a0562abef7454f9a6f97902d4260b7f50" name="a0562abef7454f9a6f97902d4260b7f50"></a>
const EAP_METHOD_TYPE &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>type</b> () const noexcept</td></tr>
<tr class="memdesc:a0562abef7454f9a6f97902d4260b7f50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns EAP method type. <br /></td></tr>
<tr class="separator:a0562abef7454f9a6f97902d4260b7f50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3329eb549dce7f57f5a59e3f5a16705c"><td class="memItemLeft" align="right" valign="top"><a id="a3329eb549dce7f57f5a59e3f5a16705c" name="a3329eb549dce7f57f5a59e3f5a16705c"></a>
DWORD&#160;</td><td class="memItemRight" valign="bottom"><b>reason</b> () const noexcept</td></tr>
<tr class="memdesc:a3329eb549dce7f57f5a59e3f5a16705c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the reason code for error. <br /></td></tr>
<tr class="separator:a3329eb549dce7f57f5a59e3f5a16705c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae39b6b32c9505c0be2e199d8692175d1"><td class="memItemLeft" align="right" valign="top"><a id="ae39b6b32c9505c0be2e199d8692175d1" name="ae39b6b32c9505c0be2e199d8692175d1"></a>
const GUID &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>root_cause_id</b> () const noexcept</td></tr>
<tr class="memdesc:ae39b6b32c9505c0be2e199d8692175d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns root cause ID. <br /></td></tr>
<tr class="separator:ae39b6b32c9505c0be2e199d8692175d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0aa17a51b2c110e874b60924281a3743"><td class="memItemLeft" align="right" valign="top"><a id="a0aa17a51b2c110e874b60924281a3743" name="a0aa17a51b2c110e874b60924281a3743"></a>
const wchar_t *&#160;</td><td class="memItemRight" valign="bottom"><b>root_cause</b> () const noexcept</td></tr>
<tr class="memdesc:a0aa17a51b2c110e874b60924281a3743"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns root cause ID. <br /></td></tr>
<tr class="separator:a0aa17a51b2c110e874b60924281a3743"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e80ead2a4d348ab2c939bfbbaf9330a"><td class="memItemLeft" align="right" valign="top"><a id="a1e80ead2a4d348ab2c939bfbbaf9330a" name="a1e80ead2a4d348ab2c939bfbbaf9330a"></a>
const GUID &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>repair_id</b> () const noexcept</td></tr>
<tr class="memdesc:a1e80ead2a4d348ab2c939bfbbaf9330a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns repair ID. <br /></td></tr>
<tr class="separator:a1e80ead2a4d348ab2c939bfbbaf9330a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a981cb9a1cbf0c6e7e19252d776a2558f"><td class="memItemLeft" align="right" valign="top"><a id="a981cb9a1cbf0c6e7e19252d776a2558f" name="a981cb9a1cbf0c6e7e19252d776a2558f"></a>
const wchar_t *&#160;</td><td class="memItemRight" valign="bottom"><b>repair</b> () const noexcept</td></tr>
<tr class="memdesc:a981cb9a1cbf0c6e7e19252d776a2558f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns root cause ID. <br /></td></tr>
<tr class="separator:a981cb9a1cbf0c6e7e19252d776a2558f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7179a9cc9ff633a0e7d5983a4680171"><td class="memItemLeft" align="right" valign="top"><a id="af7179a9cc9ff633a0e7d5983a4680171" name="af7179a9cc9ff633a0e7d5983a4680171"></a>
const GUID &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>help_link_id</b> () const noexcept</td></tr>
<tr class="memdesc:af7179a9cc9ff633a0e7d5983a4680171"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns help_link ID. <br /></td></tr>
<tr class="separator:af7179a9cc9ff633a0e7d5983a4680171"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1win__runtime__error"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1win__runtime__error')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1win__runtime__error.html">winstd::win_runtime_error</a></td></tr>
<tr class="memitem:a7973d300dddb3e27febd68605ebbcb23 inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1win__runtime__error.html#a7973d300dddb3e27febd68605ebbcb23">win_runtime_error</a> (_In_ <a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_ const std::string &amp;<a class="el" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a>)</td></tr>
<tr class="memdesc:a7973d300dddb3e27febd68605ebbcb23 inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <a href="classwinstd_1_1win__runtime__error.html#a7973d300dddb3e27febd68605ebbcb23">More...</a><br /></td></tr>
<tr class="separator:a7973d300dddb3e27febd68605ebbcb23 inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5380b16bc57585a6ff4c83d6bbae994e inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1win__runtime__error.html#a5380b16bc57585a6ff4c83d6bbae994e">win_runtime_error</a> (_In_ <a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_opt_z_ const char *<a class="el" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a>=nullptr)</td></tr>
<tr class="memdesc:a5380b16bc57585a6ff4c83d6bbae994e inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <a href="classwinstd_1_1win__runtime__error.html#a5380b16bc57585a6ff4c83d6bbae994e">More...</a><br /></td></tr>
<tr class="separator:a5380b16bc57585a6ff4c83d6bbae994e inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ce6109914601a3a3266a517919bce39 inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1win__runtime__error.html#a2ce6109914601a3a3266a517919bce39">win_runtime_error</a> (_In_ const std::string &amp;<a class="el" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a>)</td></tr>
<tr class="memdesc:a2ce6109914601a3a3266a517919bce39 inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception using <code>GetLastError()</code> <a href="classwinstd_1_1win__runtime__error.html#a2ce6109914601a3a3266a517919bce39">More...</a><br /></td></tr>
<tr class="separator:a2ce6109914601a3a3266a517919bce39 inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71a13f0228c88c55415926b55450360d inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1win__runtime__error.html#a71a13f0228c88c55415926b55450360d">win_runtime_error</a> (_In_opt_z_ const char *<a class="el" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a>=nullptr)</td></tr>
<tr class="memdesc:a71a13f0228c88c55415926b55450360d inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception using <code>GetLastError()</code> <a href="classwinstd_1_1win__runtime__error.html#a71a13f0228c88c55415926b55450360d">More...</a><br /></td></tr>
<tr class="separator:a71a13f0228c88c55415926b55450360d inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a016e0f951d68ea42b9d33beea39d642b inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___win_std_general.html#ga8081292a94f5d070e644bdc90662d1fc">tstring</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">msg</a> (_In_opt_ DWORD dwLanguageId=0) const</td></tr>
<tr class="memdesc:a016e0f951d68ea42b9d33beea39d642b inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a user-readable Windows error message. <a href="classwinstd_1_1win__runtime__error.html#a016e0f951d68ea42b9d33beea39d642b">More...</a><br /></td></tr>
<tr class="separator:a016e0f951d68ea42b9d33beea39d642b inherit pub_methods_classwinstd_1_1win__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1num__runtime__error"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1num__runtime__error')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; DWORD &gt;</a></td></tr>
<tr class="memitem:a5f8894c1634e9b80ab67c573d7315824 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1num__runtime__error.html#a5f8894c1634e9b80ab67c573d7315824">num_runtime_error</a> (_In_ <a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_ const std::string &amp;msg)</td></tr>
<tr class="memdesc:a5f8894c1634e9b80ab67c573d7315824 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <a href="classwinstd_1_1num__runtime__error.html#a5f8894c1634e9b80ab67c573d7315824">More...</a><br /></td></tr>
<tr class="separator:a5f8894c1634e9b80ab67c573d7315824 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa775e07ef587393c66cb21a6c809c0ca inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1num__runtime__error.html#aa775e07ef587393c66cb21a6c809c0ca">num_runtime_error</a> (_In_ <a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a> num, _In_opt_z_ const char *msg=nullptr)</td></tr>
<tr class="memdesc:aa775e07ef587393c66cb21a6c809c0ca inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <a href="classwinstd_1_1num__runtime__error.html#aa775e07ef587393c66cb21a6c809c0ca">More...</a><br /></td></tr>
<tr class="separator:aa775e07ef587393c66cb21a6c809c0ca inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6388a483c00628c1a94a5ce45ca63e70 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memItemLeft" align="right" valign="top"><a id="a6388a483c00628c1a94a5ce45ca63e70" name="a6388a483c00628c1a94a5ce45ca63e70"></a>
<a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>number</b> () const</td></tr>
<tr class="memdesc:a6388a483c00628c1a94a5ce45ca63e70 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Windows error number. <br /></td></tr>
<tr class="separator:a6388a483c00628c1a94a5ce45ca63e70 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a4d7e04b38831f029d862990b607333aa"><td class="memItemLeft" align="right" valign="top"><a id="a4d7e04b38831f029d862990b607333aa" name="a4d7e04b38831f029d862990b607333aa"></a>
EAP_METHOD_TYPE&#160;</td><td class="memItemRight" valign="bottom"><b>m_type</b></td></tr>
<tr class="memdesc:a4d7e04b38831f029d862990b607333aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure that identifies the EAP method that raised the error. <br /></td></tr>
<tr class="separator:a4d7e04b38831f029d862990b607333aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7d0e9785475719f4b1b0b59c4ae49e3"><td class="memItemLeft" align="right" valign="top"><a id="af7d0e9785475719f4b1b0b59c4ae49e3" name="af7d0e9785475719f4b1b0b59c4ae49e3"></a>
DWORD&#160;</td><td class="memItemRight" valign="bottom"><b>m_reason</b></td></tr>
<tr class="memdesc:af7d0e9785475719f4b1b0b59c4ae49e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The reason code for the error. <br /></td></tr>
<tr class="separator:af7d0e9785475719f4b1b0b59c4ae49e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a084ddacb051932c211a995872fb67b57"><td class="memItemLeft" align="right" valign="top"><a id="a084ddacb051932c211a995872fb67b57" name="a084ddacb051932c211a995872fb67b57"></a>
GUID&#160;</td><td class="memItemRight" valign="bottom"><b>m_root_cause_id</b></td></tr>
<tr class="memdesc:a084ddacb051932c211a995872fb67b57"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique ID that identifies cause of error in EAPHost. <br /></td></tr>
<tr class="separator:a084ddacb051932c211a995872fb67b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea17d371de31216ac0754c1ed1f0b99a"><td class="memItemLeft" align="right" valign="top"><a id="aea17d371de31216ac0754c1ed1f0b99a" name="aea17d371de31216ac0754c1ed1f0b99a"></a>
std::wstring&#160;</td><td class="memItemRight" valign="bottom"><b>m_root_cause_desc</b></td></tr>
<tr class="memdesc:aea17d371de31216ac0754c1ed1f0b99a"><td class="mdescLeft">&#160;</td><td class="mdescRight">A localized and readable string that describes the root cause of the error. <br /></td></tr>
<tr class="separator:aea17d371de31216ac0754c1ed1f0b99a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a526d2ae63c12d1a439d69412e7f13ec7"><td class="memItemLeft" align="right" valign="top"><a id="a526d2ae63c12d1a439d69412e7f13ec7" name="a526d2ae63c12d1a439d69412e7f13ec7"></a>
GUID&#160;</td><td class="memItemRight" valign="bottom"><b>m_repair_id</b></td></tr>
<tr class="memdesc:a526d2ae63c12d1a439d69412e7f13ec7"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique ID that maps to a localizable string that identifies the repair action that can be taken to fix the reported error. <br /></td></tr>
<tr class="separator:a526d2ae63c12d1a439d69412e7f13ec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b237993f0c860b8b0ad83416d499f18"><td class="memItemLeft" align="right" valign="top"><a id="a2b237993f0c860b8b0ad83416d499f18" name="a2b237993f0c860b8b0ad83416d499f18"></a>
std::wstring&#160;</td><td class="memItemRight" valign="bottom"><b>m_repair_desc</b></td></tr>
<tr class="memdesc:a2b237993f0c860b8b0ad83416d499f18"><td class="mdescLeft">&#160;</td><td class="mdescRight">A localized and readable string that describes the possible repair action. <br /></td></tr>
<tr class="separator:a2b237993f0c860b8b0ad83416d499f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa23bf8c3fc64f54e7021bb97dfefda89"><td class="memItemLeft" align="right" valign="top"><a id="aa23bf8c3fc64f54e7021bb97dfefda89" name="aa23bf8c3fc64f54e7021bb97dfefda89"></a>
GUID&#160;</td><td class="memItemRight" valign="bottom"><b>m_help_link_id</b></td></tr>
<tr class="memdesc:aa23bf8c3fc64f54e7021bb97dfefda89"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unique ID that maps to a localizable string that specifies an URL for a page that contains additional information about an error or repair message. <br /></td></tr>
<tr class="separator:aa23bf8c3fc64f54e7021bb97dfefda89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1num__runtime__error"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1num__runtime__error')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; DWORD &gt;</a></td></tr>
<tr class="memitem:a865b8400a5a5a962c3068bf55f022d1f inherit pro_attribs_classwinstd_1_1num__runtime__error"><td class="memItemLeft" align="right" valign="top"><a id="a865b8400a5a5a962c3068bf55f022d1f" name="a865b8400a5a5a962c3068bf55f022d1f"></a>
<a class="el" href="classwinstd_1_1num__runtime__error.html#a6fa2de87d0151b3ad9cac58f838852e0">error_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_num</b></td></tr>
<tr class="memdesc:a865b8400a5a5a962c3068bf55f022d1f inherit pro_attribs_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Numeric error code. <br /></td></tr>
<tr class="separator:a865b8400a5a5a962c3068bf55f022d1f inherit pro_attribs_classwinstd_1_1num__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1num__runtime__error"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1num__runtime__error')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1num__runtime__error.html">winstd::num_runtime_error&lt; DWORD &gt;</a></td></tr>
<tr class="memitem:a6fa2de87d0151b3ad9cac58f838852e0 inherit pub_types_classwinstd_1_1num__runtime__error"><td class="memItemLeft" align="right" valign="top"><a id="a6fa2de87d0151b3ad9cac58f838852e0" name="a6fa2de87d0151b3ad9cac58f838852e0"></a>
typedef DWORD&#160;</td><td class="memItemRight" valign="bottom"><b>error_type</b></td></tr>
<tr class="memdesc:a6fa2de87d0151b3ad9cac58f838852e0 inherit pub_types_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error number type. <br /></td></tr>
<tr class="separator:a6fa2de87d0151b3ad9cac58f838852e0 inherit pub_types_classwinstd_1_1num__runtime__error"><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 >EapHost runtime error. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa363699.aspx">EAP_ERROR structure</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a8d4f80bde143ee1a06d78bd922b0d295" name="a8d4f80bde143ee1a06d78bd922b0d295"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d4f80bde143ee1a06d78bd922b0d295">&#9670;&nbsp;</a></span>eap_runtime_error() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::eap_runtime_error::eap_runtime_error </td>
<td>(</td>
<td class="paramtype">_In_ const EAP_ERROR &amp;&#160;</td>
<td class="paramname"><em>err</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ const std::string &amp;&#160;</td>
<td class="paramname"><em>msg</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an exception. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">err</td><td>EapHost error descriptor </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Error message </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a7c3d33a53ad6258d33a493c92c03d1bd" name="a7c3d33a53ad6258d33a493c92c03d1bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c3d33a53ad6258d33a493c92c03d1bd">&#9670;&nbsp;</a></span>eap_runtime_error() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::eap_runtime_error::eap_runtime_error </td>
<td>(</td>
<td class="paramtype">_In_ const EAP_ERROR &amp;&#160;</td>
<td class="paramname"><em>err</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_z_ const char *&#160;</td>
<td class="paramname"><em>msg</em> = <code>nullptr</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructs an exception. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">err</td><td>EapHost error descriptor </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>Error message </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_e_a_p_8h_source.html">EAP.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,108 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1event.html">event</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::event Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1event.html">winstd::event</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event.html#a217fa728f6605580a5baf4cea0807cb2">create</a>(_In_ BOOL bManualReset, _In_ BOOL bInitialState, _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes=NULL, _In_opt_z_ LPCTSTR lpName=NULL) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1event.html">winstd::event</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96">free</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1win__handle.html#a456fe19828113913f42e901f112c6455">free_internal</a>() noexcept override</td><td class="entry"><a class="el" href="classwinstd_1_1win__handle.html">winstd::win_handle&lt; NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="group___win_std_sys_handles.html#gacf43e306968474166474090690857e1c">invalid</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a></td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event.html#a607b9549a1fddfee1a32b61aff664610">open</a>(_In_ DWORD dwDesiredAccess, _In_ BOOL bInheritHandle, _In_z_ LPCTSTR lpName) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1event.html">winstd::event</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a>(_In_opt_ handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a>(_Inout_ handle&lt; handle_type, INVAL &gt; &amp;&amp;h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a>(_In_opt_ handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1win__handle.html#a6b8070a3be4dede99a1c764b7f341a36">~win_handle</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1win__handle.html">winstd::win_handle&lt; NULL &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

308
classwinstd_1_1event.html Normal file
View File

@ -0,0 +1,308 @@
<!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: winstd::event Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1event.html">event</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classwinstd_1_1event-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::event Class Reference<div class="ingroups"><a class="el" href="group___win_std_win_a_p_i.html">Windows API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>Event handle wrapper.
<a href="classwinstd_1_1event.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_win_8h_source.html">Win.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::event:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1event.png" usemap="#winstd::event_map" alt=""/>
<map id="winstd::event_map" name="winstd::event_map">
<area href="classwinstd_1_1win__handle.html" alt="winstd::win_handle&lt; NULL &gt;" shape="rect" coords="0,56,224,80"/>
<area href="classwinstd_1_1handle.html" alt="winstd::handle&lt; HANDLE, INVALID &gt;" shape="rect" coords="0,0,224,24"/>
</map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a217fa728f6605580a5baf4cea0807cb2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event.html#a217fa728f6605580a5baf4cea0807cb2">create</a> (_In_ BOOL bManualReset, _In_ BOOL bInitialState, _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes=NULL, _In_opt_z_ LPCTSTR lpName=NULL) noexcept</td></tr>
<tr class="memdesc:a217fa728f6605580a5baf4cea0807cb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates or opens a named or unnamed event object. <a href="classwinstd_1_1event.html#a217fa728f6605580a5baf4cea0807cb2">More...</a><br /></td></tr>
<tr class="separator:a217fa728f6605580a5baf4cea0807cb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a607b9549a1fddfee1a32b61aff664610"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event.html#a607b9549a1fddfee1a32b61aff664610">open</a> (_In_ DWORD dwDesiredAccess, _In_ BOOL bInheritHandle, _In_z_ LPCTSTR lpName) noexcept</td></tr>
<tr class="memdesc:a607b9549a1fddfee1a32b61aff664610"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens an existing named event object. <a href="classwinstd_1_1event.html#a607b9549a1fddfee1a32b61aff664610">More...</a><br /></td></tr>
<tr class="separator:a607b9549a1fddfee1a32b61aff664610"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1win__handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1win__handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1win__handle.html">winstd::win_handle&lt; NULL &gt;</a></td></tr>
<tr class="memitem:a6b8070a3be4dede99a1c764b7f341a36 inherit pub_methods_classwinstd_1_1win__handle"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1win__handle.html#a6b8070a3be4dede99a1c764b7f341a36">~win_handle</a> ()</td></tr>
<tr class="memdesc:a6b8070a3be4dede99a1c764b7f341a36 inherit pub_methods_classwinstd_1_1win__handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes an open object handle. <a href="classwinstd_1_1win__handle.html#a6b8070a3be4dede99a1c764b7f341a36">More...</a><br /></td></tr>
<tr class="separator:a6b8070a3be4dede99a1c764b7f341a36 inherit pub_methods_classwinstd_1_1win__handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td></tr>
<tr class="memitem:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a1b9c4f9529c9efa7d16dec8bab3b00e4" name="a1b9c4f9529c9efa7d16dec8bab3b00e4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>handle</b> () noexcept</td></tr>
<tr class="memdesc:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with the object handle set to INVAL. <br /></td></tr>
<tr class="separator:a1b9c4f9529c9efa7d16dec8bab3b00e4 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">handle</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <a href="classwinstd_1_1handle.html#a200e93ad6b773e634094f5321705ebec">More...</a><br /></td></tr>
<tr class="separator:a200e93ad6b773e634094f5321705ebec inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">handle</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classwinstd_1_1handle.html#a54141e1a6c82fcdd15f6fa3a813baab0">More...</a><br /></td></tr>
<tr class="separator:a54141e1a6c82fcdd15f6fa3a813baab0 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">operator=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <a href="classwinstd_1_1handle.html#a8928de8288f8dc990fc903dee85803e7">More...</a><br /></td></tr>
<tr class="separator:a8928de8288f8dc990fc903dee85803e7 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">operator=</a> (_Inout_ <a class="el" href="classwinstd_1_1handle.html">handle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <a href="classwinstd_1_1handle.html#a96a1bcf085561569ed51ab23968d1308">More...</a><br /></td></tr>
<tr class="separator:a96a1bcf085561569ed51ab23968d1308 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">operator handle_type</a> () const</td></tr>
<tr class="memdesc:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <a href="classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8">More...</a><br /></td></tr>
<tr class="separator:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">operator*</a> () const</td></tr>
<tr class="memdesc:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). <a href="classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9">More...</a><br /></td></tr>
<tr class="separator:a0f1ac60cf62e41c24394bf0e3457fbd9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">operator&amp;</a> ()</td></tr>
<tr class="memdesc:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object handle reference. <a href="classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1">More...</a><br /></td></tr>
<tr class="separator:a2bd2de7bb89dcebe2c9379dd54ee79c1 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">operator-&gt;</a> () const</td></tr>
<tr class="memdesc:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides object handle member access when the object handle is a pointer to a class or struct. <a href="classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084">More...</a><br /></td></tr>
<tr class="separator:a285ada5936fe7afdd12eed70b38c2084 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">operator!</a> () const</td></tr>
<tr class="memdesc:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests if the object handle is INVAL. <a href="classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c">More...</a><br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">operator&lt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <a href="classwinstd_1_1handle.html#a77b518be4199e6562520ccbcdcec5d07">More...</a><br /></td></tr>
<tr class="separator:a77b518be4199e6562520ccbcdcec5d07 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">operator&lt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <a href="classwinstd_1_1handle.html#a16b52280c04b4cb9f8bd65f76cb2f48d">More...</a><br /></td></tr>
<tr class="separator:a16b52280c04b4cb9f8bd65f76cb2f48d inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">operator&gt;=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <a href="classwinstd_1_1handle.html#a728f743b87f4bf56e184e45950154a2b">More...</a><br /></td></tr>
<tr class="separator:a728f743b87f4bf56e184e45950154a2b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">operator&gt;</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <a href="classwinstd_1_1handle.html#aa7db4bb5c15f7de56600ba02497c12eb">More...</a><br /></td></tr>
<tr class="separator:aa7db4bb5c15f7de56600ba02497c12eb inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">operator!=</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <a href="classwinstd_1_1handle.html#a2c9e218fe1c13a2ffa0a81d829e72fee">More...</a><br /></td></tr>
<tr class="separator:a2c9e218fe1c13a2ffa0a81d829e72fee inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">operator==</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <a href="classwinstd_1_1handle.html#a308281d8c28014cc205e72f17f01635f">More...</a><br /></td></tr>
<tr class="separator:a308281d8c28014cc205e72f17f01635f inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">attach</a> (_In_opt_ <a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <a href="classwinstd_1_1handle.html#a98d09f9c2970890a5c83a0c2aedd3a30">More...</a><br /></td></tr>
<tr class="separator:a98d09f9c2970890a5c83a0c2aedd3a30 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">detach</a> ()</td></tr>
<tr class="memdesc:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dismisses the object handle from this class. <a href="classwinstd_1_1handle.html#ad5acf6ce53e092b8d4d53f909cf321f9">More...</a><br /></td></tr>
<tr class="separator:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a706aaab7691a472c608890f8e5dd0d96" name="a706aaab7691a472c608890f8e5dd0d96"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>free</b> ()</td></tr>
<tr class="memdesc:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the object. <br /></td></tr>
<tr class="separator:a706aaab7691a472c608890f8e5dd0d96 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td></tr>
<tr class="memitem:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="a3dda19199ecfbc378c932e7d84d0ea81" name="a3dda19199ecfbc378c932e7d84d0ea81"></a>
typedef HANDLE&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Datatype of the object handle this template class handles. <br /></td></tr>
<tr class="separator:a3dda19199ecfbc378c932e7d84d0ea81 inherit pub_types_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td></tr>
<tr class="memitem:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="gacf43e306968474166474090690857e1c" name="gacf43e306968474166474090690857e1c"></a>
static const HANDLE&#160;</td><td class="memItemRight" valign="bottom"><b>invalid</b></td></tr>
<tr class="memdesc:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid handle value. <br /></td></tr>
<tr class="separator:gacf43e306968474166474090690857e1c inherit pub_static_attribs_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1win__handle"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classwinstd_1_1win__handle')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classwinstd_1_1win__handle.html">winstd::win_handle&lt; NULL &gt;</a></td></tr>
<tr class="memitem:a456fe19828113913f42e901f112c6455 inherit pro_methods_classwinstd_1_1win__handle"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1win__handle.html#a456fe19828113913f42e901f112c6455">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:a456fe19828113913f42e901f112c6455 inherit pro_methods_classwinstd_1_1win__handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes an open object handle. <a href="classwinstd_1_1win__handle.html#a456fe19828113913f42e901f112c6455">More...</a><br /></td></tr>
<tr class="separator:a456fe19828113913f42e901f112c6455 inherit pro_methods_classwinstd_1_1win__handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a137560600851eb4c3e4b80e25d4da629"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">free_internal</a> () noexcept=0</td></tr>
<tr class="memdesc:a137560600851eb4c3e4b80e25d4da629"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract member function that must be implemented by child classes to do the actual object destruction. <a href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">More...</a><br /></td></tr>
<tr class="separator:a137560600851eb4c3e4b80e25d4da629"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classwinstd_1_1handle"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classwinstd_1_1handle')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; HANDLE, INVALID &gt;</a></td></tr>
<tr class="memitem:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="memItemLeft" align="right" valign="top"><a id="aabde3f16fd98b06b3b0282ef7806eb59" name="aabde3f16fd98b06b3b0282ef7806eb59"></a>
<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_h</b></td></tr>
<tr class="memdesc:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object handle. <br /></td></tr>
<tr class="separator:aabde3f16fd98b06b3b0282ef7806eb59 inherit pro_attribs_classwinstd_1_1handle"><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 >Event handle wrapper. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a217fa728f6605580a5baf4cea0807cb2" name="a217fa728f6605580a5baf4cea0807cb2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a217fa728f6605580a5baf4cea0807cb2">&#9670;&nbsp;</a></span>create()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::event::create </td>
<td>(</td>
<td class="paramtype">_In_ BOOL&#160;</td>
<td class="paramname"><em>bManualReset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ BOOL&#160;</td>
<td class="paramname"><em>bInitialState</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_ LPSECURITY_ATTRIBUTES&#160;</td>
<td class="paramname"><em>lpEventAttributes</em> = <code>NULL</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_opt_z_ LPCTSTR&#160;</td>
<td class="paramname"><em>lpName</em> = <code>NULL</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates or opens a named or unnamed event object. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/desktop/api/synchapi/nf-synchapi-createeventw">CreateEventW function</a></dd></dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li><code>true</code> when succeeds;</li>
<li><code>false</code> when fails. Use <code>GetLastError()</code> for failure reason. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a607b9549a1fddfee1a32b61aff664610" name="a607b9549a1fddfee1a32b61aff664610"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a607b9549a1fddfee1a32b61aff664610">&#9670;&nbsp;</a></span>open()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool winstd::event::open </td>
<td>(</td>
<td class="paramtype">_In_ DWORD&#160;</td>
<td class="paramname"><em>dwDesiredAccess</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ BOOL&#160;</td>
<td class="paramname"><em>bInheritHandle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_z_ LPCTSTR&#160;</td>
<td class="paramname"><em>lpName</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Opens an existing named event object. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/desktop/api/synchapi/nf-synchapi-openeventw">OpenEventW function</a></dd></dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li><code>true</code> when succeeds;</li>
<li><code>false</code> when fails. Use <code>GetLastError()</code> for failure reason. </li>
</ul>
</dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_win_8h_source.html">Win.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

BIN
classwinstd_1_1event.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,94 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1event__data.html">event_data</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::event_data Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#acb4032673a3b2376eb0d62115bb37c4f">event_data</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#acb263040db5d65718adcfa069fb6534e">event_data</a>(_In_ const char &amp;data)</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#ab8fcf1275490c1d1806fd573ce6010a8">event_data</a>(_In_ const unsigned char &amp;data)</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#aebfd39d490ebfd900dbf84b4cac69ce4">event_data</a>(_In_ const int &amp;data)</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#abbb8c154fec1fec0a01d8d82c3211516">event_data</a>(_In_ const unsigned int &amp;data)</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#ac1e5ee38c9b52548f5a52a44e294565a">event_data</a>(_In_ const long &amp;data)</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#a5fc13dcb7a81ded6e5fa3acd9eabaf3d">event_data</a>(_In_ const unsigned long &amp;data)</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#a4944c96e443b154bc35594e401f3ee80">event_data</a>(_In_ const GUID &amp;data)</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#a6496df3ae53c55ba1febb7a527390aa4">event_data</a>(_In_opt_z_ const char *data)</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#ad4c0e6491b030575b6e6fc8ad6d9ccf0">event_data</a>(_In_opt_z_ const wchar_t *data)</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#a16e3bc35a94bbc8ab15959ae2fe4bac4">event_data</a>(_In_ const std::basic_string&lt; _Elem, _Traits, _Ax &gt; &amp;data)</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event__data.html#a6c89606a2a00bdcbc6399eaab76d38da">event_data</a>(_In_bytecount_(size) const void *data, _In_ ULONG size)</td><td class="entry"><a class="el" href="classwinstd_1_1event__data.html">winstd::event_data</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

View File

@ -0,0 +1,539 @@
<!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: winstd::event_data Class 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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1event__data.html">event_data</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classwinstd_1_1event__data-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::event_data Class Reference<div class="ingroups"><a class="el" href="group___win_std_e_t_w_a_p_i.html">Event Tracing for Windows API</a></div></div></div>
</div><!--header-->
<div class="contents">
<p>EVENT_DATA_DESCRIPTOR wrapper.
<a href="classwinstd_1_1event__data.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_e_t_w_8h_source.html">ETW.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for winstd::event_data:</div>
<div class="dyncontent">
<div class="center">
<img src="classwinstd_1_1event__data.png" alt=""/>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:acb4032673a3b2376eb0d62115bb37c4f"><td class="memItemLeft" align="right" valign="top"><a id="acb4032673a3b2376eb0d62115bb37c4f" name="acb4032673a3b2376eb0d62115bb37c4f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>event_data</b> ()</td></tr>
<tr class="memdesc:acb4032673a3b2376eb0d62115bb37c4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct empty class. <br /></td></tr>
<tr class="separator:acb4032673a3b2376eb0d62115bb37c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb263040db5d65718adcfa069fb6534e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event__data.html#acb263040db5d65718adcfa069fb6534e">event_data</a> (_In_ const char &amp;data)</td></tr>
<tr class="memdesc:acb263040db5d65718adcfa069fb6534e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct class pointing to an <code>char</code>. <a href="classwinstd_1_1event__data.html#acb263040db5d65718adcfa069fb6534e">More...</a><br /></td></tr>
<tr class="separator:acb263040db5d65718adcfa069fb6534e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8fcf1275490c1d1806fd573ce6010a8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event__data.html#ab8fcf1275490c1d1806fd573ce6010a8">event_data</a> (_In_ const unsigned char &amp;data)</td></tr>
<tr class="memdesc:ab8fcf1275490c1d1806fd573ce6010a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct class pointing to an <code>unsigned char</code>. <a href="classwinstd_1_1event__data.html#ab8fcf1275490c1d1806fd573ce6010a8">More...</a><br /></td></tr>
<tr class="separator:ab8fcf1275490c1d1806fd573ce6010a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aebfd39d490ebfd900dbf84b4cac69ce4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event__data.html#aebfd39d490ebfd900dbf84b4cac69ce4">event_data</a> (_In_ const int &amp;data)</td></tr>
<tr class="memdesc:aebfd39d490ebfd900dbf84b4cac69ce4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct class pointing to an <code>int</code>. <a href="classwinstd_1_1event__data.html#aebfd39d490ebfd900dbf84b4cac69ce4">More...</a><br /></td></tr>
<tr class="separator:aebfd39d490ebfd900dbf84b4cac69ce4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbb8c154fec1fec0a01d8d82c3211516"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event__data.html#abbb8c154fec1fec0a01d8d82c3211516">event_data</a> (_In_ const unsigned int &amp;data)</td></tr>
<tr class="memdesc:abbb8c154fec1fec0a01d8d82c3211516"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct class pointing to an <code>unsigned int</code>. <a href="classwinstd_1_1event__data.html#abbb8c154fec1fec0a01d8d82c3211516">More...</a><br /></td></tr>
<tr class="separator:abbb8c154fec1fec0a01d8d82c3211516"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1e5ee38c9b52548f5a52a44e294565a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event__data.html#ac1e5ee38c9b52548f5a52a44e294565a">event_data</a> (_In_ const long &amp;data)</td></tr>
<tr class="memdesc:ac1e5ee38c9b52548f5a52a44e294565a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct class pointing to a <code>long</code>. <a href="classwinstd_1_1event__data.html#ac1e5ee38c9b52548f5a52a44e294565a">More...</a><br /></td></tr>
<tr class="separator:ac1e5ee38c9b52548f5a52a44e294565a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fc13dcb7a81ded6e5fa3acd9eabaf3d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event__data.html#a5fc13dcb7a81ded6e5fa3acd9eabaf3d">event_data</a> (_In_ const unsigned long &amp;data)</td></tr>
<tr class="memdesc:a5fc13dcb7a81ded6e5fa3acd9eabaf3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct class pointing to an <code>unsigned long</code>. <a href="classwinstd_1_1event__data.html#a5fc13dcb7a81ded6e5fa3acd9eabaf3d">More...</a><br /></td></tr>
<tr class="separator:a5fc13dcb7a81ded6e5fa3acd9eabaf3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4944c96e443b154bc35594e401f3ee80"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event__data.html#a4944c96e443b154bc35594e401f3ee80">event_data</a> (_In_ const GUID &amp;data)</td></tr>
<tr class="memdesc:a4944c96e443b154bc35594e401f3ee80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct class pointing to a <code>GUID</code>. <a href="classwinstd_1_1event__data.html#a4944c96e443b154bc35594e401f3ee80">More...</a><br /></td></tr>
<tr class="separator:a4944c96e443b154bc35594e401f3ee80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6496df3ae53c55ba1febb7a527390aa4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event__data.html#a6496df3ae53c55ba1febb7a527390aa4">event_data</a> (_In_opt_z_ const char *data)</td></tr>
<tr class="memdesc:a6496df3ae53c55ba1febb7a527390aa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct class pointing to a string. <a href="classwinstd_1_1event__data.html#a6496df3ae53c55ba1febb7a527390aa4">More...</a><br /></td></tr>
<tr class="separator:a6496df3ae53c55ba1febb7a527390aa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4c0e6491b030575b6e6fc8ad6d9ccf0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event__data.html#ad4c0e6491b030575b6e6fc8ad6d9ccf0">event_data</a> (_In_opt_z_ const wchar_t *data)</td></tr>
<tr class="memdesc:ad4c0e6491b030575b6e6fc8ad6d9ccf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct class pointing to a wide string. <a href="classwinstd_1_1event__data.html#ad4c0e6491b030575b6e6fc8ad6d9ccf0">More...</a><br /></td></tr>
<tr class="separator:ad4c0e6491b030575b6e6fc8ad6d9ccf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16e3bc35a94bbc8ab15959ae2fe4bac4"><td class="memTemplParams" colspan="2">template&lt;class _Elem , class _Traits , class _Ax &gt; </td></tr>
<tr class="memitem:a16e3bc35a94bbc8ab15959ae2fe4bac4"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event__data.html#a16e3bc35a94bbc8ab15959ae2fe4bac4">event_data</a> (_In_ const std::basic_string&lt; _Elem, _Traits, _Ax &gt; &amp;data)</td></tr>
<tr class="memdesc:a16e3bc35a94bbc8ab15959ae2fe4bac4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Template to construct pointing to a <code>std::basic_string&lt;&gt;</code>. <a href="classwinstd_1_1event__data.html#a16e3bc35a94bbc8ab15959ae2fe4bac4">More...</a><br /></td></tr>
<tr class="separator:a16e3bc35a94bbc8ab15959ae2fe4bac4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c89606a2a00bdcbc6399eaab76d38da"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1event__data.html#a6c89606a2a00bdcbc6399eaab76d38da">event_data</a> (_In_bytecount_(size) const void *data, _In_ ULONG size)</td></tr>
<tr class="memdesc:a6c89606a2a00bdcbc6399eaab76d38da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct class pointing to binary data. <a href="classwinstd_1_1event__data.html#a6c89606a2a00bdcbc6399eaab76d38da">More...</a><br /></td></tr>
<tr class="separator:a6c89606a2a00bdcbc6399eaab76d38da"><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 >EVENT_DATA_DESCRIPTOR wrapper. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="acb263040db5d65718adcfa069fb6534e" name="acb263040db5d65718adcfa069fb6534e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb263040db5d65718adcfa069fb6534e">&#9670;&nbsp;</a></span>event_data() <span class="overload">[1/11]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::event_data::event_data </td>
<td>(</td>
<td class="paramtype">_In_ const char &amp;&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct class pointing to an <code>char</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Event data</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This class saves a reference to the data only. Therefore, data must be kept available. </dd></dl>
</div>
</div>
<a id="ab8fcf1275490c1d1806fd573ce6010a8" name="ab8fcf1275490c1d1806fd573ce6010a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8fcf1275490c1d1806fd573ce6010a8">&#9670;&nbsp;</a></span>event_data() <span class="overload">[2/11]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::event_data::event_data </td>
<td>(</td>
<td class="paramtype">_In_ const unsigned char &amp;&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct class pointing to an <code>unsigned char</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Event data</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This class saves a reference to the data only. Therefore, data must be kept available. </dd></dl>
</div>
</div>
<a id="aebfd39d490ebfd900dbf84b4cac69ce4" name="aebfd39d490ebfd900dbf84b4cac69ce4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebfd39d490ebfd900dbf84b4cac69ce4">&#9670;&nbsp;</a></span>event_data() <span class="overload">[3/11]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::event_data::event_data </td>
<td>(</td>
<td class="paramtype">_In_ const int &amp;&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct class pointing to an <code>int</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Event data</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This class saves a reference to the data only. Therefore, data must be kept available. </dd></dl>
</div>
</div>
<a id="abbb8c154fec1fec0a01d8d82c3211516" name="abbb8c154fec1fec0a01d8d82c3211516"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abbb8c154fec1fec0a01d8d82c3211516">&#9670;&nbsp;</a></span>event_data() <span class="overload">[4/11]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::event_data::event_data </td>
<td>(</td>
<td class="paramtype">_In_ const unsigned int &amp;&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct class pointing to an <code>unsigned int</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Event data</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This class saves a reference to the data only. Therefore, data must be kept available. </dd></dl>
</div>
</div>
<a id="ac1e5ee38c9b52548f5a52a44e294565a" name="ac1e5ee38c9b52548f5a52a44e294565a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1e5ee38c9b52548f5a52a44e294565a">&#9670;&nbsp;</a></span>event_data() <span class="overload">[5/11]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::event_data::event_data </td>
<td>(</td>
<td class="paramtype">_In_ const long &amp;&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct class pointing to a <code>long</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Event data</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This class saves a reference to the data only. Therefore, data must be kept available. </dd></dl>
</div>
</div>
<a id="a5fc13dcb7a81ded6e5fa3acd9eabaf3d" name="a5fc13dcb7a81ded6e5fa3acd9eabaf3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5fc13dcb7a81ded6e5fa3acd9eabaf3d">&#9670;&nbsp;</a></span>event_data() <span class="overload">[6/11]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::event_data::event_data </td>
<td>(</td>
<td class="paramtype">_In_ const unsigned long &amp;&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct class pointing to an <code>unsigned long</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Event data</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This class saves a reference to the data only. Therefore, data must be kept available. </dd></dl>
</div>
</div>
<a id="a4944c96e443b154bc35594e401f3ee80" name="a4944c96e443b154bc35594e401f3ee80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4944c96e443b154bc35594e401f3ee80">&#9670;&nbsp;</a></span>event_data() <span class="overload">[7/11]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::event_data::event_data </td>
<td>(</td>
<td class="paramtype">_In_ const GUID &amp;&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct class pointing to a <code>GUID</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Event data</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This class saves a reference to the data only. Therefore, data must be kept available. </dd></dl>
</div>
</div>
<a id="a6496df3ae53c55ba1febb7a527390aa4" name="a6496df3ae53c55ba1febb7a527390aa4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6496df3ae53c55ba1febb7a527390aa4">&#9670;&nbsp;</a></span>event_data() <span class="overload">[8/11]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::event_data::event_data </td>
<td>(</td>
<td class="paramtype">_In_opt_z_ const char *&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct class pointing to a string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Event data. When <code>NULL</code>, the event data will be <code>"(null)"</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This class saves a reference to the data only. Therefore, data must be kept available. </dd></dl>
</div>
</div>
<a id="ad4c0e6491b030575b6e6fc8ad6d9ccf0" name="ad4c0e6491b030575b6e6fc8ad6d9ccf0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4c0e6491b030575b6e6fc8ad6d9ccf0">&#9670;&nbsp;</a></span>event_data() <span class="overload">[9/11]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::event_data::event_data </td>
<td>(</td>
<td class="paramtype">_In_opt_z_ const wchar_t *&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct class pointing to a wide string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Event data. When <code>NULL</code>, the event data will be <code>"(null)"</code>.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This class saves a reference to the data only. Therefore, data must be kept available. </dd></dl>
</div>
</div>
<a id="a16e3bc35a94bbc8ab15959ae2fe4bac4" name="a16e3bc35a94bbc8ab15959ae2fe4bac4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16e3bc35a94bbc8ab15959ae2fe4bac4">&#9670;&nbsp;</a></span>event_data() <span class="overload">[10/11]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class _Elem , class _Traits , class _Ax &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::event_data::event_data </td>
<td>(</td>
<td class="paramtype">_In_ const std::basic_string&lt; _Elem, _Traits, _Ax &gt; &amp;&#160;</td>
<td class="paramname"><em>data</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Template to construct pointing to a <code>std::basic_string&lt;&gt;</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Event data</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This class saves a reference to the data only. Therefore, data must be kept available. </dd></dl>
</div>
</div>
<a id="a6c89606a2a00bdcbc6399eaab76d38da" name="a6c89606a2a00bdcbc6399eaab76d38da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c89606a2a00bdcbc6399eaab76d38da">&#9670;&nbsp;</a></span>event_data() <span class="overload">[11/11]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::event_data::event_data </td>
<td>(</td>
<td class="paramtype">_In_bytecount_(size) const void *&#160;</td>
<td class="paramname"><em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">_In_ ULONG&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Construct class pointing to binary data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Pointer to event data </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Size of <code>data</code> in bytes</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This class saves a reference to the data only. Therefore, data must be kept available. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/WinStd/<a class="el" href="_e_t_w_8h_source.html">ETW.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

View File

@ -0,0 +1,91 @@
<!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: Member List</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"><b>winstd</b></li><li class="navelem"><a class="el" href="classwinstd_1_1event__fn__auto.html">event_fn_auto</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">winstd::event_fn_auto Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1event__fn__auto.html">winstd::event_fn_auto</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html#a48da2662d143d93453c83b326f9e51f0">event_fn_auto</a>(_In_ event_provider &amp;ep, _In_ const EVENT_DESCRIPTOR *event_cons, _In_ const EVENT_DESCRIPTOR *event_dest, _In_z_ LPCSTR pszFnName)</td><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html">winstd::event_fn_auto</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html#a3f5c7a8583d4906f01e9cf77e7c72d5f">event_fn_auto</a>(_In_ const event_fn_auto &amp;other)</td><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html">winstd::event_fn_auto</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html#abf49424fe06d79576ce1bd0b88317328">event_fn_auto</a>(_Inout_ event_fn_auto &amp;&amp;other) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html">winstd::event_fn_auto</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html#acbfdaed91d8a3aa3346d33d1a548457a">m_ep</a></td><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html">winstd::event_fn_auto</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html#a03080fbd3201b899cce1ab5bb59dca2f">m_event_dest</a></td><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html">winstd::event_fn_auto</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html#ad17409fc9cdaa8b78a9f38e39e21a9f0">m_fn_name</a></td><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html">winstd::event_fn_auto</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html#a5494dec6a8f6c0c6e209df2c52584cc1">operator=</a>(_In_ const event_fn_auto &amp;other)</td><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html">winstd::event_fn_auto</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html#a457c12be555c711a3de8381211a681d6">operator=</a>(_Inout_ event_fn_auto &amp;&amp;other) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html">winstd::event_fn_auto</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html#a764a83cffe2ed2ae41e9d973073d5cb0">~event_fn_auto</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1event__fn__auto.html">winstd::event_fn_auto</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 4 2022 12:23:56 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>

Some files were not shown because too many files have changed in this diff Show More