Compare commits

..

No commits in common. "master" and "gh-pages" have entirely different histories.

537 changed files with 71765 additions and 14566 deletions

View File

@ -1,61 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '30 22 * * 2'
jobs:
analyze:
name: Analyze
runs-on: windows-2019
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
- name: Prepare MSVC
uses: bus1/cabuild/action/msdevshell@v1
with:
architecture: x64
- run: msbuild UnitTests\UnitTests.sln -t:Build -p:Configuration=Release -p:Platform=x64
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View File

@ -1,39 +0,0 @@
# This is a basic workflow to help you get started with Actions
name: Doxygen Action
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
- name: Doxygen Action
uses: mattnotmitt/doxygen-action@v1.1.0
with:
# Path to Doxyfile
doxyfile-path: "./Doxyfile" # default is ./Doxyfile
# Working directory
working-directory: "." # default is .
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
# Default Doxyfile build documentation to html directory.
# Change the directory if changes in Doxyfile
publish_dir: ./doc/html

1
.gitignore vendored
View File

@ -1 +0,0 @@
/doc

0
.nojekyll Normal file
View File

2664
Doxyfile

File diff suppressed because it is too large Load Diff

10
LICENSE
View File

@ -1,10 +0,0 @@
The MIT License (MIT)
Copyright © 1991-2025 Amebis
Copyright © 2016 GÉANT
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -1,83 +0,0 @@
# WinStd
Provides templates and function helpers for Windows Win32 API using Standard C++ in Microsoft Visual C++ 2017-2022
## Features
### Portable
This project does not require building. Just `#include` individual files from this repository into your source code and get started.
### Memory and Resource Helper Classes
Simplify memory and resource management. The classes release memory and resources automatically. They are like _smart-pointers_ for various Windows resources. Once created, you use the class instance as a snap-in replacement for pointers/handles parameters in the standard Win32 API function calls.
#### Example
```C++
// Load and set icon.
winstd::library lib_shell32(LoadLibraryEx(_T("shell32.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE));
if (!lib_shell32)
throw winstd::win_runtime_error("LoadLibraryEx failed");
m_note_icon->SetIcon(wxLoadIconFromResource(lib_shell32, MAKEINTRESOURCE(48)));
```
### Functions and Templates
Different Win32 API functions have different ways of returning variable-sized data. Getting tired of carefully studying MSDN for each particular Win32 API function how to preallocate the output memory correctly? We too...
WinStd provides a subset of Win32 API identically named functions (C++ polymorphism to the rescue), where one can use `std::string`, `std::wstring`, `std::vector<>` etc. as an output parameter. WinStd handles all the dirty work with memory allocation for you, so you can focus on your code.
#### Example
```C++
// Encode response as OEM.
std::string response;
WideCharToMultiByte(CP_OEMCP, 0, L"Copyright \u00A9 2017", -1, response, NULL, NULL);
std::cout << response.c_str() << std::endl;
```
### String Formatters
For those situations where one must quckly compose a temporary string using `sprintf()` or `FormatMessage()`. Or, convert a GUID to a string on the fly.
#### Example
```C++
if (dwMaxSendPacketSize < sizeof(EapPacket))
throw std::invalid_argument(
winstd::string_printf(
"Maximum packet size too small (minimum: %zu, available: %u)",
sizeof(EapPacket) + 1,
dwMaxSendPacketSize));
```
## What WinStd Is Not
WinStd is not trying to be a full-fledged object-oriented framework on top of Win32 API. We have Microsoft to publish those once every few years - and obsolete it when they loose interest. WinStd aims at augmenting Win32 API with a little bit of help from C++.
## Usage
1. Clone the repository into your solution folder.
2. Add WinStd's `include` folder to _Additional Include Directories_ in your project's C/C++ settings.
3. Include `.h` files from WinStd as needed:
```C++
#include <WinStd/Shell.h>
#include <string>
#include <iostream>
using namespace std;
void main()
{
wstring path;
PathCanonicalizeW(path, L"C:\\Windows\\Temp\\test\\..");
wcout << path.c_str() << endl;
}
```
An auto-generated documentation is [here](https://amebis.github.io/WinStd/).
More examples and use-cases can be found in [GÉANTLink](https://git.amebis.si/Amebis/GEANTLink) and [ZRCola](https://git.amebis.si/Amebis/ZRCola) projects source code. They make heavy use of WinStd. Examples can also be found in the `UnitTests` project.
This is a one-man project for the time being, so the Win32 API support is far from complete. It is added as needed. Contributions are welcome.

View File

@ -1,13 +0,0 @@
# Security Policy
## Supported Versions
The following branches are currently being supported with security updates.
| Version | Supported |
| ------- | ------------------ |
| master | :white_check_mark: |
## Reporting a Vulnerability
Report any vulnerability to [simon.rozman@amebis.si](mailto:simon.rozman@amebis.si). Expect our reply in up to three working days. All confirmed issues will be fixed as soon as possible depending on complexity. After fixed, the security advisory will be published here.

View File

@ -1,3 +0,0 @@
/.tmp
/.vs
/*.user

View File

@ -1,27 +0,0 @@
/*
SPDX-License-Identifier: MIT
Copyright © 2022-2025 Amebis
*/
#include "pch.h"
using namespace std;
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTests
{
TEST_CLASS(SDDL)
{
public:
TEST_METHOD(security_attributes)
{
winstd::security_attributes sa;
Assert::IsTrue(ConvertStringSecurityDescriptorToSecurityDescriptorW(L"O:BAD:PAI(A;;FA;;;BA)", SDDL_REVISION_1, sa, NULL));
Assert::IsNotNull(sa.lpSecurityDescriptor);
winstd::security_attributes sa2(move(sa));
#pragma warning(suppress: 26800) // That's exactly what we are testing here: if the object is in a sane state after being moved from.
Assert::IsNull(sa.lpSecurityDescriptor);
Assert::IsNotNull(sa2.lpSecurityDescriptor);
}
};
}

View File

@ -1,64 +0,0 @@
/*
SPDX-License-Identifier: MIT
Copyright © 2022-2025 Amebis
*/
#include "pch.h"
using namespace std;
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTests
{
TEST_CLASS(Shell)
{
public:
TEST_METHOD(PathCanonicalizeA)
{
string path;
Assert::IsTrue(::PathCanonicalizeA(path, "C:\\Windows\\Temp\\test\\.."));
Assert::AreEqual("C:\\Windows\\Temp", path.c_str(), true);
}
TEST_METHOD(PathCanonicalizeW)
{
wstring path;
Assert::IsTrue(::PathCanonicalizeW(path, L"C:\\Windows\\Temp\\test\\.."));
Assert::AreEqual(L"C:\\Windows\\Temp", path.c_str(), true);
}
TEST_METHOD(PathRemoveBackslashA)
{
string path;
static const char normal_path[] = "C:\\Windows\\Temp\\test";
path = normal_path; path += '\\'; ::PathRemoveBackslashA(path);
Assert::AreEqual(normal_path, path.c_str());
path = normal_path; ::PathRemoveBackslashA(path);
Assert::AreEqual(normal_path, path.c_str());
static const char very_long_path[] = "C:\\Windows\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\test";
path = very_long_path; path += '\\'; ::PathRemoveBackslashA(path);
Assert::AreEqual(very_long_path, path.c_str());
path = very_long_path; ::PathRemoveBackslashA(path);
Assert::AreEqual(very_long_path, path.c_str());
}
TEST_METHOD(PathRemoveBackslashW)
{
wstring path;
static const wchar_t normal_path[] = L"C:\\Windows\\Temp\\test";
path = normal_path; path += L'\\'; ::PathRemoveBackslashW(path);
Assert::AreEqual(normal_path, path.c_str());
path = normal_path; ::PathRemoveBackslashW(path);
Assert::AreEqual(normal_path, path.c_str());
static const wchar_t very_long_path[] = L"C:\\Windows\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\Temp\\test";
path = very_long_path; path += L'\\'; ::PathRemoveBackslashW(path);
Assert::AreEqual(very_long_path, path.c_str());
path = very_long_path; ::PathRemoveBackslashW(path);
Assert::AreEqual(very_long_path, path.c_str());
}
};
}

View File

@ -1,31 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.13.35919.96 d17.13
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests", "UnitTests.vcxproj", "{9AFC377D-C32D-4D42-82C2-09FC818020A2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9AFC377D-C32D-4D42-82C2-09FC818020A2}.Debug|x64.ActiveCfg = Debug|x64
{9AFC377D-C32D-4D42-82C2-09FC818020A2}.Debug|x64.Build.0 = Debug|x64
{9AFC377D-C32D-4D42-82C2-09FC818020A2}.Debug|x86.ActiveCfg = Debug|Win32
{9AFC377D-C32D-4D42-82C2-09FC818020A2}.Debug|x86.Build.0 = Debug|Win32
{9AFC377D-C32D-4D42-82C2-09FC818020A2}.Release|x64.ActiveCfg = Release|x64
{9AFC377D-C32D-4D42-82C2-09FC818020A2}.Release|x64.Build.0 = Release|x64
{9AFC377D-C32D-4D42-82C2-09FC818020A2}.Release|x86.ActiveCfg = Release|Win32
{9AFC377D-C32D-4D42-82C2-09FC818020A2}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {BBDB843D-98C3-46EF-BDE8-0E80FD851852}
EndGlobalSection
EndGlobal

View File

@ -1,133 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<ProjectGuid>{9AFC377D-C32D-4D42-82C2-09FC818020A2}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>UnitTests</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<ProjectSubType>NativeUnitTestProject</ProjectSubType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>$(SolutionDir).tmp\$(ProjectName)\$(PlatformTarget)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir).tmp\$(ProjectName)\$(PlatformTarget)\$(Configuration)\</IntDir>
<RunCodeAnalysis>true</RunCodeAnalysis>
<CodeAnalysisRuleSet>NativeRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<EnablePREfast>true</EnablePREfast>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>..\include;$(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<UseFullPaths>true</UseFullPaths>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>Advapi32.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<ItemGroup>
<ClCompile Include="pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="SDDL.cpp" />
<ClCompile Include="Shell.cpp" />
<ClCompile Include="Win.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -1,36 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="Shell.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="pch.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Win.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SDDL.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -1,107 +0,0 @@
/*
SPDX-License-Identifier: MIT
Copyright © 2022-2025 Amebis
*/
#include "pch.h"
using namespace std;
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTests
{
TEST_CLASS(Win)
{
public:
TEST_METHOD(WideCharToMultiByte)
{
string response;
{
static const char expected[] = "Copyright \xA9 2017";
Assert::IsTrue(sizeof(expected) <= WINSTD_STACK_BUFFER_BYTES);
Assert::IsTrue(::WideCharToMultiByte(1252, 0, L"Copyright \u00A9 2017", -1, response, NULL, NULL) == _countof(expected));
Assert::AreEqual(expected, response.c_str(), true);
}
{
static const char expected[] = "The WC_COMPOSITECHECK flag causes the WideCharToMultiByte function to test for decomposed Unicode characters and attempts to compose them before converting them to the requested code page. This flag is only available for conversion to single byte (SBCS) or double byte (DBCS) code pages (code pages < 50000, excluding code page 42). If your application needs to convert decomposed Unicode data to single byte or double byte code pages, this flag might be useful. However, not all characters can be converted this way and it is more reliable to save and store such data as Unicode.\r\n\r\nWhen an application is using WC_COMPOSITECHECK, some character combinations might remain incomplete or might have additional nonspacing characters left over.For example, A + \xc2\xa8 + \xc2\xa8 combines to \xc3\x84 + \xc2\xa8.Using the WC_DISCARDNS flag causes the function to discard additional nonspacing characters.Using the WC_DEFAULTCHAR flag causes the function to use the default replacement character(typically \" ? \") instead. Using the WC_SEPCHARS flag causes the function to attempt to convert each additional nonspacing character to the target code page. Usually this flag also causes the use of the replacement character (\" ? \"). However, for code page 1258 (Vietnamese) and 20269, nonspacing characters exist and can be used. The conversions for these code pages are not perfect. Some combinations do not convert correctly to code page 1258, and WC_COMPOSITECHECK corrupts data in code page 20269. As mentioned earlier, it is more reliable to design your application to save and store such data as Unicode.";
Assert::IsTrue(sizeof(expected) > WINSTD_STACK_BUFFER_BYTES);
Assert::IsTrue(::WideCharToMultiByte(CP_UTF8, 0, L"The WC_COMPOSITECHECK flag causes the WideCharToMultiByte function to test for decomposed Unicode characters and attempts to compose them before converting them to the requested code page. This flag is only available for conversion to single byte (SBCS) or double byte (DBCS) code pages (code pages < 50000, excluding code page 42). If your application needs to convert decomposed Unicode data to single byte or double byte code pages, this flag might be useful. However, not all characters can be converted this way and it is more reliable to save and store such data as Unicode.\r\n\r\nWhen an application is using WC_COMPOSITECHECK, some character combinations might remain incomplete or might have additional nonspacing characters left over.For example, A + \u00a8 + \u00a8 combines to \u00c4 + \u00a8.Using the WC_DISCARDNS flag causes the function to discard additional nonspacing characters.Using the WC_DEFAULTCHAR flag causes the function to use the default replacement character(typically \" ? \") instead. Using the WC_SEPCHARS flag causes the function to attempt to convert each additional nonspacing character to the target code page. Usually this flag also causes the use of the replacement character (\" ? \"). However, for code page 1258 (Vietnamese) and 20269, nonspacing characters exist and can be used. The conversions for these code pages are not perfect. Some combinations do not convert correctly to code page 1258, and WC_COMPOSITECHECK corrupts data in code page 20269. As mentioned earlier, it is more reliable to design your application to save and store such data as Unicode.", -1, response, NULL, NULL) == _countof(expected));
Assert::AreEqual(expected, response.c_str(), true);
}
}
TEST_METHOD(CreateWellKnownSid)
{
std::unique_ptr<SID> sid;
Assert::IsTrue(::CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, sid));
}
TEST_METHOD(DuplicateTokenEx)
{
winstd::win_handle<NULL> processToken;
Assert::IsTrue(::OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_DUPLICATE, processToken));
winstd::win_handle<NULL> token;
Assert::IsTrue(::DuplicateTokenEx(processToken, TOKEN_QUERY | TOKEN_IMPERSONATE, NULL, SecurityIdentification, TokenImpersonation, &token));
}
TEST_METHOD(CheckTokenMembership)
{
std::unique_ptr<SID> sid;
Assert::IsTrue(::CreateWellKnownSid(WinBuiltinAdministratorsSid, NULL, sid));
winstd::win_handle<NULL> processToken;
Assert::IsTrue(::OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_DUPLICATE, processToken));
winstd::win_handle<NULL> token;
Assert::IsTrue(::DuplicateTokenEx(processToken, TOKEN_QUERY | TOKEN_IMPERSONATE, NULL, SecurityIdentification, TokenImpersonation, &token));
BOOL bIsMember = 0xcdcdcdcd;
Assert::IsTrue(::CheckTokenMembership(token, sid.get(), &bIsMember));
Assert::IsTrue(bIsMember == TRUE || bIsMember == FALSE);
}
TEST_METHOD(library)
{
winstd::library lib_shell32(LoadLibraryEx(_T("shell32.dll"), NULL, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE));
if (!lib_shell32)
Assert::Fail(L"LoadLibraryEx failed");
}
TEST_METHOD(system_impersonator)
{
winstd::win_handle<NULL> processToken;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_DUPLICATE, processToken))
Assert::Fail(L"OpenProcessToken failed");
DWORD isElevated, dwLength;
if (!GetTokenInformation(processToken, TokenElevation, &isElevated, sizeof(isElevated), &dwLength))
Assert::Fail(L"GetTokenInformation failed");
winstd::system_impersonator system_impersonator;
// SYSTEM impersonation works in elevated processes only.
if (dwLength == sizeof(isElevated) && isElevated)
Assert::IsTrue(system_impersonator);
else
Assert::IsTrue(!system_impersonator && GetLastError() == ERROR_ACCESS_DENIED);
}
TEST_METHOD(ACLsAndSIDs)
{
vector<EXPLICIT_ACCESS> eas;
eas.reserve(3);
SID_IDENTIFIER_AUTHORITY SIDAuthWorld = SECURITY_WORLD_SID_AUTHORITY;
winstd::security_id pSIDEveryone;
Assert::IsTrue(::AllocateAndInitializeSid(&SIDAuthWorld, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 0, pSIDEveryone));
eas.push_back(EXPLICIT_ACCESS{ GENERIC_READ, SET_ACCESS, NO_INHERITANCE, { NULL, NO_MULTIPLE_TRUSTEE, TRUSTEE_IS_SID, TRUSTEE_IS_WELL_KNOWN_GROUP, (LPTSTR)(PSID)pSIDEveryone } });
SID_IDENTIFIER_AUTHORITY SIDAuthNT = SECURITY_NT_AUTHORITY;
winstd::security_id pSIDSystem;
Assert::IsTrue(::AllocateAndInitializeSid(&SIDAuthNT, 1, SECURITY_LOCAL_SYSTEM_RID, 0, 0, 0, 0, 0, 0, 0, pSIDSystem));
eas.push_back(EXPLICIT_ACCESS{ GENERIC_ALL, SET_ACCESS, NO_INHERITANCE, { NULL, NO_MULTIPLE_TRUSTEE, TRUSTEE_IS_SID, TRUSTEE_IS_WELL_KNOWN_GROUP, (LPTSTR)(PSID)pSIDSystem } });
winstd::security_id pSIDAdmin;
Assert::IsTrue(::AllocateAndInitializeSid(&SIDAuthNT, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, pSIDAdmin));
eas.push_back(EXPLICIT_ACCESS{ GENERIC_ALL, SET_ACCESS, NO_INHERITANCE, { NULL, NO_MULTIPLE_TRUSTEE, TRUSTEE_IS_SID, TRUSTEE_IS_GROUP, (LPTSTR)(PSID)pSIDAdmin } });
unique_ptr<ACL, winstd::LocalFree_delete<ACL>> acl;
Assert::IsTrue(::SetEntriesInAcl((ULONG)eas.size(), eas.data(), NULL, acl) == ERROR_SUCCESS);
}
};
}

View File

@ -1,6 +0,0 @@
/*
SPDX-License-Identifier: MIT
Copyright © 2022-2025 Amebis
*/
#include "pch.h"

View File

@ -1,27 +0,0 @@
/*
SPDX-License-Identifier: MIT
Copyright © 2022-2025 Amebis
*/
#pragma once
#define SECURITY_WIN32
#define _WINSOCKAPI_ // Prevent inclusion of winsock.h in windows.h
#include <WinStd/COM.h>
#include <WinStd/Cred.h>
#include <WinStd/Crypt.h>
#include <WinStd/EAP.h>
#include <WinStd/ETW.h>
#include <WinStd/GDI.h>
#include <WinStd/MSI.h>
#include <WinStd/SDDL.h>
#include <WinStd/Sec.h>
#include <WinStd/SetupAPI.h>
#include <WinStd/Shell.h>
#include <WinStd/Win.h>
#include <WinStd/WinSock2.h>
#include <WinStd/WinTrust.h>
#include <WinStd/WLAN.h>
#include <CppUnitTest.h>

1593
_c_o_m_8h_source.html Normal file

File diff suppressed because it is too large Load Diff

1604
_common_8h_source.html Normal file

File diff suppressed because it is too large Load Diff

304
_cred_8h_source.html Normal file
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" 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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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-2024 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="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">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;wincred.h&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &lt;memory&gt;</span></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="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00020" data-start="{" data-end="}">
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="group___win_std_cred_a_p_i.html#ga66f305cb6a0bf6d4f2c6f2f49180df9b"> 20</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_cred_a_p_i.html#ga66f305cb6a0bf6d4f2c6f2f49180df9b">CredProtectA</a>(_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="l00021" name="l00021"></a><span class="lineno"> 21</span>{</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</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="l00023" name="l00023"></a><span class="lineno"> 23</span> DWORD dwSize = _countof(buf);</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">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_cred_a_p_i.html#ga66f305cb6a0bf6d4f2c6f2f49180df9b">CredProtectA</a>(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="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> sProtectedCredentials.assign(buf, dwSize - 1);</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// Allocate on heap and retry.</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> sProtectedCredentials.resize(dwSize - 1);</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_cred_a_p_i.html#ga66f305cb6a0bf6d4f2c6f2f49180df9b">CredProtectA</a>(fAsSelf, <span class="keyword">const_cast&lt;</span>LPSTR<span class="keyword">&gt;</span>(pszCredentials), cchCredentials, &amp;sProtectedCredentials[0], &amp;dwSize, ProtectionType))</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> }</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">return</span> FALSE;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span>}</div>
</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00046" data-start="{" data-end="}">
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="group___win_std_cred_a_p_i.html#gaa140d15e40f91b075ad1fa69429a0922"> 46</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_cred_a_p_i.html#gaa140d15e40f91b075ad1fa69429a0922">CredProtectW</a>(_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="l00047" name="l00047"></a><span class="lineno"> 47</span>{</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</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="l00049" name="l00049"></a><span class="lineno"> 49</span> DWORD dwSize = _countof(buf);</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="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_cred_a_p_i.html#gaa140d15e40f91b075ad1fa69429a0922">CredProtectW</a>(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="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> sProtectedCredentials.assign(buf, dwSize - 1);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// Allocate on heap and retry.</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> sProtectedCredentials.resize(dwSize - 1);</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_cred_a_p_i.html#gaa140d15e40f91b075ad1fa69429a0922">CredProtectW</a>(fAsSelf, <span class="keyword">const_cast&lt;</span>LPWSTR<span class="keyword">&gt;</span>(pszCredentials), cchCredentials, &amp;sProtectedCredentials[0], &amp;dwSize, ProtectionType))</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> TRUE;</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> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>}</div>
</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00068" data-start="{" data-end="}">
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"><a class="line" href="group___win_std_cred_a_p_i.html#ga289617e5856f3f4fd18b86754726407b"> 68</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_cred_a_p_i.html#ga289617e5856f3f4fd18b86754726407b">CredUnprotectA</a>(_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="l00069" name="l00069"></a><span class="lineno"> 69</span>{</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</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="l00071" name="l00071"></a><span class="lineno"> 71</span> DWORD dwSize = _countof(buf);</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"> 73</span> <span class="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_cred_a_p_i.html#ga289617e5856f3f4fd18b86754726407b">CredUnprotectA</a>(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="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> sCredentials.assign(buf, dwSize);</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// Allocate on heap and retry.</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> sCredentials.resize(dwSize - 1);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_cred_a_p_i.html#ga289617e5856f3f4fd18b86754726407b">CredUnprotectA</a>(fAsSelf, <span class="keyword">const_cast&lt;</span>LPSTR<span class="keyword">&gt;</span>(pszProtectedCredentials), cchCredentials, &amp;sCredentials[0], &amp;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> }</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="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span>}</div>
</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00094" data-start="{" data-end="}">
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="group___win_std_cred_a_p_i.html#gac5fc6137d0a5f7c4bc713676e08a214e"> 94</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_cred_a_p_i.html#gac5fc6137d0a5f7c4bc713676e08a214e">CredUnprotectW</a>(_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="l00095" name="l00095"></a><span class="lineno"> 95</span>{</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</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="l00097" name="l00097"></a><span class="lineno"> 97</span> DWORD dwSize = _countof(buf);</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> <span class="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_cred_a_p_i.html#gac5fc6137d0a5f7c4bc713676e08a214e">CredUnprotectW</a>(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="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> sCredentials.assign(buf, dwSize);</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// Allocate on heap and retry.</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> sCredentials.resize(dwSize - 1);</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_cred_a_p_i.html#gac5fc6137d0a5f7c4bc713676e08a214e">CredUnprotectW</a>(fAsSelf, <span class="keyword">const_cast&lt;</span>LPWSTR<span class="keyword">&gt;</span>(pszProtectedCredentials), cchCredentials, &amp;sCredentials[0], &amp;dwSize))</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">return</span> TRUE;</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> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span>}</div>
</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </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><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span>{</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="foldopen" id="foldopen00124" data-start="{" data-end="};">
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete.html"> 124</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="l00125" name="l00125"></a><span class="lineno"> 125</span> {</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete.html#a0e249dd2a9471e70640d7d0641c62f11"> 126</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#a0e249dd2a9471e70640d7d0641c62f11">_Myt</a>; </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete.html#a3959d2b3727e557e19d8b0f5c449b57a"> 131</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="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete.html#ac4cc203e783bcc1c71011cde00ddf9ad"> 136</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="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="foldopen" id="foldopen00143" data-start="{" data-end="}">
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete.html#a247d6f53f119468b6ccb08ff01338465"> 143</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="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> CredFree(_Ptr);</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> }</div>
</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> };</div>
</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> </div>
<div class="foldopen" id="foldopen00152" data-start="{" data-end="};">
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html"> 152</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="l00153" name="l00153"></a><span class="lineno"> 153</span> {</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#a80aae1221b236b92fea40b7b31e918ea"> 154</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#a80aae1221b236b92fea40b7b31e918ea">_Myt</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_cred_free__delete_3_01___ty_0f_0e_4.html#aad102423f4fb96fd105b57a88a6031ab"> 159</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="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
<div class="foldopen" id="foldopen00166" data-start="{" data-end="}">
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aea662a4ce3e32723646313a9a56c4c9a"> 166</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="l00167" name="l00167"></a><span class="lineno"> 167</span> {</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> CredFree(_Ptr);</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> }</div>
</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> _Other&gt;</div>
<div class="foldopen" id="foldopen00177" data-start="{" data-end="}">
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"><a class="line" href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#acc62d6419d7dea72f237ab2788171f48"> 177</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="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> CredFree(_Ptr);</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> }</div>
</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> };</div>
</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="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</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="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</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="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
<div class="foldopen" id="foldopen00193" data-start="{" data-end="}">
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="group___win_std_cred_a_p_i.html#ga6d7c3256a227574ba9e726a1e020fceb"> 193</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_cred_a_p_i.html#ga6d7c3256a227574ba9e726a1e020fceb">CredEnumerateA</a>(_In_z_ LPCSTR Filter, _Reserved_ DWORD Flags, _Out_ DWORD *Count, _Inout_ std::unique_ptr&lt;PCREDENTIALA[], <a class="code hl_struct" href="structwinstd_1_1_cred_free__delete.html">winstd::CredFree_delete</a>&lt;PCREDENTIALA[]&gt; &gt; &amp;cCredentials) <span class="keyword">noexcept</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> PCREDENTIALA *pCredentials;</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_cred_a_p_i.html#ga6d7c3256a227574ba9e726a1e020fceb">CredEnumerateA</a>(Filter, Flags, Count, &amp;pCredentials)) {</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> cCredentials.reset(pCredentials);</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> }</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> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span>}</div>
</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> </div>
<div class="foldopen" id="foldopen00209" data-start="{" data-end="}">
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"><a class="line" href="group___win_std_cred_a_p_i.html#ga71e6a2a069cd781252492021d70843da"> 209</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_cred_a_p_i.html#ga71e6a2a069cd781252492021d70843da">CredEnumerateW</a>(_In_z_ LPCWSTR Filter, _Reserved_ DWORD Flags, _Out_ DWORD *Count, _Inout_ std::unique_ptr&lt;PCREDENTIALW[], <a class="code hl_struct" href="structwinstd_1_1_cred_free__delete.html">winstd::CredFree_delete</a>&lt;PCREDENTIALW[]&gt; &gt; &amp;cCredentials) <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> PCREDENTIALW *pCredentials;</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_cred_a_p_i.html#ga71e6a2a069cd781252492021d70843da">CredEnumerateW</a>(Filter, Flags, Count, &amp;pCredentials)) {</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> cCredentials.reset(pCredentials);</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> }</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> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span>}</div>
</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> </div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
<div class="ttc" id="agroup___win_std_cred_a_p_i_html_ga289617e5856f3f4fd18b86754726407b"><div class="ttname"><a href="group___win_std_cred_a_p_i.html#ga289617e5856f3f4fd18b86754726407b">CredUnprotectA</a></div><div class="ttdeci">static BOOL CredUnprotectA(BOOL fAsSelf, LPCSTR pszProtectedCredentials, DWORD cchCredentials, std::basic_string&lt; char, _Traits, _Ax &gt; &amp;sCredentials)</div><div class="ttdoc">Decrypts credentials that were previously encrypted by using the CredProtect function.</div><div class="ttdef"><b>Definition</b> Cred.h:68</div></div>
<div class="ttc" id="agroup___win_std_cred_a_p_i_html_ga66f305cb6a0bf6d4f2c6f2f49180df9b"><div class="ttname"><a href="group___win_std_cred_a_p_i.html#ga66f305cb6a0bf6d4f2c6f2f49180df9b">CredProtectA</a></div><div class="ttdeci">static BOOL CredProtectA(BOOL fAsSelf, LPCSTR pszCredentials, DWORD cchCredentials, std::basic_string&lt; char, _Traits, _Ax &gt; &amp;sProtectedCredentials, CRED_PROTECTION_TYPE *ProtectionType)</div><div class="ttdoc">Encrypts the specified credentials so that only the current security context can decrypt them.</div><div class="ttdef"><b>Definition</b> Cred.h:20</div></div>
<div class="ttc" id="agroup___win_std_cred_a_p_i_html_ga6d7c3256a227574ba9e726a1e020fceb"><div class="ttname"><a href="group___win_std_cred_a_p_i.html#ga6d7c3256a227574ba9e726a1e020fceb">CredEnumerateA</a></div><div class="ttdeci">static BOOL CredEnumerateA(LPCSTR Filter, DWORD Flags, DWORD *Count, std::unique_ptr&lt; PCREDENTIALA[], winstd::CredFree_delete&lt; PCREDENTIALA[]&gt; &gt; &amp;cCredentials) noexcept</div><div class="ttdoc">Enumerates the credentials from the user's credential set. The credential set used is the one associa...</div><div class="ttdef"><b>Definition</b> Cred.h:193</div></div>
<div class="ttc" id="agroup___win_std_cred_a_p_i_html_ga71e6a2a069cd781252492021d70843da"><div class="ttname"><a href="group___win_std_cred_a_p_i.html#ga71e6a2a069cd781252492021d70843da">CredEnumerateW</a></div><div class="ttdeci">static BOOL CredEnumerateW(LPCWSTR Filter, DWORD Flags, DWORD *Count, std::unique_ptr&lt; PCREDENTIALW[], winstd::CredFree_delete&lt; PCREDENTIALW[]&gt; &gt; &amp;cCredentials) noexcept</div><div class="ttdoc">Enumerates the credentials from the user's credential set. The credential set used is the one associa...</div><div class="ttdef"><b>Definition</b> Cred.h:209</div></div>
<div class="ttc" id="agroup___win_std_cred_a_p_i_html_gaa140d15e40f91b075ad1fa69429a0922"><div class="ttname"><a href="group___win_std_cred_a_p_i.html#gaa140d15e40f91b075ad1fa69429a0922">CredProtectW</a></div><div class="ttdeci">static BOOL CredProtectW(BOOL fAsSelf, LPCWSTR pszCredentials, DWORD cchCredentials, std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;sProtectedCredentials, CRED_PROTECTION_TYPE *ProtectionType)</div><div class="ttdoc">Encrypts the specified credentials so that only the current security context can decrypt them.</div><div class="ttdef"><b>Definition</b> Cred.h:46</div></div>
<div class="ttc" id="agroup___win_std_cred_a_p_i_html_gac5fc6137d0a5f7c4bc713676e08a214e"><div class="ttname"><a href="group___win_std_cred_a_p_i.html#gac5fc6137d0a5f7c4bc713676e08a214e">CredUnprotectW</a></div><div class="ttdeci">static BOOL CredUnprotectW(BOOL fAsSelf, LPCWSTR pszProtectedCredentials, DWORD cchCredentials, std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;sCredentials)</div><div class="ttdoc">Decrypts credentials that were previously encrypted by using the CredProtect function.</div><div class="ttdef"><b>Definition</b> Cred.h:94</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:94</div></div>
<div class="ttc" id="astructwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4_html_a80aae1221b236b92fea40b7b31e918ea"><div class="ttname"><a href="structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#a80aae1221b236b92fea40b7b31e918ea">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:154</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:159</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:177</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:166</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:125</div></div>
<div class="ttc" id="astructwinstd_1_1_cred_free__delete_html_a0e249dd2a9471e70640d7d0641c62f11"><div class="ttname"><a href="structwinstd_1_1_cred_free__delete.html#a0e249dd2a9471e70640d7d0641c62f11">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:126</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:143</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:131</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:136</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

887
_crypt_8h_source.html Normal file
View File

@ -0,0 +1,887 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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-2024 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="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">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;assert.h&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &lt;WinCrypt.h&gt;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;algorithm&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</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="foldopen" id="foldopen00023" data-start="{" data-end="}">
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#ga551dacab30d7f72a713f69ea09edea92"> 23</a></span><span class="keyword">static</span> DWORD <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga551dacab30d7f72a713f69ea09edea92">CertGetNameStringA</a>(_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="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">// Query the final string length first.</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> DWORD dwSize = <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga551dacab30d7f72a713f69ea09edea92">::CertGetNameStringA</a>(pCertContext, dwType, dwFlags, pvTypePara, NULL, 0);</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="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> sNameString.resize(dwSize - 1);</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> return ::CertGetNameStringA(pCertContext, dwType, dwFlags, pvTypePara, &amp;sNameString[0], dwSize);</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span>}</div>
</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00039" data-start="{" data-end="}">
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#ga2a0de58b33f5eb080e3b6ba9a7fe1e53"> 39</a></span><span class="keyword">static</span> DWORD <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga2a0de58b33f5eb080e3b6ba9a7fe1e53">CertGetNameStringW</a>(_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="l00040" name="l00040"></a><span class="lineno"> 40</span>{</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// Query the final string length first.</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> DWORD dwSize = <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga2a0de58b33f5eb080e3b6ba9a7fe1e53">::CertGetNameStringW</a>(pCertContext, dwType, dwFlags, pvTypePara, NULL, 0);</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">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> sNameString.resize(dwSize - 1);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> return ::CertGetNameStringW(pCertContext, dwType, dwFlags, pvTypePara, &amp;sNameString[0], dwSize);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>}</div>
</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> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00055" data-start="{" data-end="}">
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#ga0f4039aa2a795b7a73e5fb07f3742378"> 55</a></span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL WINAPI <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga0f4039aa2a795b7a73e5fb07f3742378">CertGetCertificateContextProperty</a>(_In_ PCCERT_CONTEXT pCertContext, _In_ DWORD dwPropId, _Out_ std::vector&lt;_Ty, _Ax&gt; &amp;aData)</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> 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="l00058" name="l00058"></a><span class="lineno"> 58</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="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga0f4039aa2a795b7a73e5fb07f3742378">CertGetCertificateContextProperty</a>(pCertContext, dwPropId, buf, &amp;dwSize)) {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</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="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> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> aData.resize((dwSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga0f4039aa2a795b7a73e5fb07f3742378">CertGetCertificateContextProperty</a>(pCertContext, dwPropId, aData.data(), &amp;dwSize))</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">return</span> TRUE;</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="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span>}</div>
</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00080" data-start="{" data-end="}">
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#ga231b40581fbe230fdc82d4f473f2e43f"> 80</a></span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga231b40581fbe230fdc82d4f473f2e43f">CryptGetHashParam</a>(_In_ HCRYPTHASH hHash, _In_ DWORD dwParam, _Out_ std::vector&lt;_Ty, _Ax&gt; &amp;aData, _In_ DWORD dwFlags)</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> 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="l00083" name="l00083"></a><span class="lineno"> 83</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="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="comment">// Try with the stack buffer first.</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga231b40581fbe230fdc82d4f473f2e43f">CryptGetHashParam</a>(hHash, dwParam, buf, &amp;dwSize, dwFlags)) {</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</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="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> aData.resize((dwSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga231b40581fbe230fdc82d4f473f2e43f">CryptGetHashParam</a>(hHash, dwParam, <span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(aData.data()), &amp;dwSize, dwFlags))</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">return</span> TRUE;</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> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span>}</div>
</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div>
<div class="foldopen" id="foldopen00105" data-start="{" data-end="}">
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#gab3ae01f33782c38e84f2ec4a520c0628"> 105</a></span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga231b40581fbe230fdc82d4f473f2e43f">CryptGetHashParam</a>(_In_ HCRYPTHASH hHash, _In_ DWORD dwParam, _Out_ T &amp;data, _In_ DWORD dwFlags)</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> DWORD dwSize = <span class="keyword">sizeof</span>(T);</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keywordflow">return</span> <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga231b40581fbe230fdc82d4f473f2e43f">CryptGetHashParam</a>(hHash, dwParam, (BYTE*)&amp;data, &amp;dwSize, dwFlags);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span>}</div>
</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00117" data-start="{" data-end="}">
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#ga782fd6fda714da07b5e687b80fc6f443"> 117</a></span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga782fd6fda714da07b5e687b80fc6f443">CryptGetKeyParam</a>(_In_ HCRYPTKEY hKey, _In_ DWORD dwParam, _Out_ std::vector&lt;_Ty, _Ax&gt; &amp;aData, _In_ DWORD dwFlags)</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> 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="l00120" name="l00120"></a><span class="lineno"> 120</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="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="comment">// Try with the stack buffer first.</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_function" href="group___win_std_crypto_a_p_i.html#ga782fd6fda714da07b5e687b80fc6f443">CryptGetKeyParam</a>(hKey, dwParam, buf, &amp;dwSize, dwFlags)) {</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</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="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (GetLastError() == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> aData.resize((dwSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga782fd6fda714da07b5e687b80fc6f443">CryptGetKeyParam</a>(hKey, dwParam, <span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(aData.data()), &amp;dwSize, dwFlags))</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">return</span> TRUE;</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="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span>}</div>
</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"> 141</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;</div>
<div class="foldopen" id="foldopen00142" data-start="{" data-end="}">
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#gaba94a7e33622f959702ac0e24edc3aee"> 142</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga782fd6fda714da07b5e687b80fc6f443">CryptGetKeyParam</a>(_In_ HCRYPTKEY hKey, _In_ DWORD dwParam, _Out_ T &amp;data, _In_ DWORD dwFlags)</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> DWORD dwSize = <span class="keyword">sizeof</span>(T);</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">return</span> <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga782fd6fda714da07b5e687b80fc6f443">CryptGetKeyParam</a>(hKey, dwParam, (BYTE*)&amp;data, &amp;dwSize, dwFlags);</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span>}</div>
</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00154" data-start="{" data-end="}">
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#ga72ee7a873236f55ff0cb56d46e4ff0a6"> 154</a></span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga72ee7a873236f55ff0cb56d46e4ff0a6">CryptExportKey</a>(_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="l00155" name="l00155"></a><span class="lineno"> 155</span>{</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> DWORD dwKeyBLOBSize = 0;</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga72ee7a873236f55ff0cb56d46e4ff0a6">CryptExportKey</a>(hKey, hExpKey, dwBlobType, dwFlags, NULL, &amp;dwKeyBLOBSize)) {</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> aData.resize((dwKeyBLOBSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga72ee7a873236f55ff0cb56d46e4ff0a6">CryptExportKey</a>(hKey, hExpKey, dwBlobType, dwFlags, <span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(aData.data()), &amp;dwKeyBLOBSize))</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">return</span> TRUE;</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> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span>}</div>
</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00173" data-start="{" data-end="}">
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#gabd30cb0e884c2c88c3e4f3321ea5efff"> 173</a></span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gabd30cb0e884c2c88c3e4f3321ea5efff">CryptEncrypt</a>(_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="l00174" name="l00174"></a><span class="lineno"> 174</span>{</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> SIZE_T</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> sDataLen = SIZETMult(aData.size(), <span class="keyword">sizeof</span>(_Ty)),</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> sBufLen = SIZETMult(aData.capacity(), <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">if</span> (sDataLen &gt; DWORD_MAX || sBufLen &gt; DWORD_MAX)</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;Data too big&quot;</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 = <span class="keyword">static_cast&lt;</span>DWORD<span class="keyword">&gt;</span>(sDataLen),</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> dwBufLen = <span class="keyword">static_cast&lt;</span>DWORD<span class="keyword">&gt;</span>(sBufLen),</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> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gabd30cb0e884c2c88c3e4f3321ea5efff">CryptEncrypt</a>(hKey, hHash, Final, dwFlags, <span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(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> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gabd30cb0e884c2c88c3e4f3321ea5efff">CryptEncrypt</a>(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> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gabd30cb0e884c2c88c3e4f3321ea5efff">CryptEncrypt</a>(hKey, hHash, Final, dwFlags, <span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(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>
<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="foldopen" id="foldopen00228" data-start="{" data-end="}">
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#gae93b1a49d6eafd5c7d8abe48ee97faf8"> 228</a></span><span class="keyword">static</span> _Success_(<span class="keywordflow">return</span> != 0) BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gae93b1a49d6eafd5c7d8abe48ee97faf8">CryptDecrypt</a>(_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> SIZE_T sDataLen = SIZETMult(aData.size(), <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">if</span> (sDataLen &gt; DWORD_MAX)</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;Data too big&quot;</span>);</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> DWORD dwDataLen = <span class="keyword">static_cast&lt;</span>DWORD<span class="keyword">&gt;</span>(sDataLen);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gae93b1a49d6eafd5c7d8abe48ee97faf8">CryptDecrypt</a>(hKey, hHash, Final, dwFlags, <span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(aData.data()), &amp;dwDataLen)) {</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="comment">// Decryption succeeded.</span></div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> aData.resize((dwDataLen + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">return</span> TRUE;</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="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span>}</div>
</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</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><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span>{</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
<div class="foldopen" id="foldopen00256" data-start="{" data-end="};">
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html"> 256</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="l00257" name="l00257"></a><span class="lineno"> 257</span> {</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga08a7da8215842be9aaacae90bc8a1b62">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1cert__context.html">cert_context</a>, PCCERT_CONTEXT, NULL)</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> </div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00266" data-start="{" data-end="}">
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#affa4b97554e6676d392301b5928130fd"> 266</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="l00267" name="l00267"></a><span class="lineno"> 267</span> {</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</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="l00269" name="l00269"></a><span class="lineno"> 269</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a1615ec6693eb68764543456ad418a970">free_internal</a>();</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> }</div>
</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> </div>
<div class="foldopen" id="foldopen00280" data-start="{" data-end="}">
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a2f3ad38a637fce69d8c2a5ee3460a296"> 280</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a2f3ad38a637fce69d8c2a5ee3460a296">operator==</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> {</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <span class="comment">// TODO: [Crypto] Make constant time.</span></div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">return</span></div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a> == other ||</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</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="l00286" name="l00286"></a><span class="lineno"> 286</span> }</div>
</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
<div class="foldopen" id="foldopen00296" data-start="{" data-end="}">
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#adfad0db8dd947143a8406f2f988d04ad"> 296</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#adfad0db8dd947143a8406f2f988d04ad">operator!=</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> {</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="classwinstd_1_1cert__context.html#a2f3ad38a637fce69d8c2a5ee3460a296">operator==</a>(other);</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> }</div>
</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
<div class="foldopen" id="foldopen00309" data-start="{" data-end="}">
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a92881d07b0b41b81c4119ed8d8868c3b"> 309</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a92881d07b0b41b81c4119ed8d8868c3b">operator&lt;</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) <span class="keyword">const</span> <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> <span class="comment">// TODO: [Crypto] Make constant time.</span></div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</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="l00313" name="l00313"></a><span class="lineno"> 313</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="l00314" name="l00314"></a><span class="lineno"> 314</span> }</div>
</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> </div>
<div class="foldopen" id="foldopen00324" data-start="{" data-end="}">
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a7224d1fe6c57bfe903fa8a6df32d2466"> 324</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a7224d1fe6c57bfe903fa8a6df32d2466">operator&gt;</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> {</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <span class="comment">// TODO: [Crypto] Make constant time.</span></div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</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="l00328" name="l00328"></a><span class="lineno"> 328</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="l00329" name="l00329"></a><span class="lineno"> 329</span> }</div>
</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> </div>
<div class="foldopen" id="foldopen00339" data-start="{" data-end="}">
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a042240321d22636cddc379b198c7fd84"> 339</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a042240321d22636cddc379b198c7fd84">operator&lt;=</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) <span class="keyword">const</span> <span class="keyword">noexcept</span></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> <span class="keywordflow">return</span> !<a class="code hl_function" href="classwinstd_1_1cert__context.html#a7224d1fe6c57bfe903fa8a6df32d2466">operator&gt;</a>(other);</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> }</div>
</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> </div>
<div class="foldopen" id="foldopen00352" data-start="{" data-end="}">
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a6c9f09455ef40e581accc6499222040c"> 352</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1cert__context.html#a6c9f09455ef40e581accc6499222040c">operator&gt;=</a>(_In_ <span class="keyword">const</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) <span class="keyword">const</span> <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> {</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="classwinstd_1_1cert__context.html#a92881d07b0b41b81c4119ed8d8868c3b">operator&lt;</a>(other);</div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00363" data-start="{" data-end="}">
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#a1615ec6693eb68764543456ad418a970"> 363</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="l00364" name="l00364"></a><span class="lineno"> 364</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> CertFreeCertificateContext(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> }</div>
</div>
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> </div>
<div class="foldopen" id="foldopen00377" data-start="{" data-end="}">
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__context.html#ae39c2de0d8e9d69e524404db812e7ba7"> 377</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> <a class="code hl_function" href="classwinstd_1_1cert__context.html#ae39c2de0d8e9d69e524404db812e7ba7">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h)<span class="keyword"> const 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> <span class="comment">// As per doc, this only increases refcounter. Should never fail.</span></div>
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> <span class="keywordflow">return</span> CertDuplicateCertificateContext(h);</div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> }</div>
</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> };</div>
</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> </div>
<div class="foldopen" id="foldopen00389" data-start="{" data-end="};">
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__chain__context.html"> 389</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="l00390" name="l00390"></a><span class="lineno"> 390</span> {</div>
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga08a7da8215842be9aaacae90bc8a1b62">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1cert__chain__context.html">cert_chain_context</a>, PCCERT_CHAIN_CONTEXT, NULL)</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="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00399" data-start="{" data-end="}">
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__chain__context.html#a9f8b8604ea5766ffa59726b46e210eb3"> 399</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="l00400" name="l00400"></a><span class="lineno"> 400</span> {</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</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="l00402" name="l00402"></a><span class="lineno"> 402</span> <a class="code hl_function" href="classwinstd_1_1cert__chain__context.html#ae15044b1a7be10d96643d3921e149ee6">free_internal</a>();</div>
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> }</div>
</div>
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> </div>
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00411" data-start="{" data-end="}">
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__chain__context.html#ae15044b1a7be10d96643d3921e149ee6"> 411</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="l00412" name="l00412"></a><span class="lineno"> 412</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> CertFreeCertificateChain(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> }</div>
</div>
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> </div>
<div class="foldopen" id="foldopen00425" data-start="{" data-end="}">
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__chain__context.html#afbb8bf6ef0627268fd327059f51b121a"> 425</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> <a class="code hl_function" href="classwinstd_1_1cert__chain__context.html#afbb8bf6ef0627268fd327059f51b121a">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h)<span class="keyword"> const override</span></div>
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span> <span class="comment">// As per doc, this only increases refcounter. Should never fail.</span></div>
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span> <span class="keywordflow">return</span> CertDuplicateCertificateChain(h);</div>
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> }</div>
</div>
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span> };</div>
</div>
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span> </div>
<div class="foldopen" id="foldopen00438" data-start="{" data-end="};">
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__store.html"> 438</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="l00439" name="l00439"></a><span class="lineno"> 439</span> {</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1cert__store.html">cert_store</a>, HCERTSTORE, NULL)</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> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00448" data-start="{" data-end="}">
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__store.html#a80783d444ae3555aea01f959c9c01405"> 448</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="l00449" name="l00449"></a><span class="lineno"> 449</span> {</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</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="l00451" name="l00451"></a><span class="lineno"> 451</span> <a class="code hl_function" href="classwinstd_1_1cert__store.html#ab709fe692a4117173eae26e741da2069">free_internal</a>();</div>
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00460" data-start="{" data-end="}">
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"><a class="line" href="classwinstd_1_1cert__store.html#ab709fe692a4117173eae26e741da2069"> 460</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="l00461" name="l00461"></a><span class="lineno"> 461</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> CertCloseStore(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, 0);</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> }</div>
</div>
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span> };</div>
</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> </div>
<div class="foldopen" id="foldopen00471" data-start="{" data-end="};">
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__prov.html"> 471</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="l00472" name="l00472"></a><span class="lineno"> 472</span> {</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1crypt__prov.html">crypt_prov</a>, HCRYPTPROV, NULL)</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> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00481" data-start="{" data-end="}">
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__prov.html#a91c1f3d10b03ef1b5d1e1da029060289"> 481</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="l00482" name="l00482"></a><span class="lineno"> 482</span> {</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</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="l00484" name="l00484"></a><span class="lineno"> 484</span> <a class="code hl_function" href="classwinstd_1_1crypt__prov.html#aa351d2dbc42daf51dddcf847fd95c39f">free_internal</a>();</div>
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00493" data-start="{" data-end="}">
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__prov.html#aa351d2dbc42daf51dddcf847fd95c39f"> 493</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="l00494" name="l00494"></a><span class="lineno"> 494</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> CryptReleaseContext(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, 0);</div>
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> }</div>
</div>
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> };</div>
</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> </div>
<div class="foldopen" id="foldopen00504" data-start="{" data-end="};">
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__hash.html"> 504</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="l00505" name="l00505"></a><span class="lineno"> 505</span> {</div>
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga08a7da8215842be9aaacae90bc8a1b62">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1crypt__hash.html">crypt_hash</a>, HCRYPTHASH, NULL)</div>
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> </div>
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00514" data-start="{" data-end="}">
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__hash.html#a7c688405c14799681018e0dfc8b51264"> 514</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="l00515" name="l00515"></a><span class="lineno"> 515</span> {</div>
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</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="l00517" name="l00517"></a><span class="lineno"> 517</span> <a class="code hl_function" href="classwinstd_1_1crypt__hash.html#a3c19a87b4ff646d9e87524feac4e41b5">free_internal</a>();</div>
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> }</div>
</div>
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> </div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00526" data-start="{" data-end="}">
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__hash.html#a3c19a87b4ff646d9e87524feac4e41b5"> 526</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="l00527" name="l00527"></a><span class="lineno"> 527</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span> CryptDestroyHash(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> }</div>
</div>
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> </div>
<div class="foldopen" id="foldopen00540" data-start="{" data-end="}">
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__hash.html#af18ed660a44a2356c05e88fe04b7c722"> 540</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> <a class="code hl_function" href="classwinstd_1_1crypt__hash.html#af18ed660a44a2356c05e88fe04b7c722">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h)<span class="keyword"> const override</span></div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> hNew;</div>
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">if</span> (CryptDuplicateHash(h, NULL, 0, &amp;hNew))</div>
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <span class="keywordflow">return</span> hNew;</div>
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <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;CryptDuplicateHash failed&quot;</span>);</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> }</div>
</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> };</div>
</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> </div>
<div class="foldopen" id="foldopen00557" data-start="{" data-end="};">
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html"> 557</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="l00558" name="l00558"></a><span class="lineno"> 558</span> {</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga08a7da8215842be9aaacae90bc8a1b62">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1crypt__key.html">crypt_key</a>, HCRYPTKEY, NULL)</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> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00567" data-start="{" data-end="}">
<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#a396a4af75fd99c896757679a890e6e29"> 567</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="l00568" name="l00568"></a><span class="lineno"> 568</span> {</div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</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="l00570" name="l00570"></a><span class="lineno"> 570</span> <a class="code hl_function" href="classwinstd_1_1crypt__key.html#acf2f2ad35dd7602adcdeef17f605e391">free_internal</a>();</div>
<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> }</div>
</div>
<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> </div>
<div class="foldopen" id="foldopen00581" data-start="{" data-end="}">
<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#a9a6097582df953795969c29ec134914a"> 581</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1crypt__key.html#a9a6097582df953795969c29ec134914a">create_exp1</a>(_In_ HCRYPTPROV hProv, _In_ DWORD dwKeySpec)</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> (dwKeySpec != AT_KEYEXCHANGE &amp;&amp; dwKeySpec != AT_SIGNATURE) {</div>
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span> SetLastError(ERROR_INVALID_PARAMETER);</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</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> </div>
<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"> 588</span> <span class="comment">// Generate the private key.</span></div>
<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h;</div>
<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga5e6ab0e4e8a49e8c52c1c5b3bb9b0965">CryptGenKey</a>(hProv, dwKeySpec, CRYPT_EXPORTABLE, &amp;h)) {</div>
<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</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="l00592" name="l00592"></a><span class="lineno"> 592</span> std::vector&lt;BYTE, sanitizing_allocator&lt;BYTE&gt;&gt; key_blob;</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga72ee7a873236f55ff0cb56d46e4ff0a6">CryptExportKey</a>(h, 0, PRIVATEKEYBLOB, 0, key_blob)) {</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> CryptDestroyKey(h);</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="comment">// Get the byte length of the key.</span></div>
<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"> 597</span> <span class="keywordtype">size_t</span></div>
<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"> 598</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="l00599" name="l00599"></a><span class="lineno"> 599</span> size_prime = size_key/2;</div>
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"> 600</span> </div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</span> <span class="comment">// Modify the Exponent in Key BLOB format</span></div>
<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"> 602</span> <span class="comment">// Key BLOB format is documented in SDK</span></div>
<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"> 603</span> </div>
<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"> 604</span> <span class="comment">// Convert pubexp in rsapubkey to 1</span></div>
<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"> 605</span> LPBYTE ptr = &amp;key_blob[16];</div>
<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"> 606</span> *<span class="keyword">reinterpret_cast&lt;</span>DWORD*<span class="keyword">&gt;</span>(ptr) = 1;</div>
<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"> 607</span> ptr += <span class="keyword">sizeof</span>(DWORD);</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="comment">// Skip modulus, prime1, prime2</span></div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> ptr += size_key;</div>
<div class="line"><a id="l00611" name="l00611"></a><span class="lineno"> 611</span> ptr += size_prime;</div>
<div class="line"><a id="l00612" name="l00612"></a><span class="lineno"> 612</span> ptr += size_prime;</div>
<div class="line"><a id="l00613" name="l00613"></a><span class="lineno"> 613</span> </div>
<div class="line"><a id="l00614" name="l00614"></a><span class="lineno"> 614</span> <span class="comment">// Convert exponent1 to 1</span></div>
<div class="line"><a id="l00615" name="l00615"></a><span class="lineno"> 615</span> ptr[0] = 1;</div>
<div class="line"><a id="l00616" name="l00616"></a><span class="lineno"> 616</span> memset(ptr + 1, 0, size_prime - 1);</div>
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"> 617</span> ptr += size_prime;</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</span> </div>
<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"> 619</span> <span class="comment">// Convert exponent2 to 1</span></div>
<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"> 620</span> ptr[0] = 1;</div>
<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"> 621</span> memset(ptr + 1, 0, size_prime - 1);</div>
<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"> 622</span> ptr += size_prime;</div>
<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"> 623</span> </div>
<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"> 624</span> <span class="comment">// Skip coefficient</span></div>
<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"> 625</span> ptr += size_prime;</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> </div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> <span class="comment">// Convert privateExponent to 1</span></div>
<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"> 628</span> ptr[0] = 1;</div>
<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"> 629</span> memset(ptr + 1, 0, size_key - 1);</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="comment">// Import the exponent-of-one private key.</span></div>
<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"> 632</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gaf835e8e1fa80cfed905aa535e210a177">CryptImportKey</a>(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="l00633" name="l00633"></a><span class="lineno"> 633</span> <a class="code hl_function" href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">attach</a>(h);</div>
<div class="line"><a id="l00634" name="l00634"></a><span class="lineno"> 634</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> }</div>
<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"> 636</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"> 637</span> CryptDestroyKey(h);</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> </div>
<div class="line"><a id="l00640" name="l00640"></a><span class="lineno"> 640</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00649" data-start="{" data-end="}">
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#acf2f2ad35dd7602adcdeef17f605e391"> 649</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="l00650" name="l00650"></a><span class="lineno"> 650</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> CryptDestroyKey(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"> 652</span> }</div>
</div>
<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"> 653</span> </div>
<div class="foldopen" id="foldopen00663" data-start="{" data-end="}">
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"><a class="line" href="classwinstd_1_1crypt__key.html#a304f9d565576b6984f6e06bacb8571b3"> 663</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> <a class="code hl_function" href="classwinstd_1_1crypt__key.html#a304f9d565576b6984f6e06bacb8571b3">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h)<span class="keyword"> const override</span></div>
<div class="line"><a id="l00664" name="l00664"></a><span class="lineno"> 664</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> hNew;</div>
<div class="line"><a id="l00666" name="l00666"></a><span class="lineno"> 666</span> <span class="keywordflow">if</span> (CryptDuplicateKey(h, NULL, 0, &amp;hNew))</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> <span class="keywordflow">return</span> hNew;</div>
<div class="line"><a id="l00668" name="l00668"></a><span class="lineno"> 668</span> <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;CryptDuplicateKey failed&quot;</span>);</div>
<div class="line"><a id="l00669" name="l00669"></a><span class="lineno"> 669</span> }</div>
</div>
<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"> 670</span> };</div>
</div>
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"> 671</span> </div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span><span class="preprocessor"> #pragma warning(push)</span></div>
<div class="line"><a id="l00676" name="l00676"></a><span class="lineno"> 676</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="foldopen" id="foldopen00677" data-start="{" data-end="};">
<div class="line"><a id="l00677" name="l00677"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html"> 677</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="l00678" name="l00678"></a><span class="lineno"> 678</span> {</div>
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"> 679</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00683" data-start="{" data-end="}">
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a5bed8028538f9688eea5dc8353ff69d8"> 683</a></span> <a class="code hl_function" href="classwinstd_1_1data__blob.html#a5bed8028538f9688eea5dc8353ff69d8">data_blob</a>() noexcept</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"> 685</span> cbData = 0;</div>
<div class="line"><a id="l00686" name="l00686"></a><span class="lineno"> 686</span> pbData = NULL;</div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"> 687</span> }</div>
</div>
<div class="line"><a id="l00688" name="l00688"></a><span class="lineno"> 688</span> </div>
<div class="foldopen" id="foldopen00692" data-start="{" data-end="}">
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a66a5574a42c6c5c76051261a342a43a8"> 692</a></span> <a class="code hl_function" href="classwinstd_1_1data__blob.html#a66a5574a42c6c5c76051261a342a43a8">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="l00693" name="l00693"></a><span class="lineno"> 693</span> {</div>
<div class="line"><a id="l00694" name="l00694"></a><span class="lineno"> 694</span> cbData = <a class="code hl_function" href="classwinstd_1_1data__blob.html#ab2ad06e271e8503d7158408773054d23">size</a>;</div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"> 695</span> pbData = <a class="code hl_function" href="classwinstd_1_1data__blob.html#a498ffe8fa857c8fee0c68803049e9528">data</a>;</div>
<div class="line"><a id="l00696" name="l00696"></a><span class="lineno"> 696</span> }</div>
</div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> </div>
<div class="foldopen" id="foldopen00701" data-start="{" data-end="}">
<div class="line"><a id="l00701" name="l00701"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a11968f5b76e8a46784f7bcee3a8f00cc"> 701</a></span> <a class="code hl_function" href="classwinstd_1_1data__blob.html#a11968f5b76e8a46784f7bcee3a8f00cc">data_blob</a>(_In_ <span class="keyword">const</span> DATA_BLOB &amp;other)</div>
<div class="line"><a id="l00702" name="l00702"></a><span class="lineno"> 702</span> {</div>
<div class="line"><a id="l00703" name="l00703"></a><span class="lineno"> 703</span> cbData = other.cbData;</div>
<div class="line"><a id="l00704" name="l00704"></a><span class="lineno"> 704</span> <span class="keywordflow">if</span> (cbData) {</div>
<div class="line"><a id="l00705" name="l00705"></a><span class="lineno"> 705</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="l00706" name="l00706"></a><span class="lineno"> 706</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="l00707" name="l00707"></a><span class="lineno"> 707</span> memcpy(pbData, other.pbData, other.cbData);</div>
<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"> 708</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00709" name="l00709"></a><span class="lineno"> 709</span> pbData = NULL;</div>
<div class="line"><a id="l00710" name="l00710"></a><span class="lineno"> 710</span> }</div>
</div>
<div class="line"><a id="l00711" name="l00711"></a><span class="lineno"> 711</span> </div>
<div class="foldopen" id="foldopen00715" data-start="{" data-end="}">
<div class="line"><a id="l00715" name="l00715"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a5cfa94091e87f259bde521a7050f27c7"> 715</a></span> <a class="code hl_function" href="classwinstd_1_1data__blob.html#a5cfa94091e87f259bde521a7050f27c7">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="l00716" name="l00716"></a><span class="lineno"> 716</span> {</div>
<div class="line"><a id="l00717" name="l00717"></a><span class="lineno"> 717</span> cbData = other.cbData;</div>
<div class="line"><a id="l00718" name="l00718"></a><span class="lineno"> 718</span> pbData = other.pbData;</div>
<div class="line"><a id="l00719" name="l00719"></a><span class="lineno"> 719</span> other.cbData = 0;</div>
<div class="line"><a id="l00720" name="l00720"></a><span class="lineno"> 720</span> other.pbData = NULL;</div>
<div class="line"><a id="l00721" name="l00721"></a><span class="lineno"> 721</span> }</div>
</div>
<div class="line"><a id="l00722" name="l00722"></a><span class="lineno"> 722</span> </div>
<div class="foldopen" id="foldopen00726" data-start="{" data-end="}">
<div class="line"><a id="l00726" name="l00726"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a1c79df4fa5413536c745258d09e69599"> 726</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="l00727" name="l00727"></a><span class="lineno"> 727</span> {</div>
<div class="line"><a id="l00728" name="l00728"></a><span class="lineno"> 728</span> <span class="keywordflow">if</span> (pbData != NULL)</div>
<div class="line"><a id="l00729" name="l00729"></a><span class="lineno"> 729</span> LocalFree(pbData);</div>
<div class="line"><a id="l00730" name="l00730"></a><span class="lineno"> 730</span> }</div>
</div>
<div class="line"><a id="l00731" name="l00731"></a><span class="lineno"> 731</span> </div>
<div class="foldopen" id="foldopen00735" data-start="{" data-end="}">
<div class="line"><a id="l00735" name="l00735"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#ac818a3116ab5fc0af960f82aa505b6ae"> 735</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#ac818a3116ab5fc0af960f82aa505b6ae">operator=</a>(_In_ <span class="keyword">const</span> DATA_BLOB &amp;other)</div>
<div class="line"><a id="l00736" name="l00736"></a><span class="lineno"> 736</span> {</div>
<div class="line"><a id="l00737" name="l00737"></a><span class="lineno"> 737</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l00738" name="l00738"></a><span class="lineno"> 738</span> cbData = other.cbData;</div>
<div class="line"><a id="l00739" name="l00739"></a><span class="lineno"> 739</span> <span class="keywordflow">if</span> (pbData)</div>
<div class="line"><a id="l00740" name="l00740"></a><span class="lineno"> 740</span> LocalFree(pbData);</div>
<div class="line"><a id="l00741" name="l00741"></a><span class="lineno"> 741</span> <span class="keywordflow">if</span> (cbData) {</div>
<div class="line"><a id="l00742" name="l00742"></a><span class="lineno"> 742</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="l00743" name="l00743"></a><span class="lineno"> 743</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="l00744" name="l00744"></a><span class="lineno"> 744</span> memcpy(pbData, other.pbData, other.cbData);</div>
<div class="line"><a id="l00745" name="l00745"></a><span class="lineno"> 745</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00746" name="l00746"></a><span class="lineno"> 746</span> pbData = NULL;</div>
<div class="line"><a id="l00747" name="l00747"></a><span class="lineno"> 747</span> }</div>
<div class="line"><a id="l00748" name="l00748"></a><span class="lineno"> 748</span> </div>
<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"> 749</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00750" name="l00750"></a><span class="lineno"> 750</span> }</div>
</div>
<div class="line"><a id="l00751" name="l00751"></a><span class="lineno"> 751</span> </div>
<div class="foldopen" id="foldopen00755" data-start="{" data-end="}">
<div class="line"><a id="l00755" name="l00755"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a637b625d29bacc0875d543c69da351c2"> 755</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#a637b625d29bacc0875d543c69da351c2">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="l00756" name="l00756"></a><span class="lineno"> 756</span> {</div>
<div class="line"><a id="l00757" name="l00757"></a><span class="lineno"> 757</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;other) {</div>
<div class="line"><a id="l00758" name="l00758"></a><span class="lineno"> 758</span> cbData = other.cbData;</div>
<div class="line"><a id="l00759" name="l00759"></a><span class="lineno"> 759</span> <span class="keywordflow">if</span> (pbData)</div>
<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"> 760</span> LocalFree(pbData);</div>
<div class="line"><a id="l00761" name="l00761"></a><span class="lineno"> 761</span> pbData = other.pbData;</div>
<div class="line"><a id="l00762" name="l00762"></a><span class="lineno"> 762</span> other.cbData = 0;</div>
<div class="line"><a id="l00763" name="l00763"></a><span class="lineno"> 763</span> other.pbData = NULL;</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> </div>
<div class="line"><a id="l00766" name="l00766"></a><span class="lineno"> 766</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00767" name="l00767"></a><span class="lineno"> 767</span> }</div>
</div>
<div class="line"><a id="l00768" name="l00768"></a><span class="lineno"> 768</span> </div>
<div class="foldopen" id="foldopen00772" data-start="{" data-end="}">
<div class="line"><a id="l00772" name="l00772"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#ab2ad06e271e8503d7158408773054d23"> 772</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="l00773" name="l00773"></a><span class="lineno"> 773</span> {</div>
<div class="line"><a id="l00774" name="l00774"></a><span class="lineno"> 774</span> <span class="keywordflow">return</span> cbData;</div>
<div class="line"><a id="l00775" name="l00775"></a><span class="lineno"> 775</span> }</div>
</div>
<div class="line"><a id="l00776" name="l00776"></a><span class="lineno"> 776</span> </div>
<div class="foldopen" id="foldopen00780" data-start="{" data-end="}">
<div class="line"><a id="l00780" name="l00780"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a498ffe8fa857c8fee0c68803049e9528"> 780</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="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="keywordflow">return</span> pbData;</div>
<div class="line"><a id="l00783" name="l00783"></a><span class="lineno"> 783</span> }</div>
</div>
<div class="line"><a id="l00784" name="l00784"></a><span class="lineno"> 784</span> </div>
<div class="foldopen" id="foldopen00788" data-start="{" data-end="}">
<div class="line"><a id="l00788" name="l00788"></a><span class="lineno"><a class="line" href="classwinstd_1_1data__blob.html#a3cb5b805288c8d74cd103cac3acf10bf"> 788</a></span> BYTE* <a class="code hl_function" href="classwinstd_1_1data__blob.html#a3cb5b805288c8d74cd103cac3acf10bf">data</a>() noexcept</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> <span class="keywordflow">return</span> pbData;</div>
<div class="line"><a id="l00791" name="l00791"></a><span class="lineno"> 791</span> }</div>
</div>
<div class="line"><a id="l00792" name="l00792"></a><span class="lineno"> 792</span> };</div>
</div>
<div class="line"><a id="l00793" name="l00793"></a><span class="lineno"> 793</span><span class="preprocessor"> #pragma warning(pop)</span></div>
<div class="line"><a id="l00794" name="l00794"></a><span class="lineno"> 794</span> </div>
<div class="line"><a id="l00796" name="l00796"></a><span class="lineno"> 796</span>}</div>
<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"> 797</span> </div>
<div class="line"><a id="l00800" name="l00800"></a><span class="lineno"> 800</span> </div>
<div class="line"><a id="l00801" name="l00801"></a><span class="lineno"> 801</span><span class="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"> 802</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="l00803" name="l00803"></a><span class="lineno"> 803</span> </div>
<div class="foldopen" id="foldopen00809" data-start="{" data-end="}">
<div class="line"><a id="l00809" name="l00809"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#ga1dc14f316fe7a31ad54bb55400f54d87"> 809</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga1dc14f316fe7a31ad54bb55400f54d87">CertGetCertificateChain</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, _Inout_ <a class="code hl_class" href="classwinstd_1_1cert__chain__context.html">winstd::cert_chain_context</a> &amp;ctx)</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> PCCERT_CHAIN_CONTEXT pChainContext;</div>
<div class="line"><a id="l00812" name="l00812"></a><span class="lineno"> 812</span> BOOL bResult = <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga1dc14f316fe7a31ad54bb55400f54d87">CertGetCertificateChain</a>(hChainEngine, pCertContext, pTime, hAdditionalStore, pChainPara, dwFlags, pvReserved, &amp;pChainContext);</div>
<div class="line"><a id="l00813" name="l00813"></a><span class="lineno"> 813</span> <span class="keywordflow">if</span> (bResult)</div>
<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"> 814</span> ctx.attach(pChainContext);</div>
<div class="line"><a id="l00815" name="l00815"></a><span class="lineno"> 815</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00816" name="l00816"></a><span class="lineno"> 816</span>}</div>
</div>
<div class="line"><a id="l00817" name="l00817"></a><span class="lineno"> 817</span> </div>
<div class="foldopen" id="foldopen00819" data-start="{" data-end="}">
<div class="line"><a id="l00819" name="l00819"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#ga54a61f3b9b1ddc10544d7156184a9c51"> 819</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga54a61f3b9b1ddc10544d7156184a9c51">CryptAcquireContextA</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1crypt__prov.html">winstd::crypt_prov</a> &amp;prov, _In_opt_ LPCSTR szContainer, _In_opt_ LPCSTR szProvider, _In_ DWORD dwProvType, _In_ DWORD dwFlags)</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> HCRYPTPROV h;</div>
<div class="line"><a id="l00822" name="l00822"></a><span class="lineno"> 822</span> BOOL bResult = <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga54a61f3b9b1ddc10544d7156184a9c51">CryptAcquireContextA</a>(&amp;h, szContainer, szProvider, dwProvType, dwFlags);</div>
<div class="line"><a id="l00823" name="l00823"></a><span class="lineno"> 823</span> <span class="keywordflow">if</span> (bResult)</div>
<div class="line"><a id="l00824" name="l00824"></a><span class="lineno"> 824</span> prov.attach(h);</div>
<div class="line"><a id="l00825" name="l00825"></a><span class="lineno"> 825</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"> 826</span>}</div>
</div>
<div class="line"><a id="l00827" name="l00827"></a><span class="lineno"> 827</span> </div>
<div class="foldopen" id="foldopen00833" data-start="{" data-end="}">
<div class="line"><a id="l00833" name="l00833"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#gaa4a362230b1471ad35e4072a8d506ad4"> 833</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gaa4a362230b1471ad35e4072a8d506ad4">CryptAcquireContextW</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1crypt__prov.html">winstd::crypt_prov</a> &amp;prov, _In_opt_ LPCWSTR szContainer, _In_opt_ LPCWSTR szProvider, _In_ DWORD dwProvType, _In_ DWORD dwFlags)</div>
<div class="line"><a id="l00834" name="l00834"></a><span class="lineno"> 834</span>{</div>
<div class="line"><a id="l00835" name="l00835"></a><span class="lineno"> 835</span> HCRYPTPROV h;</div>
<div class="line"><a id="l00836" name="l00836"></a><span class="lineno"> 836</span> BOOL bResult = <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gaa4a362230b1471ad35e4072a8d506ad4">CryptAcquireContextW</a>(&amp;h, szContainer, szProvider, dwProvType, dwFlags);</div>
<div class="line"><a id="l00837" name="l00837"></a><span class="lineno"> 837</span> <span class="keywordflow">if</span> (bResult)</div>
<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"> 838</span> prov.attach(h);</div>
<div class="line"><a id="l00839" name="l00839"></a><span class="lineno"> 839</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00840" name="l00840"></a><span class="lineno"> 840</span>}</div>
</div>
<div class="line"><a id="l00841" name="l00841"></a><span class="lineno"> 841</span> </div>
<div class="foldopen" id="foldopen00847" data-start="{" data-end="}">
<div class="line"><a id="l00847" name="l00847"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#ga947da720e2b4c51947e06f9489cf71eb"> 847</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga947da720e2b4c51947e06f9489cf71eb">CryptCreateHash</a>(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_ HCRYPTKEY hKey, _In_ DWORD dwFlags, _Inout_ <a class="code hl_class" href="classwinstd_1_1crypt__hash.html">winstd::crypt_hash</a> &amp;hash)</div>
<div class="line"><a id="l00848" name="l00848"></a><span class="lineno"> 848</span>{</div>
<div class="line"><a id="l00849" name="l00849"></a><span class="lineno"> 849</span> HCRYPTHASH h;</div>
<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"> 850</span> BOOL bResult = <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga947da720e2b4c51947e06f9489cf71eb">CryptCreateHash</a>(hProv, Algid, hKey, dwFlags, &amp;h);</div>
<div class="line"><a id="l00851" name="l00851"></a><span class="lineno"> 851</span> <span class="keywordflow">if</span> (bResult)</div>
<div class="line"><a id="l00852" name="l00852"></a><span class="lineno"> 852</span> hash.attach(h);</div>
<div class="line"><a id="l00853" name="l00853"></a><span class="lineno"> 853</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00854" name="l00854"></a><span class="lineno"> 854</span>}</div>
</div>
<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"> 855</span> </div>
<div class="foldopen" id="foldopen00861" data-start="{" data-end="}">
<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#ga5e6ab0e4e8a49e8c52c1c5b3bb9b0965"> 861</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga5e6ab0e4e8a49e8c52c1c5b3bb9b0965">CryptGenKey</a>(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_ DWORD dwFlags, _Inout_ <a class="code hl_class" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a> &amp;key)</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> HCRYPTKEY h;</div>
<div class="line"><a id="l00864" name="l00864"></a><span class="lineno"> 864</span> BOOL bResult = <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga5e6ab0e4e8a49e8c52c1c5b3bb9b0965">CryptGenKey</a>(hProv, Algid, dwFlags, &amp;h);</div>
<div class="line"><a id="l00865" name="l00865"></a><span class="lineno"> 865</span> <span class="keywordflow">if</span> (bResult)</div>
<div class="line"><a id="l00866" name="l00866"></a><span class="lineno"> 866</span> key.attach(h);</div>
<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"> 867</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00868" name="l00868"></a><span class="lineno"> 868</span>}</div>
</div>
<div class="line"><a id="l00869" name="l00869"></a><span class="lineno"> 869</span> </div>
<div class="foldopen" id="foldopen00875" data-start="{" data-end="}">
<div class="line"><a id="l00875" name="l00875"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#gaf835e8e1fa80cfed905aa535e210a177"> 875</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gaf835e8e1fa80cfed905aa535e210a177">CryptImportKey</a>(_In_ HCRYPTPROV hProv, __in_bcount(dwDataLen) LPCBYTE pbData, _In_ DWORD dwDataLen, _In_ HCRYPTKEY hPubKey, _In_ DWORD dwFlags, _Inout_ <a class="code hl_class" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a> &amp;key)</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> HCRYPTKEY h;</div>
<div class="line"><a id="l00878" name="l00878"></a><span class="lineno"> 878</span> BOOL bResult = <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gaf835e8e1fa80cfed905aa535e210a177">CryptImportKey</a>(hProv, pbData, dwDataLen, hPubKey, dwFlags, &amp;h);</div>
<div class="line"><a id="l00879" name="l00879"></a><span class="lineno"> 879</span> <span class="keywordflow">if</span> (bResult)</div>
<div class="line"><a id="l00880" name="l00880"></a><span class="lineno"> 880</span> key.attach(h);</div>
<div class="line"><a id="l00881" name="l00881"></a><span class="lineno"> 881</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"> 882</span>}</div>
</div>
<div class="line"><a id="l00883" name="l00883"></a><span class="lineno"> 883</span> </div>
<div class="foldopen" id="foldopen00889" data-start="{" data-end="}">
<div class="line"><a id="l00889" name="l00889"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#ga0e1662683cff5871962961a6f49664a0"> 889</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga0e1662683cff5871962961a6f49664a0">CryptImportPublicKeyInfo</a>(_In_ HCRYPTPROV hCryptProv, _In_ DWORD dwCertEncodingType, _In_ PCERT_PUBLIC_KEY_INFO pInfo, _Inout_ <a class="code hl_class" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a> &amp;key)</div>
<div class="line"><a id="l00890" name="l00890"></a><span class="lineno"> 890</span>{</div>
<div class="line"><a id="l00891" name="l00891"></a><span class="lineno"> 891</span> HCRYPTKEY h;</div>
<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"> 892</span> BOOL bResult = <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#ga0e1662683cff5871962961a6f49664a0">CryptImportPublicKeyInfo</a>(hCryptProv, dwCertEncodingType, pInfo, &amp;h);</div>
<div class="line"><a id="l00893" name="l00893"></a><span class="lineno"> 893</span> <span class="keywordflow">if</span> (bResult)</div>
<div class="line"><a id="l00894" name="l00894"></a><span class="lineno"> 894</span> key.attach(h);</div>
<div class="line"><a id="l00895" name="l00895"></a><span class="lineno"> 895</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00896" name="l00896"></a><span class="lineno"> 896</span>}</div>
</div>
<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"> 897</span> </div>
<div class="foldopen" id="foldopen00903" data-start="{" data-end="}">
<div class="line"><a id="l00903" name="l00903"></a><span class="lineno"><a class="line" href="group___win_std_crypto_a_p_i.html#gad2de3e63d5df80d031a13aaa50bade53"> 903</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gad2de3e63d5df80d031a13aaa50bade53">CryptDeriveKey</a>(_In_ HCRYPTPROV hProv, _In_ ALG_ID Algid, _In_ HCRYPTHASH hBaseData, _In_ DWORD dwFlags, _Inout_ <a class="code hl_class" href="classwinstd_1_1crypt__key.html">winstd::crypt_key</a> &amp;key)</div>
<div class="line"><a id="l00904" name="l00904"></a><span class="lineno"> 904</span>{</div>
<div class="line"><a id="l00905" name="l00905"></a><span class="lineno"> 905</span> HCRYPTKEY h;</div>
<div class="line"><a id="l00906" name="l00906"></a><span class="lineno"> 906</span> BOOL bResult = <a class="code hl_function" href="group___win_std_crypto_a_p_i.html#gad2de3e63d5df80d031a13aaa50bade53">CryptDeriveKey</a>(hProv, Algid, hBaseData, dwFlags, &amp;h);</div>
<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"> 907</span> <span class="keywordflow">if</span> (bResult)</div>
<div class="line"><a id="l00908" name="l00908"></a><span class="lineno"> 908</span> key.attach(h);</div>
<div class="line"><a id="l00909" name="l00909"></a><span class="lineno"> 909</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00910" name="l00910"></a><span class="lineno"> 910</span>}</div>
</div>
<div class="line"><a id="l00911" name="l00911"></a><span class="lineno"> 911</span> </div>
<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"> 912</span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a id="l00913" name="l00913"></a><span class="lineno"> 913</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:390</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:399</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:411</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__chain__context_html_afbb8bf6ef0627268fd327059f51b121a"><div class="ttname"><a href="classwinstd_1_1cert__chain__context.html#afbb8bf6ef0627268fd327059f51b121a">winstd::cert_chain_context::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(handle_type h) const override</div><div class="ttdoc">Duplicates the certificate chain context.</div><div class="ttdef"><b>Definition</b> Crypt.h:425</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:257</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a042240321d22636cddc379b198c7fd84"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a042240321d22636cddc379b198c7fd84">winstd::cert_context::operator&lt;=</a></div><div class="ttdeci">bool operator&lt;=(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:339</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:363</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a2f3ad38a637fce69d8c2a5ee3460a296"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a2f3ad38a637fce69d8c2a5ee3460a296">winstd::cert_context::operator==</a></div><div class="ttdeci">bool operator==(const handle_type &amp;other) const noexcept</div><div class="ttdoc">Is certificate equal to?</div><div class="ttdef"><b>Definition</b> Crypt.h:280</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a6c9f09455ef40e581accc6499222040c"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a6c9f09455ef40e581accc6499222040c">winstd::cert_context::operator&gt;=</a></div><div class="ttdeci">bool operator&gt;=(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:352</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a7224d1fe6c57bfe903fa8a6df32d2466"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a7224d1fe6c57bfe903fa8a6df32d2466">winstd::cert_context::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(const handle_type &amp;other) const noexcept</div><div class="ttdoc">Is certificate greater than?</div><div class="ttdef"><b>Definition</b> Crypt.h:324</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_a92881d07b0b41b81c4119ed8d8868c3b"><div class="ttname"><a href="classwinstd_1_1cert__context.html#a92881d07b0b41b81c4119ed8d8868c3b">winstd::cert_context::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const handle_type &amp;other) const noexcept</div><div class="ttdoc">Is certificate less than?</div><div class="ttdef"><b>Definition</b> Crypt.h:309</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_adfad0db8dd947143a8406f2f988d04ad"><div class="ttname"><a href="classwinstd_1_1cert__context.html#adfad0db8dd947143a8406f2f988d04ad">winstd::cert_context::operator!=</a></div><div class="ttdeci">bool operator!=(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:296</div></div>
<div class="ttc" id="aclasswinstd_1_1cert__context_html_ae39c2de0d8e9d69e524404db812e7ba7"><div class="ttname"><a href="classwinstd_1_1cert__context.html#ae39c2de0d8e9d69e524404db812e7ba7">winstd::cert_context::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(handle_type h) const override</div><div class="ttdoc">Duplicates the certificate context.</div><div class="ttdef"><b>Definition</b> Crypt.h:377</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:266</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:439</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:448</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:460</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:505</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:526</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:514</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__hash_html_af18ed660a44a2356c05e88fe04b7c722"><div class="ttname"><a href="classwinstd_1_1crypt__hash.html#af18ed660a44a2356c05e88fe04b7c722">winstd::crypt_hash::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(handle_type h) const override</div><div class="ttdoc">Duplicates the hash context.</div><div class="ttdef"><b>Definition</b> Crypt.h:540</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:558</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__key_html_a304f9d565576b6984f6e06bacb8571b3"><div class="ttname"><a href="classwinstd_1_1crypt__key.html#a304f9d565576b6984f6e06bacb8571b3">winstd::crypt_key::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(handle_type h) const override</div><div class="ttdoc">Duplicates the key.</div><div class="ttdef"><b>Definition</b> Crypt.h:663</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:567</div></div>
<div class="ttc" id="aclasswinstd_1_1crypt__key_html_a9a6097582df953795969c29ec134914a"><div class="ttname"><a href="classwinstd_1_1crypt__key.html#a9a6097582df953795969c29ec134914a">winstd::crypt_key::create_exp1</a></div><div class="ttdeci">bool create_exp1(HCRYPTPROV hProv, DWORD dwKeySpec)</div><div class="ttdoc">Creates Exponent-of-one key.</div><div class="ttdef"><b>Definition</b> Crypt.h:581</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:649</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:472</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:481</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:493</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:678</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a11968f5b76e8a46784f7bcee3a8f00cc"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a11968f5b76e8a46784f7bcee3a8f00cc">winstd::data_blob::data_blob</a></div><div class="ttdeci">data_blob(const DATA_BLOB &amp;other)</div><div class="ttdoc">Duplicate an existing BLOB.</div><div class="ttdef"><b>Definition</b> Crypt.h:701</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:726</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:788</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:780</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:683</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a5cfa94091e87f259bde521a7050f27c7"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a5cfa94091e87f259bde521a7050f27c7">winstd::data_blob::data_blob</a></div><div class="ttdeci">data_blob(data_blob &amp;&amp;other) noexcept</div><div class="ttdoc">Move an existing BLOB.</div><div class="ttdef"><b>Definition</b> Crypt.h:715</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a637b625d29bacc0875d543c69da351c2"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a637b625d29bacc0875d543c69da351c2">winstd::data_blob::operator=</a></div><div class="ttdeci">data_blob &amp; operator=(data_blob &amp;&amp;other) noexcept</div><div class="ttdoc">Move an existing BLOB.</div><div class="ttdef"><b>Definition</b> Crypt.h:755</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_a66a5574a42c6c5c76051261a342a43a8"><div class="ttname"><a href="classwinstd_1_1data__blob.html#a66a5574a42c6c5c76051261a342a43a8">winstd::data_blob::data_blob</a></div><div class="ttdeci">data_blob(BYTE *data, DWORD size) noexcept</div><div class="ttdoc">Initializes a BLOB from existing data.</div><div class="ttdef"><b>Definition</b> Crypt.h:692</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:772</div></div>
<div class="ttc" id="aclasswinstd_1_1data__blob_html_ac818a3116ab5fc0af960f82aa505b6ae"><div class="ttname"><a href="classwinstd_1_1data__blob.html#ac818a3116ab5fc0af960f82aa505b6ae">winstd::data_blob::operator=</a></div><div class="ttdeci">data_blob &amp; operator=(const DATA_BLOB &amp;other)</div><div class="ttdoc">Copy an existing BLOB.</div><div class="ttdef"><b>Definition</b> Crypt.h:735</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 trivial handle...</div><div class="ttdef"><b>Definition</b> Common.h:1137</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:874</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="ttdef"><b>Definition</b> Common.h:1126</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_ab2a98042c3b88fda687e34d370756f11"><div class="ttname"><a href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">winstd::handle&lt; HCRYPTKEY, INVAL &gt;::attach</a></div><div class="ttdeci">void attach(handle_type h) noexcept</div><div class="ttdef"><b>Definition</b> Common.h:1089</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_ae5faed333075739a27c99372967e01a6"><div class="ttname"><a href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;::handle_type</a></div><div class="ttdeci">PCCERT_CONTEXT handle_type</div><div class="ttdef"><b>Definition</b> Common.h:879</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:1403</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_ga0e1662683cff5871962961a6f49664a0"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#ga0e1662683cff5871962961a6f49664a0">CryptImportPublicKeyInfo</a></div><div class="ttdeci">static bool CryptImportPublicKeyInfo(HCRYPTPROV hCryptProv, DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, winstd::crypt_key &amp;key)</div><div class="ttdoc">Imports the public key.</div><div class="ttdef"><b>Definition</b> Crypt.h:889</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_ga0f4039aa2a795b7a73e5fb07f3742378"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#ga0f4039aa2a795b7a73e5fb07f3742378">CertGetCertificateContextProperty</a></div><div class="ttdeci">static BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, std::vector&lt; _Ty, _Ax &gt; &amp;aData)</div><div class="ttdoc">Retrieves the information contained in an extended property of a certificate context.</div><div class="ttdef"><b>Definition</b> Crypt.h:55</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_ga1dc14f316fe7a31ad54bb55400f54d87"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#ga1dc14f316fe7a31ad54bb55400f54d87">CertGetCertificateChain</a></div><div class="ttdeci">static BOOL CertGetCertificateChain(HCERTCHAINENGINE hChainEngine, PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, winstd::cert_chain_context &amp;ctx)</div><div class="ttdoc">The CertGetCertificateChain function builds a certificate chain context starting from an end certific...</div><div class="ttdef"><b>Definition</b> Crypt.h:809</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_ga231b40581fbe230fdc82d4f473f2e43f"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#ga231b40581fbe230fdc82d4f473f2e43f">CryptGetHashParam</a></div><div class="ttdeci">static BOOL CryptGetHashParam(HCRYPTHASH hHash, DWORD dwParam, std::vector&lt; _Ty, _Ax &gt; &amp;aData, DWORD dwFlags)</div><div class="ttdoc">Retrieves data that governs the operations of a hash object. The actual hash value can be retrieved b...</div><div class="ttdef"><b>Definition</b> Crypt.h:80</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_ga2a0de58b33f5eb080e3b6ba9a7fe1e53"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#ga2a0de58b33f5eb080e3b6ba9a7fe1e53">CertGetNameStringW</a></div><div class="ttdeci">static DWORD CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, void *pvTypePara, std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;sNameString)</div><div class="ttdoc">Obtains the subject or issuer name from a certificate CERT_CONTEXT structure and stores it in a std::...</div><div class="ttdef"><b>Definition</b> Crypt.h:39</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_ga54a61f3b9b1ddc10544d7156184a9c51"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#ga54a61f3b9b1ddc10544d7156184a9c51">CryptAcquireContextA</a></div><div class="ttdeci">static BOOL CryptAcquireContextA(winstd::crypt_prov &amp;prov, LPCSTR szContainer, LPCSTR szProvider, DWORD dwProvType, DWORD dwFlags)</div><div class="ttdoc">Acquires the cryptographic context.</div><div class="ttdef"><b>Definition</b> Crypt.h:819</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_ga551dacab30d7f72a713f69ea09edea92"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#ga551dacab30d7f72a713f69ea09edea92">CertGetNameStringA</a></div><div class="ttdeci">static DWORD CertGetNameStringA(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, void *pvTypePara, std::basic_string&lt; char, _Traits, _Ax &gt; &amp;sNameString)</div><div class="ttdoc">Obtains the subject or issuer name from a certificate CERT_CONTEXT structure and stores it in a std::...</div><div class="ttdef"><b>Definition</b> Crypt.h:23</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_ga5e6ab0e4e8a49e8c52c1c5b3bb9b0965"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#ga5e6ab0e4e8a49e8c52c1c5b3bb9b0965">CryptGenKey</a></div><div class="ttdeci">static BOOL CryptGenKey(HCRYPTPROV hProv, ALG_ID Algid, DWORD dwFlags, winstd::crypt_key &amp;key)</div><div class="ttdoc">Generates the key.</div><div class="ttdef"><b>Definition</b> Crypt.h:861</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_ga72ee7a873236f55ff0cb56d46e4ff0a6"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#ga72ee7a873236f55ff0cb56d46e4ff0a6">CryptExportKey</a></div><div class="ttdeci">static BOOL CryptExportKey(HCRYPTKEY hKey, HCRYPTKEY hExpKey, DWORD dwBlobType, DWORD dwFlags, std::vector&lt; _Ty, _Ax &gt; &amp;aData)</div><div class="ttdoc">Exports a cryptographic key or a key pair from a cryptographic service provider (CSP) in a secure man...</div><div class="ttdef"><b>Definition</b> Crypt.h:154</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_ga782fd6fda714da07b5e687b80fc6f443"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#ga782fd6fda714da07b5e687b80fc6f443">CryptGetKeyParam</a></div><div class="ttdeci">static BOOL CryptGetKeyParam(HCRYPTKEY hKey, DWORD dwParam, std::vector&lt; _Ty, _Ax &gt; &amp;aData, DWORD dwFlags)</div><div class="ttdoc">Retrieves data that governs the operations of a key.</div><div class="ttdef"><b>Definition</b> Crypt.h:117</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_ga947da720e2b4c51947e06f9489cf71eb"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#ga947da720e2b4c51947e06f9489cf71eb">CryptCreateHash</a></div><div class="ttdeci">static BOOL CryptCreateHash(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey, DWORD dwFlags, winstd::crypt_hash &amp;hash)</div><div class="ttdoc">Creates the hash context.</div><div class="ttdef"><b>Definition</b> Crypt.h:847</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_gaa4a362230b1471ad35e4072a8d506ad4"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#gaa4a362230b1471ad35e4072a8d506ad4">CryptAcquireContextW</a></div><div class="ttdeci">static BOOL CryptAcquireContextW(winstd::crypt_prov &amp;prov, LPCWSTR szContainer, LPCWSTR szProvider, DWORD dwProvType, DWORD dwFlags)</div><div class="ttdoc">Acquires the cryptographic context.</div><div class="ttdef"><b>Definition</b> Crypt.h:833</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_gabd30cb0e884c2c88c3e4f3321ea5efff"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#gabd30cb0e884c2c88c3e4f3321ea5efff">CryptEncrypt</a></div><div class="ttdeci">static BOOL CryptEncrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, std::vector&lt; _Ty, _Ax &gt; &amp;aData)</div><div class="ttdoc">Encrypts data.</div><div class="ttdef"><b>Definition</b> Crypt.h:173</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_gad2de3e63d5df80d031a13aaa50bade53"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#gad2de3e63d5df80d031a13aaa50bade53">CryptDeriveKey</a></div><div class="ttdeci">static bool CryptDeriveKey(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTHASH hBaseData, DWORD dwFlags, winstd::crypt_key &amp;key)</div><div class="ttdoc">Generates cryptographic session keys derived from a base data value.</div><div class="ttdef"><b>Definition</b> Crypt.h:903</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_gae93b1a49d6eafd5c7d8abe48ee97faf8"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#gae93b1a49d6eafd5c7d8abe48ee97faf8">CryptDecrypt</a></div><div class="ttdeci">static BOOL CryptDecrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, std::vector&lt; _Ty, _Ax &gt; &amp;aData)</div><div class="ttdoc">Decrypts data previously encrypted by using the CryptEncrypt function.</div><div class="ttdef"><b>Definition</b> Crypt.h:228</div></div>
<div class="ttc" id="agroup___win_std_crypto_a_p_i_html_gaf835e8e1fa80cfed905aa535e210a177"><div class="ttname"><a href="group___win_std_crypto_a_p_i.html#gaf835e8e1fa80cfed905aa535e210a177">CryptImportKey</a></div><div class="ttdeci">static bool CryptImportKey(HCRYPTPROV hProv, __in_bcount(dwDataLen) LPCBYTE pbData, DWORD dwDataLen, HCRYPTKEY hPubKey, DWORD dwFlags, winstd::crypt_key &amp;key)</div><div class="ttdoc">Imports the key.</div><div class="ttdef"><b>Definition</b> Crypt.h:875</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:94</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga08a7da8215842be9aaacae90bc8a1b62"><div class="ttname"><a href="group___win_std_sys_handles.html#ga08a7da8215842be9aaacae90bc8a1b62">WINSTD_DPLHANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_DPLHANDLE_IMPL(C, T, 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:176</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga51471bfe41853b66ac0f44df97cfaaa6"><div class="ttname"><a href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, T, 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:164</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="ttdef"><b>Definition</b> Common.h:884</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

748
_e_a_p_8h_source.html Normal file
View File

@ -0,0 +1,748 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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-2024 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="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">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;eaphostpeerconfigapis.h&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &lt;eaptypes.h&gt;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;EapHostPeerTypes.h&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;eapmethodtypes.h&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;eappapis.h&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;WinSock2.h&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</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="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="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</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="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="foldopen" id="foldopen00039" data-start="{" data-end="}">
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#ga4fac0d35e8ca3fa63c53f85a9d10fa80"> 39</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group___win_std_e_a_p_a_p_i.html#ga4fac0d35e8ca3fa63c53f85a9d10fa80">operator==</a>(_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="l00040" name="l00040"></a><span class="lineno"> 40</span>{</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> a.eapType.type == b.eapType.type &amp;&amp;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> a.eapType.dwVendorId == b.eapType.dwVendorId &amp;&amp;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> a.eapType.dwVendorType == b.eapType.dwVendorType &amp;&amp;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> a.dwAuthorId == a.dwAuthorId;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span>}</div>
</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="foldopen" id="foldopen00058" data-start="{" data-end="}">
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#gac742802fadd5c08227ed40026c21524a"> 58</a></span><span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="group___win_std_e_a_p_a_p_i.html#gac742802fadd5c08227ed40026c21524a">operator!=</a>(_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="l00059" name="l00059"></a><span class="lineno"> 59</span>{</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> !<a class="code hl_function" href="group___win_std_e_a_p_a_p_i.html#ga4fac0d35e8ca3fa63c53f85a9d10fa80">operator==</a>(a, b);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>}</div>
</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</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><span class="preprocessor">#pragma warning(pop)</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><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>{</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor"> #pragma warning(suppress: 4480)</span></div>
<div class="foldopen" id="foldopen00078" data-start="{" data-end="};">
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#ga50f5584ca708165f43cec42c42243315"> 78</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="l00079" name="l00079"></a><span class="lineno"> 79</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="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#gga50f5584ca708165f43cec42c42243315aff483d1ff591898a9942916050d2ca3f">identity</a> = 1, </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#gga50f5584ca708165f43cec42c42243315a0cfd653d5d3e1e9fdbb644523d77971d">notification</a> = 2, </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#gga50f5584ca708165f43cec42c42243315aa755bc3c9689ab5eaedd25afc4a79b9f">nak</a> = 3, </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#gga50f5584ca708165f43cec42c42243315a1f61e547b81232a658f0704e85488a6c">md5_challenge</a> = 4, </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#gga50f5584ca708165f43cec42c42243315ad2270e7120a93c8b0a6a34760e654c7d">otp</a> = 5, </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#gga50f5584ca708165f43cec42c42243315a3761e7920c97542314b1aa50434f9293">gtc</a> = 6, </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#gga50f5584ca708165f43cec42c42243315aa60aeea3d4cdbb5049fc37164644bb34">tls</a> = 13, </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#gga50f5584ca708165f43cec42c42243315accd905a8bbc449980aa7f26fcbd206e2">ttls</a> = 21, </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#gga50f5584ca708165f43cec42c42243315ab62d9100a672844bff4ac5cbc8de9fce">peap</a> = 25, </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#gga50f5584ca708165f43cec42c42243315af579ec4460aed7126de9ed539845a0f4">mschapv2</a> = 26, </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#gga50f5584ca708165f43cec42c42243315ae19141eb8aa04ffb76d616409efcdf03">ms_auth_tlv</a> = 33, </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> <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="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</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="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#gga50f5584ca708165f43cec42c42243315adfe86ce1b68c3cdefe90e35904fc744a">legacy_mschapv2</a> = 193, </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> <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="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#gga50f5584ca708165f43cec42c42243315a7f021a1415b86f2d013b2618fb31ae53">end</a> = 192, </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#gga50f5584ca708165f43cec42c42243315a8fb40a36c92da4be50f5052602e6fcf4">noneap_start</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#gga50f5584ca708165f43cec42c42243315aa93b0d36fa0eb07db651bb830470be12">noneap_end</a> = 254, </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> };</div>
</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="foldopen" id="foldopen00106" data-start="{" data-end="};">
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_memory__delete.html"> 106</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="l00107" name="l00107"></a><span class="lineno"> 107</span> {</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_memory__delete.html#af6220ac1d99cc114670c363ecfe64557"> 111</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="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _T&gt;</div>
<div class="foldopen" id="foldopen00119" data-start="{" data-end="}">
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_memory__delete.html#a20b97a65abb2063a31fc8fd7a9cb0f1f"> 119</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="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> EapHostPeerFreeMemory((BYTE*)_Ptr);</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> }</div>
</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> };</div>
</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#ga25f2a0eea11e8332bfcec6b032a17a05"> 128</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="l00129" name="l00129"></a><span class="lineno"> 129</span> </div>
<div class="foldopen" id="foldopen00133" data-start="{" data-end="};">
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html"> 133</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="l00134" name="l00134"></a><span class="lineno"> 134</span> {</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#afdd46f3517e59ce19fdaddebbbaeb10d"> 138</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="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">template</span> &lt;<span class="keyword">class</span> _T&gt;</div>
<div class="foldopen" id="foldopen00144" data-start="{" data-end="}">
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#a4c573463394fc3ea6781f796d29fe26e"> 144</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="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> EapHostPeerFreeRuntimeMemory((BYTE*)_Ptr);</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> }</div>
</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> };</div>
</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#gabd2665596cc49191b36e6378147c47ad"> 153</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="l00154" name="l00154"></a><span class="lineno"> 154</span> </div>
<div class="foldopen" id="foldopen00158" data-start="{" data-end="};">
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html"> 158</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="l00159" name="l00159"></a><span class="lineno"> 159</span> {</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a43f0b1a440b9a431e9fee807bc1386be"> 163</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="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="foldopen" id="foldopen00170" data-start="{" data-end="}">
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a5dd9a56b7344ef66c378041a97fdb307"> 170</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="l00171" name="l00171"></a><span class="lineno"> 171</span> {</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> EapHostPeerFreeErrorMemory(_Ptr);</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> }</div>
</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> };</div>
</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#ga910edec3d3d1ba4f6f306dcafdc2117a"> 179</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="l00180" name="l00180"></a><span class="lineno"> 180</span> </div>
<div class="foldopen" id="foldopen00184" data-start="{" data-end="};">
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html"> 184</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="l00185" name="l00185"></a><span class="lineno"> 185</span> {</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ab4dd927d7e4cd40b2ce7068fe252b76e"> 189</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="l00190" name="l00190"></a><span class="lineno"> 190</span> </div>
<div class="foldopen" id="foldopen00196" data-start="{" data-end="}">
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ae6aa071d5b9824f6062746360478a683"> 196</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="l00197" name="l00197"></a><span class="lineno"> 197</span> {</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> EapHostPeerFreeEapError(_Ptr);</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> }</div>
</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> };</div>
</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#ga102f6e28f2ae479af7b6555894f110ac"> 205</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="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="preprocessor"> #pragma warning(push)</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</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="foldopen" id="foldopen00212" data-start="{" data-end="};">
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html"> 212</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="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="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00218" data-start="{" data-end="}">
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#a015a82d7f91679f76ca590bbdabc04c1"> 218</a></span> <a class="code hl_function" href="classwinstd_1_1eap__attr.html#a015a82d7f91679f76ca590bbdabc04c1">eap_attr</a>() noexcept</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> {</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> eaType = eatReserved;</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> dwLength = 0;</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> pValue = NULL;</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> }</div>
</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> </div>
<div class="foldopen" id="foldopen00228" data-start="{" data-end="}">
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#a4cb8d6fbf7f4e53ec64a030bea00d148"> 228</a></span> <a class="code hl_function" href="classwinstd_1_1eap__attr.html#a4cb8d6fbf7f4e53ec64a030bea00d148">eap_attr</a>(_In_ <span class="keyword">const</span> EAP_ATTRIBUTE &amp;a)</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> eaType = a.eaType;</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> dwLength = a.dwLength;</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keywordflow">if</span> (a.dwLength) {</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> pValue = <span class="keyword">new</span> BYTE[a.dwLength];</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> memcpy(pValue, a.pValue, a.dwLength);</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> pValue = NULL;</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> }</div>
</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
<div class="foldopen" id="foldopen00242" data-start="{" data-end="}">
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#a029d15ddb8b9cd33b4907f01719da5b8"> 242</a></span> <a class="code hl_function" href="classwinstd_1_1eap__attr.html#a029d15ddb8b9cd33b4907f01719da5b8">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="l00243" name="l00243"></a><span class="lineno"> 243</span> {</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> eaType = a.eaType;</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> dwLength = a.dwLength;</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="keywordflow">if</span> (a.dwLength) {</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> pValue = a.pValue;</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> a.dwLength = 0;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> a.pValue = NULL;</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> pValue = NULL;</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> }</div>
</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> </div>
<div class="foldopen" id="foldopen00257" data-start="{" data-end="}">
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#a085d6ade88a42ba69cf128a97b7c9b0d"> 257</a></span> <a class="code hl_function" href="classwinstd_1_1eap__attr.html#a085d6ade88a42ba69cf128a97b7c9b0d">~eap_attr</a>()</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="keywordflow">if</span> (pValue)</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keyword">delete</span> [] pValue;</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> }</div>
</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> </div>
<div class="foldopen" id="foldopen00266" data-start="{" data-end="}">
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#aa5909d52c15557908ff584f4712eea05"> 266</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#aa5909d52c15557908ff584f4712eea05">operator=</a>(_In_ <span class="keyword">const</span> EAP_ATTRIBUTE &amp;a)</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> {</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;a) {</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> eaType = a.eaType;</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> dwLength = a.dwLength;</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">if</span> (a.dwLength) {</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> BYTE *pValueNew = <span class="keyword">new</span> BYTE[a.dwLength];</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">if</span> (pValue)</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keyword">delete</span> [] pValue;</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> memcpy(pValueNew, a.pValue, a.dwLength);</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> pValue = pValueNew;</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> pValue = NULL;</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> }</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> }</div>
</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> </div>
<div class="foldopen" id="foldopen00286" data-start="{" data-end="}">
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#a242766666ce3cbb83429ddd0eaeb9cc6"> 286</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#a242766666ce3cbb83429ddd0eaeb9cc6">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="l00287" name="l00287"></a><span class="lineno"> 287</span> {</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;a) {</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> eaType = a.eaType;</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> dwLength = a.dwLength;</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">if</span> (pValue)</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> <span class="keyword">delete</span> [] pValue;</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">if</span> (a.dwLength) {</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> pValue = a.pValue;</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> a.dwLength = 0;</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> a.pValue = NULL;</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> pValue = NULL;</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> }</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> }</div>
</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> </div>
<div class="foldopen" id="foldopen00310" data-start="{" data-end="}">
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__attr.html#a8098b30108457f2c96c865bfabce3021"> 310</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1eap__attr.html#a8098b30108457f2c96c865bfabce3021">create_ms_mppe_key</a>(_In_ BYTE bVendorType, _In_count_(nKeySize) LPCBYTE pbKey, _In_ BYTE nKeySize)</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="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="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keyword">const</span> DWORD dwLengthNew =</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> 4 + <span class="comment">// Vendor-Id</span></div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> 1 + <span class="comment">// Vendor type</span></div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> 1 + <span class="comment">// Vendor length</span></div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> 2 + <span class="comment">// Salt</span></div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> 1 + <span class="comment">// Key-Length</span></div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> nKeySize + <span class="comment">// Key</span></div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> nPaddingLength; <span class="comment">// Padding</span></div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> </div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span><span class="preprocessor"> #pragma warning(push)</span></div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span><span class="preprocessor"> #pragma warning(disable: 6386)</span></div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> LPBYTE p = <span class="keyword">new</span> BYTE[dwLengthNew];</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> p[0] = 0x00; <span class="comment">// Vendor-Id (0x137 = 311 = Microsoft)</span></div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> p[1] = 0x00; <span class="comment">// --|</span></div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> p[2] = 0x01; <span class="comment">// --|</span></div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> p[3] = 0x37; <span class="comment">// --^</span></div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> p[4] = bVendorType; <span class="comment">// Vendor type</span></div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</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="l00331" name="l00331"></a><span class="lineno"> 331</span> p[6] = 0x00; <span class="comment">// Salt</span></div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> p[7] = 0x00; <span class="comment">// --^</span></div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> p[8] = nKeySize; <span class="comment">// Key-Length</span></div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span><span class="preprocessor"> #pragma warning(pop)</span></div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> memcpy(p + 9, pbKey, nKeySize); <span class="comment">// Key</span></div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> memset(p + 9 + nKeySize, 0, nPaddingLength); <span class="comment">// Padding</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> <span class="keywordflow">if</span> (pValue)</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> <span class="keyword">delete</span> [] pValue;</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><span class="preprocessor"> #pragma warning(suppress: 26812) </span><span class="comment">// EAP_ATTRIBUTE_TYPE is unscoped.</span></div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> eaType = eatVendorSpecific;</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> dwLength = dwLengthNew;</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> pValue = p;</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> }</div>
</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> };</div>
</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span><span class="preprocessor"> #pragma warning(pop)</span></div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> </div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"><a class="line" href="group___win_std_e_a_p_a_p_i.html#gaeeb21f5241c6b605b67c3e6e4128f972"> 352</a></span> <span class="keyword">static</span> <span class="keyword">const</span> EAP_ATTRIBUTE <a class="code hl_variable" href="group___win_std_e_a_p_a_p_i.html#gaeeb21f5241c6b605b67c3e6e4128f972">blank_eap_attr</a> = {};</div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> </div>
<div class="foldopen" id="foldopen00357" data-start="{" data-end="};">
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__prop.html"> 357</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="l00358" name="l00358"></a><span class="lineno"> 358</span> {</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00366" data-start="{" data-end="}">
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__prop.html#a06b8588c10a52d60556ced6b6a111ac3"> 366</a></span> <a class="code hl_function" href="classwinstd_1_1eap__method__prop.html#a06b8588c10a52d60556ced6b6a111ac3">eap_method_prop</a>(_In_ EAP_METHOD_PROPERTY_TYPE type, _In_ BOOL value) <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> eapMethodPropertyType = type;</div>
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> eapMethodPropertyValueType = empvtBool;</div>
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> eapMethodPropertyValue.empvBool.length = <span class="keyword">sizeof</span>(BOOL);</div>
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> eapMethodPropertyValue.empvBool.value = value;</div>
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> }</div>
</div>
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> </div>
<div class="foldopen" id="foldopen00380" data-start="{" data-end="}">
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__prop.html#a7f0f5817c41e839a1e71eda3a2284949"> 380</a></span> <a class="code hl_function" href="classwinstd_1_1eap__method__prop.html#a7f0f5817c41e839a1e71eda3a2284949">eap_method_prop</a>(_In_ EAP_METHOD_PROPERTY_TYPE type, _In_ DWORD value) <span class="keyword">noexcept</span></div>
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> {</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> eapMethodPropertyType = type;</div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> eapMethodPropertyValueType = empvtDword;</div>
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> eapMethodPropertyValue.empvDword.length = <span class="keyword">sizeof</span>(DWORD);</div>
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> eapMethodPropertyValue.empvDword.value = value;</div>
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> }</div>
</div>
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> </div>
<div class="foldopen" id="foldopen00394" data-start="{" data-end="}">
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__prop.html#adc01bff4048e03f5f7b88d186940b9d8"> 394</a></span> <a class="code hl_function" href="classwinstd_1_1eap__method__prop.html#adc01bff4048e03f5f7b88d186940b9d8">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="l00395" name="l00395"></a><span class="lineno"> 395</span> {</div>
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> eapMethodPropertyType = type;</div>
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> eapMethodPropertyValueType = empvtString;</div>
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</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="l00399" name="l00399"></a><span class="lineno"> 399</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="l00400" name="l00400"></a><span class="lineno"> 400</span> }</div>
</div>
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> };</div>
</div>
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> </div>
<div class="foldopen" id="foldopen00406" data-start="{" data-end="};">
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html"> 406</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="l00407" name="l00407"></a><span class="lineno"> 407</span> {</div>
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga08a7da8215842be9aaacae90bc8a1b62">WINSTD_DPLHANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1eap__packet.html">eap_packet</a>, EapPacket*, NULL)</div>
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> </div>
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00414" data-start="{" data-end="}">
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html#a6abed7e1c0460fd6e2ae5d832fbd7493"> 414</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="l00415" name="l00415"></a><span class="lineno"> 415</span> {</div>
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</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="l00417" name="l00417"></a><span class="lineno"> 417</span> <a class="code hl_function" href="classwinstd_1_1eap__packet.html#a6d68149b92c1564b2683ddb3a87b60f0">free_internal</a>();</div>
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> }</div>
</div>
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> </div>
<div class="foldopen" id="foldopen00433" data-start="{" data-end="}">
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html#ac769190286a427b778b17215f19010e9"> 433</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classwinstd_1_1eap__packet.html#ac769190286a427b778b17215f19010e9">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="l00434" name="l00434"></a><span class="lineno"> 434</span> {</div>
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</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="l00436" name="l00436"></a><span class="lineno"> 436</span> </div>
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h = <span class="keyword">static_cast&lt;</span><a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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="l00438" name="l00438"></a><span class="lineno"> 438</span> <span class="keywordflow">if</span> (h != NULL) {</div>
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> h-&gt;Code = <span class="keyword">static_cast&lt;</span>BYTE<span class="keyword">&gt;</span>(code);</div>
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> h-&gt;Id = id;</div>
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</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="l00442" name="l00442"></a><span class="lineno"> 442</span> </div>
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> <a class="code hl_function" href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">attach</a>(h);</div>
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> SetLastError(ERROR_OUTOFMEMORY);</div>
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> }</div>
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> }</div>
</div>
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> </div>
<div class="foldopen" id="foldopen00454" data-start="{" data-end="}">
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html#a2534ad15ae47e2d46354d9f535f4031f"> 454</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="l00455" name="l00455"></a><span class="lineno"> 455</span> {</div>
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</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="l00457" name="l00457"></a><span class="lineno"> 457</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00463" data-start="{" data-end="}">
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html#a6d68149b92c1564b2683ddb3a87b60f0"> 463</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="l00464" name="l00464"></a><span class="lineno"> 464</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span> HeapFree(GetProcessHeap(), 0, <a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span> }</div>
</div>
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> </div>
<div class="foldopen" id="foldopen00471" data-start="{" data-end="}">
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__packet.html#af7e0415d3a524c0e79fc429f3911c809"> 471</a></span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> <a class="code hl_function" href="classwinstd_1_1eap__packet.html#af7e0415d3a524c0e79fc429f3911c809">duplicate_internal</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h)<span class="keyword"> const override</span></div>
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> assert(h);</div>
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</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="l00475" name="l00475"></a><span class="lineno"> 475</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h2 = <span class="keyword">static_cast&lt;</span><a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a><span class="keyword">&gt;</span>(HeapAlloc(GetProcessHeap(), 0, n));</div>
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keywordflow">if</span> (h2 != <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> _Analysis_assume_(h2 != NULL); <span class="comment">// VS2022 can&#39;t figure out `invalid` is `NULL`</span></div>
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> memcpy(h2, h, n);</div>
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> <span class="keywordflow">return</span> h2;</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> <span class="keywordflow">throw</span> std::bad_alloc();</div>
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> }</div>
</div>
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> };</div>
</div>
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> </div>
<div class="foldopen" id="foldopen00488" data-start="{" data-end="};">
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__info__array.html"> 488</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="l00489" name="l00489"></a><span class="lineno"> 489</span> {</div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</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="l00491" name="l00491"></a><span class="lineno"> 491</span> </div>
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00496" data-start="{" data-end="}">
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__info__array.html#a3dc5d1571c9e85dedd3dd3d6626947b7"> 496</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="l00497" name="l00497"></a><span class="lineno"> 497</span> {</div>
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> dwNumberOfMethods = 0;</div>
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> pEapMethods = NULL;</div>
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> }</div>
</div>
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> </div>
<div class="foldopen" id="foldopen00507" data-start="{" data-end="}">
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__info__array.html#a3c3e0f0150d21c09801c67ceb927e873"> 507</a></span> <a class="code hl_function" href="classwinstd_1_1eap__method__info__array.html#a3c3e0f0150d21c09801c67ceb927e873">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="l00508" name="l00508"></a><span class="lineno"> 508</span> {</div>
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> dwNumberOfMethods = other.dwNumberOfMethods;</div>
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> pEapMethods = other.pEapMethods;</div>
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> other.dwNumberOfMethods = 0;</div>
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> other.pEapMethods = NULL;</div>
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> }</div>
</div>
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> </div>
<div class="foldopen" id="foldopen00518" data-start="{" data-end="}">
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__info__array.html#a6870644e66359b0448094a193ef0b4b8"> 518</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="l00519" name="l00519"></a><span class="lineno"> 519</span> {</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> <span class="keywordflow">if</span> (pEapMethods)</div>
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> free_internal();</div>
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> }</div>
</div>
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span> </div>
<div class="foldopen" id="foldopen00529" data-start="{" data-end="}">
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__method__info__array.html#aea48aefd91b676cdbeb9511640108f2a"> 529</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#aea48aefd91b676cdbeb9511640108f2a">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="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> != std::addressof(other)) {</div>
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> <span class="keywordflow">if</span> (pEapMethods)</div>
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> free_internal();</div>
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> dwNumberOfMethods = other.dwNumberOfMethods;</div>
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> pEapMethods = other.pEapMethods;</div>
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> other.dwNumberOfMethods = 0;</div>
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> other.pEapMethods = NULL;</div>
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> }</div>
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> }</div>
</div>
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> </div>
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> <span class="keyword">protected</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> <span class="keywordtype">void</span> free_internal() noexcept</div>
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> {</div>
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <span class="keywordflow">for</span> (DWORD i = 0; i &lt; dwNumberOfMethods; i++)</div>
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> free_internal(pEapMethods + i);</div>
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> </div>
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> EapHostPeerFreeMemory(<span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(pEapMethods));</div>
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span> }</div>
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> </div>
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</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="l00554" name="l00554"></a><span class="lineno"> 554</span> {</div>
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> <span class="keywordflow">if</span> (pMethodInfo-&gt;pInnerMethodInfo)</div>
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> free_internal(pMethodInfo-&gt;pInnerMethodInfo);</div>
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"> 557</span> </div>
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> EapHostPeerFreeMemory(<span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(pMethodInfo-&gt;pwszAuthorName));</div>
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> EapHostPeerFreeMemory(<span class="keyword">reinterpret_cast&lt;</span>BYTE*<span class="keyword">&gt;</span>(pMethodInfo-&gt;pwszFriendlyName));</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> </div>
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> };</div>
</div>
<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> </div>
<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> </div>
<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"> 569</span> </div>
<div class="foldopen" id="foldopen00575" data-start="{" data-end="};">
<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html"> 575</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="l00576" name="l00576"></a><span class="lineno"> 576</span> {</div>
<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00584" data-start="{" data-end="}">
<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a68708f0598e27325339cc34473131240"> 584</a></span> <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#a68708f0598e27325339cc34473131240">eap_runtime_error</a>(_In_ <span class="keyword">const</span> EAP_ERROR &amp;err, _In_ <span class="keyword">const</span> std::string&amp; msg) :</div>
<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</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="l00586" name="l00586"></a><span class="lineno"> 586</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="l00587" name="l00587"></a><span class="lineno"> 587</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="l00588" name="l00588"></a><span class="lineno"> 588</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="l00589" name="l00589"></a><span class="lineno"> 589</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="l00590" name="l00590"></a><span class="lineno"> 590</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="l00591" name="l00591"></a><span class="lineno"> 591</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="l00592" name="l00592"></a><span class="lineno"> 592</span> <a class="code hl_class" href="classwinstd_1_1win__runtime__error.html">win_runtime_error</a>(err.dwWinError, msg.c_str())</div>
<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> {}</div>
</div>
<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span> </div>
<div class="foldopen" id="foldopen00600" data-start="{" data-end="}">
<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a250b583e7c966010ba4a0bf47df7f26c"> 600</a></span> <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#a250b583e7c966010ba4a0bf47df7f26c">eap_runtime_error</a>(_In_ <span class="keyword">const</span> EAP_ERROR &amp;err) :</div>
<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"> 601</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="l00602" name="l00602"></a><span class="lineno"> 602</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="l00603" name="l00603"></a><span class="lineno"> 603</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="l00604" name="l00604"></a><span class="lineno"> 604</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="l00605" name="l00605"></a><span class="lineno"> 605</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="l00606" name="l00606"></a><span class="lineno"> 606</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="l00607" name="l00607"></a><span class="lineno"> 607</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="l00608" name="l00608"></a><span class="lineno"> 608</span> <a class="code hl_class" href="classwinstd_1_1win__runtime__error.html">win_runtime_error</a>(err.dwWinError )</div>
<div class="line"><a id="l00609" name="l00609"></a><span class="lineno"> 609</span> {}</div>
</div>
<div class="line"><a id="l00610" name="l00610"></a><span class="lineno"> 610</span> </div>
<div class="foldopen" id="foldopen00617" data-start="{" data-end="}">
<div class="line"><a id="l00617" name="l00617"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#ad2904de8ca1ddda7eb28dd4b0789dfba"> 617</a></span> <a class="code hl_function" href="classwinstd_1_1eap__runtime__error.html#ad2904de8ca1ddda7eb28dd4b0789dfba">eap_runtime_error</a>(_In_ <span class="keyword">const</span> EAP_ERROR &amp;err, _In_z_ <span class="keyword">const</span> <span class="keywordtype">char</span> *msg) :</div>
<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"> 618</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="l00619" name="l00619"></a><span class="lineno"> 619</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="l00620" name="l00620"></a><span class="lineno"> 620</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="l00621" name="l00621"></a><span class="lineno"> 621</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="l00622" name="l00622"></a><span class="lineno"> 622</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="l00623" name="l00623"></a><span class="lineno"> 623</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="l00624" name="l00624"></a><span class="lineno"> 624</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="l00625" name="l00625"></a><span class="lineno"> 625</span> <a class="code hl_class" href="classwinstd_1_1win__runtime__error.html">win_runtime_error</a>(err.dwWinError, msg )</div>
<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"> 626</span> {}</div>
</div>
<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"> 627</span> </div>
<div class="foldopen" id="foldopen00631" data-start="{" data-end="}">
<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a0562abef7454f9a6f97902d4260b7f50"> 631</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="l00632" name="l00632"></a><span class="lineno"> 632</span> {</div>
<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"> 633</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="l00634" name="l00634"></a><span class="lineno"> 634</span> }</div>
</div>
<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"> 635</span> </div>
<div class="foldopen" id="foldopen00639" data-start="{" data-end="}">
<div class="line"><a id="l00639" name="l00639"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a3329eb549dce7f57f5a59e3f5a16705c"> 639</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="l00640" name="l00640"></a><span class="lineno"> 640</span> {</div>
<div class="line"><a id="l00641" name="l00641"></a><span class="lineno"> 641</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="l00642" name="l00642"></a><span class="lineno"> 642</span> }</div>
</div>
<div class="line"><a id="l00643" name="l00643"></a><span class="lineno"> 643</span> </div>
<div class="foldopen" id="foldopen00647" data-start="{" data-end="}">
<div class="line"><a id="l00647" name="l00647"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#ae39b6b32c9505c0be2e199d8692175d1"> 647</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="l00648" name="l00648"></a><span class="lineno"> 648</span> {</div>
<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"> 649</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="l00650" name="l00650"></a><span class="lineno"> 650</span> }</div>
</div>
<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"> 651</span> </div>
<div class="foldopen" id="foldopen00655" data-start="{" data-end="}">
<div class="line"><a id="l00655" name="l00655"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a0aa17a51b2c110e874b60924281a3743"> 655</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="l00656" name="l00656"></a><span class="lineno"> 656</span> {</div>
<div class="line"><a id="l00657" name="l00657"></a><span class="lineno"> 657</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="l00658" name="l00658"></a><span class="lineno"> 658</span> }</div>
</div>
<div class="line"><a id="l00659" name="l00659"></a><span class="lineno"> 659</span> </div>
<div class="foldopen" id="foldopen00663" data-start="{" data-end="}">
<div class="line"><a id="l00663" name="l00663"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a1e80ead2a4d348ab2c939bfbbaf9330a"> 663</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="l00664" name="l00664"></a><span class="lineno"> 664</span> {</div>
<div class="line"><a id="l00665" name="l00665"></a><span class="lineno"> 665</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="l00666" name="l00666"></a><span class="lineno"> 666</span> }</div>
</div>
<div class="line"><a id="l00667" name="l00667"></a><span class="lineno"> 667</span> </div>
<div class="foldopen" id="foldopen00671" data-start="{" data-end="}">
<div class="line"><a id="l00671" name="l00671"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a981cb9a1cbf0c6e7e19252d776a2558f"> 671</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="l00672" name="l00672"></a><span class="lineno"> 672</span> {</div>
<div class="line"><a id="l00673" name="l00673"></a><span class="lineno"> 673</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="l00674" name="l00674"></a><span class="lineno"> 674</span> }</div>
</div>
<div class="line"><a id="l00675" name="l00675"></a><span class="lineno"> 675</span> </div>
<div class="foldopen" id="foldopen00679" data-start="{" data-end="}">
<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#af7179a9cc9ff633a0e7d5983a4680171"> 679</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="l00680" name="l00680"></a><span class="lineno"> 680</span> {</div>
<div class="line"><a id="l00681" name="l00681"></a><span class="lineno"> 681</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="l00682" name="l00682"></a><span class="lineno"> 682</span> }</div>
</div>
<div class="line"><a id="l00683" name="l00683"></a><span class="lineno"> 683</span> </div>
<div class="line"><a id="l00684" name="l00684"></a><span class="lineno"> 684</span> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00685" name="l00685"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a4d7e04b38831f029d862990b607333aa"> 685</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="l00686" name="l00686"></a><span class="lineno"> 686</span> </div>
<div class="line"><a id="l00687" name="l00687"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#af7d0e9785475719f4b1b0b59c4ae49e3"> 687</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="l00688" name="l00688"></a><span class="lineno"> 688</span> </div>
<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a084ddacb051932c211a995872fb67b57"> 689</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="l00690" name="l00690"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#aea17d371de31216ac0754c1ed1f0b99a"> 690</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="l00691" name="l00691"></a><span class="lineno"> 691</span> </div>
<div class="line"><a id="l00692" name="l00692"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a526d2ae63c12d1a439d69412e7f13ec7"> 692</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="l00693" name="l00693"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#a2b237993f0c860b8b0ad83416d499f18"> 693</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="l00694" name="l00694"></a><span class="lineno"> 694</span> </div>
<div class="line"><a id="l00695" name="l00695"></a><span class="lineno"><a class="line" href="classwinstd_1_1eap__runtime__error.html#aa23bf8c3fc64f54e7021bb97dfefda89"> 695</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="l00696" name="l00696"></a><span class="lineno"> 696</span> };</div>
</div>
<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"> 697</span> </div>
<div class="line"><a id="l00699" name="l00699"></a><span class="lineno"> 699</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="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 trivial handle...</div><div class="ttdef"><b>Definition</b> Common.h:1137</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:213</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:218</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_a029d15ddb8b9cd33b4907f01719da5b8"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#a029d15ddb8b9cd33b4907f01719da5b8">winstd::eap_attr::eap_attr</a></div><div class="ttdeci">eap_attr(eap_attr &amp;&amp;a) noexcept</div><div class="ttdoc">Moves an existing EAP attribute.</div><div class="ttdef"><b>Definition</b> EAP.h:242</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:257</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_a242766666ce3cbb83429ddd0eaeb9cc6"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#a242766666ce3cbb83429ddd0eaeb9cc6">winstd::eap_attr::operator=</a></div><div class="ttdeci">eap_attr &amp; operator=(eap_attr &amp;&amp;a) noexcept</div><div class="ttdoc">Moves an existing EAP attribute.</div><div class="ttdef"><b>Definition</b> EAP.h:286</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_a4cb8d6fbf7f4e53ec64a030bea00d148"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#a4cb8d6fbf7f4e53ec64a030bea00d148">winstd::eap_attr::eap_attr</a></div><div class="ttdeci">eap_attr(const EAP_ATTRIBUTE &amp;a)</div><div class="ttdoc">Copies an existing EAP attribute.</div><div class="ttdef"><b>Definition</b> EAP.h:228</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_a8098b30108457f2c96c865bfabce3021"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#a8098b30108457f2c96c865bfabce3021">winstd::eap_attr::create_ms_mppe_key</a></div><div class="ttdeci">void create_ms_mppe_key(BYTE bVendorType, LPCBYTE pbKey, 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:310</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__attr_html_aa5909d52c15557908ff584f4712eea05"><div class="ttname"><a href="classwinstd_1_1eap__attr.html#aa5909d52c15557908ff584f4712eea05">winstd::eap_attr::operator=</a></div><div class="ttdeci">eap_attr &amp; operator=(const EAP_ATTRIBUTE &amp;a)</div><div class="ttdoc">Copies an existing EAP attribute.</div><div class="ttdef"><b>Definition</b> EAP.h:266</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:489</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__info__array_html_a3c3e0f0150d21c09801c67ceb927e873"><div class="ttname"><a href="classwinstd_1_1eap__method__info__array.html#a3c3e0f0150d21c09801c67ceb927e873">winstd::eap_method_info_array::eap_method_info_array</a></div><div class="ttdeci">eap_method_info_array(eap_method_info_array &amp;&amp;other) noexcept</div><div class="ttdoc">Move constructor.</div><div class="ttdef"><b>Definition</b> EAP.h:507</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:496</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:518</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__info__array_html_aea48aefd91b676cdbeb9511640108f2a"><div class="ttname"><a href="classwinstd_1_1eap__method__info__array.html#aea48aefd91b676cdbeb9511640108f2a">winstd::eap_method_info_array::operator=</a></div><div class="ttdeci">eap_method_info_array &amp; operator=(eap_method_info_array &amp;&amp;other) noexcept</div><div class="ttdoc">Move assignment.</div><div class="ttdef"><b>Definition</b> EAP.h:529</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:358</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__prop_html_a06b8588c10a52d60556ced6b6a111ac3"><div class="ttname"><a href="classwinstd_1_1eap__method__prop.html#a06b8588c10a52d60556ced6b6a111ac3">winstd::eap_method_prop::eap_method_prop</a></div><div class="ttdeci">eap_method_prop(EAP_METHOD_PROPERTY_TYPE type, BOOL value) noexcept</div><div class="ttdoc">Constructs a BOOL method property.</div><div class="ttdef"><b>Definition</b> EAP.h:366</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__prop_html_a7f0f5817c41e839a1e71eda3a2284949"><div class="ttname"><a href="classwinstd_1_1eap__method__prop.html#a7f0f5817c41e839a1e71eda3a2284949">winstd::eap_method_prop::eap_method_prop</a></div><div class="ttdeci">eap_method_prop(EAP_METHOD_PROPERTY_TYPE type, DWORD value) noexcept</div><div class="ttdoc">Constructs a DWORD method property.</div><div class="ttdef"><b>Definition</b> EAP.h:380</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__method__prop_html_adc01bff4048e03f5f7b88d186940b9d8"><div class="ttname"><a href="classwinstd_1_1eap__method__prop.html#adc01bff4048e03f5f7b88d186940b9d8">winstd::eap_method_prop::eap_method_prop</a></div><div class="ttdeci">eap_method_prop(EAP_METHOD_PROPERTY_TYPE type, LPCWSTR value) noexcept</div><div class="ttdoc">Constructs a Unicode string method property.</div><div class="ttdef"><b>Definition</b> EAP.h:394</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:407</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:454</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:414</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:463</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__packet_html_ac769190286a427b778b17215f19010e9"><div class="ttname"><a href="classwinstd_1_1eap__packet.html#ac769190286a427b778b17215f19010e9">winstd::eap_packet::create</a></div><div class="ttdeci">bool create(EapCode code, BYTE id, WORD size) noexcept</div><div class="ttdoc">Create new EAP packet.</div><div class="ttdef"><b>Definition</b> EAP.h:433</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__packet_html_af7e0415d3a524c0e79fc429f3911c809"><div class="ttname"><a href="classwinstd_1_1eap__packet.html#af7e0415d3a524c0e79fc429f3911c809">winstd::eap_packet::duplicate_internal</a></div><div class="ttdeci">handle_type duplicate_internal(handle_type h) const override</div><div class="ttdoc">Duplicates the EAP packet.</div><div class="ttdef"><b>Definition</b> EAP.h:471</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:576</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:631</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:689</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:655</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:663</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a250b583e7c966010ba4a0bf47df7f26c"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a250b583e7c966010ba4a0bf47df7f26c">winstd::eap_runtime_error::eap_runtime_error</a></div><div class="ttdeci">eap_runtime_error(const EAP_ERROR &amp;err)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition</b> EAP.h:600</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:693</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:639</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:685</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:692</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_a68708f0598e27325339cc34473131240"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#a68708f0598e27325339cc34473131240">winstd::eap_runtime_error::eap_runtime_error</a></div><div class="ttdeci">eap_runtime_error(const EAP_ERROR &amp;err, const std::string &amp;msg)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition</b> EAP.h:584</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:671</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:695</div></div>
<div class="ttc" id="aclasswinstd_1_1eap__runtime__error_html_ad2904de8ca1ddda7eb28dd4b0789dfba"><div class="ttname"><a href="classwinstd_1_1eap__runtime__error.html#ad2904de8ca1ddda7eb28dd4b0789dfba">winstd::eap_runtime_error::eap_runtime_error</a></div><div class="ttdeci">eap_runtime_error(const EAP_ERROR &amp;err, const char *msg)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition</b> EAP.h:617</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:647</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:690</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:679</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:687</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="ttdef"><b>Definition</b> Common.h:1126</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_ab2a98042c3b88fda687e34d370756f11"><div class="ttname"><a href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">winstd::handle&lt; EapPacket *, INVAL &gt;::attach</a></div><div class="ttdeci">void attach(handle_type h) noexcept</div><div class="ttdef"><b>Definition</b> Common.h:1089</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_ae5faed333075739a27c99372967e01a6"><div class="ttname"><a href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">winstd::handle&lt; EapPacket *, INVAL &gt;::handle_type</a></div><div class="ttdeci">EapPacket * handle_type</div><div class="ttdef"><b>Definition</b> Common.h:879</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:1403</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:205</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:128</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_ga4fac0d35e8ca3fa63c53f85a9d10fa80"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#ga4fac0d35e8ca3fa63c53f85a9d10fa80">operator==</a></div><div class="ttdeci">static bool operator==(const EAP_METHOD_TYPE &amp;a, const EAP_METHOD_TYPE &amp;b) noexcept</div><div class="ttdoc">Are EAP method types equal?</div><div class="ttdef"><b>Definition</b> EAP.h:39</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:78</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:179</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:153</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gac742802fadd5c08227ed40026c21524a"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gac742802fadd5c08227ed40026c21524a">operator!=</a></div><div class="ttdeci">static bool operator!=(const EAP_METHOD_TYPE &amp;a, const EAP_METHOD_TYPE &amp;b) noexcept</div><div class="ttdoc">Are EAP method types non-equal?</div><div class="ttdef"><b>Definition</b> EAP.h:58</div></div>
<div class="ttc" id="agroup___win_std_e_a_p_a_p_i_html_gaeeb21f5241c6b605b67c3e6e4128f972"><div class="ttname"><a href="group___win_std_e_a_p_a_p_i.html#gaeeb21f5241c6b605b67c3e6e4128f972">winstd::blank_eap_attr</a></div><div class="ttdeci">static const EAP_ATTRIBUTE blank_eap_attr</div><div class="ttdoc">Blank EAP attribute.</div><div class="ttdef"><b>Definition</b> EAP.h:352</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:67</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga08a7da8215842be9aaacae90bc8a1b62"><div class="ttname"><a href="group___win_std_sys_handles.html#ga08a7da8215842be9aaacae90bc8a1b62">WINSTD_DPLHANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_DPLHANDLE_IMPL(C, T, 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:176</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="ttdef"><b>Definition</b> Common.h:884</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:185</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:189</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:196</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:159</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:163</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:170</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:107</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:119</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:111</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:134</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:144</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:138</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

1165
_e_t_w_8h_source.html Normal file

File diff suppressed because it is too large Load Diff

312
_g_d_i_8h_source.html Normal file
View File

@ -0,0 +1,312 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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-2024 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="foldopen" id="foldopen00021" data-start="{" data-end="};">
<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#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1gdi__handle.html">gdi_handle</a>, T, 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="foldopen" id="foldopen00031" data-start="{" data-end="}">
<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>
<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="foldopen" id="foldopen00043" data-start="{" data-end="}">
<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>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> };</div>
</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="foldopen" id="foldopen00052" data-start="{" data-end="};">
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classwinstd_1_1icon.html"> 52</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1icon.html">icon</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;HICON, 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#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1icon.html">icon</a>, HICON, 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="foldopen" id="foldopen00062" data-start="{" data-end="}">
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classwinstd_1_1icon.html#a569f3d6f5e841666d33917ae4f5e7f37"> 62</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1icon.html#a569f3d6f5e841666d33917ae4f5e7f37">~icon</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_1icon.html#a08f193eb987d54f2df65f42dcd1d5d0c">free_internal</a>();</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> }</div>
</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="foldopen" id="foldopen00074" data-start="{" data-end="}">
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="classwinstd_1_1icon.html#a08f193eb987d54f2df65f42dcd1d5d0c"> 74</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1icon.html#a08f193eb987d54f2df65f42dcd1d5d0c">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> DestroyIcon(<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>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> };</div>
</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> </div>
<div class="foldopen" id="foldopen00083" data-start="{" data-end="};">
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc.html"> 83</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="l00084" name="l00084"></a><span class="lineno"> 84</span> {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1dc.html">dc</a>, HDC, NULL)</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> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00093" data-start="{" data-end="}">
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc.html#ae8c5722935c8a1c3f6a1857679f4563c"> 93</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="l00094" name="l00094"></a><span class="lineno"> 94</span> {</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</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="l00096" name="l00096"></a><span class="lineno"> 96</span> <a class="code hl_function" href="classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557">free_internal</a>();</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00105" data-start="{" data-end="}">
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557"> 105</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="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> DeleteDC(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> }</div>
</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> };</div>
</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="foldopen" id="foldopen00114" data-start="{" data-end="};">
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html"> 114</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="l00115" name="l00115"></a><span class="lineno"> 115</span> {</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00120" data-start="{" data-end="}">
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a82c191df2785d2d83517d44744b28e0a"> 120</a></span> <a class="code hl_function" href="classwinstd_1_1window__dc.html#a82c191df2785d2d83517d44744b28e0a">window_dc</a>() noexcept :</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <a class="code hl_variable" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">m_hwnd</a>(NULL)</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> {}</div>
</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="foldopen" id="foldopen00127" data-start="{" data-end="}">
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a2b4c7b6f55d8d87dedadf08457031d12"> 127</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#ae5faed333075739a27c99372967e01a6">handle_type</a> h, _In_opt_ HWND hwnd) noexcept :</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle&lt;handle_type, NULL&gt;</a>(h),</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <a class="code hl_variable" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">m_hwnd</a>(hwnd)</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> {}</div>
</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="foldopen" id="foldopen00135" data-start="{" data-end="}">
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#af4841fbba9da009955938892fad8de0e"> 135</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="l00136" name="l00136"></a><span class="lineno"> 136</span> <a class="code hl_function" href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle&lt;handle_type, NULL&gt;</a>(std::move(h)),</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</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="l00138" name="l00138"></a><span class="lineno"> 138</span> {}</div>
</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
<div class="foldopen" id="foldopen00143" data-start="{" data-end="}">
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#ad5d431027a698fef783407ba9e9d167b"> 143</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="l00144" name="l00144"></a><span class="lineno"> 144</span> {</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</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="l00146" name="l00146"></a><span class="lineno"> 146</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="l00147" name="l00147"></a><span class="lineno"> 147</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> }</div>
</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> <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="l00151" name="l00151"></a><span class="lineno"> 151</span> </div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00158" data-start="{" data-end="}">
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a3fd01c5264443520462cb7cab886a79b"> 158</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="l00159" name="l00159"></a><span class="lineno"> 159</span> {</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</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="l00161" name="l00161"></a><span class="lineno"> 161</span> <a class="code hl_function" href="classwinstd_1_1window__dc.html#a351bae4203ad766c94f4fc6eac74e98a">free_internal</a>();</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> }</div>
</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="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00170" data-start="{" data-end="}">
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a351bae4203ad766c94f4fc6eac74e98a"> 170</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="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</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="l00173" name="l00173"></a><span class="lineno"> 173</span> }</div>
</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="keyword">protected</span>:</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3"> 176</a></span> HWND <a class="code hl_variable" href="classwinstd_1_1window__dc.html#a04f6e8a97f6a492cc2f0683738e978d3">m_hwnd</a>; </div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> };</div>
</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> </div>
<div class="foldopen" id="foldopen00182" data-start="{" data-end="};">
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html"> 182</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="l00183" name="l00183"></a><span class="lineno"> 183</span> {</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</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="l00185" name="l00185"></a><span class="lineno"> 185</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="l00186" name="l00186"></a><span class="lineno"> 186</span> </div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00193" data-start="{" data-end="}">
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#a4cb5b528376651a59eb9bbb8471c3f22"> 193</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="l00194" name="l00194"></a><span class="lineno"> 194</span> <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3">m_hdc</a>(hdc),</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</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="l00196" name="l00196"></a><span class="lineno"> 196</span> {}</div>
</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="foldopen" id="foldopen00203" data-start="{" data-end="}">
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#a6e4daf6736cab31fc696dd3adfe4bcfd"> 203</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="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="keywordflow">if</span> (<a class="code hl_variable" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e">m_orig</a>)</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</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="l00207" name="l00207"></a><span class="lineno"> 207</span> }</div>
</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
<div class="foldopen" id="foldopen00214" data-start="{" data-end="}">
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#aacb4060094f2c4b1747ffa76455b235d"> 214</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="l00215" name="l00215"></a><span class="lineno"> 215</span> {</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</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="l00217" name="l00217"></a><span class="lineno"> 217</span> }</div>
</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="keyword">protected</span>:</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3"> 220</a></span> HDC <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#ab2d1223cd41529b6b2c9bb09c34568e3">m_hdc</a>; </div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"><a class="line" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e"> 221</a></span> HGDIOBJ <a class="code hl_variable" href="classwinstd_1_1dc__selector.html#aa443ed25d281078db2172808e7c74b3e">m_orig</a>; </div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> };</div>
</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</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:183</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:193</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:203</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:221</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:214</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:220</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:84</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:105</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:93</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:874</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_a1b9c4f9529c9efa7d16dec8bab3b00e4"><div class="ttname"><a href="classwinstd_1_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">winstd::handle&lt; HDC, NULL &gt;::handle</a></div><div class="ttdeci">handle() noexcept</div><div class="ttdef"><b>Definition</b> Common.h:889</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="ttdef"><b>Definition</b> Common.h:1126</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_ae5faed333075739a27c99372967e01a6"><div class="ttname"><a href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">winstd::handle&lt; HDC, NULL &gt;::handle_type</a></div><div class="ttdeci">HDC handle_type</div><div class="ttdef"><b>Definition</b> Common.h:879</div></div>
<div class="ttc" id="aclasswinstd_1_1icon_html"><div class="ttname"><a href="classwinstd_1_1icon.html">winstd::icon</a></div><div class="ttdoc">Windows HICON wrapper class.</div><div class="ttdef"><b>Definition</b> GDI.h:53</div></div>
<div class="ttc" id="aclasswinstd_1_1icon_html_a08f193eb987d54f2df65f42dcd1d5d0c"><div class="ttname"><a href="classwinstd_1_1icon.html#a08f193eb987d54f2df65f42dcd1d5d0c">winstd::icon::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:74</div></div>
<div class="ttc" id="aclasswinstd_1_1icon_html_a569f3d6f5e841666d33917ae4f5e7f37"><div class="ttname"><a href="classwinstd_1_1icon.html#a569f3d6f5e841666d33917ae4f5e7f37">winstd::icon::~icon</a></div><div class="ttdeci">virtual ~icon()</div><div class="ttdoc">Closes an open object handle.</div><div class="ttdef"><b>Definition</b> GDI.h:62</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:115</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:176</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:127</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:170</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:158</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:120</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:143</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:135</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:67</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:75</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga51471bfe41853b66ac0f44df97cfaaa6"><div class="ttname"><a href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, T, 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:164</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="ttdef"><b>Definition</b> Common.h:884</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

408
_m_s_i_8h_source.html Normal file
View File

@ -0,0 +1,408 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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-2024 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="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">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;MsiQuery.h&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="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="foldopen" id="foldopen00021" data-start="{" data-end="}">
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="group___win_std_m_s_i_a_p_i.html#ga7a5853cf74ed8adb1b5cd1289c39e385"> 21</a></span><span class="keyword">static</span> UINT <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga7a5853cf74ed8adb1b5cd1289c39e385">MsiGetPropertyA</a>(_In_ MSIHANDLE hInstall, _In_z_ LPCSTR szName, _Inout_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sValue)</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="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="l00026" name="l00026"></a><span class="lineno"> 26</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> UINT uiResult;</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">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> uiResult = <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga7a5853cf74ed8adb1b5cd1289c39e385">::MsiGetPropertyA</a>(hInstall, szName, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</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> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// Allocate buffer on heap to read the string data into and read it.</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> sValue.resize(dwSize++);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> return ::MsiGetPropertyA(hInstall, szName, &amp;sValue[0], &amp;dwSize);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span> uiResult;</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>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00051" data-start="{" data-end="}">
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="group___win_std_m_s_i_a_p_i.html#ga32e20a17013eb7660fda19f2b1de389d"> 51</a></span><span class="keyword">static</span> UINT <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga32e20a17013eb7660fda19f2b1de389d">MsiGetPropertyW</a>(_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="l00052" name="l00052"></a><span class="lineno"> 52</span>{</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</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="l00054" name="l00054"></a><span class="lineno"> 54</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> UINT uiResult;</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="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> uiResult = <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga32e20a17013eb7660fda19f2b1de389d">::MsiGetPropertyW</a>(hInstall, szName, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// Allocate buffer on heap to read the string data into and read it.</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> sValue.resize(dwSize++);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> return ::MsiGetPropertyW(hInstall, szName, &amp;sValue[0], &amp;dwSize);</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="comment">// Return error code.</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> }</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>}</div>
</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00075" data-start="{" data-end="}">
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="group___win_std_m_s_i_a_p_i.html#gaedc818f42d945e54f6956c928b3ffc29"> 75</a></span><span class="keyword">static</span> UINT <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#gaedc818f42d945e54f6956c928b3ffc29">MsiRecordGetStringA</a>(_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="l00076" name="l00076"></a><span class="lineno"> 76</span>{</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> assert(0); <span class="comment">// TODO: Test this code.</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> <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="l00080" name="l00080"></a><span class="lineno"> 80</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> UINT uiResult;</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> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> uiResult = <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#gaedc818f42d945e54f6956c928b3ffc29">::MsiRecordGetStringA</a>(hRecord, iField, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// Allocate buffer on heap to read the string data into and read it.</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> sValue.resize(dwSize++);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> return ::MsiRecordGetStringA(hRecord, iField, &amp;sValue[0], &amp;dwSize);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">return</span> uiResult;</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>}</div>
</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00105" data-start="{" data-end="}">
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="group___win_std_m_s_i_a_p_i.html#ga487c38b4353054a4e518ca01d1397cf6"> 105</a></span><span class="keyword">static</span> UINT <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga487c38b4353054a4e518ca01d1397cf6">MsiRecordGetStringW</a>(_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="l00106" name="l00106"></a><span class="lineno"> 106</span>{</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</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="l00108" name="l00108"></a><span class="lineno"> 108</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> UINT uiResult;</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> uiResult = <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga487c38b4353054a4e518ca01d1397cf6">::MsiRecordGetStringW</a>(hRecord, iField, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// Allocate buffer on heap to read the string data into and read it.</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> sValue.resize(dwSize++);</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> return ::MsiRecordGetStringW(hRecord, iField, &amp;sValue[0], &amp;dwSize);</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">return</span> uiResult;</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>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00129" data-start="{" data-end="}">
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="group___win_std_m_s_i_a_p_i.html#ga7cb245425b74bdf9b89c754636486f0c"> 129</a></span><span class="keyword">static</span> UINT <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga7cb245425b74bdf9b89c754636486f0c">MsiFormatRecordA</a>(_In_opt_ MSIHANDLE hInstall, _In_ MSIHANDLE hRecord, _Inout_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sValue)</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> assert(0); <span class="comment">// TODO: Test this code.</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="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="l00134" name="l00134"></a><span class="lineno"> 134</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> UINT uiResult;</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> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> uiResult = <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga7cb245425b74bdf9b89c754636486f0c">::MsiFormatRecordA</a>(hInstall, hRecord, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> sValue.resize(dwSize++);</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> return ::MsiFormatRecordA(hInstall, hRecord, &amp;sValue[0], &amp;dwSize);</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keywordflow">return</span> uiResult;</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>}</div>
</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> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00159" data-start="{" data-end="}">
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="group___win_std_m_s_i_a_p_i.html#ga016f87f038892fe3121a2dd5232468d2"> 159</a></span><span class="keyword">static</span> UINT <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga016f87f038892fe3121a2dd5232468d2">MsiFormatRecordW</a>(_In_opt_ MSIHANDLE hInstall, _In_ MSIHANDLE hRecord, _Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sValue)</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> <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="l00162" name="l00162"></a><span class="lineno"> 162</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> UINT uiResult;</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="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> uiResult = <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga016f87f038892fe3121a2dd5232468d2">::MsiFormatRecordW</a>(hInstall, hRecord, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> sValue.resize(dwSize++);</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> return ::MsiFormatRecordW(hInstall, hRecord, &amp;sValue[0], &amp;dwSize);</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">return</span> uiResult;</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>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> </div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Ty, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00187" data-start="{" data-end="}">
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"><a class="line" href="group___win_std_m_s_i_a_p_i.html#ga83052d8dfbdf437cc45e6a4b46357036"> 187</a></span><span class="keyword">static</span> UINT <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga83052d8dfbdf437cc45e6a4b46357036">MsiRecordReadStream</a>(_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="l00188" name="l00188"></a><span class="lineno"> 188</span>{</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> assert(0); <span class="comment">// TODO: Test this code.</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> DWORD dwSize = 0;</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> UINT uiResult;</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> <span class="comment">// Query the actual data length first.</span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> uiResult = <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga83052d8dfbdf437cc45e6a4b46357036">::MsiRecordReadStream</a>(hRecord, iField, NULL, &amp;dwSize);</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> binData.resize((dwSize + <span class="keyword">sizeof</span>(_Ty) - 1) / <span class="keyword">sizeof</span>(_Ty));</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</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="l00199" name="l00199"></a><span class="lineno"> 199</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">return</span> uiResult;</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>}</div>
</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00207" data-start="{" data-end="}">
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"><a class="line" href="group___win_std_m_s_i_a_p_i.html#ga340ee7efbd658e2d6ecfb199c41856bc"> 207</a></span><span class="keyword">static</span> UINT <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga340ee7efbd658e2d6ecfb199c41856bc">MsiGetTargetPathA</a>(_In_ MSIHANDLE hInstall, _In_z_ LPCSTR szFolder, _Out_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sValue)</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span>{</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> assert(0); <span class="comment">// TODO: Test this code.</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> <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="l00212" name="l00212"></a><span class="lineno"> 212</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> UINT uiResult;</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="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> uiResult = <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga340ee7efbd658e2d6ecfb199c41856bc">::MsiGetTargetPathA</a>(hInstall, szFolder, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> sValue.resize(dwSize++);</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> return ::MsiGetTargetPathA(hInstall, szFolder, &amp;sValue[0], &amp;dwSize);</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="keywordflow">return</span> 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>}</div>
</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"> 236</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00237" data-start="{" data-end="}">
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"><a class="line" href="group___win_std_m_s_i_a_p_i.html#ga51696a19fb4b748eed04fa3b6a8f9eca"> 237</a></span><span class="keyword">static</span> UINT <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga51696a19fb4b748eed04fa3b6a8f9eca">MsiGetTargetPathW</a>(_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="l00238" name="l00238"></a><span class="lineno"> 238</span>{</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</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="l00240" name="l00240"></a><span class="lineno"> 240</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> UINT uiResult;</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="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> uiResult = <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga51696a19fb4b748eed04fa3b6a8f9eca">::MsiGetTargetPathW</a>(hInstall, szFolder, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">if</span> (uiResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (uiResult == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> sValue.resize(dwSize++);</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> return ::MsiGetTargetPathW(hInstall, szFolder, &amp;sValue[0], &amp;dwSize);</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keywordflow">return</span> uiResult;</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> }</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span>}</div>
</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> </div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00261" data-start="{" data-end="}">
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"><a class="line" href="group___win_std_m_s_i_a_p_i.html#ga41c26288267e69f5bba73f9b125bf2a3"> 261</a></span><span class="keyword">static</span> INSTALLSTATE <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga41c26288267e69f5bba73f9b125bf2a3">MsiGetComponentPathA</a>(_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="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="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="l00264" name="l00264"></a><span class="lineno"> 264</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> INSTALLSTATE state;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> </div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> state = <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#ga41c26288267e69f5bba73f9b125bf2a3">::MsiGetComponentPathA</a>(szProduct, szComponent, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="keywordflow">if</span> (state &gt;= INSTALLSTATE_BROKEN) {</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <span class="keywordflow">return</span> state;</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (state == INSTALLSTATE_MOREDATA) {</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> sValue.resize(dwSize++);</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> return ::MsiGetComponentPathA(szProduct, szComponent, &amp;sValue[0], &amp;dwSize);</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> <span class="keywordflow">return</span> state;</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>}</div>
</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> </div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00289" data-start="{" data-end="}">
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"><a class="line" href="group___win_std_m_s_i_a_p_i.html#gac4be55d9d370a31e064787675c518c58"> 289</a></span><span class="keyword">static</span> INSTALLSTATE <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#gac4be55d9d370a31e064787675c518c58">MsiGetComponentPathW</a>(_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="l00290" name="l00290"></a><span class="lineno"> 290</span>{</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</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="l00292" name="l00292"></a><span class="lineno"> 292</span> DWORD dwSize = _countof(szStackBuffer);</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> INSTALLSTATE state;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> </div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> state = <a class="code hl_function" href="group___win_std_m_s_i_a_p_i.html#gac4be55d9d370a31e064787675c518c58">::MsiGetComponentPathW</a>(szProduct, szComponent, szStackBuffer, &amp;dwSize);</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="keywordflow">if</span> (state &gt;= INSTALLSTATE_BROKEN) {</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> sValue.assign(szStackBuffer, dwSize);</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <span class="keywordflow">return</span> state;</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (state == INSTALLSTATE_MOREDATA) {</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <span class="comment">// Allocate buffer on heap to format the string data into and read it.</span></div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> sValue.resize(dwSize++);</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> return ::MsiGetComponentPathW(szProduct, szComponent, &amp;sValue[0], &amp;dwSize);</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> <span class="comment">// Return error code.</span></div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="keywordflow">return</span> state;</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> }</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span>}</div>
</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</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:94</div></div>
<div class="ttc" id="agroup___win_std_m_s_i_a_p_i_html_ga016f87f038892fe3121a2dd5232468d2"><div class="ttname"><a href="group___win_std_m_s_i_a_p_i.html#ga016f87f038892fe3121a2dd5232468d2">MsiFormatRecordW</a></div><div class="ttdeci">static UINT MsiFormatRecordW(MSIHANDLE hInstall, MSIHANDLE hRecord, std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Formats record field data and properties using a format string and stores it in a std::wstring string...</div><div class="ttdef"><b>Definition</b> MSI.h:159</div></div>
<div class="ttc" id="agroup___win_std_m_s_i_a_p_i_html_ga32e20a17013eb7660fda19f2b1de389d"><div class="ttname"><a href="group___win_std_m_s_i_a_p_i.html#ga32e20a17013eb7660fda19f2b1de389d">MsiGetPropertyW</a></div><div class="ttdeci">static UINT MsiGetPropertyW(MSIHANDLE hInstall, LPCWSTR szName, std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Gets the value for an installer property and stores it in a std::wstring string.</div><div class="ttdef"><b>Definition</b> MSI.h:51</div></div>
<div class="ttc" id="agroup___win_std_m_s_i_a_p_i_html_ga340ee7efbd658e2d6ecfb199c41856bc"><div class="ttname"><a href="group___win_std_m_s_i_a_p_i.html#ga340ee7efbd658e2d6ecfb199c41856bc">MsiGetTargetPathA</a></div><div class="ttdeci">static UINT MsiGetTargetPathA(MSIHANDLE hInstall, LPCSTR szFolder, std::basic_string&lt; char, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Returns the full target path for a folder in the Directory table and stores it in a std::wstring stri...</div><div class="ttdef"><b>Definition</b> MSI.h:207</div></div>
<div class="ttc" id="agroup___win_std_m_s_i_a_p_i_html_ga41c26288267e69f5bba73f9b125bf2a3"><div class="ttname"><a href="group___win_std_m_s_i_a_p_i.html#ga41c26288267e69f5bba73f9b125bf2a3">MsiGetComponentPathA</a></div><div class="ttdeci">static INSTALLSTATE MsiGetComponentPathA(LPCSTR szProduct, LPCSTR szComponent, std::basic_string&lt; char, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Returns the full path to an installed component. If the key path for the component is a registry key ...</div><div class="ttdef"><b>Definition</b> MSI.h:261</div></div>
<div class="ttc" id="agroup___win_std_m_s_i_a_p_i_html_ga487c38b4353054a4e518ca01d1397cf6"><div class="ttname"><a href="group___win_std_m_s_i_a_p_i.html#ga487c38b4353054a4e518ca01d1397cf6">MsiRecordGetStringW</a></div><div class="ttdeci">static UINT MsiRecordGetStringW(MSIHANDLE hRecord, unsigned int iField, std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Returns the string value of a record field and stores it in a std::wstring string.</div><div class="ttdef"><b>Definition</b> MSI.h:105</div></div>
<div class="ttc" id="agroup___win_std_m_s_i_a_p_i_html_ga51696a19fb4b748eed04fa3b6a8f9eca"><div class="ttname"><a href="group___win_std_m_s_i_a_p_i.html#ga51696a19fb4b748eed04fa3b6a8f9eca">MsiGetTargetPathW</a></div><div class="ttdeci">static UINT MsiGetTargetPathW(MSIHANDLE hInstall, LPCWSTR szFolder, std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Returns the full target path for a folder in the Directory table and stores it in a std::wstring stri...</div><div class="ttdef"><b>Definition</b> MSI.h:237</div></div>
<div class="ttc" id="agroup___win_std_m_s_i_a_p_i_html_ga7a5853cf74ed8adb1b5cd1289c39e385"><div class="ttname"><a href="group___win_std_m_s_i_a_p_i.html#ga7a5853cf74ed8adb1b5cd1289c39e385">MsiGetPropertyA</a></div><div class="ttdeci">static UINT MsiGetPropertyA(MSIHANDLE hInstall, LPCSTR szName, std::basic_string&lt; char, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Gets the value for an installer property and stores it in a std::wstring string.</div><div class="ttdef"><b>Definition</b> MSI.h:21</div></div>
<div class="ttc" id="agroup___win_std_m_s_i_a_p_i_html_ga7cb245425b74bdf9b89c754636486f0c"><div class="ttname"><a href="group___win_std_m_s_i_a_p_i.html#ga7cb245425b74bdf9b89c754636486f0c">MsiFormatRecordA</a></div><div class="ttdeci">static UINT MsiFormatRecordA(MSIHANDLE hInstall, MSIHANDLE hRecord, std::basic_string&lt; char, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Formats record field data and properties using a format string and stores it in a std::wstring string...</div><div class="ttdef"><b>Definition</b> MSI.h:129</div></div>
<div class="ttc" id="agroup___win_std_m_s_i_a_p_i_html_ga83052d8dfbdf437cc45e6a4b46357036"><div class="ttname"><a href="group___win_std_m_s_i_a_p_i.html#ga83052d8dfbdf437cc45e6a4b46357036">MsiRecordReadStream</a></div><div class="ttdeci">static UINT MsiRecordReadStream(MSIHANDLE hRecord, unsigned int iField, std::vector&lt; _Ty, _Ax &gt; &amp;binData)</div><div class="ttdoc">Reads bytes from a record stream field into a std::vector buffer.</div><div class="ttdef"><b>Definition</b> MSI.h:187</div></div>
<div class="ttc" id="agroup___win_std_m_s_i_a_p_i_html_gac4be55d9d370a31e064787675c518c58"><div class="ttname"><a href="group___win_std_m_s_i_a_p_i.html#gac4be55d9d370a31e064787675c518c58">MsiGetComponentPathW</a></div><div class="ttdeci">static INSTALLSTATE MsiGetComponentPathW(LPCWSTR szProduct, LPCWSTR szComponent, std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Returns the full path to an installed component. If the key path for the component is a registry key ...</div><div class="ttdef"><b>Definition</b> MSI.h:289</div></div>
<div class="ttc" id="agroup___win_std_m_s_i_a_p_i_html_gaedc818f42d945e54f6956c928b3ffc29"><div class="ttname"><a href="group___win_std_m_s_i_a_p_i.html#gaedc818f42d945e54f6956c928b3ffc29">MsiRecordGetStringA</a></div><div class="ttdeci">static UINT MsiRecordGetStringA(MSIHANDLE hRecord, unsigned int iField, std::basic_string&lt; char, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Returns the string value of a record field and stores it in a std::wstring string.</div><div class="ttdef"><b>Definition</b> MSI.h:75</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

210
_s_d_d_l_8h_source.html Normal file
View File

@ -0,0 +1,210 @@
<!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.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>WinStd: include/WinStd/SDDL.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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">SDDL.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 © 2022-2024 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><span class="preprocessor">#include &lt;sddl.h&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="foldopen" id="foldopen00018" data-start="{" data-end="};">
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="classwinstd_1_1security__attributes.html"> 18</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1security__attributes.html">security_attributes</a> : <span class="keyword">public</span> SECURITY_ATTRIBUTES</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> {</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_define" href="group___win_std_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a>(<a class="code hl_class" href="classwinstd_1_1security__attributes.html">security_attributes</a>)</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00026" data-start="{" data-end="}">
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="classwinstd_1_1security__attributes.html#aa65302a5a16ca4dae9d76a2aea0788b2"> 26</a></span> <a class="code hl_function" href="classwinstd_1_1security__attributes.html#aa65302a5a16ca4dae9d76a2aea0788b2">security_attributes</a>() noexcept</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> nLength = <span class="keyword">sizeof</span>(SECURITY_ATTRIBUTES);</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> lpSecurityDescriptor = NULL;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> bInheritHandle = FALSE;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> }</div>
</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="foldopen" id="foldopen00036" data-start="{" data-end="}">
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classwinstd_1_1security__attributes.html#a230282fcc282814fd18aa239c7daaa17"> 36</a></span> <a class="code hl_function" href="classwinstd_1_1security__attributes.html#a230282fcc282814fd18aa239c7daaa17">security_attributes</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1security__attributes.html">security_attributes</a> &amp;&amp;a) <span class="keyword">noexcept</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> nLength = <span class="keyword">sizeof</span>(SECURITY_ATTRIBUTES);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> lpSecurityDescriptor = a.lpSecurityDescriptor;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> bInheritHandle = a.bInheritHandle;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> a.lpSecurityDescriptor = NULL;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> }</div>
</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="foldopen" id="foldopen00047" data-start="{" data-end="}">
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classwinstd_1_1security__attributes.html#a81c96818e1a244dc9fde2e0703d654e0"> 47</a></span> <a class="code hl_function" href="classwinstd_1_1security__attributes.html#a81c96818e1a244dc9fde2e0703d654e0">~security_attributes</a>()</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> <span class="keywordflow">if</span> (lpSecurityDescriptor)</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> LocalFree(lpSecurityDescriptor);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> }</div>
</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="foldopen" id="foldopen00056" data-start="{" data-end="}">
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classwinstd_1_1security__attributes.html#a85cc5cc2ce94a8876e888ee6646779d7"> 56</a></span> <a class="code hl_class" href="classwinstd_1_1security__attributes.html">security_attributes</a>&amp; <a class="code hl_function" href="classwinstd_1_1security__attributes.html#a85cc5cc2ce94a8876e888ee6646779d7">operator=</a>(_Inout_ <a class="code hl_class" href="classwinstd_1_1security__attributes.html">security_attributes</a> &amp;&amp;a) <span class="keyword">noexcept</span></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> <span class="keywordflow">if</span> (<span class="keyword">this</span> != &amp;a) {</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> nLength = <span class="keyword">sizeof</span>(SECURITY_ATTRIBUTES);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">if</span> (lpSecurityDescriptor)</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> LocalFree(lpSecurityDescriptor);</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> lpSecurityDescriptor = a.lpSecurityDescriptor;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> bInheritHandle = a.bInheritHandle;</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> a.lpSecurityDescriptor = NULL;</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="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> }</div>
</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> };</div>
</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>}</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</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="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</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="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="foldopen" id="foldopen00080" data-start="{" data-end="}">
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="group___win_std_s_d_d_l.html#gaafcbc965140db7ed3d50d5dcc9dfb34c"> 80</a></span>_Success_(<span class="keywordflow">return</span> != FALSE) <span class="keyword">static</span> BOOL WINAPI <a class="code hl_function" href="group___win_std_s_d_d_l.html#gaafcbc965140db7ed3d50d5dcc9dfb34c">ConvertStringSecurityDescriptorToSecurityDescriptorA</a>(_In_ LPCSTR StringSecurityDescriptor, _In_ DWORD StringSDRevision, _Inout_ <a class="code hl_class" href="classwinstd_1_1security__attributes.html">winstd::security_attributes</a> &amp;sa, _Out_opt_ PULONG SecurityDescriptorSize)</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> PSECURITY_DESCRIPTOR sd;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> BOOL bResult = <a class="code hl_function" href="group___win_std_s_d_d_l.html#gaafcbc965140db7ed3d50d5dcc9dfb34c">ConvertStringSecurityDescriptorToSecurityDescriptorA</a>(StringSecurityDescriptor, StringSDRevision, &amp;sd, SecurityDescriptorSize);</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">if</span> (bResult) {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordflow">if</span> (sa.lpSecurityDescriptor)</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> LocalFree(sa.lpSecurityDescriptor);</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> sa.lpSecurityDescriptor = sd;</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="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span>}</div>
</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
<div class="foldopen" id="foldopen00097" data-start="{" data-end="}">
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"><a class="line" href="group___win_std_s_d_d_l.html#gae88d6ef3f22c3fccba5950a94c436fb0"> 97</a></span>_Success_(<span class="keywordflow">return</span> != FALSE) <span class="keyword">static</span> BOOL WINAPI <a class="code hl_function" href="group___win_std_s_d_d_l.html#gae88d6ef3f22c3fccba5950a94c436fb0">ConvertStringSecurityDescriptorToSecurityDescriptorW</a>(_In_ LPCWSTR StringSecurityDescriptor, _In_ DWORD StringSDRevision, _Inout_ <a class="code hl_class" href="classwinstd_1_1security__attributes.html">winstd::security_attributes</a> &amp;sa, _Out_opt_ PULONG SecurityDescriptorSize)</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> PSECURITY_DESCRIPTOR sd;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> BOOL bResult = <a class="code hl_function" href="group___win_std_s_d_d_l.html#gae88d6ef3f22c3fccba5950a94c436fb0">ConvertStringSecurityDescriptorToSecurityDescriptorW</a>(StringSecurityDescriptor, StringSDRevision, &amp;sd, SecurityDescriptorSize);</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">if</span> (bResult) {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">if</span> (sa.lpSecurityDescriptor)</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> LocalFree(sa.lpSecurityDescriptor);</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> sa.lpSecurityDescriptor = sd;</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="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span>}</div>
</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> </div>
<div class="ttc" id="aclasswinstd_1_1security__attributes_html"><div class="ttname"><a href="classwinstd_1_1security__attributes.html">winstd::security_attributes</a></div><div class="ttdef"><b>Definition</b> SDDL.h:19</div></div>
<div class="ttc" id="aclasswinstd_1_1security__attributes_html_a230282fcc282814fd18aa239c7daaa17"><div class="ttname"><a href="classwinstd_1_1security__attributes.html#a230282fcc282814fd18aa239c7daaa17">winstd::security_attributes::security_attributes</a></div><div class="ttdeci">security_attributes(security_attributes &amp;&amp;a) noexcept</div><div class="ttdoc">Moves an existing SECURITY_ATTRIBUTES.</div><div class="ttdef"><b>Definition</b> SDDL.h:36</div></div>
<div class="ttc" id="aclasswinstd_1_1security__attributes_html_a81c96818e1a244dc9fde2e0703d654e0"><div class="ttname"><a href="classwinstd_1_1security__attributes.html#a81c96818e1a244dc9fde2e0703d654e0">winstd::security_attributes::~security_attributes</a></div><div class="ttdeci">~security_attributes()</div><div class="ttdoc">Destroys the SECURITY_ATTRIBUTES.</div><div class="ttdef"><b>Definition</b> SDDL.h:47</div></div>
<div class="ttc" id="aclasswinstd_1_1security__attributes_html_a85cc5cc2ce94a8876e888ee6646779d7"><div class="ttname"><a href="classwinstd_1_1security__attributes.html#a85cc5cc2ce94a8876e888ee6646779d7">winstd::security_attributes::operator=</a></div><div class="ttdeci">security_attributes &amp; operator=(security_attributes &amp;&amp;a) noexcept</div><div class="ttdoc">Moves an existing SECURITY_ATTRIBUTES.</div><div class="ttdef"><b>Definition</b> SDDL.h:56</div></div>
<div class="ttc" id="aclasswinstd_1_1security__attributes_html_aa65302a5a16ca4dae9d76a2aea0788b2"><div class="ttname"><a href="classwinstd_1_1security__attributes.html#aa65302a5a16ca4dae9d76a2aea0788b2">winstd::security_attributes::security_attributes</a></div><div class="ttdeci">security_attributes() noexcept</div><div class="ttdoc">Initializes a new SECURITY_ATTRIBUTES.</div><div class="ttdef"><b>Definition</b> SDDL.h:26</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:67</div></div>
<div class="ttc" id="agroup___win_std_s_d_d_l_html_gaafcbc965140db7ed3d50d5dcc9dfb34c"><div class="ttname"><a href="group___win_std_s_d_d_l.html#gaafcbc965140db7ed3d50d5dcc9dfb34c">ConvertStringSecurityDescriptorToSecurityDescriptorA</a></div><div class="ttdeci">static BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorA(LPCSTR StringSecurityDescriptor, DWORD StringSDRevision, winstd::security_attributes &amp;sa, PULONG SecurityDescriptorSize)</div><div class="ttdoc">Converts a string-format security descriptor into a valid, functional security descriptor.</div><div class="ttdef"><b>Definition</b> SDDL.h:80</div></div>
<div class="ttc" id="agroup___win_std_s_d_d_l_html_gae88d6ef3f22c3fccba5950a94c436fb0"><div class="ttname"><a href="group___win_std_s_d_d_l.html#gae88d6ef3f22c3fccba5950a94c436fb0">ConvertStringSecurityDescriptorToSecurityDescriptorW</a></div><div class="ttdeci">static BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorW(LPCWSTR StringSecurityDescriptor, DWORD StringSDRevision, winstd::security_attributes &amp;sa, PULONG SecurityDescriptorSize)</div><div class="ttdoc">Converts a string-format security descriptor into a valid, functional security descriptor.</div><div class="ttdef"><b>Definition</b> SDDL.h:97</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

428
_sec_8h_source.html Normal file
View File

@ -0,0 +1,428 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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-2024 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="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">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;Security.h&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> </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">#if defined(SECURITY_WIN32) || defined(SECURITY_KERNEL)</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</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> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</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="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> assert(0); <span class="comment">// TODO: Test this code.</span></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="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="l00027" name="l00027"></a><span class="lineno"> 27</span> ULONG ulSize = _countof(szStackBuffer);</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">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">if</span> (::GetUserNameExA(NameFormat, szStackBuffer, &amp;ulSize)) {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> sName.assign(szStackBuffer, ulSize);</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> TRUE;</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> (::GetLastError() == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// Allocate buffer on heap and retry.</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> sName.resize(ulSize - 1);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">if</span> (::GetUserNameExA(NameFormat, &amp;ulSize[0], &amp;ulSize))</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">return</span> TRUE;</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> <span class="keywordflow">return</span> FALSE;</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="l00049" name="l00049"></a><span class="lineno"> 49</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="l00050" name="l00050"></a><span class="lineno"> 50</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="l00051" name="l00051"></a><span class="lineno"> 51</span>{</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</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="l00053" name="l00053"></a><span class="lineno"> 53</span> ULONG ulSize = _countof(szStackBuffer);</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> <span class="comment">// Try with stack buffer first.</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">if</span> (::GetUserNameExW(NameFormat, szStackBuffer, &amp;ulSize)) {</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// Copy from stack.</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> sName.assign(szStackBuffer, ulSize);</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> TRUE;</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">if</span> (::GetLastError() == ERROR_MORE_DATA) {</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// Allocate buffer on heap and retry.</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> sName.resize(ulSize - 1);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">if</span> (::GetUserNameExW(NameFormat, &amp;sName[0], &amp;ulSize))</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keywordflow">return</span> TRUE;</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> <span class="keywordflow">return</span> FALSE;</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> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span>{</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="foldopen" id="foldopen00082" data-start="{" data-end="};">
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html"> 82</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="l00083" name="l00083"></a><span class="lineno"> 83</span> {</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</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="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="foldopen" id="foldopen00090" data-start="{" data-end="}">
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#a4cc86fe337998e5becc41c3f78563df8"> 90</a></span> <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#a4cc86fe337998e5becc41c3f78563df8">sec_credentials</a>()</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> <a class="code hl_variable" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a">m_expires</a>.QuadPart = -1;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div>
</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="foldopen" id="foldopen00101" data-start="{" data-end="}">
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#adac21d2b22fba61197ad315e8996f946"> 101</a></span> <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#adac21d2b22fba61197ad315e8996f946">sec_credentials</a>(_In_opt_ <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h, _In_ <span class="keyword">const</span> TimeStamp expires) :</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <a class="code hl_variable" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a">m_expires</a>(expires),</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</a>(h)</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> {}</div>
</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> </div>
<div class="foldopen" id="foldopen00111" data-start="{" data-end="}">
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#ac9ece1c98aebffa3efc90a0b37f6d2ba"> 111</a></span> <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#ac9ece1c98aebffa3efc90a0b37f6d2ba">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="l00112" name="l00112"></a><span class="lineno"> 112</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="l00113" name="l00113"></a><span class="lineno"> 113</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="l00114" name="l00114"></a><span class="lineno"> 114</span> {}</div>
</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="foldopen" id="foldopen00121" data-start="{" data-end="}">
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#ad8b34c3a231201fd201e56a28235b9c3"> 121</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="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_1sec__credentials.html#a6156649d1a93696c8369361cb426e260">free_internal</a>();</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> }</div>
</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="foldopen" id="foldopen00132" data-start="{" data-end="}">
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#af0c3ec1f8e1b060cd4dd99b4d34d4623"> 132</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#af0c3ec1f8e1b060cd4dd99b4d34d4623">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="l00133" name="l00133"></a><span class="lineno"> 133</span> {</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(h)) {</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</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="l00136" name="l00136"></a><span class="lineno"> 136</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="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> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div>
</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="foldopen" id="foldopen00150" data-start="{" data-end="}">
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#af01c07130505e33fb2d4fbf5a8377280"> 150</a></span> SECURITY_STATUS <a class="code hl_function" href="classwinstd_1_1sec__credentials.html#af01c07130505e33fb2d4fbf5a8377280">acquire</a>(</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> _In_opt_ LPTSTR pszPrincipal,</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> _In_ LPTSTR pszPackage,</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> _In_ <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> fCredentialUse,</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> _In_opt_ <span class="keywordtype">void</span> *pvLogonId,</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> _In_opt_ <span class="keywordtype">void</span> *pAuthData,</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> _In_opt_ SEC_GET_KEY_FN pGetKeyFn = NULL,</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> _In_opt_ <span class="keywordtype">void</span> *pvGetKeyArgument = NULL)</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> {</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h = <span class="keyword">new</span> CredHandle;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> TimeStamp exp;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> SECURITY_STATUS res = AcquireCredentialsHandle(pszPrincipal, pszPackage, fCredentialUse, pvLogonId, pAuthData, pGetKeyFn, pvGetKeyArgument, h, &amp;exp);</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">if</span> (SUCCEEDED(res)) {</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <a class="code hl_function" href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">attach</a>(h);</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <a class="code hl_variable" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a">m_expires</a> = exp;</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">delete</span> h;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00176" data-start="{" data-end="}">
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#a6156649d1a93696c8369361cb426e260"> 176</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="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> FreeCredentialsHandle(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</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="l00180" name="l00180"></a><span class="lineno"> 180</span> }</div>
</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> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a"> 183</a></span> TimeStamp <a class="code hl_variable" href="classwinstd_1_1sec__credentials.html#ab2b392dc45e270c5855245fe4c8d159a">m_expires</a>; </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> };</div>
</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> </div>
<div class="foldopen" id="foldopen00189" data-start="{" data-end="};">
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html"> 189</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="l00190" name="l00190"></a><span class="lineno"> 190</span> {</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00195" data-start="{" data-end="}">
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a5d41cc2cbe613fcc2bd37cc260de9763"> 195</a></span> <a class="code hl_function" href="classwinstd_1_1sec__context.html#a5d41cc2cbe613fcc2bd37cc260de9763">sec_context</a>() :</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f">m_attrib</a>(0),</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;PCtxtHandle, NULL&gt;()</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> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304">m_expires</a>.QuadPart = -1;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> }</div>
</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> </div>
<div class="foldopen" id="foldopen00207" data-start="{" data-end="}">
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a05356227fbaa04cf65cd8da86daac49e"> 207</a></span> <a class="code hl_function" href="classwinstd_1_1sec__context.html#a05356227fbaa04cf65cd8da86daac49e">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="l00208" name="l00208"></a><span class="lineno"> 208</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="l00209" name="l00209"></a><span class="lineno"> 209</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="l00210" name="l00210"></a><span class="lineno"> 210</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="l00211" name="l00211"></a><span class="lineno"> 211</span> {}</div>
</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> </div>
<div class="foldopen" id="foldopen00218" data-start="{" data-end="}">
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a2307770cc707a4f8e815c3fea57ac8a9"> 218</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="l00219" name="l00219"></a><span class="lineno"> 219</span> {</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</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="l00221" name="l00221"></a><span class="lineno"> 221</span> <a class="code hl_function" href="classwinstd_1_1sec__context.html#afe8682a77fe50e5818ee6c4c741f36d9">free_internal</a>();</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> }</div>
</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> </div>
<div class="foldopen" id="foldopen00229" data-start="{" data-end="}">
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#aba957329771358ef9ca65c5e1176fc52"> 229</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#aba957329771358ef9ca65c5e1176fc52">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="l00230" name="l00230"></a><span class="lineno"> 230</span> {</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> != std::addressof(h)) {</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</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="l00233" name="l00233"></a><span class="lineno"> 233</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="l00234" name="l00234"></a><span class="lineno"> 234</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="l00235" name="l00235"></a><span class="lineno"> 235</span> }</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> }</div>
</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
<div class="foldopen" id="foldopen00248" data-start="{" data-end="}">
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a7cc49346bd63d78928e65b11b21b6e21"> 248</a></span> SECURITY_STATUS <a class="code hl_function" href="classwinstd_1_1sec__context.html#a7cc49346bd63d78928e65b11b21b6e21">initialize</a>(</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> _In_opt_ PCredHandle phCredential,</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> _In_opt_z_ LPCTSTR pszTargetName,</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> _In_ ULONG fContextReq,</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> _In_ ULONG TargetDataRep,</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> _In_opt_ PSecBufferDesc pInput,</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> _Inout_opt_ PSecBufferDesc pOutput)</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> {</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <a class="code hl_typedef" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h = <span class="keyword">new</span> CtxtHandle;</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> h-&gt;dwUpper = 0;</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> h-&gt;dwLower = 0;</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> ULONG attr;</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> TimeStamp exp;</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</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="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">if</span> (SUCCEEDED(res)) {</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <a class="code hl_function" href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">attach</a>(h);</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f">m_attrib</a> = attr;</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304">m_expires</a> = exp;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keyword">delete</span> h;</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> <span class="keywordflow">return</span> res;</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> }</div>
</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> </div>
<div class="foldopen" id="foldopen00280" data-start="{" data-end="}">
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a07d7c85d0db22a2b7ababdac632b3c54"> 280</a></span> SECURITY_STATUS <a class="code hl_function" href="classwinstd_1_1sec__context.html#a07d7c85d0db22a2b7ababdac632b3c54">process</a>(</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> _In_opt_ PCredHandle phCredential,</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> _In_opt_z_ LPCTSTR pszTargetName,</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> _In_ ULONG fContextReq,</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> _In_ ULONG TargetDataRep,</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> _In_opt_ PSecBufferDesc pInput,</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> _Inout_opt_ PSecBufferDesc pOutput)</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> {</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</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="l00289" name="l00289"></a><span class="lineno"> 289</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00297" data-start="{" data-end="}">
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#afe8682a77fe50e5818ee6c4c741f36d9"> 297</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="l00298" name="l00298"></a><span class="lineno"> 298</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> DeleteSecurityContext(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</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="l00301" name="l00301"></a><span class="lineno"> 301</span> }</div>
</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> </div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f"> 304</a></span> ULONG <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8a211355b63585e9cc633639d801a13f">m_attrib</a>; </div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304"> 305</a></span> TimeStamp <a class="code hl_variable" href="classwinstd_1_1sec__context.html#a8ea323950689fbfa34e945825f013304">m_expires</a>; </div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> };</div>
</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> </div>
<div class="foldopen" id="foldopen00311" data-start="{" data-end="};">
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__buffer__desc.html"> 311</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="l00312" name="l00312"></a><span class="lineno"> 312</span> {</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00317" data-start="{" data-end="}">
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__buffer__desc.html#aed8a33ad87b31098a60facb3f656cea5"> 317</a></span> <a class="code hl_function" href="classwinstd_1_1sec__buffer__desc.html#aed8a33ad87b31098a60facb3f656cea5">sec_buffer_desc</a>(_Inout_count_(count) PSecBuffer buf, ULONG count, _In_ ULONG version = SECBUFFER_VERSION)</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> {</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> ulVersion = version;</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> cBuffers = count;</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> pBuffers = buf;</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> }</div>
</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> </div>
<div class="foldopen" id="foldopen00329" data-start="{" data-end="}">
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__buffer__desc.html#a70ebe23821ab3f90eb20e4a5e69c49c4"> 329</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="l00330" name="l00330"></a><span class="lineno"> 330</span> {</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="keywordflow">for</span> (ULONG i = 0; i &lt; cBuffers; i++) {</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> <span class="keywordflow">if</span> (pBuffers[i].pvBuffer)</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> FreeContextBuffer(pBuffers[i].pvBuffer);</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> }</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> }</div>
</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> };</div>
</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> </div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> </div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> </div>
<div class="foldopen" id="foldopen00348" data-start="{" data-end="};">
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__runtime__error.html"> 348</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="l00349" name="l00349"></a><span class="lineno"> 349</span> {</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00357" data-start="{" data-end="}">
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__runtime__error.html#afc95fcf773b18fc72aaacf4ec025471b"> 357</a></span> <a class="code hl_function" href="classwinstd_1_1sec__runtime__error.html#afc95fcf773b18fc72aaacf4ec025471b">sec_runtime_error</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">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="l00358" name="l00358"></a><span class="lineno"> 358</span> {}</div>
</div>
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> </div>
<div class="foldopen" id="foldopen00366" data-start="{" data-end="}">
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__runtime__error.html#aa1d671d5c996a8217de62a816f39a5d4"> 366</a></span> <a class="code hl_function" href="classwinstd_1_1sec__runtime__error.html#aa1d671d5c996a8217de62a816f39a5d4">sec_runtime_error</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">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="l00367" name="l00367"></a><span class="lineno"> 367</span> {}</div>
</div>
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> </div>
<div class="foldopen" id="foldopen00374" data-start="{" data-end="}">
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"><a class="line" href="classwinstd_1_1sec__runtime__error.html#ac9f3ac01e422ce43aebb8e5eae9290ce"> 374</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="l00375" name="l00375"></a><span class="lineno"> 375</span> {}</div>
</div>
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> };</div>
</div>
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> </div>
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</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:874</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="ttdef"><b>Definition</b> Common.h:1126</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_ab2a98042c3b88fda687e34d370756f11"><div class="ttname"><a href="classwinstd_1_1handle.html#ab2a98042c3b88fda687e34d370756f11">winstd::handle&lt; PCredHandle, NULL &gt;::attach</a></div><div class="ttdeci">void attach(handle_type h) noexcept</div><div class="ttdef"><b>Definition</b> Common.h:1089</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_ae5faed333075739a27c99372967e01a6"><div class="ttname"><a href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">winstd::handle&lt; PCredHandle, NULL &gt;::handle_type</a></div><div class="ttdeci">PCredHandle handle_type</div><div class="ttdef"><b>Definition</b> Common.h:879</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:1331</div></div>
<div class="ttc" id="aclasswinstd_1_1num__runtime__error_html_ac251f4b79b67a800dcd108fedb58d5b5"><div class="ttname"><a href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">winstd::num_runtime_error&lt; SECURITY_STATUS &gt;::error_type</a></div><div class="ttdeci">SECURITY_STATUS error_type</div><div class="ttdef"><b>Definition</b> Common.h:1333</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:312</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:329</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__buffer__desc_html_aed8a33ad87b31098a60facb3f656cea5"><div class="ttname"><a href="classwinstd_1_1sec__buffer__desc.html#aed8a33ad87b31098a60facb3f656cea5">winstd::sec_buffer_desc::sec_buffer_desc</a></div><div class="ttdeci">sec_buffer_desc(PSecBuffer buf, ULONG count, ULONG version=SECBUFFER_VERSION)</div><div class="ttdoc">Initializes security buffer descriptor.</div><div class="ttdef"><b>Definition</b> Sec.h:317</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:190</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_a05356227fbaa04cf65cd8da86daac49e"><div class="ttname"><a href="classwinstd_1_1sec__context.html#a05356227fbaa04cf65cd8da86daac49e">winstd::sec_context::sec_context</a></div><div class="ttdeci">sec_context(sec_context &amp;&amp;h) noexcept</div><div class="ttdoc">Move constructor.</div><div class="ttdef"><b>Definition</b> Sec.h:207</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_a07d7c85d0db22a2b7ababdac632b3c54"><div class="ttname"><a href="classwinstd_1_1sec__context.html#a07d7c85d0db22a2b7ababdac632b3c54">winstd::sec_context::process</a></div><div class="ttdeci">SECURITY_STATUS process(PCredHandle phCredential, LPCTSTR pszTargetName, ULONG fContextReq, ULONG TargetDataRep, PSecBufferDesc pInput, PSecBufferDesc pOutput)</div><div class="ttdoc">Continue security context.</div><div class="ttdef"><b>Definition</b> Sec.h:280</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:218</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:195</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_a7cc49346bd63d78928e65b11b21b6e21"><div class="ttname"><a href="classwinstd_1_1sec__context.html#a7cc49346bd63d78928e65b11b21b6e21">winstd::sec_context::initialize</a></div><div class="ttdeci">SECURITY_STATUS initialize(PCredHandle phCredential, LPCTSTR pszTargetName, ULONG fContextReq, ULONG TargetDataRep, PSecBufferDesc pInput, PSecBufferDesc pOutput)</div><div class="ttdoc">Initializes security context.</div><div class="ttdef"><b>Definition</b> Sec.h:248</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:304</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:305</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__context_html_aba957329771358ef9ca65c5e1176fc52"><div class="ttname"><a href="classwinstd_1_1sec__context.html#aba957329771358ef9ca65c5e1176fc52">winstd::sec_context::operator=</a></div><div class="ttdeci">sec_context &amp; operator=(sec_context &amp;&amp;h) noexcept</div><div class="ttdoc">Move assignment.</div><div class="ttdef"><b>Definition</b> Sec.h:229</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:297</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:83</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:90</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:176</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:183</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_ac9ece1c98aebffa3efc90a0b37f6d2ba"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#ac9ece1c98aebffa3efc90a0b37f6d2ba">winstd::sec_credentials::sec_credentials</a></div><div class="ttdeci">sec_credentials(sec_credentials &amp;&amp;h) noexcept</div><div class="ttdoc">Move constructor.</div><div class="ttdef"><b>Definition</b> Sec.h:111</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:121</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_adac21d2b22fba61197ad315e8996f946"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#adac21d2b22fba61197ad315e8996f946">winstd::sec_credentials::sec_credentials</a></div><div class="ttdeci">sec_credentials(handle_type h, 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:101</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_af01c07130505e33fb2d4fbf5a8377280"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#af01c07130505e33fb2d4fbf5a8377280">winstd::sec_credentials::acquire</a></div><div class="ttdeci">SECURITY_STATUS acquire(LPTSTR pszPrincipal, LPTSTR pszPackage, unsigned long fCredentialUse, void *pvLogonId, void *pAuthData, SEC_GET_KEY_FN pGetKeyFn=NULL, void *pvGetKeyArgument=NULL)</div><div class="ttdoc">Acquires the security credentials.</div><div class="ttdef"><b>Definition</b> Sec.h:150</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__credentials_html_af0c3ec1f8e1b060cd4dd99b4d34d4623"><div class="ttname"><a href="classwinstd_1_1sec__credentials.html#af0c3ec1f8e1b060cd4dd99b4d34d4623">winstd::sec_credentials::operator=</a></div><div class="ttdeci">sec_credentials &amp; operator=(sec_credentials &amp;&amp;h) noexcept</div><div class="ttdoc">Move assignment.</div><div class="ttdef"><b>Definition</b> Sec.h:132</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:349</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__runtime__error_html_aa1d671d5c996a8217de62a816f39a5d4"><div class="ttname"><a href="classwinstd_1_1sec__runtime__error.html#aa1d671d5c996a8217de62a816f39a5d4">winstd::sec_runtime_error::sec_runtime_error</a></div><div class="ttdeci">sec_runtime_error(error_type num, const char *msg=nullptr)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition</b> Sec.h:366</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:374</div></div>
<div class="ttc" id="aclasswinstd_1_1sec__runtime__error_html_afc95fcf773b18fc72aaacf4ec025471b"><div class="ttname"><a href="classwinstd_1_1sec__runtime__error.html#afc95fcf773b18fc72aaacf4ec025471b">winstd::sec_runtime_error::sec_runtime_error</a></div><div class="ttdeci">sec_runtime_error(error_type num, const std::string &amp;msg)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition</b> Sec.h:357</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:67</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:94</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="ttdef"><b>Definition</b> Common.h:884</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

198
_setup_a_p_i_8h_source.html Normal file
View File

@ -0,0 +1,198 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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-2024 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="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">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;SetupAPI.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="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="foldopen" id="foldopen00025" data-start="{" data-end="};">
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__device__info__list.html"> 25</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="l00026" name="l00026"></a><span class="lineno"> 26</span> {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1setup__device__info__list.html">setup_device_info_list</a>, HDEVINFO, INVALID_HANDLE_VALUE)</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="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00035" data-start="{" data-end="}">
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__device__info__list.html#a25368d32a4f4bfe23cb9749464daa487"> 35</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="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> (<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="l00038" name="l00038"></a><span class="lineno"> 38</span> <a class="code hl_function" href="classwinstd_1_1setup__device__info__list.html#a41f013a37e16074f1972fd279f8c1437">free_internal</a>();</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00047" data-start="{" data-end="}">
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__device__info__list.html#a41f013a37e16074f1972fd279f8c1437"> 47</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="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> SetupDiDestroyDeviceInfoList(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</div>
</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> };</div>
</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="foldopen" id="foldopen00056" data-start="{" data-end="};">
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__driver__info__list__builder.html"> 56</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="l00057" name="l00057"></a><span class="lineno"> 57</span> {</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</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="l00059" name="l00059"></a><span class="lineno"> 59</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="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="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00067" data-start="{" data-end="}">
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__driver__info__list__builder.html#a4774edfbe680a3a496e243544a68c94f"> 67</a></span> <a class="code hl_function" href="classwinstd_1_1setup__driver__info__list__builder.html#a4774edfbe680a3a496e243544a68c94f">setup_driver_info_list_builder</a>(</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> _In_ HDEVINFO DeviceInfoSet,</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> _Inout_opt_ PSP_DEVINFO_DATA DeviceInfoData,</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> _In_ DWORD DriverType) noexcept :</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> m_DeviceInfoSet (DeviceInfoSet),</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> m_DeviceInfoData(DeviceInfoData),</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> m_DriverType (DriverType)</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> m_result = SetupDiBuildDriverInfoList(m_DeviceInfoSet, m_DeviceInfoData, m_DriverType);</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> }</div>
</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="foldopen" id="foldopen00083" data-start="{" data-end="}">
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__driver__info__list__builder.html#a836a7bb6c3c78c7c78965a32cfc2750e"> 83</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="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="keywordflow">if</span> (m_result)</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> SetupDiDestroyDriverInfoList(m_DeviceInfoSet, m_DeviceInfoData, m_DriverType);</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> }</div>
</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="foldopen" id="foldopen00094" data-start="{" data-end="}">
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="classwinstd_1_1setup__driver__info__list__builder.html#ae9c062e82afc1ee1eda5926a0567637e"> 94</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="l00095" name="l00095"></a><span class="lineno"> 95</span> {</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">return</span> m_result;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> HDEVINFO m_DeviceInfoSet;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> PSP_DEVINFO_DATA m_DeviceInfoData;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> DWORD m_DriverType;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> BOOL m_result;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> };</div>
</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</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:874</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="ttdef"><b>Definition</b> Common.h:1126</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:26</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:35</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:47</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:57</div></div>
<div class="ttc" id="aclasswinstd_1_1setup__driver__info__list__builder_html_a4774edfbe680a3a496e243544a68c94f"><div class="ttname"><a href="classwinstd_1_1setup__driver__info__list__builder.html#a4774edfbe680a3a496e243544a68c94f">winstd::setup_driver_info_list_builder::setup_driver_info_list_builder</a></div><div class="ttdeci">setup_driver_info_list_builder(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, 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:67</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:83</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:94</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:67</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:75</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga51471bfe41853b66ac0f44df97cfaaa6"><div class="ttname"><a href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, T, 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:164</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="ttdef"><b>Definition</b> Common.h:884</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

186
_shell_8h_source.html Normal file
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" 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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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-2024 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="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">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;Shlwapi.h&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> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00020" data-start="{" data-end="}">
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="group___win_std_shell_w_a_p_i.html#gabc79615c035f76d08ddced61807b6676"> 20</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_shell_w_a_p_i.html#gabc79615c035f76d08ddced61807b6676">PathCanonicalizeA</a>(_Inout_ std::basic_string&lt;char, _Traits, _Ax&gt; &amp;sValue, _In_ LPCSTR pszPath)</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span>{</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">char</span> szBuffer[MAX_PATH + 1];</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> BOOL bResult = <a class="code hl_function" href="group___win_std_shell_w_a_p_i.html#gabc79615c035f76d08ddced61807b6676">::PathCanonicalizeA</a>(szBuffer, pszPath);</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> sValue.assign(szBuffer, bResult ? MAX_PATH : 0);</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>}</div>
</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00034" data-start="{" data-end="}">
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="group___win_std_shell_w_a_p_i.html#ga2bb4436e8e3b7452b48d01cbb18bc818"> 34</a></span><span class="keyword">static</span> BOOL <a class="code hl_function" href="group___win_std_shell_w_a_p_i.html#ga2bb4436e8e3b7452b48d01cbb18bc818">PathCanonicalizeW</a>(_Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sValue, _In_ LPCWSTR pszPath)</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> <span class="keywordtype">wchar_t</span> szBuffer[MAX_PATH + 1];</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> BOOL bResult = <a class="code hl_function" href="group___win_std_shell_w_a_p_i.html#ga2bb4436e8e3b7452b48d01cbb18bc818">::PathCanonicalizeW</a>(szBuffer, pszPath);</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> sValue.assign(szBuffer, bResult ? MAX_PATH : 0);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">return</span> bResult;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>}</div>
</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00044" data-start="{" data-end="}">
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="group___win_std_shell_w_a_p_i.html#gaa1ba3f71c61d6d0c7cb611f3cdc193a8"> 44</a></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group___win_std_shell_w_a_p_i.html#gaa1ba3f71c61d6d0c7cb611f3cdc193a8">PathRemoveBackslashA</a>(_Inout_ std::basic_string&lt;char, _Traits, _Ax&gt;&amp; sValue)</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="keywordtype">char</span> szBuffer[MAX_PATH + 1];</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordtype">size_t</span> len = sValue.length();</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keywordflow">if</span> (len &lt; _countof(szBuffer)) {</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> memcpy(szBuffer, sValue.c_str(), len);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> szBuffer[len] = 0;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <a class="code hl_function" href="group___win_std_shell_w_a_p_i.html#gaa1ba3f71c61d6d0c7cb611f3cdc193a8">PathRemoveBackslashA</a>(szBuffer);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> sValue.assign(szBuffer);</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> std::unique_ptr&lt;char[]&gt; buf(<span class="keyword">new</span> <span class="keywordtype">char</span>[len + 1]);</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> memcpy(buf.get(), sValue.c_str(), len);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> buf[len] = 0;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <a class="code hl_function" href="group___win_std_shell_w_a_p_i.html#gaa1ba3f71c61d6d0c7cb611f3cdc193a8">PathRemoveBackslashA</a>(buf.get());</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> sValue.assign(buf.get());</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>}</div>
</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00069" data-start="{" data-end="}">
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="group___win_std_shell_w_a_p_i.html#ga5784e817cc8d4a8e45199e871f61da6c"> 69</a></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="group___win_std_shell_w_a_p_i.html#ga5784e817cc8d4a8e45199e871f61da6c">PathRemoveBackslashW</a>(_Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt;&amp; sValue)</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span>{</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordtype">wchar_t</span> szBuffer[MAX_PATH + 1];</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordtype">size_t</span> len = sValue.length();</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">if</span> (len &lt; _countof(szBuffer)) {</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> wmemcpy(szBuffer, sValue.c_str(), len);</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> szBuffer[len] = 0;</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <a class="code hl_function" href="group___win_std_shell_w_a_p_i.html#ga5784e817cc8d4a8e45199e871f61da6c">PathRemoveBackslashW</a>(szBuffer);</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> sValue.assign(szBuffer);</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> <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> std::unique_ptr&lt;wchar_t[]&gt; buf(<span class="keyword">new</span> <span class="keywordtype">wchar_t</span>[len + 1]);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> wmemcpy(buf.get(), sValue.c_str(), len);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> buf[len] = 0;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_function" href="group___win_std_shell_w_a_p_i.html#ga5784e817cc8d4a8e45199e871f61da6c">PathRemoveBackslashW</a>(buf.get());</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> sValue.assign(buf.get());</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>}</div>
</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="ttc" id="agroup___win_std_shell_w_a_p_i_html_ga2bb4436e8e3b7452b48d01cbb18bc818"><div class="ttname"><a href="group___win_std_shell_w_a_p_i.html#ga2bb4436e8e3b7452b48d01cbb18bc818">PathCanonicalizeW</a></div><div class="ttdeci">static BOOL PathCanonicalizeW(std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;sValue, LPCWSTR pszPath)</div><div class="ttdoc">Simplifies a path by removing navigation elements such as &quot;.&quot; and &quot;..&quot; to produce a direct,...</div><div class="ttdef"><b>Definition</b> Shell.h:34</div></div>
<div class="ttc" id="agroup___win_std_shell_w_a_p_i_html_ga5784e817cc8d4a8e45199e871f61da6c"><div class="ttname"><a href="group___win_std_shell_w_a_p_i.html#ga5784e817cc8d4a8e45199e871f61da6c">PathRemoveBackslashW</a></div><div class="ttdeci">static void PathRemoveBackslashW(std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Removes the trailing backslash from a given path.</div><div class="ttdef"><b>Definition</b> Shell.h:69</div></div>
<div class="ttc" id="agroup___win_std_shell_w_a_p_i_html_gaa1ba3f71c61d6d0c7cb611f3cdc193a8"><div class="ttname"><a href="group___win_std_shell_w_a_p_i.html#gaa1ba3f71c61d6d0c7cb611f3cdc193a8">PathRemoveBackslashA</a></div><div class="ttdeci">static void PathRemoveBackslashA(std::basic_string&lt; char, _Traits, _Ax &gt; &amp;sValue)</div><div class="ttdoc">Removes the trailing backslash from a given path.</div><div class="ttdef"><b>Definition</b> Shell.h:44</div></div>
<div class="ttc" id="agroup___win_std_shell_w_a_p_i_html_gabc79615c035f76d08ddced61807b6676"><div class="ttname"><a href="group___win_std_shell_w_a_p_i.html#gabc79615c035f76d08ddced61807b6676">PathCanonicalizeA</a></div><div class="ttdeci">static BOOL PathCanonicalizeA(std::basic_string&lt; char, _Traits, _Ax &gt; &amp;sValue, LPCSTR pszPath)</div><div class="ttdoc">Simplifies a path by removing navigation elements such as &quot;.&quot; and &quot;..&quot; to produce a direct,...</div><div class="ttdef"><b>Definition</b> Shell.h:20</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

260
_w_l_a_n_8h_source.html Normal file
View File

@ -0,0 +1,260 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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-2024 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="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">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;wlanapi.h&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> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</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="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">// without a WLAN interface.</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</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="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">template</span>&lt;<span class="keyword">class</span> _Traits, <span class="keyword">class</span> _Ax&gt;</div>
<div class="foldopen" id="foldopen00034" data-start="{" data-end="}">
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"><a class="line" href="group___win_std_w_l_a_n_a_p_i.html#gaf621eeb252e56982bc063a629bee30c7"> 34</a></span><span class="keyword">static</span> DWORD <a class="code hl_function" href="group___win_std_w_l_a_n_a_p_i.html#gaf621eeb252e56982bc063a629bee30c7">WlanReasonCodeToString</a>(_In_ DWORD dwReasonCode, _Inout_ std::basic_string&lt;wchar_t, _Traits, _Ax&gt; &amp;sValue, __reserved PVOID pReserved)</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> SIZE_T sSize = 0;</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="keywordflow">if</span> (!::pfnWlanReasonCodeToString)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">return</span> ERROR_CALL_NOT_IMPLEMENTED;</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> <span class="keywordflow">for</span> (;;) {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// Increment size and allocate buffer.</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> sSize = SIZETAdd(sSize, 1024);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> (sSize &gt; DWORD_MAX)</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Data too big&quot;</span>);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> sValue.resize(sSize - 1);</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> <span class="comment">// Try!</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> DWORD dwResult = ::pfnWlanReasonCodeToString(dwReasonCode, <span class="keyword">static_cast&lt;</span>DWORD<span class="keyword">&gt;</span>(sSize), &amp;sValue[0], pReserved);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">if</span> (dwResult == ERROR_SUCCESS) {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> SIZE_T sLength = wcsnlen(&amp;sValue[0], sSize);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">if</span> (sLength &lt; sSize - 1) {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// Buffer was long enough.</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> sValue.resize(sLength);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> ERROR_SUCCESS;</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="comment">// Return error code.</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> dwResult;</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> }</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span>}</div>
</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="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>{</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="foldopen" id="foldopen00074" data-start="{" data-end="};">
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete.html"> 74</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="l00075" name="l00075"></a><span class="lineno"> 75</span> {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete.html#abf3df9ee0ecc1d8c64175560f0be7ec5"> 76</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#abf3df9ee0ecc1d8c64175560f0be7ec5">_Myt</a>; </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete.html#a3e356b7c4a09f33100e3e35a71d1d94e"> 81</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="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete.html#ab30e2946800931f214e9a55a527fe546"> 86</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="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="foldopen" id="foldopen00091" data-start="{" data-end="}">
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete.html#a5013eb2213d92798d755cbb9fa24e26b"> 91</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="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> WlanFreeMemory(_Ptr);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> }</div>
</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> };</div>
</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="foldopen" id="foldopen00100" data-start="{" data-end="};">
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html"> 100</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="l00101" name="l00101"></a><span class="lineno"> 101</span> {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a1c88de8b8c3a39ce2a5e6810e82fa68f"> 102</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#a1c88de8b8c3a39ce2a5e6810e82fa68f">_Myt</a>; </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_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a39d42f9429ac337513cd2cad1b5c8fdf"> 107</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="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="foldopen" id="foldopen00112" data-start="{" data-end="}">
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a60d22784612a4cfd16ca8ad6629a77e4"> 112</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="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> WlanFreeMemory(_Ptr);</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> }</div>
</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> _Other&gt;</div>
<div class="foldopen" id="foldopen00121" data-start="{" data-end="}">
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a3b0a5a8db35677a63c3583a45658df1b"> 121</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="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> WlanFreeMemory(_Ptr);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> }</div>
</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> };</div>
</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="foldopen" id="foldopen00132" data-start="{" data-end="};">
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="classwinstd_1_1wlan__handle.html"> 132</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="l00133" name="l00133"></a><span class="lineno"> 133</span> {</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1wlan__handle.html">wlan_handle</a>, HANDLE, NULL)</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="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00142" data-start="{" data-end="}">
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="classwinstd_1_1wlan__handle.html#a57e97a572a121f6e28673e6d84493de9"> 142</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="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="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="l00145" name="l00145"></a><span class="lineno"> 145</span> <a class="code hl_function" href="classwinstd_1_1wlan__handle.html#a86e2b4aa2a5177b6ebac0258099f9261">free_internal</a>();</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> }</div>
</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00154" data-start="{" data-end="}">
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"><a class="line" href="classwinstd_1_1wlan__handle.html#a86e2b4aa2a5177b6ebac0258099f9261"> 154</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="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> WlanCloseHandle(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>, NULL);</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> }</div>
</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> };</div>
</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span>}</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </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"> 171</span><span class="preprocessor">#pragma warning(suppress: 4505) </span><span class="comment">// Don&#39;t warn on unused code</span></div>
<div class="foldopen" id="foldopen00172" data-start="{" data-end="}">
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"><a class="line" href="group___win_std_w_l_a_n_a_p_i.html#ga2d1669a80ed12f13ffa780048076c586"> 172</a></span><span class="keyword">static</span> DWORD <a class="code hl_function" href="group___win_std_w_l_a_n_a_p_i.html#ga2d1669a80ed12f13ffa780048076c586">WlanOpenHandle</a>(</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> _In_ DWORD dwClientVersion,</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> _Reserved_ PVOID pReserved,</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> _Out_ PDWORD pdwNegotiatedVersion,</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> _Inout_ <a class="code hl_class" href="classwinstd_1_1wlan__handle.html">winstd::wlan_handle</a> &amp;handle)</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> HANDLE h;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> DWORD dwResult = <a class="code hl_function" href="group___win_std_w_l_a_n_a_p_i.html#ga2d1669a80ed12f13ffa780048076c586">WlanOpenHandle</a>(dwClientVersion, pReserved, pdwNegotiatedVersion, &amp;h);</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keywordflow">if</span> (dwResult == ERROR_SUCCESS)</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> handle.attach(h);</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keywordflow">return</span> dwResult;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span>}</div>
</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</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:874</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="ttdef"><b>Definition</b> Common.h:1126</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:133</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:142</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:154</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga51471bfe41853b66ac0f44df97cfaaa6"><div class="ttname"><a href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, T, 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:164</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="ttdef"><b>Definition</b> Common.h:884</div></div>
<div class="ttc" id="agroup___win_std_w_l_a_n_a_p_i_html_ga2d1669a80ed12f13ffa780048076c586"><div class="ttname"><a href="group___win_std_w_l_a_n_a_p_i.html#ga2d1669a80ed12f13ffa780048076c586">WlanOpenHandle</a></div><div class="ttdeci">static DWORD WlanOpenHandle(DWORD dwClientVersion, PVOID pReserved, PDWORD pdwNegotiatedVersion, winstd::wlan_handle &amp;handle)</div><div class="ttdoc">Opens a connection to the server.</div><div class="ttdef"><b>Definition</b> WLAN.h:172</div></div>
<div class="ttc" id="agroup___win_std_w_l_a_n_a_p_i_html_gaf621eeb252e56982bc063a629bee30c7"><div class="ttname"><a href="group___win_std_w_l_a_n_a_p_i.html#gaf621eeb252e56982bc063a629bee30c7">WlanReasonCodeToString</a></div><div class="ttdeci">static DWORD WlanReasonCodeToString(DWORD dwReasonCode, std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;sValue, __reserved PVOID pReserved)</div><div class="ttdoc">Retrieves a string that describes a specified reason code and stores it in a std::wstring string.</div><div class="ttdef"><b>Definition</b> WLAN.h:34</div></div>
<div class="ttc" id="astructwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4_html_a1c88de8b8c3a39ce2a5e6810e82fa68f"><div class="ttname"><a href="structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a1c88de8b8c3a39ce2a5e6810e82fa68f">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:102</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:107</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:121</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:112</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:75</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:81</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:91</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:86</div></div>
<div class="ttc" id="astructwinstd_1_1_wlan_free_memory__delete_html_abf3df9ee0ecc1d8c64175560f0be7ec5"><div class="ttname"><a href="structwinstd_1_1_wlan_free_memory__delete.html#abf3df9ee0ecc1d8c64175560f0be7ec5">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:76</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

2066
_win_8h_source.html Normal file

File diff suppressed because it is too large Load Diff

188
_win_h_t_t_p_8h_source.html Normal file
View File

@ -0,0 +1,188 @@
<!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.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>WinStd: include/WinStd/WinHTTP.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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">WinHTTP.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-2024 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="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">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;winhttp.h&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> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="foldopen" id="foldopen00023" data-start="{" data-end="}">
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="group___win_std_win_h_t_t_p.html#gafc5f6410cfa802b5bcb35ad754b95178"> 23</a></span><span class="keyword">inline</span> _Success_(<span class="keywordflow">return</span>) BOOL <a class="code hl_function" href="group___win_std_win_h_t_t_p.html#gafc5f6410cfa802b5bcb35ad754b95178">WinHttpQueryHeaders</a>(_In_ HINTERNET hRequest, _In_ DWORD dwInfoLevel, _Out_ DWORD&amp; dwData)</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> DWORD dwSize = <span class="keyword">sizeof</span>(dwData);</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_win_h_t_t_p.html#gafc5f6410cfa802b5bcb35ad754b95178">WinHttpQueryHeaders</a>(hRequest, dwInfoLevel | WINHTTP_QUERY_FLAG_NUMBER, WINHTTP_HEADER_NAME_BY_INDEX, &amp;dwData, &amp;dwSize, WINHTTP_NO_HEADER_INDEX)) {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> assert(dwSize == <span class="keyword">sizeof</span>(dwData));</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordflow">return</span> TRUE;</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="keywordflow">return</span> FALSE;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span>}</div>
</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="foldopen" id="foldopen00038" data-start="{" data-end="}">
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="group___win_std_win_h_t_t_p.html#ga3c0714f24f5ce35d3db8a26cabb8e429"> 38</a></span><span class="keyword">inline</span> _Success_(<span class="keywordflow">return</span>) BOOL <a class="code hl_function" href="group___win_std_win_h_t_t_p.html#gafc5f6410cfa802b5bcb35ad754b95178">WinHttpQueryHeaders</a>(_In_ HINTERNET hRequest, _In_ DWORD dwInfoLevel, _Inout_ std::wstring&amp; sData)</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> DWORD dwSize = 0x100;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">for</span> (;;) {</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> sData.resize(dwSize - 1);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> dwSize *= <span class="keyword">sizeof</span>(WCHAR);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_win_h_t_t_p.html#gafc5f6410cfa802b5bcb35ad754b95178">WinHttpQueryHeaders</a>(hRequest, dwInfoLevel, WINHTTP_HEADER_NAME_BY_INDEX, sData.data(), &amp;dwSize, WINHTTP_NO_HEADER_INDEX)) {</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> dwSize /= <span class="keyword">sizeof</span>(WCHAR);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> sData.resize(dwSize);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keywordflow">return</span> TRUE;</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> DWORD result = GetLastError();</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">if</span> (result == ERROR_NOT_ENOUGH_MEMORY) {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> dwSize /= <span class="keyword">sizeof</span>(WCHAR);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> dwSize *= 2;</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="keywordflow">return</span> FALSE;</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>}</div>
</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</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="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span>{</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="foldopen" id="foldopen00071" data-start="{" data-end="};">
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="classwinstd_1_1http.html"> 71</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1http.html">http</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;HINTERNET, NULL&gt;</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"> 73</span> <a class="code hl_define" href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1http.html">http</a>, HINTERNET, NULL)</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="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00081" data-start="{" data-end="}">
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="classwinstd_1_1http.html#a0dd8f655e3581cba346dfdc86e945580"> 81</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1http.html#a0dd8f655e3581cba346dfdc86e945580">~http</a>()</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> <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="l00084" name="l00084"></a><span class="lineno"> 84</span> <a class="code hl_function" href="classwinstd_1_1http.html#adb1a08aed51b8203b23c874e167b6248">free_internal</a>();</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00093" data-start="{" data-end="}">
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="classwinstd_1_1http.html#adb1a08aed51b8203b23c874e167b6248"> 93</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1http.html#adb1a08aed51b8203b23c874e167b6248">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> WinHttpCloseHandle(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> }</div>
</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> };</div>
</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</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:874</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_aabde3f16fd98b06b3b0282ef7806eb59"><div class="ttname"><a href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">winstd::handle&lt; HINTERNET, NULL &gt;::m_h</a></div><div class="ttdeci">handle_type m_h</div><div class="ttdef"><b>Definition</b> Common.h:1126</div></div>
<div class="ttc" id="aclasswinstd_1_1http_html"><div class="ttname"><a href="classwinstd_1_1http.html">winstd::http</a></div><div class="ttdoc">HTTP handle wrapper class.</div><div class="ttdef"><b>Definition</b> WinHTTP.h:72</div></div>
<div class="ttc" id="aclasswinstd_1_1http_html_a0dd8f655e3581cba346dfdc86e945580"><div class="ttname"><a href="classwinstd_1_1http.html#a0dd8f655e3581cba346dfdc86e945580">winstd::http::~http</a></div><div class="ttdeci">virtual ~http()</div><div class="ttdoc">Closes a handle to the HTTP.</div><div class="ttdef"><b>Definition</b> WinHTTP.h:81</div></div>
<div class="ttc" id="aclasswinstd_1_1http_html_adb1a08aed51b8203b23c874e167b6248"><div class="ttname"><a href="classwinstd_1_1http.html#adb1a08aed51b8203b23c874e167b6248">winstd::http::free_internal</a></div><div class="ttdeci">void free_internal() noexcept override</div><div class="ttdoc">Closes a handle to the HTTP.</div><div class="ttdef"><b>Definition</b> WinHTTP.h:93</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga51471bfe41853b66ac0f44df97cfaaa6"><div class="ttname"><a href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, T, 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:164</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; HINTERNET, NULL &gt;::invalid</a></div><div class="ttdeci">static const HINTERNET invalid</div><div class="ttdef"><b>Definition</b> Common.h:884</div></div>
<div class="ttc" id="agroup___win_std_win_h_t_t_p_html_gafc5f6410cfa802b5bcb35ad754b95178"><div class="ttname"><a href="group___win_std_win_h_t_t_p.html#gafc5f6410cfa802b5bcb35ad754b95178">WinHttpQueryHeaders</a></div><div class="ttdeci">BOOL WinHttpQueryHeaders(HINTERNET hRequest, DWORD dwInfoLevel, DWORD &amp;dwData)</div><div class="ttdoc">Retrieves header information associated with an HTTP request.</div><div class="ttdef"><b>Definition</b> WinHTTP.h:23</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

296
_win_sock2_8h_source.html Normal file
View File

@ -0,0 +1,296 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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-2024 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="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">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;WinSock2.h&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &lt;ws2def.h&gt;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;WS2tcpip.h&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">namespace </span>winstd</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span>{</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="foldopen" id="foldopen00024" data-start="{" data-end="};">
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html"> 24</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="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="foldopen" id="foldopen00032" data-start="{" data-end="}">
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#a3044648392aca11ab4966efa338670a1"> 32</a></span> <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a3044648392aca11ab4966efa338670a1">ws2_runtime_error</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">error_type</a> num) : <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#afedaedd3400dc4eeb6c3ec61459dec10">message</a>(num))</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> {}</div>
</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="foldopen" id="foldopen00041" data-start="{" data-end="}">
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#aa6ed38106310751800eca077c2fcb71a"> 41</a></span> <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#aa6ed38106310751800eca077c2fcb71a">ws2_runtime_error</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">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;int&gt;(num, msg + <span class="stringliteral">&quot;: &quot;</span> + <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#afedaedd3400dc4eeb6c3ec61459dec10">message</a>(num))</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> {}</div>
</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="foldopen" id="foldopen00050" data-start="{" data-end="}">
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#ab2c3f82f793f5d2e225cf969b6246c97"> 50</a></span> <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#ab2c3f82f793f5d2e225cf969b6246c97">ws2_runtime_error</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">error_type</a> num, _In_z_ <span class="keyword">const</span> <span class="keywordtype">char</span> *msg) : <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;int&gt;(num, std::string(msg) + <span class="stringliteral">&quot;: &quot;</span> + <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#afedaedd3400dc4eeb6c3ec61459dec10">message</a>(num))</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> {}</div>
</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="foldopen" id="foldopen00056" data-start="{" data-end="}">
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#a953b8d4d69d6c394aefd398d4aca40ed"> 56</a></span> <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#a953b8d4d69d6c394aefd398d4aca40ed">ws2_runtime_error</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#afedaedd3400dc4eeb6c3ec61459dec10">message</a>(WSAGetLastError()))</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> {}</div>
</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="foldopen" id="foldopen00064" data-start="{" data-end="}">
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#ae7914ed1c76d543399992573bc580b4e"> 64</a></span> <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#ae7914ed1c76d543399992573bc580b4e">ws2_runtime_error</a>(_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;int&gt;(WSAGetLastError(), msg + <span class="stringliteral">&quot;: &quot;</span> + <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#afedaedd3400dc4eeb6c3ec61459dec10">message</a>(WSAGetLastError()))</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> {}</div>
</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="foldopen" id="foldopen00072" data-start="{" data-end="}">
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#aef0b9c621c9e9dd9403fecfd65d8de7f"> 72</a></span> <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#aef0b9c621c9e9dd9403fecfd65d8de7f">ws2_runtime_error</a>(_In_z_ <span class="keyword">const</span> <span class="keywordtype">char</span> *msg) : <a class="code hl_class" href="classwinstd_1_1num__runtime__error.html">num_runtime_error</a>&lt;int&gt;(WSAGetLastError(), std::string(msg) + <span class="stringliteral">&quot;: &quot;</span> + <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#afedaedd3400dc4eeb6c3ec61459dec10">message</a>(WSAGetLastError()))</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> {}</div>
</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="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00081" data-start="{" data-end="}">
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="classwinstd_1_1ws2__runtime__error.html#afedaedd3400dc4eeb6c3ec61459dec10"> 81</a></span> <span class="keyword">static</span> std::string <a class="code hl_function" href="classwinstd_1_1ws2__runtime__error.html#afedaedd3400dc4eeb6c3ec61459dec10">message</a>(_In_ <a class="code hl_typedef" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">error_type</a> num, _In_opt_ DWORD dwLanguageId = 0)</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> std::wstring wstr;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">if</span> (<a class="code hl_function" href="group___win_std_str_format.html#ga2bcca64d8cc35866abf8bccc33dbf01b">FormatMessageW</a>(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, 0, num, dwLanguageId, wstr, NULL)) {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// Stock Windows error messages contain CRLF. Well... Trim all the trailing white space.</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> wstr.erase(wstr.find_last_not_of(L<span class="stringliteral">&quot; \t\n\r\f\v&quot;</span>) + 1);</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="keywordflow">else</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <a class="code hl_function" href="group___win_std_str_format.html#gac397f655a858a069b3e521940af64331">sprintf</a>(wstr, num &gt;= 0x10000 ? L<span class="stringliteral">&quot;Error 0x%X&quot;</span> : L<span class="stringliteral">&quot;Error %u&quot;</span>, num);</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> std::string str;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <a class="code hl_function" href="group___win_std_str_format.html#gabf5eed22d7c5d7a89334dbe1e04e2656">WideCharToMultiByte</a>(CP_UTF8, 0, wstr, str, NULL, NULL);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">return</span> str;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> }</div>
</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> };</div>
</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</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="preprocessor">#if (NTDDI_VERSION &gt;= NTDDI_WINXPSP2) || (_WIN32_WINNT &gt;= 0x0502)</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="foldopen" id="foldopen00108" data-start="{" data-end="};">
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="classwinstd_1_1addrinfo.html"> 108</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;PADDRINFOA, NULL&gt;</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> <a class="code hl_define" href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1addrinfo.html">addrinfo</a>, PADDRINFOA, NULL)</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> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00118" data-start="{" data-end="}">
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="classwinstd_1_1addrinfo.html#aaa7a9365cde194bb9f54a96ea04f9883"> 118</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="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">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="l00121" name="l00121"></a><span class="lineno"> 121</span> <a class="code hl_function" href="classwinstd_1_1addrinfo.html#a279ad84ce2877b22797eedbec80cd55f">free_internal</a>();</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> }</div>
</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="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00130" data-start="{" data-end="}">
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="classwinstd_1_1addrinfo.html#a279ad84ce2877b22797eedbec80cd55f"> 130</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="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> FreeAddrInfoA(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> }</div>
</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> };</div>
</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="foldopen" id="foldopen00141" data-start="{" data-end="};">
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="classwinstd_1_1waddrinfo.html"> 141</a></span> <span class="keyword">class </span><a class="code hl_class" href="classwinstd_1_1waddrinfo.html">waddrinfo</a> : <span class="keyword">public</span> <a class="code hl_class" href="classwinstd_1_1handle.html">handle</a>&lt;PADDRINFOW, NULL&gt;</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> <a class="code hl_define" href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a>(<a class="code hl_class" href="classwinstd_1_1waddrinfo.html">waddrinfo</a>, PADDRINFOW, NULL)</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="foldopen" id="foldopen00151" data-start="{" data-end="}">
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classwinstd_1_1waddrinfo.html#a2b1209904bd7486acefd833ff5c4bcca"> 151</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classwinstd_1_1waddrinfo.html#a2b1209904bd7486acefd833ff5c4bcca">~waddrinfo</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> <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="l00154" name="l00154"></a><span class="lineno"> 154</span> <a class="code hl_function" href="classwinstd_1_1waddrinfo.html#a479f7602b60a4c4205a9327f91e25f66">free_internal</a>();</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> }</div>
</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> <span class="keyword">protected</span>:</div>
<div class="foldopen" id="foldopen00163" data-start="{" data-end="}">
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"><a class="line" href="classwinstd_1_1waddrinfo.html#a479f7602b60a4c4205a9327f91e25f66"> 163</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classwinstd_1_1waddrinfo.html#a479f7602b60a4c4205a9327f91e25f66">free_internal</a>() noexcept<span class="keyword"> override</span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="keyword"> </span>{</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> FreeAddrInfoW(<a class="code hl_variable" href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">m_h</a>);</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div>
</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> };</div>
</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="preprocessor">#ifdef _UNICODE</span></div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keyword">typedef</span> waddrinfo <a class="code hl_typedef" href="group___win_sock2_a_p_i.html#ga73a783d5ebf3d1af2a565cb78062b5b6">taddrinfo</a>;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="group___win_sock2_a_p_i.html#ga73a783d5ebf3d1af2a565cb78062b5b6"> 175</a></span> <span class="keyword">typedef</span> <a class="code hl_class" href="classwinstd_1_1addrinfo.html">addrinfo</a> <a class="code hl_typedef" href="group___win_sock2_a_p_i.html#ga73a783d5ebf3d1af2a565cb78062b5b6">taddrinfo</a>;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="preprocessor">#endif</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="preprocessor">#endif</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </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="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="preprocessor">#pragma warning(push)</span></div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</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="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
<div class="foldopen" id="foldopen00190" data-start="{" data-end="}">
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"><a class="line" href="group___win_sock2_a_p_i.html#gae9f6e09e2e81a57135dc30bc999d27af"> 190</a></span><span class="keyword">static</span> INT <a class="code hl_function" href="group___win_sock2_a_p_i.html#gae9f6e09e2e81a57135dc30bc999d27af">GetAddrInfoA</a>(</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> _In_opt_ PCSTR pNodeName,</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> _In_opt_ PCSTR pServiceName,</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> _In_opt_ <span class="keyword">const</span> ADDRINFOA *pHints,</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> _Inout_ <a class="code hl_class" href="classwinstd_1_1addrinfo.html">winstd::addrinfo</a> &amp;result)</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> PADDRINFOA h;</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> INT iResult = <a class="code hl_function" href="group___win_sock2_a_p_i.html#gae9f6e09e2e81a57135dc30bc999d27af">GetAddrInfoA</a>(pNodeName, pServiceName, pHints, &amp;h);</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <span class="keywordflow">if</span> (iResult == 0)</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> result.attach(h);</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">return</span> iResult;</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span>}</div>
</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> </div>
<div class="foldopen" id="foldopen00208" data-start="{" data-end="}">
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="group___win_sock2_a_p_i.html#gad222deae09d76241e018a2e350aa1ec9"> 208</a></span><span class="keyword">static</span> INT <a class="code hl_function" href="group___win_sock2_a_p_i.html#gad222deae09d76241e018a2e350aa1ec9">GetAddrInfoW</a>(</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> _In_opt_ PCWSTR pNodeName,</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> _In_opt_ PCWSTR pServiceName,</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> _In_opt_ <span class="keyword">const</span> ADDRINFOW *pHints,</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> _Inout_ <a class="code hl_class" href="classwinstd_1_1waddrinfo.html">winstd::waddrinfo</a> &amp;result)</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> PADDRINFOW h;</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> INT iResult = <a class="code hl_function" href="group___win_sock2_a_p_i.html#gad222deae09d76241e018a2e350aa1ec9">GetAddrInfoW</a>(pNodeName, pServiceName, pHints, &amp;h);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">if</span> (iResult == 0)</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> result.attach(h);</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">return</span> iResult;</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span>}</div>
</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><span class="preprocessor">#pragma warning(pop)</span></div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</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">ADDRINFOA wrapper class.</div><div class="ttdef"><b>Definition</b> WinSock2.h:109</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:130</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:118</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:874</div></div>
<div class="ttc" id="aclasswinstd_1_1handle_html_aabde3f16fd98b06b3b0282ef7806eb59"><div class="ttname"><a href="classwinstd_1_1handle.html#aabde3f16fd98b06b3b0282ef7806eb59">winstd::handle&lt; PADDRINFOA, NULL &gt;::m_h</a></div><div class="ttdeci">handle_type m_h</div><div class="ttdef"><b>Definition</b> Common.h:1126</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:1331</div></div>
<div class="ttc" id="aclasswinstd_1_1num__runtime__error_html_ac251f4b79b67a800dcd108fedb58d5b5"><div class="ttname"><a href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">winstd::num_runtime_error&lt; int &gt;::error_type</a></div><div class="ttdeci">int error_type</div><div class="ttdef"><b>Definition</b> Common.h:1333</div></div>
<div class="ttc" id="aclasswinstd_1_1waddrinfo_html"><div class="ttname"><a href="classwinstd_1_1waddrinfo.html">winstd::waddrinfo</a></div><div class="ttdoc">ADDRINFOW wrapper class.</div><div class="ttdef"><b>Definition</b> WinSock2.h:142</div></div>
<div class="ttc" id="aclasswinstd_1_1waddrinfo_html_a2b1209904bd7486acefd833ff5c4bcca"><div class="ttname"><a href="classwinstd_1_1waddrinfo.html#a2b1209904bd7486acefd833ff5c4bcca">winstd::waddrinfo::~waddrinfo</a></div><div class="ttdeci">virtual ~waddrinfo()</div><div class="ttdoc">Frees address information.</div><div class="ttdef"><b>Definition</b> WinSock2.h:151</div></div>
<div class="ttc" id="aclasswinstd_1_1waddrinfo_html_a479f7602b60a4c4205a9327f91e25f66"><div class="ttname"><a href="classwinstd_1_1waddrinfo.html#a479f7602b60a4c4205a9327f91e25f66">winstd::waddrinfo::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:163</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:25</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_a3044648392aca11ab4966efa338670a1"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#a3044648392aca11ab4966efa338670a1">winstd::ws2_runtime_error::ws2_runtime_error</a></div><div class="ttdeci">ws2_runtime_error(error_type num)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition</b> WinSock2.h:32</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_a953b8d4d69d6c394aefd398d4aca40ed"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#a953b8d4d69d6c394aefd398d4aca40ed">winstd::ws2_runtime_error::ws2_runtime_error</a></div><div class="ttdeci">ws2_runtime_error()</div><div class="ttdoc">Constructs an exception using WSAGetLastError()</div><div class="ttdef"><b>Definition</b> WinSock2.h:56</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_aa6ed38106310751800eca077c2fcb71a"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#aa6ed38106310751800eca077c2fcb71a">winstd::ws2_runtime_error::ws2_runtime_error</a></div><div class="ttdeci">ws2_runtime_error(error_type num, const std::string &amp;msg)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition</b> WinSock2.h:41</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_ab2c3f82f793f5d2e225cf969b6246c97"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#ab2c3f82f793f5d2e225cf969b6246c97">winstd::ws2_runtime_error::ws2_runtime_error</a></div><div class="ttdeci">ws2_runtime_error(error_type num, const char *msg)</div><div class="ttdoc">Constructs an exception.</div><div class="ttdef"><b>Definition</b> WinSock2.h:50</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_ae7914ed1c76d543399992573bc580b4e"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#ae7914ed1c76d543399992573bc580b4e">winstd::ws2_runtime_error::ws2_runtime_error</a></div><div class="ttdeci">ws2_runtime_error(const std::string &amp;msg)</div><div class="ttdoc">Constructs an exception using WSAGetLastError()</div><div class="ttdef"><b>Definition</b> WinSock2.h:64</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_aef0b9c621c9e9dd9403fecfd65d8de7f"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#aef0b9c621c9e9dd9403fecfd65d8de7f">winstd::ws2_runtime_error::ws2_runtime_error</a></div><div class="ttdeci">ws2_runtime_error(const char *msg)</div><div class="ttdoc">Constructs an exception using WSAGetLastError()</div><div class="ttdef"><b>Definition</b> WinSock2.h:72</div></div>
<div class="ttc" id="aclasswinstd_1_1ws2__runtime__error_html_afedaedd3400dc4eeb6c3ec61459dec10"><div class="ttname"><a href="classwinstd_1_1ws2__runtime__error.html#afedaedd3400dc4eeb6c3ec61459dec10">winstd::ws2_runtime_error::message</a></div><div class="ttdeci">static std::string message(error_type num, DWORD dwLanguageId=0)</div><div class="ttdoc">Returns a user-readable Windows error message.</div><div class="ttdef"><b>Definition</b> WinSock2.h:81</div></div>
<div class="ttc" id="agroup___win_sock2_a_p_i_html_ga73a783d5ebf3d1af2a565cb78062b5b6"><div class="ttname"><a href="group___win_sock2_a_p_i.html#ga73a783d5ebf3d1af2a565cb78062b5b6">winstd::taddrinfo</a></div><div class="ttdeci">addrinfo taddrinfo</div><div class="ttdoc">Multi-byte / Wide-character ADDRINFO wrapper class (according to _UNICODE)</div><div class="ttdef"><b>Definition</b> WinSock2.h:175</div></div>
<div class="ttc" id="agroup___win_sock2_a_p_i_html_gad222deae09d76241e018a2e350aa1ec9"><div class="ttname"><a href="group___win_sock2_a_p_i.html#gad222deae09d76241e018a2e350aa1ec9">GetAddrInfoW</a></div><div class="ttdeci">static INT GetAddrInfoW(PCWSTR pNodeName, PCWSTR pServiceName, const ADDRINFOW *pHints, winstd::waddrinfo &amp;result)</div><div class="ttdoc">Provides protocol-independent translation from a host name to an address.</div><div class="ttdef"><b>Definition</b> WinSock2.h:208</div></div>
<div class="ttc" id="agroup___win_sock2_a_p_i_html_gae9f6e09e2e81a57135dc30bc999d27af"><div class="ttname"><a href="group___win_sock2_a_p_i.html#gae9f6e09e2e81a57135dc30bc999d27af">GetAddrInfoA</a></div><div class="ttdeci">static INT GetAddrInfoA(PCSTR pNodeName, PCSTR pServiceName, const ADDRINFOA *pHints, winstd::addrinfo &amp;result)</div><div class="ttdoc">Provides protocol-independent translation from a host name to an address.</div><div class="ttdef"><b>Definition</b> WinSock2.h:190</div></div>
<div class="ttc" id="agroup___win_std_str_format_html_ga2bcca64d8cc35866abf8bccc33dbf01b"><div class="ttname"><a href="group___win_std_str_format.html#ga2bcca64d8cc35866abf8bccc33dbf01b">FormatMessageW</a></div><div class="ttdeci">static DWORD FormatMessageW(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, std::basic_string&lt; wchar_t, _Traits, _Ax &gt; &amp;str, va_list *Arguments)</div><div class="ttdoc">Formats a message string.</div><div class="ttdef"><b>Definition</b> Common.h:705</div></div>
<div class="ttc" id="agroup___win_std_str_format_html_gabf5eed22d7c5d7a89334dbe1e04e2656"><div class="ttname"><a href="group___win_std_str_format.html#gabf5eed22d7c5d7a89334dbe1e04e2656">WideCharToMultiByte</a></div><div class="ttdeci">static int WideCharToMultiByte(UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, std::basic_string&lt; char, _Traits, _Ax &gt; &amp;sMultiByteStr, LPCSTR lpDefaultChar, LPBOOL lpUsedDefaultChar) noexcept</div><div class="ttdoc">Maps a UTF-16 (wide character) string to a std::string. The new character string is not necessarily f...</div><div class="ttdef"><b>Definition</b> Common.h:348</div></div>
<div class="ttc" id="agroup___win_std_str_format_html_gac397f655a858a069b3e521940af64331"><div class="ttname"><a href="group___win_std_str_format.html#gac397f655a858a069b3e521940af64331">sprintf</a></div><div class="ttdeci">static int sprintf(std::basic_string&lt; _Elem, _Traits, _Ax &gt; &amp;str, const _Elem *format,...)</div><div class="ttdoc">Formats string using printf().</div><div class="ttdef"><b>Definition</b> Common.h:333</div></div>
<div class="ttc" id="agroup___win_std_sys_handles_html_ga51471bfe41853b66ac0f44df97cfaaa6"><div class="ttname"><a href="group___win_std_sys_handles.html#ga51471bfe41853b66ac0f44df97cfaaa6">WINSTD_HANDLE_IMPL</a></div><div class="ttdeci">#define WINSTD_HANDLE_IMPL(C, T, 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:164</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; PADDRINFOA, NULL &gt;::invalid</a></div><div class="ttdeci">static const PADDRINFOA invalid</div><div class="ttdef"><b>Definition</b> Common.h:884</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

158
_win_trust_8h_source.html Normal file
View File

@ -0,0 +1,158 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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-2024 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="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">#pragma once</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> </div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include &quot;Common.h&quot;</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &lt;WinTrust.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="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="foldopen" id="foldopen00022" data-start="{" data-end="};">
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="classwinstd_1_1wintrust.html"> 22</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="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_general.html#ga11254c72ad33a6e0f5de31db708f784c">WINSTD_NONCOPYABLE</a>(<a class="code hl_class" href="classwinstd_1_1wintrust.html">wintrust</a>)</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#gac91fa8d79c860b1fdbba65b6a322f760">WINSTD_NONMOVABLE</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> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00031" data-start="{" data-end="}">
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classwinstd_1_1wintrust.html#a5f01f7952ccb4e4f6b3b52968470e49b"> 31</a></span> <a class="code hl_function" href="classwinstd_1_1wintrust.html#a5f01f7952ccb4e4f6b3b52968470e49b">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="l00032" name="l00032"></a><span class="lineno"> 32</span> m_hwnd(hwnd),</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> m_action(action),</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> m_wtd(wtd)</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> <span class="keyword">const</span> LONG lResult = WinVerifyTrust(m_hwnd, &amp;m_action, &amp;m_wtd);</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">if</span> (lResult != ERROR_SUCCESS)</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</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="l00039" name="l00039"></a><span class="lineno"> 39</span> }</div>
</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="foldopen" id="foldopen00044" data-start="{" data-end="}">
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classwinstd_1_1wintrust.html#ac529a244b4f2f4eb85bcdf594ff723c3"> 44</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="l00045" name="l00045"></a><span class="lineno"> 45</span> {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> m_wtd.dwStateAction = WTD_STATEACTION_CLOSE;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> WinVerifyTrust(m_hwnd, &amp;m_action, &amp;m_wtd);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> }</div>
</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> <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="l00056" name="l00056"></a><span class="lineno"> 56</span> };</div>
</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</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:1403</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:23</div></div>
<div class="ttc" id="aclasswinstd_1_1wintrust_html_a5f01f7952ccb4e4f6b3b52968470e49b"><div class="ttname"><a href="classwinstd_1_1wintrust.html#a5f01f7952ccb4e4f6b3b52968470e49b">winstd::wintrust::wintrust</a></div><div class="ttdeci">wintrust(HWND hwnd, const GUID &amp;action, WINTRUST_DATA &amp;wtd)</div><div class="ttdoc">Initializes a new class instance.</div><div class="ttdef"><b>Definition</b> WinTrust.h:31</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:44</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:67</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:75</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

195
annotated.html Normal file
View File

@ -0,0 +1,195 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="doc-content">
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 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:dynsection.toggleLevel(1);">1</span><span onclick="javascript:dynsection.toggleLevel(2);">2</span><span onclick="javascript:dynsection.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="dynsection.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_" class="odd"><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">ADDRINFOA wrapper class </td></tr>
<tr id="row_0_2_" class="odd"><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_" class="odd"><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_" class="odd"><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_" class="odd"><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_1clipboard__opener.html" target="_self">clipboard_opener</a></td><td class="desc">Clipboard management </td></tr>
<tr id="row_0_10_" class="odd"><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_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__obj.html" target="_self">com_obj</a></td><td class="desc">COM object wrapper template </td></tr>
<tr id="row_0_12_" class="odd"><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_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="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_14_" class="odd"><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_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.html" target="_self">CredFree_delete</a></td><td class="desc">Deleter for unique_ptr using CredFree </td></tr>
<tr id="row_0_16_" class="odd"><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_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_1critical__section.html" target="_self">critical_section</a></td><td class="desc">Critical section wrapper </td></tr>
<tr id="row_0_18_" class="odd"><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_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__key.html" target="_self">crypt_key</a></td><td class="desc">HCRYPTKEY wrapper class </td></tr>
<tr id="row_0_20_" class="odd"><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_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_1data__blob.html" target="_self">data_blob</a></td><td class="desc">DATA_BLOB wrapper class </td></tr>
<tr id="row_0_22_" class="odd"><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_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_1dc__selector.html" target="_self">dc_selector</a></td><td class="desc">Context scope DC object restorer </td></tr>
<tr id="row_0_24_" class="odd"><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 trivial handle duplication </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__attr.html" target="_self">eap_attr</a></td><td class="desc">EAP_ATTRIBUTE wrapper class </td></tr>
<tr id="row_0_26_" class="odd"><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_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__method__prop.html" target="_self">eap_method_prop</a></td><td class="desc">EAP_METHOD_PROPERTY wrapper class </td></tr>
<tr id="row_0_28_" class="odd"><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_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="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_30_" class="odd"><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_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_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_32_" class="odd"><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_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="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_34_" class="odd"><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_" class="odd"><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__log.html" target="_self">event_log</a></td><td class="desc">Event log handle wrapper </td></tr>
<tr id="row_0_38_" class="odd"><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_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__rec.html" target="_self">event_rec</a></td><td class="desc">EVENT_RECORD wrapper </td></tr>
<tr id="row_0_40_" class="odd"><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_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.html" target="_self">event_trace</a></td><td class="desc">ETW trace </td></tr>
<tr id="row_0_42_" class="odd"><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_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_" class="odd"><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="structwinstd_1_1_global_free__delete.html" target="_self">GlobalFree_delete</a></td><td class="desc">Deleter for unique_ptr using GlobalFree </td></tr>
<tr id="row_0_46_" class="odd"><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_1globalmem__accessor.html" target="_self">globalmem_accessor</a></td><td class="desc">Context scope automatic GlobalAlloc (un)access </td></tr>
<tr id="row_0_47_" 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_48_" class="odd"><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_49_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_49_" class="arrow" onclick="dynsection.toggleFolder('0_49_')">&#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_49_0_" class="odd"><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_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="classwinstd_1_1http.html" target="_self">http</a></td><td class="desc">HTTP handle wrapper class </td></tr>
<tr id="row_0_51_" class="odd"><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_1icon.html" target="_self">icon</a></td><td class="desc">Windows HICON wrapper class </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_1impersonator.html" target="_self">impersonator</a></td><td class="desc">Base class for thread impersonation of another security context </td></tr>
<tr id="row_0_53_" class="odd"><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_1last__error__saver.html" target="_self">last_error_saver</a></td><td class="desc">Saves GetLastError and restores SetLastError when going out of scope </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_1library.html" target="_self">library</a></td><td class="desc">Module handle wrapper </td></tr>
<tr id="row_0_55_" class="odd"><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_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="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_57_" class="odd"><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_1mutex__locker.html" target="_self">mutex_locker</a></td><td class="desc">Locks given mutex in constructor and releases it in destructor </td></tr>
<tr id="row_0_58_" 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_1num__runtime__error.html" target="_self">num_runtime_error</a></td><td class="desc">Numerical runtime error </td></tr>
<tr id="row_0_59_" class="odd"><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_60_" 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 key wrapper class </td></tr>
<tr id="row_0_61_" class="odd"><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_1safearray.html" target="_self">safearray</a></td><td class="desc">SAFEARRAY string wrapper </td></tr>
<tr id="row_0_62_" 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_1safearray__accessor.html" target="_self">safearray_accessor</a></td><td class="desc">Context scope automatic SAFEARRAY (un)access </td></tr>
<tr id="row_0_63_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_63_" class="arrow" onclick="dynsection.toggleFolder('0_63_')">&#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_63_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_64_" class="odd"><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_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_1sc__handle.html" target="_self">sc_handle</a></td><td class="desc">SC_HANDLE wrapper class </td></tr>
<tr id="row_0_66_" class="odd"><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_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_1sec__context.html" target="_self">sec_context</a></td><td class="desc">PCtxtHandle wrapper class </td></tr>
<tr id="row_0_68_" class="odd"><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_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_1sec__runtime__error.html" target="_self">sec_runtime_error</a></td><td class="desc">Security runtime error </td></tr>
<tr id="row_0_70_" class="odd"><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__attributes.html" target="_self">security_attributes</a></td><td class="desc"></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_1security__id.html" target="_self">security_id</a></td><td class="desc">SID wrapper class </td></tr>
<tr id="row_0_72_" class="odd"><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_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_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_74_" class="odd"><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_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_1system__impersonator.html" target="_self">system_impersonator</a></td><td class="desc">Lets the calling thread impersonate the security context of the SYSTEM user </td></tr>
<tr id="row_0_76_" class="odd"><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_unmap_view_of_file__delete.html" target="_self">UnmapViewOfFile_delete</a></td><td class="desc">Deleter for unique_ptr using UnmapViewOfFile </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="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_78_" class="odd"><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_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_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_80_" class="odd"><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_1waddrinfo.html" target="_self">waddrinfo</a></td><td class="desc">ADDRINFOW wrapper class </td></tr>
<tr id="row_0_81_" 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_82_" class="odd"><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_83_" 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_84_" class="odd"><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_85_" 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_86_" class="odd"><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_87_" 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_88_" class="odd"><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_89_" 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 Tue Nov 19 2024 10:18:29 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -1,16 +0,0 @@
version: master.{build}
image:
- Visual Studio 2022
- Visual Studio 2019
configuration:
- Debug
- Release
platform:
- x64
- x86
build:
project: UnitTests\UnitTests.sln
parallel: true
verbosity: minimal
test_script:
- cmd: vstest.console /logger:Appveyor UnitTests\.tmp\UnitTests\%platform%\%configuration%\UnitTests.dll

BIN
bc_s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

BIN
bc_sd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

155
classes.html Normal file
View File

@ -0,0 +1,155 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="doc-content">
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 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_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</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_1clipboard__opener.html">clipboard_opener</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__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__log.html">event_log</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_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><dd><a class="el" href="structwinstd_1_1_global_free__delete.html">GlobalFree_delete</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1globalmem__accessor.html">globalmem_accessor</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><dd><a class="el" href="classwinstd_1_1http.html">http</a> (winstd)</dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_I" name="letter_I">I</a></dt>
<dd><a class="el" href="classwinstd_1_1icon.html">icon</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1impersonator.html">impersonator</a> (winstd)</dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_L" name="letter_L">L</a></dt>
<dd><a class="el" href="classwinstd_1_1last__error__saver.html">last_error_saver</a> (winstd)</dd><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 even">
<dt class="alphachar"><a id="letter_M" name="letter_M">M</a></dt>
<dd><a class="el" href="classwinstd_1_1mutex__locker.html">mutex_locker</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__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_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_1safearray.html">safearray</a> (winstd)</dd><dd><a class="el" href="classwinstd_1_1safearray__accessor.html">safearray_accessor</a> (winstd)</dd><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_1sc__handle.html">sc_handle</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__attributes.html">security_attributes</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><dd><a class="el" href="classwinstd_1_1system__impersonator.html">system_impersonator</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="structwinstd_1_1_unmap_view_of_file__delete.html">UnmapViewOfFile_delete</a> (winstd)</dd><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_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_1waddrinfo.html">waddrinfo</a> (winstd)</dd><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 Tue Nov 19 2024 10:18:29 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

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" 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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1actctx__activator.html">actctx_activator</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#a557774255df823c979be34bf5f82a0f2">actctx_activator</a>(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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

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" 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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1actctx__activator.html">actctx_activator</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_win_8h_source.html">WinStd/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:a557774255df823c979be34bf5f82a0f2" id="r_a557774255df823c979be34bf5f82a0f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a557774255df823c979be34bf5f82a0f2">actctx_activator</a> (HANDLE hActCtx) noexcept</td></tr>
<tr class="memdesc:a557774255df823c979be34bf5f82a0f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the activator and activates the given activation context. <br /></td></tr>
<tr class="separator:a557774255df823c979be34bf5f82a0f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9487820e29c331362b1ecd36de3b692a" id="r_a9487820e29c331362b1ecd36de3b692a"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#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. <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" id="r_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="a557774255df823c979be34bf5f82a0f2" name="a557774255df823c979be34bf5f82a0f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a557774255df823c979be34bf5f82a0f2">&#9670;&#160;</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">HANDLE</td> <td class="paramname"><span class="paramname"><em>hActCtx</em></span></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;&#160;</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"><span class="paramname"><em></em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,129 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1addrinfo.html">addrinfo</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#ab2a98042c3b88fda687e34d370756f11">attach</a>(handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOA, 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; PADDRINFOA, 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; PADDRINFOA, 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_1handle.html#a1b9c4f9529c9efa7d16dec8bab3b00e4">handle</a>() noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOA, 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#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a>(handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOA, 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#ac52f342530bb97ce1ff255a7054547d5">handle</a>(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; PADDRINFOA, 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#ae5faed333075739a27c99372967e01a6">handle_type</a> typedef</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOA, 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; PADDRINFOA, 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; PADDRINFOA, 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; PADDRINFOA, 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; PADDRINFOA, 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#a6df58f6c131ab4288acb96d5b8f3012e">operator!=</a>(handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOA, 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; PADDRINFOA, 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; PADDRINFOA, 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; PADDRINFOA, 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#a4c4515d0d1071cab5c675e926aa2dc92">operator&lt;</a>(handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOA, 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#af9e9538d58b952799db4a1c68b0184b9">operator&lt;=</a>(handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOA, 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#a591e006af92e4d088fb9c1ed974c0923">operator=</a>(handle_type h) noexcept</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOA, 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#a6326bbc54ec3441e41f30bc1ec4d6a6c">operator=</a>(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; PADDRINFOA, 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#ab6021e9c11accef6b813948dc4601ddc">operator==</a>(handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOA, 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#ae7361f6159006e3f87cbe10ba2a76329">operator&gt;</a>(handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOA, 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#a20e325dde8a25d1e3a7efb50b431641b">operator&gt;=</a>(handle_type h) const</td><td class="entry"><a class="el" href="classwinstd_1_1handle.html">winstd::handle&lt; PADDRINFOA, 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#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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,278 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1addrinfo.html">addrinfo</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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>ADDRINFOA wrapper class.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_win_sock2_8h_source.html">WinStd/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; PADDRINFOA, 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:aaa7a9365cde194bb9f54a96ea04f9883" id="r_aaa7a9365cde194bb9f54a96ea04f9883"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aaa7a9365cde194bb9f54a96ea04f9883">~addrinfo</a> ()</td></tr>
<tr class="memdesc:aaa7a9365cde194bb9f54a96ea04f9883"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees address information. <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:dynsection.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; PADDRINFOA, NULL &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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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:a279ad84ce2877b22797eedbec80cd55f" id="r_a279ad84ce2877b22797eedbec80cd55f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a279ad84ce2877b22797eedbec80cd55f">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:a279ad84ce2877b22797eedbec80cd55f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees address information. <br /></td></tr>
<tr class="separator:a279ad84ce2877b22797eedbec80cd55f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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; PADDRINFOA, NULL &gt;</a></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:dynsection.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; PADDRINFOA, NULL &gt;</a></td></tr>
<tr class="memitem:ae5faed333075739a27c99372967e01a6 inherit pub_types_classwinstd_1_1handle" id="r_ae5faed333075739a27c99372967e01a6"><td class="memItemLeft" align="right" valign="top">
typedef PADDRINFOA&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:ae5faed333075739a27c99372967e01a6 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:ae5faed333075739a27c99372967e01a6 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:dynsection.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; PADDRINFOA, NULL &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 PADDRINFOA&#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:dynsection.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; PADDRINFOA, NULL &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#ae5faed333075739a27c99372967e01a6">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>ADDRINFOA wrapper class. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://docs.microsoft.com/en-us/windows/win32/api/ws2tcpip/nf-ws2tcpip-getaddrinfo">GetAddrInfoA function</a> </dd></dl>
</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;&#160;</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"><span class="paramname"><em></em></span></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/win32/api/ws2tcpip/nf-ws2tcpip-freeaddrinfo">FreeAddrInfoA 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;&#160;</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"><span class="paramname"><em></em></span></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/win32/api/ws2tcpip/nf-ws2tcpip-freeaddrinfo">FreeAddrInfoA function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629">winstd::handle&lt; PADDRINFOA, 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="_win_sock2_8h_source.html">WinSock2.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

BIN
classwinstd_1_1addrinfo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 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" 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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1basic__string__guid.html">basic_string_guid</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#a69e6b961f17e862b55ff02dcb6e90c3e">basic_string_guid</a>(const GUID &amp;guid, 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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,170 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1basic__string__guid.html">basic_string_guid</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#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::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:a69e6b961f17e862b55ff02dcb6e90c3e" id="r_a69e6b961f17e862b55ff02dcb6e90c3e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a69e6b961f17e862b55ff02dcb6e90c3e">basic_string_guid</a> (const GUID &amp;guid, const _Elem *format)</td></tr>
<tr class="memdesc:a69e6b961f17e862b55ff02dcb6e90c3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents to string representation of given GUID. <br /></td></tr>
<tr class="separator:a69e6b961f17e862b55ff02dcb6e90c3e"><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="a69e6b961f17e862b55ff02dcb6e90c3e" name="a69e6b961f17e862b55ff02dcb6e90c3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69e6b961f17e862b55ff02dcb6e90c3e">&#9670;&#160;</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">const GUID &amp;</td> <td class="paramname"><span class="paramname"><em>guid</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const _Elem *</td> <td class="paramname"><span class="paramname"><em>format</em></span>&#160;)</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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,112 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1basic__string__msg.html">basic_string_msg</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#a736a3e3559471ede3f8b7144ed908c46">basic_string_msg</a>(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#a9203b643c2070c1954c595e5c6e519d5">basic_string_msg</a>(HINSTANCE hInstance, 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#a6225c3a78cad401124dd7cafdd95ad31">basic_string_msg</a>(HINSTANCE hInstance, WORD wLanguageID, 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#a72842f64e4015027811f4f8bd36b86ee">basic_string_msg</a>(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, 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#a0b20861e7b0a943c80774b36f77924b9">basic_string_msg</a>(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, 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#a3fe77c26d3e41426fae90d6255455403">basic_string_msg</a>(DWORD dwFlags, LPCTSTR pszFormat, 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#aee54bb91aa476ab3e7cd7fd118becf56">basic_string_msg</a>(DWORD dwFlags, LPCTSTR pszFormat, 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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,461 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1basic__string__msg.html">basic_string_msg</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#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::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:a72842f64e4015027811f4f8bd36b86ee" id="r_a72842f64e4015027811f4f8bd36b86ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a72842f64e4015027811f4f8bd36b86ee">basic_string_msg</a> (DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, va_list *Arguments)</td></tr>
<tr class="memdesc:a72842f64e4015027811f4f8bd36b86ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style. <br /></td></tr>
<tr class="separator:a72842f64e4015027811f4f8bd36b86ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b20861e7b0a943c80774b36f77924b9" id="r_a0b20861e7b0a943c80774b36f77924b9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0b20861e7b0a943c80774b36f77924b9">basic_string_msg</a> (DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, DWORD_PTR *Arguments)</td></tr>
<tr class="memdesc:a0b20861e7b0a943c80774b36f77924b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style. <br /></td></tr>
<tr class="separator:a0b20861e7b0a943c80774b36f77924b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fe77c26d3e41426fae90d6255455403" id="r_a3fe77c26d3e41426fae90d6255455403"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3fe77c26d3e41426fae90d6255455403">basic_string_msg</a> (DWORD dwFlags, LPCTSTR pszFormat, va_list *Arguments)</td></tr>
<tr class="memdesc:a3fe77c26d3e41426fae90d6255455403"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style. <br /></td></tr>
<tr class="separator:a3fe77c26d3e41426fae90d6255455403"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee54bb91aa476ab3e7cd7fd118becf56" id="r_aee54bb91aa476ab3e7cd7fd118becf56"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aee54bb91aa476ab3e7cd7fd118becf56">basic_string_msg</a> (DWORD dwFlags, LPCTSTR pszFormat, DWORD_PTR *Arguments)</td></tr>
<tr class="memdesc:aee54bb91aa476ab3e7cd7fd118becf56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style. <br /></td></tr>
<tr class="separator:aee54bb91aa476ab3e7cd7fd118becf56"><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:a736a3e3559471ede3f8b7144ed908c46" id="r_a736a3e3559471ede3f8b7144ed908c46"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a736a3e3559471ede3f8b7144ed908c46">basic_string_msg</a> (const _Elem *format,...)</td></tr>
<tr class="memdesc:a736a3e3559471ede3f8b7144ed908c46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style template. <br /></td></tr>
<tr class="separator:a736a3e3559471ede3f8b7144ed908c46"><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:a9203b643c2070c1954c595e5c6e519d5" id="r_a9203b643c2070c1954c595e5c6e519d5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9203b643c2070c1954c595e5c6e519d5">basic_string_msg</a> (HINSTANCE hInstance, UINT nFormatID,...)</td></tr>
<tr class="memdesc:a9203b643c2070c1954c595e5c6e519d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style template in resources. <br /></td></tr>
<tr class="separator:a9203b643c2070c1954c595e5c6e519d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6225c3a78cad401124dd7cafdd95ad31" id="r_a6225c3a78cad401124dd7cafdd95ad31"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6225c3a78cad401124dd7cafdd95ad31">basic_string_msg</a> (HINSTANCE hInstance, WORD wLanguageID, UINT nFormatID,...)</td></tr>
<tr class="memdesc:a6225c3a78cad401124dd7cafdd95ad31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>FormatMessage()</code> style template in resources. <br /></td></tr>
<tr class="separator:a6225c3a78cad401124dd7cafdd95ad31"><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="a736a3e3559471ede3f8b7144ed908c46" name="a736a3e3559471ede3f8b7144ed908c46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a736a3e3559471ede3f8b7144ed908c46">&#9670;&#160;</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">const _Elem *</td> <td class="paramname"><span class="paramname"><em>format</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>...</em></span>&#160;)</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="a9203b643c2070c1954c595e5c6e519d5" name="a9203b643c2070c1954c595e5c6e519d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9203b643c2070c1954c595e5c6e519d5">&#9670;&#160;</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">HINSTANCE</td> <td class="paramname"><span class="paramname"><em>hInstance</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">UINT</td> <td class="paramname"><span class="paramname"><em>nFormatID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>...</em></span>&#160;)</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="a6225c3a78cad401124dd7cafdd95ad31" name="a6225c3a78cad401124dd7cafdd95ad31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6225c3a78cad401124dd7cafdd95ad31">&#9670;&#160;</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">HINSTANCE</td> <td class="paramname"><span class="paramname"><em>hInstance</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">WORD</td> <td class="paramname"><span class="paramname"><em>wLanguageID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">UINT</td> <td class="paramname"><span class="paramname"><em>nFormatID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>...</em></span>&#160;)</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="a72842f64e4015027811f4f8bd36b86ee" name="a72842f64e4015027811f4f8bd36b86ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72842f64e4015027811f4f8bd36b86ee">&#9670;&#160;</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">DWORD</td> <td class="paramname"><span class="paramname"><em>dwFlags</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">LPCVOID</td> <td class="paramname"><span class="paramname"><em>lpSource</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DWORD</td> <td class="paramname"><span class="paramname"><em>dwMessageId</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DWORD</td> <td class="paramname"><span class="paramname"><em>dwLanguageId</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">va_list *</td> <td class="paramname"><span class="paramname"><em>Arguments</em></span>&#160;)</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="a0b20861e7b0a943c80774b36f77924b9" name="a0b20861e7b0a943c80774b36f77924b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b20861e7b0a943c80774b36f77924b9">&#9670;&#160;</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">DWORD</td> <td class="paramname"><span class="paramname"><em>dwFlags</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">LPCVOID</td> <td class="paramname"><span class="paramname"><em>lpSource</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DWORD</td> <td class="paramname"><span class="paramname"><em>dwMessageId</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DWORD</td> <td class="paramname"><span class="paramname"><em>dwLanguageId</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DWORD_PTR *</td> <td class="paramname"><span class="paramname"><em>Arguments</em></span>&#160;)</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="a3fe77c26d3e41426fae90d6255455403" name="a3fe77c26d3e41426fae90d6255455403"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3fe77c26d3e41426fae90d6255455403">&#9670;&#160;</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">DWORD</td> <td class="paramname"><span class="paramname"><em>dwFlags</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">LPCTSTR</td> <td class="paramname"><span class="paramname"><em>pszFormat</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">va_list *</td> <td class="paramname"><span class="paramname"><em>Arguments</em></span>&#160;)</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="aee54bb91aa476ab3e7cd7fd118becf56" name="aee54bb91aa476ab3e7cd7fd118becf56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee54bb91aa476ab3e7cd7fd118becf56">&#9670;&#160;</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">DWORD</td> <td class="paramname"><span class="paramname"><em>dwFlags</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">LPCTSTR</td> <td class="paramname"><span class="paramname"><em>pszFormat</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DWORD_PTR *</td> <td class="paramname"><span class="paramname"><em>Arguments</em></span>&#160;)</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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 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" 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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1basic__string__printf.html">basic_string_printf</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#a409c94cb80a202d0bd628930514b64ba">basic_string_printf</a>(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#ab258ccf8da028fc5e8511336401213ba">basic_string_printf</a>(HINSTANCE hInstance, 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#a532bc995c0509b41f92612a77e169a83">basic_string_printf</a>(HINSTANCE hInstance, WORD wLanguageID, 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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,272 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1basic__string__printf.html">basic_string_printf</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#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::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:a409c94cb80a202d0bd628930514b64ba" id="r_a409c94cb80a202d0bd628930514b64ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a409c94cb80a202d0bd628930514b64ba">basic_string_printf</a> (const _Elem *format,...)</td></tr>
<tr class="memdesc:a409c94cb80a202d0bd628930514b64ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>printf()</code> style template. <br /></td></tr>
<tr class="separator:a409c94cb80a202d0bd628930514b64ba"><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:ab258ccf8da028fc5e8511336401213ba" id="r_ab258ccf8da028fc5e8511336401213ba"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab258ccf8da028fc5e8511336401213ba">basic_string_printf</a> (HINSTANCE hInstance, UINT nFormatID,...)</td></tr>
<tr class="memdesc:ab258ccf8da028fc5e8511336401213ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>printf()</code> style template in resources. <br /></td></tr>
<tr class="separator:ab258ccf8da028fc5e8511336401213ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a532bc995c0509b41f92612a77e169a83" id="r_a532bc995c0509b41f92612a77e169a83"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a532bc995c0509b41f92612a77e169a83">basic_string_printf</a> (HINSTANCE hInstance, WORD wLanguageID, UINT nFormatID,...)</td></tr>
<tr class="memdesc:a532bc995c0509b41f92612a77e169a83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a new string and formats its contents using <code>printf()</code> style template in resources. <br /></td></tr>
<tr class="separator:a532bc995c0509b41f92612a77e169a83"><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="a409c94cb80a202d0bd628930514b64ba" name="a409c94cb80a202d0bd628930514b64ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a409c94cb80a202d0bd628930514b64ba">&#9670;&#160;</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">const _Elem *</td> <td class="paramname"><span class="paramname"><em>format</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>...</em></span>&#160;)</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="ab258ccf8da028fc5e8511336401213ba" name="ab258ccf8da028fc5e8511336401213ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab258ccf8da028fc5e8511336401213ba">&#9670;&#160;</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">HINSTANCE</td> <td class="paramname"><span class="paramname"><em>hInstance</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">UINT</td> <td class="paramname"><span class="paramname"><em>nFormatID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>...</em></span>&#160;)</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="a532bc995c0509b41f92612a77e169a83" name="a532bc995c0509b41f92612a77e169a83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a532bc995c0509b41f92612a77e169a83">&#9670;&#160;</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">HINSTANCE</td> <td class="paramname"><span class="paramname"><em>hInstance</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">WORD</td> <td class="paramname"><span class="paramname"><em>wLanguageID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">UINT</td> <td class="paramname"><span class="paramname"><em>nFormatID</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>...</em></span>&#160;)</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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

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" 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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1bstr.html">bstr</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#ab2a98042c3b88fda687e34d370756f11">attach</a>(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#a5563977cadc13e81808946174659d1d3">attach_duplicated</a>(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#a01b4deb6467c16d9d8e8e14fe6c057fa">bstr</a>(LPCOLESTR src)</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#aafb65f4d4ab54a13147912c2de8adc54">bstr</a>(LPCOLESTR src, UINT len)</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#abc2160190ea71c4f9239ea9575efa9d3">bstr</a>(const std::basic_string&lt; OLECHAR, _Traits, _Ax &gt; &amp;src)</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#ab1ac74d5f212fddc217d1a8190a01177">dplhandle</a>(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#ac7439fc22a5754f8aeb2b0e1afd25b9c">dplhandle</a>(const dplhandle&lt; handle_type, INVAL &gt; &amp;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="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac1aa19e060402006d8ff8404be6b07c3">dplhandle</a>(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#a1c6f4421d370e6029dfbf71315cdedc0">duplicate_internal</a>(handle_type h) const 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#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a>(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#ac52f342530bb97ce1ff255a7054547d5">handle</a>(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#ae5faed333075739a27c99372967e01a6">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#a6df58f6c131ab4288acb96d5b8f3012e">operator!=</a>(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#a4c4515d0d1071cab5c675e926aa2dc92">operator&lt;</a>(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#af9e9538d58b952799db4a1c68b0184b9">operator&lt;=</a>(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#a31cec3cdf4ee749b1aef4b4cd7652fb7">operator=</a>(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#abcccb97671b96da3623f700a93bb5c39">operator=</a>(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#a546f1f737bc3da0c9b19967d849776d3">operator=</a>(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#a6326bbc54ec3441e41f30bc1ec4d6a6c">winstd::handle&lt; BSTR, INVAL &gt;::operator=</a>(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#ab6021e9c11accef6b813948dc4601ddc">operator==</a>(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#ae7361f6159006e3f87cbe10ba2a76329">operator&gt;</a>(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#a20e325dde8a25d1e3a7efb50b431641b">operator&gt;=</a>(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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

392
classwinstd_1_1bstr.html Normal file
View File

@ -0,0 +1,392 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1bstr.html">bstr</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_c_o_m_8h_source.html">WinStd/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:a01b4deb6467c16d9d8e8e14fe6c057fa" id="r_a01b4deb6467c16d9d8e8e14fe6c057fa"><td class="memItemLeft" align="right" valign="top"><a id="a01b4deb6467c16d9d8e8e14fe6c057fa" name="a01b4deb6467c16d9d8e8e14fe6c057fa"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>bstr</b> (LPCOLESTR src)</td></tr>
<tr class="memdesc:a01b4deb6467c16d9d8e8e14fe6c057fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs BSTR from OLE string. <br /></td></tr>
<tr class="separator:a01b4deb6467c16d9d8e8e14fe6c057fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafb65f4d4ab54a13147912c2de8adc54" id="r_aafb65f4d4ab54a13147912c2de8adc54"><td class="memItemLeft" align="right" valign="top"><a id="aafb65f4d4ab54a13147912c2de8adc54" name="aafb65f4d4ab54a13147912c2de8adc54"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>bstr</b> (LPCOLESTR src, UINT len)</td></tr>
<tr class="memdesc:aafb65f4d4ab54a13147912c2de8adc54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs BSTR from OLE string with length. <br /></td></tr>
<tr class="separator:aafb65f4d4ab54a13147912c2de8adc54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc2160190ea71c4f9239ea9575efa9d3" id="r_abc2160190ea71c4f9239ea9575efa9d3"><td class="memTemplParams" colspan="2"><a id="abc2160190ea71c4f9239ea9575efa9d3" name="abc2160190ea71c4f9239ea9575efa9d3"></a>
template&lt;class _Traits , class _Ax &gt; </td></tr>
<tr class="memitem:abc2160190ea71c4f9239ea9575efa9d3"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>bstr</b> (const std::basic_string&lt; OLECHAR, _Traits, _Ax &gt; &amp;src)</td></tr>
<tr class="memdesc:abc2160190ea71c4f9239ea9575efa9d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs BSTR from std::basic_string. <br /></td></tr>
<tr class="separator:abc2160190ea71c4f9239ea9575efa9d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a317d3e0783e7d3de7cc6516964ea3f5e" id="r_a317d3e0783e7d3de7cc6516964ea3f5e"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a317d3e0783e7d3de7cc6516964ea3f5e">~bstr</a> ()</td></tr>
<tr class="memdesc:a317d3e0783e7d3de7cc6516964ea3f5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the string. <br /></td></tr>
<tr class="separator:a317d3e0783e7d3de7cc6516964ea3f5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6970921c6334a993f5f0fc1be5d54e3" id="r_aa6970921c6334a993f5f0fc1be5d54e3"><td class="memItemLeft" align="right" valign="top">UINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#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. <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:dynsection.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" id="r_ac95cbfb481c0d5e6c60d130f3c270b59"><td class="memItemLeft" align="right" valign="top">
&#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:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:ab1ac74d5f212fddc217d1a8190a01177 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. <br /></td></tr>
<tr class="separator:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h)</td></tr>
<tr class="memdesc:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
<tr class="separator:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <br /></td></tr>
<tr class="separator:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <br /></td></tr>
<tr class="separator:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <br /></td></tr>
<tr class="separator:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle" id="r_a48e66c8979560019e339867de944a265"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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. <br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h)</td></tr>
<tr class="memdesc:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle"><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 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:dynsection.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" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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:a87edcb348af7d69ad86709e32b519870" id="r_a87edcb348af7d69ad86709e32b519870"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a87edcb348af7d69ad86709e32b519870">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:a87edcb348af7d69ad86709e32b519870"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the string. <br /></td></tr>
<tr class="separator:a87edcb348af7d69ad86709e32b519870"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c6f4421d370e6029dfbf71315cdedc0" id="r_a1c6f4421d370e6029dfbf71315cdedc0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1c6f4421d370e6029dfbf71315cdedc0">duplicate_internal</a> (<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h) const override</td></tr>
<tr class="memdesc:a1c6f4421d370e6029dfbf71315cdedc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the string. <br /></td></tr>
<tr class="separator:a1c6f4421d370e6029dfbf71315cdedc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; BSTR, NULL &gt;</a></td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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; BSTR, INVAL &gt;</a></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:dynsection.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:ae5faed333075739a27c99372967e01a6 inherit pub_types_classwinstd_1_1handle" id="r_ae5faed333075739a27c99372967e01a6"><td class="memItemLeft" align="right" valign="top">
typedef BSTR&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:ae5faed333075739a27c99372967e01a6 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:ae5faed333075739a27c99372967e01a6 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:dynsection.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" id="r_gacf43e306968474166474090690857e1c"><td class="memItemLeft" align="right" valign="top">
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:dynsection.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" id="r_aabde3f16fd98b06b3b0282ef7806eb59"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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;&#160;</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"><span class="paramname"><em></em></span></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="a1c6f4421d370e6029dfbf71315cdedc0" name="a1c6f4421d370e6029dfbf71315cdedc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c6f4421d370e6029dfbf71315cdedc0">&#9670;&#160;</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#ae5faed333075739a27c99372967e01a6">handle_type</a> winstd::bstr::duplicate_internal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a></td> <td class="paramname"><span class="paramname"><em>h</em></span></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> </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#a0d7900f44fdc921b41e07517abdc1ec6">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;&#160;</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"><span class="paramname"><em></em></span></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;&#160;</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"><span class="paramname"><em></em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</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,138 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1cert__chain__context.html">cert_chain_context</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#ab2a98042c3b88fda687e34d370756f11">attach</a>(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#a5563977cadc13e81808946174659d1d3">attach_duplicated</a>(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_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="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; 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#ab1ac74d5f212fddc217d1a8190a01177">dplhandle</a>(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#ac7439fc22a5754f8aeb2b0e1afd25b9c">dplhandle</a>(const dplhandle&lt; handle_type, INVAL &gt; &amp;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_1dplhandle.html#ac1aa19e060402006d8ff8404be6b07c3">dplhandle</a>(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_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="even"><td class="entry"><a class="el" href="classwinstd_1_1cert__chain__context.html#afbb8bf6ef0627268fd327059f51b121a">duplicate_internal</a>(handle_type h) const 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="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; 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_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="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; 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#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a>(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_1handle.html#ac52f342530bb97ce1ff255a7054547d5">handle</a>(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#ae5faed333075739a27c99372967e01a6">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="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; PCCERT_CHAIN_CONTEXT, 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; PCCERT_CHAIN_CONTEXT, 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; 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#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="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a6df58f6c131ab4288acb96d5b8f3012e">operator!=</a>(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#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="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_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#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="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a4c4515d0d1071cab5c675e926aa2dc92">operator&lt;</a>(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#af9e9538d58b952799db4a1c68b0184b9">operator&lt;=</a>(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_1dplhandle.html#a31cec3cdf4ee749b1aef4b4cd7652fb7">operator=</a>(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#abcccb97671b96da3623f700a93bb5c39">operator=</a>(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#a546f1f737bc3da0c9b19967d849776d3">operator=</a>(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_1handle.html#a6326bbc54ec3441e41f30bc1ec4d6a6c">winstd::handle&lt; PCCERT_CHAIN_CONTEXT, INVAL &gt;::operator=</a>(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#ab6021e9c11accef6b813948dc4601ddc">operator==</a>(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#ae7361f6159006e3f87cbe10ba2a76329">operator&gt;</a>(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#a20e325dde8a25d1e3a7efb50b431641b">operator&gt;=</a>(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_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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,349 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1cert__chain__context.html">cert_chain_context</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">WinStd/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" id="r_a9f8b8604ea5766ffa59726b46e210eb3"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9f8b8604ea5766ffa59726b46e210eb3">~cert_chain_context</a> ()</td></tr>
<tr class="memdesc:a9f8b8604ea5766ffa59726b46e210eb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the certificate chain context. <br /></td></tr>
<tr class="separator:a9f8b8604ea5766ffa59726b46e210eb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:dynsection.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" id="r_ac95cbfb481c0d5e6c60d130f3c270b59"><td class="memItemLeft" align="right" valign="top">
&#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:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:ab1ac74d5f212fddc217d1a8190a01177 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. <br /></td></tr>
<tr class="separator:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h)</td></tr>
<tr class="memdesc:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
<tr class="separator:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <br /></td></tr>
<tr class="separator:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <br /></td></tr>
<tr class="separator:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <br /></td></tr>
<tr class="separator:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle" id="r_a48e66c8979560019e339867de944a265"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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. <br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h)</td></tr>
<tr class="memdesc:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle"><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 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:dynsection.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" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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:ae15044b1a7be10d96643d3921e149ee6" id="r_ae15044b1a7be10d96643d3921e149ee6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#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. <br /></td></tr>
<tr class="separator:ae15044b1a7be10d96643d3921e149ee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbb8bf6ef0627268fd327059f51b121a" id="r_afbb8bf6ef0627268fd327059f51b121a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#afbb8bf6ef0627268fd327059f51b121a">duplicate_internal</a> (<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h) const override</td></tr>
<tr class="memdesc:afbb8bf6ef0627268fd327059f51b121a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the certificate chain context. <br /></td></tr>
<tr class="separator:afbb8bf6ef0627268fd327059f51b121a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Protected 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="inherit_header pro_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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; PCCERT_CHAIN_CONTEXT, INVAL &gt;</a></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:dynsection.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:ae5faed333075739a27c99372967e01a6 inherit pub_types_classwinstd_1_1handle" id="r_ae5faed333075739a27c99372967e01a6"><td class="memItemLeft" align="right" valign="top">
typedef PCCERT_CHAIN_CONTEXT&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:ae5faed333075739a27c99372967e01a6 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:ae5faed333075739a27c99372967e01a6 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:dynsection.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" id="r_gacf43e306968474166474090690857e1c"><td class="memItemLeft" align="right" valign="top">
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:dynsection.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" id="r_aabde3f16fd98b06b3b0282ef7806eb59"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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>
<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><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a9f8b8604ea5766ffa59726b46e210eb3" name="a9f8b8604ea5766ffa59726b46e210eb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f8b8604ea5766ffa59726b46e210eb3">&#9670;&#160;</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"><span class="paramname"><em></em></span></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="afbb8bf6ef0627268fd327059f51b121a" name="afbb8bf6ef0627268fd327059f51b121a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbb8bf6ef0627268fd327059f51b121a">&#9670;&#160;</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#ae5faed333075739a27c99372967e01a6">handle_type</a> winstd::cert_chain_context::duplicate_internal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a></td> <td class="paramname"><span class="paramname"><em>h</em></span></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> </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://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-certduplicatecertificatechain">CertDuplicateCertificateChain function</a> </dd></dl>
<p>Implements <a class="el" href="classwinstd_1_1dplhandle.html#a0d7900f44fdc921b41e07517abdc1ec6">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;&#160;</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"><span class="paramname"><em></em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,144 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1cert__context.html">cert_context</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#ab2a98042c3b88fda687e34d370756f11">attach</a>(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#a5563977cadc13e81808946174659d1d3">attach_duplicated</a>(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_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="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; 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#ab1ac74d5f212fddc217d1a8190a01177">dplhandle</a>(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="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac7439fc22a5754f8aeb2b0e1afd25b9c">dplhandle</a>(const dplhandle&lt; handle_type, INVAL &gt; &amp;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_1dplhandle.html#ac1aa19e060402006d8ff8404be6b07c3">dplhandle</a>(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="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; 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#ae39c2de0d8e9d69e524404db812e7ba7">duplicate_internal</a>(handle_type h) const 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="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; 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#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="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; 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#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a>(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_1handle.html#ac52f342530bb97ce1ff255a7054547d5">handle</a>(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="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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="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; PCCERT_CONTEXT, 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; PCCERT_CONTEXT, 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; 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#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="odd"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#adfad0db8dd947143a8406f2f988d04ad">operator!=</a>(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#a6df58f6c131ab4288acb96d5b8f3012e">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator!=</a>(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_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="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_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_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#a92881d07b0b41b81c4119ed8d8868c3b">operator&lt;</a>(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#a4c4515d0d1071cab5c675e926aa2dc92">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator&lt;</a>(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_1cert__context.html#a042240321d22636cddc379b198c7fd84">operator&lt;=</a>(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#af9e9538d58b952799db4a1c68b0184b9">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator&lt;=</a>(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_1dplhandle.html#a31cec3cdf4ee749b1aef4b4cd7652fb7">operator=</a>(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="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#abcccb97671b96da3623f700a93bb5c39">operator=</a>(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="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a546f1f737bc3da0c9b19967d849776d3">operator=</a>(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="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a6326bbc54ec3441e41f30bc1ec4d6a6c">winstd::handle&lt; PCCERT_CONTEXT, INVAL &gt;::operator=</a>(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="even"><td class="entry"><a class="el" href="classwinstd_1_1cert__context.html#a2f3ad38a637fce69d8c2a5ee3460a296">operator==</a>(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#ab6021e9c11accef6b813948dc4601ddc">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator==</a>(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_1cert__context.html#a7224d1fe6c57bfe903fa8a6df32d2466">operator&gt;</a>(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#ae7361f6159006e3f87cbe10ba2a76329">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator&gt;</a>(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_1cert__context.html#a6c9f09455ef40e581accc6499222040c">operator&gt;=</a>(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#a20e325dde8a25d1e3a7efb50b431641b">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;::operator&gt;=</a>(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_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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,595 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1cert__context.html">cert_context</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">WinStd/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" id="r_affa4b97554e6676d392301b5928130fd"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#affa4b97554e6676d392301b5928130fd">~cert_context</a> ()</td></tr>
<tr class="memdesc:affa4b97554e6676d392301b5928130fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the certificate context. <br /></td></tr>
<tr class="separator:affa4b97554e6676d392301b5928130fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f3ad38a637fce69d8c2a5ee3460a296" id="r_a2f3ad38a637fce69d8c2a5ee3460a296"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2f3ad38a637fce69d8c2a5ee3460a296">operator==</a> (const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:a2f3ad38a637fce69d8c2a5ee3460a296"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate equal to? <br /></td></tr>
<tr class="separator:a2f3ad38a637fce69d8c2a5ee3460a296"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfad0db8dd947143a8406f2f988d04ad" id="r_adfad0db8dd947143a8406f2f988d04ad"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#adfad0db8dd947143a8406f2f988d04ad">operator!=</a> (const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:adfad0db8dd947143a8406f2f988d04ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate not equal to? <br /></td></tr>
<tr class="separator:adfad0db8dd947143a8406f2f988d04ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92881d07b0b41b81c4119ed8d8868c3b" id="r_a92881d07b0b41b81c4119ed8d8868c3b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a92881d07b0b41b81c4119ed8d8868c3b">operator&lt;</a> (const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:a92881d07b0b41b81c4119ed8d8868c3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate less than? <br /></td></tr>
<tr class="separator:a92881d07b0b41b81c4119ed8d8868c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7224d1fe6c57bfe903fa8a6df32d2466" id="r_a7224d1fe6c57bfe903fa8a6df32d2466"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7224d1fe6c57bfe903fa8a6df32d2466">operator&gt;</a> (const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:a7224d1fe6c57bfe903fa8a6df32d2466"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate greater than? <br /></td></tr>
<tr class="separator:a7224d1fe6c57bfe903fa8a6df32d2466"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a042240321d22636cddc379b198c7fd84" id="r_a042240321d22636cddc379b198c7fd84"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a042240321d22636cddc379b198c7fd84">operator&lt;=</a> (const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:a042240321d22636cddc379b198c7fd84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate less than or equal? <br /></td></tr>
<tr class="separator:a042240321d22636cddc379b198c7fd84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c9f09455ef40e581accc6499222040c" id="r_a6c9f09455ef40e581accc6499222040c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6c9f09455ef40e581accc6499222040c">operator&gt;=</a> (const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;other) const noexcept</td></tr>
<tr class="memdesc:a6c9f09455ef40e581accc6499222040c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is certificate greater than or equal? <br /></td></tr>
<tr class="separator:a6c9f09455ef40e581accc6499222040c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:dynsection.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" id="r_ac95cbfb481c0d5e6c60d130f3c270b59"><td class="memItemLeft" align="right" valign="top">
&#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:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:ab1ac74d5f212fddc217d1a8190a01177 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. <br /></td></tr>
<tr class="separator:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h)</td></tr>
<tr class="memdesc:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
<tr class="separator:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <br /></td></tr>
<tr class="separator:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <br /></td></tr>
<tr class="separator:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <br /></td></tr>
<tr class="separator:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle" id="r_a48e66c8979560019e339867de944a265"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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. <br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h)</td></tr>
<tr class="memdesc:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle"><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 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:dynsection.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" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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:a1615ec6693eb68764543456ad418a970" id="r_a1615ec6693eb68764543456ad418a970"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1615ec6693eb68764543456ad418a970">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:a1615ec6693eb68764543456ad418a970"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the certificate context. <br /></td></tr>
<tr class="separator:a1615ec6693eb68764543456ad418a970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae39c2de0d8e9d69e524404db812e7ba7" id="r_ae39c2de0d8e9d69e524404db812e7ba7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae39c2de0d8e9d69e524404db812e7ba7">duplicate_internal</a> (<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h) const override</td></tr>
<tr class="memdesc:ae39c2de0d8e9d69e524404db812e7ba7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the certificate context. <br /></td></tr>
<tr class="separator:ae39c2de0d8e9d69e524404db812e7ba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; PCCERT_CONTEXT, NULL &gt;</a></td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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; PCCERT_CONTEXT, INVAL &gt;</a></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:dynsection.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:ae5faed333075739a27c99372967e01a6 inherit pub_types_classwinstd_1_1handle" id="r_ae5faed333075739a27c99372967e01a6"><td class="memItemLeft" align="right" valign="top">
typedef PCCERT_CONTEXT&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:ae5faed333075739a27c99372967e01a6 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:ae5faed333075739a27c99372967e01a6 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:dynsection.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" id="r_gacf43e306968474166474090690857e1c"><td class="memItemLeft" align="right" valign="top">
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:dynsection.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" id="r_aabde3f16fd98b06b3b0282ef7806eb59"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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>
<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><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="affa4b97554e6676d392301b5928130fd" name="affa4b97554e6676d392301b5928130fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#affa4b97554e6676d392301b5928130fd">&#9670;&#160;</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"><span class="paramname"><em></em></span></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="ae39c2de0d8e9d69e524404db812e7ba7" name="ae39c2de0d8e9d69e524404db812e7ba7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae39c2de0d8e9d69e524404db812e7ba7">&#9670;&#160;</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#ae5faed333075739a27c99372967e01a6">handle_type</a> winstd::cert_context::duplicate_internal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a></td> <td class="paramname"><span class="paramname"><em>h</em></span></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> </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#a0d7900f44fdc921b41e07517abdc1ec6">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;&#160;</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"><span class="paramname"><em></em></span></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="adfad0db8dd947143a8406f2f988d04ad" name="adfad0db8dd947143a8406f2f988d04ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfad0db8dd947143a8406f2f988d04ad">&#9670;&#160;</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">const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;</td> <td class="paramname"><span class="paramname"><em>other</em></span></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="a92881d07b0b41b81c4119ed8d8868c3b" name="a92881d07b0b41b81c4119ed8d8868c3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a92881d07b0b41b81c4119ed8d8868c3b">&#9670;&#160;</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">const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;</td> <td class="paramname"><span class="paramname"><em>other</em></span></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="a042240321d22636cddc379b198c7fd84" name="a042240321d22636cddc379b198c7fd84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a042240321d22636cddc379b198c7fd84">&#9670;&#160;</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">const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;</td> <td class="paramname"><span class="paramname"><em>other</em></span></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="a2f3ad38a637fce69d8c2a5ee3460a296" name="a2f3ad38a637fce69d8c2a5ee3460a296"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f3ad38a637fce69d8c2a5ee3460a296">&#9670;&#160;</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">const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;</td> <td class="paramname"><span class="paramname"><em>other</em></span></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="a7224d1fe6c57bfe903fa8a6df32d2466" name="a7224d1fe6c57bfe903fa8a6df32d2466"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7224d1fe6c57bfe903fa8a6df32d2466">&#9670;&#160;</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">const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;</td> <td class="paramname"><span class="paramname"><em>other</em></span></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="a6c9f09455ef40e581accc6499222040c" name="a6c9f09455ef40e581accc6499222040c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c9f09455ef40e581accc6499222040c">&#9670;&#160;</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">const <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> &amp;</td> <td class="paramname"><span class="paramname"><em>other</em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,129 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1cert__store.html">cert_store</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#ab2a98042c3b88fda687e34d370756f11">attach</a>(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#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#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a>(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#ac52f342530bb97ce1ff255a7054547d5">handle</a>(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#ae5faed333075739a27c99372967e01a6">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#a6df58f6c131ab4288acb96d5b8f3012e">operator!=</a>(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#a4c4515d0d1071cab5c675e926aa2dc92">operator&lt;</a>(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#af9e9538d58b952799db4a1c68b0184b9">operator&lt;=</a>(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#a591e006af92e4d088fb9c1ed974c0923">operator=</a>(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#a6326bbc54ec3441e41f30bc1ec4d6a6c">operator=</a>(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#ab6021e9c11accef6b813948dc4601ddc">operator==</a>(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#ae7361f6159006e3f87cbe10ba2a76329">operator&gt;</a>(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#a20e325dde8a25d1e3a7efb50b431641b">operator&gt;=</a>(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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,280 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1cert__store.html">cert_store</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">WinStd/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" id="r_a80783d444ae3555aea01f959c9c01405"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a80783d444ae3555aea01f959c9c01405">~cert_store</a> ()</td></tr>
<tr class="memdesc:a80783d444ae3555aea01f959c9c01405"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the certificate store. <br /></td></tr>
<tr class="separator:a80783d444ae3555aea01f959c9c01405"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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:ab709fe692a4117173eae26e741da2069" id="r_ab709fe692a4117173eae26e741da2069"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab709fe692a4117173eae26e741da2069">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:ab709fe692a4117173eae26e741da2069"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the certificate store. <br /></td></tr>
<tr class="separator:ab709fe692a4117173eae26e741da2069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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; HCERTSTORE, NULL &gt;</a></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:dynsection.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:ae5faed333075739a27c99372967e01a6 inherit pub_types_classwinstd_1_1handle" id="r_ae5faed333075739a27c99372967e01a6"><td class="memItemLeft" align="right" valign="top">
typedef HCERTSTORE&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:ae5faed333075739a27c99372967e01a6 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:ae5faed333075739a27c99372967e01a6 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:dynsection.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" id="r_gacf43e306968474166474090690857e1c"><td class="memItemLeft" align="right" valign="top">
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:dynsection.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" id="r_aabde3f16fd98b06b3b0282ef7806eb59"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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>
<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>
<dd>
<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa376560.aspx">CertOpenSystemStore function</a> </dd></dl>
</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;&#160;</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"><span class="paramname"><em></em></span></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="ab709fe692a4117173eae26e741da2069" name="ab709fe692a4117173eae26e741da2069"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab709fe692a4117173eae26e741da2069">&#9670;&#160;</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"><span class="paramname"><em></em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

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" 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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1clipboard__opener.html">clipboard_opener</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">winstd::clipboard_opener Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classwinstd_1_1clipboard__opener.html">winstd::clipboard_opener</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1clipboard__opener.html#a5614d7336929b18d8c3966683565eded">clipboard_opener</a>(HWND hWndNewOwner=NULL)</td><td class="entry"><a class="el" href="classwinstd_1_1clipboard__opener.html">winstd::clipboard_opener</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classwinstd_1_1clipboard__opener.html#a13b2c0a03314b40ec97b6b53318dfa38">~clipboard_opener</a>()</td><td class="entry"><a class="el" href="classwinstd_1_1clipboard__opener.html">winstd::clipboard_opener</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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,182 @@
<!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.12.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>WinStd: winstd::clipboard_opener 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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1clipboard__opener.html">clipboard_opener</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classwinstd_1_1clipboard__opener-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">winstd::clipboard_opener 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>Clipboard management.
<a href="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_win_8h_source.html">WinStd/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:a5614d7336929b18d8c3966683565eded" id="r_a5614d7336929b18d8c3966683565eded"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5614d7336929b18d8c3966683565eded">clipboard_opener</a> (HWND hWndNewOwner=NULL)</td></tr>
<tr class="memdesc:a5614d7336929b18d8c3966683565eded"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens the clipboard for examination and prevents other applications from modifying the clipboard content. <br /></td></tr>
<tr class="separator:a5614d7336929b18d8c3966683565eded"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13b2c0a03314b40ec97b6b53318dfa38" id="r_a13b2c0a03314b40ec97b6b53318dfa38"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a13b2c0a03314b40ec97b6b53318dfa38">~clipboard_opener</a> ()</td></tr>
<tr class="memdesc:a13b2c0a03314b40ec97b6b53318dfa38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes the clipboard. <br /></td></tr>
<tr class="separator:a13b2c0a03314b40ec97b6b53318dfa38"><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>Clipboard management. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a5614d7336929b18d8c3966683565eded" name="a5614d7336929b18d8c3966683565eded"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5614d7336929b18d8c3966683565eded">&#9670;&#160;</a></span>clipboard_opener()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">winstd::clipboard_opener::clipboard_opener </td>
<td>(</td>
<td class="paramtype">HWND</td> <td class="paramname"><span class="paramname"><em>hWndNewOwner</em></span><span class="paramdefsep"> = </span><span class="paramdefval">NULL</span></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>Opens the clipboard for examination and prevents other applications from modifying the clipboard content. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-openclipboard">OpenClipboard function</a> </dd></dl>
</div>
</div>
<a id="a13b2c0a03314b40ec97b6b53318dfa38" name="a13b2c0a03314b40ec97b6b53318dfa38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a13b2c0a03314b40ec97b6b53318dfa38">&#9670;&#160;</a></span>~clipboard_opener()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual winstd::clipboard_opener::~clipboard_opener </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></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 clipboard. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-closeclipboard">CloseClipboard 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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

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" 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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1com__initializer.html">com_initializer</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#af259d10710f44c2a649f506d17e547b5">com_initializer</a>(LPVOID pvReserved)</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#a18fd45fa07a6168c8176eb4e95289119">com_initializer</a>(LPVOID pvReserved, DWORD dwCoInit)</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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,217 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1com__initializer.html">com_initializer</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_c_o_m_8h_source.html">WinStd/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:af259d10710f44c2a649f506d17e547b5" id="r_af259d10710f44c2a649f506d17e547b5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af259d10710f44c2a649f506d17e547b5">com_initializer</a> (LPVOID pvReserved)</td></tr>
<tr class="memdesc:af259d10710f44c2a649f506d17e547b5"><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). <br /></td></tr>
<tr class="separator:af259d10710f44c2a649f506d17e547b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18fd45fa07a6168c8176eb4e95289119" id="r_a18fd45fa07a6168c8176eb4e95289119"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a18fd45fa07a6168c8176eb4e95289119">com_initializer</a> (LPVOID pvReserved, DWORD dwCoInit)</td></tr>
<tr class="memdesc:a18fd45fa07a6168c8176eb4e95289119"><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. <br /></td></tr>
<tr class="separator:a18fd45fa07a6168c8176eb4e95289119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad53a7697dfaf83d4832f8a57a4cf00f6" id="r_ad53a7697dfaf83d4832f8a57a4cf00f6"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad53a7697dfaf83d4832f8a57a4cf00f6">~com_initializer</a> ()</td></tr>
<tr class="memdesc:ad53a7697dfaf83d4832f8a57a4cf00f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uninitializes COM. <br /></td></tr>
<tr class="separator:ad53a7697dfaf83d4832f8a57a4cf00f6"><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="af259d10710f44c2a649f506d17e547b5" name="af259d10710f44c2a649f506d17e547b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af259d10710f44c2a649f506d17e547b5">&#9670;&#160;</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">LPVOID</td> <td class="paramname"><span class="paramname"><em>pvReserved</em></span></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 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="a18fd45fa07a6168c8176eb4e95289119" name="a18fd45fa07a6168c8176eb4e95289119"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18fd45fa07a6168c8176eb4e95289119">&#9670;&#160;</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">LPVOID</td> <td class="paramname"><span class="paramname"><em>pvReserved</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DWORD</td> <td class="paramname"><span class="paramname"><em>dwCoInit</em></span>&#160;)</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 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;&#160;</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"><span class="paramname"><em></em></span></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>
<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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,144 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1com__obj.html">com_obj</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#ab2a98042c3b88fda687e34d370756f11">attach</a>(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#a5563977cadc13e81808946174659d1d3">attach_duplicated</a>(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#a1983f51468452e51890a3a561d3d2627">com_obj</a>(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext)</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#aa2c8f855aaad8e35c1da6cfd9f32e01e">com_obj</a>(_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#aace64e8520e9caf7c258ae207a5ef874">com_obj</a>(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_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="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; 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#ab1ac74d5f212fddc217d1a8190a01177">dplhandle</a>(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#ac7439fc22a5754f8aeb2b0e1afd25b9c">dplhandle</a>(const dplhandle&lt; handle_type, INVAL &gt; &amp;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="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac1aa19e060402006d8ff8404be6b07c3">dplhandle</a>(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_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="odd"><td class="entry"><a class="el" href="classwinstd_1_1com__obj.html#a4b1b1a6563fa1f9956117ea85e54c852">duplicate_internal</a>(T *h) const 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></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#a0d7900f44fdc921b41e07517abdc1ec6">winstd::dplhandle&lt; T *, NULL &gt;::duplicate_internal</a>(handle_type h) const=0</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">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_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#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a>(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#ac52f342530bb97ce1ff255a7054547d5">handle</a>(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#ae5faed333075739a27c99372967e01a6">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#a6df58f6c131ab4288acb96d5b8f3012e">operator!=</a>(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#a4c4515d0d1071cab5c675e926aa2dc92">operator&lt;</a>(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#af9e9538d58b952799db4a1c68b0184b9">operator&lt;=</a>(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#a31cec3cdf4ee749b1aef4b4cd7652fb7">operator=</a>(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#abcccb97671b96da3623f700a93bb5c39">operator=</a>(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#a546f1f737bc3da0c9b19967d849776d3">operator=</a>(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#a6326bbc54ec3441e41f30bc1ec4d6a6c">winstd::handle::operator=</a>(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#ab6021e9c11accef6b813948dc4601ddc">operator==</a>(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#ae7361f6159006e3f87cbe10ba2a76329">operator&gt;</a>(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#a20e325dde8a25d1e3a7efb50b431641b">operator&gt;=</a>(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#a1ce5cf9682ee1b876cb9eba372e2b1a1">query_interface</a>(_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#a8e898e0977c00b196e1986a02709c185">query_interface</a>(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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,514 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1com__obj.html">com_obj</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_c_o_m_8h_source.html">WinStd/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" title="Base abstract template class to support generic object handle keeping." 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:a1983f51468452e51890a3a561d3d2627" id="r_a1983f51468452e51890a3a561d3d2627"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1983f51468452e51890a3a561d3d2627">com_obj</a> (REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext)</td></tr>
<tr class="memdesc:a1983f51468452e51890a3a561d3d2627"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new instance of a class. <br /></td></tr>
<tr class="separator:a1983f51468452e51890a3a561d3d2627"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2c8f855aaad8e35c1da6cfd9f32e01e" id="r_aa2c8f855aaad8e35c1da6cfd9f32e01e"><td class="memTemplParams" colspan="2">template&lt;class _Other &gt; </td></tr>
<tr class="memitem:aa2c8f855aaad8e35c1da6cfd9f32e01e"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aa2c8f855aaad8e35c1da6cfd9f32e01e">com_obj</a> (_Other *other)</td></tr>
<tr class="memdesc:aa2c8f855aaad8e35c1da6cfd9f32e01e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries the object for another interface and creates new class with it. <br /></td></tr>
<tr class="separator:aa2c8f855aaad8e35c1da6cfd9f32e01e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aace64e8520e9caf7c258ae207a5ef874" id="r_aace64e8520e9caf7c258ae207a5ef874"><td class="memTemplParams" colspan="2">template&lt;class _Other &gt; </td></tr>
<tr class="memitem:aace64e8520e9caf7c258ae207a5ef874"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#aace64e8520e9caf7c258ae207a5ef874">com_obj</a> (<a class="el" href="classwinstd_1_1com__obj.html">com_obj</a>&lt; _Other &gt; &amp;other)</td></tr>
<tr class="memdesc:aace64e8520e9caf7c258ae207a5ef874"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries the object for another interface and creates new class with it. <br /></td></tr>
<tr class="separator:aace64e8520e9caf7c258ae207a5ef874"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91383e6e26266b0d3803c8594b8c5149" id="r_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:a1ce5cf9682ee1b876cb9eba372e2b1a1" id="r_a1ce5cf9682ee1b876cb9eba372e2b1a1"><td class="memTemplParams" colspan="2">template&lt;class _Other &gt; </td></tr>
<tr class="memitem:a1ce5cf9682ee1b876cb9eba372e2b1a1"><td class="memTemplItemLeft" align="right" valign="top">HRESULT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a1ce5cf9682ee1b876cb9eba372e2b1a1">query_interface</a> (_Other **h) const</td></tr>
<tr class="memdesc:a1ce5cf9682ee1b876cb9eba372e2b1a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries the object for another interface. <br /></td></tr>
<tr class="separator:a1ce5cf9682ee1b876cb9eba372e2b1a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e898e0977c00b196e1986a02709c185" id="r_a8e898e0977c00b196e1986a02709c185"><td class="memTemplParams" colspan="2">template&lt;class _Other &gt; </td></tr>
<tr class="memitem:a8e898e0977c00b196e1986a02709c185"><td class="memTemplItemLeft" align="right" valign="top">HRESULT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="#a8e898e0977c00b196e1986a02709c185">query_interface</a> (<a class="el" href="classwinstd_1_1com__obj.html">com_obj</a>&lt; _Other &gt; &amp;h) const</td></tr>
<tr class="memdesc:a8e898e0977c00b196e1986a02709c185"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries the object for another interface. <br /></td></tr>
<tr class="separator:a8e898e0977c00b196e1986a02709c185"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:dynsection.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" id="r_ac95cbfb481c0d5e6c60d130f3c270b59"><td class="memItemLeft" align="right" valign="top">
&#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:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:ab1ac74d5f212fddc217d1a8190a01177 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. <br /></td></tr>
<tr class="separator:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h)</td></tr>
<tr class="memdesc:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
<tr class="separator:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <br /></td></tr>
<tr class="separator:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <br /></td></tr>
<tr class="separator:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <br /></td></tr>
<tr class="separator:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle" id="r_a48e66c8979560019e339867de944a265"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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. <br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h)</td></tr>
<tr class="memdesc:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle"><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 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:dynsection.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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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:a028b86f770253f74a62ca3eaebb14de5" id="r_a028b86f770253f74a62ca3eaebb14de5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#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. <br /></td></tr>
<tr class="separator:a028b86f770253f74a62ca3eaebb14de5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b1b1a6563fa1f9956117ea85e54c852" id="r_a4b1b1a6563fa1f9956117ea85e54c852"><td class="memItemLeft" align="right" valign="top">T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4b1b1a6563fa1f9956117ea85e54c852">duplicate_internal</a> (T *h) const override</td></tr>
<tr class="memdesc:a4b1b1a6563fa1f9956117ea85e54c852"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object by incrementing the reference counter. <br /></td></tr>
<tr class="separator:a4b1b1a6563fa1f9956117ea85e54c852"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; T *, NULL &gt;</a></td></tr>
<tr class="memitem:a0d7900f44fdc921b41e07517abdc1ec6 inherit pro_methods_classwinstd_1_1dplhandle" id="r_a0d7900f44fdc921b41e07517abdc1ec6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) const=0</td></tr>
<tr class="memdesc:a0d7900f44fdc921b41e07517abdc1ec6 inherit pro_methods_classwinstd_1_1dplhandle"><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 inherit pro_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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>
</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:dynsection.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:ae5faed333075739a27c99372967e01a6 inherit pub_types_classwinstd_1_1handle" id="r_ae5faed333075739a27c99372967e01a6"><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:ae5faed333075739a27c99372967e01a6 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:ae5faed333075739a27c99372967e01a6 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:dynsection.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:dynsection.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#ae5faed333075739a27c99372967e01a6">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>
<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><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a1983f51468452e51890a3a561d3d2627" name="a1983f51468452e51890a3a561d3d2627"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1983f51468452e51890a3a561d3d2627">&#9670;&#160;</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">REFCLSID</td> <td class="paramname"><span class="paramname"><em>rclsid</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">LPUNKNOWN</td> <td class="paramname"><span class="paramname"><em>pUnkOuter</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DWORD</td> <td class="paramname"><span class="paramname"><em>dwClsContext</em></span>&#160;)</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 instance of a class. </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="aa2c8f855aaad8e35c1da6cfd9f32e01e" name="aa2c8f855aaad8e35c1da6cfd9f32e01e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2c8f855aaad8e35c1da6cfd9f32e01e">&#9670;&#160;</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">_Other *</td> <td class="paramname"><span class="paramname"><em>other</em></span></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="aace64e8520e9caf7c258ae207a5ef874" name="aace64e8520e9caf7c258ae207a5ef874"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aace64e8520e9caf7c258ae207a5ef874">&#9670;&#160;</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"><a class="el" href="classwinstd_1_1com__obj.html">com_obj</a>&lt; _Other &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>other</em></span></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="a4b1b1a6563fa1f9956117ea85e54c852" name="a4b1b1a6563fa1f9956117ea85e54c852"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b1b1a6563fa1f9956117ea85e54c852">&#9670;&#160;</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">T * <a class="el" href="classwinstd_1_1com__obj.html">winstd::com_obj</a>&lt; T &gt;::duplicate_internal </td>
<td>(</td>
<td class="paramtype">T *</td> <td class="paramname"><span class="paramname"><em>h</em></span></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> </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>
</div>
</div>
<a id="a028b86f770253f74a62ca3eaebb14de5" name="a028b86f770253f74a62ca3eaebb14de5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a028b86f770253f74a62ca3eaebb14de5">&#9670;&#160;</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"><span class="paramname"><em></em></span></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="a1ce5cf9682ee1b876cb9eba372e2b1a1" name="a1ce5cf9682ee1b876cb9eba372e2b1a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ce5cf9682ee1b876cb9eba372e2b1a1">&#9670;&#160;</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">_Other **</td> <td class="paramname"><span class="paramname"><em>h</em></span></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="a8e898e0977c00b196e1986a02709c185" name="a8e898e0977c00b196e1986a02709c185"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e898e0977c00b196e1986a02709c185">&#9670;&#160;</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"><a class="el" href="classwinstd_1_1com__obj.html">com_obj</a>&lt; _Other &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>h</em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</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,112 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1com__runtime__error.html">com_runtime_error</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#a75030cbe7acc6532140c73caf4b15ed8">com_runtime_error</a>(error_type num, 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#aa1b65214e16b18bf8b9b191abff254b7">com_runtime_error</a>(error_type num, 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#ac251f4b79b67a800dcd108fedb58d5b5">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#a4cfc6c7f3b1d5fed5a3d9e0c5aac3d19">num_runtime_error</a>(error_type num, 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#a4c0d5efd086891093156fede0dd43cd0">num_runtime_error</a>(error_type num, 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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,236 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1com__runtime__error.html">com_runtime_error</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_c_o_m_8h_source.html">WinStd/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:a75030cbe7acc6532140c73caf4b15ed8" id="r_a75030cbe7acc6532140c73caf4b15ed8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a75030cbe7acc6532140c73caf4b15ed8">com_runtime_error</a> (<a class="el" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">error_type</a> num, const std::string &amp;msg)</td></tr>
<tr class="memdesc:a75030cbe7acc6532140c73caf4b15ed8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <br /></td></tr>
<tr class="separator:a75030cbe7acc6532140c73caf4b15ed8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1b65214e16b18bf8b9b191abff254b7" id="r_aa1b65214e16b18bf8b9b191abff254b7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa1b65214e16b18bf8b9b191abff254b7">com_runtime_error</a> (<a class="el" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">error_type</a> num, const char *msg=nullptr)</td></tr>
<tr class="memdesc:aa1b65214e16b18bf8b9b191abff254b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <br /></td></tr>
<tr class="separator:aa1b65214e16b18bf8b9b191abff254b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1num__runtime__error"><td colspan="2" onclick="javascript:dynsection.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:a4cfc6c7f3b1d5fed5a3d9e0c5aac3d19 inherit pub_methods_classwinstd_1_1num__runtime__error" id="r_a4cfc6c7f3b1d5fed5a3d9e0c5aac3d19"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1num__runtime__error.html#a4cfc6c7f3b1d5fed5a3d9e0c5aac3d19">num_runtime_error</a> (<a class="el" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">error_type</a> num, const std::string &amp;msg)</td></tr>
<tr class="memdesc:a4cfc6c7f3b1d5fed5a3d9e0c5aac3d19 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <br /></td></tr>
<tr class="separator:a4cfc6c7f3b1d5fed5a3d9e0c5aac3d19 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c0d5efd086891093156fede0dd43cd0 inherit pub_methods_classwinstd_1_1num__runtime__error" id="r_a4c0d5efd086891093156fede0dd43cd0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classwinstd_1_1num__runtime__error.html#a4c0d5efd086891093156fede0dd43cd0">num_runtime_error</a> (<a class="el" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">error_type</a> num, const char *msg=nullptr)</td></tr>
<tr class="memdesc:a4c0d5efd086891093156fede0dd43cd0 inherit pub_methods_classwinstd_1_1num__runtime__error"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs an exception. <br /></td></tr>
<tr class="separator:a4c0d5efd086891093156fede0dd43cd0 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" id="r_a6388a483c00628c1a94a5ce45ca63e70"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">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 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:dynsection.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:ac251f4b79b67a800dcd108fedb58d5b5 inherit pub_types_classwinstd_1_1num__runtime__error" id="r_ac251f4b79b67a800dcd108fedb58d5b5"><td class="memItemLeft" align="right" valign="top">
typedef HRESULT&#160;</td><td class="memItemRight" valign="bottom"><b>error_type</b></td></tr>
<tr class="memdesc:ac251f4b79b67a800dcd108fedb58d5b5 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:ac251f4b79b67a800dcd108fedb58d5b5 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:dynsection.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" id="r_a865b8400a5a5a962c3068bf55f022d1f"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">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="a75030cbe7acc6532140c73caf4b15ed8" name="a75030cbe7acc6532140c73caf4b15ed8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75030cbe7acc6532140c73caf4b15ed8">&#9670;&#160;</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"><a class="el" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">error_type</a></td> <td class="paramname"><span class="paramname"><em>num</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;</td> <td class="paramname"><span class="paramname"><em>msg</em></span>&#160;)</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="aa1b65214e16b18bf8b9b191abff254b7" name="aa1b65214e16b18bf8b9b191abff254b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1b65214e16b18bf8b9b191abff254b7">&#9670;&#160;</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"><a class="el" href="classwinstd_1_1num__runtime__error.html#ac251f4b79b67a800dcd108fedb58d5b5">error_type</a></td> <td class="paramname"><span class="paramname"><em>num</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>msg</em></span><span class="paramdefsep"> = </span><span class="paramdefval">nullptr</span>&#160;)</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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,109 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1console__ctrl__handler.html">console_ctrl_handler</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#a1c05134a4453123739ac5b45f62fe13a">console_ctrl_handler</a>(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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,200 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1console__ctrl__handler.html">console_ctrl_handler</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_win_8h_source.html">WinStd/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:a1c05134a4453123739ac5b45f62fe13a" id="r_a1c05134a4453123739ac5b45f62fe13a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a1c05134a4453123739ac5b45f62fe13a">console_ctrl_handler</a> (PHANDLER_ROUTINE HandlerRoutine) noexcept</td></tr>
<tr class="memdesc:a1c05134a4453123739ac5b45f62fe13a"><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. <br /></td></tr>
<tr class="separator:a1c05134a4453123739ac5b45f62fe13a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cba550aa8c659f63386ed6322ccbd6e" id="r_a2cba550aa8c659f63386ed6322ccbd6e"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#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. <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" id="r_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" id="r_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="a1c05134a4453123739ac5b45f62fe13a" name="a1c05134a4453123739ac5b45f62fe13a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c05134a4453123739ac5b45f62fe13a">&#9670;&#160;</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">PHANDLER_ROUTINE</td> <td class="paramname"><span class="paramname"><em>HandlerRoutine</em></span></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;&#160;</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"><span class="paramname"><em></em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,109 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1critical__section.html">critical_section</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#a0f4fe7bc76838757d20967dd79dd7b2c">critical_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#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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,222 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1critical__section.html">critical_section</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_win_8h_source.html">WinStd/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:a0f4fe7bc76838757d20967dd79dd7b2c" id="r_a0f4fe7bc76838757d20967dd79dd7b2c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0f4fe7bc76838757d20967dd79dd7b2c">critical_section</a> () noexcept</td></tr>
<tr class="memdesc:a0f4fe7bc76838757d20967dd79dd7b2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Construct the object and initializes a critical section object. <br /></td></tr>
<tr class="separator:a0f4fe7bc76838757d20967dd79dd7b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67af5836304f27084f296c0cc17d7d20" id="r_a67af5836304f27084f296c0cc17d7d20"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#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. <br /></td></tr>
<tr class="separator:a67af5836304f27084f296c0cc17d7d20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d071e54253a18e11dfdba7130333083" id="r_a7d071e54253a18e11dfdba7130333083"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7d071e54253a18e11dfdba7130333083">operator LPCRITICAL_SECTION</a> () noexcept</td></tr>
<tr class="memdesc:a7d071e54253a18e11dfdba7130333083"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auto-typecasting operator. <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" id="r_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="a0f4fe7bc76838757d20967dd79dd7b2c" name="a0f4fe7bc76838757d20967dd79dd7b2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f4fe7bc76838757d20967dd79dd7b2c">&#9670;&#160;</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"><span class="paramname"><em></em></span></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 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;&#160;</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"><span class="paramname"><em></em></span></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;&#160;</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"><span class="paramname"><em></em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,138 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1crypt__hash.html">crypt_hash</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#ab2a98042c3b88fda687e34d370756f11">attach</a>(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#a5563977cadc13e81808946174659d1d3">attach_duplicated</a>(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_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="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; 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#ab1ac74d5f212fddc217d1a8190a01177">dplhandle</a>(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#ac7439fc22a5754f8aeb2b0e1afd25b9c">dplhandle</a>(const dplhandle&lt; handle_type, INVAL &gt; &amp;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_1dplhandle.html#ac1aa19e060402006d8ff8404be6b07c3">dplhandle</a>(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_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="even"><td class="entry"><a class="el" href="classwinstd_1_1crypt__hash.html#af18ed660a44a2356c05e88fe04b7c722">duplicate_internal</a>(handle_type h) const 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="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; 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_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="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; 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#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a>(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_1handle.html#ac52f342530bb97ce1ff255a7054547d5">handle</a>(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#ae5faed333075739a27c99372967e01a6">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="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; HCRYPTHASH, 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; HCRYPTHASH, 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; 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#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="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a6df58f6c131ab4288acb96d5b8f3012e">operator!=</a>(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#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="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; 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#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="odd"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a4c4515d0d1071cab5c675e926aa2dc92">operator&lt;</a>(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#af9e9538d58b952799db4a1c68b0184b9">operator&lt;=</a>(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_1dplhandle.html#a31cec3cdf4ee749b1aef4b4cd7652fb7">operator=</a>(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#abcccb97671b96da3623f700a93bb5c39">operator=</a>(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#a546f1f737bc3da0c9b19967d849776d3">operator=</a>(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_1handle.html#a6326bbc54ec3441e41f30bc1ec4d6a6c">winstd::handle&lt; HCRYPTHASH, INVAL &gt;::operator=</a>(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#ab6021e9c11accef6b813948dc4601ddc">operator==</a>(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#ae7361f6159006e3f87cbe10ba2a76329">operator&gt;</a>(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#a20e325dde8a25d1e3a7efb50b431641b">operator&gt;=</a>(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_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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,349 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1crypt__hash.html">crypt_hash</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">WinStd/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" id="r_a7c688405c14799681018e0dfc8b51264"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7c688405c14799681018e0dfc8b51264">~crypt_hash</a> ()</td></tr>
<tr class="memdesc:a7c688405c14799681018e0dfc8b51264"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the hash context. <br /></td></tr>
<tr class="separator:a7c688405c14799681018e0dfc8b51264"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:dynsection.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" id="r_ac95cbfb481c0d5e6c60d130f3c270b59"><td class="memItemLeft" align="right" valign="top">
&#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:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:ab1ac74d5f212fddc217d1a8190a01177 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. <br /></td></tr>
<tr class="separator:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h)</td></tr>
<tr class="memdesc:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
<tr class="separator:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <br /></td></tr>
<tr class="separator:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <br /></td></tr>
<tr class="separator:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <br /></td></tr>
<tr class="separator:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle" id="r_a48e66c8979560019e339867de944a265"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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. <br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h)</td></tr>
<tr class="memdesc:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle"><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 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:dynsection.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" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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:a3c19a87b4ff646d9e87524feac4e41b5" id="r_a3c19a87b4ff646d9e87524feac4e41b5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3c19a87b4ff646d9e87524feac4e41b5">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:a3c19a87b4ff646d9e87524feac4e41b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the hash context. <br /></td></tr>
<tr class="separator:a3c19a87b4ff646d9e87524feac4e41b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af18ed660a44a2356c05e88fe04b7c722" id="r_af18ed660a44a2356c05e88fe04b7c722"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af18ed660a44a2356c05e88fe04b7c722">duplicate_internal</a> (<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h) const override</td></tr>
<tr class="memdesc:af18ed660a44a2356c05e88fe04b7c722"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the hash context. <br /></td></tr>
<tr class="separator:af18ed660a44a2356c05e88fe04b7c722"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTHASH, NULL &gt;</a></td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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; HCRYPTHASH, INVAL &gt;</a></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:dynsection.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:ae5faed333075739a27c99372967e01a6 inherit pub_types_classwinstd_1_1handle" id="r_ae5faed333075739a27c99372967e01a6"><td class="memItemLeft" align="right" valign="top">
typedef HCRYPTHASH&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:ae5faed333075739a27c99372967e01a6 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:ae5faed333075739a27c99372967e01a6 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:dynsection.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" id="r_gacf43e306968474166474090690857e1c"><td class="memItemLeft" align="right" valign="top">
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:dynsection.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" id="r_aabde3f16fd98b06b3b0282ef7806eb59"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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>
<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><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a7c688405c14799681018e0dfc8b51264" name="a7c688405c14799681018e0dfc8b51264"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c688405c14799681018e0dfc8b51264">&#9670;&#160;</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"><span class="paramname"><em></em></span></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="af18ed660a44a2356c05e88fe04b7c722" name="af18ed660a44a2356c05e88fe04b7c722"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af18ed660a44a2356c05e88fe04b7c722">&#9670;&#160;</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#ae5faed333075739a27c99372967e01a6">handle_type</a> winstd::crypt_hash::duplicate_internal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a></td> <td class="paramname"><span class="paramname"><em>h</em></span></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> </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#a0d7900f44fdc921b41e07517abdc1ec6">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;&#160;</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"><span class="paramname"><em></em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,139 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1crypt__key.html">crypt_key</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#ab2a98042c3b88fda687e34d370756f11">attach</a>(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#a5563977cadc13e81808946174659d1d3">attach_duplicated</a>(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#a9a6097582df953795969c29ec134914a">create_exp1</a>(HCRYPTPROV hProv, 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_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="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; 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#ab1ac74d5f212fddc217d1a8190a01177">dplhandle</a>(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="even"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac7439fc22a5754f8aeb2b0e1afd25b9c">dplhandle</a>(const dplhandle&lt; handle_type, INVAL &gt; &amp;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="odd"><td class="entry"><a class="el" href="classwinstd_1_1dplhandle.html#ac1aa19e060402006d8ff8404be6b07c3">dplhandle</a>(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="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; 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_1crypt__key.html#a304f9d565576b6984f6e06bacb8571b3">duplicate_internal</a>(handle_type h) const 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="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; 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#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="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#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a>(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#ac52f342530bb97ce1ff255a7054547d5">handle</a>(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#ae5faed333075739a27c99372967e01a6">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="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#a6df58f6c131ab4288acb96d5b8f3012e">operator!=</a>(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#a4c4515d0d1071cab5c675e926aa2dc92">operator&lt;</a>(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#af9e9538d58b952799db4a1c68b0184b9">operator&lt;=</a>(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#a31cec3cdf4ee749b1aef4b4cd7652fb7">operator=</a>(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#abcccb97671b96da3623f700a93bb5c39">operator=</a>(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#a546f1f737bc3da0c9b19967d849776d3">operator=</a>(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#a6326bbc54ec3441e41f30bc1ec4d6a6c">winstd::handle&lt; HCRYPTKEY, INVAL &gt;::operator=</a>(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#ab6021e9c11accef6b813948dc4601ddc">operator==</a>(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#ae7361f6159006e3f87cbe10ba2a76329">operator&gt;</a>(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#a20e325dde8a25d1e3a7efb50b431641b">operator&gt;=</a>(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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,397 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1crypt__key.html">crypt_key</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">WinStd/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" id="r_a396a4af75fd99c896757679a890e6e29"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a396a4af75fd99c896757679a890e6e29">~crypt_key</a> ()</td></tr>
<tr class="memdesc:a396a4af75fd99c896757679a890e6e29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the key. <br /></td></tr>
<tr class="separator:a396a4af75fd99c896757679a890e6e29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a6097582df953795969c29ec134914a" id="r_a9a6097582df953795969c29ec134914a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9a6097582df953795969c29ec134914a">create_exp1</a> (HCRYPTPROV hProv, DWORD dwKeySpec)</td></tr>
<tr class="memdesc:a9a6097582df953795969c29ec134914a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates Exponent-of-one key. <br /></td></tr>
<tr class="separator:a9a6097582df953795969c29ec134914a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:dynsection.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" id="r_ac95cbfb481c0d5e6c60d130f3c270b59"><td class="memItemLeft" align="right" valign="top">
&#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:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:ab1ac74d5f212fddc217d1a8190a01177 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. <br /></td></tr>
<tr class="separator:ab1ac74d5f212fddc217d1a8190a01177 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h)</td></tr>
<tr class="memdesc:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:ac7439fc22a5754f8aeb2b0e1afd25b9c inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <br /></td></tr>
<tr class="separator:ac1aa19e060402006d8ff8404be6b07c3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a> h) noexcept</td></tr>
<tr class="memdesc:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attaches already available object handle. <br /></td></tr>
<tr class="separator:a31cec3cdf4ee749b1aef4b4cd7652fb7 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;h) noexcept</td></tr>
<tr class="memdesc:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the object. <br /></td></tr>
<tr class="separator:abcccb97671b96da3623f700a93bb5c39 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;h) noexcept</td></tr>
<tr class="memdesc:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the object. <br /></td></tr>
<tr class="separator:a546f1f737bc3da0c9b19967d849776d3 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle" id="r_a48e66c8979560019e339867de944a265"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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. <br /></td></tr>
<tr class="separator:a48e66c8979560019e339867de944a265 inherit pub_methods_classwinstd_1_1dplhandle"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle" 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#ae5faed333075739a27c99372967e01a6">handle_type</a> h)</td></tr>
<tr class="memdesc:a5563977cadc13e81808946174659d1d3 inherit pub_methods_classwinstd_1_1dplhandle"><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 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:dynsection.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" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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:acf2f2ad35dd7602adcdeef17f605e391" id="r_acf2f2ad35dd7602adcdeef17f605e391"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acf2f2ad35dd7602adcdeef17f605e391">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:acf2f2ad35dd7602adcdeef17f605e391"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the key. <br /></td></tr>
<tr class="separator:acf2f2ad35dd7602adcdeef17f605e391"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a304f9d565576b6984f6e06bacb8571b3" id="r_a304f9d565576b6984f6e06bacb8571b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a304f9d565576b6984f6e06bacb8571b3">duplicate_internal</a> (<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a> h) const override</td></tr>
<tr class="memdesc:a304f9d565576b6984f6e06bacb8571b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicates the key. <br /></td></tr>
<tr class="separator:a304f9d565576b6984f6e06bacb8571b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1dplhandle"><td colspan="2" onclick="javascript:dynsection.toggleInherit('pro_methods_classwinstd_1_1dplhandle')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classwinstd_1_1dplhandle.html">winstd::dplhandle&lt; HCRYPTKEY, NULL &gt;</a></td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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; HCRYPTKEY, INVAL &gt;</a></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:dynsection.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:ae5faed333075739a27c99372967e01a6 inherit pub_types_classwinstd_1_1handle" id="r_ae5faed333075739a27c99372967e01a6"><td class="memItemLeft" align="right" valign="top">
typedef HCRYPTKEY&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:ae5faed333075739a27c99372967e01a6 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:ae5faed333075739a27c99372967e01a6 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:dynsection.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" id="r_gacf43e306968474166474090690857e1c"><td class="memItemLeft" align="right" valign="top">
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:dynsection.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" id="r_aabde3f16fd98b06b3b0282ef7806eb59"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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>
<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>
<dd>
<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa380207.aspx">CryptImportKey function</a> </dd>
<dd>
<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa380209.aspx">CryptImportPublicKeyInfo function</a> </dd>
<dd>
<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379916.aspx">CryptDeriveKey function</a> </dd></dl>
</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;&#160;</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"><span class="paramname"><em></em></span></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="a9a6097582df953795969c29ec134914a" name="a9a6097582df953795969c29ec134914a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a6097582df953795969c29ec134914a">&#9670;&#160;</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">HCRYPTPROV</td> <td class="paramname"><span class="paramname"><em>hProv</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DWORD</td> <td class="paramname"><span class="paramname"><em>dwKeySpec</em></span>&#160;)</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="a304f9d565576b6984f6e06bacb8571b3" name="a304f9d565576b6984f6e06bacb8571b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a304f9d565576b6984f6e06bacb8571b3">&#9670;&#160;</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#ae5faed333075739a27c99372967e01a6">handle_type</a> winstd::crypt_key::duplicate_internal </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">handle_type</a></td> <td class="paramname"><span class="paramname"><em>h</em></span></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> </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#a0d7900f44fdc921b41e07517abdc1ec6">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;&#160;</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"><span class="paramname"><em></em></span></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>
<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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,129 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1crypt__prov.html">crypt_prov</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#ab2a98042c3b88fda687e34d370756f11">attach</a>(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#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="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; 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#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="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; 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#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a>(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#ac52f342530bb97ce1ff255a7054547d5">handle</a>(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#ae5faed333075739a27c99372967e01a6">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="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; HCRYPTPROV, 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; HCRYPTPROV, 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; 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#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="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a6df58f6c131ab4288acb96d5b8f3012e">operator!=</a>(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#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="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; 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#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="even"><td class="entry"><a class="el" href="classwinstd_1_1handle.html#a4c4515d0d1071cab5c675e926aa2dc92">operator&lt;</a>(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#af9e9538d58b952799db4a1c68b0184b9">operator&lt;=</a>(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#a591e006af92e4d088fb9c1ed974c0923">operator=</a>(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#a6326bbc54ec3441e41f30bc1ec4d6a6c">operator=</a>(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#ab6021e9c11accef6b813948dc4601ddc">operator==</a>(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#ae7361f6159006e3f87cbe10ba2a76329">operator&gt;</a>(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#a20e325dde8a25d1e3a7efb50b431641b">operator&gt;=</a>(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_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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,278 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1crypt__prov.html">crypt_prov</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">WinStd/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" id="r_a91c1f3d10b03ef1b5d1e1da029060289"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a91c1f3d10b03ef1b5d1e1da029060289">~crypt_prov</a> ()</td></tr>
<tr class="memdesc:a91c1f3d10b03ef1b5d1e1da029060289"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases the cryptographic context. <br /></td></tr>
<tr class="separator:a91c1f3d10b03ef1b5d1e1da029060289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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:aa351d2dbc42daf51dddcf847fd95c39f" id="r_aa351d2dbc42daf51dddcf847fd95c39f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#aa351d2dbc42daf51dddcf847fd95c39f">free_internal</a> () noexcept override</td></tr>
<tr class="memdesc:aa351d2dbc42daf51dddcf847fd95c39f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases the cryptographic context. <br /></td></tr>
<tr class="separator:aa351d2dbc42daf51dddcf847fd95c39f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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; HCRYPTPROV, NULL &gt;</a></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:dynsection.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:ae5faed333075739a27c99372967e01a6 inherit pub_types_classwinstd_1_1handle" id="r_ae5faed333075739a27c99372967e01a6"><td class="memItemLeft" align="right" valign="top">
typedef HCRYPTPROV&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:ae5faed333075739a27c99372967e01a6 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:ae5faed333075739a27c99372967e01a6 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:dynsection.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" id="r_gacf43e306968474166474090690857e1c"><td class="memItemLeft" align="right" valign="top">
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:dynsection.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" id="r_aabde3f16fd98b06b3b0282ef7806eb59"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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>
<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><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a91c1f3d10b03ef1b5d1e1da029060289" name="a91c1f3d10b03ef1b5d1e1da029060289"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91c1f3d10b03ef1b5d1e1da029060289">&#9670;&#160;</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"><span class="paramname"><em></em></span></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="aa351d2dbc42daf51dddcf847fd95c39f" name="aa351d2dbc42daf51dddcf847fd95c39f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa351d2dbc42daf51dddcf847fd95c39f">&#9670;&#160;</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"><span class="paramname"><em></em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 773 B

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" 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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1data__blob.html">data_blob</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#a66a5574a42c6c5c76051261a342a43a8">data_blob</a>(BYTE *data, 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#a11968f5b76e8a46784f7bcee3a8f00cc">data_blob</a>(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#a5cfa94091e87f259bde521a7050f27c7">data_blob</a>(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#ac818a3116ab5fc0af960f82aa505b6ae">operator=</a>(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#a637b625d29bacc0875d543c69da351c2">operator=</a>(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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,165 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1data__blob.html">data_blob</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_crypt_8h_source.html">WinStd/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" id="r_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:a66a5574a42c6c5c76051261a342a43a8" id="r_a66a5574a42c6c5c76051261a342a43a8"><td class="memItemLeft" align="right" valign="top"><a id="a66a5574a42c6c5c76051261a342a43a8" name="a66a5574a42c6c5c76051261a342a43a8"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>data_blob</b> (BYTE *<a class="el" href="#a498ffe8fa857c8fee0c68803049e9528">data</a>, DWORD <a class="el" href="#ab2ad06e271e8503d7158408773054d23">size</a>) noexcept</td></tr>
<tr class="memdesc:a66a5574a42c6c5c76051261a342a43a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes a BLOB from existing data. <br /></td></tr>
<tr class="separator:a66a5574a42c6c5c76051261a342a43a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11968f5b76e8a46784f7bcee3a8f00cc" id="r_a11968f5b76e8a46784f7bcee3a8f00cc"><td class="memItemLeft" align="right" valign="top"><a id="a11968f5b76e8a46784f7bcee3a8f00cc" name="a11968f5b76e8a46784f7bcee3a8f00cc"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>data_blob</b> (const DATA_BLOB &amp;other)</td></tr>
<tr class="memdesc:a11968f5b76e8a46784f7bcee3a8f00cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate an existing BLOB. <br /></td></tr>
<tr class="separator:a11968f5b76e8a46784f7bcee3a8f00cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cfa94091e87f259bde521a7050f27c7" id="r_a5cfa94091e87f259bde521a7050f27c7"><td class="memItemLeft" align="right" valign="top"><a id="a5cfa94091e87f259bde521a7050f27c7" name="a5cfa94091e87f259bde521a7050f27c7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>data_blob</b> (<a class="el" href="classwinstd_1_1data__blob.html">data_blob</a> &amp;&amp;other) noexcept</td></tr>
<tr class="memdesc:a5cfa94091e87f259bde521a7050f27c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move an existing BLOB. <br /></td></tr>
<tr class="separator:a5cfa94091e87f259bde521a7050f27c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c79df4fa5413536c745258d09e69599" id="r_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:ac818a3116ab5fc0af960f82aa505b6ae" id="r_ac818a3116ab5fc0af960f82aa505b6ae"><td class="memItemLeft" align="right" valign="top"><a id="ac818a3116ab5fc0af960f82aa505b6ae" name="ac818a3116ab5fc0af960f82aa505b6ae"></a>
<a class="el" href="classwinstd_1_1data__blob.html">data_blob</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const DATA_BLOB &amp;other)</td></tr>
<tr class="memdesc:ac818a3116ab5fc0af960f82aa505b6ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy an existing BLOB. <br /></td></tr>
<tr class="separator:ac818a3116ab5fc0af960f82aa505b6ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a637b625d29bacc0875d543c69da351c2" id="r_a637b625d29bacc0875d543c69da351c2"><td class="memItemLeft" align="right" valign="top"><a id="a637b625d29bacc0875d543c69da351c2" name="a637b625d29bacc0875d543c69da351c2"></a>
<a class="el" href="classwinstd_1_1data__blob.html">data_blob</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classwinstd_1_1data__blob.html">data_blob</a> &amp;&amp;other) noexcept</td></tr>
<tr class="memdesc:a637b625d29bacc0875d543c69da351c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move an existing BLOB. <br /></td></tr>
<tr class="separator:a637b625d29bacc0875d543c69da351c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2ad06e271e8503d7158408773054d23" id="r_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" id="r_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" id="r_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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

View File

@ -0,0 +1,129 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1dc.html">dc</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#ab2a98042c3b88fda687e34d370756f11">attach</a>(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#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a>(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#ac52f342530bb97ce1ff255a7054547d5">handle</a>(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#ae5faed333075739a27c99372967e01a6">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#a6df58f6c131ab4288acb96d5b8f3012e">operator!=</a>(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#a4c4515d0d1071cab5c675e926aa2dc92">operator&lt;</a>(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#af9e9538d58b952799db4a1c68b0184b9">operator&lt;=</a>(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#a591e006af92e4d088fb9c1ed974c0923">operator=</a>(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#a6326bbc54ec3441e41f30bc1ec4d6a6c">operator=</a>(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#ab6021e9c11accef6b813948dc4601ddc">operator==</a>(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#ae7361f6159006e3f87cbe10ba2a76329">operator&gt;</a>(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#a20e325dde8a25d1e3a7efb50b431641b">operator&gt;=</a>(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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

277
classwinstd_1_1dc.html Normal file
View File

@ -0,0 +1,277 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1dc.html">dc</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_g_d_i_8h_source.html">WinStd/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" id="r_ae8c5722935c8a1c3f6a1857679f4563c"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae8c5722935c8a1c3f6a1857679f4563c">~dc</a> ()</td></tr>
<tr class="memdesc:ae8c5722935c8a1c3f6a1857679f4563c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the specified device context (DC). <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:dynsection.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" 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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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:ad3dc9d48645022e7a1adcdb9ea01a557" id="r_ad3dc9d48645022e7a1adcdb9ea01a557"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#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). <br /></td></tr>
<tr class="separator:ad3dc9d48645022e7a1adcdb9ea01a557"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classwinstd_1_1handle"><td colspan="2" onclick="javascript:dynsection.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; HDC, NULL &gt;</a></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:dynsection.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:ae5faed333075739a27c99372967e01a6 inherit pub_types_classwinstd_1_1handle" id="r_ae5faed333075739a27c99372967e01a6"><td class="memItemLeft" align="right" valign="top">
typedef HDC&#160;</td><td class="memItemRight" valign="bottom"><b>handle_type</b></td></tr>
<tr class="memdesc:ae5faed333075739a27c99372967e01a6 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:ae5faed333075739a27c99372967e01a6 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:dynsection.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" id="r_gacf43e306968474166474090690857e1c"><td class="memItemLeft" align="right" valign="top">
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:dynsection.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" id="r_aabde3f16fd98b06b3b0282ef7806eb59"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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;&#160;</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"><span class="paramname"><em></em></span></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;&#160;</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"><span class="paramname"><em></em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

BIN
classwinstd_1_1dc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 B

View File

@ -0,0 +1,110 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1dc__selector.html">dc_selector</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#a4cb5b528376651a59eb9bbb8471c3f22">dc_selector</a>(HDC hdc, 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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,230 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1dc__selector.html">dc_selector</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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="#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="_g_d_i_8h_source.html">WinStd/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:a4cb5b528376651a59eb9bbb8471c3f22" id="r_a4cb5b528376651a59eb9bbb8471c3f22"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4cb5b528376651a59eb9bbb8471c3f22">dc_selector</a> (HDC hdc, HGDIOBJ h) noexcept</td></tr>
<tr class="memdesc:a4cb5b528376651a59eb9bbb8471c3f22"><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. <br /></td></tr>
<tr class="separator:a4cb5b528376651a59eb9bbb8471c3f22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e4daf6736cab31fc696dd3adfe4bcfd" id="r_a6e4daf6736cab31fc696dd3adfe4bcfd"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6e4daf6736cab31fc696dd3adfe4bcfd">~dc_selector</a> ()</td></tr>
<tr class="memdesc:a6e4daf6736cab31fc696dd3adfe4bcfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restores original object. <br /></td></tr>
<tr class="separator:a6e4daf6736cab31fc696dd3adfe4bcfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacb4060094f2c4b1747ffa76455b235d" id="r_aacb4060094f2c4b1747ffa76455b235d"><td class="memItemLeft" align="right" valign="top">HGDIOBJ&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#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. <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" id="r_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" id="r_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="a4cb5b528376651a59eb9bbb8471c3f22" name="a4cb5b528376651a59eb9bbb8471c3f22"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4cb5b528376651a59eb9bbb8471c3f22">&#9670;&#160;</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">HDC</td> <td class="paramname"><span class="paramname"><em>hdc</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">HGDIOBJ</td> <td class="paramname"><span class="paramname"><em>h</em></span>&#160;)</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;&#160;</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"><span class="paramname"><em></em></span></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;&#160;</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"><span class="paramname"><em></em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,137 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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#ab2a98042c3b88fda687e34d370756f11">attach</a>(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#a5563977cadc13e81808946174659d1d3">attach_duplicated</a>(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#ab1ac74d5f212fddc217d1a8190a01177">dplhandle</a>(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#ac7439fc22a5754f8aeb2b0e1afd25b9c">dplhandle</a>(const dplhandle&lt; handle_type, INVAL &gt; &amp;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_1dplhandle.html#ac1aa19e060402006d8ff8404be6b07c3">dplhandle</a>(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#a0d7900f44fdc921b41e07517abdc1ec6">duplicate_internal</a>(handle_type h) const =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#a4a0f9b6caadf4a55c7bc0dcc0ce39dac">handle</a>(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#ac52f342530bb97ce1ff255a7054547d5">handle</a>(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#ae5faed333075739a27c99372967e01a6">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#a6df58f6c131ab4288acb96d5b8f3012e">operator!=</a>(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#a4c4515d0d1071cab5c675e926aa2dc92">operator&lt;</a>(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#af9e9538d58b952799db4a1c68b0184b9">operator&lt;=</a>(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#a31cec3cdf4ee749b1aef4b4cd7652fb7">operator=</a>(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#abcccb97671b96da3623f700a93bb5c39">operator=</a>(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#a546f1f737bc3da0c9b19967d849776d3">operator=</a>(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#a6326bbc54ec3441e41f30bc1ec4d6a6c">winstd::handle::operator=</a>(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#ab6021e9c11accef6b813948dc4601ddc">operator==</a>(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#ae7361f6159006e3f87cbe10ba2a76329">operator&gt;</a>(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#a20e325dde8a25d1e3a7efb50b431641b">operator&gt;=</a>(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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

View File

@ -0,0 +1,561 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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 id="doc-content">
<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="#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="#ab1ac74d5f212fddc217d1a8190a01177">dplhandle</a> (<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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="#ac7439fc22a5754f8aeb2b0e1afd25b9c">dplhandle</a> (const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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="#ac1aa19e060402006d8ff8404be6b07c3">dplhandle</a> (<a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a31cec3cdf4ee749b1aef4b4cd7652fb7">operator=</a> (<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#abcccb97671b96da3623f700a93bb5c39">operator=</a> (const <a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a546f1f737bc3da0c9b19967d849776d3">operator=</a> (<a class="el" href="classwinstd_1_1dplhandle.html">dplhandle</a>&lt; <a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#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="#a5563977cadc13e81808946174659d1d3">attach_duplicated</a> (<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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:dynsection.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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a0d7900f44fdc921b41e07517abdc1ec6">duplicate_internal</a> (<a class="el" href="classwinstd_1_1handle.html#ae5faed333075739a27c99372967e01a6">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:dynsection.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:dynsection.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:ae5faed333075739a27c99372967e01a6 inherit pub_types_classwinstd_1_1handle" id="r_ae5faed333075739a27c99372967e01a6"><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:ae5faed333075739a27c99372967e01a6 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:ae5faed333075739a27c99372967e01a6 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:dynsection.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:dynsection.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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a></td> <td class="paramname"><span class="paramname"><em>h</em></span></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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>h</em></span></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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;</td> <td class="paramname"><span class="paramname"><em>h</em></span></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#ae5faed333075739a27c99372967e01a6">handle_type</a></td> <td class="paramname"><span class="paramname"><em>h</em></span></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#ae5faed333075739a27c99372967e01a6">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"><span class="paramname"><em></em></span></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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a></td> <td class="paramname"><span class="paramname"><em>h</em></span></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_1bstr.html#a1c6f4421d370e6029dfbf71315cdedc0">winstd::bstr</a>, <a class="el" href="classwinstd_1_1cert__chain__context.html#afbb8bf6ef0627268fd327059f51b121a">winstd::cert_chain_context</a>, <a class="el" href="classwinstd_1_1cert__context.html#ae39c2de0d8e9d69e524404db812e7ba7">winstd::cert_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>, <a class="el" href="classwinstd_1_1eap__packet.html#af7e0415d3a524c0e79fc429f3911c809">winstd::eap_packet</a>, and <a class="el" href="classwinstd_1_1safearray.html#a7b4972e8b65210cf5b6a50610dcb4b8d">winstd::safearray</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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>h</em></span></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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a>, INVAL &gt; &amp;&amp;</td> <td class="paramname"><span class="paramname"><em>h</em></span></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#ae5faed333075739a27c99372967e01a6">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#ae5faed333075739a27c99372967e01a6">handle_type</a></td> <td class="paramname"><span class="paramname"><em>h</em></span></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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

View File

@ -0,0 +1,112 @@
<!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.12.0"/>
<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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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.12.0 -->
<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">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @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',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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_1eap__attr.html">eap_attr</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<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#a8098b30108457f2c96c865bfabce3021">create_ms_mppe_key</a>(BYTE bVendorType, LPCBYTE pbKey, 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#a4cb8d6fbf7f4e53ec64a030bea00d148">eap_attr</a>(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#a029d15ddb8b9cd33b4907f01719da5b8">eap_attr</a>(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#aa5909d52c15557908ff584f4712eea05">operator=</a>(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#a242766666ce3cbb83429ddd0eaeb9cc6">operator=</a>(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 Tue Nov 19 2024 10:18:28 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.12.0
</small></address>
</div><!-- doc-content -->
</body>
</html>

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