WinStd/classwinstd_1_1dplhandle.html

554 lines
47 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<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.8"/>
<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">Windows Win32 API using Standard C++</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</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 trivial handle duplication.
<a href="classwinstd_1_1dplhandle.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_common_8h_source.html">WinStd/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" id="r_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:ab1ac74d5f212fddc217d1a8190a01177" id="r_ab1ac74d5f212fddc217d1a8190a01177"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#ab1ac74d5f212fddc217d1a8190a01177">dplhandle</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:ab1ac74d5f212fddc217d1a8190a01177"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new class instance with an already available object handle. <br /></td></tr>
<tr class="separator:ab1ac74d5f212fddc217d1a8190a01177"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7439fc22a5754f8aeb2b0e1afd25b9c" id="r_ac7439fc22a5754f8aeb2b0e1afd25b9c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#ac7439fc22a5754f8aeb2b0e1afd25b9c">dplhandle</a> (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)</td></tr>
<tr class="memdesc:ac7439fc22a5754f8aeb2b0e1afd25b9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:ac7439fc22a5754f8aeb2b0e1afd25b9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1aa19e060402006d8ff8404be6b07c3" id="r_ac1aa19e060402006d8ff8404be6b07c3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#ac1aa19e060402006d8ff8404be6b07c3">dplhandle</a> (<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:ac1aa19e060402006d8ff8404be6b07c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
<tr class="separator:ac1aa19e060402006d8ff8404be6b07c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31cec3cdf4ee749b1aef4b4cd7652fb7" id="r_a31cec3cdf4ee749b1aef4b4cd7652fb7"><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#a31cec3cdf4ee749b1aef4b4cd7652fb7">operator=</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a31cec3cdf4ee749b1aef4b4cd7652fb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <br /></td></tr>
<tr class="separator:a31cec3cdf4ee749b1aef4b4cd7652fb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcccb97671b96da3623f700a93bb5c39" id="r_abcccb97671b96da3623f700a93bb5c39"><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#abcccb97671b96da3623f700a93bb5c39">operator=</a> (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:abcccb97671b96da3623f700a93bb5c39"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <br /></td></tr>
<tr class="separator:abcccb97671b96da3623f700a93bb5c39"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a546f1f737bc3da0c9b19967d849776d3" id="r_a546f1f737bc3da0c9b19967d849776d3"><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#a546f1f737bc3da0c9b19967d849776d3">operator=</a> (<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:a546f1f737bc3da0c9b19967d849776d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <br /></td></tr>
<tr class="separator:a546f1f737bc3da0c9b19967d849776d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265" id="r_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. <br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5563977cadc13e81808946174659d1d3" id="r_a5563977cadc13e81808946174659d1d3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1dplhandle.html#a5563977cadc13e81808946174659d1d3">attach_duplicated</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h)</td></tr>
<tr class="memdesc:a5563977cadc13e81808946174659d1d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates an object handle and sets a new object handle. <br /></td></tr>
<tr class="separator:a5563977cadc13e81808946174659d1d3"><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" id="r_a1b9c4f9529c9efa7d16dec8bab3b00e4"><td class="memItemLeft" align="right" valign="top">
&#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:a4a0f9b6caadf4a55c7bc0dcc0ce39dac inherit pub_methods_classwinstd_1_1handle" id="r_a4a0f9b6caadf4a55c7bc0dcc0ce39dac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a4a0f9b6caadf4a55c7bc0dcc0ce39dac 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. <br /></td></tr>
<tr class="separator:a4a0f9b6caadf4a55c7bc0dcc0ce39dac inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac52f342530bb97ce1ff255a7054547d5 inherit pub_methods_classwinstd_1_1handle" id="r_ac52f342530bb97ce1ff255a7054547d5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ac52f342530bb97ce1ff255a7054547d5">handle</a> (<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:ac52f342530bb97ce1ff255a7054547d5 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
<tr class="separator:ac52f342530bb97ce1ff255a7054547d5 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a591e006af92e4d088fb9c1ed974c0923 inherit pub_methods_classwinstd_1_1handle" id="r_a591e006af92e4d088fb9c1ed974c0923"><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#a591e006af92e4d088fb9c1ed974c0923">operator=</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a591e006af92e4d088fb9c1ed974c0923 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <br /></td></tr>
<tr class="separator:a591e006af92e4d088fb9c1ed974c0923 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6326bbc54ec3441e41f30bc1ec4d6a6c inherit pub_methods_classwinstd_1_1handle" id="r_a6326bbc54ec3441e41f30bc1ec4d6a6c"><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#a6326bbc54ec3441e41f30bc1ec4d6a6c">operator=</a> (<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:a6326bbc54ec3441e41f30bc1ec4d6a6c inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment. <br /></td></tr>
<tr class="separator:a6326bbc54ec3441e41f30bc1ec4d6a6c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86114637674c82d6fd96d7b3eae39ac8 inherit pub_methods_classwinstd_1_1handle" id="r_a86114637674c82d6fd96d7b3eae39ac8"><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. <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" id="r_a0f1ac60cf62e41c24394bf0e3457fbd9"><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.). <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" id="r_a2bd2de7bb89dcebe2c9379dd54ee79c1"><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. <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" id="r_a285ada5936fe7afdd12eed70b38c2084"><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. <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" id="r_a5df08ecb32b9040bf7342479aee2286c"><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 invalid. <br /></td></tr>
<tr class="separator:a5df08ecb32b9040bf7342479aee2286c inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c4515d0d1071cab5c675e926aa2dc92 inherit pub_methods_classwinstd_1_1handle" id="r_a4c4515d0d1071cab5c675e926aa2dc92"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a4c4515d0d1071cab5c675e926aa2dc92">operator&lt;</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a4c4515d0d1071cab5c675e926aa2dc92 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than? <br /></td></tr>
<tr class="separator:a4c4515d0d1071cab5c675e926aa2dc92 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9e9538d58b952799db4a1c68b0184b9 inherit pub_methods_classwinstd_1_1handle" id="r_af9e9538d58b952799db4a1c68b0184b9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#af9e9538d58b952799db4a1c68b0184b9">operator&lt;=</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:af9e9538d58b952799db4a1c68b0184b9 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle less than or equal to? <br /></td></tr>
<tr class="separator:af9e9538d58b952799db4a1c68b0184b9 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20e325dde8a25d1e3a7efb50b431641b inherit pub_methods_classwinstd_1_1handle" id="r_a20e325dde8a25d1e3a7efb50b431641b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a20e325dde8a25d1e3a7efb50b431641b">operator&gt;=</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a20e325dde8a25d1e3a7efb50b431641b inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than or equal to? <br /></td></tr>
<tr class="separator:a20e325dde8a25d1e3a7efb50b431641b inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7361f6159006e3f87cbe10ba2a76329 inherit pub_methods_classwinstd_1_1handle" id="r_ae7361f6159006e3f87cbe10ba2a76329"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ae7361f6159006e3f87cbe10ba2a76329">operator&gt;</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:ae7361f6159006e3f87cbe10ba2a76329 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle greater than? <br /></td></tr>
<tr class="separator:ae7361f6159006e3f87cbe10ba2a76329 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6df58f6c131ab4288acb96d5b8f3012e inherit pub_methods_classwinstd_1_1handle" id="r_a6df58f6c131ab4288acb96d5b8f3012e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#a6df58f6c131ab4288acb96d5b8f3012e">operator!=</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:a6df58f6c131ab4288acb96d5b8f3012e inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle not equal to? <br /></td></tr>
<tr class="separator:a6df58f6c131ab4288acb96d5b8f3012e inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6021e9c11accef6b813948dc4601ddc inherit pub_methods_classwinstd_1_1handle" id="r_ab6021e9c11accef6b813948dc4601ddc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ab6021e9c11accef6b813948dc4601ddc">operator==</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const</td></tr>
<tr class="memdesc:ab6021e9c11accef6b813948dc4601ddc inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is handle equal to? <br /></td></tr>
<tr class="separator:ab6021e9c11accef6b813948dc4601ddc inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2a98042c3b88fda687e34d370756f11 inherit pub_methods_classwinstd_1_1handle" id="r_ab2a98042c3b88fda687e34d370756f11"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">attach</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:ab2a98042c3b88fda687e34d370756f11 inherit pub_methods_classwinstd_1_1handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets a new object handle for the class. <br /></td></tr>
<tr class="separator:ab2a98042c3b88fda687e34d370756f11 inherit pub_methods_classwinstd_1_1handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5acf6ce53e092b8d4d53f909cf321f9 inherit pub_methods_classwinstd_1_1handle" id="r_ad5acf6ce53e092b8d4d53f909cf321f9"><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. <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" id="r_a706aaab7691a472c608890f8e5dd0d96"><td class="memItemLeft" align="right" valign="top">
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:a0d7900f44fdc921b41e07517abdc1ec6" id="r_a0d7900f44fdc921b41e07517abdc1ec6"><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#a0d7900f44fdc921b41e07517abdc1ec6">duplicate_internal</a> (<a class="el" href="classwinstd_1_1handle.html#a3dda19199ecfbc378c932e7d84d0ea81">handle_type</a> h) const =0</td></tr>
<tr class="memdesc:a0d7900f44fdc921b41e07517abdc1ec6"><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. On failure, it should throw appropriate exception describing the cause, rather than return an invalid handle. <br /></td></tr>
<tr class="separator:a0d7900f44fdc921b41e07517abdc1ec6"><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" id="r_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 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. <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" id="r_a3dda19199ecfbc378c932e7d84d0ea81"><td class="memItemLeft" align="right" valign="top">
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" id="r_gacf43e306968474166474090690857e1c"><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" id="r_aabde3f16fd98b06b3b0282ef7806eb59"><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"><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 trivial handle duplication. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab1ac74d5f212fddc217d1a8190a01177" name="ab1ac74d5f212fddc217d1a8190a01177"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1ac74d5f212fddc217d1a8190a01177">&#9670;&#160;</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"><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="ac7439fc22a5754f8aeb2b0e1afd25b9c" name="ac7439fc22a5754f8aeb2b0e1afd25b9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7439fc22a5754f8aeb2b0e1afd25b9c">&#9670;&#160;</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">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> </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="ac1aa19e060402006d8ff8404be6b07c3" name="ac1aa19e060402006d8ff8404be6b07c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1aa19e060402006d8ff8404be6b07c3">&#9670;&#160;</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"><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="a5563977cadc13e81808946174659d1d3" name="a5563977cadc13e81808946174659d1d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5563977cadc13e81808946174659d1d3">&#9670;&#160;</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">void <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle</a>&lt; T, INVAL &gt;::attach_duplicated </td>
<td>(</td>
<td class="paramtype"><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>
</div>
</div>
<a id="a48e66c8979560019e339867de944a265" name="a48e66c8979560019e339867de944a265"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48e66c8979560019e339867de944a265">&#9670;&#160;</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="a0d7900f44fdc921b41e07517abdc1ec6" name="a0d7900f44fdc921b41e07517abdc1ec6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d7900f44fdc921b41e07517abdc1ec6">&#9670;&#160;</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"><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> </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. On failure, it should throw appropriate exception describing the cause, rather than return an invalid 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>Duplicated object handle </dd></dl>
<p>Implemented in <a class="el" href="classwinstd_1_1com__obj.html#a5967604886ffa8c41db730f8c21f10f2">winstd::com_obj&lt; T &gt;</a>, <a class="el" href="classwinstd_1_1bstr.html#a1c6f4421d370e6029dfbf71315cdedc0">winstd::bstr</a>, <a class="el" href="classwinstd_1_1safearray.html#a7b4972e8b65210cf5b6a50610dcb4b8d">winstd::safearray</a>, <a class="el" href="classwinstd_1_1cert__context.html#ae39c2de0d8e9d69e524404db812e7ba7">winstd::cert_context</a>, <a class="el" href="classwinstd_1_1cert__chain__context.html#afbb8bf6ef0627268fd327059f51b121a">winstd::cert_chain_context</a>, <a class="el" href="classwinstd_1_1crypt__hash.html#af18ed660a44a2356c05e88fe04b7c722">winstd::crypt_hash</a>, <a class="el" href="classwinstd_1_1crypt__key.html#a304f9d565576b6984f6e06bacb8571b3">winstd::crypt_key</a>, and <a class="el" href="classwinstd_1_1eap__packet.html#af7e0415d3a524c0e79fc429f3911c809">winstd::eap_packet</a>.</p>
</div>
</div>
<a id="abcccb97671b96da3623f700a93bb5c39" name="abcccb97671b96da3623f700a93bb5c39"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abcccb97671b96da3623f700a93bb5c39">&#9670;&#160;</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">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="a546f1f737bc3da0c9b19967d849776d3" name="a546f1f737bc3da0c9b19967d849776d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a546f1f737bc3da0c9b19967d849776d3">&#9670;&#160;</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"><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>
<a id="a31cec3cdf4ee749b1aef4b4cd7652fb7" name="a31cec3cdf4ee749b1aef4b4cd7652fb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a31cec3cdf4ee749b1aef4b4cd7652fb7">&#9670;&#160;</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"><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>
<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 Wed Oct 18 2023 10:37:20 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.8
</small></address>
</body>
</html>