WinStd Additional templates and function helpers for Microsoft Windows using Standard C++ classes

Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1 2 3 4]

C winstd::actctx_activator | Activates given activation context in constructor and deactivates it in destructor
►C std::allocator |
C winstd::sanitizing_allocator< _Ty > | An allocator template that sanitizes each memory block before it is destroyed or reallocated
►C std::basic_string |
►C winstd::basic_string_guid< char, std::char_traits< char >, std::allocator< char > > |
C winstd::string_guid | Single-byte character implementation of a class to support converting GUID to string
►C winstd::basic_string_guid< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > |
C winstd::wstring_guid | Wide character implementation of a class to support converting GUID to string
C winstd::basic_string_guid< _Elem, _Traits, _Ax > | Base template class to support converting GUID to string
C winstd::basic_string_msg< _Elem, _Traits, _Ax > | Base template class to support string formatting using `FormatMessage()` style templates
C winstd::basic_string_printf< _Elem, _Traits, _Ax > | Base template class to support string formatting using `printf()` style templates
C winstd::com_initializer | Context scope automatic COM (un)initialization
C winstd::console_ctrl_handler | Console control handler stack management
C winstd::CoTaskMemFree_delete | Deleter for unique_ptr using CoTaskMemFree
C winstd::CredFree_delete< _Ty > | Deleter for unique_ptr using CredFree
C winstd::CredFree_delete< _Ty[]> | Deleter for unique_ptr to array of unknown size using CredFree
C winstd::critical_section | Critical section wrapper
►C DATA_BLOB |
C winstd::data_blob | DATA_BLOB wrapper class
C winstd::dc_selector | Context scope DC object restorer
►C EAP_ATTRIBUTE |
C winstd::eap_attr | EAP_ATTRIBUTE wrapper class
►C EAP_METHOD_INFO_ARRAY |
C winstd::eap_method_info_array | EAP_METHOD_INFO_ARRAY wrapper class
►C EAP_METHOD_PROPERTY |
C winstd::eap_method_prop | EAP_METHOD_PROPERTY wrapper class
C winstd::EapHostPeerFreeEapError_delete | Deleter for unique_ptr to EAP_ERROR using EapHostPeerFreeEapError
C winstd::EapHostPeerFreeErrorMemory_delete | Deleter for unique_ptr to EAP_ERROR using EapHostPeerFreeErrorMemory
C winstd::EapHostPeerFreeMemory_delete | Deleter for unique_ptr using EapHostPeerFreeMemory
C winstd::EapHostPeerFreeRuntimeMemory_delete | Deleter for unique_ptr using EapHostPeerFreeRuntimeMemory
►C EVENT_DATA_DESCRIPTOR |
C winstd::event_data | EVENT_DATA_DESCRIPTOR wrapper
C winstd::event_fn_auto | Helper class to write an event on entry/exit of scope
C winstd::event_fn_auto_ret< T > | Helper template to write an event on entry/exit of scope with one parameter (typically result)
►C EVENT_RECORD |
C winstd::event_rec | EVENT_RECORD wrapper
C winstd::event_trace_enabler | Helper class to enable event provider in constructor and disables it in destructor
►C winstd::handle< T, INVAL > | Base abstract template class to support generic object handle keeping
C winstd::dplhandle< T, INVAL > | Base abstract template class to support object handle keeping for objects that support handle duplication
►C winstd::handle< BSTR, INVAL > |
►C winstd::dplhandle< BSTR, NULL > |
C winstd::bstr | BSTR string wrapper
►C winstd::handle< EapPacket *, INVAL > |
►C winstd::dplhandle< EapPacket *, NULL > |
C winstd::eap_packet | EapPacket wrapper class
►C winstd::handle< HANDLE, INVALID > |
►C winstd::win_handle< NULL > |
C winstd::event | Event handle wrapper
C winstd::process | Process handle wrapper
►C winstd::win_handle< INVALID_HANDLE_VALUE > |
C winstd::file | File handle wrapper
C winstd::win_handle< INVALID > | Windows HANDLE wrapper class
►C winstd::handle< HANDLE, INVALID_HANDLE_VALUE > |
C winstd::find_file | Find-file handle wrapper
►C winstd::handle< HANDLE, NULL > |
C winstd::heap | Heap handle wrapper
C winstd::wlan_handle | WLAN handle wrapper
►C winstd::handle< HCERTSTORE, NULL > |
C winstd::cert_store | HCERTSTORE wrapper class
►C winstd::handle< HCRYPTHASH, INVAL > |
►C winstd::dplhandle< HCRYPTHASH, NULL > |
C winstd::crypt_hash | HCRYPTHASH wrapper class
►C winstd::handle< HCRYPTKEY, INVAL > |
►C winstd::dplhandle< HCRYPTKEY, NULL > |
C winstd::crypt_key | HCRYPTKEY wrapper class
►C winstd::handle< HCRYPTPROV, NULL > |
C winstd::crypt_prov | HCRYPTPROV wrapper class
►C winstd::handle< HDC, NULL > |
C winstd::dc | Device context wrapper class
C winstd::window_dc | Device context wrapper class
►C winstd::handle< HDEVINFO, INVALID_HANDLE_VALUE > |
C winstd::setup_device_info_list | HDEVINFO wrapper class
►C winstd::handle< HKEY, NULL > |
C winstd::reg_key | Registry wrapper class
►C winstd::handle< HMODULE, NULL > |
C winstd::library | Module handle wrapper
►C winstd::handle< LPVOID, NULL > |
C winstd::vmemory | Memory in virtual address space of a process handle wrapper
►C winstd::handle< PADDRINFOT, NULL > |
C winstd::addrinfo | SID wrapper class
►C winstd::handle< PCCERT_CHAIN_CONTEXT, INVAL > |
►C winstd::dplhandle< PCCERT_CHAIN_CONTEXT, NULL > |
C winstd::cert_chain_context | PCCERT_CHAIN_CONTEXT wrapper class
►C winstd::handle< PCCERT_CONTEXT, INVAL > |
►C winstd::dplhandle< PCCERT_CONTEXT, NULL > |
C winstd::cert_context | PCCERT_CONTEXT wrapper class
►C winstd::handle< PCredHandle, NULL > |
C winstd::sec_credentials | PCredHandle wrapper class
►C winstd::handle< PCtxtHandle, NULL > |
C winstd::sec_context | PCtxtHandle wrapper class
►C winstd::handle< PSID, NULL > |
C winstd::security_id | SID wrapper class
►C winstd::handle< REGHANDLE, NULL > |
C winstd::event_provider | ETW event provider
►C winstd::handle< T *, INVAL > |
►C winstd::dplhandle< T *, NULL > |
C winstd::com_obj< T > | COM object wrapper template
►C winstd::handle< T, NULL > |
C winstd::gdi_handle< T > | Windows HGDIOBJ wrapper class
►C winstd::handle< TRACEHANDLE, 0 > |
C winstd::event_session | ETW session
►C winstd::handle< TRACEHANDLE, INVALID_PROCESSTRACE_HANDLE > |
C winstd::event_trace | ETW trace
C winstd::heap_allocator< _Ty > | HeapAlloc allocator
C winstd::LocalFree_delete< _Ty > | Deleter for unique_ptr using LocalFree
C winstd::LocalFree_delete< _Ty[]> | Deleter for unique_ptr to array of unknown size using LocalFree
►C PROCESS_INFORMATION |
C winstd::process_information | PROCESS_INFORMATION struct wrapper
C winstd::heap_allocator< _Ty >::rebind< _Other > | A structure that enables an allocator for objects of one type to allocate storage for objects of another type
C winstd::sanitizing_allocator< _Ty >::rebind< _Other > | Convert this type to sanitizing_allocator<_Other>
C winstd::ref_unique_ptr< _Ty, _Dx > | Helper class for returning pointers to std::unique_ptr
C winstd::ref_unique_ptr< _Ty[], _Dx > | Helper class for returning pointers to std::unique_ptr (specialization for arrays)
►C std::runtime_error |
►C winstd::num_runtime_error< HRESULT > |
C winstd::com_runtime_error | COM runtime error
►C winstd::num_runtime_error< SECURITY_STATUS > |
C winstd::sec_runtime_error | Security runtime error
►C winstd::num_runtime_error< DWORD > |
►C winstd::win_runtime_error | Windows runtime error
C winstd::eap_runtime_error | EapHost runtime error
►C winstd::num_runtime_error< int > |
C winstd::ws2_runtime_error | WinSock2 runtime error
C winstd::num_runtime_error< _Tn > | Numerical runtime error
C winstd::sanitizing_blob< N > | Sanitizing BLOB
►C SecBufferDesc |
C winstd::sec_buffer_desc | SecBufferDesc wrapper class
C winstd::setup_driver_info_list_builder | Builds a list of drivers in constructor and deletes it in destructor
C winstd::user_impersonator | Lets the calling thread impersonate the security context of a logged-on user
►C VARIANT |
C winstd::variant | VARIANT struct wrapper
C winstd::wintrust | WinTrust engine wrapper class
C winstd::WlanFreeMemory_delete< _Ty > | Deleter for unique_ptr using WlanFreeMemory
C winstd::WlanFreeMemory_delete< _Ty[]> | Deleter for unique_ptr to array of unknown size using WlanFreeMemory