WinStd/_g_d_i_8h_source.html

236 lines
35 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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.6"/>
<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">Windows Win32 API using Standard C++</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.6 -->
<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"><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-2023 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="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">#pragma once</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="preprocessor">#include &quot;Common.h&quot;</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="l00016" name="l00016"></a><span class="lineno"> 16</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> T&gt;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="classwinstd_1_1gdi__handle.html"> 21</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="l00022" name="l00022"></a><span class="lineno"> 22</span> {</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</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="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="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classwinstd_1_1gdi__handle.html#aae79abc9495f415a548d7f1f1ce4dab2"> 31</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="l00032" name="l00032"></a><span class="lineno"> 32</span> {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</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="l00034" name="l00034"></a><span class="lineno"> 34</span> <a class="code hl_function" href="classwinstd_1_1gdi__handle.html#a777cd2403d6b8d0fb0a4b69c82fcca87">free_internal</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> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classwinstd_1_1gdi__handle.html#a777cd2403d6b8d0fb0a4b69c82fcca87"> 43</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="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> DeleteObject(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</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> };</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc.html"> 52</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="l00053" name="l00053"></a><span class="lineno"> 53</span> {</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</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="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc.html#ae8c5722935c8a1c3f6a1857679f4563c"> 62</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="l00063" name="l00063"></a><span class="lineno"> 63</span> {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</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="l00065" name="l00065"></a><span class="lineno"> 65</span> <a class="code hl_function" href="classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557">free_internal</a>();</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="keyword">protected</span>:</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557"> 74</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="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> DeleteDC(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</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="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="classwinstd_1_1window__dc.html"> 83</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="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="l00089" name="l00089"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a82c191df2785d2d83517d44744b28e0a"> 89</a></span> <a class="code hl_function" href="classwinstd_1_1window__dc.html#a82c191df2785d2d83517d44744b28e0a">window_dc</a>() noexcept :</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_variable" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">m_hwnd</a>(NULL)</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="l00096" name="l00096"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a2b4c7b6f55d8d87dedadf08457031d12"> 96</a></span> <a class="code hl_function" href="classwinstd_1_1window__dc.html#a2b4c7b6f55d8d87dedadf08457031d12">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="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>(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>(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="l00104" name="l00104"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#af4841fbba9da009955938892fad8de0e"> 104</a></span> <a class="code hl_function" href="classwinstd_1_1window__dc.html#af4841fbba9da009955938892fad8de0e">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="l00105" name="l00105"></a><span class="lineno"> 105</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="l00106" name="l00106"></a><span class="lineno"> 106</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="l00107" name="l00107"></a><span class="lineno"> 107</span> {}</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="classwinstd_1_1window__dc.html#ad5d431027a698fef783407ba9e9d167b"> 112</a></span> <a class="code hl_class" href="classwinstd_1_1window__dc.html">window_dc</a>&amp; <a class="code hl_function" href="classwinstd_1_1window__dc.html#ad5d431027a698fef783407ba9e9d167b">operator=</a>(_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="l00113" name="l00113"></a><span class="lineno"> 113</span> {</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&lt;handle_type, NULL&gt;::operator=</a>(std::move(h));</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</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="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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> <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="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a3fd01c5264443520462cb7cab886a79b"> 127</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="l00128" name="l00128"></a><span class="lineno"> 128</span> {</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</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="l00130" name="l00130"></a><span class="lineno"> 130</span> <a class="code hl_function" href="classwinstd_1_1window__dc.html#a351bae4203ad766c94f4fc6eac74e98a">free_internal</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="l00139" name="l00139"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a351bae4203ad766c94f4fc6eac74e98a"> 139</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="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</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="l00142" name="l00142"></a><span class="lineno"> 142</span> }</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3"> 145</a></span> HWND <a class="code hl_variable" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">m_hwnd</a>; </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> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html"> 151</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="l00152" name="l00152"></a><span class="lineno"> 152</span> {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</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="l00154" name="l00154"></a><span class="lineno"> 154</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="l00155" name="l00155"></a><span class="lineno"> 155</span> </div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#a4cb5b528376651a59eb9bbb8471c3f22"> 162</a></span> <a class="code hl_function" href="classwinstd_1_1dc__selector.html#a4cb5b528376651a59eb9bbb8471c3f22">dc_selector</a>(_In_ HDC hdc, _In_ HGDIOBJ h) noexcept :</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3">m_hdc</a>(hdc),</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</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="l00165" name="l00165"></a><span class="lineno"> 165</span> {</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#a6e4daf6736cab31fc696dd3adfe4bcfd"> 173</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="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">if</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> 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="l00177" name="l00177"></a><span class="lineno"> 177</span> }</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#aacb4060094f2c4b1747ffa76455b235d"> 184</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="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">return</span> <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e">m_orig</a>;</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> }</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3"> 190</a></span> HDC <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3">m_hdc</a>; </div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e"> 191</a></span> HGDIOBJ <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e">m_orig</a>; </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="l00195" name="l00195"></a><span class="lineno"> 195</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:152</div></div>
<div class="ttc" id="aclasswinstd_1_1dc__selector_html_a4cb5b528376651a59eb9bbb8471c3f22"><div class="ttname"><a href="classwinstd_1_1dc__selector.html#a4cb5b528376651a59eb9bbb8471c3f22">winstd::dc_selector::dc_selector</a></div><div class="ttdeci">dc_selector(HDC hdc, 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:162</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:173</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:191</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:184</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:190</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:53</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:74</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:62</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:22</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:43</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:31</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:569</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:574</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:823</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:84</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:145</div></div>
<div class="ttc" id="aclasswinstd_1_1window__dc_html_a2b4c7b6f55d8d87dedadf08457031d12"><div class="ttname"><a href="classwinstd_1_1window__dc.html#a2b4c7b6f55d8d87dedadf08457031d12">winstd::window_dc::window_dc</a></div><div class="ttdeci">window_dc(handle_type h, HWND hwnd) noexcept</div><div class="ttdoc">Initializes a device context from existing data.</div><div class="ttdef"><b>Definition:</b> GDI.h:96</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:139</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:127</div></div>
<div class="ttc" id="aclasswinstd_1_1window__dc_html_a82c191df2785d2d83517d44744b28e0a"><div class="ttname"><a href="classwinstd_1_1window__dc.html#a82c191df2785d2d83517d44744b28e0a">winstd::window_dc::window_dc</a></div><div class="ttdeci">window_dc() noexcept</div><div class="ttdoc">Initializes an empty device context.</div><div class="ttdef"><b>Definition:</b> GDI.h:89</div></div>
<div class="ttc" id="aclasswinstd_1_1window__dc_html_ad5d431027a698fef783407ba9e9d167b"><div class="ttname"><a href="classwinstd_1_1window__dc.html#ad5d431027a698fef783407ba9e9d167b">winstd::window_dc::operator=</a></div><div class="ttdeci">window_dc &amp; operator=(window_dc &amp;&amp;h) noexcept</div><div class="ttdoc">Copy an existing device context.</div><div class="ttdef"><b>Definition:</b> GDI.h:112</div></div>
<div class="ttc" id="aclasswinstd_1_1window__dc_html_af4841fbba9da009955938892fad8de0e"><div class="ttname"><a href="classwinstd_1_1window__dc.html#af4841fbba9da009955938892fad8de0e">winstd::window_dc::window_dc</a></div><div class="ttdeci">window_dc(window_dc &amp;&amp;h) noexcept</div><div class="ttdoc">Move an existing device context.</div><div class="ttdef"><b>Definition:</b> GDI.h:104</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:66</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:74</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:163</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:579</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Dec 29 2022 10:09:34 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.6
</small></address>
</body>
</html>