diff --git a/_c_o_m_8h_source.html b/_c_o_m_8h_source.html index 9fb46fab..77708229 100644 --- a/_c_o_m_8h_source.html +++ b/_c_o_m_8h_source.html @@ -818,12 +818,12 @@ $(function() {
winstd::com_runtime_error
COM runtime error.
Definition: COM.h:24
winstd::com_runtime_error::com_runtime_error
com_runtime_error(error_type num, const std::string &msg)
Constructs an exception.
Definition: COM.h:32
winstd::com_runtime_error::com_runtime_error
com_runtime_error(error_type num, const char *msg=nullptr)
Constructs an exception.
Definition: COM.h:42
-
winstd::dplhandle
Base abstract template class to support object handle keeping for objects that support handle duplica...
Definition: Common.h:866
-
winstd::handle< T *, INVAL >::handle_type
T * handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:609
-
winstd::handle< T *, INVAL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:855
-
winstd::handle< T *, INVAL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:818
-
winstd::num_runtime_error
Numerical runtime error.
Definition: Common.h:1003
-
winstd::num_runtime_error< HRESULT >::error_type
HRESULT error_type
Error number type.
Definition: Common.h:1005
+
winstd::dplhandle
Base abstract template class to support object handle keeping for objects that support trivial handle...
Definition: Common.h:865
+
winstd::handle< T *, INVAL >::handle_type
T * handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
+
winstd::handle< T *, INVAL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:854
+
winstd::handle< T *, INVAL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:817
+
winstd::num_runtime_error
Numerical runtime error.
Definition: Common.h:1002
+
winstd::num_runtime_error< HRESULT >::error_type
HRESULT error_type
Error number type.
Definition: Common.h:1004
winstd::variant
VARIANT struct wrapper.
Definition: COM.h:284
winstd::variant::operator<=
bool operator<=(const VARIANT &varSrc) const noexcept
Is variant less than or equal to?
Definition: COM.h:988
winstd::variant::variant
variant(bool bSrc) noexcept
Constructs VARIANT from bool.
Definition: COM.h:318
@@ -886,17 +886,17 @@ $(function() {
winstd::variant::operator=
variant & operator=(IDispatch *pSrc)
Copy from IDispatch.
Definition: COM.h:737
winstd::variant::operator=
variant & operator=(unsigned long *pnSrc) noexcept
Copy from unsigned long reference.
Definition: COM.h:841
winstd::variant::operator=
variant & operator=(const VARIANT &varSrc)
Copy from another VARIANT.
Definition: COM.h:516
-
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:53
-
WINSTD_NONMOVABLE
#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition: Common.h:61
-
WINSTD_DPLHANDLE_IMPL
#define WINSTD_DPLHANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:174
-
winstd::handle< T *, INVAL >::invalid
static const T * invalid
Invalid handle value.
Definition: Common.h:614
+
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:52
+
WINSTD_NONMOVABLE
#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition: Common.h:60
+
WINSTD_DPLHANDLE_IMPL
#define WINSTD_DPLHANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:173
+
winstd::handle< T *, INVAL >::invalid
static const T * invalid
Invalid handle value.
Definition: Common.h:613
winstd::CoTaskMemFree_delete
Deleter for unique_ptr using CoTaskMemFree.
Definition: COM.h:59
winstd::CoTaskMemFree_delete::operator()
void operator()(_T *_Ptr) const
Delete a pointer.
Definition: COM.h:71
winstd::CoTaskMemFree_delete::CoTaskMemFree_delete
CoTaskMemFree_delete() noexcept
Default constructor.
Definition: COM.h:63
diff --git a/_common_8h_source.html b/_common_8h_source.html index 8b9824ff..0f1d5694 100644 --- a/_common_8h_source.html +++ b/_common_8h_source.html @@ -78,966 +78,965 @@ $(function() {
6
7#pragma once
8
-
9#define _WINSOCKAPI_ // Prevent inclusion of winsock.h in windows.h.
-
10#include <Windows.h>
-
11#include <assert.h>
-
12#include <stdarg.h>
-
13#include <tchar.h>
-
14#include <iostream>
-
15#include <memory>
-
16#include <stdexcept>
-
17#include <string>
-
18#include <vector>
-
19
-
25
-
29#ifndef __L
-
30#define __L(x) L ## x
-
31#endif
-
32
-
36#ifndef _L
-
37#define _L(x) __L(x)
-
38#endif
-
39
-
43#define WINSTD_STRING_IMPL(x) #x
-
44
-
48#define WINSTD_STRING(x) WINSTD_STRING_IMPL(x)
-
49
-
53#define WINSTD_NONCOPYABLE(C) \
-
54private: \
-
55 C (_In_ const C &h) noexcept; \
-
56 C& operator=(_In_ const C &h) noexcept;
-
57
-
61#define WINSTD_NONMOVABLE(C) \
-
62private: \
-
63 C (_Inout_ C &&h) noexcept; \
-
64 C& operator=(_Inout_ C &&h) noexcept;
-
65
-
66#ifndef WINSTD_STACK_BUFFER_BYTES
-
80#define WINSTD_STACK_BUFFER_BYTES 1024
-
81#endif
-
82
-
84
-
96
-
100#ifdef UNICODE
-
101#define PRINTF_LPTSTR "ls"
-
102#else
-
103#define PRINTF_LPTSTR "s"
-
104#endif
-
105
-
109#ifdef OLE2ANSI
-
110#define PRINTF_LPOLESTR "hs"
-
111#else
-
112#define PRINTF_LPOLESTR "ls"
-
113#endif
-
114
-
118#ifdef _UNICODE
-
119#define _tcin (std::wcin )
-
120#else
-
121#define _tcin (std::cin )
-
122#endif
-
123
-
127#ifdef _UNICODE
-
128#define _tcout (std::wcout)
-
129#else
-
130#define _tcout (std::cout)
-
131#endif
-
132
-
136#ifdef _UNICODE
-
137#define _tcerr (std::wcerr)
-
138#else
-
139#define _tcerr (std::cerr)
-
140#endif
-
141
-
145#ifdef _UNICODE
-
146#define _tclog (std::wclog)
-
147#else
-
148#define _tclog (std::clog)
-
149#endif
-
150
-
152
-
158
-
162#define WINSTD_HANDLE_IMPL(C, INVAL) \
-
163public: \
-
164 C ( ) noexcept { } \
-
165 C (_In_opt_ handle_type h) noexcept : handle<handle_type, INVAL>( h ) { } \
-
166 C (_Inout_ C &&h) noexcept : handle<handle_type, INVAL>(std::move(h)) { } \
-
167 C& operator=(_In_opt_ handle_type h) noexcept { handle<handle_type, INVAL>::operator=( h ); return *this; } \
-
168 C& operator=(_Inout_ C &&h) noexcept { handle<handle_type, INVAL>::operator=(std::move(h)); return *this; } \
-
169WINSTD_NONCOPYABLE(C)
-
170
-
174#define WINSTD_DPLHANDLE_IMPL(C, INVAL) \
-
175public: \
-
176 C ( ) noexcept { } \
-
177 C (_In_opt_ handle_type h) noexcept : dplhandle<handle_type, INVAL>( h ) { } \
-
178 C (_In_ const C &h) noexcept : dplhandle<handle_type, INVAL>(duplicate_internal(h.m_h)) { } \
-
179 C (_Inout_ C &&h) noexcept : dplhandle<handle_type, INVAL>(std::move (h )) { } \
-
180 C& operator=(_In_opt_ handle_type h) noexcept { dplhandle<handle_type, INVAL>::operator=( h ); return *this; } \
-
181 C& operator=(_In_ const C &h) noexcept { dplhandle<handle_type, INVAL>::operator=( h ); return *this; } \
-
182 C& operator=(_Inout_ C &&h) noexcept { dplhandle<handle_type, INVAL>::operator=(std::move(h)); return *this; } \
-
183private:
-
184
-
186
-
187#ifndef _FormatMessage_format_string_
-
188#define _FormatMessage_format_string_ _In_z_
-
189#endif
-
190
-
191#ifndef _LPCBYTE_DEFINED
-
192#define _LPCBYTE_DEFINED
-
193typedef const BYTE *LPCBYTE;
-
194#endif
-
195
-
196#pragma warning(push)
-
197// Do not use _vsnprintf_s/_vsnwprintf_s(), since it terminates string by force even when we explicitly want to write unterminated string.
-
198// Threfore turn off compiler warning instead. ;)
-
199#pragma warning(disable: 4995)
-
200#pragma warning(disable: 4996)
-
201#pragma warning(disable: 4505) // Don't warn on unused code
-
202
-
205
-
216#if _MSC_VER <= 1600
-
217static int vsnprintf(_Out_z_cap_(capacity) char *str, _In_ size_t capacity, _In_z_ _Printf_format_string_ const char *format, _In_ va_list arg)
-
218{
-
219 return _vsnprintf(str, capacity, format, arg);
-
220}
-
221#endif
-
222
-
233static int vsnprintf(_Out_z_cap_(capacity) wchar_t *str, _In_ size_t capacity, _In_z_ _Printf_format_string_ const wchar_t *format, _In_ va_list arg) noexcept
-
234{
-
235 return _vsnwprintf(str, capacity, format, arg);
-
236}
-
237
-
247template<class _Elem, class _Traits, class _Ax>
-
248static int vsprintf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_ const _Elem *format, _In_ va_list arg)
-
249{
-
250 _Elem buf[WINSTD_STACK_BUFFER_BYTES/sizeof(_Elem)];
-
251
-
252 // Try with stack buffer first.
-
253 int count = vsnprintf(buf, _countof(buf) - 1, format, arg);
-
254 if (count >= 0) {
-
255 // Copy from stack.
-
256 str.assign(buf, count);
-
257 } else {
-
258 for (size_t capacity = 2*WINSTD_STACK_BUFFER_BYTES/sizeof(_Elem);; capacity *= 2) {
-
259 // Allocate on heap and retry.
-
260 auto buf_dyn = std::make_unique<_Elem[]>(capacity);
-
261 count = vsnprintf(buf_dyn.get(), capacity - 1, format, arg);
-
262 if (count >= 0) {
-
263 str.assign(buf_dyn.get(), count);
-
264 break;
-
265 }
-
266 }
-
267 }
-
268
-
269 return count;
-
270}
-
271
-
280template<class _Elem, class _Traits, class _Ax>
-
281static int sprintf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_ const _Elem *format, ...)
-
282{
-
283 va_list arg;
-
284 va_start(arg, format);
-
285 const int res = vsprintf(str, format, arg);
-
286 va_end(arg);
-
287 return res;
-
288}
-
289
-
295template<class _Traits, class _Ax>
-
296static DWORD FormatMessage(_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _Inout_ std::basic_string<char, _Traits, _Ax> &str, _In_opt_ va_list *Arguments)
-
297{
-
298 std::unique_ptr<CHAR[], winstd::LocalFree_delete<CHAR[]> > lpBuffer;
-
299 DWORD dwResult = FormatMessageA(dwFlags | FORMAT_MESSAGE_ALLOCATE_BUFFER, lpSource, dwMessageId, dwLanguageId, reinterpret_cast<LPSTR>((LPSTR*)get_ptr(lpBuffer)), 0, Arguments);
-
300 if (dwResult)
-
301 str.assign(lpBuffer.get(), dwResult);
-
302 return dwResult;
-
303}
-
304
-
310template<class _Traits, class _Ax>
-
311static DWORD FormatMessage(_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _Inout_ std::basic_string<wchar_t, _Traits, _Ax> &str, _In_opt_ va_list *Arguments)
-
312{
-
313 std::unique_ptr<WCHAR[], winstd::LocalFree_delete<WCHAR[]> > lpBuffer;
-
314 DWORD dwResult = FormatMessageW(dwFlags | FORMAT_MESSAGE_ALLOCATE_BUFFER, lpSource, dwMessageId, dwLanguageId, reinterpret_cast<LPWSTR>((LPWSTR*)get_ptr(lpBuffer)), 0, Arguments);
-
315 if (dwResult)
-
316 str.assign(lpBuffer.get(), dwResult);
-
317 return dwResult;
-
318}
-
319
-
321
-
322#pragma warning(pop)
-
323
-
324namespace winstd
-
325{
-
328
-
332#ifdef _UNICODE
-
333 typedef std::wstring tstring;
-
334#else
-
335 typedef std::string tstring;
-
336#endif
-
337
-
341 template <class _Ty>
-
342 struct LocalFree_delete
-
343 {
-
344 typedef LocalFree_delete<_Ty> _Myt;
-
345
-
349 LocalFree_delete() {}
-
350
-
354 template <class _Ty2> LocalFree_delete(const LocalFree_delete<_Ty2>&) {}
-
355
-
361 void operator()(_Ty *_Ptr) const
-
362 {
-
363 LocalFree(_Ptr);
-
364 }
-
365 };
-
366
-
370 template <class _Ty>
-
371 struct LocalFree_delete<_Ty[]>
-
372 {
-
373 typedef LocalFree_delete<_Ty> _Myt;
-
374
-
378 LocalFree_delete() noexcept {}
-
379
-
383 void operator()(_Frees_ptr_opt_ _Ty *_Ptr) const noexcept
-
384 {
-
385 LocalFree(_Ptr);
-
386 }
-
387
-
393 template<class _Other>
-
394 void operator()(_Other *) const
-
395 {
-
396 LocalFree(_Ptr);
-
397 }
-
398 };
-
399
-
403 template<class _Ty, class _Dx>
-
404 class ref_unique_ptr
-
405 {
-
406 public:
-
412 ref_unique_ptr(_Inout_ std::unique_ptr<_Ty, _Dx> &owner) :
-
413 m_own(owner),
-
414 m_ptr(owner.release())
-
415 {}
-
416
-
422 ref_unique_ptr(_Inout_ ref_unique_ptr<_Ty, _Dx> &&other) :
-
423 m_own(other.m_own),
-
424 m_ptr(other.m_ptr)
-
425 {
-
426 other.m_ptr = nullptr;
-
427 }
-
428
-
432 ~ref_unique_ptr()
-
433 {
-
434 if (m_ptr != nullptr)
-
435 m_own.reset(m_ptr);
-
436 }
-
437
-
443 operator typename _Ty**()
-
444 {
-
445 return &m_ptr;
-
446 }
-
447
-
453 operator typename _Ty*&()
-
454 {
-
455 return m_ptr;
-
456 }
-
457
-
458 protected:
-
459 std::unique_ptr<_Ty, _Dx> &m_own;
-
460 _Ty *m_ptr;
-
461 };
-
462
-
470 template<class _Ty, class _Dx>
-
471 ref_unique_ptr<_Ty, _Dx> get_ptr(_Inout_ std::unique_ptr<_Ty, _Dx> &owner) noexcept
-
472 {
-
473 return ref_unique_ptr<_Ty, _Dx>(owner);
-
474 }
-
475
-
484 template<class _Ty, class _Dx>
-
485 ref_unique_ptr<_Ty[], _Dx> get_ptr(_Inout_ std::unique_ptr<_Ty[], _Dx> &owner) noexcept
-
486 {
-
487 return ref_unique_ptr<_Ty[], _Dx>(owner);
-
488 }
-
489
-
494 #pragma warning(push)
-
495 #pragma warning(disable: 26432) // Copy constructor and assignment operator are also present, but not detected by code analysis as they are using base type source object reference.
-
496 template<class _Ty, class _Dx>
-
497 class ref_unique_ptr<_Ty[], _Dx>
-
498 {
-
499 public:
-
505 ref_unique_ptr(_Inout_ std::unique_ptr<_Ty[], _Dx> &owner) noexcept :
-
506 m_own(owner),
-
507 m_ptr(owner.release())
-
508 {}
-
509
-
517 ref_unique_ptr& operator=(_Inout_ std::unique_ptr<_Ty[], _Dx> &owner) noexcept
-
518 {
-
519 if (this != &other) {
-
520 m_own = owner;
-
521 m_ptr = owner.release();
-
522 }
-
523
-
524 return *this;
-
525 }
-
526
-
532 ref_unique_ptr(_Inout_ ref_unique_ptr<_Ty[], _Dx> &&other) :
-
533 m_own(other.m_own),
-
534 m_ptr(other.m_ptr)
-
535 {
-
536 other.m_ptr = nullptr;
-
537 }
-
538
-
546 ref_unique_ptr& operator=(_Inout_ ref_unique_ptr<_Ty[], _Dx> &&other)
-
547 {
-
548 if (this != &other) {
-
549 m_own = other.m_own;
-
550 m_ptr = other.m_ptr;
-
551 other.m_ptr = nullptr;
-
552 }
-
553
-
554 return *this;
-
555 }
-
556
-
560 virtual ~ref_unique_ptr()
-
561 {
-
562 if (m_ptr != nullptr)
-
563 m_own.reset(m_ptr);
-
564 }
-
565
-
571 operator typename _Ty**() noexcept
-
572 {
-
573 return &m_ptr;
-
574 }
-
575
-
581 operator typename _Ty*&()
-
582 {
-
583 return m_ptr;
-
584 }
-
585
-
586 protected:
-
587 std::unique_ptr<_Ty[], _Dx> &m_own;
-
588 _Ty *m_ptr;
-
589 };
-
590 #pragma warning(pop)
-
591
-
593
-
596
-
602 template <class T, const T INVAL>
-
603 class handle
-
604 {
-
605 public:
-
609 typedef T handle_type;
-
610
-
614 static const T invalid;
-
615
-
619 handle() noexcept : m_h(invalid)
-
620 {
-
621 }
-
622
-
628 handle(_In_opt_ handle_type h) noexcept : m_h(h)
-
629 {
-
630 }
-
631
-
637 handle(_Inout_ handle<handle_type, INVAL> &&h) noexcept
-
638 {
-
639 // Transfer handle.
-
640 m_h = h.m_h;
-
641 h.m_h = invalid;
-
642 }
-
643
-
644 private:
-
645 // This class is noncopyable.
-
646 handle(_In_ const handle<handle_type, INVAL> &h) noexcept {};
-
647 handle<handle_type, INVAL>& operator=(_In_ const handle<handle_type, INVAL> &h) noexcept {};
-
648
-
649 public:
-
655 handle<handle_type, INVAL>& operator=(_In_opt_ handle_type h) noexcept
-
656 {
-
657 attach(h);
-
658 return *this;
-
659 }
-
660
-
666 #pragma warning(suppress: 26432) // Move constructor is also present, but not detected by code analysis somehow.
-
667 handle<handle_type, INVAL>& operator=(_Inout_ handle<handle_type, INVAL> &&h) noexcept
-
668 {
-
669 if (this != std::addressof(h)) {
-
670 // Transfer handle.
-
671 if (m_h != invalid)
-
672 free_internal();
-
673 m_h = h.m_h;
-
674 h.m_h = invalid;
-
675 }
-
676 return *this;
-
677 }
-
678
-
684 operator handle_type() const
-
685 {
-
686 return m_h;
-
687 }
-
688
-
694 handle_type*& operator*() const
-
695 {
-
696 assert(m_h != invalid);
-
697 return *m_h;
-
698 }
-
699
-
704 handle_type* operator&()
-
705 {
-
706 assert(m_h == invalid);
-
707 return &m_h;
-
708 }
-
709
-
715 handle_type operator->() const
-
716 {
-
717 assert(m_h != invalid);
-
718 return m_h;
-
719 }
-
720
-
728 bool operator!() const
-
729 {
-
730 return m_h == invalid;
-
731 }
-
732
-
741 bool operator<(_In_opt_ handle_type h) const
-
742 {
-
743 return m_h < h;
-
744 }
-
745
-
754 bool operator<=(_In_opt_ handle_type h) const
-
755 {
-
756 return !operator>(h);
-
757 }
-
758
-
767 bool operator>=(_In_opt_ handle_type h) const
-
768 {
-
769 return !operator<(h);
-
770 }
-
771
-
780 bool operator>(_In_opt_ handle_type h) const
-
781 {
-
782 return h < m_h;
-
783 }
-
784
-
793 bool operator!=(_In_opt_ handle_type h) const
-
794 {
-
795 return !operator==(h);
-
796 }
-
797
-
806 bool operator==(_In_opt_ handle_type h) const
-
807 {
-
808 return m_h == h;
-
809 }
-
810
-
818 void attach(_In_opt_ handle_type h) noexcept
-
819 {
-
820 if (m_h != invalid)
-
821 free_internal();
-
822 m_h = h;
-
823 }
-
824
-
830 handle_type detach()
-
831 {
-
832 handle_type h = m_h;
-
833 m_h = invalid;
-
834 return h;
-
835 }
-
836
-
840 void free()
-
841 {
-
842 if (m_h != invalid) {
-
843 free_internal();
-
844 m_h = invalid;
-
845 }
-
846 }
-
847
-
848 protected:
-
852 virtual void free_internal() noexcept = 0;
-
853
-
854 protected:
-
855 handle_type m_h;
-
856 };
-
857
-
858 template <class T, const T INVAL>
-
859 const T handle<T, INVAL>::invalid = INVAL;
-
860
-
864 template <class T, T INVAL>
-
865 class dplhandle : public handle<T, INVAL>
-
866 {
-
867 public:
-
871 dplhandle() noexcept
-
872 {
-
873 }
-
874
-
880 dplhandle(_In_opt_ handle_type h) noexcept : handle<handle_type, INVAL>(h)
-
881 {
-
882 }
-
883
-
889 dplhandle<handle_type, INVAL>(_In_ const dplhandle<handle_type, INVAL> &h) noexcept : handle<handle_type, INVAL>(duplicate_internal(h.m_h))
-
890 {
-
891 }
-
892
-
898 dplhandle<handle_type, INVAL>(_Inout_ dplhandle<handle_type, INVAL> &&h) noexcept : handle<handle_type, INVAL>(std::move(h))
-
899 {
-
900 }
-
901
-
907 dplhandle<handle_type, INVAL>& operator=(_In_opt_ handle_type h) noexcept
-
908 {
-
909 handle<handle_type, INVAL>::operator=(h);
-
910 return *this;
-
911 }
-
912
-
918 dplhandle<handle_type, INVAL>& operator=(_In_ const dplhandle<handle_type, INVAL> &h) noexcept
-
919 {
-
920 if (this != std::addressof(h)) {
-
921 if (h.m_h != invalid) {
-
922 handle_type h_new = duplicate_internal(h.m_h);
-
923 if (h_new != invalid) {
-
924 if (m_h != invalid)
-
925 free_internal();
-
926
-
927 m_h = h_new;
-
928 } else
-
929 assert(0); // Could not duplicate the handle
-
930 } else {
-
931 if (m_h != invalid)
-
932 free_internal();
-
933
-
934 m_h = invalid;
-
935 }
-
936 }
-
937 return *this;
-
938 }
-
939
-
945 #pragma warning(disable: 26432) // Move constructor is also present, but not detected by code analysis somehow.
-
946 dplhandle<handle_type, INVAL>& operator=(_Inout_ dplhandle<handle_type, INVAL> &&h) noexcept
-
947 {
-
948 handle<handle_type, INVAL>::operator=(std::move(h));
-
949 return *this;
-
950 }
-
951
-
957 handle_type duplicate() const
-
958 {
-
959 return m_h != invalid ? duplicate_internal(m_h) : invalid;
-
960 }
-
961
-
971 bool attach_duplicated(_In_opt_ handle_type h)
-
972 {
-
973 if (m_h != invalid)
-
974 free_internal();
-
975
-
976 return h != invalid ? (m_h = duplicate_internal(h)) != invalid : (m_h = invalid, true);
-
977 }
-
978
-
979 protected:
-
987 virtual handle_type duplicate_internal(_In_ handle_type h) const noexcept = 0;
-
988 };
-
989
-
991
-
997
-
1001 template <typename _Tn>
-
1002 class num_runtime_error : public std::runtime_error
-
1003 {
-
1004 public:
-
1005 typedef _Tn error_type;
-
1006
-
1007 public:
-
1014 num_runtime_error(_In_ error_type num, _In_ const std::string& msg) :
-
1015 m_num(num),
-
1016 runtime_error(msg)
-
1017 {
-
1018 }
-
1019
-
1026 num_runtime_error(_In_ error_type num, _In_opt_z_ const char *msg = nullptr) :
-
1027 m_num(num),
-
1028 runtime_error(msg)
-
1029 {
-
1030 }
-
1031
-
1035 error_type number() const
-
1036 {
-
1037 return m_num;
-
1038 }
-
1039
-
1040 protected:
-
1041 error_type m_num;
-
1042 };
-
1043
-
1047 class win_runtime_error : public num_runtime_error<DWORD>
-
1048 {
-
1049 public:
-
1056 win_runtime_error(_In_ error_type num, _In_ const std::string& msg) : num_runtime_error<DWORD>(num, msg)
-
1057 {
-
1058 }
-
1059
-
1066 win_runtime_error(_In_ error_type num, _In_opt_z_ const char *msg = nullptr) : num_runtime_error<DWORD>(num, msg)
-
1067 {
-
1068 }
-
1069
-
1075 win_runtime_error(_In_ const std::string& msg) : num_runtime_error<DWORD>(GetLastError(), msg)
-
1076 {
-
1077 }
-
1078
-
1084 win_runtime_error(_In_opt_z_ const char *msg = nullptr) : num_runtime_error<DWORD>(GetLastError(), msg)
-
1085 {
-
1086 }
-
1087
-
1093 tstring msg(_In_opt_ DWORD dwLanguageId = 0) const
-
1094 {
-
1095 tstring str;
-
1096 if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, 0, m_num, dwLanguageId, str, NULL)) {
-
1097 // Stock Windows error messages contain CRLF. Well... Trim all the trailing white space.
-
1098 str.erase(str.find_last_not_of(_T(" \t\n\r\f\v")) + 1);
-
1099 } else
-
1100 sprintf(str, m_num >= 0x10000 ? _T("Error 0x%X") : _T("Error %u"), m_num);
-
1101 return str;
-
1102 }
-
1103 };
-
1104
-
1106
-
1109
-
1113 template<class _Elem, class _Traits, class _Ax>
-
1114 class basic_string_printf : public std::basic_string<_Elem, _Traits, _Ax>
-
1115 {
-
1116 public:
-
1119
-
1125 basic_string_printf(_In_z_ _Printf_format_string_ const _Elem *format, ...)
-
1126 {
-
1127 va_list arg;
-
1128 va_start(arg, format);
-
1129 vsprintf(*this, format, arg);
-
1130 va_end(arg);
-
1131 }
-
1132
-
1134
-
1137
-
1144 basic_string_printf(_In_ HINSTANCE hInstance, _In_ UINT nFormatID, ...)
-
1145 {
-
1146 _Myt format;
-
1147 ATLENSURE(format.LoadString(hInstance, nFormatID));
-
1148
-
1149 va_list arg;
-
1150 va_start(arg, nFormatID);
-
1151 vsprintf(*this, format, arg);
-
1152 va_end(arg);
-
1153 }
-
1154
-
1162 basic_string_printf(_In_ HINSTANCE hInstance, _In_ WORD wLanguageID, _In_ UINT nFormatID, ...)
-
1163 {
-
1164 _Myt format;
-
1165 ATLENSURE(format.LoadString(hInstance, nFormatID, wLanguageID));
-
1166
-
1167 va_list arg;
-
1168 va_start(arg, nFormatID);
-
1169 vsprintf(*this, format, arg);
-
1170 va_end(arg);
-
1171 }
-
1172
-
1174 };
-
1175
-
1179 typedef basic_string_printf<char, std::char_traits<char>, std::allocator<char> > string_printf;
-
1180
-
1184 typedef basic_string_printf<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > wstring_printf;
-
1185
-
1189#ifdef _UNICODE
-
1190 typedef wstring_printf tstring_printf;
-
1191#else
-
1192 typedef string_printf tstring_printf;
-
1193#endif
-
1194
-
1198 template<class _Elem, class _Traits, class _Ax>
-
1199 class basic_string_msg : public std::basic_string<_Elem, _Traits, _Ax>
-
1200 {
-
1201 public:
-
1204
-
1210 basic_string_msg(_In_z_ _FormatMessage_format_string_ const _Elem *format, ...)
-
1211 {
-
1212 va_list arg;
-
1213 va_start(arg, format);
-
1214 FormatMessage(FORMAT_MESSAGE_FROM_STRING, format, 0, 0, *this, &arg);
-
1215 va_end(arg);
-
1216 }
-
1217
-
1219
-
1222
-
1229 basic_string_msg(_In_ HINSTANCE hInstance, _In_ UINT nFormatID, ...)
-
1230 {
-
1231 _Myt format(GetManager());
-
1232 ATLENSURE(format.LoadString(hInstance, nFormatID));
-
1233
-
1234 va_list arg;
-
1235 va_start(arg, nFormatID);
-
1236 FormatMessage(FORMAT_MESSAGE_FROM_STRING, format, 0, 0, *this, &arg);
-
1237 va_end(arg);
-
1238 }
-
1239
-
1247 basic_string_msg(_In_ HINSTANCE hInstance, _In_ WORD wLanguageID, _In_ UINT nFormatID, ...)
-
1248 {
-
1249 _Myt format(GetManager());
-
1250 ATLENSURE(format.LoadString(hInstance, nFormatID, wLanguageID));
-
1251
-
1252 va_list arg;
-
1253 va_start(arg, nFormatID);
-
1254 FormatMessage(FORMAT_MESSAGE_FROM_STRING, format, 0, 0, *this, &arg);
-
1255 va_end(arg);
-
1256 }
-
1257
-
1259
-
1265 basic_string_msg(_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _In_opt_ va_list *Arguments)
-
1266 {
-
1267 FormatMessage(dwFlags & ~FORMAT_MESSAGE_ARGUMENT_ARRAY, lpSource, dwMessageId, dwLanguageId, *this, Arguments);
-
1268 }
-
1269
-
1275 basic_string_msg(_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _In_opt_ DWORD_PTR *Arguments)
-
1276 {
-
1277 FormatMessage(dwFlags | FORMAT_MESSAGE_ARGUMENT_ARRAY, lpSource, dwMessageId, dwLanguageId, *this, (va_list*)Arguments);
-
1278 }
-
1279
-
1285 basic_string_msg(_In_ DWORD dwFlags, _In_z_ LPCTSTR pszFormat, _In_opt_ va_list *Arguments)
-
1286 {
-
1287 FormatMessage(dwFlags & ~FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_FROM_STRING, pszFormat, 0, 0, *this, Arguments);
-
1288 }
-
1289
-
1295 basic_string_msg(_In_ DWORD dwFlags, _In_z_ LPCTSTR pszFormat, _In_opt_ DWORD_PTR *Arguments)
-
1296 {
-
1297 FormatMessage(dwFlags | FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_FROM_STRING, pszFormat, 0, 0, *this, (va_list*)Arguments);
-
1298 }
-
1299 };
-
1300
-
1304 typedef basic_string_msg<char, std::char_traits<char>, std::allocator<char> > string_msg;
-
1305
-
1309 typedef basic_string_msg<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > wstring_msg;
-
1310
-
1314#ifdef _UNICODE
-
1315 typedef wstring_msg tstring_msg;
-
1316#else
-
1317 typedef string_msg tstring_msg;
-
1318#endif
-
1319
-
1323 template<class _Elem, class _Traits, class _Ax>
-
1324 class basic_string_guid : public std::basic_string<_Elem, _Traits, _Ax>
-
1325 {
-
1326 public:
-
1329
-
1336 basic_string_guid(_In_ const GUID &guid, _In_z_ _Printf_format_string_ const _Elem *format)
-
1337 {
-
1338 sprintf<_Elem, _Traits, _Ax>(*this, format,
-
1339 guid.Data1,
-
1340 guid.Data2,
-
1341 guid.Data3,
-
1342 guid.Data4[0], guid.Data4[1],
-
1343 guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]);
-
1344 }
-
1345
-
1347 };
-
1348
-
1352 class string_guid : public basic_string_guid<char, std::char_traits<char>, std::allocator<char> >
-
1353 {
-
1354 public:
-
1357
-
1363 string_guid(_In_ const GUID &guid) :
-
1364 basic_string_guid<char, std::char_traits<char>, std::allocator<char> >(guid, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}")
-
1365 {
-
1366 }
-
1367
-
1369 };
-
1370
-
1374 class wstring_guid : public basic_string_guid<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >
-
1375 {
-
1376 public:
-
1379
-
1385 wstring_guid(_In_ const GUID &guid) :
-
1386 basic_string_guid<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >(guid, L"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}")
-
1387 {
-
1388 }
-
1389
-
1391 };
-
1392
-
1396#ifdef _UNICODE
-
1397 typedef wstring_guid tstring_guid;
-
1398#else
-
1399 typedef string_guid tstring_guid;
-
1400#endif
-
1401
-
1403
-
1409
-
1410 // winstd::sanitizing_allocator::destroy() member generates _Ptr parameter not used warning for primitive datatypes _Ty.
-
1411 #pragma warning(push)
-
1412 #pragma warning(disable: 4100)
-
1413
-
1421 template<class _Ty>
-
1422 class sanitizing_allocator : public std::allocator<_Ty>
-
1423 {
-
1424 public:
-
1425 typedef std::allocator<_Ty> _Mybase;
-
1426
-
1430 template<class _Other>
-
1431 struct rebind
-
1432 {
-
1433 typedef sanitizing_allocator<_Other> other;
-
1434 };
-
1435
-
1439 sanitizing_allocator() noexcept : _Mybase()
-
1440 {
-
1441 }
-
1442
-
1446 sanitizing_allocator(_In_ const sanitizing_allocator<_Ty> &_Othr) : _Mybase(_Othr)
-
1447 {
-
1448 }
-
1449
-
1453 template<class _Other>
-
1454 sanitizing_allocator(_In_ const sanitizing_allocator<_Other> &_Othr) noexcept : _Mybase(_Othr)
-
1455 {
-
1456 }
-
1457
-
1461 void deallocate(_In_ pointer _Ptr, _In_ size_type _Size)
-
1462 {
-
1463 // Sanitize then free.
-
1464 SecureZeroMemory(_Ptr, _Size);
-
1465 _Mybase::deallocate(_Ptr, _Size);
-
1466 }
-
1467 };
-
1468
-
1469 #pragma warning(pop)
-
1470
-
1478 typedef std::basic_string<char, std::char_traits<char>, sanitizing_allocator<char> > sanitizing_string;
-
1479
-
1487 typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, sanitizing_allocator<wchar_t> > sanitizing_wstring;
-
1488
-
1492#ifdef _UNICODE
-
1493 typedef sanitizing_wstring sanitizing_tstring;
-
1494#else
-
1495 typedef sanitizing_string sanitizing_tstring;
-
1496#endif
-
1497
-
1501 template<size_t N>
-
1502 class sanitizing_blob
-
1503 {
-
1504 public:
-
1508 sanitizing_blob()
-
1509 {
-
1510 ZeroMemory(m_data, N);
-
1511 }
-
1512
-
1516 ~sanitizing_blob()
-
1517 {
-
1518 SecureZeroMemory(m_data, N);
-
1519 }
-
1520
-
1521 public:
-
1522 unsigned char m_data[N];
-
1523 };
-
1524
-
1526}
-
winstd::basic_string_guid
Base template class to support converting GUID to string.
Definition: Common.h:1325
-
winstd::basic_string_guid::basic_string_guid
basic_string_guid(const GUID &guid, const _Elem *format)
Initializes a new string and formats its contents to string representation of given GUID.
Definition: Common.h:1336
-
winstd::basic_string_msg
Base template class to support string formatting using FormatMessage() style templates.
Definition: Common.h:1200
-
winstd::basic_string_msg::basic_string_msg
basic_string_msg(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, DWORD_PTR *Arguments)
Initializes a new string and formats its contents using FormatMessage() style.
Definition: Common.h:1275
-
winstd::basic_string_msg::basic_string_msg
basic_string_msg(DWORD dwFlags, LPCTSTR pszFormat, va_list *Arguments)
Initializes a new string and formats its contents using FormatMessage() style.
Definition: Common.h:1285
-
winstd::basic_string_msg::basic_string_msg
basic_string_msg(HINSTANCE hInstance, WORD wLanguageID, UINT nFormatID,...)
Initializes a new string and formats its contents using FormatMessage() style template in resources.
Definition: Common.h:1247
-
winstd::basic_string_msg::basic_string_msg
basic_string_msg(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, va_list *Arguments)
Initializes a new string and formats its contents using FormatMessage() style.
Definition: Common.h:1265
-
winstd::basic_string_msg::basic_string_msg
basic_string_msg(const _Elem *format,...)
Initializes a new string and formats its contents using FormatMessage() style template.
Definition: Common.h:1210
-
winstd::basic_string_msg::basic_string_msg
basic_string_msg(HINSTANCE hInstance, UINT nFormatID,...)
Initializes a new string and formats its contents using FormatMessage() style template in resources.
Definition: Common.h:1229
-
winstd::basic_string_msg::basic_string_msg
basic_string_msg(DWORD dwFlags, LPCTSTR pszFormat, DWORD_PTR *Arguments)
Initializes a new string and formats its contents using FormatMessage() style.
Definition: Common.h:1295
-
winstd::basic_string_printf
Base template class to support string formatting using printf() style templates.
Definition: Common.h:1115
-
winstd::basic_string_printf::basic_string_printf
basic_string_printf(const _Elem *format,...)
Initializes a new string and formats its contents using printf() style template.
Definition: Common.h:1125
-
winstd::basic_string_printf::basic_string_printf
basic_string_printf(HINSTANCE hInstance, WORD wLanguageID, UINT nFormatID,...)
Initializes a new string and formats its contents using printf() style template in resources.
Definition: Common.h:1162
-
winstd::basic_string_printf::basic_string_printf
basic_string_printf(HINSTANCE hInstance, UINT nFormatID,...)
Initializes a new string and formats its contents using printf() style template in resources.
Definition: Common.h:1144
-
winstd::dplhandle
Base abstract template class to support object handle keeping for objects that support handle duplica...
Definition: Common.h:866
-
winstd::dplhandle::operator=
dplhandle< handle_type, INVAL > & operator=(handle_type h) noexcept
Attaches already available object handle.
Definition: Common.h:907
-
winstd::dplhandle::duplicate
handle_type duplicate() const
Duplicates and returns a new object handle.
Definition: Common.h:957
-
winstd::dplhandle::operator=
dplhandle< handle_type, INVAL > & operator=(dplhandle< handle_type, INVAL > &&h) noexcept
Moves the object.
Definition: Common.h:946
-
winstd::dplhandle::attach_duplicated
bool attach_duplicated(handle_type h)
Duplicates an object handle and sets a new object handle.
Definition: Common.h:971
+
9#include <Windows.h>
+
10#include <assert.h>
+
11#include <stdarg.h>
+
12#include <tchar.h>
+
13#include <iostream>
+
14#include <memory>
+
15#include <stdexcept>
+
16#include <string>
+
17#include <vector>
+
18
+
24
+
28#ifndef __L
+
29#define __L(x) L ## x
+
30#endif
+
31
+
35#ifndef _L
+
36#define _L(x) __L(x)
+
37#endif
+
38
+
42#define WINSTD_STRING_IMPL(x) #x
+
43
+
47#define WINSTD_STRING(x) WINSTD_STRING_IMPL(x)
+
48
+
52#define WINSTD_NONCOPYABLE(C) \
+
53private: \
+
54 C (_In_ const C &h) noexcept; \
+
55 C& operator=(_In_ const C &h) noexcept;
+
56
+
60#define WINSTD_NONMOVABLE(C) \
+
61private: \
+
62 C (_Inout_ C &&h) noexcept; \
+
63 C& operator=(_Inout_ C &&h) noexcept;
+
64
+
65#ifndef WINSTD_STACK_BUFFER_BYTES
+
79#define WINSTD_STACK_BUFFER_BYTES 1024
+
80#endif
+
81
+
83
+
95
+
99#ifdef UNICODE
+
100#define PRINTF_LPTSTR "ls"
+
101#else
+
102#define PRINTF_LPTSTR "s"
+
103#endif
+
104
+
108#ifdef OLE2ANSI
+
109#define PRINTF_LPOLESTR "hs"
+
110#else
+
111#define PRINTF_LPOLESTR "ls"
+
112#endif
+
113
+
117#ifdef _UNICODE
+
118#define _tcin (std::wcin )
+
119#else
+
120#define _tcin (std::cin )
+
121#endif
+
122
+
126#ifdef _UNICODE
+
127#define _tcout (std::wcout)
+
128#else
+
129#define _tcout (std::cout)
+
130#endif
+
131
+
135#ifdef _UNICODE
+
136#define _tcerr (std::wcerr)
+
137#else
+
138#define _tcerr (std::cerr)
+
139#endif
+
140
+
144#ifdef _UNICODE
+
145#define _tclog (std::wclog)
+
146#else
+
147#define _tclog (std::clog)
+
148#endif
+
149
+
151
+
157
+
161#define WINSTD_HANDLE_IMPL(C, INVAL) \
+
162public: \
+
163 C ( ) noexcept { } \
+
164 C (_In_opt_ handle_type h) noexcept : handle<handle_type, INVAL>( h ) { } \
+
165 C (_Inout_ C &&h) noexcept : handle<handle_type, INVAL>(std::move(h)) { } \
+
166 C& operator=(_In_opt_ handle_type h) noexcept { handle<handle_type, INVAL>::operator=( h ); return *this; } \
+
167 C& operator=(_Inout_ C &&h) noexcept { handle<handle_type, INVAL>::operator=(std::move(h)); return *this; } \
+
168WINSTD_NONCOPYABLE(C)
+
169
+
173#define WINSTD_DPLHANDLE_IMPL(C, INVAL) \
+
174public: \
+
175 C ( ) noexcept { } \
+
176 C (_In_opt_ handle_type h) noexcept : dplhandle<handle_type, INVAL>( h ) { } \
+
177 C (_In_ const C &h) noexcept : dplhandle<handle_type, INVAL>(duplicate_internal(h.m_h)) { } \
+
178 C (_Inout_ C &&h) noexcept : dplhandle<handle_type, INVAL>(std::move (h )) { } \
+
179 C& operator=(_In_opt_ handle_type h) noexcept { dplhandle<handle_type, INVAL>::operator=( h ); return *this; } \
+
180 C& operator=(_In_ const C &h) noexcept { dplhandle<handle_type, INVAL>::operator=( h ); return *this; } \
+
181 C& operator=(_Inout_ C &&h) noexcept { dplhandle<handle_type, INVAL>::operator=(std::move(h)); return *this; } \
+
182private:
+
183
+
185
+
186#ifndef _FormatMessage_format_string_
+
187#define _FormatMessage_format_string_ _In_z_
+
188#endif
+
189
+
190#ifndef _LPCBYTE_DEFINED
+
191#define _LPCBYTE_DEFINED
+
192typedef const BYTE *LPCBYTE;
+
193#endif
+
194
+
195#pragma warning(push)
+
196// Do not use _vsnprintf_s/_vsnwprintf_s(), since it terminates string by force even when we explicitly want to write unterminated string.
+
197// Threfore turn off compiler warning instead. ;)
+
198#pragma warning(disable: 4995)
+
199#pragma warning(disable: 4996)
+
200#pragma warning(disable: 4505) // Don't warn on unused code
+
201
+
204
+
215#if _MSC_VER <= 1600
+
216static int vsnprintf(_Out_z_cap_(capacity) char *str, _In_ size_t capacity, _In_z_ _Printf_format_string_ const char *format, _In_ va_list arg)
+
217{
+
218 return _vsnprintf(str, capacity, format, arg);
+
219}
+
220#endif
+
221
+
232static int vsnprintf(_Out_z_cap_(capacity) wchar_t *str, _In_ size_t capacity, _In_z_ _Printf_format_string_ const wchar_t *format, _In_ va_list arg) noexcept
+
233{
+
234 return _vsnwprintf(str, capacity, format, arg);
+
235}
+
236
+
246template<class _Elem, class _Traits, class _Ax>
+
247static int vsprintf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_ const _Elem *format, _In_ va_list arg)
+
248{
+
249 _Elem buf[WINSTD_STACK_BUFFER_BYTES/sizeof(_Elem)];
+
250
+
251 // Try with stack buffer first.
+
252 int count = vsnprintf(buf, _countof(buf) - 1, format, arg);
+
253 if (count >= 0) {
+
254 // Copy from stack.
+
255 str.assign(buf, count);
+
256 } else {
+
257 for (size_t capacity = 2*WINSTD_STACK_BUFFER_BYTES/sizeof(_Elem);; capacity *= 2) {
+
258 // Allocate on heap and retry.
+
259 auto buf_dyn = std::make_unique<_Elem[]>(capacity);
+
260 count = vsnprintf(buf_dyn.get(), capacity - 1, format, arg);
+
261 if (count >= 0) {
+
262 str.assign(buf_dyn.get(), count);
+
263 break;
+
264 }
+
265 }
+
266 }
+
267
+
268 return count;
+
269}
+
270
+
279template<class _Elem, class _Traits, class _Ax>
+
280static int sprintf(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &str, _In_z_ _Printf_format_string_ const _Elem *format, ...)
+
281{
+
282 va_list arg;
+
283 va_start(arg, format);
+
284 const int res = vsprintf(str, format, arg);
+
285 va_end(arg);
+
286 return res;
+
287}
+
288
+
294template<class _Traits, class _Ax>
+
295static DWORD FormatMessage(_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _Inout_ std::basic_string<char, _Traits, _Ax> &str, _In_opt_ va_list *Arguments)
+
296{
+
297 std::unique_ptr<CHAR[], winstd::LocalFree_delete<CHAR[]> > lpBuffer;
+
298 DWORD dwResult = FormatMessageA(dwFlags | FORMAT_MESSAGE_ALLOCATE_BUFFER, lpSource, dwMessageId, dwLanguageId, reinterpret_cast<LPSTR>((LPSTR*)get_ptr(lpBuffer)), 0, Arguments);
+
299 if (dwResult)
+
300 str.assign(lpBuffer.get(), dwResult);
+
301 return dwResult;
+
302}
+
303
+
309template<class _Traits, class _Ax>
+
310static DWORD FormatMessage(_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _Inout_ std::basic_string<wchar_t, _Traits, _Ax> &str, _In_opt_ va_list *Arguments)
+
311{
+
312 std::unique_ptr<WCHAR[], winstd::LocalFree_delete<WCHAR[]> > lpBuffer;
+
313 DWORD dwResult = FormatMessageW(dwFlags | FORMAT_MESSAGE_ALLOCATE_BUFFER, lpSource, dwMessageId, dwLanguageId, reinterpret_cast<LPWSTR>((LPWSTR*)get_ptr(lpBuffer)), 0, Arguments);
+
314 if (dwResult)
+
315 str.assign(lpBuffer.get(), dwResult);
+
316 return dwResult;
+
317}
+
318
+
320
+
321#pragma warning(pop)
+
322
+
323namespace winstd
+
324{
+
327
+
331#ifdef _UNICODE
+
332 typedef std::wstring tstring;
+
333#else
+
334 typedef std::string tstring;
+
335#endif
+
336
+
340 template <class _Ty>
+
341 struct LocalFree_delete
+
342 {
+
343 typedef LocalFree_delete<_Ty> _Myt;
+
344
+
348 LocalFree_delete() {}
+
349
+
353 template <class _Ty2> LocalFree_delete(const LocalFree_delete<_Ty2>&) {}
+
354
+
360 void operator()(_Ty *_Ptr) const
+
361 {
+
362 LocalFree(_Ptr);
+
363 }
+
364 };
+
365
+
369 template <class _Ty>
+
370 struct LocalFree_delete<_Ty[]>
+
371 {
+
372 typedef LocalFree_delete<_Ty> _Myt;
+
373
+
377 LocalFree_delete() noexcept {}
+
378
+
382 void operator()(_Frees_ptr_opt_ _Ty *_Ptr) const noexcept
+
383 {
+
384 LocalFree(_Ptr);
+
385 }
+
386
+
392 template<class _Other>
+
393 void operator()(_Other *) const
+
394 {
+
395 LocalFree(_Ptr);
+
396 }
+
397 };
+
398
+
402 template<class _Ty, class _Dx>
+
403 class ref_unique_ptr
+
404 {
+
405 public:
+
411 ref_unique_ptr(_Inout_ std::unique_ptr<_Ty, _Dx> &owner) :
+
412 m_own(owner),
+
413 m_ptr(owner.release())
+
414 {}
+
415
+
421 ref_unique_ptr(_Inout_ ref_unique_ptr<_Ty, _Dx> &&other) :
+
422 m_own(other.m_own),
+
423 m_ptr(other.m_ptr)
+
424 {
+
425 other.m_ptr = nullptr;
+
426 }
+
427
+
431 ~ref_unique_ptr()
+
432 {
+
433 if (m_ptr != nullptr)
+
434 m_own.reset(m_ptr);
+
435 }
+
436
+
442 operator typename _Ty**()
+
443 {
+
444 return &m_ptr;
+
445 }
+
446
+
452 operator typename _Ty*&()
+
453 {
+
454 return m_ptr;
+
455 }
+
456
+
457 protected:
+
458 std::unique_ptr<_Ty, _Dx> &m_own;
+
459 _Ty *m_ptr;
+
460 };
+
461
+
469 template<class _Ty, class _Dx>
+
470 ref_unique_ptr<_Ty, _Dx> get_ptr(_Inout_ std::unique_ptr<_Ty, _Dx> &owner) noexcept
+
471 {
+
472 return ref_unique_ptr<_Ty, _Dx>(owner);
+
473 }
+
474
+
483 template<class _Ty, class _Dx>
+
484 ref_unique_ptr<_Ty[], _Dx> get_ptr(_Inout_ std::unique_ptr<_Ty[], _Dx> &owner) noexcept
+
485 {
+
486 return ref_unique_ptr<_Ty[], _Dx>(owner);
+
487 }
+
488
+
493 #pragma warning(push)
+
494 #pragma warning(disable: 26432) // Copy constructor and assignment operator are also present, but not detected by code analysis as they are using base type source object reference.
+
495 template<class _Ty, class _Dx>
+
496 class ref_unique_ptr<_Ty[], _Dx>
+
497 {
+
498 public:
+
504 ref_unique_ptr(_Inout_ std::unique_ptr<_Ty[], _Dx> &owner) noexcept :
+
505 m_own(owner),
+
506 m_ptr(owner.release())
+
507 {}
+
508
+
516 ref_unique_ptr& operator=(_Inout_ std::unique_ptr<_Ty[], _Dx> &owner) noexcept
+
517 {
+
518 if (this != &other) {
+
519 m_own = owner;
+
520 m_ptr = owner.release();
+
521 }
+
522
+
523 return *this;
+
524 }
+
525
+
531 ref_unique_ptr(_Inout_ ref_unique_ptr<_Ty[], _Dx> &&other) :
+
532 m_own(other.m_own),
+
533 m_ptr(other.m_ptr)
+
534 {
+
535 other.m_ptr = nullptr;
+
536 }
+
537
+
545 ref_unique_ptr& operator=(_Inout_ ref_unique_ptr<_Ty[], _Dx> &&other)
+
546 {
+
547 if (this != &other) {
+
548 m_own = other.m_own;
+
549 m_ptr = other.m_ptr;
+
550 other.m_ptr = nullptr;
+
551 }
+
552
+
553 return *this;
+
554 }
+
555
+
559 virtual ~ref_unique_ptr()
+
560 {
+
561 if (m_ptr != nullptr)
+
562 m_own.reset(m_ptr);
+
563 }
+
564
+
570 operator typename _Ty**() noexcept
+
571 {
+
572 return &m_ptr;
+
573 }
+
574
+
580 operator typename _Ty*&()
+
581 {
+
582 return m_ptr;
+
583 }
+
584
+
585 protected:
+
586 std::unique_ptr<_Ty[], _Dx> &m_own;
+
587 _Ty *m_ptr;
+
588 };
+
589 #pragma warning(pop)
+
590
+
592
+
595
+
601 template <class T, const T INVAL>
+
602 class handle
+
603 {
+
604 public:
+
608 typedef T handle_type;
+
609
+
613 static const T invalid;
+
614
+
618 handle() noexcept : m_h(invalid)
+
619 {
+
620 }
+
621
+
627 handle(_In_opt_ handle_type h) noexcept : m_h(h)
+
628 {
+
629 }
+
630
+
636 handle(_Inout_ handle<handle_type, INVAL> &&h) noexcept
+
637 {
+
638 // Transfer handle.
+
639 m_h = h.m_h;
+
640 h.m_h = invalid;
+
641 }
+
642
+
643 private:
+
644 // This class is noncopyable.
+
645 handle(_In_ const handle<handle_type, INVAL> &h) noexcept {};
+
646 handle<handle_type, INVAL>& operator=(_In_ const handle<handle_type, INVAL> &h) noexcept {};
+
647
+
648 public:
+
654 handle<handle_type, INVAL>& operator=(_In_opt_ handle_type h) noexcept
+
655 {
+
656 attach(h);
+
657 return *this;
+
658 }
+
659
+
665 #pragma warning(suppress: 26432) // Move constructor is also present, but not detected by code analysis somehow.
+
666 handle<handle_type, INVAL>& operator=(_Inout_ handle<handle_type, INVAL> &&h) noexcept
+
667 {
+
668 if (this != std::addressof(h)) {
+
669 // Transfer handle.
+
670 if (m_h != invalid)
+
671 free_internal();
+
672 m_h = h.m_h;
+
673 h.m_h = invalid;
+
674 }
+
675 return *this;
+
676 }
+
677
+
683 operator handle_type() const
+
684 {
+
685 return m_h;
+
686 }
+
687
+
693 handle_type*& operator*() const
+
694 {
+
695 assert(m_h != invalid);
+
696 return *m_h;
+
697 }
+
698
+
703 handle_type* operator&()
+
704 {
+
705 assert(m_h == invalid);
+
706 return &m_h;
+
707 }
+
708
+
714 handle_type operator->() const
+
715 {
+
716 assert(m_h != invalid);
+
717 return m_h;
+
718 }
+
719
+
727 bool operator!() const
+
728 {
+
729 return m_h == invalid;
+
730 }
+
731
+
740 bool operator<(_In_opt_ handle_type h) const
+
741 {
+
742 return m_h < h;
+
743 }
+
744
+
753 bool operator<=(_In_opt_ handle_type h) const
+
754 {
+
755 return !operator>(h);
+
756 }
+
757
+
766 bool operator>=(_In_opt_ handle_type h) const
+
767 {
+
768 return !operator<(h);
+
769 }
+
770
+
779 bool operator>(_In_opt_ handle_type h) const
+
780 {
+
781 return h < m_h;
+
782 }
+
783
+
792 bool operator!=(_In_opt_ handle_type h) const
+
793 {
+
794 return !operator==(h);
+
795 }
+
796
+
805 bool operator==(_In_opt_ handle_type h) const
+
806 {
+
807 return m_h == h;
+
808 }
+
809
+
817 void attach(_In_opt_ handle_type h) noexcept
+
818 {
+
819 if (m_h != invalid)
+
820 free_internal();
+
821 m_h = h;
+
822 }
+
823
+
829 handle_type detach()
+
830 {
+
831 handle_type h = m_h;
+
832 m_h = invalid;
+
833 return h;
+
834 }
+
835
+
839 void free()
+
840 {
+
841 if (m_h != invalid) {
+
842 free_internal();
+
843 m_h = invalid;
+
844 }
+
845 }
+
846
+
847 protected:
+
851 virtual void free_internal() noexcept = 0;
+
852
+
853 protected:
+
854 handle_type m_h;
+
855 };
+
856
+
857 template <class T, const T INVAL>
+
858 const T handle<T, INVAL>::invalid = INVAL;
+
859
+
863 template <class T, T INVAL>
+
864 class dplhandle : public handle<T, INVAL>
+
865 {
+
866 public:
+
870 dplhandle() noexcept
+
871 {
+
872 }
+
873
+
879 dplhandle(_In_opt_ handle_type h) noexcept : handle<handle_type, INVAL>(h)
+
880 {
+
881 }
+
882
+
888 dplhandle<handle_type, INVAL>(_In_ const dplhandle<handle_type, INVAL> &h) noexcept : handle<handle_type, INVAL>(duplicate_internal(h.m_h))
+
889 {
+
890 }
+
891
+
897 dplhandle<handle_type, INVAL>(_Inout_ dplhandle<handle_type, INVAL> &&h) noexcept : handle<handle_type, INVAL>(std::move(h))
+
898 {
+
899 }
+
900
+
906 dplhandle<handle_type, INVAL>& operator=(_In_opt_ handle_type h) noexcept
+
907 {
+
908 handle<handle_type, INVAL>::operator=(h);
+
909 return *this;
+
910 }
+
911
+
917 dplhandle<handle_type, INVAL>& operator=(_In_ const dplhandle<handle_type, INVAL> &h) noexcept
+
918 {
+
919 if (this != std::addressof(h)) {
+
920 if (h.m_h != invalid) {
+
921 handle_type h_new = duplicate_internal(h.m_h);
+
922 if (h_new != invalid) {
+
923 if (m_h != invalid)
+
924 free_internal();
+
925
+
926 m_h = h_new;
+
927 } else
+
928 assert(0); // Could not duplicate the handle
+
929 } else {
+
930 if (m_h != invalid)
+
931 free_internal();
+
932
+
933 m_h = invalid;
+
934 }
+
935 }
+
936 return *this;
+
937 }
+
938
+
944 #pragma warning(disable: 26432) // Move constructor is also present, but not detected by code analysis somehow.
+
945 dplhandle<handle_type, INVAL>& operator=(_Inout_ dplhandle<handle_type, INVAL> &&h) noexcept
+
946 {
+
947 handle<handle_type, INVAL>::operator=(std::move(h));
+
948 return *this;
+
949 }
+
950
+
956 handle_type duplicate() const
+
957 {
+
958 return m_h != invalid ? duplicate_internal(m_h) : invalid;
+
959 }
+
960
+
970 bool attach_duplicated(_In_opt_ handle_type h)
+
971 {
+
972 if (m_h != invalid)
+
973 free_internal();
+
974
+
975 return h != invalid ? (m_h = duplicate_internal(h)) != invalid : (m_h = invalid, true);
+
976 }
+
977
+
978 protected:
+
986 virtual handle_type duplicate_internal(_In_ handle_type h) const noexcept = 0;
+
987 };
+
988
+
990
+
996
+
1000 template <typename _Tn>
+
1001 class num_runtime_error : public std::runtime_error
+
1002 {
+
1003 public:
+
1004 typedef _Tn error_type;
+
1005
+
1006 public:
+
1013 num_runtime_error(_In_ error_type num, _In_ const std::string& msg) :
+
1014 m_num(num),
+
1015 runtime_error(msg)
+
1016 {
+
1017 }
+
1018
+
1025 num_runtime_error(_In_ error_type num, _In_opt_z_ const char *msg = nullptr) :
+
1026 m_num(num),
+
1027 runtime_error(msg)
+
1028 {
+
1029 }
+
1030
+
1034 error_type number() const
+
1035 {
+
1036 return m_num;
+
1037 }
+
1038
+
1039 protected:
+
1040 error_type m_num;
+
1041 };
+
1042
+
1046 class win_runtime_error : public num_runtime_error<DWORD>
+
1047 {
+
1048 public:
+
1055 win_runtime_error(_In_ error_type num, _In_ const std::string& msg) : num_runtime_error<DWORD>(num, msg)
+
1056 {
+
1057 }
+
1058
+
1065 win_runtime_error(_In_ error_type num, _In_opt_z_ const char *msg = nullptr) : num_runtime_error<DWORD>(num, msg)
+
1066 {
+
1067 }
+
1068
+
1074 win_runtime_error(_In_ const std::string& msg) : num_runtime_error<DWORD>(GetLastError(), msg)
+
1075 {
+
1076 }
+
1077
+
1083 win_runtime_error(_In_opt_z_ const char *msg = nullptr) : num_runtime_error<DWORD>(GetLastError(), msg)
+
1084 {
+
1085 }
+
1086
+
1092 tstring msg(_In_opt_ DWORD dwLanguageId = 0) const
+
1093 {
+
1094 tstring str;
+
1095 if (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, 0, m_num, dwLanguageId, str, NULL)) {
+
1096 // Stock Windows error messages contain CRLF. Well... Trim all the trailing white space.
+
1097 str.erase(str.find_last_not_of(_T(" \t\n\r\f\v")) + 1);
+
1098 } else
+
1099 sprintf(str, m_num >= 0x10000 ? _T("Error 0x%X") : _T("Error %u"), m_num);
+
1100 return str;
+
1101 }
+
1102 };
+
1103
+
1105
+
1108
+
1112 template<class _Elem, class _Traits, class _Ax>
+
1113 class basic_string_printf : public std::basic_string<_Elem, _Traits, _Ax>
+
1114 {
+
1115 public:
+
1118
+
1124 basic_string_printf(_In_z_ _Printf_format_string_ const _Elem *format, ...)
+
1125 {
+
1126 va_list arg;
+
1127 va_start(arg, format);
+
1128 vsprintf(*this, format, arg);
+
1129 va_end(arg);
+
1130 }
+
1131
+
1133
+
1136
+
1143 basic_string_printf(_In_ HINSTANCE hInstance, _In_ UINT nFormatID, ...)
+
1144 {
+
1145 _Myt format;
+
1146 ATLENSURE(format.LoadString(hInstance, nFormatID));
+
1147
+
1148 va_list arg;
+
1149 va_start(arg, nFormatID);
+
1150 vsprintf(*this, format, arg);
+
1151 va_end(arg);
+
1152 }
+
1153
+
1161 basic_string_printf(_In_ HINSTANCE hInstance, _In_ WORD wLanguageID, _In_ UINT nFormatID, ...)
+
1162 {
+
1163 _Myt format;
+
1164 ATLENSURE(format.LoadString(hInstance, nFormatID, wLanguageID));
+
1165
+
1166 va_list arg;
+
1167 va_start(arg, nFormatID);
+
1168 vsprintf(*this, format, arg);
+
1169 va_end(arg);
+
1170 }
+
1171
+
1173 };
+
1174
+
1178 typedef basic_string_printf<char, std::char_traits<char>, std::allocator<char> > string_printf;
+
1179
+
1183 typedef basic_string_printf<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > wstring_printf;
+
1184
+
1188#ifdef _UNICODE
+
1189 typedef wstring_printf tstring_printf;
+
1190#else
+
1191 typedef string_printf tstring_printf;
+
1192#endif
+
1193
+
1197 template<class _Elem, class _Traits, class _Ax>
+
1198 class basic_string_msg : public std::basic_string<_Elem, _Traits, _Ax>
+
1199 {
+
1200 public:
+
1203
+
1209 basic_string_msg(_In_z_ _FormatMessage_format_string_ const _Elem *format, ...)
+
1210 {
+
1211 va_list arg;
+
1212 va_start(arg, format);
+
1213 FormatMessage(FORMAT_MESSAGE_FROM_STRING, format, 0, 0, *this, &arg);
+
1214 va_end(arg);
+
1215 }
+
1216
+
1218
+
1221
+
1228 basic_string_msg(_In_ HINSTANCE hInstance, _In_ UINT nFormatID, ...)
+
1229 {
+
1230 _Myt format(GetManager());
+
1231 ATLENSURE(format.LoadString(hInstance, nFormatID));
+
1232
+
1233 va_list arg;
+
1234 va_start(arg, nFormatID);
+
1235 FormatMessage(FORMAT_MESSAGE_FROM_STRING, format, 0, 0, *this, &arg);
+
1236 va_end(arg);
+
1237 }
+
1238
+
1246 basic_string_msg(_In_ HINSTANCE hInstance, _In_ WORD wLanguageID, _In_ UINT nFormatID, ...)
+
1247 {
+
1248 _Myt format(GetManager());
+
1249 ATLENSURE(format.LoadString(hInstance, nFormatID, wLanguageID));
+
1250
+
1251 va_list arg;
+
1252 va_start(arg, nFormatID);
+
1253 FormatMessage(FORMAT_MESSAGE_FROM_STRING, format, 0, 0, *this, &arg);
+
1254 va_end(arg);
+
1255 }
+
1256
+
1258
+
1264 basic_string_msg(_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _In_opt_ va_list *Arguments)
+
1265 {
+
1266 FormatMessage(dwFlags & ~FORMAT_MESSAGE_ARGUMENT_ARRAY, lpSource, dwMessageId, dwLanguageId, *this, Arguments);
+
1267 }
+
1268
+
1274 basic_string_msg(_In_ DWORD dwFlags, _In_opt_ LPCVOID lpSource, _In_ DWORD dwMessageId, _In_ DWORD dwLanguageId, _In_opt_ DWORD_PTR *Arguments)
+
1275 {
+
1276 FormatMessage(dwFlags | FORMAT_MESSAGE_ARGUMENT_ARRAY, lpSource, dwMessageId, dwLanguageId, *this, (va_list*)Arguments);
+
1277 }
+
1278
+
1284 basic_string_msg(_In_ DWORD dwFlags, _In_z_ LPCTSTR pszFormat, _In_opt_ va_list *Arguments)
+
1285 {
+
1286 FormatMessage(dwFlags & ~FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_FROM_STRING, pszFormat, 0, 0, *this, Arguments);
+
1287 }
+
1288
+
1294 basic_string_msg(_In_ DWORD dwFlags, _In_z_ LPCTSTR pszFormat, _In_opt_ DWORD_PTR *Arguments)
+
1295 {
+
1296 FormatMessage(dwFlags | FORMAT_MESSAGE_ARGUMENT_ARRAY | FORMAT_MESSAGE_FROM_STRING, pszFormat, 0, 0, *this, (va_list*)Arguments);
+
1297 }
+
1298 };
+
1299
+
1303 typedef basic_string_msg<char, std::char_traits<char>, std::allocator<char> > string_msg;
+
1304
+
1308 typedef basic_string_msg<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > wstring_msg;
+
1309
+
1313#ifdef _UNICODE
+
1314 typedef wstring_msg tstring_msg;
+
1315#else
+
1316 typedef string_msg tstring_msg;
+
1317#endif
+
1318
+
1322 template<class _Elem, class _Traits, class _Ax>
+
1323 class basic_string_guid : public std::basic_string<_Elem, _Traits, _Ax>
+
1324 {
+
1325 public:
+
1328
+
1335 basic_string_guid(_In_ const GUID &guid, _In_z_ _Printf_format_string_ const _Elem *format)
+
1336 {
+
1337 sprintf<_Elem, _Traits, _Ax>(*this, format,
+
1338 guid.Data1,
+
1339 guid.Data2,
+
1340 guid.Data3,
+
1341 guid.Data4[0], guid.Data4[1],
+
1342 guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]);
+
1343 }
+
1344
+
1346 };
+
1347
+
1351 class string_guid : public basic_string_guid<char, std::char_traits<char>, std::allocator<char> >
+
1352 {
+
1353 public:
+
1356
+
1362 string_guid(_In_ const GUID &guid) :
+
1363 basic_string_guid<char, std::char_traits<char>, std::allocator<char> >(guid, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}")
+
1364 {
+
1365 }
+
1366
+
1368 };
+
1369
+
1373 class wstring_guid : public basic_string_guid<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >
+
1374 {
+
1375 public:
+
1378
+
1384 wstring_guid(_In_ const GUID &guid) :
+
1385 basic_string_guid<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >(guid, L"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}")
+
1386 {
+
1387 }
+
1388
+
1390 };
+
1391
+
1395#ifdef _UNICODE
+
1396 typedef wstring_guid tstring_guid;
+
1397#else
+
1398 typedef string_guid tstring_guid;
+
1399#endif
+
1400
+
1402
+
1408
+
1409 // winstd::sanitizing_allocator::destroy() member generates _Ptr parameter not used warning for primitive datatypes _Ty.
+
1410 #pragma warning(push)
+
1411 #pragma warning(disable: 4100)
+
1412
+
1420 template<class _Ty>
+
1421 class sanitizing_allocator : public std::allocator<_Ty>
+
1422 {
+
1423 public:
+
1424 typedef std::allocator<_Ty> _Mybase;
+
1425
+
1429 template<class _Other>
+
1430 struct rebind
+
1431 {
+
1432 typedef sanitizing_allocator<_Other> other;
+
1433 };
+
1434
+
1438 sanitizing_allocator() noexcept : _Mybase()
+
1439 {
+
1440 }
+
1441
+
1445 sanitizing_allocator(_In_ const sanitizing_allocator<_Ty> &_Othr) : _Mybase(_Othr)
+
1446 {
+
1447 }
+
1448
+
1452 template<class _Other>
+
1453 sanitizing_allocator(_In_ const sanitizing_allocator<_Other> &_Othr) noexcept : _Mybase(_Othr)
+
1454 {
+
1455 }
+
1456
+
1460 void deallocate(_In_ pointer _Ptr, _In_ size_type _Size)
+
1461 {
+
1462 // Sanitize then free.
+
1463 SecureZeroMemory(_Ptr, _Size);
+
1464 _Mybase::deallocate(_Ptr, _Size);
+
1465 }
+
1466 };
+
1467
+
1468 #pragma warning(pop)
+
1469
+
1477 typedef std::basic_string<char, std::char_traits<char>, sanitizing_allocator<char> > sanitizing_string;
+
1478
+
1486 typedef std::basic_string<wchar_t, std::char_traits<wchar_t>, sanitizing_allocator<wchar_t> > sanitizing_wstring;
+
1487
+
1491#ifdef _UNICODE
+
1492 typedef sanitizing_wstring sanitizing_tstring;
+
1493#else
+
1494 typedef sanitizing_string sanitizing_tstring;
+
1495#endif
+
1496
+
1500 template<size_t N>
+
1501 class sanitizing_blob
+
1502 {
+
1503 public:
+
1507 sanitizing_blob()
+
1508 {
+
1509 ZeroMemory(m_data, N);
+
1510 }
+
1511
+
1515 ~sanitizing_blob()
+
1516 {
+
1517 SecureZeroMemory(m_data, N);
+
1518 }
+
1519
+
1520 public:
+
1521 unsigned char m_data[N];
+
1522 };
+
1523
+
1525}
+
winstd::basic_string_guid
Base template class to support converting GUID to string.
Definition: Common.h:1324
+
winstd::basic_string_guid::basic_string_guid
basic_string_guid(const GUID &guid, const _Elem *format)
Initializes a new string and formats its contents to string representation of given GUID.
Definition: Common.h:1335
+
winstd::basic_string_msg
Base template class to support string formatting using FormatMessage() style templates.
Definition: Common.h:1199
+
winstd::basic_string_msg::basic_string_msg
basic_string_msg(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, DWORD_PTR *Arguments)
Initializes a new string and formats its contents using FormatMessage() style.
Definition: Common.h:1274
+
winstd::basic_string_msg::basic_string_msg
basic_string_msg(DWORD dwFlags, LPCTSTR pszFormat, va_list *Arguments)
Initializes a new string and formats its contents using FormatMessage() style.
Definition: Common.h:1284
+
winstd::basic_string_msg::basic_string_msg
basic_string_msg(HINSTANCE hInstance, WORD wLanguageID, UINT nFormatID,...)
Initializes a new string and formats its contents using FormatMessage() style template in resources.
Definition: Common.h:1246
+
winstd::basic_string_msg::basic_string_msg
basic_string_msg(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, va_list *Arguments)
Initializes a new string and formats its contents using FormatMessage() style.
Definition: Common.h:1264
+
winstd::basic_string_msg::basic_string_msg
basic_string_msg(const _Elem *format,...)
Initializes a new string and formats its contents using FormatMessage() style template.
Definition: Common.h:1209
+
winstd::basic_string_msg::basic_string_msg
basic_string_msg(HINSTANCE hInstance, UINT nFormatID,...)
Initializes a new string and formats its contents using FormatMessage() style template in resources.
Definition: Common.h:1228
+
winstd::basic_string_msg::basic_string_msg
basic_string_msg(DWORD dwFlags, LPCTSTR pszFormat, DWORD_PTR *Arguments)
Initializes a new string and formats its contents using FormatMessage() style.
Definition: Common.h:1294
+
winstd::basic_string_printf
Base template class to support string formatting using printf() style templates.
Definition: Common.h:1114
+
winstd::basic_string_printf::basic_string_printf
basic_string_printf(const _Elem *format,...)
Initializes a new string and formats its contents using printf() style template.
Definition: Common.h:1124
+
winstd::basic_string_printf::basic_string_printf
basic_string_printf(HINSTANCE hInstance, WORD wLanguageID, UINT nFormatID,...)
Initializes a new string and formats its contents using printf() style template in resources.
Definition: Common.h:1161
+
winstd::basic_string_printf::basic_string_printf
basic_string_printf(HINSTANCE hInstance, UINT nFormatID,...)
Initializes a new string and formats its contents using printf() style template in resources.
Definition: Common.h:1143
+
winstd::dplhandle
Base abstract template class to support object handle keeping for objects that support trivial handle...
Definition: Common.h:865
+
winstd::dplhandle::operator=
dplhandle< handle_type, INVAL > & operator=(handle_type h) noexcept
Attaches already available object handle.
Definition: Common.h:906
+
winstd::dplhandle::duplicate
handle_type duplicate() const
Duplicates and returns a new object handle.
Definition: Common.h:956
+
winstd::dplhandle::operator=
dplhandle< handle_type, INVAL > & operator=(dplhandle< handle_type, INVAL > &&h) noexcept
Moves the object.
Definition: Common.h:945
+
winstd::dplhandle::attach_duplicated
bool attach_duplicated(handle_type h)
Duplicates an object handle and sets a new object handle.
Definition: Common.h:970
winstd::dplhandle::duplicate_internal
virtual handle_type duplicate_internal(handle_type h) const noexcept=0
Abstract member function that must be implemented by child classes to do the actual object handle dup...
-
winstd::dplhandle::dplhandle
dplhandle(handle_type h) noexcept
Initializes a new class instance with an already available object handle.
Definition: Common.h:880
-
winstd::dplhandle::operator=
dplhandle< handle_type, INVAL > & operator=(const dplhandle< handle_type, INVAL > &h) noexcept
Duplicates the object.
Definition: Common.h:918
-
winstd::dplhandle::dplhandle
dplhandle() noexcept
Initializes a new class instance with the object handle set to INVAL.
Definition: Common.h:871
-
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:604
-
winstd::handle::operator*
handle_type *& operator*() const
Returns the object handle value when the object handle is a pointer to a value (class,...
Definition: Common.h:694
+
winstd::dplhandle::dplhandle
dplhandle(handle_type h) noexcept
Initializes a new class instance with an already available object handle.
Definition: Common.h:879
+
winstd::dplhandle::operator=
dplhandle< handle_type, INVAL > & operator=(const dplhandle< handle_type, INVAL > &h) noexcept
Duplicates the object.
Definition: Common.h:917
+
winstd::dplhandle::dplhandle
dplhandle() noexcept
Initializes a new class instance with the object handle set to INVAL.
Definition: Common.h:870
+
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:603
+
winstd::handle::operator*
handle_type *& operator*() const
Returns the object handle value when the object handle is a pointer to a value (class,...
Definition: Common.h:693
winstd::handle::free_internal
virtual void free_internal() noexcept=0
Abstract member function that must be implemented by child classes to do the actual object destructio...
-
winstd::handle::handle
handle() noexcept
Initializes a new class instance with the object handle set to INVAL.
Definition: Common.h:619
-
winstd::handle::operator>=
bool operator>=(handle_type h) const
Is handle greater than or equal to?
Definition: Common.h:767
-
winstd::handle::operator->
handle_type operator->() const
Provides object handle member access when the object handle is a pointer to a class or struct.
Definition: Common.h:715
-
winstd::handle::operator&
handle_type * operator&()
Returns the object handle reference.
Definition: Common.h:704
-
winstd::handle::handle_type
T handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:609
-
winstd::handle::handle
handle(handle_type h) noexcept
Initializes a new class instance with an already available object handle.
Definition: Common.h:628
-
winstd::handle::operator<
bool operator<(handle_type h) const
Is handle less than?
Definition: Common.h:741
-
winstd::handle::operator=
handle< handle_type, INVAL > & operator=(handle_type h) noexcept
Attaches already available object handle.
Definition: Common.h:655
-
winstd::handle::operator!
bool operator!() const
Tests if the object handle is INVAL.
Definition: Common.h:728
-
winstd::handle::operator=
handle< handle_type, INVAL > & operator=(handle< handle_type, INVAL > &&h) noexcept
Move assignment.
Definition: Common.h:667
-
winstd::handle::operator!=
bool operator!=(handle_type h) const
Is handle not equal to?
Definition: Common.h:793
-
winstd::handle::free
void free()
Destroys the object.
Definition: Common.h:840
-
winstd::handle::m_h
handle_type m_h
Object handle.
Definition: Common.h:855
-
winstd::handle::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:818
-
winstd::handle::operator==
bool operator==(handle_type h) const
Is handle equal to?
Definition: Common.h:806
-
winstd::handle::handle
handle(handle< handle_type, INVAL > &&h) noexcept
Move constructor.
Definition: Common.h:637
-
winstd::handle::detach
handle_type detach()
Dismisses the object handle from this class.
Definition: Common.h:830
-
winstd::handle::operator>
bool operator>(handle_type h) const
Is handle greater than?
Definition: Common.h:780
-
winstd::handle::operator<=
bool operator<=(handle_type h) const
Is handle less than or equal to?
Definition: Common.h:754
-
winstd::num_runtime_error
Numerical runtime error.
Definition: Common.h:1003
-
winstd::num_runtime_error::num_runtime_error
num_runtime_error(error_type num, const char *msg=nullptr)
Constructs an exception.
Definition: Common.h:1026
-
winstd::num_runtime_error::num_runtime_error
num_runtime_error(error_type num, const std::string &msg)
Constructs an exception.
Definition: Common.h:1014
-
winstd::num_runtime_error::number
error_type number() const
Returns the Windows error number.
Definition: Common.h:1035
-
winstd::num_runtime_error::error_type
_Tn error_type
Error number type.
Definition: Common.h:1005
-
winstd::num_runtime_error::m_num
error_type m_num
Numeric error code.
Definition: Common.h:1041
-
winstd::ref_unique_ptr< _Ty[], _Dx >
Helper class for returning pointers to std::unique_ptr (specialization for arrays)
Definition: Common.h:498
-
winstd::ref_unique_ptr< _Ty[], _Dx >::m_own
std::unique_ptr< _Ty[], _Dx > & m_own
Original owner of the pointer.
Definition: Common.h:587
-
winstd::ref_unique_ptr< _Ty[], _Dx >::ref_unique_ptr
ref_unique_ptr(ref_unique_ptr< _Ty[], _Dx > &&other)
Moves object.
Definition: Common.h:532
-
winstd::ref_unique_ptr< _Ty[], _Dx >::~ref_unique_ptr
virtual ~ref_unique_ptr()
Returns ownership of the pointer.
Definition: Common.h:560
-
winstd::ref_unique_ptr< _Ty[], _Dx >::operator=
ref_unique_ptr & operator=(std::unique_ptr< _Ty[], _Dx > &owner) noexcept
Takes ownership of the pointer.
Definition: Common.h:517
-
winstd::ref_unique_ptr< _Ty[], _Dx >::ref_unique_ptr
ref_unique_ptr(std::unique_ptr< _Ty[], _Dx > &owner) noexcept
Takes ownership of the pointer.
Definition: Common.h:505
-
winstd::ref_unique_ptr< _Ty[], _Dx >::m_ptr
_Ty * m_ptr
Pointer.
Definition: Common.h:588
-
winstd::ref_unique_ptr< _Ty[], _Dx >::operator=
ref_unique_ptr & operator=(ref_unique_ptr< _Ty[], _Dx > &&other)
Moves object.
Definition: Common.h:546
-
winstd::ref_unique_ptr
Helper class for returning pointers to std::unique_ptr.
Definition: Common.h:405
-
winstd::ref_unique_ptr::m_own
std::unique_ptr< _Ty, _Dx > & m_own
Original owner of the pointer.
Definition: Common.h:459
-
winstd::ref_unique_ptr::m_ptr
_Ty * m_ptr
Pointer.
Definition: Common.h:460
-
winstd::ref_unique_ptr::ref_unique_ptr
ref_unique_ptr(ref_unique_ptr< _Ty, _Dx > &&other)
Moves object.
Definition: Common.h:422
-
winstd::ref_unique_ptr::~ref_unique_ptr
~ref_unique_ptr()
Returns ownership of the pointer.
Definition: Common.h:432
-
winstd::ref_unique_ptr::ref_unique_ptr
ref_unique_ptr(std::unique_ptr< _Ty, _Dx > &owner)
Takes ownership of the pointer.
Definition: Common.h:412
-
winstd::sanitizing_allocator
An allocator template that sanitizes each memory block before it is destroyed or reallocated.
Definition: Common.h:1423
-
winstd::sanitizing_allocator::sanitizing_allocator
sanitizing_allocator(const sanitizing_allocator< _Ty > &_Othr)
Construct by copying.
Definition: Common.h:1446
-
winstd::sanitizing_allocator::deallocate
void deallocate(pointer _Ptr, size_type _Size)
Deallocate object at _Ptr sanitizing its content first.
Definition: Common.h:1461
-
winstd::sanitizing_allocator::sanitizing_allocator
sanitizing_allocator(const sanitizing_allocator< _Other > &_Othr) noexcept
Construct from a related allocator.
Definition: Common.h:1454
-
winstd::sanitizing_allocator::_Mybase
std::allocator< _Ty > _Mybase
Base type.
Definition: Common.h:1425
-
winstd::sanitizing_allocator::sanitizing_allocator
sanitizing_allocator() noexcept
Construct default allocator.
Definition: Common.h:1439
-
winstd::sanitizing_blob
Sanitizing BLOB.
Definition: Common.h:1503
-
winstd::sanitizing_blob::sanitizing_blob
sanitizing_blob()
Constructs uninitialized BLOB.
Definition: Common.h:1508
-
winstd::sanitizing_blob::~sanitizing_blob
~sanitizing_blob()
Sanitizes BLOB.
Definition: Common.h:1516
-
winstd::string_guid
Single-byte character implementation of a class to support converting GUID to string.
Definition: Common.h:1353
-
winstd::string_guid::string_guid
string_guid(const GUID &guid)
Initializes a new string and formats its contents to string representation of given GUID.
Definition: Common.h:1363
-
winstd::win_runtime_error
Windows runtime error.
Definition: Common.h:1048
-
winstd::win_runtime_error::msg
tstring msg(DWORD dwLanguageId=0) const
Returns a user-readable Windows error message.
Definition: Common.h:1093
-
winstd::win_runtime_error::win_runtime_error
win_runtime_error(error_type num, const char *msg=nullptr)
Constructs an exception.
Definition: Common.h:1066
-
winstd::win_runtime_error::win_runtime_error
win_runtime_error(const std::string &msg)
Constructs an exception using GetLastError()
Definition: Common.h:1075
-
winstd::win_runtime_error::win_runtime_error
win_runtime_error(const char *msg=nullptr)
Constructs an exception using GetLastError()
Definition: Common.h:1084
-
winstd::win_runtime_error::win_runtime_error
win_runtime_error(error_type num, const std::string &msg)
Constructs an exception.
Definition: Common.h:1056
-
winstd::wstring_guid
Wide character implementation of a class to support converting GUID to string.
Definition: Common.h:1375
-
winstd::wstring_guid::wstring_guid
wstring_guid(const GUID &guid)
Initializes a new string and formats its contents to string representation of given GUID.
Definition: Common.h:1385
-
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:80
-
winstd::get_ptr
ref_unique_ptr< _Ty[], _Dx > get_ptr(std::unique_ptr< _Ty[], _Dx > &owner) noexcept
Helper function template for returning pointers to std::unique_ptr (specialization for arrays)
Definition: Common.h:485
-
winstd::tstring
std::string tstring
Multi-byte / Wide-character string (according to _UNICODE)
Definition: Common.h:335
-
winstd::sanitizing_wstring
std::basic_string< wchar_t, std::char_traits< wchar_t >, sanitizing_allocator< wchar_t > > sanitizing_wstring
A sanitizing variant of std::wstring.
Definition: Common.h:1487
-
winstd::sanitizing_tstring
sanitizing_string sanitizing_tstring
Multi-byte / Wide-character sanitizing string (according to _UNICODE)
Definition: Common.h:1495
-
winstd::sanitizing_string
std::basic_string< char, std::char_traits< char >, sanitizing_allocator< char > > sanitizing_string
A sanitizing variant of std::string.
Definition: Common.h:1478
-
winstd::wstring_printf
basic_string_printf< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > wstring_printf
Wide character implementation of a class to support string formatting using printf() style templates.
Definition: Common.h:1184
-
winstd::tstring_guid
string_guid tstring_guid
Multi-byte / Wide-character string GUID (according to _UNICODE)
Definition: Common.h:1399
-
winstd::wstring_msg
basic_string_msg< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > wstring_msg
Wide character implementation of a class to support string formatting using FormatMessage() style tem...
Definition: Common.h:1309
-
winstd::string_printf
basic_string_printf< char, std::char_traits< char >, std::allocator< char > > string_printf
Single-byte character implementation of a class to support string formatting using printf() style tem...
Definition: Common.h:1179
-
winstd::tstring_printf
string_printf tstring_printf
Multi-byte / Wide-character formatted string (according to _UNICODE)
Definition: Common.h:1192
-
winstd::string_msg
basic_string_msg< char, std::char_traits< char >, std::allocator< char > > string_msg
Single-byte character implementation of a class to support string formatting using FormatMessage() st...
Definition: Common.h:1304
-
winstd::tstring_msg
string_msg tstring_msg
Multi-byte / Wide-character formatted string (according to _UNICODE)
Definition: Common.h:1317
-
winstd::handle::invalid
static const T invalid
Invalid handle value.
Definition: Common.h:614
-
winstd::LocalFree_delete< _Ty[]>::LocalFree_delete
LocalFree_delete() noexcept
Default construct.
Definition: Common.h:378
-
winstd::LocalFree_delete< _Ty[]>::_Myt
LocalFree_delete< _Ty > _Myt
This type.
Definition: Common.h:373
-
winstd::LocalFree_delete< _Ty[]>::operator()
void operator()(_Other *) const
Delete a pointer of another type.
Definition: Common.h:394
-
winstd::LocalFree_delete< _Ty[]>::operator()
void operator()(_Ty *_Ptr) const noexcept
Delete a pointer.
Definition: Common.h:383
-
winstd::LocalFree_delete
Deleter for unique_ptr using LocalFree.
Definition: Common.h:343
-
winstd::LocalFree_delete::_Myt
LocalFree_delete< _Ty > _Myt
This type.
Definition: Common.h:344
-
winstd::LocalFree_delete::LocalFree_delete
LocalFree_delete(const LocalFree_delete< _Ty2 > &)
Construct from another LocalFree_delete.
Definition: Common.h:354
-
winstd::LocalFree_delete::operator()
void operator()(_Ty *_Ptr) const
Delete a pointer.
Definition: Common.h:361
-
winstd::LocalFree_delete::LocalFree_delete
LocalFree_delete()
Default construct.
Definition: Common.h:349
-
winstd::sanitizing_allocator::rebind
Convert this type to sanitizing_allocator<_Other>
Definition: Common.h:1432
-
winstd::sanitizing_allocator::rebind::other
sanitizing_allocator< _Other > other
Other type.
Definition: Common.h:1433
+
winstd::handle::handle
handle() noexcept
Initializes a new class instance with the object handle set to INVAL.
Definition: Common.h:618
+
winstd::handle::operator>=
bool operator>=(handle_type h) const
Is handle greater than or equal to?
Definition: Common.h:766
+
winstd::handle::operator->
handle_type operator->() const
Provides object handle member access when the object handle is a pointer to a class or struct.
Definition: Common.h:714
+
winstd::handle::operator&
handle_type * operator&()
Returns the object handle reference.
Definition: Common.h:703
+
winstd::handle::handle_type
T handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
+
winstd::handle::handle
handle(handle_type h) noexcept
Initializes a new class instance with an already available object handle.
Definition: Common.h:627
+
winstd::handle::operator<
bool operator<(handle_type h) const
Is handle less than?
Definition: Common.h:740
+
winstd::handle::operator=
handle< handle_type, INVAL > & operator=(handle_type h) noexcept
Attaches already available object handle.
Definition: Common.h:654
+
winstd::handle::operator!
bool operator!() const
Tests if the object handle is INVAL.
Definition: Common.h:727
+
winstd::handle::operator=
handle< handle_type, INVAL > & operator=(handle< handle_type, INVAL > &&h) noexcept
Move assignment.
Definition: Common.h:666
+
winstd::handle::operator!=
bool operator!=(handle_type h) const
Is handle not equal to?
Definition: Common.h:792
+
winstd::handle::free
void free()
Destroys the object.
Definition: Common.h:839
+
winstd::handle::m_h
handle_type m_h
Object handle.
Definition: Common.h:854
+
winstd::handle::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:817
+
winstd::handle::operator==
bool operator==(handle_type h) const
Is handle equal to?
Definition: Common.h:805
+
winstd::handle::handle
handle(handle< handle_type, INVAL > &&h) noexcept
Move constructor.
Definition: Common.h:636
+
winstd::handle::detach
handle_type detach()
Dismisses the object handle from this class.
Definition: Common.h:829
+
winstd::handle::operator>
bool operator>(handle_type h) const
Is handle greater than?
Definition: Common.h:779
+
winstd::handle::operator<=
bool operator<=(handle_type h) const
Is handle less than or equal to?
Definition: Common.h:753
+
winstd::num_runtime_error
Numerical runtime error.
Definition: Common.h:1002
+
winstd::num_runtime_error::num_runtime_error
num_runtime_error(error_type num, const char *msg=nullptr)
Constructs an exception.
Definition: Common.h:1025
+
winstd::num_runtime_error::num_runtime_error
num_runtime_error(error_type num, const std::string &msg)
Constructs an exception.
Definition: Common.h:1013
+
winstd::num_runtime_error::number
error_type number() const
Returns the Windows error number.
Definition: Common.h:1034
+
winstd::num_runtime_error::error_type
_Tn error_type
Error number type.
Definition: Common.h:1004
+
winstd::num_runtime_error::m_num
error_type m_num
Numeric error code.
Definition: Common.h:1040
+
winstd::ref_unique_ptr< _Ty[], _Dx >
Helper class for returning pointers to std::unique_ptr (specialization for arrays)
Definition: Common.h:497
+
winstd::ref_unique_ptr< _Ty[], _Dx >::m_own
std::unique_ptr< _Ty[], _Dx > & m_own
Original owner of the pointer.
Definition: Common.h:586
+
winstd::ref_unique_ptr< _Ty[], _Dx >::ref_unique_ptr
ref_unique_ptr(ref_unique_ptr< _Ty[], _Dx > &&other)
Moves object.
Definition: Common.h:531
+
winstd::ref_unique_ptr< _Ty[], _Dx >::~ref_unique_ptr
virtual ~ref_unique_ptr()
Returns ownership of the pointer.
Definition: Common.h:559
+
winstd::ref_unique_ptr< _Ty[], _Dx >::operator=
ref_unique_ptr & operator=(std::unique_ptr< _Ty[], _Dx > &owner) noexcept
Takes ownership of the pointer.
Definition: Common.h:516
+
winstd::ref_unique_ptr< _Ty[], _Dx >::ref_unique_ptr
ref_unique_ptr(std::unique_ptr< _Ty[], _Dx > &owner) noexcept
Takes ownership of the pointer.
Definition: Common.h:504
+
winstd::ref_unique_ptr< _Ty[], _Dx >::m_ptr
_Ty * m_ptr
Pointer.
Definition: Common.h:587
+
winstd::ref_unique_ptr< _Ty[], _Dx >::operator=
ref_unique_ptr & operator=(ref_unique_ptr< _Ty[], _Dx > &&other)
Moves object.
Definition: Common.h:545
+
winstd::ref_unique_ptr
Helper class for returning pointers to std::unique_ptr.
Definition: Common.h:404
+
winstd::ref_unique_ptr::m_own
std::unique_ptr< _Ty, _Dx > & m_own
Original owner of the pointer.
Definition: Common.h:458
+
winstd::ref_unique_ptr::m_ptr
_Ty * m_ptr
Pointer.
Definition: Common.h:459
+
winstd::ref_unique_ptr::ref_unique_ptr
ref_unique_ptr(ref_unique_ptr< _Ty, _Dx > &&other)
Moves object.
Definition: Common.h:421
+
winstd::ref_unique_ptr::~ref_unique_ptr
~ref_unique_ptr()
Returns ownership of the pointer.
Definition: Common.h:431
+
winstd::ref_unique_ptr::ref_unique_ptr
ref_unique_ptr(std::unique_ptr< _Ty, _Dx > &owner)
Takes ownership of the pointer.
Definition: Common.h:411
+
winstd::sanitizing_allocator
An allocator template that sanitizes each memory block before it is destroyed or reallocated.
Definition: Common.h:1422
+
winstd::sanitizing_allocator::sanitizing_allocator
sanitizing_allocator(const sanitizing_allocator< _Ty > &_Othr)
Construct by copying.
Definition: Common.h:1445
+
winstd::sanitizing_allocator::deallocate
void deallocate(pointer _Ptr, size_type _Size)
Deallocate object at _Ptr sanitizing its content first.
Definition: Common.h:1460
+
winstd::sanitizing_allocator::sanitizing_allocator
sanitizing_allocator(const sanitizing_allocator< _Other > &_Othr) noexcept
Construct from a related allocator.
Definition: Common.h:1453
+
winstd::sanitizing_allocator::_Mybase
std::allocator< _Ty > _Mybase
Base type.
Definition: Common.h:1424
+
winstd::sanitizing_allocator::sanitizing_allocator
sanitizing_allocator() noexcept
Construct default allocator.
Definition: Common.h:1438
+
winstd::sanitizing_blob
Sanitizing BLOB.
Definition: Common.h:1502
+
winstd::sanitizing_blob::sanitizing_blob
sanitizing_blob()
Constructs uninitialized BLOB.
Definition: Common.h:1507
+
winstd::sanitizing_blob::~sanitizing_blob
~sanitizing_blob()
Sanitizes BLOB.
Definition: Common.h:1515
+
winstd::string_guid
Single-byte character implementation of a class to support converting GUID to string.
Definition: Common.h:1352
+
winstd::string_guid::string_guid
string_guid(const GUID &guid)
Initializes a new string and formats its contents to string representation of given GUID.
Definition: Common.h:1362
+
winstd::win_runtime_error
Windows runtime error.
Definition: Common.h:1047
+
winstd::win_runtime_error::msg
tstring msg(DWORD dwLanguageId=0) const
Returns a user-readable Windows error message.
Definition: Common.h:1092
+
winstd::win_runtime_error::win_runtime_error
win_runtime_error(error_type num, const char *msg=nullptr)
Constructs an exception.
Definition: Common.h:1065
+
winstd::win_runtime_error::win_runtime_error
win_runtime_error(const std::string &msg)
Constructs an exception using GetLastError()
Definition: Common.h:1074
+
winstd::win_runtime_error::win_runtime_error
win_runtime_error(const char *msg=nullptr)
Constructs an exception using GetLastError()
Definition: Common.h:1083
+
winstd::win_runtime_error::win_runtime_error
win_runtime_error(error_type num, const std::string &msg)
Constructs an exception.
Definition: Common.h:1055
+
winstd::wstring_guid
Wide character implementation of a class to support converting GUID to string.
Definition: Common.h:1374
+
winstd::wstring_guid::wstring_guid
wstring_guid(const GUID &guid)
Initializes a new string and formats its contents to string representation of given GUID.
Definition: Common.h:1384
+
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:79
+
winstd::get_ptr
ref_unique_ptr< _Ty[], _Dx > get_ptr(std::unique_ptr< _Ty[], _Dx > &owner) noexcept
Helper function template for returning pointers to std::unique_ptr (specialization for arrays)
Definition: Common.h:484
+
winstd::tstring
std::string tstring
Multi-byte / Wide-character string (according to _UNICODE)
Definition: Common.h:334
+
winstd::sanitizing_wstring
std::basic_string< wchar_t, std::char_traits< wchar_t >, sanitizing_allocator< wchar_t > > sanitizing_wstring
A sanitizing variant of std::wstring.
Definition: Common.h:1486
+
winstd::sanitizing_tstring
sanitizing_string sanitizing_tstring
Multi-byte / Wide-character sanitizing string (according to _UNICODE)
Definition: Common.h:1494
+
winstd::sanitizing_string
std::basic_string< char, std::char_traits< char >, sanitizing_allocator< char > > sanitizing_string
A sanitizing variant of std::string.
Definition: Common.h:1477
+
winstd::wstring_printf
basic_string_printf< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > wstring_printf
Wide character implementation of a class to support string formatting using printf() style templates.
Definition: Common.h:1183
+
winstd::tstring_guid
string_guid tstring_guid
Multi-byte / Wide-character string GUID (according to _UNICODE)
Definition: Common.h:1398
+
winstd::wstring_msg
basic_string_msg< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > wstring_msg
Wide character implementation of a class to support string formatting using FormatMessage() style tem...
Definition: Common.h:1308
+
winstd::string_printf
basic_string_printf< char, std::char_traits< char >, std::allocator< char > > string_printf
Single-byte character implementation of a class to support string formatting using printf() style tem...
Definition: Common.h:1178
+
winstd::tstring_printf
string_printf tstring_printf
Multi-byte / Wide-character formatted string (according to _UNICODE)
Definition: Common.h:1191
+
winstd::string_msg
basic_string_msg< char, std::char_traits< char >, std::allocator< char > > string_msg
Single-byte character implementation of a class to support string formatting using FormatMessage() st...
Definition: Common.h:1303
+
winstd::tstring_msg
string_msg tstring_msg
Multi-byte / Wide-character formatted string (according to _UNICODE)
Definition: Common.h:1316
+
winstd::handle::invalid
static const T invalid
Invalid handle value.
Definition: Common.h:613
+
winstd::LocalFree_delete< _Ty[]>::LocalFree_delete
LocalFree_delete() noexcept
Default construct.
Definition: Common.h:377
+
winstd::LocalFree_delete< _Ty[]>::_Myt
LocalFree_delete< _Ty > _Myt
This type.
Definition: Common.h:372
+
winstd::LocalFree_delete< _Ty[]>::operator()
void operator()(_Other *) const
Delete a pointer of another type.
Definition: Common.h:393
+
winstd::LocalFree_delete< _Ty[]>::operator()
void operator()(_Ty *_Ptr) const noexcept
Delete a pointer.
Definition: Common.h:382
+
winstd::LocalFree_delete
Deleter for unique_ptr using LocalFree.
Definition: Common.h:342
+
winstd::LocalFree_delete::_Myt
LocalFree_delete< _Ty > _Myt
This type.
Definition: Common.h:343
+
winstd::LocalFree_delete::LocalFree_delete
LocalFree_delete(const LocalFree_delete< _Ty2 > &)
Construct from another LocalFree_delete.
Definition: Common.h:353
+
winstd::LocalFree_delete::operator()
void operator()(_Ty *_Ptr) const
Delete a pointer.
Definition: Common.h:360
+
winstd::LocalFree_delete::LocalFree_delete
LocalFree_delete()
Default construct.
Definition: Common.h:348
+
winstd::sanitizing_allocator::rebind
Convert this type to sanitizing_allocator<_Other>
Definition: Common.h:1431
+
winstd::sanitizing_allocator::rebind::other
sanitizing_allocator< _Other > other
Other type.
Definition: Common.h:1432
diff --git a/_cred_8h_source.html b/_cred_8h_source.html index 952b82e3..1d090a44 100644 --- a/_cred_8h_source.html +++ b/_cred_8h_source.html @@ -226,7 +226,7 @@ $(function() {
212 return FALSE;
213}
214
-
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:80
+
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:79
winstd::CredFree_delete< _Ty[]>::_Myt
CredFree_delete< _Ty > _Myt
This type.
Definition: Cred.h:163
winstd::CredFree_delete< _Ty[]>::CredFree_delete
CredFree_delete()
Default construct.
Definition: Cred.h:168
winstd::CredFree_delete< _Ty[]>::operator()
void operator()(_Other *) const
Delete a pointer of another type.
Definition: Cred.h:186
@@ -239,7 +239,7 @@ $(function() { diff --git a/_crypt_8h_source.html b/_crypt_8h_source.html index 7ed52c6b..4ab857ac 100644 --- a/_crypt_8h_source.html +++ b/_crypt_8h_source.html @@ -732,20 +732,20 @@ $(function() {
winstd::data_blob::data_blob
data_blob(BYTE *data, DWORD size) noexcept
Initializes a BLOB from existing data.
Definition: Crypt.h:841
winstd::data_blob::size
DWORD size() const noexcept
Get BLOB size.
Definition: Crypt.h:921
winstd::data_blob::operator=
data_blob & operator=(const DATA_BLOB &other)
Copy an existing BLOB.
Definition: Crypt.h:884
-
winstd::dplhandle
Base abstract template class to support object handle keeping for objects that support handle duplica...
Definition: Common.h:866
-
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:604
-
winstd::handle< PCCERT_CONTEXT, INVAL >::handle_type
PCCERT_CONTEXT handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:609
-
winstd::handle< PCCERT_CONTEXT, INVAL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:855
-
winstd::handle< PCCERT_CONTEXT, INVAL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:818
-
winstd::win_runtime_error
Windows runtime error.
Definition: Common.h:1048
-
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:80
-
WINSTD_DPLHANDLE_IMPL
#define WINSTD_DPLHANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:174
-
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:162
-
winstd::handle< PCCERT_CONTEXT, INVAL >::invalid
static const PCCERT_CONTEXT invalid
Invalid handle value.
Definition: Common.h:614
+
winstd::dplhandle
Base abstract template class to support object handle keeping for objects that support trivial handle...
Definition: Common.h:865
+
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:603
+
winstd::handle< PCCERT_CONTEXT, INVAL >::handle_type
PCCERT_CONTEXT handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
+
winstd::handle< PCCERT_CONTEXT, INVAL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:854
+
winstd::handle< PCCERT_CONTEXT, INVAL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:817
+
winstd::win_runtime_error
Windows runtime error.
Definition: Common.h:1047
+
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:79
+
WINSTD_DPLHANDLE_IMPL
#define WINSTD_DPLHANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:173
+
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:161
+
winstd::handle< PCCERT_CONTEXT, INVAL >::invalid
static const PCCERT_CONTEXT invalid
Invalid handle value.
Definition: Common.h:613
diff --git a/_e_a_p_8h_source.html b/_e_a_p_8h_source.html index f9b657be..e30b3723 100644 --- a/_e_a_p_8h_source.html +++ b/_e_a_p_8h_source.html @@ -531,7 +531,7 @@ $(function() {
689}
690
691#pragma warning(pop)
-
winstd::dplhandle
Base abstract template class to support object handle keeping for objects that support handle duplica...
Definition: Common.h:866
+
winstd::dplhandle
Base abstract template class to support object handle keeping for objects that support trivial handle...
Definition: Common.h:865
winstd::eap_attr
EAP_ATTRIBUTE wrapper class.
Definition: EAP.h:214
winstd::eap_attr::eap_attr
eap_attr() noexcept
Initializes a new EAP attribute set to eatReserved.
Definition: EAP.h:219
winstd::eap_attr::eap_attr
eap_attr(eap_attr &&a) noexcept
Moves an existing EAP attribute.
Definition: EAP.h:244
@@ -572,11 +572,11 @@ $(function() {
winstd::eap_runtime_error::m_root_cause_desc
std::wstring m_root_cause_desc
A localized and readable string that describes the root cause of the error.
Definition: EAP.h:680
winstd::eap_runtime_error::help_link_id
const GUID & help_link_id() const noexcept
Returns help_link ID.
Definition: EAP.h:669
winstd::eap_runtime_error::m_reason
DWORD m_reason
The reason code for the error.
Definition: EAP.h:677
-
winstd::handle< EapPacket *, INVAL >::handle_type
EapPacket * handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:609
-
winstd::handle< EapPacket *, INVAL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:855
-
winstd::handle< EapPacket *, INVAL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:818
-
winstd::win_runtime_error
Windows runtime error.
Definition: Common.h:1048
-
winstd::win_runtime_error::msg
tstring msg(DWORD dwLanguageId=0) const
Returns a user-readable Windows error message.
Definition: Common.h:1093
+
winstd::handle< EapPacket *, INVAL >::handle_type
EapPacket * handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
+
winstd::handle< EapPacket *, INVAL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:854
+
winstd::handle< EapPacket *, INVAL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:817
+
winstd::win_runtime_error
Windows runtime error.
Definition: Common.h:1047
+
winstd::win_runtime_error::msg
tstring msg(DWORD dwLanguageId=0) const
Returns a user-readable Windows error message.
Definition: Common.h:1092
winstd::eap_error_runtime
std::unique_ptr< EAP_ERROR, EapHostPeerFreeEapError_delete > eap_error_runtime
EAP_ERROR wrapper class.
Definition: EAP.h:206
winstd::eap_blob
std::unique_ptr< BYTE[], EapHostPeerFreeMemory_delete > eap_blob
EapHost BLOB wrapper class.
Definition: EAP.h:129
winstd::eap_type_t
eap_type_t
EAP method numbers.
Definition: EAP.h:79
@@ -601,9 +601,9 @@ $(function() {
winstd::eap_type_t::start
@ start
Start of EAP methods.
winstd::eap_type_t::mschapv2
@ mschapv2
EAP-MSCHAPv2.
winstd::eap_type_t::identity
@ identity
Identity.
-
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:53
-
WINSTD_DPLHANDLE_IMPL
#define WINSTD_DPLHANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:174
-
winstd::handle< EapPacket *, INVAL >::invalid
static const EapPacket * invalid
Invalid handle value.
Definition: Common.h:614
+
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:52
+
WINSTD_DPLHANDLE_IMPL
#define WINSTD_DPLHANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:173
+
winstd::handle< EapPacket *, INVAL >::invalid
static const EapPacket * invalid
Invalid handle value.
Definition: Common.h:613
winstd::EapHostPeerFreeEapError_delete
Deleter for unique_ptr to EAP_ERROR using EapHostPeerFreeEapError.
Definition: EAP.h:186
winstd::EapHostPeerFreeEapError_delete::EapHostPeerFreeEapError_delete
EapHostPeerFreeEapError_delete() noexcept
Default constructor.
Definition: EAP.h:190
winstd::EapHostPeerFreeEapError_delete::operator()
void operator()(EAP_ERROR *_Ptr) const noexcept
Delete a pointer.
Definition: EAP.h:197
@@ -619,7 +619,7 @@ $(function() { diff --git a/_e_t_w_8h_source.html b/_e_t_w_8h_source.html index dcf6c4c4..b0d2209e 100644 --- a/_e_t_w_8h_source.html +++ b/_e_t_w_8h_source.html @@ -982,19 +982,19 @@ $(function() {
winstd::event_trace::create
bool create(PEVENT_TRACE_LOGFILE Logfile)
Opens a real-time trace session or log file for consuming.
Definition: ETW.h:929
winstd::event_trace::~event_trace
virtual ~event_trace()
Closes the trace.
Definition: ETW.h:914
winstd::event_trace::free_internal
void free_internal() noexcept override
Closes the trace.
Definition: ETW.h:945
-
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:604
-
winstd::handle< TRACEHANDLE, 0 >::handle
handle() noexcept
Initializes a new class instance with the object handle set to INVAL.
Definition: Common.h:619
-
winstd::handle< REGHANDLE, NULL >::handle_type
REGHANDLE handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:609
-
winstd::handle< REGHANDLE, NULL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:855
-
winstd::handle< REGHANDLE, NULL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:818
-
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:53
-
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:80
-
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:162
-
winstd::handle< REGHANDLE, NULL >::invalid
static const REGHANDLE invalid
Invalid handle value.
Definition: Common.h:614
+
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:603
+
winstd::handle< TRACEHANDLE, 0 >::handle
handle() noexcept
Initializes a new class instance with the object handle set to INVAL.
Definition: Common.h:618
+
winstd::handle< REGHANDLE, NULL >::handle_type
REGHANDLE handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
+
winstd::handle< REGHANDLE, NULL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:854
+
winstd::handle< REGHANDLE, NULL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:817
+
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:52
+
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:79
+
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:161
+
winstd::handle< REGHANDLE, NULL >::invalid
static const REGHANDLE invalid
Invalid handle value.
Definition: Common.h:613
diff --git a/_g_d_i_8h_source.html b/_g_d_i_8h_source.html index 9449a2a0..469aac48 100644 --- a/_g_d_i_8h_source.html +++ b/_g_d_i_8h_source.html @@ -203,9 +203,9 @@ $(function() {
winstd::gdi_handle
Windows HGDIOBJ wrapper class.
Definition: GDI.h:23
winstd::gdi_handle::free_internal
void free_internal() noexcept override
Closes an open object handle.
Definition: GDI.h:44
winstd::gdi_handle::~gdi_handle
virtual ~gdi_handle()
Closes an open object handle.
Definition: GDI.h:32
-
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:604
-
winstd::handle< HDC, NULL >::handle_type
HDC handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:609
-
winstd::handle< T, NULL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:855
+
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:603
+
winstd::handle< HDC, NULL >::handle_type
HDC handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
+
winstd::handle< T, NULL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:854
winstd::window_dc
Device context wrapper class.
Definition: GDI.h:85
winstd::window_dc::m_hwnd
HWND m_hwnd
Window handle.
Definition: GDI.h:146
winstd::window_dc::window_dc
window_dc(handle_type h, HWND hwnd) noexcept
Initializes a device context from existing data.
Definition: GDI.h:97
@@ -214,14 +214,14 @@ $(function() {
winstd::window_dc::window_dc
window_dc() noexcept
Initializes an empty device context.
Definition: GDI.h:90
winstd::window_dc::operator=
window_dc & operator=(window_dc &&h) noexcept
Copy an existing device context.
Definition: GDI.h:113
winstd::window_dc::window_dc
window_dc(window_dc &&h) noexcept
Move an existing device context.
Definition: GDI.h:105
-
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:53
-
WINSTD_NONMOVABLE
#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition: Common.h:61
-
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:162
-
winstd::handle< T, NULL >::invalid
static const T invalid
Invalid handle value.
Definition: Common.h:614
+
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:52
+
WINSTD_NONMOVABLE
#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition: Common.h:60
+
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:161
+
winstd::handle< T, NULL >::invalid
static const T invalid
Invalid handle value.
Definition: Common.h:613
diff --git a/_m_s_i_8h_source.html b/_m_s_i_8h_source.html index fef279b6..b9ed71ba 100644 --- a/_m_s_i_8h_source.html +++ b/_m_s_i_8h_source.html @@ -361,11 +361,11 @@ $(function() {
330 }
331}
332
-
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:80
+
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:79
diff --git a/_sec_8h_source.html b/_sec_8h_source.html index 7f1d950f..e1a102eb 100644 --- a/_sec_8h_source.html +++ b/_sec_8h_source.html @@ -330,12 +330,12 @@ $(function() {
393 };
394
396}
-
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:604
-
winstd::handle< PCredHandle, NULL >::handle_type
PCredHandle handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:609
-
winstd::handle< PCredHandle, NULL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:855
-
winstd::handle< PCredHandle, NULL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:818
-
winstd::num_runtime_error
Numerical runtime error.
Definition: Common.h:1003
-
winstd::num_runtime_error< SECURITY_STATUS >::error_type
SECURITY_STATUS error_type
Error number type.
Definition: Common.h:1005
+
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:603
+
winstd::handle< PCredHandle, NULL >::handle_type
PCredHandle handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
+
winstd::handle< PCredHandle, NULL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:854
+
winstd::handle< PCredHandle, NULL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:817
+
winstd::num_runtime_error
Numerical runtime error.
Definition: Common.h:1002
+
winstd::num_runtime_error< SECURITY_STATUS >::error_type
SECURITY_STATUS error_type
Error number type.
Definition: Common.h:1004
winstd::sec_buffer_desc
SecBufferDesc wrapper class.
Definition: Sec.h:326
winstd::sec_buffer_desc::~sec_buffer_desc
virtual ~sec_buffer_desc()
Frees the security buffer descriptor.
Definition: Sec.h:343
winstd::sec_buffer_desc::sec_buffer_desc
sec_buffer_desc(PSecBuffer buf, ULONG count, ULONG version=SECBUFFER_VERSION)
Initializes security buffer descriptor.
Definition: Sec.h:331
@@ -362,13 +362,13 @@ $(function() {
winstd::sec_runtime_error::sec_runtime_error
sec_runtime_error(error_type num, const char *msg=nullptr)
Constructs an exception.
Definition: Sec.h:381
winstd::sec_runtime_error::sec_runtime_error
sec_runtime_error(const sec_runtime_error &other)
Copies an exception.
Definition: Sec.h:390
winstd::sec_runtime_error::sec_runtime_error
sec_runtime_error(error_type num, const std::string &msg)
Constructs an exception.
Definition: Sec.h:371
-
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:53
-
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:80
-
winstd::handle< PCredHandle, NULL >::invalid
static const PCredHandle invalid
Invalid handle value.
Definition: Common.h:614
+
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:52
+
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:79
+
winstd::handle< PCredHandle, NULL >::invalid
static const PCredHandle invalid
Invalid handle value.
Definition: Common.h:613
diff --git a/_setup_a_p_i_8h_source.html b/_setup_a_p_i_8h_source.html index 61a0b987..51630b07 100644 --- a/_setup_a_p_i_8h_source.html +++ b/_setup_a_p_i_8h_source.html @@ -169,10 +169,10 @@ $(function() {
153 };
154
156}
-
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:604
-
winstd::handle< HDEVINFO, INVALID_HANDLE_VALUE >::handle_type
HDEVINFO handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:609
-
winstd::handle< HDEVINFO, INVALID_HANDLE_VALUE >::m_h
handle_type m_h
Object handle.
Definition: Common.h:855
-
winstd::handle< HDEVINFO, INVALID_HANDLE_VALUE >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:818
+
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:603
+
winstd::handle< HDEVINFO, INVALID_HANDLE_VALUE >::handle_type
HDEVINFO handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
+
winstd::handle< HDEVINFO, INVALID_HANDLE_VALUE >::m_h
handle_type m_h
Object handle.
Definition: Common.h:854
+
winstd::handle< HDEVINFO, INVALID_HANDLE_VALUE >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:817
winstd::setup_device_info_list
HDEVINFO wrapper class.
Definition: SetupAPI.h:24
winstd::setup_device_info_list::create
bool create(const GUID *ClassGuid, HWND hwndParent) noexcept
Creates an empty device information set and optionally associates the set with a device setup class a...
Definition: SetupAPI.h:48
winstd::setup_device_info_list::~setup_device_info_list
virtual ~setup_device_info_list()
Frees the device information set.
Definition: SetupAPI.h:33
@@ -182,14 +182,14 @@ $(function() {
winstd::setup_driver_info_list_builder::setup_driver_info_list_builder
setup_driver_info_list_builder(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD DriverType) noexcept
Construct the builder and builds a list of drivers that is associated with a specific device or with ...
Definition: SetupAPI.h:114
winstd::setup_driver_info_list_builder::~setup_driver_info_list_builder
virtual ~setup_driver_info_list_builder()
Deletes a driver list and destructs the builder.
Definition: SetupAPI.h:130
winstd::setup_driver_info_list_builder::status
BOOL status() const noexcept
Return result of SetupDiBuildDriverInfoList() call.
Definition: SetupAPI.h:141
-
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:53
-
WINSTD_NONMOVABLE
#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition: Common.h:61
-
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:162
-
winstd::handle< HDEVINFO, INVALID_HANDLE_VALUE >::invalid
static const HDEVINFO invalid
Invalid handle value.
Definition: Common.h:614
+
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:52
+
WINSTD_NONMOVABLE
#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition: Common.h:60
+
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:161
+
winstd::handle< HDEVINFO, INVALID_HANDLE_VALUE >::invalid
static const HDEVINFO invalid
Invalid handle value.
Definition: Common.h:613
diff --git a/_shell_8h_source.html b/_shell_8h_source.html index 528389e3..0576a94a 100644 --- a/_shell_8h_source.html +++ b/_shell_8h_source.html @@ -109,7 +109,7 @@ $(function() { diff --git a/_w_l_a_n_8h_source.html b/_w_l_a_n_8h_source.html index f68d36ca..faacf9f4 100644 --- a/_w_l_a_n_8h_source.html +++ b/_w_l_a_n_8h_source.html @@ -184,16 +184,16 @@ $(function() {
175 };
176
178}
-
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:604
-
winstd::handle< HANDLE, NULL >::handle_type
HANDLE handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:609
-
winstd::handle< HANDLE, NULL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:855
-
winstd::handle< HANDLE, NULL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:818
+
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:603
+
winstd::handle< HANDLE, NULL >::handle_type
HANDLE handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
+
winstd::handle< HANDLE, NULL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:854
+
winstd::handle< HANDLE, NULL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:817
winstd::wlan_handle
WLAN handle wrapper.
Definition: WLAN.h:128
winstd::wlan_handle::~wlan_handle
virtual ~wlan_handle()
Closes a connection to the server.
Definition: WLAN.h:137
winstd::wlan_handle::free_internal
void free_internal() noexcept override
Closes a connection to the server.
Definition: WLAN.h:171
winstd::wlan_handle::open
bool open(DWORD dwClientVersion, PDWORD pdwNegotiatedVersion) noexcept
Opens a connection to the server.
Definition: WLAN.h:152
-
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:162
-
winstd::handle< HANDLE, NULL >::invalid
static const HANDLE invalid
Invalid handle value.
Definition: Common.h:614
+
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:161
+
winstd::handle< HANDLE, NULL >::invalid
static const HANDLE invalid
Invalid handle value.
Definition: Common.h:613
winstd::WlanFreeMemory_delete< _Ty[]>::WlanFreeMemory_delete
WlanFreeMemory_delete()
Default construct.
Definition: WLAN.h:104
winstd::WlanFreeMemory_delete< _Ty[]>::operator()
void operator()(_Other *) const
Delete a pointer of another type.
Definition: WLAN.h:118
winstd::WlanFreeMemory_delete< _Ty[]>::_Myt
WlanFreeMemory_delete< _Ty > _Myt
This type.
Definition: WLAN.h:99
@@ -206,7 +206,7 @@ $(function() { diff --git a/_win_8h_source.html b/_win_8h_source.html index becdd9dd..31c8c19c 100644 --- a/_win_8h_source.html +++ b/_win_8h_source.html @@ -1250,621 +1250,682 @@ $(function() {
1473 }
1474 };
1475
-
1479 class event : public win_handle<NULL>
+
1479 class file_mapping : public win_handle<NULL>
1480 {
1481 public:
-
1491 bool create(_In_ BOOL bManualReset, _In_ BOOL bInitialState, _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes = NULL, _In_opt_z_ LPCTSTR lpName = NULL) noexcept
+
1491 bool create(_In_ HANDLE hFile, _In_ DWORD flProtect, _In_ DWORD dwMaximumSizeHigh, _In_ DWORD dwMaximumSizeLow, _In_opt_ LPSECURITY_ATTRIBUTES lpFileMappingAttributes = NULL, _In_opt_ LPCTSTR lpName = NULL) noexcept
1492 {
-
1493 handle_type h = CreateEvent(lpEventAttributes, bManualReset, bInitialState, lpName);
+
1493 handle_type h = CreateFileMappingW(hFile, lpFileMappingAttributes, flProtect, dwMaximumSizeHigh, dwMaximumSizeLow, lpName);
1494 if (h != invalid) {
1495 attach(h);
1496 return true;
1497 } else
1498 return false;
1499 }
-
1500
-
1510 bool open(_In_ DWORD dwDesiredAccess, _In_ BOOL bInheritHandle, _In_z_ LPCTSTR lpName) noexcept
-
1511 {
-
1512 handle_type h = OpenEvent(dwDesiredAccess, bInheritHandle, lpName);
-
1513 if (h != invalid) {
-
1514 attach(h);
-
1515 return true;
-
1516 } else
-
1517 return false;
-
1518 }
-
1519 };
-
1520
-
1524 class critical_section
-
1525 {
-
1526 WINSTD_NONCOPYABLE(critical_section)
-
1527 WINSTD_NONMOVABLE(critical_section)
+
1500 };
+
1501
+
1505 template <class _Ty> struct UnmapViewOfFile_delete
+
1506 {
+
1507 typedef UnmapViewOfFile_delete<_Ty> _Myt;
+
1508
+
1512 UnmapViewOfFile_delete() {}
+
1513
+
1517 template <class _Ty2> UnmapViewOfFile_delete(const UnmapViewOfFile_delete<_Ty2>&) {}
+
1518
+
1522 void operator()(_Ty* _Ptr) const
+
1523 {
+
1524 if (!UnmapViewOfFile(_Ptr))
+
1525 throw win_runtime_error("UnmapViewOfFile failed");
+
1526 }
+
1527 };
1528
-
1529 public:
-
1535 critical_section()
-
1536 {
-
1537 __try {
-
1538 InitializeCriticalSection(&m_data);
-
1539 } __except(EXCEPTION_EXECUTE_HANDLER) {
-
1540 throw std::runtime_error("InitializeCriticalSection failed");
-
1541 }
-
1542 }
-
1543
-
1549 virtual ~critical_section()
-
1550 {
-
1551 DeleteCriticalSection(&m_data);
-
1552 }
-
1553
-
1559 operator LPCRITICAL_SECTION() noexcept
-
1560 {
-
1561 return &m_data;
-
1562 }
-
1563
-
1564 protected:
-
1565 CRITICAL_SECTION m_data;
-
1566 };
-
1567
-
1571 class find_file : public handle<HANDLE, INVALID_HANDLE_VALUE>
-
1572 {
-
1573 WINSTD_HANDLE_IMPL(find_file, INVALID_HANDLE_VALUE)
-
1574
-
1575 public:
-
1581 virtual ~find_file()
-
1582 {
-
1583 if (m_h != invalid)
-
1584 free_internal();
-
1585 }
-
1586
-
1596 bool find(_In_ LPCTSTR lpFileName, _Out_ LPWIN32_FIND_DATA lpFindFileData) noexcept
-
1597 {
-
1598 handle_type h = FindFirstFile(lpFileName, lpFindFileData);
-
1599 if (h != invalid) {
-
1600 attach(h);
-
1601 return true;
-
1602 } else
-
1603 return false;
-
1604 }
+
1532 template <class _Ty> struct UnmapViewOfFile_delete<_Ty[]>
+
1533 {
+
1534 typedef UnmapViewOfFile_delete<_Ty> _Myt;
+
1535
+
1539 UnmapViewOfFile_delete() {}
+
1540
+
1544 void operator()(_Ty* _Ptr) const
+
1545 {
+
1546 if (!UnmapViewOfFile(_Ptr))
+
1547 throw win_runtime_error("UnmapViewOfFile failed");
+
1548 }
+
1549
+
1553 template<class _Other>
+
1554 void operator()(_Other*) const
+
1555 {
+
1556 if (!UnmapViewOfFile(_Ptr))
+
1557 throw win_runtime_error("UnmapViewOfFile failed");
+
1558 }
+
1559 };
+
1560
+
1564 class event : public win_handle<NULL>
+
1565 {
+
1566 public:
+
1576 bool create(_In_ BOOL bManualReset, _In_ BOOL bInitialState, _In_opt_ LPSECURITY_ATTRIBUTES lpEventAttributes = NULL, _In_opt_z_ LPCTSTR lpName = NULL) noexcept
+
1577 {
+
1578 handle_type h = CreateEvent(lpEventAttributes, bManualReset, bInitialState, lpName);
+
1579 if (h != invalid) {
+
1580 attach(h);
+
1581 return true;
+
1582 } else
+
1583 return false;
+
1584 }
+
1585
+
1595 bool open(_In_ DWORD dwDesiredAccess, _In_ BOOL bInheritHandle, _In_z_ LPCTSTR lpName) noexcept
+
1596 {
+
1597 handle_type h = OpenEvent(dwDesiredAccess, bInheritHandle, lpName);
+
1598 if (h != invalid) {
+
1599 attach(h);
+
1600 return true;
+
1601 } else
+
1602 return false;
+
1603 }
+
1604 };
1605
-
1606 protected:
-
1612 void free_internal() noexcept override
-
1613 {
-
1614 FindClose(m_h);
-
1615 }
-
1616 };
-
1617
-
1621 class heap : public handle<HANDLE, NULL>
-
1622 {
-
1623 WINSTD_HANDLE_IMPL(heap, NULL)
-
1624
-
1625 public:
-
1631 virtual ~heap()
-
1632 {
-
1633 if (m_h != invalid)
-
1634 free_internal();
-
1635 }
-
1636
-
1646 bool create(_In_ DWORD flOptions, _In_ SIZE_T dwInitialSize, _In_ SIZE_T dwMaximumSize) noexcept
-
1647 {
-
1648 handle_type h = HeapCreate(flOptions, dwInitialSize, dwMaximumSize);
-
1649 if (h != invalid) {
-
1650 attach(h);
-
1651 return true;
-
1652 } else
-
1653 return false;
-
1654 }
-
1655
-
1663 bool enumerate() noexcept
-
1664 {
-
1665 assert(m_h != invalid);
-
1666
-
1667 bool found = false;
-
1668
-
1669 // Lock the heap for exclusive access.
-
1670 HeapLock(m_h);
+
1609 class critical_section
+
1610 {
+
1611 WINSTD_NONCOPYABLE(critical_section)
+
1612 WINSTD_NONMOVABLE(critical_section)
+
1613
+
1614 public:
+
1620 critical_section()
+
1621 {
+
1622 __try {
+
1623 InitializeCriticalSection(&m_data);
+
1624 } __except(EXCEPTION_EXECUTE_HANDLER) {
+
1625 throw std::runtime_error("InitializeCriticalSection failed");
+
1626 }
+
1627 }
+
1628
+
1634 virtual ~critical_section()
+
1635 {
+
1636 DeleteCriticalSection(&m_data);
+
1637 }
+
1638
+
1644 operator LPCRITICAL_SECTION() noexcept
+
1645 {
+
1646 return &m_data;
+
1647 }
+
1648
+
1649 protected:
+
1650 CRITICAL_SECTION m_data;
+
1651 };
+
1652
+
1656 class find_file : public handle<HANDLE, INVALID_HANDLE_VALUE>
+
1657 {
+
1658 WINSTD_HANDLE_IMPL(find_file, INVALID_HANDLE_VALUE)
+
1659
+
1660 public:
+
1666 virtual ~find_file()
+
1667 {
+
1668 if (m_h != invalid)
+
1669 free_internal();
+
1670 }
1671
-
1672 PROCESS_HEAP_ENTRY e;
-
1673 e.lpData = NULL;
-
1674 while (HeapWalk(m_h, &e) != FALSE) {
-
1675 if ((e.wFlags & PROCESS_HEAP_ENTRY_BUSY) != 0) {
-
1676 OutputDebugStr(
-
1677 _T("Allocated block%s%s\n")
-
1678 _T(" Data portion begins at: %#p\n Size: %d bytes\n")
-
1679 _T(" Overhead: %d bytes\n Region index: %d\n"),
-
1680 (e.wFlags & PROCESS_HEAP_ENTRY_MOVEABLE) != 0 ? tstring_printf(_T(", movable with HANDLE %#p"), e.Block.hMem).c_str() : _T(""),
-
1681 (e.wFlags & PROCESS_HEAP_ENTRY_DDESHARE) != 0 ? _T(", DDESHARE") : _T(""),
-
1682 e.lpData,
-
1683 e.cbData,
-
1684 e.cbOverhead,
-
1685 e.iRegionIndex);
-
1686
-
1687 found = true;
-
1688 }
-
1689 }
+
1681 bool find(_In_ LPCTSTR lpFileName, _Out_ LPWIN32_FIND_DATA lpFindFileData) noexcept
+
1682 {
+
1683 handle_type h = FindFirstFile(lpFileName, lpFindFileData);
+
1684 if (h != invalid) {
+
1685 attach(h);
+
1686 return true;
+
1687 } else
+
1688 return false;
+
1689 }
1690
-
1691 const DWORD dwResult = GetLastError();
-
1692 if (dwResult != ERROR_NO_MORE_ITEMS)
-
1693 OutputDebugStr(_T("HeapWalk failed (error %u).\n"), dwResult);
-
1694
-
1695 // Unlock the heap.
-
1696 HeapUnlock(m_h);
-
1697
-
1698 return found;
-
1699 }
-
1700
-
1701 protected:
-
1707 void free_internal() noexcept override
-
1708 {
-
1709 enumerate();
-
1710 HeapDestroy(m_h);
-
1711 }
-
1712 };
-
1713
-
1717 template <class _Ty>
-
1718 class heap_allocator
-
1719 {
-
1720 public:
-
1721 typedef typename _Ty value_type;
-
1722
-
1723 typedef _Ty *pointer;
-
1724 typedef _Ty& reference;
-
1725 typedef const _Ty *const_pointer;
-
1726 typedef const _Ty& const_reference;
-
1727
-
1728 typedef SIZE_T size_type;
-
1729 typedef ptrdiff_t difference_type;
-
1730
-
1734 template <class _Other>
-
1735 struct rebind
-
1736 {
-
1737 typedef heap_allocator<_Other> other;
-
1738 };
-
1739
-
1740 public:
-
1746 heap_allocator(_In_ HANDLE heap) : m_heap(heap)
-
1747 {
-
1748 }
-
1749
-
1755 template <class _Other>
-
1756 heap_allocator(_In_ const heap_allocator<_Other> &other) : m_heap(other.m_heap)
-
1757 {
-
1758 }
-
1759
-
1767 pointer allocate(_In_ size_type count)
-
1768 {
-
1769 assert(m_heap);
-
1770 return (pointer)HeapAlloc(m_heap, 0, count * sizeof(_Ty));
-
1771 }
-
1772
-
1779 void deallocate(_In_ pointer ptr, _In_ size_type size)
-
1780 {
-
1781 UNREFERENCED_PARAMETER(size);
-
1782 assert(m_heap);
-
1783 HeapFree(m_heap, 0, ptr);
+
1691 protected:
+
1697 void free_internal() noexcept override
+
1698 {
+
1699 FindClose(m_h);
+
1700 }
+
1701 };
+
1702
+
1706 class heap : public handle<HANDLE, NULL>
+
1707 {
+
1708 WINSTD_HANDLE_IMPL(heap, NULL)
+
1709
+
1710 public:
+
1716 virtual ~heap()
+
1717 {
+
1718 if (m_h != invalid)
+
1719 free_internal();
+
1720 }
+
1721
+
1731 bool create(_In_ DWORD flOptions, _In_ SIZE_T dwInitialSize, _In_ SIZE_T dwMaximumSize) noexcept
+
1732 {
+
1733 handle_type h = HeapCreate(flOptions, dwInitialSize, dwMaximumSize);
+
1734 if (h != invalid) {
+
1735 attach(h);
+
1736 return true;
+
1737 } else
+
1738 return false;
+
1739 }
+
1740
+
1748 bool enumerate() noexcept
+
1749 {
+
1750 assert(m_h != invalid);
+
1751
+
1752 bool found = false;
+
1753
+
1754 // Lock the heap for exclusive access.
+
1755 HeapLock(m_h);
+
1756
+
1757 PROCESS_HEAP_ENTRY e;
+
1758 e.lpData = NULL;
+
1759 while (HeapWalk(m_h, &e) != FALSE) {
+
1760 if ((e.wFlags & PROCESS_HEAP_ENTRY_BUSY) != 0) {
+
1761 OutputDebugStr(
+
1762 _T("Allocated block%s%s\n")
+
1763 _T(" Data portion begins at: %#p\n Size: %d bytes\n")
+
1764 _T(" Overhead: %d bytes\n Region index: %d\n"),
+
1765 (e.wFlags & PROCESS_HEAP_ENTRY_MOVEABLE) != 0 ? tstring_printf(_T(", movable with HANDLE %#p"), e.Block.hMem).c_str() : _T(""),
+
1766 (e.wFlags & PROCESS_HEAP_ENTRY_DDESHARE) != 0 ? _T(", DDESHARE") : _T(""),
+
1767 e.lpData,
+
1768 e.cbData,
+
1769 e.cbOverhead,
+
1770 e.iRegionIndex);
+
1771
+
1772 found = true;
+
1773 }
+
1774 }
+
1775
+
1776 const DWORD dwResult = GetLastError();
+
1777 if (dwResult != ERROR_NO_MORE_ITEMS)
+
1778 OutputDebugStr(_T("HeapWalk failed (error %u).\n"), dwResult);
+
1779
+
1780 // Unlock the heap.
+
1781 HeapUnlock(m_h);
+
1782
+
1783 return found;
1784 }
1785
-
1792 void construct(_Inout_ pointer ptr, _In_ const _Ty& val)
-
1793 {
-
1794 ::new ((void*)ptr) _Ty(val);
-
1795 }
-
1796
-
1803 void construct(_Inout_ pointer ptr, _Inout_ _Ty&& val)
-
1804 {
-
1805 ::new ((void*)ptr) _Ty(std::forward<_Ty>(val));
-
1806 }
+
1786 protected:
+
1792 void free_internal() noexcept override
+
1793 {
+
1794 enumerate();
+
1795 HeapDestroy(m_h);
+
1796 }
+
1797 };
+
1798
+
1802 template <class _Ty>
+
1803 class heap_allocator
+
1804 {
+
1805 public:
+
1806 typedef typename _Ty value_type;
1807
-
1813 void destroy(_Inout_ pointer ptr)
-
1814 {
-
1815 ptr->_Ty::~_Ty();
-
1816 }
-
1817
-
1821 size_type max_size() const
-
1822 {
-
1823 return (SIZE_T)-1;
-
1824 }
-
1825
-
1826 public:
-
1827 HANDLE m_heap;
-
1828 };
-
1829
-
1833 class actctx_activator
-
1834 {
-
1835 WINSTD_NONCOPYABLE(actctx_activator)
-
1836 WINSTD_NONMOVABLE(actctx_activator)
-
1837
-
1838 public:
-
1846 actctx_activator(_In_ HANDLE hActCtx) noexcept
-
1847 {
-
1848 if (!ActivateActCtx(hActCtx, &m_cookie))
-
1849 m_cookie = 0;
-
1850 }
-
1851
-
1857 virtual ~actctx_activator()
-
1858 {
-
1859 if (m_cookie)
-
1860 DeactivateActCtx(0, m_cookie);
-
1861 }
-
1862
-
1863 protected:
-
1864 ULONG_PTR m_cookie;
-
1865 };
-
1866
-
1870 class user_impersonator
-
1871 {
-
1872 WINSTD_NONCOPYABLE(user_impersonator)
-
1873 WINSTD_NONMOVABLE(user_impersonator)
-
1874
-
1875 public:
-
1883 user_impersonator(_In_opt_ HANDLE hToken) noexcept
-
1884 {
-
1885 m_cookie = hToken && ImpersonateLoggedOnUser(hToken);
-
1886 }
-
1887
-
1893 virtual ~user_impersonator()
-
1894 {
-
1895 if (m_cookie)
-
1896 RevertToSelf();
-
1897 }
-
1898
-
1899 protected:
-
1900 BOOL m_cookie;
-
1901 };
+
1808 typedef _Ty *pointer;
+
1809 typedef _Ty& reference;
+
1810 typedef const _Ty *const_pointer;
+
1811 typedef const _Ty& const_reference;
+
1812
+
1813 typedef SIZE_T size_type;
+
1814 typedef ptrdiff_t difference_type;
+
1815
+
1819 template <class _Other>
+
1820 struct rebind
+
1821 {
+
1822 typedef heap_allocator<_Other> other;
+
1823 };
+
1824
+
1825 public:
+
1831 heap_allocator(_In_ HANDLE heap) : m_heap(heap)
+
1832 {
+
1833 }
+
1834
+
1840 template <class _Other>
+
1841 heap_allocator(_In_ const heap_allocator<_Other> &other) : m_heap(other.m_heap)
+
1842 {
+
1843 }
+
1844
+
1852 pointer allocate(_In_ size_type count)
+
1853 {
+
1854 assert(m_heap);
+
1855 return (pointer)HeapAlloc(m_heap, 0, count * sizeof(_Ty));
+
1856 }
+
1857
+
1864 void deallocate(_In_ pointer ptr, _In_ size_type size)
+
1865 {
+
1866 UNREFERENCED_PARAMETER(size);
+
1867 assert(m_heap);
+
1868 HeapFree(m_heap, 0, ptr);
+
1869 }
+
1870
+
1877 void construct(_Inout_ pointer ptr, _In_ const _Ty& val)
+
1878 {
+
1879 ::new ((void*)ptr) _Ty(val);
+
1880 }
+
1881
+
1888 void construct(_Inout_ pointer ptr, _Inout_ _Ty&& val)
+
1889 {
+
1890 ::new ((void*)ptr) _Ty(std::forward<_Ty>(val));
+
1891 }
+
1892
+
1898 void destroy(_Inout_ pointer ptr)
+
1899 {
+
1900 ptr->_Ty::~_Ty();
+
1901 }
1902
-
1906 class console_ctrl_handler
-
1907 {
-
1908 WINSTD_NONCOPYABLE(console_ctrl_handler)
-
1909 WINSTD_NONMOVABLE(console_ctrl_handler)
+
1906 size_type max_size() const
+
1907 {
+
1908 return (SIZE_T)-1;
+
1909 }
1910
1911 public:
-
1919 console_ctrl_handler(_In_opt_ PHANDLER_ROUTINE HandlerRoutine) noexcept : m_handler(HandlerRoutine)
-
1920 {
-
1921 m_cookie = SetConsoleCtrlHandler(m_handler, TRUE);
-
1922 }
-
1923
-
1929 virtual ~console_ctrl_handler()
-
1930 {
-
1931 if (m_cookie)
-
1932 SetConsoleCtrlHandler(m_handler, FALSE);
-
1933 }
-
1934
-
1935 protected:
-
1936 BOOL m_cookie;
-
1937 PHANDLER_ROUTINE m_handler;
-
1938 };
-
1939
-
1943 class vmemory : public handle<LPVOID, NULL>
-
1944 {
-
1945 WINSTD_NONCOPYABLE(vmemory)
-
1946
-
1947 public:
-
1951 vmemory() noexcept : m_proc(NULL)
-
1952 {
-
1953 }
-
1954
-
1961 vmemory(_In_ handle_type h, _In_ HANDLE proc) noexcept :
-
1962 m_proc(proc),
-
1963 handle<LPVOID, NULL>(h)
-
1964 {
-
1965 }
-
1966
-
1972 vmemory(_Inout_ vmemory &&h) noexcept :
-
1973 m_proc(std::move(h.m_proc)),
-
1974 handle<LPVOID, NULL>(std::move(h))
-
1975 {
-
1976 }
-
1977
-
1983 virtual ~vmemory()
-
1984 {
-
1985 if (m_h != invalid)
-
1986 VirtualFreeEx(m_proc, m_h, 0, MEM_RELEASE);
-
1987 }
-
1988
-
1994 vmemory& operator=(_Inout_ vmemory &&other) noexcept
-
1995 {
-
1996 if (this != std::addressof(other)) {
-
1997 (handle<handle_type, NULL>&&)*this = std::move(other);
-
1998 m_proc = std::move(other.m_proc);
-
1999 }
-
2000 return *this;
-
2001 }
-
2002
-
2011 void attach(_In_ HANDLE proc, _In_opt_ handle_type h) noexcept
-
2012 {
-
2013 m_proc = proc;
-
2014 if (m_h != invalid)
-
2015 free_internal();
-
2016 m_h = h;
-
2017 }
-
2018
-
2028 bool alloc(
-
2029 _In_ HANDLE hProcess,
-
2030 _In_opt_ LPVOID lpAddress,
-
2031 _In_ SIZE_T dwSize,
-
2032 _In_ DWORD flAllocationType,
-
2033 _In_ DWORD flProtect) noexcept
-
2034 {
-
2035 handle_type h = VirtualAllocEx(hProcess, lpAddress, dwSize, flAllocationType, flProtect);
-
2036 if (h != invalid) {
-
2037 attach(hProcess, h);
-
2038 return true;
-
2039 } else
-
2040 return false;
-
2041 }
-
2042
-
2043 protected:
-
2049 void free_internal() noexcept override
-
2050 {
-
2051 VirtualFreeEx(m_proc, m_h, 0, MEM_RELEASE);
-
2052 }
-
2053
-
2054 protected:
-
2055 HANDLE m_proc;
-
2056 };
-
2057
-
2061 class reg_key : public handle<HKEY, NULL>
-
2062 {
-
2063 WINSTD_HANDLE_IMPL(reg_key, NULL)
-
2064
-
2065 public:
-
2071 virtual ~reg_key()
-
2072 {
-
2073 if (m_h != invalid)
-
2074 free_internal();
-
2075 }
-
2076
-
2086 bool create(
-
2087 _In_ HKEY hKey,
-
2088 _In_z_ LPCTSTR lpSubKey,
-
2089 _In_opt_ LPTSTR lpClass,
-
2090 _In_ DWORD dwOptions,
-
2091 _In_ REGSAM samDesired,
-
2092 _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes = NULL,
-
2093 _Out_opt_ LPDWORD lpdwDisposition = NULL) noexcept
-
2094 {
-
2095 handle_type h;
-
2096 const LSTATUS s = RegCreateKeyEx(hKey, lpSubKey, 0, lpClass, dwOptions, samDesired, lpSecurityAttributes, &h, lpdwDisposition);
-
2097 if (s == ERROR_SUCCESS) {
-
2098 attach(h);
-
2099 return true;
-
2100 } else {
-
2101 SetLastError(s);
-
2102 return false;
-
2103 }
-
2104 }
-
2105
-
2115 bool open(
-
2116 _In_ HKEY hKey,
-
2117 _In_opt_z_ LPCTSTR lpSubKey,
-
2118 _In_ DWORD ulOptions,
-
2119 _In_ REGSAM samDesired) noexcept
-
2120 {
-
2121 handle_type h;
-
2122 const LONG s = RegOpenKeyEx(hKey, lpSubKey, ulOptions, samDesired, &h);
-
2123 if (s == ERROR_SUCCESS) {
-
2124 attach(h);
-
2125 return true;
-
2126 } else {
-
2127 SetLastError(s);
-
2128 return false;
-
2129 }
-
2130 }
-
2131
-
2141 bool delete_subkey(_In_z_ LPCTSTR szSubkey)
-
2142 {
-
2143 LSTATUS s;
-
2144
-
2145 s = RegDeleteKey(m_h, szSubkey);
-
2146 if (s == ERROR_SUCCESS || s == ERROR_FILE_NOT_FOUND)
-
2147 return true;
-
2148
-
2149 {
-
2150 reg_key k;
-
2151 if (!k.open(m_h, szSubkey, 0, KEY_ENUMERATE_SUB_KEYS))
-
2152 return false;
-
2153 for (;;) {
-
2154 TCHAR szName[MAX_PATH];
-
2155 DWORD dwSize = _countof(szName);
-
2156 s = RegEnumKeyEx(k, 0, szName, &dwSize, NULL, NULL, NULL, NULL);
-
2157 if (s == ERROR_SUCCESS)
-
2158 k.delete_subkey(szName);
-
2159 else if (s == ERROR_NO_MORE_ITEMS)
-
2160 break;
-
2161 else {
-
2162 SetLastError(s);
-
2163 return false;
-
2164 }
-
2165 }
-
2166 }
-
2167
-
2168 s = RegDeleteKey(m_h, szSubkey);
-
2169 if (s == ERROR_SUCCESS)
-
2170 return true;
-
2171 else {
-
2172 SetLastError(s);
-
2173 return false;
-
2174 }
-
2175 }
-
2176
-
2177 protected:
-
2183 void free_internal() noexcept override
-
2184 {
-
2185 RegCloseKey(m_h);
-
2186 }
-
2187 };
-
2188
-
2192 class security_id : public handle<PSID, NULL>
-
2193 {
-
2194 WINSTD_HANDLE_IMPL(security_id, NULL)
-
2195
-
2196 public:
-
2202 virtual ~security_id()
-
2203 {
-
2204 if (m_h != invalid)
-
2205 free_internal();
-
2206 }
-
2207
-
2208 protected:
-
2214 void free_internal() noexcept override
-
2215 {
-
2216 FreeSid(m_h);
-
2217 }
-
2218 };
-
2219
-
2223 class process_information : public PROCESS_INFORMATION
-
2224 {
-
2225 WINSTD_NONCOPYABLE(process_information)
-
2226 WINSTD_NONMOVABLE(process_information)
-
2227
-
2228 public:
-
2232 process_information() noexcept
-
2233 {
-
2234 hProcess = INVALID_HANDLE_VALUE;
-
2235 hThread = INVALID_HANDLE_VALUE;
-
2236 dwProcessId = 0;
-
2237 dwThreadId = 0;
-
2238 }
-
2239
-
2243 ~process_information()
-
2244 {
-
2245 #pragma warning(push)
-
2246 #pragma warning(disable: 6001) // Using uninitialized memory '*this'. << ???
-
2247
-
2248 if (hProcess != INVALID_HANDLE_VALUE)
-
2249 CloseHandle(hProcess);
-
2250
-
2251 if (hThread != INVALID_HANDLE_VALUE)
-
2252 CloseHandle(hThread);
-
2253
-
2254 #pragma warning(pop)
-
2255 }
-
2256 };
-
2257
-
2261 class event_log : public handle<HANDLE, NULL>
-
2262 {
-
2263 WINSTD_HANDLE_IMPL(event_log, NULL)
-
2264
-
2265 public:
-
2271 virtual ~event_log()
-
2272 {
-
2273 if (m_h != invalid)
-
2274 free_internal();
-
2275 }
-
2276
-
2286 bool open(_In_z_ LPCTSTR lpUNCServerName, _In_z_ LPCTSTR lpSourceName) noexcept
-
2287 {
-
2288 handle_type h = RegisterEventSource(lpUNCServerName, lpSourceName);
-
2289 if (h != invalid) {
-
2290 attach(h);
-
2291 return true;
-
2292 } else
-
2293 return false;
-
2294 }
-
2295
-
2296 protected:
-
2302 void free_internal() noexcept override
-
2303 {
-
2304 DeregisterEventSource(m_h);
-
2305 }
-
2306 };
-
2307
-
2309}
-
winstd::actctx_activator
Activates given activation context in constructor and deactivates it in destructor.
Definition: Win.h:1834
-
winstd::actctx_activator::actctx_activator
actctx_activator(HANDLE hActCtx) noexcept
Construct the activator and activates the given activation context.
Definition: Win.h:1846
-
winstd::actctx_activator::~actctx_activator
virtual ~actctx_activator()
Deactivates activation context and destructs the activator.
Definition: Win.h:1857
-
winstd::actctx_activator::m_cookie
ULONG_PTR m_cookie
Cookie for context deactivation.
Definition: Win.h:1864
-
winstd::basic_string_printf
Base template class to support string formatting using printf() style templates.
Definition: Common.h:1115
-
winstd::console_ctrl_handler
Console control handler stack management.
Definition: Win.h:1907
-
winstd::console_ctrl_handler::console_ctrl_handler
console_ctrl_handler(PHANDLER_ROUTINE HandlerRoutine) noexcept
Construct the console control handler object and pushes the given handler to the console control hand...
Definition: Win.h:1919
-
winstd::console_ctrl_handler::~console_ctrl_handler
virtual ~console_ctrl_handler()
Pops console control handler from the console control handler stack.
Definition: Win.h:1929
-
winstd::console_ctrl_handler::m_handler
PHANDLER_ROUTINE m_handler
Pointer to console control handler.
Definition: Win.h:1937
-
winstd::console_ctrl_handler::m_cookie
BOOL m_cookie
Did pushing the console control handler succeed?
Definition: Win.h:1936
-
winstd::critical_section
Critical section wrapper.
Definition: Win.h:1525
-
winstd::critical_section::m_data
CRITICAL_SECTION m_data
Critical section struct.
Definition: Win.h:1565
-
winstd::critical_section::~critical_section
virtual ~critical_section()
Releases all resources used by an unowned critical section object.
Definition: Win.h:1549
-
winstd::critical_section::critical_section
critical_section()
Construct the object and initializes a critical section object.
Definition: Win.h:1535
-
winstd::event_log
Event log handle wrapper.
Definition: Win.h:2262
-
winstd::event_log::free_internal
void free_internal() noexcept override
Closes an event log handle.
Definition: Win.h:2302
-
winstd::event_log::~event_log
virtual ~event_log()
Closes an event log handle.
Definition: Win.h:2271
-
winstd::event_log::open
bool open(LPCTSTR lpUNCServerName, LPCTSTR lpSourceName) noexcept
Retrieves a registered handle to the specified event log.
Definition: Win.h:2286
-
winstd::event
Event handle wrapper.
Definition: Win.h:1480
-
winstd::event::open
bool open(DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName) noexcept
Opens an existing named event object.
Definition: Win.h:1510
-
winstd::event::create
bool create(BOOL bManualReset, BOOL bInitialState, LPSECURITY_ATTRIBUTES lpEventAttributes=NULL, LPCTSTR lpName=NULL) noexcept
Creates or opens a named or unnamed event object.
Definition: Win.h:1491
+
1912 HANDLE m_heap;
+
1913 };
+
1914
+
1918 class actctx_activator
+
1919 {
+
1920 WINSTD_NONCOPYABLE(actctx_activator)
+
1921 WINSTD_NONMOVABLE(actctx_activator)
+
1922
+
1923 public:
+
1931 actctx_activator(_In_ HANDLE hActCtx) noexcept
+
1932 {
+
1933 if (!ActivateActCtx(hActCtx, &m_cookie))
+
1934 m_cookie = 0;
+
1935 }
+
1936
+
1942 virtual ~actctx_activator()
+
1943 {
+
1944 if (m_cookie)
+
1945 DeactivateActCtx(0, m_cookie);
+
1946 }
+
1947
+
1948 protected:
+
1949 ULONG_PTR m_cookie;
+
1950 };
+
1951
+
1955 class user_impersonator
+
1956 {
+
1957 WINSTD_NONCOPYABLE(user_impersonator)
+
1958 WINSTD_NONMOVABLE(user_impersonator)
+
1959
+
1960 public:
+
1968 user_impersonator(_In_opt_ HANDLE hToken) noexcept
+
1969 {
+
1970 m_cookie = hToken && ImpersonateLoggedOnUser(hToken);
+
1971 }
+
1972
+
1978 virtual ~user_impersonator()
+
1979 {
+
1980 if (m_cookie)
+
1981 RevertToSelf();
+
1982 }
+
1983
+
1984 protected:
+
1985 BOOL m_cookie;
+
1986 };
+
1987
+
1991 class console_ctrl_handler
+
1992 {
+
1993 WINSTD_NONCOPYABLE(console_ctrl_handler)
+
1994 WINSTD_NONMOVABLE(console_ctrl_handler)
+
1995
+
1996 public:
+
2004 console_ctrl_handler(_In_opt_ PHANDLER_ROUTINE HandlerRoutine) noexcept : m_handler(HandlerRoutine)
+
2005 {
+
2006 m_cookie = SetConsoleCtrlHandler(m_handler, TRUE);
+
2007 }
+
2008
+
2014 virtual ~console_ctrl_handler()
+
2015 {
+
2016 if (m_cookie)
+
2017 SetConsoleCtrlHandler(m_handler, FALSE);
+
2018 }
+
2019
+
2020 protected:
+
2021 BOOL m_cookie;
+
2022 PHANDLER_ROUTINE m_handler;
+
2023 };
+
2024
+
2028 class vmemory : public handle<LPVOID, NULL>
+
2029 {
+
2030 WINSTD_NONCOPYABLE(vmemory)
+
2031
+
2032 public:
+
2036 vmemory() noexcept : m_proc(NULL)
+
2037 {
+
2038 }
+
2039
+
2046 vmemory(_In_ handle_type h, _In_ HANDLE proc) noexcept :
+
2047 m_proc(proc),
+
2048 handle<LPVOID, NULL>(h)
+
2049 {
+
2050 }
+
2051
+
2057 vmemory(_Inout_ vmemory &&h) noexcept :
+
2058 m_proc(std::move(h.m_proc)),
+
2059 handle<LPVOID, NULL>(std::move(h))
+
2060 {
+
2061 }
+
2062
+
2068 virtual ~vmemory()
+
2069 {
+
2070 if (m_h != invalid)
+
2071 VirtualFreeEx(m_proc, m_h, 0, MEM_RELEASE);
+
2072 }
+
2073
+
2079 vmemory& operator=(_Inout_ vmemory &&other) noexcept
+
2080 {
+
2081 if (this != std::addressof(other)) {
+
2082 (handle<handle_type, NULL>&&)*this = std::move(other);
+
2083 m_proc = std::move(other.m_proc);
+
2084 }
+
2085 return *this;
+
2086 }
+
2087
+
2096 void attach(_In_ HANDLE proc, _In_opt_ handle_type h) noexcept
+
2097 {
+
2098 m_proc = proc;
+
2099 if (m_h != invalid)
+
2100 free_internal();
+
2101 m_h = h;
+
2102 }
+
2103
+
2113 bool alloc(
+
2114 _In_ HANDLE hProcess,
+
2115 _In_opt_ LPVOID lpAddress,
+
2116 _In_ SIZE_T dwSize,
+
2117 _In_ DWORD flAllocationType,
+
2118 _In_ DWORD flProtect) noexcept
+
2119 {
+
2120 handle_type h = VirtualAllocEx(hProcess, lpAddress, dwSize, flAllocationType, flProtect);
+
2121 if (h != invalid) {
+
2122 attach(hProcess, h);
+
2123 return true;
+
2124 } else
+
2125 return false;
+
2126 }
+
2127
+
2128 protected:
+
2134 void free_internal() noexcept override
+
2135 {
+
2136 VirtualFreeEx(m_proc, m_h, 0, MEM_RELEASE);
+
2137 }
+
2138
+
2139 protected:
+
2140 HANDLE m_proc;
+
2141 };
+
2142
+
2146 class reg_key : public handle<HKEY, NULL>
+
2147 {
+
2148 WINSTD_HANDLE_IMPL(reg_key, NULL)
+
2149
+
2150 public:
+
2156 virtual ~reg_key()
+
2157 {
+
2158 if (m_h != invalid)
+
2159 free_internal();
+
2160 }
+
2161
+
2171 bool create(
+
2172 _In_ HKEY hKey,
+
2173 _In_z_ LPCTSTR lpSubKey,
+
2174 _In_opt_ LPTSTR lpClass,
+
2175 _In_ DWORD dwOptions,
+
2176 _In_ REGSAM samDesired,
+
2177 _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes = NULL,
+
2178 _Out_opt_ LPDWORD lpdwDisposition = NULL) noexcept
+
2179 {
+
2180 handle_type h;
+
2181 const LSTATUS s = RegCreateKeyEx(hKey, lpSubKey, 0, lpClass, dwOptions, samDesired, lpSecurityAttributes, &h, lpdwDisposition);
+
2182 if (s == ERROR_SUCCESS) {
+
2183 attach(h);
+
2184 return true;
+
2185 } else {
+
2186 SetLastError(s);
+
2187 return false;
+
2188 }
+
2189 }
+
2190
+
2200 bool open(
+
2201 _In_ HKEY hKey,
+
2202 _In_opt_z_ LPCTSTR lpSubKey,
+
2203 _In_ DWORD ulOptions,
+
2204 _In_ REGSAM samDesired) noexcept
+
2205 {
+
2206 handle_type h;
+
2207 const LONG s = RegOpenKeyEx(hKey, lpSubKey, ulOptions, samDesired, &h);
+
2208 if (s == ERROR_SUCCESS) {
+
2209 attach(h);
+
2210 return true;
+
2211 } else {
+
2212 SetLastError(s);
+
2213 return false;
+
2214 }
+
2215 }
+
2216
+
2226 bool delete_subkey(_In_z_ LPCTSTR szSubkey)
+
2227 {
+
2228 LSTATUS s;
+
2229
+
2230 s = RegDeleteKey(m_h, szSubkey);
+
2231 if (s == ERROR_SUCCESS || s == ERROR_FILE_NOT_FOUND)
+
2232 return true;
+
2233
+
2234 {
+
2235 reg_key k;
+
2236 if (!k.open(m_h, szSubkey, 0, KEY_ENUMERATE_SUB_KEYS))
+
2237 return false;
+
2238 for (;;) {
+
2239 TCHAR szName[MAX_PATH];
+
2240 DWORD dwSize = _countof(szName);
+
2241 s = RegEnumKeyEx(k, 0, szName, &dwSize, NULL, NULL, NULL, NULL);
+
2242 if (s == ERROR_SUCCESS)
+
2243 k.delete_subkey(szName);
+
2244 else if (s == ERROR_NO_MORE_ITEMS)
+
2245 break;
+
2246 else {
+
2247 SetLastError(s);
+
2248 return false;
+
2249 }
+
2250 }
+
2251 }
+
2252
+
2253 s = RegDeleteKey(m_h, szSubkey);
+
2254 if (s == ERROR_SUCCESS)
+
2255 return true;
+
2256 else {
+
2257 SetLastError(s);
+
2258 return false;
+
2259 }
+
2260 }
+
2261
+
2262 protected:
+
2268 void free_internal() noexcept override
+
2269 {
+
2270 RegCloseKey(m_h);
+
2271 }
+
2272 };
+
2273
+
2277 class security_id : public handle<PSID, NULL>
+
2278 {
+
2279 WINSTD_HANDLE_IMPL(security_id, NULL)
+
2280
+
2281 public:
+
2287 virtual ~security_id()
+
2288 {
+
2289 if (m_h != invalid)
+
2290 free_internal();
+
2291 }
+
2292
+
2293 protected:
+
2299 void free_internal() noexcept override
+
2300 {
+
2301 FreeSid(m_h);
+
2302 }
+
2303 };
+
2304
+
2308 class process_information : public PROCESS_INFORMATION
+
2309 {
+
2310 WINSTD_NONCOPYABLE(process_information)
+
2311 WINSTD_NONMOVABLE(process_information)
+
2312
+
2313 public:
+
2317 process_information() noexcept
+
2318 {
+
2319 hProcess = INVALID_HANDLE_VALUE;
+
2320 hThread = INVALID_HANDLE_VALUE;
+
2321 dwProcessId = 0;
+
2322 dwThreadId = 0;
+
2323 }
+
2324
+
2328 ~process_information()
+
2329 {
+
2330 #pragma warning(push)
+
2331 #pragma warning(disable: 6001) // Using uninitialized memory '*this'. << ???
+
2332
+
2333 if (hProcess != INVALID_HANDLE_VALUE)
+
2334 CloseHandle(hProcess);
+
2335
+
2336 if (hThread != INVALID_HANDLE_VALUE)
+
2337 CloseHandle(hThread);
+
2338
+
2339 #pragma warning(pop)
+
2340 }
+
2341 };
+
2342
+
2346 class event_log : public handle<HANDLE, NULL>
+
2347 {
+
2348 WINSTD_HANDLE_IMPL(event_log, NULL)
+
2349
+
2350 public:
+
2356 virtual ~event_log()
+
2357 {
+
2358 if (m_h != invalid)
+
2359 free_internal();
+
2360 }
+
2361
+
2371 bool open(_In_z_ LPCTSTR lpUNCServerName, _In_z_ LPCTSTR lpSourceName) noexcept
+
2372 {
+
2373 handle_type h = RegisterEventSource(lpUNCServerName, lpSourceName);
+
2374 if (h != invalid) {
+
2375 attach(h);
+
2376 return true;
+
2377 } else
+
2378 return false;
+
2379 }
+
2380
+
2381 protected:
+
2387 void free_internal() noexcept override
+
2388 {
+
2389 DeregisterEventSource(m_h);
+
2390 }
+
2391 };
+
2392
+
2394}
+
winstd::actctx_activator
Activates given activation context in constructor and deactivates it in destructor.
Definition: Win.h:1919
+
winstd::actctx_activator::actctx_activator
actctx_activator(HANDLE hActCtx) noexcept
Construct the activator and activates the given activation context.
Definition: Win.h:1931
+
winstd::actctx_activator::~actctx_activator
virtual ~actctx_activator()
Deactivates activation context and destructs the activator.
Definition: Win.h:1942
+
winstd::actctx_activator::m_cookie
ULONG_PTR m_cookie
Cookie for context deactivation.
Definition: Win.h:1949
+
winstd::basic_string_printf
Base template class to support string formatting using printf() style templates.
Definition: Common.h:1114
+
winstd::console_ctrl_handler
Console control handler stack management.
Definition: Win.h:1992
+
winstd::console_ctrl_handler::console_ctrl_handler
console_ctrl_handler(PHANDLER_ROUTINE HandlerRoutine) noexcept
Construct the console control handler object and pushes the given handler to the console control hand...
Definition: Win.h:2004
+
winstd::console_ctrl_handler::~console_ctrl_handler
virtual ~console_ctrl_handler()
Pops console control handler from the console control handler stack.
Definition: Win.h:2014
+
winstd::console_ctrl_handler::m_handler
PHANDLER_ROUTINE m_handler
Pointer to console control handler.
Definition: Win.h:2022
+
winstd::console_ctrl_handler::m_cookie
BOOL m_cookie
Did pushing the console control handler succeed?
Definition: Win.h:2021
+
winstd::critical_section
Critical section wrapper.
Definition: Win.h:1610
+
winstd::critical_section::m_data
CRITICAL_SECTION m_data
Critical section struct.
Definition: Win.h:1650
+
winstd::critical_section::~critical_section
virtual ~critical_section()
Releases all resources used by an unowned critical section object.
Definition: Win.h:1634
+
winstd::critical_section::critical_section
critical_section()
Construct the object and initializes a critical section object.
Definition: Win.h:1620
+
winstd::event_log
Event log handle wrapper.
Definition: Win.h:2347
+
winstd::event_log::free_internal
void free_internal() noexcept override
Closes an event log handle.
Definition: Win.h:2387
+
winstd::event_log::~event_log
virtual ~event_log()
Closes an event log handle.
Definition: Win.h:2356
+
winstd::event_log::open
bool open(LPCTSTR lpUNCServerName, LPCTSTR lpSourceName) noexcept
Retrieves a registered handle to the specified event log.
Definition: Win.h:2371
+
winstd::event
Event handle wrapper.
Definition: Win.h:1565
+
winstd::event::open
bool open(DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName) noexcept
Opens an existing named event object.
Definition: Win.h:1595
+
winstd::event::create
bool create(BOOL bManualReset, BOOL bInitialState, LPSECURITY_ATTRIBUTES lpEventAttributes=NULL, LPCTSTR lpName=NULL) noexcept
Creates or opens a named or unnamed event object.
Definition: Win.h:1576
+
winstd::file_mapping
File mapping.
Definition: Win.h:1480
+
winstd::file_mapping::create
bool create(HANDLE hFile, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPSECURITY_ATTRIBUTES lpFileMappingAttributes=NULL, LPCTSTR lpName=NULL) noexcept
Creates or opens a named or unnamed file mapping object for a specified file.
Definition: Win.h:1491
winstd::file
File handle wrapper.
Definition: Win.h:1454
winstd::file::create
bool create(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes=FILE_ATTRIBUTE_NORMAL, LPSECURITY_ATTRIBUTES lpSecurityAttributes=NULL, HANDLE hTemplateFile=NULL) noexcept
Opens file handle.
Definition: Win.h:1465
-
winstd::find_file
Find-file handle wrapper.
Definition: Win.h:1572
-
winstd::find_file::~find_file
virtual ~find_file()
Closes a file search handle.
Definition: Win.h:1581
-
winstd::find_file::free_internal
void free_internal() noexcept override
Closes a file search handle.
Definition: Win.h:1612
-
winstd::find_file::find
bool find(LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData) noexcept
Searches a directory for a file or subdirectory with a name that matches a specific name (or partial ...
Definition: Win.h:1596
-
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:604
-
winstd::handle< HMODULE, NULL >::handle_type
HMODULE handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:609
-
winstd::handle< HANDLE, INVALID >::m_h
handle_type m_h
Object handle.
Definition: Common.h:855
-
winstd::handle< HMODULE, NULL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:818
-
winstd::heap_allocator
HeapAlloc allocator.
Definition: Win.h:1719
-
winstd::heap_allocator::size_type
SIZE_T size_type
An unsigned integral type that can represent the length of any sequence that an object of template cl...
Definition: Win.h:1728
-
winstd::heap_allocator::value_type
_Ty value_type
A type that is managed by the allocator.
Definition: Win.h:1721
-
winstd::heap_allocator::heap_allocator
heap_allocator(const heap_allocator< _Other > &other)
Constructs allocator from another type.
Definition: Win.h:1756
-
winstd::heap_allocator::m_heap
HANDLE m_heap
Heap handle.
Definition: Win.h:1827
-
winstd::heap_allocator::allocate
pointer allocate(size_type count)
Allocates a new memory block.
Definition: Win.h:1767
-
winstd::heap_allocator::difference_type
ptrdiff_t difference_type
A signed integral type that can represent the difference between values of pointers to the type of ob...
Definition: Win.h:1729
-
winstd::heap_allocator::heap_allocator
heap_allocator(HANDLE heap)
Constructs allocator.
Definition: Win.h:1746
-
winstd::heap_allocator::reference
_Ty & reference
A type that provides a reference to the type of object managed by the allocator.
Definition: Win.h:1724
-
winstd::heap_allocator::construct
void construct(pointer ptr, _Ty &&val)
Calls moving constructor for the element.
Definition: Win.h:1803
-
winstd::heap_allocator::deallocate
void deallocate(pointer ptr, size_type size)
Frees memory block.
Definition: Win.h:1779
-
winstd::heap_allocator::max_size
size_type max_size() const
Returns maximum memory block size.
Definition: Win.h:1821
-
winstd::heap_allocator::construct
void construct(pointer ptr, const _Ty &val)
Calls copying constructor for the element.
Definition: Win.h:1792
-
winstd::heap_allocator::const_reference
const _Ty & const_reference
A type that provides a constant reference to type of object managed by the allocator.
Definition: Win.h:1726
-
winstd::heap_allocator::const_pointer
const _Ty * const_pointer
A type that provides a constant pointer to the type of object managed by the allocator.
Definition: Win.h:1725
-
winstd::heap_allocator::pointer
_Ty * pointer
A type that provides a pointer to the type of object managed by the allocator.
Definition: Win.h:1723
-
winstd::heap_allocator::destroy
void destroy(pointer ptr)
Calls destructor for the element.
Definition: Win.h:1813
-
winstd::heap
Heap handle wrapper.
Definition: Win.h:1622
-
winstd::heap::enumerate
bool enumerate() noexcept
Enumerates allocated heap blocks using OutputDebugString()
Definition: Win.h:1663
-
winstd::heap::create
bool create(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize) noexcept
Creates the heap.
Definition: Win.h:1646
-
winstd::heap::free_internal
void free_internal() noexcept override
Destroys the heap.
Definition: Win.h:1707
-
winstd::heap::~heap
virtual ~heap()
Destroys the heap.
Definition: Win.h:1631
+
winstd::find_file
Find-file handle wrapper.
Definition: Win.h:1657
+
winstd::find_file::~find_file
virtual ~find_file()
Closes a file search handle.
Definition: Win.h:1666
+
winstd::find_file::free_internal
void free_internal() noexcept override
Closes a file search handle.
Definition: Win.h:1697
+
winstd::find_file::find
bool find(LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData) noexcept
Searches a directory for a file or subdirectory with a name that matches a specific name (or partial ...
Definition: Win.h:1681
+
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:603
+
winstd::handle< HMODULE, NULL >::handle_type
HMODULE handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
+
winstd::handle< HANDLE, INVALID >::m_h
handle_type m_h
Object handle.
Definition: Common.h:854
+
winstd::handle< HMODULE, NULL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:817
+
winstd::heap_allocator
HeapAlloc allocator.
Definition: Win.h:1804
+
winstd::heap_allocator::size_type
SIZE_T size_type
An unsigned integral type that can represent the length of any sequence that an object of template cl...
Definition: Win.h:1813
+
winstd::heap_allocator::value_type
_Ty value_type
A type that is managed by the allocator.
Definition: Win.h:1806
+
winstd::heap_allocator::heap_allocator
heap_allocator(const heap_allocator< _Other > &other)
Constructs allocator from another type.
Definition: Win.h:1841
+
winstd::heap_allocator::m_heap
HANDLE m_heap
Heap handle.
Definition: Win.h:1912
+
winstd::heap_allocator::allocate
pointer allocate(size_type count)
Allocates a new memory block.
Definition: Win.h:1852
+
winstd::heap_allocator::difference_type
ptrdiff_t difference_type
A signed integral type that can represent the difference between values of pointers to the type of ob...
Definition: Win.h:1814
+
winstd::heap_allocator::heap_allocator
heap_allocator(HANDLE heap)
Constructs allocator.
Definition: Win.h:1831
+
winstd::heap_allocator::reference
_Ty & reference
A type that provides a reference to the type of object managed by the allocator.
Definition: Win.h:1809
+
winstd::heap_allocator::construct
void construct(pointer ptr, _Ty &&val)
Calls moving constructor for the element.
Definition: Win.h:1888
+
winstd::heap_allocator::deallocate
void deallocate(pointer ptr, size_type size)
Frees memory block.
Definition: Win.h:1864
+
winstd::heap_allocator::max_size
size_type max_size() const
Returns maximum memory block size.
Definition: Win.h:1906
+
winstd::heap_allocator::construct
void construct(pointer ptr, const _Ty &val)
Calls copying constructor for the element.
Definition: Win.h:1877
+
winstd::heap_allocator::const_reference
const _Ty & const_reference
A type that provides a constant reference to type of object managed by the allocator.
Definition: Win.h:1811
+
winstd::heap_allocator::const_pointer
const _Ty * const_pointer
A type that provides a constant pointer to the type of object managed by the allocator.
Definition: Win.h:1810
+
winstd::heap_allocator::pointer
_Ty * pointer
A type that provides a pointer to the type of object managed by the allocator.
Definition: Win.h:1808
+
winstd::heap_allocator::destroy
void destroy(pointer ptr)
Calls destructor for the element.
Definition: Win.h:1898
+
winstd::heap
Heap handle wrapper.
Definition: Win.h:1707
+
winstd::heap::enumerate
bool enumerate() noexcept
Enumerates allocated heap blocks using OutputDebugString()
Definition: Win.h:1748
+
winstd::heap::create
bool create(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize) noexcept
Creates the heap.
Definition: Win.h:1731
+
winstd::heap::free_internal
void free_internal() noexcept override
Destroys the heap.
Definition: Win.h:1792
+
winstd::heap::~heap
virtual ~heap()
Destroys the heap.
Definition: Win.h:1716
winstd::library
Module handle wrapper.
Definition: Win.h:1378
winstd::library::free_internal
void free_internal() noexcept override
Frees the module.
Definition: Win.h:1418
winstd::library::~library
virtual ~library()
Frees the module.
Definition: Win.h:1387
winstd::library::load
bool load(LPCTSTR lpFileName, __reserved handle_type hFile, DWORD dwFlags) noexcept
Loads the specified module into the address space of the calling process.
Definition: Win.h:1402
-
winstd::process_information
PROCESS_INFORMATION struct wrapper.
Definition: Win.h:2224
-
winstd::process_information::~process_information
~process_information()
Closes process and thread handles.
Definition: Win.h:2243
-
winstd::process_information::process_information
process_information() noexcept
Constructs blank PROCESS_INFORMATION.
Definition: Win.h:2232
+
winstd::process_information
PROCESS_INFORMATION struct wrapper.
Definition: Win.h:2309
+
winstd::process_information::~process_information
~process_information()
Closes process and thread handles.
Definition: Win.h:2328
+
winstd::process_information::process_information
process_information() noexcept
Constructs blank PROCESS_INFORMATION.
Definition: Win.h:2317
winstd::process
Process handle wrapper.
Definition: Win.h:1428
winstd::process::open
bool open(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId) noexcept
Opens process handle.
Definition: Win.h:1439
-
winstd::reg_key
Registry wrapper class.
Definition: Win.h:2062
-
winstd::reg_key::free_internal
void free_internal() noexcept override
Closes a handle to the registry key.
Definition: Win.h:2183
-
winstd::reg_key::delete_subkey
bool delete_subkey(LPCTSTR szSubkey)
Deletes the specified registry subkey.
Definition: Win.h:2141
-
winstd::reg_key::open
bool open(HKEY hKey, LPCTSTR lpSubKey, DWORD ulOptions, REGSAM samDesired) noexcept
Opens the specified registry key.
Definition: Win.h:2115
-
winstd::reg_key::create
bool create(HKEY hKey, LPCTSTR lpSubKey, LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes=NULL, LPDWORD lpdwDisposition=NULL) noexcept
Creates the specified registry key. If the key already exists, the function opens it.
Definition: Win.h:2086
-
winstd::reg_key::~reg_key
virtual ~reg_key()
Closes a handle to the registry key.
Definition: Win.h:2071
-
winstd::security_id
SID wrapper class.
Definition: Win.h:2193
-
winstd::security_id::free_internal
void free_internal() noexcept override
Closes a handle to the SID.
Definition: Win.h:2214
-
winstd::security_id::~security_id
virtual ~security_id()
Closes a handle to the SID.
Definition: Win.h:2202
-
winstd::user_impersonator
Lets the calling thread impersonate the security context of a logged-on user.
Definition: Win.h:1871
-
winstd::user_impersonator::m_cookie
BOOL m_cookie
Did impersonation succeed?
Definition: Win.h:1900
-
winstd::user_impersonator::user_impersonator
user_impersonator(HANDLE hToken) noexcept
Construct the impersonator and impersonates the given user.
Definition: Win.h:1883
-
winstd::user_impersonator::~user_impersonator
virtual ~user_impersonator()
Reverts to current user and destructs the impersonator.
Definition: Win.h:1893
-
winstd::vmemory
Memory in virtual address space of a process handle wrapper.
Definition: Win.h:1944
-
winstd::vmemory::operator=
vmemory & operator=(vmemory &&other) noexcept
Move assignment.
Definition: Win.h:1994
-
winstd::vmemory::alloc
bool alloc(HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect) noexcept
Reserves, commits, or changes the state of a region of memory within the virtual address space of a s...
Definition: Win.h:2028
-
winstd::vmemory::free_internal
void free_internal() noexcept override
Frees the memory.
Definition: Win.h:2049
-
winstd::vmemory::attach
void attach(HANDLE proc, handle_type h) noexcept
Sets a new memory handle for the class.
Definition: Win.h:2011
-
winstd::vmemory::~vmemory
virtual ~vmemory()
Frees the memory.
Definition: Win.h:1983
-
winstd::vmemory::vmemory
vmemory(handle_type h, HANDLE proc) noexcept
Initializes a new class instance with an already available object handle.
Definition: Win.h:1961
-
winstd::vmemory::vmemory
vmemory() noexcept
Initializes a new class instance with the memory handle set to INVAL.
Definition: Win.h:1951
-
winstd::vmemory::vmemory
vmemory(vmemory &&h) noexcept
Move constructor.
Definition: Win.h:1972
-
winstd::vmemory::m_proc
HANDLE m_proc
Handle of memory's process.
Definition: Win.h:2055
+
winstd::reg_key
Registry wrapper class.
Definition: Win.h:2147
+
winstd::reg_key::free_internal
void free_internal() noexcept override
Closes a handle to the registry key.
Definition: Win.h:2268
+
winstd::reg_key::delete_subkey
bool delete_subkey(LPCTSTR szSubkey)
Deletes the specified registry subkey.
Definition: Win.h:2226
+
winstd::reg_key::open
bool open(HKEY hKey, LPCTSTR lpSubKey, DWORD ulOptions, REGSAM samDesired) noexcept
Opens the specified registry key.
Definition: Win.h:2200
+
winstd::reg_key::create
bool create(HKEY hKey, LPCTSTR lpSubKey, LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes=NULL, LPDWORD lpdwDisposition=NULL) noexcept
Creates the specified registry key. If the key already exists, the function opens it.
Definition: Win.h:2171
+
winstd::reg_key::~reg_key
virtual ~reg_key()
Closes a handle to the registry key.
Definition: Win.h:2156
+
winstd::security_id
SID wrapper class.
Definition: Win.h:2278
+
winstd::security_id::free_internal
void free_internal() noexcept override
Closes a handle to the SID.
Definition: Win.h:2299
+
winstd::security_id::~security_id
virtual ~security_id()
Closes a handle to the SID.
Definition: Win.h:2287
+
winstd::user_impersonator
Lets the calling thread impersonate the security context of a logged-on user.
Definition: Win.h:1956
+
winstd::user_impersonator::m_cookie
BOOL m_cookie
Did impersonation succeed?
Definition: Win.h:1985
+
winstd::user_impersonator::user_impersonator
user_impersonator(HANDLE hToken) noexcept
Construct the impersonator and impersonates the given user.
Definition: Win.h:1968
+
winstd::user_impersonator::~user_impersonator
virtual ~user_impersonator()
Reverts to current user and destructs the impersonator.
Definition: Win.h:1978
+
winstd::vmemory
Memory in virtual address space of a process handle wrapper.
Definition: Win.h:2029
+
winstd::vmemory::operator=
vmemory & operator=(vmemory &&other) noexcept
Move assignment.
Definition: Win.h:2079
+
winstd::vmemory::alloc
bool alloc(HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect) noexcept
Reserves, commits, or changes the state of a region of memory within the virtual address space of a s...
Definition: Win.h:2113
+
winstd::vmemory::free_internal
void free_internal() noexcept override
Frees the memory.
Definition: Win.h:2134
+
winstd::vmemory::attach
void attach(HANDLE proc, handle_type h) noexcept
Sets a new memory handle for the class.
Definition: Win.h:2096
+
winstd::vmemory::~vmemory
virtual ~vmemory()
Frees the memory.
Definition: Win.h:2068
+
winstd::vmemory::vmemory
vmemory(handle_type h, HANDLE proc) noexcept
Initializes a new class instance with an already available object handle.
Definition: Win.h:2046
+
winstd::vmemory::vmemory
vmemory() noexcept
Initializes a new class instance with the memory handle set to INVAL.
Definition: Win.h:2036
+
winstd::vmemory::vmemory
vmemory(vmemory &&h) noexcept
Move constructor.
Definition: Win.h:2057
+
winstd::vmemory::m_proc
HANDLE m_proc
Handle of memory's process.
Definition: Win.h:2140
winstd::win_handle
Windows HANDLE wrapper class.
Definition: Win.h:1347
winstd::win_handle::free_internal
void free_internal() noexcept override
Closes an open object handle.
Definition: Win.h:1368
winstd::win_handle::~win_handle
virtual ~win_handle()
Closes an open object handle.
Definition: Win.h:1356
-
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:53
-
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:80
-
WINSTD_NONMOVABLE
#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition: Common.h:61
-
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:162
-
winstd::handle< HANDLE, INVALID >::invalid
static const HANDLE invalid
Invalid handle value.
Definition: Common.h:614
-
winstd::heap_allocator::rebind
A structure that enables an allocator for objects of one type to allocate storage for objects of anot...
Definition: Win.h:1736
-
winstd::heap_allocator::rebind::other
heap_allocator< _Other > other
Other allocator type.
Definition: Win.h:1737
+
winstd::win_runtime_error
Windows runtime error.
Definition: Common.h:1047
+
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:52
+
WINSTD_STACK_BUFFER_BYTES
#define WINSTD_STACK_BUFFER_BYTES
Size of the stack buffer in bytes used for initial system function call.
Definition: Common.h:79
+
WINSTD_NONMOVABLE
#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition: Common.h:60
+
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:161
+
winstd::handle< HANDLE, INVALID >::invalid
static const HANDLE invalid
Invalid handle value.
Definition: Common.h:613
+
winstd::UnmapViewOfFile_delete< _Ty[]>::UnmapViewOfFile_delete
UnmapViewOfFile_delete()
Default construct.
Definition: Win.h:1539
+
winstd::UnmapViewOfFile_delete< _Ty[]>::operator()
void operator()(_Other *) const
Delete a pointer of another type.
Definition: Win.h:1554
+
winstd::UnmapViewOfFile_delete< _Ty[]>::operator()
void operator()(_Ty *_Ptr) const
Delete a pointer.
Definition: Win.h:1544
+
winstd::UnmapViewOfFile_delete< _Ty[]>::_Myt
UnmapViewOfFile_delete< _Ty > _Myt
This type.
Definition: Win.h:1534
+
winstd::UnmapViewOfFile_delete
Deleter for unique_ptr using UnmapViewOfFile.
Definition: Win.h:1506
+
winstd::UnmapViewOfFile_delete::UnmapViewOfFile_delete
UnmapViewOfFile_delete(const UnmapViewOfFile_delete< _Ty2 > &)
Construct from another UnmapViewOfFile_delete.
Definition: Win.h:1517
+
winstd::UnmapViewOfFile_delete::operator()
void operator()(_Ty *_Ptr) const
Delete a pointer.
Definition: Win.h:1522
+
winstd::UnmapViewOfFile_delete::_Myt
UnmapViewOfFile_delete< _Ty > _Myt
This type.
Definition: Win.h:1507
+
winstd::UnmapViewOfFile_delete::UnmapViewOfFile_delete
UnmapViewOfFile_delete()
Default construct.
Definition: Win.h:1512
+
winstd::heap_allocator::rebind
A structure that enables an allocator for objects of one type to allocate storage for objects of anot...
Definition: Win.h:1821
+
winstd::heap_allocator::rebind::other
heap_allocator< _Other > other
Other allocator type.
Definition: Win.h:1822
diff --git a/_win_sock2_8h_source.html b/_win_sock2_8h_source.html index 199f86ba..1aff8634 100644 --- a/_win_sock2_8h_source.html +++ b/_win_sock2_8h_source.html @@ -159,26 +159,26 @@ $(function() {
winstd::addrinfo::free_internal
void free_internal() noexcept override
Frees address information.
Definition: WinSock2.h:133
winstd::addrinfo::~addrinfo
virtual ~addrinfo()
Frees address information.
Definition: WinSock2.h:121
winstd::addrinfo::get
bool get(PCTSTR pNodeName, PCTSTR pServiceName, const ADDRINFOT *pHints)
Provides protocol-independent translation from a host name to an address.
Definition: WinSock2.h:103
-
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:604
-
winstd::handle< PADDRINFOT, NULL >::handle_type
PADDRINFOT handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:609
-
winstd::handle< PADDRINFOT, NULL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:855
-
winstd::handle< PADDRINFOT, NULL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:818
-
winstd::num_runtime_error
Numerical runtime error.
Definition: Common.h:1003
-
winstd::num_runtime_error< int >::error_type
int error_type
Error number type.
Definition: Common.h:1005
-
winstd::num_runtime_error< int >::m_num
error_type m_num
Numeric error code.
Definition: Common.h:1041
+
winstd::handle
Base abstract template class to support generic object handle keeping.
Definition: Common.h:603
+
winstd::handle< PADDRINFOT, NULL >::handle_type
PADDRINFOT handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:608
+
winstd::handle< PADDRINFOT, NULL >::m_h
handle_type m_h
Object handle.
Definition: Common.h:854
+
winstd::handle< PADDRINFOT, NULL >::attach
void attach(handle_type h) noexcept
Sets a new object handle for the class.
Definition: Common.h:817
+
winstd::num_runtime_error
Numerical runtime error.
Definition: Common.h:1002
+
winstd::num_runtime_error< int >::error_type
int error_type
Error number type.
Definition: Common.h:1004
+
winstd::num_runtime_error< int >::m_num
error_type m_num
Numeric error code.
Definition: Common.h:1040
winstd::ws2_runtime_error
WinSock2 runtime error.
Definition: WinSock2.h:26
winstd::ws2_runtime_error::ws2_runtime_error
ws2_runtime_error(error_type num, const char *msg=nullptr)
Constructs an exception.
Definition: WinSock2.h:44
winstd::ws2_runtime_error::ws2_runtime_error
ws2_runtime_error(const char *msg=nullptr)
Constructs an exception using WSAGetLastError()
Definition: WinSock2.h:62
winstd::ws2_runtime_error::ws2_runtime_error
ws2_runtime_error(error_type num, const std::string &msg)
Constructs an exception.
Definition: WinSock2.h:34
winstd::ws2_runtime_error::ws2_runtime_error
ws2_runtime_error(const std::string &msg)
Constructs an exception using WSAGetLastError()
Definition: WinSock2.h:53
winstd::ws2_runtime_error::msg
tstring msg(DWORD dwLanguageId=0) const
Returns a user-readable Windows error message.
Definition: WinSock2.h:71
-
winstd::tstring
std::string tstring
Multi-byte / Wide-character string (according to _UNICODE)
Definition: Common.h:335
-
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:162
-
winstd::handle< PADDRINFOT, NULL >::invalid
static const PADDRINFOT invalid
Invalid handle value.
Definition: Common.h:614
+
winstd::tstring
std::string tstring
Multi-byte / Wide-character string (according to _UNICODE)
Definition: Common.h:334
+
WINSTD_HANDLE_IMPL
#define WINSTD_HANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:161
+
winstd::handle< PADDRINFOT, NULL >::invalid
static const PADDRINFOT invalid
Invalid handle value.
Definition: Common.h:613
diff --git a/_win_trust_8h_source.html b/_win_trust_8h_source.html index bac93e1d..0d532488 100644 --- a/_win_trust_8h_source.html +++ b/_win_trust_8h_source.html @@ -113,16 +113,16 @@ $(function() {
57 };
58
60}
-
winstd::win_runtime_error
Windows runtime error.
Definition: Common.h:1048
+
winstd::win_runtime_error
Windows runtime error.
Definition: Common.h:1047
winstd::wintrust
WinTrust engine wrapper class.
Definition: WinTrust.h:24
winstd::wintrust::wintrust
wintrust(HWND hwnd, const GUID &action, WINTRUST_DATA &wtd)
Initializes a new class instance.
Definition: WinTrust.h:32
winstd::wintrust::~wintrust
virtual ~wintrust()
Destroys the WinTrust context.
Definition: WinTrust.h:45
-
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:53
-
WINSTD_NONMOVABLE
#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition: Common.h:61
+
WINSTD_NONCOPYABLE
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:52
+
WINSTD_NONMOVABLE
#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition: Common.h:60
diff --git a/annotated.html b/annotated.html index eab0eacb..58601b45 100644 --- a/annotated.html +++ b/annotated.html @@ -92,7 +92,7 @@ $(function() {  Cdata_blobDATA_BLOB wrapper class  CdcDevice context wrapper class  Cdc_selectorContext scope DC object restorer - CdplhandleBase abstract template class to support object handle keeping for objects that support handle duplication + CdplhandleBase abstract template class to support object handle keeping for objects that support trivial handle duplication  Ceap_attrEAP_ATTRIBUTE wrapper class  Ceap_method_info_arrayEAP_METHOD_INFO_ARRAY wrapper class  Ceap_method_propEAP_METHOD_PROPERTY wrapper class @@ -113,50 +113,53 @@ $(function() {  Cevent_traceETW trace  Cevent_trace_enablerHelper class to enable event provider in constructor and disables it in destructor  CfileFile handle wrapper - Cfind_fileFind-file handle wrapper - Cgdi_handleWindows HGDIOBJ wrapper class - ChandleBase abstract template class to support generic object handle keeping - CheapHeap handle wrapper - Cheap_allocatorHeapAlloc allocator - CrebindA structure that enables an allocator for objects of one type to allocate storage for objects of another type - ClibraryModule handle wrapper - CLocalFree_deleteDeleter for unique_ptr using LocalFree - CLocalFree_delete< _Ty[]>Deleter for unique_ptr to array of unknown size using LocalFree - Cnum_runtime_errorNumerical runtime error - CprocessProcess handle wrapper - Cprocess_informationPROCESS_INFORMATION struct wrapper - Cref_unique_ptrHelper class for returning pointers to std::unique_ptr - Cref_unique_ptr< _Ty[], _Dx >Helper class for returning pointers to std::unique_ptr (specialization for arrays) - Creg_keyRegistry wrapper class - Csanitizing_allocatorAn allocator template that sanitizes each memory block before it is destroyed or reallocated - CrebindConvert this type to sanitizing_allocator<_Other> - Csanitizing_blobSanitizing BLOB - Csec_buffer_descSecBufferDesc wrapper class - Csec_contextPCtxtHandle wrapper class - Csec_credentialsPCredHandle wrapper class - Csec_runtime_errorSecurity runtime error - Csecurity_idSID wrapper class - Csetup_device_info_listHDEVINFO wrapper class - Csetup_driver_info_list_builderBuilds a list of drivers in constructor and deletes it in destructor - Cstring_guidSingle-byte character implementation of a class to support converting GUID to string - Cuser_impersonatorLets the calling thread impersonate the security context of a logged-on user - CvariantVARIANT struct wrapper - CvmemoryMemory in virtual address space of a process handle wrapper - Cwin_handleWindows HANDLE wrapper class - Cwin_runtime_errorWindows runtime error - Cwindow_dcDevice context wrapper class - CwintrustWinTrust engine wrapper class - Cwlan_handleWLAN handle wrapper - CWlanFreeMemory_deleteDeleter for unique_ptr using WlanFreeMemory - CWlanFreeMemory_delete< _Ty[]>Deleter for unique_ptr to array of unknown size using WlanFreeMemory - Cws2_runtime_errorWinSock2 runtime error - Cwstring_guidWide character implementation of a class to support converting GUID to string + Cfile_mappingFile mapping + Cfind_fileFind-file handle wrapper + Cgdi_handleWindows HGDIOBJ wrapper class + ChandleBase abstract template class to support generic object handle keeping + CheapHeap handle wrapper + Cheap_allocatorHeapAlloc allocator + CrebindA structure that enables an allocator for objects of one type to allocate storage for objects of another type + ClibraryModule handle wrapper + CLocalFree_deleteDeleter for unique_ptr using LocalFree + CLocalFree_delete< _Ty[]>Deleter for unique_ptr to array of unknown size using LocalFree + Cnum_runtime_errorNumerical runtime error + CprocessProcess handle wrapper + Cprocess_informationPROCESS_INFORMATION struct wrapper + Cref_unique_ptrHelper class for returning pointers to std::unique_ptr + Cref_unique_ptr< _Ty[], _Dx >Helper class for returning pointers to std::unique_ptr (specialization for arrays) + Creg_keyRegistry wrapper class + Csanitizing_allocatorAn allocator template that sanitizes each memory block before it is destroyed or reallocated + CrebindConvert this type to sanitizing_allocator<_Other> + Csanitizing_blobSanitizing BLOB + Csec_buffer_descSecBufferDesc wrapper class + Csec_contextPCtxtHandle wrapper class + Csec_credentialsPCredHandle wrapper class + Csec_runtime_errorSecurity runtime error + Csecurity_idSID wrapper class + Csetup_device_info_listHDEVINFO wrapper class + Csetup_driver_info_list_builderBuilds a list of drivers in constructor and deletes it in destructor + Cstring_guidSingle-byte character implementation of a class to support converting GUID to string + CUnmapViewOfFile_deleteDeleter for unique_ptr using UnmapViewOfFile + CUnmapViewOfFile_delete< _Ty[]>Deleter for unique_ptr to array of unknown size using UnmapViewOfFile + Cuser_impersonatorLets the calling thread impersonate the security context of a logged-on user + CvariantVARIANT struct wrapper + CvmemoryMemory in virtual address space of a process handle wrapper + Cwin_handleWindows HANDLE wrapper class + Cwin_runtime_errorWindows runtime error + Cwindow_dcDevice context wrapper class + CwintrustWinTrust engine wrapper class + Cwlan_handleWLAN handle wrapper + CWlanFreeMemory_deleteDeleter for unique_ptr using WlanFreeMemory + CWlanFreeMemory_delete< _Ty[]>Deleter for unique_ptr to array of unknown size using WlanFreeMemory + Cws2_runtime_errorWinSock2 runtime error + Cwstring_guidWide character implementation of a class to support converting GUID to string diff --git a/classes.html b/classes.html index 7500b3ed..28361a3f 100644 --- a/classes.html +++ b/classes.html @@ -85,7 +85,7 @@ $(function() {
eap_attr (winstd)
eap_method_info_array (winstd)
eap_method_prop (winstd)
eap_packet (winstd)
eap_runtime_error (winstd)
EapHostPeerFreeEapError_delete (winstd)
EapHostPeerFreeErrorMemory_delete (winstd)
EapHostPeerFreeMemory_delete (winstd)
EapHostPeerFreeRuntimeMemory_delete (winstd)
event (winstd)
event_data (winstd)
event_fn_auto (winstd)
event_fn_auto_ret (winstd)
event_log (winstd)
event_provider (winstd)
event_rec (winstd)
event_session (winstd)
event_trace (winstd)
event_trace_enabler (winstd)
F
-
file (winstd)
find_file (winstd)
+
file (winstd)
file_mapping (winstd)
find_file (winstd)
G
gdi_handle (winstd)
@@ -109,7 +109,7 @@ $(function() {
sanitizing_allocator (winstd)
sanitizing_blob (winstd)
sec_buffer_desc (winstd)
sec_context (winstd)
sec_credentials (winstd)
sec_runtime_error (winstd)
security_id (winstd)
setup_device_info_list (winstd)
setup_driver_info_list_builder (winstd)
string_guid (winstd)
U
-
user_impersonator (winstd)
+
UnmapViewOfFile_delete (winstd)
UnmapViewOfFile_delete< _Ty[]> (winstd)
user_impersonator (winstd)
V
variant (winstd)
vmemory (winstd)
@@ -120,7 +120,7 @@ $(function() { diff --git a/classwinstd_1_1actctx__activator-members.html b/classwinstd_1_1actctx__activator-members.html index 3e40cc07..350b5e9b 100644 --- a/classwinstd_1_1actctx__activator-members.html +++ b/classwinstd_1_1actctx__activator-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/classwinstd_1_1actctx__activator.html b/classwinstd_1_1actctx__activator.html index d262680b..8ef18ec9 100644 --- a/classwinstd_1_1actctx__activator.html +++ b/classwinstd_1_1actctx__activator.html @@ -168,7 +168,7 @@ ULONG_PTR m_cookie diff --git a/classwinstd_1_1addrinfo-members.html b/classwinstd_1_1addrinfo-members.html index 9748b923..a406eb7d 100644 --- a/classwinstd_1_1addrinfo-members.html +++ b/classwinstd_1_1addrinfo-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/classwinstd_1_1addrinfo.html b/classwinstd_1_1addrinfo.html index 78008213..aeea5252 100644 --- a/classwinstd_1_1addrinfo.html +++ b/classwinstd_1_1addrinfo.html @@ -298,7 +298,7 @@ static const PADDRINFOT in diff --git a/classwinstd_1_1basic__string__guid-members.html b/classwinstd_1_1basic__string__guid-members.html index 990e673c..0ade99c2 100644 --- a/classwinstd_1_1basic__string__guid-members.html +++ b/classwinstd_1_1basic__string__guid-members.html @@ -77,7 +77,7 @@ $(function() { diff --git a/classwinstd_1_1basic__string__guid.html b/classwinstd_1_1basic__string__guid.html index c7c42b9a..6e17f0ff 100644 --- a/classwinstd_1_1basic__string__guid.html +++ b/classwinstd_1_1basic__string__guid.html @@ -148,7 +148,7 @@ template<class _Elem , class _Traits , class _Ax > diff --git a/classwinstd_1_1basic__string__msg-members.html b/classwinstd_1_1basic__string__msg-members.html index e4f9098a..72d4807e 100644 --- a/classwinstd_1_1basic__string__msg-members.html +++ b/classwinstd_1_1basic__string__msg-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/classwinstd_1_1basic__string__msg.html b/classwinstd_1_1basic__string__msg.html index 2fc14abd..59799e4a 100644 --- a/classwinstd_1_1basic__string__msg.html +++ b/classwinstd_1_1basic__string__msg.html @@ -492,7 +492,7 @@ template<class _Elem , class _Traits , class _Ax > diff --git a/classwinstd_1_1basic__string__printf-members.html b/classwinstd_1_1basic__string__printf-members.html index dbd6f819..162d458e 100644 --- a/classwinstd_1_1basic__string__printf-members.html +++ b/classwinstd_1_1basic__string__printf-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/classwinstd_1_1basic__string__printf.html b/classwinstd_1_1basic__string__printf.html index b05b63c2..0d244f25 100644 --- a/classwinstd_1_1basic__string__printf.html +++ b/classwinstd_1_1basic__string__printf.html @@ -267,7 +267,7 @@ template<class _Elem , class _Traits , class _Ax > diff --git a/classwinstd_1_1bstr-members.html b/classwinstd_1_1bstr-members.html index d4bf4f88..f8c3906f 100644 --- a/classwinstd_1_1bstr-members.html +++ b/classwinstd_1_1bstr-members.html @@ -113,7 +113,7 @@ $(function() { diff --git a/classwinstd_1_1bstr.html b/classwinstd_1_1bstr.html index a0566a0f..97c2de4b 100644 --- a/classwinstd_1_1bstr.html +++ b/classwinstd_1_1bstr.html @@ -368,7 +368,7 @@ static const BSTR invalid< diff --git a/classwinstd_1_1cert__chain__context-members.html b/classwinstd_1_1cert__chain__context-members.html index 31e4ee6f..a85ce775 100644 --- a/classwinstd_1_1cert__chain__context-members.html +++ b/classwinstd_1_1cert__chain__context-members.html @@ -110,7 +110,7 @@ $(function() { diff --git a/classwinstd_1_1cert__chain__context.html b/classwinstd_1_1cert__chain__context.html index 8b664d79..d5bb3a39 100644 --- a/classwinstd_1_1cert__chain__context.html +++ b/classwinstd_1_1cert__chain__context.html @@ -401,7 +401,7 @@ static const PCCERT_CHAIN_CONTEXT  diff --git a/classwinstd_1_1cert__context-members.html b/classwinstd_1_1cert__context-members.html index 1a48344d..29c914b5 100644 --- a/classwinstd_1_1cert__context-members.html +++ b/classwinstd_1_1cert__context-members.html @@ -116,7 +116,7 @@ $(function() { diff --git a/classwinstd_1_1cert__context.html b/classwinstd_1_1cert__context.html index 9d5dfc65..567302ab 100644 --- a/classwinstd_1_1cert__context.html +++ b/classwinstd_1_1cert__context.html @@ -629,7 +629,7 @@ static const PCCERT_CONTEXT < diff --git a/classwinstd_1_1cert__store-members.html b/classwinstd_1_1cert__store-members.html index 86e60b17..db9951b3 100644 --- a/classwinstd_1_1cert__store-members.html +++ b/classwinstd_1_1cert__store-members.html @@ -102,7 +102,7 @@ $(function() { diff --git a/classwinstd_1_1cert__store.html b/classwinstd_1_1cert__store.html index d0d64204..25488f59 100644 --- a/classwinstd_1_1cert__store.html +++ b/classwinstd_1_1cert__store.html @@ -362,7 +362,7 @@ static const HCERTSTORE in diff --git a/classwinstd_1_1com__initializer-members.html b/classwinstd_1_1com__initializer-members.html index 2f319f50..ad3a5b5f 100644 --- a/classwinstd_1_1com__initializer-members.html +++ b/classwinstd_1_1com__initializer-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/classwinstd_1_1com__initializer.html b/classwinstd_1_1com__initializer.html index 1aad4e78..7d20293d 100644 --- a/classwinstd_1_1com__initializer.html +++ b/classwinstd_1_1com__initializer.html @@ -236,7 +236,7 @@ HRESULT m_result< diff --git a/classwinstd_1_1com__obj-members.html b/classwinstd_1_1com__obj-members.html index 007aa6e6..068c906d 100644 --- a/classwinstd_1_1com__obj-members.html +++ b/classwinstd_1_1com__obj-members.html @@ -115,7 +115,7 @@ $(function() { diff --git a/classwinstd_1_1com__obj.html b/classwinstd_1_1com__obj.html index f41dd705..3f836763 100644 --- a/classwinstd_1_1com__obj.html +++ b/classwinstd_1_1com__obj.html @@ -550,7 +550,7 @@ template<class _Other > diff --git a/classwinstd_1_1com__runtime__error-members.html b/classwinstd_1_1com__runtime__error-members.html index a5ae29a5..5dd623a8 100644 --- a/classwinstd_1_1com__runtime__error-members.html +++ b/classwinstd_1_1com__runtime__error-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/classwinstd_1_1com__runtime__error.html b/classwinstd_1_1com__runtime__error.html index 171b851b..b391af8d 100644 --- a/classwinstd_1_1com__runtime__error.html +++ b/classwinstd_1_1com__runtime__error.html @@ -221,7 +221,7 @@ typedef HRESULT error_type diff --git a/classwinstd_1_1console__ctrl__handler-members.html b/classwinstd_1_1console__ctrl__handler-members.html index df516293..3ad1dd5b 100644 --- a/classwinstd_1_1console__ctrl__handler-members.html +++ b/classwinstd_1_1console__ctrl__handler-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/classwinstd_1_1console__ctrl__handler.html b/classwinstd_1_1console__ctrl__handler.html index 940964a0..2b700ead 100644 --- a/classwinstd_1_1console__ctrl__handler.html +++ b/classwinstd_1_1console__ctrl__handler.html @@ -172,7 +172,7 @@ PHANDLER_ROUTINE m_handler diff --git a/classwinstd_1_1critical__section-members.html b/classwinstd_1_1critical__section-members.html index dd145837..f45a2307 100644 --- a/classwinstd_1_1critical__section-members.html +++ b/classwinstd_1_1critical__section-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/classwinstd_1_1critical__section.html b/classwinstd_1_1critical__section.html index aa7ab8b7..d237ad22 100644 --- a/classwinstd_1_1critical__section.html +++ b/classwinstd_1_1critical__section.html @@ -193,7 +193,7 @@ CRITICAL_SECTION m_data diff --git a/classwinstd_1_1crypt__hash-members.html b/classwinstd_1_1crypt__hash-members.html index e09ce1ba..3ccc10c6 100644 --- a/classwinstd_1_1crypt__hash-members.html +++ b/classwinstd_1_1crypt__hash-members.html @@ -110,7 +110,7 @@ $(function() { diff --git a/classwinstd_1_1crypt__hash.html b/classwinstd_1_1crypt__hash.html index 4d5b8baa..a125f0a3 100644 --- a/classwinstd_1_1crypt__hash.html +++ b/classwinstd_1_1crypt__hash.html @@ -383,7 +383,7 @@ static const HCRYPTHASH in diff --git a/classwinstd_1_1crypt__key-members.html b/classwinstd_1_1crypt__key-members.html index ef6b5d3c..93818cad 100644 --- a/classwinstd_1_1crypt__key-members.html +++ b/classwinstd_1_1crypt__key-members.html @@ -114,7 +114,7 @@ $(function() { diff --git a/classwinstd_1_1crypt__key.html b/classwinstd_1_1crypt__key.html index 81d658de..51a91f84 100644 --- a/classwinstd_1_1crypt__key.html +++ b/classwinstd_1_1crypt__key.html @@ -583,7 +583,7 @@ static const HCRYPTKEY inv diff --git a/classwinstd_1_1crypt__prov-members.html b/classwinstd_1_1crypt__prov-members.html index 3c98c18c..f684b0a1 100644 --- a/classwinstd_1_1crypt__prov-members.html +++ b/classwinstd_1_1crypt__prov-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/classwinstd_1_1crypt__prov.html b/classwinstd_1_1crypt__prov.html index 9d793dc9..ffc5e275 100644 --- a/classwinstd_1_1crypt__prov.html +++ b/classwinstd_1_1crypt__prov.html @@ -309,7 +309,7 @@ static const HCRYPTPROV in diff --git a/classwinstd_1_1data__blob-members.html b/classwinstd_1_1data__blob-members.html index 14c2399a..000c4640 100644 --- a/classwinstd_1_1data__blob-members.html +++ b/classwinstd_1_1data__blob-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/classwinstd_1_1data__blob.html b/classwinstd_1_1data__blob.html index 3ecab45e..f21851aa 100644 --- a/classwinstd_1_1data__blob.html +++ b/classwinstd_1_1data__blob.html @@ -136,7 +136,7 @@ BYTE * data () noexcep diff --git a/classwinstd_1_1dc-members.html b/classwinstd_1_1dc-members.html index 87335065..3f2fbe11 100644 --- a/classwinstd_1_1dc-members.html +++ b/classwinstd_1_1dc-members.html @@ -100,7 +100,7 @@ $(function() { diff --git a/classwinstd_1_1dc.html b/classwinstd_1_1dc.html index 16195488..ba65eeca 100644 --- a/classwinstd_1_1dc.html +++ b/classwinstd_1_1dc.html @@ -250,7 +250,7 @@ static const HDC invalid diff --git a/classwinstd_1_1dc__selector-members.html b/classwinstd_1_1dc__selector-members.html index 02607bc1..1ecd48a4 100644 --- a/classwinstd_1_1dc__selector-members.html +++ b/classwinstd_1_1dc__selector-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/classwinstd_1_1dc__selector.html b/classwinstd_1_1dc__selector.html index 00e446a2..646baff1 100644 --- a/classwinstd_1_1dc__selector.html +++ b/classwinstd_1_1dc__selector.html @@ -208,7 +208,7 @@ HGDIOBJ m_orig diff --git a/classwinstd_1_1dplhandle-members.html b/classwinstd_1_1dplhandle-members.html index ffa61207..9a1ea3fe 100644 --- a/classwinstd_1_1dplhandle-members.html +++ b/classwinstd_1_1dplhandle-members.html @@ -108,7 +108,7 @@ $(function() { diff --git a/classwinstd_1_1dplhandle.html b/classwinstd_1_1dplhandle.html index f69b4bfc..7edf7e38 100644 --- a/classwinstd_1_1dplhandle.html +++ b/classwinstd_1_1dplhandle.html @@ -75,7 +75,7 @@ $(function() {
-

Base abstract template class to support object handle keeping for objects that support handle duplication. +

Base abstract template class to support object handle keeping for objects that support trivial handle duplication. More...

#include <WinStd/Common.h>

@@ -210,7 +210,7 @@ static const T invalid

Detailed Description

template<class T, T INVAL>
-class winstd::dplhandle< T, INVAL >

Base abstract template class to support object handle keeping for objects that support handle duplication.

+class winstd::dplhandle< T, INVAL >

Base abstract template class to support object handle keeping for objects that support trivial handle duplication.

Constructor & Destructor Documentation

◆ dplhandle() [1/3]

@@ -545,7 +545,7 @@ template<class T , T INVAL> diff --git a/classwinstd_1_1eap__attr-members.html b/classwinstd_1_1eap__attr-members.html index cde240ac..a3d17745 100644 --- a/classwinstd_1_1eap__attr-members.html +++ b/classwinstd_1_1eap__attr-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/classwinstd_1_1eap__attr.html b/classwinstd_1_1eap__attr.html index 07b35b6c..be7a3709 100644 --- a/classwinstd_1_1eap__attr.html +++ b/classwinstd_1_1eap__attr.html @@ -173,7 +173,7 @@ Public Member Functions diff --git a/classwinstd_1_1eap__method__info__array-members.html b/classwinstd_1_1eap__method__info__array-members.html index a86f5399..10aacf4b 100644 --- a/classwinstd_1_1eap__method__info__array-members.html +++ b/classwinstd_1_1eap__method__info__array-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/classwinstd_1_1eap__method__info__array.html b/classwinstd_1_1eap__method__info__array.html index 786bd3d0..2dd9b2e3 100644 --- a/classwinstd_1_1eap__method__info__array.html +++ b/classwinstd_1_1eap__method__info__array.html @@ -180,7 +180,7 @@ Public Member Functions diff --git a/classwinstd_1_1eap__method__prop-members.html b/classwinstd_1_1eap__method__prop-members.html index ec7ede10..71240025 100644 --- a/classwinstd_1_1eap__method__prop-members.html +++ b/classwinstd_1_1eap__method__prop-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/classwinstd_1_1eap__method__prop.html b/classwinstd_1_1eap__method__prop.html index 9b6fc924..d6cb4a06 100644 --- a/classwinstd_1_1eap__method__prop.html +++ b/classwinstd_1_1eap__method__prop.html @@ -241,7 +241,7 @@ Public Member Functions diff --git a/classwinstd_1_1eap__packet-members.html b/classwinstd_1_1eap__packet-members.html index 3179e56f..1e52f9b4 100644 --- a/classwinstd_1_1eap__packet-members.html +++ b/classwinstd_1_1eap__packet-members.html @@ -111,7 +111,7 @@ $(function() { diff --git a/classwinstd_1_1eap__packet.html b/classwinstd_1_1eap__packet.html index e943651f..7eb89a85 100644 --- a/classwinstd_1_1eap__packet.html +++ b/classwinstd_1_1eap__packet.html @@ -352,7 +352,7 @@ static const EapPacket * i diff --git a/classwinstd_1_1eap__runtime__error-members.html b/classwinstd_1_1eap__runtime__error-members.html index dbf0797d..dd413513 100644 --- a/classwinstd_1_1eap__runtime__error-members.html +++ b/classwinstd_1_1eap__runtime__error-members.html @@ -102,7 +102,7 @@ $(function() { diff --git a/classwinstd_1_1eap__runtime__error.html b/classwinstd_1_1eap__runtime__error.html index b8467e44..c955beda 100644 --- a/classwinstd_1_1eap__runtime__error.html +++ b/classwinstd_1_1eap__runtime__error.html @@ -298,7 +298,7 @@ typedef DWORD error_type diff --git a/classwinstd_1_1event-members.html b/classwinstd_1_1event-members.html index a2a25f28..9f7bccd8 100644 --- a/classwinstd_1_1event-members.html +++ b/classwinstd_1_1event-members.html @@ -102,7 +102,7 @@ $(function() { diff --git a/classwinstd_1_1event.html b/classwinstd_1_1event.html index 6f9ac12b..0ec9dd50 100644 --- a/classwinstd_1_1event.html +++ b/classwinstd_1_1event.html @@ -302,7 +302,7 @@ static const HANDLE invali diff --git a/classwinstd_1_1event__data-members.html b/classwinstd_1_1event__data-members.html index b4c5bb42..3c4ee5dd 100644 --- a/classwinstd_1_1event__data-members.html +++ b/classwinstd_1_1event__data-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classwinstd_1_1event__data.html b/classwinstd_1_1event__data.html index 8ede251f..5e2c1583 100644 --- a/classwinstd_1_1event__data.html +++ b/classwinstd_1_1event__data.html @@ -533,7 +533,7 @@ template<class _Elem , class _Traits , class _Ax > diff --git a/classwinstd_1_1event__fn__auto-members.html b/classwinstd_1_1event__fn__auto-members.html index 2fbd42b1..af48e974 100644 --- a/classwinstd_1_1event__fn__auto-members.html +++ b/classwinstd_1_1event__fn__auto-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/classwinstd_1_1event__fn__auto.html b/classwinstd_1_1event__fn__auto.html index 7d361d42..fd76db89 100644 --- a/classwinstd_1_1event__fn__auto.html +++ b/classwinstd_1_1event__fn__auto.html @@ -131,7 +131,7 @@ EVENT_DATA_DESCRIPTOR m_fn diff --git a/classwinstd_1_1event__fn__auto__ret-members.html b/classwinstd_1_1event__fn__auto__ret-members.html index 07e3882e..11f87aa1 100644 --- a/classwinstd_1_1event__fn__auto__ret-members.html +++ b/classwinstd_1_1event__fn__auto__ret-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/classwinstd_1_1event__fn__auto__ret.html b/classwinstd_1_1event__fn__auto__ret.html index 07ae29a9..10d9191e 100644 --- a/classwinstd_1_1event__fn__auto__ret.html +++ b/classwinstd_1_1event__fn__auto__ret.html @@ -136,7 +136,7 @@ class winstd::event_fn_auto_ret< T >

Helper template to write an

diff --git a/classwinstd_1_1event__log-members.html b/classwinstd_1_1event__log-members.html index 30308e64..945dc719 100644 --- a/classwinstd_1_1event__log-members.html +++ b/classwinstd_1_1event__log-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/classwinstd_1_1event__log.html b/classwinstd_1_1event__log.html index 7af7e55f..7985c463 100644 --- a/classwinstd_1_1event__log.html +++ b/classwinstd_1_1event__log.html @@ -297,7 +297,7 @@ static const HANDLE invali diff --git a/classwinstd_1_1event__provider-members.html b/classwinstd_1_1event__provider-members.html index 7ebf6004..9b172cbd 100644 --- a/classwinstd_1_1event__provider-members.html +++ b/classwinstd_1_1event__provider-members.html @@ -108,7 +108,7 @@ $(function() { diff --git a/classwinstd_1_1event__provider.html b/classwinstd_1_1event__provider.html index 7e4623bb..9392ab2f 100644 --- a/classwinstd_1_1event__provider.html +++ b/classwinstd_1_1event__provider.html @@ -680,7 +680,7 @@ static const REGHANDLE inv diff --git a/classwinstd_1_1event__rec-members.html b/classwinstd_1_1event__rec-members.html index e04e18da..d4519b79 100644 --- a/classwinstd_1_1event__rec-members.html +++ b/classwinstd_1_1event__rec-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classwinstd_1_1event__rec.html b/classwinstd_1_1event__rec.html index 802f05f5..e79c0242 100644 --- a/classwinstd_1_1event__rec.html +++ b/classwinstd_1_1event__rec.html @@ -524,7 +524,7 @@ Protected Member Functions diff --git a/classwinstd_1_1event__session-members.html b/classwinstd_1_1event__session-members.html index 213ccaae..8bbc18bf 100644 --- a/classwinstd_1_1event__session-members.html +++ b/classwinstd_1_1event__session-members.html @@ -111,7 +111,7 @@ $(function() { diff --git a/classwinstd_1_1event__session.html b/classwinstd_1_1event__session.html index 6f5dcccd..24d10054 100644 --- a/classwinstd_1_1event__session.html +++ b/classwinstd_1_1event__session.html @@ -684,7 +684,7 @@ static const TRACEHANDLE i diff --git a/classwinstd_1_1event__trace-members.html b/classwinstd_1_1event__trace-members.html index 4dc4e5ac..98f199a3 100644 --- a/classwinstd_1_1event__trace-members.html +++ b/classwinstd_1_1event__trace-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/classwinstd_1_1event__trace.html b/classwinstd_1_1event__trace.html index d5c5c6b4..5aee9707 100644 --- a/classwinstd_1_1event__trace.html +++ b/classwinstd_1_1event__trace.html @@ -287,7 +287,7 @@ static const TRACEHANDLE i diff --git a/classwinstd_1_1event__trace__enabler-members.html b/classwinstd_1_1event__trace__enabler-members.html index 2dc3c7c4..644e2eb7 100644 --- a/classwinstd_1_1event__trace__enabler-members.html +++ b/classwinstd_1_1event__trace__enabler-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/classwinstd_1_1event__trace__enabler.html b/classwinstd_1_1event__trace__enabler.html index 0898a4e6..e4bcc7c0 100644 --- a/classwinstd_1_1event__trace__enabler.html +++ b/classwinstd_1_1event__trace__enabler.html @@ -344,7 +344,7 @@ PEVENT_FILTER_DESCRIPTOR m diff --git a/classwinstd_1_1file-members.html b/classwinstd_1_1file-members.html index 4fce6c31..d155fe7e 100644 --- a/classwinstd_1_1file-members.html +++ b/classwinstd_1_1file-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/classwinstd_1_1file.html b/classwinstd_1_1file.html index 5071bac3..f9587ff6 100644 --- a/classwinstd_1_1file.html +++ b/classwinstd_1_1file.html @@ -267,7 +267,7 @@ static const HANDLE invali diff --git a/classwinstd_1_1file__mapping-members.html b/classwinstd_1_1file__mapping-members.html new file mode 100644 index 00000000..cb623930 --- /dev/null +++ b/classwinstd_1_1file__mapping-members.html @@ -0,0 +1,107 @@ + + + + + + + +WinStd: Member List + + + + + + + + + +
+
+ + + + + + +
+
WinStd +
+
Additional templates and function helpers for Microsoft Windows using Standard C++ classes
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
winstd::file_mapping Member List
+
+
+ +

This is the complete list of members for winstd::file_mapping, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
attach(handle_type h) noexceptwinstd::handle< HANDLE, INVALID >inline
create(HANDLE hFile, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPSECURITY_ATTRIBUTES lpFileMappingAttributes=NULL, LPCTSTR lpName=NULL) noexceptwinstd::file_mappinginline
detach()winstd::handle< HANDLE, INVALID >inline
free()winstd::handle< HANDLE, INVALID >inline
free_internal() noexcept overridewinstd::win_handle< NULL >inlineprotectedvirtual
handle() noexceptwinstd::handle< HANDLE, INVALID >inline
handle(handle_type h) noexceptwinstd::handle< HANDLE, INVALID >inline
handle(handle< handle_type, INVAL > &&h) noexceptwinstd::handle< HANDLE, INVALID >inline
handle_type typedefwinstd::handle< HANDLE, INVALID >
invalidwinstd::handle< HANDLE, INVALID >static
m_hwinstd::handle< HANDLE, INVALID >protected
operator handle_type() constwinstd::handle< HANDLE, INVALID >inline
operator!() constwinstd::handle< HANDLE, INVALID >inline
operator!=(handle_type h) constwinstd::handle< HANDLE, INVALID >inline
operator&()winstd::handle< HANDLE, INVALID >inline
operator*() constwinstd::handle< HANDLE, INVALID >inline
operator->() constwinstd::handle< HANDLE, INVALID >inline
operator<(handle_type h) constwinstd::handle< HANDLE, INVALID >inline
operator<=(handle_type h) constwinstd::handle< HANDLE, INVALID >inline
operator=(handle_type h) noexceptwinstd::handle< HANDLE, INVALID >inline
operator=(handle< handle_type, INVAL > &&h) noexceptwinstd::handle< HANDLE, INVALID >inline
operator==(handle_type h) constwinstd::handle< HANDLE, INVALID >inline
operator>(handle_type h) constwinstd::handle< HANDLE, INVALID >inline
operator>=(handle_type h) constwinstd::handle< HANDLE, INVALID >inline
~win_handle()winstd::win_handle< NULL >inlinevirtual
+ + + + diff --git a/classwinstd_1_1file__mapping.html b/classwinstd_1_1file__mapping.html new file mode 100644 index 00000000..1ca76e77 --- /dev/null +++ b/classwinstd_1_1file__mapping.html @@ -0,0 +1,267 @@ + + + + + + + +WinStd: winstd::file_mapping Class Reference + + + + + + + + + +
+
+ + + + + + +
+
WinStd +
+
Additional templates and function helpers for Microsoft Windows using Standard C++ classes
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
winstd::file_mapping Class Reference
+
+
+ +

File mapping. + More...

+ +

#include <WinStd/Win.h>

+
+Inheritance diagram for winstd::file_mapping:
+
+
+ + +winstd::win_handle< NULL > +winstd::handle< HANDLE, INVALID > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

bool create (HANDLE hFile, DWORD flProtect, DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPSECURITY_ATTRIBUTES lpFileMappingAttributes=NULL, LPCTSTR lpName=NULL) noexcept
 Creates or opens a named or unnamed file mapping object for a specified file. More...
 
- Public Member Functions inherited from winstd::win_handle< NULL >
virtual ~win_handle ()
 Closes an open object handle. More...
 
- Public Member Functions inherited from winstd::handle< HANDLE, INVALID >
handle () noexcept
 Initializes a new class instance with the object handle set to INVAL.
 
 handle (handle_type h) noexcept
 Initializes a new class instance with an already available object handle. More...
 
 handle (handle< handle_type, INVAL > &&h) noexcept
 Move constructor. More...
 
handle< handle_type, INVAL > & operator= (handle_type h) noexcept
 Attaches already available object handle. More...
 
handle< handle_type, INVAL > & operator= (handle< handle_type, INVAL > &&h) noexcept
 Move assignment. More...
 
 operator handle_type () const
 Auto-typecasting operator. More...
 
handle_type *& operator* () const
 Returns the object handle value when the object handle is a pointer to a value (class, struct, etc.). More...
 
handle_typeoperator& ()
 Returns the object handle reference. More...
 
handle_type operator-> () const
 Provides object handle member access when the object handle is a pointer to a class or struct. More...
 
bool operator! () const
 Tests if the object handle is INVAL. More...
 
bool operator< (handle_type h) const
 Is handle less than? More...
 
bool operator<= (handle_type h) const
 Is handle less than or equal to? More...
 
bool operator>= (handle_type h) const
 Is handle greater than or equal to? More...
 
bool operator> (handle_type h) const
 Is handle greater than? More...
 
bool operator!= (handle_type h) const
 Is handle not equal to? More...
 
bool operator== (handle_type h) const
 Is handle equal to? More...
 
void attach (handle_type h) noexcept
 Sets a new object handle for the class. More...
 
handle_type detach ()
 Dismisses the object handle from this class. More...
 
+void free ()
 Destroys the object.
 
+ + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Types inherited from winstd::handle< HANDLE, INVALID >
+typedef HANDLE handle_type
 Datatype of the object handle this template class handles.
 
- Static Public Attributes inherited from winstd::handle< HANDLE, INVALID >
+static const HANDLE invalid
 Invalid handle value.
 
- Protected Member Functions inherited from winstd::win_handle< NULL >
void free_internal () noexcept override
 Closes an open object handle. More...
 
virtual void free_internal () noexcept=0
 Abstract member function that must be implemented by child classes to do the actual object destruction. More...
 
- Protected Attributes inherited from winstd::handle< HANDLE, INVALID >
+handle_type m_h
 Object handle.
 
+

Detailed Description

+

File mapping.

+

Member Function Documentation

+ +

◆ create()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool winstd::file_mapping::create (HANDLE hFile,
DWORD flProtect,
DWORD dwMaximumSizeHigh,
DWORD dwMaximumSizeLow,
LPSECURITY_ATTRIBUTES lpFileMappingAttributes = NULL,
LPCTSTR lpName = NULL 
)
+
+inlinenoexcept
+
+ +

Creates or opens a named or unnamed file mapping object for a specified file.

+
See also
CreateFileMapping function
+
Returns
    +
  • true when succeeds;
  • +
  • false when fails. Use GetLastError() for failure reason.
  • +
+
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classwinstd_1_1file__mapping.png b/classwinstd_1_1file__mapping.png new file mode 100644 index 00000000..babe158d Binary files /dev/null and b/classwinstd_1_1file__mapping.png differ diff --git a/classwinstd_1_1find__file-members.html b/classwinstd_1_1find__file-members.html index 25b9ea2e..5b85f851 100644 --- a/classwinstd_1_1find__file-members.html +++ b/classwinstd_1_1find__file-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/classwinstd_1_1find__file.html b/classwinstd_1_1find__file.html index d1137a0c..08a9b072 100644 --- a/classwinstd_1_1find__file.html +++ b/classwinstd_1_1find__file.html @@ -297,7 +297,7 @@ static const HANDLE invali diff --git a/classwinstd_1_1gdi__handle-members.html b/classwinstd_1_1gdi__handle-members.html index 3d1c26e6..3c752bfb 100644 --- a/classwinstd_1_1gdi__handle-members.html +++ b/classwinstd_1_1gdi__handle-members.html @@ -100,7 +100,7 @@ $(function() { diff --git a/classwinstd_1_1gdi__handle.html b/classwinstd_1_1gdi__handle.html index 435a47ef..9e1e419c 100644 --- a/classwinstd_1_1gdi__handle.html +++ b/classwinstd_1_1gdi__handle.html @@ -255,7 +255,7 @@ template<class T > diff --git a/classwinstd_1_1handle-members.html b/classwinstd_1_1handle-members.html index 13a07098..6f412896 100644 --- a/classwinstd_1_1handle-members.html +++ b/classwinstd_1_1handle-members.html @@ -99,7 +99,7 @@ $(function() { diff --git a/classwinstd_1_1handle.html b/classwinstd_1_1handle.html index 3370201f..c8345234 100644 --- a/classwinstd_1_1handle.html +++ b/classwinstd_1_1handle.html @@ -88,7 +88,7 @@ Inheritance diagram for winstd::handle< T, INVAL >:
-winstd::dplhandle< T, INVAL > +winstd::dplhandle< T, INVAL >
@@ -835,7 +835,7 @@ template<class T , const T INVAL> diff --git a/classwinstd_1_1heap-members.html b/classwinstd_1_1heap-members.html index 48dc077f..d141fbf5 100644 --- a/classwinstd_1_1heap-members.html +++ b/classwinstd_1_1heap-members.html @@ -102,7 +102,7 @@ $(function() {
diff --git a/classwinstd_1_1heap.html b/classwinstd_1_1heap.html index ac3f0e77..e1378228 100644 --- a/classwinstd_1_1heap.html +++ b/classwinstd_1_1heap.html @@ -338,7 +338,7 @@ static const HANDLE invali diff --git a/classwinstd_1_1heap__allocator-members.html b/classwinstd_1_1heap__allocator-members.html index 43d3d9fb..1831c9ab 100644 --- a/classwinstd_1_1heap__allocator-members.html +++ b/classwinstd_1_1heap__allocator-members.html @@ -92,7 +92,7 @@ $(function() { diff --git a/classwinstd_1_1heap__allocator.html b/classwinstd_1_1heap__allocator.html index 4c982167..f512bf07 100644 --- a/classwinstd_1_1heap__allocator.html +++ b/classwinstd_1_1heap__allocator.html @@ -454,7 +454,7 @@ template<class _Ty > diff --git a/classwinstd_1_1library-members.html b/classwinstd_1_1library-members.html index 9389b929..aa117b3a 100644 --- a/classwinstd_1_1library-members.html +++ b/classwinstd_1_1library-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/classwinstd_1_1library.html b/classwinstd_1_1library.html index c80e75a1..3834000a 100644 --- a/classwinstd_1_1library.html +++ b/classwinstd_1_1library.html @@ -303,7 +303,7 @@ static const HMODULE inval diff --git a/classwinstd_1_1num__runtime__error-members.html b/classwinstd_1_1num__runtime__error-members.html index f94f070f..4e7bee31 100644 --- a/classwinstd_1_1num__runtime__error-members.html +++ b/classwinstd_1_1num__runtime__error-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/classwinstd_1_1num__runtime__error.html b/classwinstd_1_1num__runtime__error.html index e405ca21..8b6bb130 100644 --- a/classwinstd_1_1num__runtime__error.html +++ b/classwinstd_1_1num__runtime__error.html @@ -218,7 +218,7 @@ template<typename _Tn > diff --git a/classwinstd_1_1process-members.html b/classwinstd_1_1process-members.html index 38cb6dd5..a186b8a6 100644 --- a/classwinstd_1_1process-members.html +++ b/classwinstd_1_1process-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/classwinstd_1_1process.html b/classwinstd_1_1process.html index 301d4992..f8b55730 100644 --- a/classwinstd_1_1process.html +++ b/classwinstd_1_1process.html @@ -243,7 +243,7 @@ static const HANDLE invali diff --git a/classwinstd_1_1process__information-members.html b/classwinstd_1_1process__information-members.html index 99ce29f8..692fc67d 100644 --- a/classwinstd_1_1process__information-members.html +++ b/classwinstd_1_1process__information-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/classwinstd_1_1process__information.html b/classwinstd_1_1process__information.html index 1c1fe429..aed96dc0 100644 --- a/classwinstd_1_1process__information.html +++ b/classwinstd_1_1process__information.html @@ -104,7 +104,7 @@ Public Member Functions diff --git a/classwinstd_1_1ref__unique__ptr-members.html b/classwinstd_1_1ref__unique__ptr-members.html index 9d6e97b4..56e7fc1c 100644 --- a/classwinstd_1_1ref__unique__ptr-members.html +++ b/classwinstd_1_1ref__unique__ptr-members.html @@ -83,7 +83,7 @@ $(function() { diff --git a/classwinstd_1_1ref__unique__ptr.html b/classwinstd_1_1ref__unique__ptr.html index 9793beec..7348e803 100644 --- a/classwinstd_1_1ref__unique__ptr.html +++ b/classwinstd_1_1ref__unique__ptr.html @@ -253,7 +253,7 @@ template<class _Ty , class _Dx > diff --git a/classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4-members.html b/classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4-members.html index efbc7de0..6e30cf05 100644 --- a/classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4-members.html +++ b/classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4-members.html @@ -85,7 +85,7 @@ $(function() { diff --git a/classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html b/classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html index 981009b2..0463f900 100644 --- a/classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html +++ b/classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html @@ -333,7 +333,7 @@ template<class _Ty , class _Dx > diff --git a/classwinstd_1_1reg__key-members.html b/classwinstd_1_1reg__key-members.html index bbc87990..a5711856 100644 --- a/classwinstd_1_1reg__key-members.html +++ b/classwinstd_1_1reg__key-members.html @@ -103,7 +103,7 @@ $(function() { diff --git a/classwinstd_1_1reg__key.html b/classwinstd_1_1reg__key.html index 0d29c9c4..1a9cb005 100644 --- a/classwinstd_1_1reg__key.html +++ b/classwinstd_1_1reg__key.html @@ -428,7 +428,7 @@ static const HKEY invalid< diff --git a/classwinstd_1_1sanitizing__allocator-members.html b/classwinstd_1_1sanitizing__allocator-members.html index f3564e32..fdc46a0e 100644 --- a/classwinstd_1_1sanitizing__allocator-members.html +++ b/classwinstd_1_1sanitizing__allocator-members.html @@ -81,7 +81,7 @@ $(function() { diff --git a/classwinstd_1_1sanitizing__allocator.html b/classwinstd_1_1sanitizing__allocator.html index 6bd4c174..f2d148d5 100644 --- a/classwinstd_1_1sanitizing__allocator.html +++ b/classwinstd_1_1sanitizing__allocator.html @@ -130,7 +130,7 @@ class winstd::sanitizing_allocator< _Ty >

An allocator template t

diff --git a/classwinstd_1_1sanitizing__blob-members.html b/classwinstd_1_1sanitizing__blob-members.html index fdf28f59..edb0febe 100644 --- a/classwinstd_1_1sanitizing__blob-members.html +++ b/classwinstd_1_1sanitizing__blob-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/classwinstd_1_1sanitizing__blob.html b/classwinstd_1_1sanitizing__blob.html index 269bb7a8..2aa84109 100644 --- a/classwinstd_1_1sanitizing__blob.html +++ b/classwinstd_1_1sanitizing__blob.html @@ -107,7 +107,7 @@ class winstd::sanitizing_blob< N >

Sanitizing BLOB.

diff --git a/classwinstd_1_1sec__buffer__desc-members.html b/classwinstd_1_1sec__buffer__desc-members.html index c020eefe..0b7fa2c0 100644 --- a/classwinstd_1_1sec__buffer__desc-members.html +++ b/classwinstd_1_1sec__buffer__desc-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/classwinstd_1_1sec__buffer__desc.html b/classwinstd_1_1sec__buffer__desc.html index d2c2b9ac..ceaac48d 100644 --- a/classwinstd_1_1sec__buffer__desc.html +++ b/classwinstd_1_1sec__buffer__desc.html @@ -132,7 +132,7 @@ Public Member Functions diff --git a/classwinstd_1_1sec__context-members.html b/classwinstd_1_1sec__context-members.html index 9b675008..e47c21d7 100644 --- a/classwinstd_1_1sec__context-members.html +++ b/classwinstd_1_1sec__context-members.html @@ -107,7 +107,7 @@ $(function() { diff --git a/classwinstd_1_1sec__context.html b/classwinstd_1_1sec__context.html index c80a747c..c4211ff4 100644 --- a/classwinstd_1_1sec__context.html +++ b/classwinstd_1_1sec__context.html @@ -482,7 +482,7 @@ static const PCtxtHandle i diff --git a/classwinstd_1_1sec__credentials-members.html b/classwinstd_1_1sec__credentials-members.html index f2680427..0f03943a 100644 --- a/classwinstd_1_1sec__credentials-members.html +++ b/classwinstd_1_1sec__credentials-members.html @@ -106,7 +106,7 @@ $(function() { diff --git a/classwinstd_1_1sec__credentials.html b/classwinstd_1_1sec__credentials.html index 795bb069..81b525ba 100644 --- a/classwinstd_1_1sec__credentials.html +++ b/classwinstd_1_1sec__credentials.html @@ -461,7 +461,7 @@ static const PCredHandle i diff --git a/classwinstd_1_1sec__runtime__error-members.html b/classwinstd_1_1sec__runtime__error-members.html index 070221ac..cf47745c 100644 --- a/classwinstd_1_1sec__runtime__error-members.html +++ b/classwinstd_1_1sec__runtime__error-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/classwinstd_1_1sec__runtime__error.html b/classwinstd_1_1sec__runtime__error.html index 7e9bd863..0cc20f7f 100644 --- a/classwinstd_1_1sec__runtime__error.html +++ b/classwinstd_1_1sec__runtime__error.html @@ -258,7 +258,7 @@ typedef SECURITY_STATUS er diff --git a/classwinstd_1_1security__id-members.html b/classwinstd_1_1security__id-members.html index 3ced7bdc..4ab2fce4 100644 --- a/classwinstd_1_1security__id-members.html +++ b/classwinstd_1_1security__id-members.html @@ -100,7 +100,7 @@ $(function() { diff --git a/classwinstd_1_1security__id.html b/classwinstd_1_1security__id.html index 22aa3d1e..87394731 100644 --- a/classwinstd_1_1security__id.html +++ b/classwinstd_1_1security__id.html @@ -250,7 +250,7 @@ static const PSID invalid< diff --git a/classwinstd_1_1setup__device__info__list-members.html b/classwinstd_1_1setup__device__info__list-members.html index 814ef62d..7a37369e 100644 --- a/classwinstd_1_1setup__device__info__list-members.html +++ b/classwinstd_1_1setup__device__info__list-members.html @@ -102,7 +102,7 @@ $(function() { diff --git a/classwinstd_1_1setup__device__info__list.html b/classwinstd_1_1setup__device__info__list.html index fe79f028..8989d6a4 100644 --- a/classwinstd_1_1setup__device__info__list.html +++ b/classwinstd_1_1setup__device__info__list.html @@ -374,7 +374,7 @@ static const HDEVINFO inva diff --git a/classwinstd_1_1setup__driver__info__list__builder-members.html b/classwinstd_1_1setup__driver__info__list__builder-members.html index 2e871e95..72ab31cc 100644 --- a/classwinstd_1_1setup__driver__info__list__builder-members.html +++ b/classwinstd_1_1setup__driver__info__list__builder-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/classwinstd_1_1setup__driver__info__list__builder.html b/classwinstd_1_1setup__driver__info__list__builder.html index 2c841f65..852dac4c 100644 --- a/classwinstd_1_1setup__driver__info__list__builder.html +++ b/classwinstd_1_1setup__driver__info__list__builder.html @@ -202,7 +202,7 @@ Public Member Functions diff --git a/classwinstd_1_1string__guid-members.html b/classwinstd_1_1string__guid-members.html index 095932ee..58f3c17f 100644 --- a/classwinstd_1_1string__guid-members.html +++ b/classwinstd_1_1string__guid-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/classwinstd_1_1string__guid.html b/classwinstd_1_1string__guid.html index c7aa1cdb..99c71675 100644 --- a/classwinstd_1_1string__guid.html +++ b/classwinstd_1_1string__guid.html @@ -141,7 +141,7 @@ Public Member Functions diff --git a/classwinstd_1_1user__impersonator-members.html b/classwinstd_1_1user__impersonator-members.html index bbd430b8..a120cdea 100644 --- a/classwinstd_1_1user__impersonator-members.html +++ b/classwinstd_1_1user__impersonator-members.html @@ -79,7 +79,7 @@ $(function() { diff --git a/classwinstd_1_1user__impersonator.html b/classwinstd_1_1user__impersonator.html index d945e646..237b44b8 100644 --- a/classwinstd_1_1user__impersonator.html +++ b/classwinstd_1_1user__impersonator.html @@ -168,7 +168,7 @@ BOOL m_cookie diff --git a/classwinstd_1_1variant-members.html b/classwinstd_1_1variant-members.html index 8b2cf557..c7c22156 100644 --- a/classwinstd_1_1variant-members.html +++ b/classwinstd_1_1variant-members.html @@ -137,7 +137,7 @@ $(function() { diff --git a/classwinstd_1_1variant.html b/classwinstd_1_1variant.html index 2abdf707..8bad4f7c 100644 --- a/classwinstd_1_1variant.html +++ b/classwinstd_1_1variant.html @@ -607,7 +607,7 @@ virtual ~variant () diff --git a/classwinstd_1_1vmemory-members.html b/classwinstd_1_1vmemory-members.html index f48554a1..80bab5de 100644 --- a/classwinstd_1_1vmemory-members.html +++ b/classwinstd_1_1vmemory-members.html @@ -107,7 +107,7 @@ $(function() { diff --git a/classwinstd_1_1vmemory.html b/classwinstd_1_1vmemory.html index 42f47351..9d492f29 100644 --- a/classwinstd_1_1vmemory.html +++ b/classwinstd_1_1vmemory.html @@ -498,7 +498,7 @@ static const LPVOID invali diff --git a/classwinstd_1_1win__handle-members.html b/classwinstd_1_1win__handle-members.html index 51aa9b52..d02debaa 100644 --- a/classwinstd_1_1win__handle-members.html +++ b/classwinstd_1_1win__handle-members.html @@ -100,7 +100,7 @@ $(function() { diff --git a/classwinstd_1_1win__handle.html b/classwinstd_1_1win__handle.html index 6b1a7e45..839e2997 100644 --- a/classwinstd_1_1win__handle.html +++ b/classwinstd_1_1win__handle.html @@ -255,7 +255,7 @@ template<HANDLE INVALID> diff --git a/classwinstd_1_1win__runtime__error-members.html b/classwinstd_1_1win__runtime__error-members.html index f5d4e604..3513dc4b 100644 --- a/classwinstd_1_1win__runtime__error-members.html +++ b/classwinstd_1_1win__runtime__error-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/classwinstd_1_1win__runtime__error.html b/classwinstd_1_1win__runtime__error.html index c0fca4c1..b19103b7 100644 --- a/classwinstd_1_1win__runtime__error.html +++ b/classwinstd_1_1win__runtime__error.html @@ -328,7 +328,7 @@ typedef DWORD error_type diff --git a/classwinstd_1_1window__dc-members.html b/classwinstd_1_1window__dc-members.html index 044ad5cb..f2d07ef8 100644 --- a/classwinstd_1_1window__dc-members.html +++ b/classwinstd_1_1window__dc-members.html @@ -105,7 +105,7 @@ $(function() { diff --git a/classwinstd_1_1window__dc.html b/classwinstd_1_1window__dc.html index d0938e6c..05ebad08 100644 --- a/classwinstd_1_1window__dc.html +++ b/classwinstd_1_1window__dc.html @@ -274,7 +274,7 @@ static const HDC invalid diff --git a/classwinstd_1_1wintrust-members.html b/classwinstd_1_1wintrust-members.html index 1a2e63ec..16eae2cd 100644 --- a/classwinstd_1_1wintrust-members.html +++ b/classwinstd_1_1wintrust-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/classwinstd_1_1wintrust.html b/classwinstd_1_1wintrust.html index d3834a69..c0a2202d 100644 --- a/classwinstd_1_1wintrust.html +++ b/classwinstd_1_1wintrust.html @@ -98,7 +98,7 @@ virtual ~wintrust () diff --git a/classwinstd_1_1wlan__handle-members.html b/classwinstd_1_1wlan__handle-members.html index 9ab4573c..ab30df71 100644 --- a/classwinstd_1_1wlan__handle-members.html +++ b/classwinstd_1_1wlan__handle-members.html @@ -101,7 +101,7 @@ $(function() { diff --git a/classwinstd_1_1wlan__handle.html b/classwinstd_1_1wlan__handle.html index 864bc50d..2e2b99b7 100644 --- a/classwinstd_1_1wlan__handle.html +++ b/classwinstd_1_1wlan__handle.html @@ -297,7 +297,7 @@ static const HANDLE invali diff --git a/classwinstd_1_1ws2__runtime__error-members.html b/classwinstd_1_1ws2__runtime__error-members.html index e903b3de..35ba6c5e 100644 --- a/classwinstd_1_1ws2__runtime__error-members.html +++ b/classwinstd_1_1ws2__runtime__error-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/classwinstd_1_1ws2__runtime__error.html b/classwinstd_1_1ws2__runtime__error.html index 8590c298..d54175c9 100644 --- a/classwinstd_1_1ws2__runtime__error.html +++ b/classwinstd_1_1ws2__runtime__error.html @@ -327,7 +327,7 @@ typedef int error_type diff --git a/classwinstd_1_1wstring__guid-members.html b/classwinstd_1_1wstring__guid-members.html index 41a8401b..f62617dc 100644 --- a/classwinstd_1_1wstring__guid-members.html +++ b/classwinstd_1_1wstring__guid-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/classwinstd_1_1wstring__guid.html b/classwinstd_1_1wstring__guid.html index 4b5cdc98..597eb5f0 100644 --- a/classwinstd_1_1wstring__guid.html +++ b/classwinstd_1_1wstring__guid.html @@ -141,7 +141,7 @@ Public Member Functions diff --git a/dir_6f50bb204833d887b928571856c82fbe.html b/dir_6f50bb204833d887b928571856c82fbe.html index 76d3a963..555c22e1 100644 --- a/dir_6f50bb204833d887b928571856c82fbe.html +++ b/dir_6f50bb204833d887b928571856c82fbe.html @@ -107,7 +107,7 @@ Files diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html index defc278a..728119c6 100644 --- a/dir_d44c64559bbebec7f509842c48db8b23.html +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -79,7 +79,7 @@ Directories diff --git a/files.html b/files.html index 57672a68..9f4a69ef 100644 --- a/files.html +++ b/files.html @@ -90,7 +90,7 @@ $(function() { diff --git a/functions.html b/functions.html index a5e59ac9..ce25d694 100644 --- a/functions.html +++ b/functions.html @@ -67,12 +67,12 @@ $(function() {

- _ -

diff --git a/functions_a.html b/functions_a.html index b558106c..bf6edb0d 100644 --- a/functions_a.html +++ b/functions_a.html @@ -76,7 +76,7 @@ $(function() { diff --git a/functions_b.html b/functions_b.html index 1e192f28..96e19c28 100644 --- a/functions_b.html +++ b/functions_b.html @@ -74,7 +74,7 @@ $(function() { diff --git a/functions_c.html b/functions_c.html index 9934d58f..c52fedf4 100644 --- a/functions_c.html +++ b/functions_c.html @@ -75,7 +75,7 @@ $(function() {
  • const_reference : winstd::heap_allocator< _Ty >
  • construct() : winstd::heap_allocator< _Ty >
  • CoTaskMemFree_delete() : winstd::CoTaskMemFree_delete
  • -
  • create() : winstd::cert_chain_context, winstd::cert_context, winstd::cert_store, winstd::com_obj< T >, winstd::crypt_hash, winstd::crypt_prov, winstd::eap_packet, winstd::event, winstd::event_provider, winstd::event_session, winstd::event_trace, winstd::file, winstd::heap, winstd::reg_key, winstd::setup_device_info_list
  • +
  • create() : winstd::cert_chain_context, winstd::cert_context, winstd::cert_store, winstd::com_obj< T >, winstd::crypt_hash, winstd::crypt_prov, winstd::eap_packet, winstd::event, winstd::event_provider, winstd::event_session, winstd::event_trace, winstd::file, winstd::file_mapping, winstd::heap, winstd::reg_key, winstd::setup_device_info_list
  • create_exp1() : winstd::crypt_key
  • create_ms_mppe_key() : winstd::eap_attr
  • CredFree_delete() : winstd::CredFree_delete< _Ty >, winstd::CredFree_delete< _Ty[]>
  • @@ -84,7 +84,7 @@ $(function() { diff --git a/functions_d.html b/functions_d.html index 8cdacffb..c51d8e7b 100644 --- a/functions_d.html +++ b/functions_d.html @@ -83,7 +83,7 @@ $(function() { diff --git a/functions_e.html b/functions_e.html index 00cff752..465118c4 100644 --- a/functions_e.html +++ b/functions_e.html @@ -88,7 +88,7 @@ $(function() { diff --git a/functions_f.html b/functions_f.html index 15466e45..22e7411d 100644 --- a/functions_f.html +++ b/functions_f.html @@ -73,7 +73,7 @@ $(function() { diff --git a/functions_func.html b/functions_func.html index b1c10f70..8f21e6f3 100644 --- a/functions_func.html +++ b/functions_func.html @@ -76,7 +76,7 @@ $(function() { diff --git a/functions_func_b.html b/functions_func_b.html index 4c2df7d3..7655a1dd 100644 --- a/functions_func_b.html +++ b/functions_func_b.html @@ -74,7 +74,7 @@ $(function() { diff --git a/functions_func_c.html b/functions_func_c.html index 0bf94199..3c961fec 100644 --- a/functions_func_c.html +++ b/functions_func_c.html @@ -73,7 +73,7 @@ $(function() {
  • console_ctrl_handler() : winstd::console_ctrl_handler
  • construct() : winstd::heap_allocator< _Ty >
  • CoTaskMemFree_delete() : winstd::CoTaskMemFree_delete
  • -
  • create() : winstd::cert_chain_context, winstd::cert_context, winstd::cert_store, winstd::com_obj< T >, winstd::crypt_hash, winstd::crypt_prov, winstd::eap_packet, winstd::event, winstd::event_provider, winstd::event_session, winstd::event_trace, winstd::file, winstd::heap, winstd::reg_key, winstd::setup_device_info_list
  • +
  • create() : winstd::cert_chain_context, winstd::cert_context, winstd::cert_store, winstd::com_obj< T >, winstd::crypt_hash, winstd::crypt_prov, winstd::eap_packet, winstd::event, winstd::event_provider, winstd::event_session, winstd::event_trace, winstd::file, winstd::file_mapping, winstd::heap, winstd::reg_key, winstd::setup_device_info_list
  • create_exp1() : winstd::crypt_key
  • create_ms_mppe_key() : winstd::eap_attr
  • CredFree_delete() : winstd::CredFree_delete< _Ty >, winstd::CredFree_delete< _Ty[]>
  • @@ -82,7 +82,7 @@ $(function() { diff --git a/functions_func_d.html b/functions_func_d.html index 1f268735..22496f4e 100644 --- a/functions_func_d.html +++ b/functions_func_d.html @@ -82,7 +82,7 @@ $(function() { diff --git a/functions_func_e.html b/functions_func_e.html index 942779db..234ef948 100644 --- a/functions_func_e.html +++ b/functions_func_e.html @@ -87,7 +87,7 @@ $(function() { diff --git a/functions_func_f.html b/functions_func_f.html index c09708b6..f61360f6 100644 --- a/functions_func_f.html +++ b/functions_func_f.html @@ -73,7 +73,7 @@ $(function() { diff --git a/functions_func_g.html b/functions_func_g.html index 15bd86fa..644ce020 100644 --- a/functions_func_g.html +++ b/functions_func_g.html @@ -72,7 +72,7 @@ $(function() { diff --git a/functions_func_h.html b/functions_func_h.html index a3e09f48..9a36cab8 100644 --- a/functions_func_h.html +++ b/functions_func_h.html @@ -73,7 +73,7 @@ $(function() { diff --git a/functions_func_i.html b/functions_func_i.html index 0caf51c2..29672480 100644 --- a/functions_func_i.html +++ b/functions_func_i.html @@ -73,7 +73,7 @@ $(function() { diff --git a/functions_func_l.html b/functions_func_l.html index e11d572b..87ba0062 100644 --- a/functions_func_l.html +++ b/functions_func_l.html @@ -73,7 +73,7 @@ $(function() { diff --git a/functions_func_m.html b/functions_func_m.html index 0ca4bdfd..cb14a005 100644 --- a/functions_func_m.html +++ b/functions_func_m.html @@ -72,7 +72,7 @@ $(function() { diff --git a/functions_func_n.html b/functions_func_n.html index 5898516d..8b46e8df 100644 --- a/functions_func_n.html +++ b/functions_func_n.html @@ -73,7 +73,7 @@ $(function() { diff --git a/functions_func_o.html b/functions_func_o.html index 52fb9816..9eb36788 100644 --- a/functions_func_o.html +++ b/functions_func_o.html @@ -75,12 +75,12 @@ $(function() {
  • operator!() : winstd::handle< T, INVAL >
  • operator!=() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • operator&() : winstd::handle< T, INVAL >
  • -
  • operator()() : winstd::CoTaskMemFree_delete, winstd::CredFree_delete< _Ty >, winstd::CredFree_delete< _Ty[]>, winstd::EapHostPeerFreeEapError_delete, winstd::EapHostPeerFreeErrorMemory_delete, winstd::EapHostPeerFreeMemory_delete, winstd::EapHostPeerFreeRuntimeMemory_delete, winstd::LocalFree_delete< _Ty >, winstd::LocalFree_delete< _Ty[]>, winstd::WlanFreeMemory_delete< _Ty >, winstd::WlanFreeMemory_delete< _Ty[]>
  • +
  • operator()() : winstd::CoTaskMemFree_delete, winstd::CredFree_delete< _Ty >, winstd::CredFree_delete< _Ty[]>, winstd::EapHostPeerFreeEapError_delete, winstd::EapHostPeerFreeErrorMemory_delete, winstd::EapHostPeerFreeMemory_delete, winstd::EapHostPeerFreeRuntimeMemory_delete, winstd::LocalFree_delete< _Ty >, winstd::LocalFree_delete< _Ty[]>, winstd::UnmapViewOfFile_delete< _Ty >, winstd::UnmapViewOfFile_delete< _Ty[]>, winstd::WlanFreeMemory_delete< _Ty >, winstd::WlanFreeMemory_delete< _Ty[]>
  • operator*() : winstd::handle< T, INVAL >
  • operator->() : winstd::handle< T, INVAL >
  • operator<() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • operator<=() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • -
  • operator=() : winstd::data_blob, winstd::dplhandle< T, INVAL >, winstd::eap_attr, winstd::eap_method_info_array, winstd::event_fn_auto, winstd::event_fn_auto_ret< T >, winstd::event_rec, winstd::event_session, winstd::handle< T, INVAL >, winstd::ref_unique_ptr< _Ty[], _Dx >, winstd::sec_context, winstd::sec_credentials, winstd::variant, winstd::vmemory, winstd::window_dc
  • +
  • operator=() : winstd::data_blob, winstd::dplhandle< T, INVAL >, winstd::eap_attr, winstd::eap_method_info_array, winstd::event_fn_auto, winstd::event_fn_auto_ret< T >, winstd::event_rec, winstd::event_session, winstd::handle< T, INVAL >, winstd::ref_unique_ptr< _Ty[], _Dx >, winstd::sec_context, winstd::sec_credentials, winstd::variant, winstd::vmemory, winstd::window_dc
  • operator==() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • operator>() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • operator>=() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • @@ -88,7 +88,7 @@ $(function() { diff --git a/functions_func_p.html b/functions_func_p.html index ca03f8a7..8d0fa3bd 100644 --- a/functions_func_p.html +++ b/functions_func_p.html @@ -72,7 +72,7 @@ $(function() { diff --git a/functions_func_q.html b/functions_func_q.html index 08e6f5fa..80e5bdaa 100644 --- a/functions_func_q.html +++ b/functions_func_q.html @@ -71,7 +71,7 @@ $(function() { diff --git a/functions_func_r.html b/functions_func_r.html index 310084d2..3075a00d 100644 --- a/functions_func_r.html +++ b/functions_func_r.html @@ -76,7 +76,7 @@ $(function() { diff --git a/functions_func_s.html b/functions_func_s.html index 983db3a4..5f3fa931 100644 --- a/functions_func_s.html +++ b/functions_func_s.html @@ -84,7 +84,7 @@ $(function() { diff --git a/functions_func_t.html b/functions_func_t.html index b56abfb0..78e87924 100644 --- a/functions_func_t.html +++ b/functions_func_t.html @@ -71,7 +71,7 @@ $(function() { diff --git a/functions_func_u.html b/functions_func_u.html index 15003060..d87486c8 100644 --- a/functions_func_u.html +++ b/functions_func_u.html @@ -66,12 +66,13 @@ $(function() {  

    - u -

    diff --git a/functions_func_v.html b/functions_func_v.html index 53e77f2d..a9120e83 100644 --- a/functions_func_v.html +++ b/functions_func_v.html @@ -72,7 +72,7 @@ $(function() { diff --git a/functions_func_w.html b/functions_func_w.html index edc2522b..d415c36e 100644 --- a/functions_func_w.html +++ b/functions_func_w.html @@ -77,7 +77,7 @@ $(function() { diff --git a/functions_func_~.html b/functions_func_~.html index 97f6f86a..c5bb96bf 100644 --- a/functions_func_~.html +++ b/functions_func_~.html @@ -118,7 +118,7 @@ $(function() { diff --git a/functions_g.html b/functions_g.html index 645f64be..125815ce 100644 --- a/functions_g.html +++ b/functions_g.html @@ -72,7 +72,7 @@ $(function() { diff --git a/functions_h.html b/functions_h.html index 4f106da1..966097f3 100644 --- a/functions_h.html +++ b/functions_h.html @@ -74,7 +74,7 @@ $(function() { diff --git a/functions_i.html b/functions_i.html index 7200f440..f0e18172 100644 --- a/functions_i.html +++ b/functions_i.html @@ -74,7 +74,7 @@ $(function() { diff --git a/functions_l.html b/functions_l.html index 71377e47..f5151326 100644 --- a/functions_l.html +++ b/functions_l.html @@ -73,7 +73,7 @@ $(function() { diff --git a/functions_m.html b/functions_m.html index 4ec37339..717a3be8 100644 --- a/functions_m.html +++ b/functions_m.html @@ -108,7 +108,7 @@ $(function() { diff --git a/functions_n.html b/functions_n.html index d16ca3ed..7f4c87c7 100644 --- a/functions_n.html +++ b/functions_n.html @@ -73,7 +73,7 @@ $(function() { diff --git a/functions_o.html b/functions_o.html index 03b4747d..9efd8df4 100644 --- a/functions_o.html +++ b/functions_o.html @@ -75,12 +75,12 @@ $(function() {
  • operator!() : winstd::handle< T, INVAL >
  • operator!=() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • operator&() : winstd::handle< T, INVAL >
  • -
  • operator()() : winstd::CoTaskMemFree_delete, winstd::CredFree_delete< _Ty >, winstd::CredFree_delete< _Ty[]>, winstd::EapHostPeerFreeEapError_delete, winstd::EapHostPeerFreeErrorMemory_delete, winstd::EapHostPeerFreeMemory_delete, winstd::EapHostPeerFreeRuntimeMemory_delete, winstd::LocalFree_delete< _Ty >, winstd::LocalFree_delete< _Ty[]>, winstd::WlanFreeMemory_delete< _Ty >, winstd::WlanFreeMemory_delete< _Ty[]>
  • +
  • operator()() : winstd::CoTaskMemFree_delete, winstd::CredFree_delete< _Ty >, winstd::CredFree_delete< _Ty[]>, winstd::EapHostPeerFreeEapError_delete, winstd::EapHostPeerFreeErrorMemory_delete, winstd::EapHostPeerFreeMemory_delete, winstd::EapHostPeerFreeRuntimeMemory_delete, winstd::LocalFree_delete< _Ty >, winstd::LocalFree_delete< _Ty[]>, winstd::UnmapViewOfFile_delete< _Ty >, winstd::UnmapViewOfFile_delete< _Ty[]>, winstd::WlanFreeMemory_delete< _Ty >, winstd::WlanFreeMemory_delete< _Ty[]>
  • operator*() : winstd::handle< T, INVAL >
  • operator->() : winstd::handle< T, INVAL >
  • operator<() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • operator<=() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • -
  • operator=() : winstd::data_blob, winstd::dplhandle< T, INVAL >, winstd::eap_attr, winstd::eap_method_info_array, winstd::event_fn_auto, winstd::event_fn_auto_ret< T >, winstd::event_rec, winstd::event_session, winstd::handle< T, INVAL >, winstd::ref_unique_ptr< _Ty[], _Dx >, winstd::sec_context, winstd::sec_credentials, winstd::variant, winstd::vmemory, winstd::window_dc
  • +
  • operator=() : winstd::data_blob, winstd::dplhandle< T, INVAL >, winstd::eap_attr, winstd::eap_method_info_array, winstd::event_fn_auto, winstd::event_fn_auto_ret< T >, winstd::event_rec, winstd::event_session, winstd::handle< T, INVAL >, winstd::ref_unique_ptr< _Ty[], _Dx >, winstd::sec_context, winstd::sec_credentials, winstd::variant, winstd::vmemory, winstd::window_dc
  • operator==() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • operator>() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • operator>=() : winstd::cert_context, winstd::handle< T, INVAL >, winstd::variant
  • @@ -89,7 +89,7 @@ $(function() { diff --git a/functions_p.html b/functions_p.html index cf73c7cf..590db8e0 100644 --- a/functions_p.html +++ b/functions_p.html @@ -73,7 +73,7 @@ $(function() { diff --git a/functions_q.html b/functions_q.html index d67359ac..70f8e1c1 100644 --- a/functions_q.html +++ b/functions_q.html @@ -71,7 +71,7 @@ $(function() { diff --git a/functions_r.html b/functions_r.html index 00b37ba9..372213cc 100644 --- a/functions_r.html +++ b/functions_r.html @@ -77,7 +77,7 @@ $(function() { diff --git a/functions_s.html b/functions_s.html index 05b852f1..d9222fcb 100644 --- a/functions_s.html +++ b/functions_s.html @@ -85,7 +85,7 @@ $(function() { diff --git a/functions_t.html b/functions_t.html index 65a3cf69..613ed3ec 100644 --- a/functions_t.html +++ b/functions_t.html @@ -71,7 +71,7 @@ $(function() { diff --git a/functions_type.html b/functions_type.html index 5a0d4cec..bf956db8 100644 --- a/functions_type.html +++ b/functions_type.html @@ -65,7 +65,7 @@ $(function() { diff --git a/functions_u.html b/functions_u.html index 150c4f75..27924d84 100644 --- a/functions_u.html +++ b/functions_u.html @@ -66,12 +66,13 @@ $(function() {
    Here is a list of all documented class members with links to the class documentation for each member:

    - u -

    diff --git a/functions_v.html b/functions_v.html index ac539acd..c262fbec 100644 --- a/functions_v.html +++ b/functions_v.html @@ -73,7 +73,7 @@ $(function() { diff --git a/functions_vars.html b/functions_vars.html index 8e756e69..d61a3305 100644 --- a/functions_vars.html +++ b/functions_vars.html @@ -111,7 +111,7 @@ $(function() { diff --git a/functions_w.html b/functions_w.html index 5554c5f4..8b4221b0 100644 --- a/functions_w.html +++ b/functions_w.html @@ -77,7 +77,7 @@ $(function() { diff --git a/functions_~.html b/functions_~.html index 1bc37d84..362c6f48 100644 --- a/functions_~.html +++ b/functions_~.html @@ -118,7 +118,7 @@ $(function() { diff --git a/group___setup_a_p_i.html b/group___setup_a_p_i.html index 3c92d12c..37206635 100644 --- a/group___setup_a_p_i.html +++ b/group___setup_a_p_i.html @@ -86,7 +86,7 @@ Classes diff --git a/group___win_sock2_a_p_i.html b/group___win_sock2_a_p_i.html index f948da01..140822b8 100644 --- a/group___win_sock2_a_p_i.html +++ b/group___win_sock2_a_p_i.html @@ -86,7 +86,7 @@ Classes diff --git a/group___win_std_c_o_m.html b/group___win_std_c_o_m.html index 73cab5a0..caa5ee48 100644 --- a/group___win_std_c_o_m.html +++ b/group___win_std_c_o_m.html @@ -95,7 +95,7 @@ Classes diff --git a/group___win_std_cred_a_p_i.html b/group___win_std_cred_a_p_i.html index c5adabf0..dd1022c1 100644 --- a/group___win_std_cred_a_p_i.html +++ b/group___win_std_cred_a_p_i.html @@ -86,7 +86,7 @@ Classes diff --git a/group___win_std_crypto_a_p_i.html b/group___win_std_crypto_a_p_i.html index 1156dbf7..c4234879 100644 --- a/group___win_std_crypto_a_p_i.html +++ b/group___win_std_crypto_a_p_i.html @@ -101,7 +101,7 @@ Classes diff --git a/group___win_std_e_a_p_a_p_i.html b/group___win_std_e_a_p_a_p_i.html index dd650fb6..e6f4c95b 100644 --- a/group___win_std_e_a_p_a_p_i.html +++ b/group___win_std_e_a_p_a_p_i.html @@ -222,7 +222,7 @@ Enumerations diff --git a/group___win_std_e_t_w_a_p_i.html b/group___win_std_e_t_w_a_p_i.html index f794e4d6..314cd369 100644 --- a/group___win_std_e_t_w_a_p_i.html +++ b/group___win_std_e_t_w_a_p_i.html @@ -104,7 +104,7 @@ Classes diff --git a/group___win_std_exceptions.html b/group___win_std_exceptions.html index be992ee1..3779ddfd 100644 --- a/group___win_std_exceptions.html +++ b/group___win_std_exceptions.html @@ -95,7 +95,7 @@ Classes diff --git a/group___win_std_gdi_a_p_i.html b/group___win_std_gdi_a_p_i.html index ae36fee4..7c7d7e56 100644 --- a/group___win_std_gdi_a_p_i.html +++ b/group___win_std_gdi_a_p_i.html @@ -92,7 +92,7 @@ Classes diff --git a/group___win_std_general.html b/group___win_std_general.html index d1e5ab73..8e615b3c 100644 --- a/group___win_std_general.html +++ b/group___win_std_general.html @@ -281,7 +281,7 @@ template<class _Ty , class _Dx > diff --git a/group___win_std_m_s_i_a_p_i.html b/group___win_std_m_s_i_a_p_i.html index 2045277a..d4cfba8b 100644 --- a/group___win_std_m_s_i_a_p_i.html +++ b/group___win_std_m_s_i_a_p_i.html @@ -74,7 +74,7 @@ $(function() { diff --git a/group___win_std_mem_sanitize.html b/group___win_std_mem_sanitize.html index 662b841c..bf1a07bc 100644 --- a/group___win_std_mem_sanitize.html +++ b/group___win_std_mem_sanitize.html @@ -135,7 +135,7 @@ typedef diff --git a/group___win_std_security_a_p_i.html b/group___win_std_security_a_p_i.html index 4b7ee8f4..67a1d006 100644 --- a/group___win_std_security_a_p_i.html +++ b/group___win_std_security_a_p_i.html @@ -89,7 +89,7 @@ Classes diff --git a/group___win_std_shell_w_a_p_i.html b/group___win_std_shell_w_a_p_i.html index e0452fc9..84bc5fa0 100644 --- a/group___win_std_shell_w_a_p_i.html +++ b/group___win_std_shell_w_a_p_i.html @@ -74,7 +74,7 @@ $(function() { diff --git a/group___win_std_str_format.html b/group___win_std_str_format.html index 6bb22493..20ba2761 100644 --- a/group___win_std_str_format.html +++ b/group___win_std_str_format.html @@ -154,7 +154,7 @@ typedef string_guid
    Example
    // Please note the PCSTR typecasting invokes an operator to return
    // pointer to formatted buffer rather than class reference itself.
    cout << (PCSTR)(winstd::string_printf("%i is less than %i.\n", 1, 5));
    -
    Base template class to support string formatting using printf() style templates.
    Definition: Common.h:1115
    +
    Base template class to support string formatting using printf() style templates.
    Definition: Common.h:1114

    Macro Definition Documentation

    @@ -177,7 +177,7 @@ typedef string_guid diff --git a/group___win_std_sys_handles.html b/group___win_std_sys_handles.html index 691cb5cb..53e894a7 100644 --- a/group___win_std_sys_handles.html +++ b/group___win_std_sys_handles.html @@ -80,7 +80,7 @@ Classes  Base abstract template class to support generic object handle keeping. More...
      class  winstd::dplhandle< T, INVAL > - Base abstract template class to support object handle keeping for objects that support handle duplication. More...
    + Base abstract template class to support object handle keeping for objects that support trivial handle duplication. More...
      diff --git a/group___win_std_win_a_p_i.html b/group___win_std_win_a_p_i.html index 437e2ef0..745e20d7 100644 --- a/group___win_std_win_a_p_i.html +++ b/group___win_std_win_a_p_i.html @@ -87,6 +87,15 @@ Classes + + + + + + + + + @@ -194,7 +203,7 @@ Macros diff --git a/group___win_trust_a_p_i.html b/group___win_trust_a_p_i.html index 71094482..ec715aa8 100644 --- a/group___win_trust_a_p_i.html +++ b/group___win_trust_a_p_i.html @@ -83,7 +83,7 @@ Classes diff --git a/hierarchy.html b/hierarchy.html index d67ba347..be928a8e 100644 --- a/hierarchy.html +++ b/hierarchy.html @@ -106,7 +106,7 @@ $(function() { - + @@ -116,7 +116,8 @@ $(function() { - + + @@ -196,18 +197,20 @@ $(function() { - - - - - - + + + + + + + +

    @@ -181,7 +181,7 @@ static const T 

    winstd::han diff --git a/group___win_std_w_l_a_n_a_p_i.html b/group___win_std_w_l_a_n_a_p_i.html index 460a1f64..eba0f3f3 100644 --- a/group___win_std_w_l_a_n_a_p_i.html +++ b/group___win_std_w_l_a_n_a_p_i.html @@ -89,7 +89,7 @@ Classes
    class  winstd::file
     File handle wrapper. More...
     
    class  winstd::file_mapping
     File mapping. More...
     
    struct  winstd::UnmapViewOfFile_delete< _Ty >
     Deleter for unique_ptr using UnmapViewOfFile. More...
     
    struct  winstd::UnmapViewOfFile_delete< _Ty[]>
     Deleter for unique_ptr to array of unknown size using UnmapViewOfFile. More...
     
    class  winstd::event
     Event handle wrapper. More...
     
     Cwinstd::event_trace_enablerHelper class to enable event provider in constructor and disables it in destructor
     Cwinstd::handle< T, INVAL >Base abstract template class to support generic object handle keeping
     Cwinstd::handle< BSTR, INVAL >
     Cwinstd::handle< HANDLE, INVALID >
     CSecBufferDesc
     Cwinstd::setup_driver_info_list_builderBuilds a list of drivers in constructor and deletes it in destructor
     Cwinstd::user_impersonatorLets the calling thread impersonate the security context of a logged-on user
     CVARIANT
     Cwinstd::wintrustWinTrust engine wrapper class
     Cwinstd::WlanFreeMemory_delete< _Ty >Deleter for unique_ptr using WlanFreeMemory
     Cwinstd::WlanFreeMemory_delete< _Ty[]>Deleter for unique_ptr to array of unknown size using WlanFreeMemory
     Cwinstd::UnmapViewOfFile_delete< _Ty >Deleter for unique_ptr using UnmapViewOfFile
     Cwinstd::UnmapViewOfFile_delete< _Ty[]>Deleter for unique_ptr to array of unknown size using UnmapViewOfFile
     Cwinstd::user_impersonatorLets the calling thread impersonate the security context of a logged-on user
     CVARIANT
     Cwinstd::wintrustWinTrust engine wrapper class
     Cwinstd::WlanFreeMemory_delete< _Ty >Deleter for unique_ptr using WlanFreeMemory
     Cwinstd::WlanFreeMemory_delete< _Ty[]>Deleter for unique_ptr to array of unknown size using WlanFreeMemory
    diff --git a/index.html b/index.html index c0c12d0f..00d91575 100644 --- a/index.html +++ b/index.html @@ -134,7 +134,7 @@ Usage diff --git a/modules.html b/modules.html index d2cf11e4..91ced85f 100644 --- a/modules.html +++ b/modules.html @@ -92,7 +92,7 @@ $(function() { diff --git a/search/all_0.js b/search/all_0.js index 20d893f4..43663505 100644 --- a/search/all_0.js +++ b/search/all_0.js @@ -3,7 +3,7 @@ var searchData= ['_5f_5fl_0',['__L',['../group___win_std_general.html#ga2cbff438813b72648c18c8af875f47c9',1,'Common.h']]], ['_5fl_1',['_L',['../group___win_std_general.html#ga8b08a24569840250e78cb8d510f1324a',1,'Common.h']]], ['_5fmybase_2',['_Mybase',['../classwinstd_1_1sanitizing__allocator.html#af60051d2fb18f2c2353ffe9bb6a06087',1,'winstd::sanitizing_allocator']]], - ['_5fmyt_3',['_Myt',['../structwinstd_1_1_local_free__delete.html#a1711e7f5b78649499330c8fe8007b3ea',1,'winstd::LocalFree_delete::_Myt()'],['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#a7c9ed5a011c6d31b3189bdf3d212cd0d',1,'winstd::LocalFree_delete< _Ty[]>::_Myt()'],['../structwinstd_1_1_cred_free__delete.html#ab46fe0807ba356084523c04c8c565b53',1,'winstd::CredFree_delete::_Myt()'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aa735db2daba14212c29b3c5af0e0b0d1',1,'winstd::CredFree_delete< _Ty[]>::_Myt()'],['../structwinstd_1_1_wlan_free_memory__delete.html#a92dd05a3becb4a67ad858472eb615668',1,'winstd::WlanFreeMemory_delete::_Myt()'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a42bc91dcaea20ff32034ba5482027837',1,'winstd::WlanFreeMemory_delete< _Ty[]>::_Myt()']]], + ['_5fmyt_3',['_Myt',['../structwinstd_1_1_local_free__delete.html#a1711e7f5b78649499330c8fe8007b3ea',1,'winstd::LocalFree_delete::_Myt()'],['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#a7c9ed5a011c6d31b3189bdf3d212cd0d',1,'winstd::LocalFree_delete< _Ty[]>::_Myt()'],['../structwinstd_1_1_cred_free__delete.html#ab46fe0807ba356084523c04c8c565b53',1,'winstd::CredFree_delete::_Myt()'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aa735db2daba14212c29b3c5af0e0b0d1',1,'winstd::CredFree_delete< _Ty[]>::_Myt()'],['../structwinstd_1_1_unmap_view_of_file__delete.html#aa38ff5b3a531d1074a7ddd681de563b6',1,'winstd::UnmapViewOfFile_delete::_Myt()'],['../structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html#aabd3d19b0796e7de041f8475f5e4cc6c',1,'winstd::UnmapViewOfFile_delete< _Ty[]>::_Myt()'],['../structwinstd_1_1_wlan_free_memory__delete.html#a92dd05a3becb4a67ad858472eb615668',1,'winstd::WlanFreeMemory_delete::_Myt()'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a42bc91dcaea20ff32034ba5482027837',1,'winstd::WlanFreeMemory_delete< _Ty[]>::_Myt()']]], ['_5ftcerr_4',['_tcerr',['../group___win_std_str_format.html#gad92c7b3354a4cc35a5b9ddd16841a9c0',1,'Common.h']]], ['_5ftcin_5',['_tcin',['../group___win_std_str_format.html#gadd052e867c5d82d180924da9d0e16798',1,'Common.h']]], ['_5ftclog_6',['_tclog',['../group___win_std_str_format.html#ga51ea87c84320a64b846a002ab52ac1b8',1,'Common.h']]], diff --git a/search/all_13.js b/search/all_13.js index 219c1874..16252e42 100644 --- a/search/all_13.js +++ b/search/all_13.js @@ -1,5 +1,7 @@ var searchData= [ ['undefined_0',['undefined',['../group___win_std_e_a_p_a_p_i.html#gga50f5584ca708165f43cec42c42243315a5e543256c480ac577d30f76f9120eb74',1,'winstd']]], - ['user_5fimpersonator_1',['user_impersonator',['../classwinstd_1_1user__impersonator.html#a843ed65fc3673b6620a81e6883c1de34',1,'winstd::user_impersonator::user_impersonator()'],['../classwinstd_1_1user__impersonator.html',1,'winstd::user_impersonator']]] + ['unmapviewoffile_5fdelete_1',['UnmapViewOfFile_delete',['../structwinstd_1_1_unmap_view_of_file__delete.html#af907afdb0be87ca6295673035d727279',1,'winstd::UnmapViewOfFile_delete::UnmapViewOfFile_delete()'],['../structwinstd_1_1_unmap_view_of_file__delete.html#a691a3dc8241514532164af426bbab7ee',1,'winstd::UnmapViewOfFile_delete::UnmapViewOfFile_delete(const UnmapViewOfFile_delete< _Ty2 > &)'],['../structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html#a49fbab80e6bee74067b9762abb659365',1,'winstd::UnmapViewOfFile_delete< _Ty[]>::UnmapViewOfFile_delete()'],['../structwinstd_1_1_unmap_view_of_file__delete.html',1,'winstd::UnmapViewOfFile_delete< _Ty >']]], + ['unmapviewoffile_5fdelete_3c_20_5fty_5b_5d_3e_2',['UnmapViewOfFile_delete< _Ty[]>',['../structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html',1,'winstd']]], + ['user_5fimpersonator_3',['user_impersonator',['../classwinstd_1_1user__impersonator.html#a843ed65fc3673b6620a81e6883c1de34',1,'winstd::user_impersonator::user_impersonator()'],['../classwinstd_1_1user__impersonator.html',1,'winstd::user_impersonator']]] ]; diff --git a/search/all_3.js b/search/all_3.js index 9bf2711f..e182eec2 100644 --- a/search/all_3.js +++ b/search/all_3.js @@ -13,7 +13,7 @@ var searchData= ['const_5freference_10',['const_reference',['../classwinstd_1_1heap__allocator.html#ad98c7e8fc3e14da42a8dfc897e75a790',1,'winstd::heap_allocator']]], ['construct_11',['construct',['../classwinstd_1_1heap__allocator.html#ad307cb4c9eaf2dcbcd29b379bc01b463',1,'winstd::heap_allocator::construct(pointer ptr, const _Ty &val)'],['../classwinstd_1_1heap__allocator.html#a95485648de70d7896f81ef9cdad01fbf',1,'winstd::heap_allocator::construct(pointer ptr, _Ty &&val)']]], ['cotaskmemfree_5fdelete_12',['CoTaskMemFree_delete',['../structwinstd_1_1_co_task_mem_free__delete.html#a712d2e91abc99bebe8cf8d32ac649326',1,'winstd::CoTaskMemFree_delete::CoTaskMemFree_delete()'],['../structwinstd_1_1_co_task_mem_free__delete.html',1,'winstd::CoTaskMemFree_delete']]], - ['create_13',['create',['../classwinstd_1_1event__session.html#af75b790f98bc16ed94f1167fe4acdb50',1,'winstd::event_session::create()'],['../classwinstd_1_1reg__key.html#ad331246ce1b00187315048df2716ed57',1,'winstd::reg_key::create()'],['../classwinstd_1_1heap.html#ae0f6791633a50ff1b2d616a76cd1e021',1,'winstd::heap::create()'],['../classwinstd_1_1event.html#a97d7be96a11e0b5232db73e7cb5d1395',1,'winstd::event::create()'],['../classwinstd_1_1file.html#a9ea28e7360dd6700c014bc25cea2093f',1,'winstd::file::create()'],['../classwinstd_1_1setup__device__info__list.html#a4771923fd032c1caf574f7e14056d0e3',1,'winstd::setup_device_info_list::create(const GUID *ClassGuid, PCTSTR Enumerator, HWND hwndParent, DWORD Flags, HDEVINFO DeviceInfoSet, PCTSTR MachineName, PVOID Reserved) noexcept'],['../classwinstd_1_1setup__device__info__list.html#a022aef9dcf004062bde1594035711792',1,'winstd::setup_device_info_list::create(const GUID *ClassGuid, HWND hwndParent) noexcept'],['../classwinstd_1_1event__trace.html#aa18b726564c539c8689dd9b36e2aeae9',1,'winstd::event_trace::create()'],['../classwinstd_1_1event__provider.html#aeb28bf6cc859920913e604b2d342f316',1,'winstd::event_provider::create()'],['../classwinstd_1_1eap__packet.html#ac769190286a427b778b17215f19010e9',1,'winstd::eap_packet::create()'],['../classwinstd_1_1crypt__hash.html#a61cffe43e118aab93ad8fc3b662f9ab2',1,'winstd::crypt_hash::create()'],['../classwinstd_1_1cert__store.html#ac426f1c354886dbc124d40cd878add19',1,'winstd::cert_store::create(HCRYPTPROV_LEGACY hCryptProv, LPCTSTR szSubsystemProtocol) noexcept'],['../classwinstd_1_1cert__store.html#a2c6c8766f36f2f80cb6ccfffff3420ab',1,'winstd::cert_store::create(LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara) noexcept'],['../classwinstd_1_1crypt__prov.html#a08b54970721effdfa94ee27920df8983',1,'winstd::crypt_prov::create()'],['../classwinstd_1_1cert__chain__context.html#acdd5a92af7d4eeca32f3a7a7ae7dc4a6',1,'winstd::cert_chain_context::create()'],['../classwinstd_1_1cert__context.html#a48348ed522045126105b05b4371dd782',1,'winstd::cert_context::create()'],['../classwinstd_1_1com__obj.html#a81ffdc99034437423210d3da111b50c5',1,'winstd::com_obj::create()']]], + ['create_13',['create',['../classwinstd_1_1event__session.html#af75b790f98bc16ed94f1167fe4acdb50',1,'winstd::event_session::create()'],['../classwinstd_1_1reg__key.html#ad331246ce1b00187315048df2716ed57',1,'winstd::reg_key::create()'],['../classwinstd_1_1heap.html#ae0f6791633a50ff1b2d616a76cd1e021',1,'winstd::heap::create()'],['../classwinstd_1_1event.html#a97d7be96a11e0b5232db73e7cb5d1395',1,'winstd::event::create()'],['../classwinstd_1_1file__mapping.html#a951f00273e41acc57b386500c05c4e35',1,'winstd::file_mapping::create()'],['../classwinstd_1_1file.html#a9ea28e7360dd6700c014bc25cea2093f',1,'winstd::file::create()'],['../classwinstd_1_1setup__device__info__list.html#a4771923fd032c1caf574f7e14056d0e3',1,'winstd::setup_device_info_list::create(const GUID *ClassGuid, PCTSTR Enumerator, HWND hwndParent, DWORD Flags, HDEVINFO DeviceInfoSet, PCTSTR MachineName, PVOID Reserved) noexcept'],['../classwinstd_1_1setup__device__info__list.html#a022aef9dcf004062bde1594035711792',1,'winstd::setup_device_info_list::create(const GUID *ClassGuid, HWND hwndParent) noexcept'],['../classwinstd_1_1event__trace.html#aa18b726564c539c8689dd9b36e2aeae9',1,'winstd::event_trace::create()'],['../classwinstd_1_1event__provider.html#aeb28bf6cc859920913e604b2d342f316',1,'winstd::event_provider::create()'],['../classwinstd_1_1eap__packet.html#ac769190286a427b778b17215f19010e9',1,'winstd::eap_packet::create()'],['../classwinstd_1_1crypt__prov.html#a08b54970721effdfa94ee27920df8983',1,'winstd::crypt_prov::create()'],['../classwinstd_1_1cert__store.html#ac426f1c354886dbc124d40cd878add19',1,'winstd::cert_store::create()'],['../classwinstd_1_1crypt__hash.html#a61cffe43e118aab93ad8fc3b662f9ab2',1,'winstd::crypt_hash::create()'],['../classwinstd_1_1cert__store.html#a2c6c8766f36f2f80cb6ccfffff3420ab',1,'winstd::cert_store::create()'],['../classwinstd_1_1cert__chain__context.html#acdd5a92af7d4eeca32f3a7a7ae7dc4a6',1,'winstd::cert_chain_context::create()'],['../classwinstd_1_1cert__context.html#a48348ed522045126105b05b4371dd782',1,'winstd::cert_context::create()'],['../classwinstd_1_1com__obj.html#a81ffdc99034437423210d3da111b50c5',1,'winstd::com_obj::create()']]], ['create_5fexp1_14',['create_exp1',['../classwinstd_1_1crypt__key.html#a9a6097582df953795969c29ec134914a',1,'winstd::crypt_key']]], ['create_5fms_5fmppe_5fkey_15',['create_ms_mppe_key',['../classwinstd_1_1eap__attr.html#a8098b30108457f2c96c865bfabce3021',1,'winstd::eap_attr']]], ['credentials_20api_16',['Credentials API',['../group___win_std_cred_a_p_i.html',1,'']]], diff --git a/search/all_6.js b/search/all_6.js index b1423af8..cd6ff75c 100644 --- a/search/all_6.js +++ b/search/all_6.js @@ -1,8 +1,9 @@ var searchData= [ ['file_0',['file',['../classwinstd_1_1file.html',1,'winstd']]], - ['find_1',['find',['../classwinstd_1_1find__file.html#a645530e3824df60edfb070bcc47501cb',1,'winstd::find_file']]], - ['find_5ffile_2',['find_file',['../classwinstd_1_1find__file.html',1,'winstd']]], - ['free_3',['free',['../classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96',1,'winstd::handle']]], - ['free_5finternal_4',['free_internal',['../classwinstd_1_1window__dc.html#a351bae4203ad766c94f4fc6eac74e98a',1,'winstd::window_dc::free_internal()'],['../classwinstd_1_1wlan__handle.html#a86e2b4aa2a5177b6ebac0258099f9261',1,'winstd::wlan_handle::free_internal()'],['../classwinstd_1_1sec__credentials.html#a6156649d1a93696c8369361cb426e260',1,'winstd::sec_credentials::free_internal()'],['../classwinstd_1_1sec__context.html#afe8682a77fe50e5818ee6c4c741f36d9',1,'winstd::sec_context::free_internal()'],['../classwinstd_1_1setup__device__info__list.html#a41f013a37e16074f1972fd279f8c1437',1,'winstd::setup_device_info_list::free_internal()'],['../classwinstd_1_1win__handle.html#a456fe19828113913f42e901f112c6455',1,'winstd::win_handle::free_internal()'],['../classwinstd_1_1library.html#a0c602319cb498fa2b6a5c4eda4a150aa',1,'winstd::library::free_internal()'],['../classwinstd_1_1find__file.html#a5bb4f7e12689153f991ffcb08dbbe703',1,'winstd::find_file::free_internal()'],['../classwinstd_1_1heap.html#ae25434d96356a74d27c0b3b0e268df45',1,'winstd::heap::free_internal()'],['../classwinstd_1_1vmemory.html#a616dbfba873b9a3dcf393cff6504fc2e',1,'winstd::vmemory::free_internal()'],['../classwinstd_1_1reg__key.html#a3dba00d2105a1c633c571d8ad3131f54',1,'winstd::reg_key::free_internal()'],['../classwinstd_1_1security__id.html#a464626311e64ea1273fd6bca9ef93a73',1,'winstd::security_id::free_internal()'],['../classwinstd_1_1event__log.html#a3e7c083403f5692926aff600f6ead52e',1,'winstd::event_log::free_internal()'],['../classwinstd_1_1addrinfo.html#a279ad84ce2877b22797eedbec80cd55f',1,'winstd::addrinfo::free_internal()'],['../classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557',1,'winstd::dc::free_internal()'],['../classwinstd_1_1gdi__handle.html#a777cd2403d6b8d0fb0a4b69c82fcca87',1,'winstd::gdi_handle::free_internal()'],['../classwinstd_1_1event__trace.html#ad8ef9b0616775c44e911d9db4676b19c',1,'winstd::event_trace::free_internal()'],['../classwinstd_1_1event__session.html#a4701ad4ae9d18e890ed4066473680751',1,'winstd::event_session::free_internal()'],['../classwinstd_1_1event__provider.html#ad0d7ed652fe897a94f2ef198dd3f41a1',1,'winstd::event_provider::free_internal()'],['../classwinstd_1_1eap__packet.html#a6d68149b92c1564b2683ddb3a87b60f0',1,'winstd::eap_packet::free_internal()'],['../classwinstd_1_1crypt__key.html#acf2f2ad35dd7602adcdeef17f605e391',1,'winstd::crypt_key::free_internal()'],['../classwinstd_1_1crypt__hash.html#a3c19a87b4ff646d9e87524feac4e41b5',1,'winstd::crypt_hash::free_internal()'],['../classwinstd_1_1crypt__prov.html#aa351d2dbc42daf51dddcf847fd95c39f',1,'winstd::crypt_prov::free_internal()'],['../classwinstd_1_1cert__store.html#ab709fe692a4117173eae26e741da2069',1,'winstd::cert_store::free_internal()'],['../classwinstd_1_1cert__chain__context.html#ae15044b1a7be10d96643d3921e149ee6',1,'winstd::cert_chain_context::free_internal()'],['../classwinstd_1_1cert__context.html#a1615ec6693eb68764543456ad418a970',1,'winstd::cert_context::free_internal()'],['../classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629',1,'winstd::handle::free_internal()'],['../classwinstd_1_1bstr.html#a87edcb348af7d69ad86709e32b519870',1,'winstd::bstr::free_internal()'],['../classwinstd_1_1com__obj.html#a028b86f770253f74a62ca3eaebb14de5',1,'winstd::com_obj::free_internal()']]] + ['file_5fmapping_1',['file_mapping',['../classwinstd_1_1file__mapping.html',1,'winstd']]], + ['find_2',['find',['../classwinstd_1_1find__file.html#a645530e3824df60edfb070bcc47501cb',1,'winstd::find_file']]], + ['find_5ffile_3',['find_file',['../classwinstd_1_1find__file.html',1,'winstd']]], + ['free_4',['free',['../classwinstd_1_1handle.html#a706aaab7691a472c608890f8e5dd0d96',1,'winstd::handle']]], + ['free_5finternal_5',['free_internal',['../classwinstd_1_1window__dc.html#a351bae4203ad766c94f4fc6eac74e98a',1,'winstd::window_dc::free_internal()'],['../classwinstd_1_1wlan__handle.html#a86e2b4aa2a5177b6ebac0258099f9261',1,'winstd::wlan_handle::free_internal()'],['../classwinstd_1_1sec__credentials.html#a6156649d1a93696c8369361cb426e260',1,'winstd::sec_credentials::free_internal()'],['../classwinstd_1_1sec__context.html#afe8682a77fe50e5818ee6c4c741f36d9',1,'winstd::sec_context::free_internal()'],['../classwinstd_1_1setup__device__info__list.html#a41f013a37e16074f1972fd279f8c1437',1,'winstd::setup_device_info_list::free_internal()'],['../classwinstd_1_1win__handle.html#a456fe19828113913f42e901f112c6455',1,'winstd::win_handle::free_internal()'],['../classwinstd_1_1library.html#a0c602319cb498fa2b6a5c4eda4a150aa',1,'winstd::library::free_internal()'],['../classwinstd_1_1find__file.html#a5bb4f7e12689153f991ffcb08dbbe703',1,'winstd::find_file::free_internal()'],['../classwinstd_1_1heap.html#ae25434d96356a74d27c0b3b0e268df45',1,'winstd::heap::free_internal()'],['../classwinstd_1_1vmemory.html#a616dbfba873b9a3dcf393cff6504fc2e',1,'winstd::vmemory::free_internal()'],['../classwinstd_1_1reg__key.html#a3dba00d2105a1c633c571d8ad3131f54',1,'winstd::reg_key::free_internal()'],['../classwinstd_1_1security__id.html#a464626311e64ea1273fd6bca9ef93a73',1,'winstd::security_id::free_internal()'],['../classwinstd_1_1event__log.html#a3e7c083403f5692926aff600f6ead52e',1,'winstd::event_log::free_internal()'],['../classwinstd_1_1addrinfo.html#a279ad84ce2877b22797eedbec80cd55f',1,'winstd::addrinfo::free_internal()'],['../classwinstd_1_1dc.html#ad3dc9d48645022e7a1adcdb9ea01a557',1,'winstd::dc::free_internal()'],['../classwinstd_1_1gdi__handle.html#a777cd2403d6b8d0fb0a4b69c82fcca87',1,'winstd::gdi_handle::free_internal()'],['../classwinstd_1_1event__trace.html#ad8ef9b0616775c44e911d9db4676b19c',1,'winstd::event_trace::free_internal()'],['../classwinstd_1_1event__session.html#a4701ad4ae9d18e890ed4066473680751',1,'winstd::event_session::free_internal()'],['../classwinstd_1_1event__provider.html#ad0d7ed652fe897a94f2ef198dd3f41a1',1,'winstd::event_provider::free_internal()'],['../classwinstd_1_1eap__packet.html#a6d68149b92c1564b2683ddb3a87b60f0',1,'winstd::eap_packet::free_internal()'],['../classwinstd_1_1crypt__key.html#acf2f2ad35dd7602adcdeef17f605e391',1,'winstd::crypt_key::free_internal()'],['../classwinstd_1_1crypt__hash.html#a3c19a87b4ff646d9e87524feac4e41b5',1,'winstd::crypt_hash::free_internal()'],['../classwinstd_1_1crypt__prov.html#aa351d2dbc42daf51dddcf847fd95c39f',1,'winstd::crypt_prov::free_internal()'],['../classwinstd_1_1cert__store.html#ab709fe692a4117173eae26e741da2069',1,'winstd::cert_store::free_internal()'],['../classwinstd_1_1cert__chain__context.html#ae15044b1a7be10d96643d3921e149ee6',1,'winstd::cert_chain_context::free_internal()'],['../classwinstd_1_1cert__context.html#a1615ec6693eb68764543456ad418a970',1,'winstd::cert_context::free_internal()'],['../classwinstd_1_1handle.html#a137560600851eb4c3e4b80e25d4da629',1,'winstd::handle::free_internal()'],['../classwinstd_1_1bstr.html#a87edcb348af7d69ad86709e32b519870',1,'winstd::bstr::free_internal()'],['../classwinstd_1_1com__obj.html#a028b86f770253f74a62ca3eaebb14de5',1,'winstd::com_obj::free_internal()']]] ]; diff --git a/search/all_d.js b/search/all_d.js index b1850836..80e38c9f 100644 --- a/search/all_d.js +++ b/search/all_d.js @@ -1,20 +1,20 @@ var searchData= [ - ['open_0',['open',['../classwinstd_1_1event.html#a208402e837b0663e6f2a4babbc555145',1,'winstd::event::open()'],['../classwinstd_1_1reg__key.html#abb5d9b3f87c70423940818b5c5df79a7',1,'winstd::reg_key::open()'],['../classwinstd_1_1event__log.html#afd27669d627368ec4a71719382c871ca',1,'winstd::event_log::open()'],['../classwinstd_1_1wlan__handle.html#ab6d75e3603c311c0ea66224ab15555f9',1,'winstd::wlan_handle::open()'],['../classwinstd_1_1process.html#a3b2799779d92e9b8e6b010f90594e52e',1,'winstd::process::open()']]], + ['open_0',['open',['../classwinstd_1_1event.html#a208402e837b0663e6f2a4babbc555145',1,'winstd::event::open()'],['../classwinstd_1_1process.html#a3b2799779d92e9b8e6b010f90594e52e',1,'winstd::process::open()'],['../classwinstd_1_1wlan__handle.html#ab6d75e3603c311c0ea66224ab15555f9',1,'winstd::wlan_handle::open()'],['../classwinstd_1_1reg__key.html#abb5d9b3f87c70423940818b5c5df79a7',1,'winstd::reg_key::open()'],['../classwinstd_1_1event__log.html#afd27669d627368ec4a71719382c871ca',1,'winstd::event_log::open()']]], ['operator_20const_20event_5ftrace_5fproperties_20_2a_1',['operator const EVENT_TRACE_PROPERTIES *',['../classwinstd_1_1event__session.html#a1a37f33aed68839679f91bfe51e675d1',1,'winstd::event_session']]], ['operator_20handle_5ftype_2',['operator handle_type',['../classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8',1,'winstd::handle']]], ['operator_20lpcritical_5fsection_3',['operator LPCRITICAL_SECTION',['../classwinstd_1_1critical__section.html#a7d071e54253a18e11dfdba7130333083',1,'winstd::critical_section']]], ['operator_20typename_20_5fty_20_2a_26_4',['operator typename _Ty *&',['../classwinstd_1_1ref__unique__ptr.html#a45bf0e1b5544e6b8f8f1e907ddaec41b',1,'winstd::ref_unique_ptr::operator typename _Ty *&()'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#afe5ec21f5765e9023bf8379d05c12187',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator typename _Ty *&()']]], ['operator_20typename_20_5fty_20_2a_2a_5',['operator typename _Ty **',['../classwinstd_1_1ref__unique__ptr.html#a0a43c89cd281cfe203cd45655d537a02',1,'winstd::ref_unique_ptr::operator typename _Ty **()'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#ae7d16a5850060668cf78a7fc92b62719',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator typename _Ty **()']]], ['operator_21_6',['operator!',['../classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c',1,'winstd::handle']]], - ['operator_21_3d_7',['operator!=',['../classwinstd_1_1variant.html#a70dc99253ef9de24b443e6d48b662643',1,'winstd::variant::operator!=()'],['../classwinstd_1_1handle.html#a6df58f6c131ab4288acb96d5b8f3012e',1,'winstd::handle::operator!=()'],['../classwinstd_1_1cert__context.html#adfad0db8dd947143a8406f2f988d04ad',1,'winstd::cert_context::operator!=()']]], + ['operator_21_3d_7',['operator!=',['../classwinstd_1_1handle.html#a6df58f6c131ab4288acb96d5b8f3012e',1,'winstd::handle::operator!=()'],['../classwinstd_1_1cert__context.html#adfad0db8dd947143a8406f2f988d04ad',1,'winstd::cert_context::operator!=()'],['../classwinstd_1_1variant.html#a70dc99253ef9de24b443e6d48b662643',1,'winstd::variant::operator!=()']]], ['operator_26_8',['operator&',['../classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1',1,'winstd::handle']]], - ['operator_28_29_9',['operator()',['../structwinstd_1_1_co_task_mem_free__delete.html#a66d6fbd417d9073624387c4664db782f',1,'winstd::CoTaskMemFree_delete::operator()()'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a3b0a5a8db35677a63c3583a45658df1b',1,'winstd::WlanFreeMemory_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a60d22784612a4cfd16ca8ad6629a77e4',1,'winstd::WlanFreeMemory_delete< _Ty[]>::operator()(_Ty *_Ptr) const'],['../structwinstd_1_1_wlan_free_memory__delete.html#a5013eb2213d92798d755cbb9fa24e26b',1,'winstd::WlanFreeMemory_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ae6aa071d5b9824f6062746360478a683',1,'winstd::EapHostPeerFreeEapError_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a5dd9a56b7344ef66c378041a97fdb307',1,'winstd::EapHostPeerFreeErrorMemory_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#a4c573463394fc3ea6781f796d29fe26e',1,'winstd::EapHostPeerFreeRuntimeMemory_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_memory__delete.html#a20b97a65abb2063a31fc8fd7a9cb0f1f',1,'winstd::EapHostPeerFreeMemory_delete::operator()()'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#acc62d6419d7dea72f237ab2788171f48',1,'winstd::CredFree_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aea662a4ce3e32723646313a9a56c4c9a',1,'winstd::CredFree_delete< _Ty[]>::operator()(_Ty *_Ptr) const noexcept'],['../structwinstd_1_1_cred_free__delete.html#a247d6f53f119468b6ccb08ff01338465',1,'winstd::CredFree_delete::operator()()'],['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#abd0fd61b2b66c5e514755f84a655384b',1,'winstd::LocalFree_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#abf0ecfcfbb58493103f7e0905272d8d8',1,'winstd::LocalFree_delete< _Ty[]>::operator()(_Ty *_Ptr) const noexcept'],['../structwinstd_1_1_local_free__delete.html#ad96c48c15a2dea2704073d8db5b72542',1,'winstd::LocalFree_delete::operator()()']]], + ['operator_28_29_9',['operator()',['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#abf0ecfcfbb58493103f7e0905272d8d8',1,'winstd::LocalFree_delete< _Ty[]>::operator()()'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a3b0a5a8db35677a63c3583a45658df1b',1,'winstd::WlanFreeMemory_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a60d22784612a4cfd16ca8ad6629a77e4',1,'winstd::WlanFreeMemory_delete< _Ty[]>::operator()(_Ty *_Ptr) const'],['../structwinstd_1_1_wlan_free_memory__delete.html#a5013eb2213d92798d755cbb9fa24e26b',1,'winstd::WlanFreeMemory_delete::operator()()'],['../structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html#a8a44a95dd279b699a8f3ff2c5f8dd31a',1,'winstd::UnmapViewOfFile_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html#aa9bfce548f756da75283fb781ea2da75',1,'winstd::UnmapViewOfFile_delete< _Ty[]>::operator()(_Ty *_Ptr) const'],['../structwinstd_1_1_unmap_view_of_file__delete.html#aa3611bebc2deaf9acaed4e09e193032d',1,'winstd::UnmapViewOfFile_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ae6aa071d5b9824f6062746360478a683',1,'winstd::EapHostPeerFreeEapError_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a5dd9a56b7344ef66c378041a97fdb307',1,'winstd::EapHostPeerFreeErrorMemory_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#a4c573463394fc3ea6781f796d29fe26e',1,'winstd::EapHostPeerFreeRuntimeMemory_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_memory__delete.html#a20b97a65abb2063a31fc8fd7a9cb0f1f',1,'winstd::EapHostPeerFreeMemory_delete::operator()()'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#acc62d6419d7dea72f237ab2788171f48',1,'winstd::CredFree_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aea662a4ce3e32723646313a9a56c4c9a',1,'winstd::CredFree_delete< _Ty[]>::operator()(_Ty *_Ptr) const noexcept'],['../structwinstd_1_1_cred_free__delete.html#a247d6f53f119468b6ccb08ff01338465',1,'winstd::CredFree_delete::operator()()'],['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#abd0fd61b2b66c5e514755f84a655384b',1,'winstd::LocalFree_delete< _Ty[]>::operator()()'],['../structwinstd_1_1_local_free__delete.html#ad96c48c15a2dea2704073d8db5b72542',1,'winstd::LocalFree_delete::operator()()'],['../structwinstd_1_1_co_task_mem_free__delete.html#a66d6fbd417d9073624387c4664db782f',1,'winstd::CoTaskMemFree_delete::operator()()']]], ['operator_2a_10',['operator*',['../classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9',1,'winstd::handle']]], ['operator_2d_3e_11',['operator->',['../classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084',1,'winstd::handle']]], - ['operator_3c_12',['operator<',['../classwinstd_1_1variant.html#ac03c0c14bb91f7511425946ef7f3e725',1,'winstd::variant::operator<()'],['../classwinstd_1_1cert__context.html#a92881d07b0b41b81c4119ed8d8868c3b',1,'winstd::cert_context::operator<()'],['../classwinstd_1_1handle.html#a4c4515d0d1071cab5c675e926aa2dc92',1,'winstd::handle::operator<()']]], + ['operator_3c_12',['operator<',['../classwinstd_1_1handle.html#a4c4515d0d1071cab5c675e926aa2dc92',1,'winstd::handle::operator<()'],['../classwinstd_1_1cert__context.html#a92881d07b0b41b81c4119ed8d8868c3b',1,'winstd::cert_context::operator<()'],['../classwinstd_1_1variant.html#ac03c0c14bb91f7511425946ef7f3e725',1,'winstd::variant::operator<(const VARIANT &varSrc) const noexcept']]], ['operator_3c_3d_13',['operator<=',['../classwinstd_1_1variant.html#a02366b97c9a937f57806640dc942ecaf',1,'winstd::variant::operator<=()'],['../classwinstd_1_1handle.html#af9e9538d58b952799db4a1c68b0184b9',1,'winstd::handle::operator<=()'],['../classwinstd_1_1cert__context.html#a042240321d22636cddc379b198c7fd84',1,'winstd::cert_context::operator<=()']]], - ['operator_3d_14',['operator=',['../classwinstd_1_1variant.html#a6fa877e7a098dba125c6342bd5e1c896',1,'winstd::variant::operator=(double dblSrc) noexcept'],['../classwinstd_1_1variant.html#a1df6086270e7799b83ee2889e2b88d9e',1,'winstd::variant::operator=(float *pfSrc) noexcept'],['../classwinstd_1_1eap__attr.html#aa5909d52c15557908ff584f4712eea05',1,'winstd::eap_attr::operator=()'],['../classwinstd_1_1data__blob.html#a637b625d29bacc0875d543c69da351c2',1,'winstd::data_blob::operator=(data_blob &&other) noexcept'],['../classwinstd_1_1data__blob.html#ac818a3116ab5fc0af960f82aa505b6ae',1,'winstd::data_blob::operator=(const DATA_BLOB &other)'],['../classwinstd_1_1dplhandle.html#a546f1f737bc3da0c9b19967d849776d3',1,'winstd::dplhandle::operator=(dplhandle< handle_type, INVAL > &&h) noexcept'],['../classwinstd_1_1dplhandle.html#abcccb97671b96da3623f700a93bb5c39',1,'winstd::dplhandle::operator=(const dplhandle< handle_type, INVAL > &h) noexcept'],['../classwinstd_1_1dplhandle.html#a31cec3cdf4ee749b1aef4b4cd7652fb7',1,'winstd::dplhandle::operator=(handle_type h) noexcept'],['../classwinstd_1_1handle.html#a6326bbc54ec3441e41f30bc1ec4d6a6c',1,'winstd::handle::operator=(handle< handle_type, INVAL > &&h) noexcept'],['../classwinstd_1_1handle.html#a591e006af92e4d088fb9c1ed974c0923',1,'winstd::handle::operator=(handle_type h) noexcept'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#acfb43bdf589d00763538f35ac5893641',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator=(ref_unique_ptr< _Ty[], _Dx > &&other)'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#a55590736d435041213af5b54ffe722bf',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator=(std::unique_ptr< _Ty[], _Dx > &owner) noexcept'],['../classwinstd_1_1variant.html#a39d9e97b57c37f3d876574cc2fd6e0a5',1,'winstd::variant::operator=(const SAFEARRAY *pSrc) noexcept'],['../classwinstd_1_1variant.html#a2ea74c1b7a770188f7f59d7eb6923dbe',1,'winstd::variant::operator=(double *pfSrc) noexcept'],['../classwinstd_1_1eap__attr.html#a242766666ce3cbb83429ddd0eaeb9cc6',1,'winstd::eap_attr::operator=()'],['../classwinstd_1_1eap__method__info__array.html#aea48aefd91b676cdbeb9511640108f2a',1,'winstd::eap_method_info_array::operator=()'],['../classwinstd_1_1event__rec.html#aa5287b5572575d440f881c1d8c17bac3',1,'winstd::event_rec::operator=(const event_rec &other)'],['../classwinstd_1_1event__rec.html#a41f64986df27cea4fdaa8ee8ce2d3875',1,'winstd::event_rec::operator=(const EVENT_RECORD &other)'],['../classwinstd_1_1event__rec.html#a22ab332b9c7e3c21e6107e909703da0f',1,'winstd::event_rec::operator=(event_rec &&other) noexcept'],['../classwinstd_1_1event__session.html#a4e436a74c83a75aab21800bc9d954228',1,'winstd::event_session::operator=()'],['../classwinstd_1_1event__fn__auto.html#acb8dddbdd22399d26d4c5db2998afc1d',1,'winstd::event_fn_auto::operator=(const event_fn_auto &other)'],['../classwinstd_1_1event__fn__auto.html#ab64dd267c58d816b4ef5549e704a8949',1,'winstd::event_fn_auto::operator=(event_fn_auto &&other) noexcept'],['../classwinstd_1_1event__fn__auto__ret.html#a6bb69bf1ac97231ef47c2aed99921bc9',1,'winstd::event_fn_auto_ret::operator=(const event_fn_auto_ret< T > &other)'],['../classwinstd_1_1event__fn__auto__ret.html#ade4fd767e5e743649480b93cd0a5ba69',1,'winstd::event_fn_auto_ret::operator=(event_fn_auto_ret< T > &&other)'],['../classwinstd_1_1window__dc.html#ad5d431027a698fef783407ba9e9d167b',1,'winstd::window_dc::operator=()'],['../classwinstd_1_1sec__credentials.html#af0c3ec1f8e1b060cd4dd99b4d34d4623',1,'winstd::sec_credentials::operator=()'],['../classwinstd_1_1sec__context.html#aba957329771358ef9ca65c5e1176fc52',1,'winstd::sec_context::operator=()'],['../classwinstd_1_1vmemory.html#a17a902c8f0ce17d3f06b69ec3e01a331',1,'winstd::vmemory::operator=()'],['../classwinstd_1_1variant.html#ad0ef65b5a3f40b1a812ac78ca5e5eb50',1,'winstd::variant::operator=(long long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aff536ecc3c3a074fea648b7c60522a83',1,'winstd::variant::operator=(const VARIANT &varSrc)'],['../classwinstd_1_1variant.html#aeec12d33002777506b59d73f2c43421c',1,'winstd::variant::operator=(VARIANT &&varSrc) noexcept'],['../classwinstd_1_1variant.html#a355fecf0ce80d31377c9395f2ed1aada',1,'winstd::variant::operator=(bool bSrc) noexcept'],['../classwinstd_1_1variant.html#a63e75ec57af2d8f59830b029afeb3b68',1,'winstd::variant::operator=(char cSrc) noexcept'],['../classwinstd_1_1variant.html#a602751a752d5a7442ade0f4437646231',1,'winstd::variant::operator=(unsigned char nSrc) noexcept'],['../classwinstd_1_1variant.html#a5886220d7a2ff006d29cd4448a2a33ac',1,'winstd::variant::operator=(short nSrc) noexcept'],['../classwinstd_1_1variant.html#a5c2733a19c37248f69a07771b8e939f1',1,'winstd::variant::operator=(unsigned short nSrc) noexcept'],['../classwinstd_1_1variant.html#a71fb3ee2710ad470329e0b5c4f7f5ba4',1,'winstd::variant::operator=(int nSrc) noexcept'],['../classwinstd_1_1variant.html#a05ad6d2f51763b24d7528078a2c30e49',1,'winstd::variant::operator=(unsigned int nSrc) noexcept'],['../classwinstd_1_1variant.html#a360da15526269bd64a2fb670e9e280ff',1,'winstd::variant::operator=(long nSrc) noexcept'],['../classwinstd_1_1variant.html#a07980ff84773ac25807d0713dd05090a',1,'winstd::variant::operator=(unsigned long nSrc) noexcept'],['../classwinstd_1_1variant.html#af1898a82e4199d1f34924d448867f68f',1,'winstd::variant::operator=(long long nSrc) noexcept'],['../classwinstd_1_1variant.html#aebabfcb503a43abecc9f3c07629f591f',1,'winstd::variant::operator=(unsigned long long nSrc) noexcept'],['../classwinstd_1_1variant.html#a935f6cff8004781f60d66b04a01c2330',1,'winstd::variant::operator=(CY cySrc) noexcept'],['../classwinstd_1_1variant.html#ad4a0fd8999d8d526bb232ebf70c18887',1,'winstd::variant::operator=(unsigned long long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#af86e9a10fd9dbe6e18b33a59d04f3b44',1,'winstd::variant::operator=(unsigned long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aa321e1785731055f02abcf7789383912',1,'winstd::variant::operator=(long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aa01c928f87788c505b818b7930c0f3a0',1,'winstd::variant::operator=(unsigned int *pnSrc) noexcept'],['../classwinstd_1_1variant.html#a30ba85931db8557713e5ee32d48ceecc',1,'winstd::variant::operator=(int *pnSrc) noexcept'],['../classwinstd_1_1variant.html#accf863f76609d78946f51ec07a52690e',1,'winstd::variant::operator=(unsigned short *pnSrc) noexcept'],['../classwinstd_1_1variant.html#a5bc092e989de74c42d92de5647248a57',1,'winstd::variant::operator=(unsigned char *pbSrc) noexcept'],['../classwinstd_1_1variant.html#a55f962bb7a077f87aaa4a6bec03c10da',1,'winstd::variant::operator=(IUnknown *pSrc)'],['../classwinstd_1_1variant.html#af5e22f4158921eb49c2207335d7c7593',1,'winstd::variant::operator=(IDispatch *pSrc)'],['../classwinstd_1_1variant.html#a984b2e054639678f06a40e3f57abf4d7',1,'winstd::variant::operator=(LPCOLESTR lpszSrc) noexcept'],['../classwinstd_1_1variant.html#a1786d099ef012c301c0774f98af0f13a',1,'winstd::variant::operator=(float fltSrc) noexcept'],['../classwinstd_1_1variant.html#aa8c701dc6deac688a83d04ed9afdd4b5',1,'winstd::variant::operator=(short *pnSrc) noexcept']]], + ['operator_3d_14',['operator=',['../classwinstd_1_1eap__attr.html#a242766666ce3cbb83429ddd0eaeb9cc6',1,'winstd::eap_attr::operator=()'],['../classwinstd_1_1variant.html#a1df6086270e7799b83ee2889e2b88d9e',1,'winstd::variant::operator=()'],['../classwinstd_1_1eap__attr.html#aa5909d52c15557908ff584f4712eea05',1,'winstd::eap_attr::operator=()'],['../classwinstd_1_1data__blob.html#a637b625d29bacc0875d543c69da351c2',1,'winstd::data_blob::operator=(data_blob &&other) noexcept'],['../classwinstd_1_1data__blob.html#ac818a3116ab5fc0af960f82aa505b6ae',1,'winstd::data_blob::operator=(const DATA_BLOB &other)'],['../classwinstd_1_1dplhandle.html#a546f1f737bc3da0c9b19967d849776d3',1,'winstd::dplhandle::operator=(dplhandle< handle_type, INVAL > &&h) noexcept'],['../classwinstd_1_1dplhandle.html#abcccb97671b96da3623f700a93bb5c39',1,'winstd::dplhandle::operator=(const dplhandle< handle_type, INVAL > &h) noexcept'],['../classwinstd_1_1dplhandle.html#a31cec3cdf4ee749b1aef4b4cd7652fb7',1,'winstd::dplhandle::operator=(handle_type h) noexcept'],['../classwinstd_1_1handle.html#a6326bbc54ec3441e41f30bc1ec4d6a6c',1,'winstd::handle::operator=(handle< handle_type, INVAL > &&h) noexcept'],['../classwinstd_1_1handle.html#a591e006af92e4d088fb9c1ed974c0923',1,'winstd::handle::operator=(handle_type h) noexcept'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#acfb43bdf589d00763538f35ac5893641',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator=(ref_unique_ptr< _Ty[], _Dx > &&other)'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#a55590736d435041213af5b54ffe722bf',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator=(std::unique_ptr< _Ty[], _Dx > &owner) noexcept'],['../classwinstd_1_1variant.html#a39d9e97b57c37f3d876574cc2fd6e0a5',1,'winstd::variant::operator=(const SAFEARRAY *pSrc) noexcept'],['../classwinstd_1_1variant.html#a2ea74c1b7a770188f7f59d7eb6923dbe',1,'winstd::variant::operator=(double *pfSrc) noexcept'],['../classwinstd_1_1eap__method__info__array.html#aea48aefd91b676cdbeb9511640108f2a',1,'winstd::eap_method_info_array::operator=()'],['../classwinstd_1_1variant.html#aebabfcb503a43abecc9f3c07629f591f',1,'winstd::variant::operator=()'],['../classwinstd_1_1event__rec.html#aa5287b5572575d440f881c1d8c17bac3',1,'winstd::event_rec::operator=(const event_rec &other)'],['../classwinstd_1_1event__rec.html#a41f64986df27cea4fdaa8ee8ce2d3875',1,'winstd::event_rec::operator=(const EVENT_RECORD &other)'],['../classwinstd_1_1event__rec.html#a22ab332b9c7e3c21e6107e909703da0f',1,'winstd::event_rec::operator=(event_rec &&other) noexcept'],['../classwinstd_1_1event__session.html#a4e436a74c83a75aab21800bc9d954228',1,'winstd::event_session::operator=()'],['../classwinstd_1_1event__fn__auto.html#acb8dddbdd22399d26d4c5db2998afc1d',1,'winstd::event_fn_auto::operator=(const event_fn_auto &other)'],['../classwinstd_1_1event__fn__auto.html#ab64dd267c58d816b4ef5549e704a8949',1,'winstd::event_fn_auto::operator=(event_fn_auto &&other) noexcept'],['../classwinstd_1_1event__fn__auto__ret.html#a6bb69bf1ac97231ef47c2aed99921bc9',1,'winstd::event_fn_auto_ret::operator=(const event_fn_auto_ret< T > &other)'],['../classwinstd_1_1event__fn__auto__ret.html#ade4fd767e5e743649480b93cd0a5ba69',1,'winstd::event_fn_auto_ret::operator=(event_fn_auto_ret< T > &&other)'],['../classwinstd_1_1window__dc.html#ad5d431027a698fef783407ba9e9d167b',1,'winstd::window_dc::operator=()'],['../classwinstd_1_1sec__credentials.html#af0c3ec1f8e1b060cd4dd99b4d34d4623',1,'winstd::sec_credentials::operator=()'],['../classwinstd_1_1sec__context.html#aba957329771358ef9ca65c5e1176fc52',1,'winstd::sec_context::operator=()'],['../classwinstd_1_1vmemory.html#a17a902c8f0ce17d3f06b69ec3e01a331',1,'winstd::vmemory::operator=()'],['../classwinstd_1_1variant.html#ad0ef65b5a3f40b1a812ac78ca5e5eb50',1,'winstd::variant::operator=(long long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aff536ecc3c3a074fea648b7c60522a83',1,'winstd::variant::operator=(const VARIANT &varSrc)'],['../classwinstd_1_1variant.html#aeec12d33002777506b59d73f2c43421c',1,'winstd::variant::operator=(VARIANT &&varSrc) noexcept'],['../classwinstd_1_1variant.html#a355fecf0ce80d31377c9395f2ed1aada',1,'winstd::variant::operator=(bool bSrc) noexcept'],['../classwinstd_1_1variant.html#a63e75ec57af2d8f59830b029afeb3b68',1,'winstd::variant::operator=(char cSrc) noexcept'],['../classwinstd_1_1variant.html#a602751a752d5a7442ade0f4437646231',1,'winstd::variant::operator=(unsigned char nSrc) noexcept'],['../classwinstd_1_1variant.html#a5886220d7a2ff006d29cd4448a2a33ac',1,'winstd::variant::operator=(short nSrc) noexcept'],['../classwinstd_1_1variant.html#a5c2733a19c37248f69a07771b8e939f1',1,'winstd::variant::operator=(unsigned short nSrc) noexcept'],['../classwinstd_1_1variant.html#a71fb3ee2710ad470329e0b5c4f7f5ba4',1,'winstd::variant::operator=(int nSrc) noexcept'],['../classwinstd_1_1variant.html#a05ad6d2f51763b24d7528078a2c30e49',1,'winstd::variant::operator=(unsigned int nSrc) noexcept'],['../classwinstd_1_1variant.html#a360da15526269bd64a2fb670e9e280ff',1,'winstd::variant::operator=(long nSrc) noexcept'],['../classwinstd_1_1variant.html#a07980ff84773ac25807d0713dd05090a',1,'winstd::variant::operator=(unsigned long nSrc) noexcept'],['../classwinstd_1_1variant.html#af1898a82e4199d1f34924d448867f68f',1,'winstd::variant::operator=(long long nSrc) noexcept'],['../classwinstd_1_1variant.html#a1786d099ef012c301c0774f98af0f13a',1,'winstd::variant::operator=(float fltSrc) noexcept'],['../classwinstd_1_1variant.html#a935f6cff8004781f60d66b04a01c2330',1,'winstd::variant::operator=(CY cySrc) noexcept'],['../classwinstd_1_1variant.html#ad4a0fd8999d8d526bb232ebf70c18887',1,'winstd::variant::operator=(unsigned long long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#af86e9a10fd9dbe6e18b33a59d04f3b44',1,'winstd::variant::operator=(unsigned long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aa321e1785731055f02abcf7789383912',1,'winstd::variant::operator=(long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aa01c928f87788c505b818b7930c0f3a0',1,'winstd::variant::operator=(unsigned int *pnSrc) noexcept'],['../classwinstd_1_1variant.html#a30ba85931db8557713e5ee32d48ceecc',1,'winstd::variant::operator=(int *pnSrc) noexcept'],['../classwinstd_1_1variant.html#accf863f76609d78946f51ec07a52690e',1,'winstd::variant::operator=(unsigned short *pnSrc) noexcept'],['../classwinstd_1_1variant.html#a5bc092e989de74c42d92de5647248a57',1,'winstd::variant::operator=(unsigned char *pbSrc) noexcept'],['../classwinstd_1_1variant.html#a55f962bb7a077f87aaa4a6bec03c10da',1,'winstd::variant::operator=(IUnknown *pSrc)'],['../classwinstd_1_1variant.html#af5e22f4158921eb49c2207335d7c7593',1,'winstd::variant::operator=(IDispatch *pSrc)'],['../classwinstd_1_1variant.html#a984b2e054639678f06a40e3f57abf4d7',1,'winstd::variant::operator=(LPCOLESTR lpszSrc) noexcept'],['../classwinstd_1_1variant.html#a6fa877e7a098dba125c6342bd5e1c896',1,'winstd::variant::operator=(double dblSrc) noexcept'],['../classwinstd_1_1variant.html#aa8c701dc6deac688a83d04ed9afdd4b5',1,'winstd::variant::operator=(short *pnSrc) noexcept']]], ['operator_3d_3d_15',['operator==',['../classwinstd_1_1variant.html#a7e4c402b1b8d459aa2d73fb5b5e83853',1,'winstd::variant::operator==()'],['../classwinstd_1_1handle.html#ab6021e9c11accef6b813948dc4601ddc',1,'winstd::handle::operator==()'],['../classwinstd_1_1cert__context.html#a2f3ad38a637fce69d8c2a5ee3460a296',1,'winstd::cert_context::operator==()']]], ['operator_3e_16',['operator>',['../classwinstd_1_1variant.html#a323955b7123424305aed08eea20f9381',1,'winstd::variant::operator>()'],['../classwinstd_1_1cert__context.html#a7224d1fe6c57bfe903fa8a6df32d2466',1,'winstd::cert_context::operator>()'],['../classwinstd_1_1handle.html#ae7361f6159006e3f87cbe10ba2a76329',1,'winstd::handle::operator>()']]], ['operator_3e_3d_17',['operator>=',['../classwinstd_1_1variant.html#aa7ea26592a0d6b6c529eb87130ebd820',1,'winstd::variant::operator>=()'],['../classwinstd_1_1handle.html#a20e325dde8a25d1e3a7efb50b431641b',1,'winstd::handle::operator>=()'],['../classwinstd_1_1cert__context.html#a6c9f09455ef40e581accc6499222040c',1,'winstd::cert_context::operator>=()']]], diff --git a/search/classes_5.js b/search/classes_5.js index a2f1cf6b..042eb4e1 100644 --- a/search/classes_5.js +++ b/search/classes_5.js @@ -1,5 +1,6 @@ var searchData= [ ['file_0',['file',['../classwinstd_1_1file.html',1,'winstd']]], - ['find_5ffile_1',['find_file',['../classwinstd_1_1find__file.html',1,'winstd']]] + ['file_5fmapping_1',['file_mapping',['../classwinstd_1_1file__mapping.html',1,'winstd']]], + ['find_5ffile_2',['find_file',['../classwinstd_1_1find__file.html',1,'winstd']]] ]; diff --git a/search/classes_d.js b/search/classes_d.js index acbf9028..29cf84d4 100644 --- a/search/classes_d.js +++ b/search/classes_d.js @@ -1,4 +1,6 @@ var searchData= [ - ['user_5fimpersonator_0',['user_impersonator',['../classwinstd_1_1user__impersonator.html',1,'winstd']]] + ['unmapviewoffile_5fdelete_0',['UnmapViewOfFile_delete',['../structwinstd_1_1_unmap_view_of_file__delete.html',1,'winstd']]], + ['unmapviewoffile_5fdelete_3c_20_5fty_5b_5d_3e_1',['UnmapViewOfFile_delete< _Ty[]>',['../structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html',1,'winstd']]], + ['user_5fimpersonator_2',['user_impersonator',['../classwinstd_1_1user__impersonator.html',1,'winstd']]] ]; diff --git a/search/functions_12.js b/search/functions_12.js index 4a351d0c..1a03c149 100644 --- a/search/functions_12.js +++ b/search/functions_12.js @@ -1,4 +1,5 @@ var searchData= [ - ['user_5fimpersonator_0',['user_impersonator',['../classwinstd_1_1user__impersonator.html#a843ed65fc3673b6620a81e6883c1de34',1,'winstd::user_impersonator']]] + ['unmapviewoffile_5fdelete_0',['UnmapViewOfFile_delete',['../structwinstd_1_1_unmap_view_of_file__delete.html#af907afdb0be87ca6295673035d727279',1,'winstd::UnmapViewOfFile_delete::UnmapViewOfFile_delete()'],['../structwinstd_1_1_unmap_view_of_file__delete.html#a691a3dc8241514532164af426bbab7ee',1,'winstd::UnmapViewOfFile_delete::UnmapViewOfFile_delete(const UnmapViewOfFile_delete< _Ty2 > &)'],['../structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html#a49fbab80e6bee74067b9762abb659365',1,'winstd::UnmapViewOfFile_delete< _Ty[]>::UnmapViewOfFile_delete()']]], + ['user_5fimpersonator_1',['user_impersonator',['../classwinstd_1_1user__impersonator.html#a843ed65fc3673b6620a81e6883c1de34',1,'winstd::user_impersonator']]] ]; diff --git a/search/functions_2.js b/search/functions_2.js index a6dd8063..24ff659f 100644 --- a/search/functions_2.js +++ b/search/functions_2.js @@ -7,7 +7,7 @@ var searchData= ['console_5fctrl_5fhandler_4',['console_ctrl_handler',['../classwinstd_1_1console__ctrl__handler.html#a1c05134a4453123739ac5b45f62fe13a',1,'winstd::console_ctrl_handler']]], ['construct_5',['construct',['../classwinstd_1_1heap__allocator.html#a95485648de70d7896f81ef9cdad01fbf',1,'winstd::heap_allocator::construct(pointer ptr, _Ty &&val)'],['../classwinstd_1_1heap__allocator.html#ad307cb4c9eaf2dcbcd29b379bc01b463',1,'winstd::heap_allocator::construct(pointer ptr, const _Ty &val)']]], ['cotaskmemfree_5fdelete_6',['CoTaskMemFree_delete',['../structwinstd_1_1_co_task_mem_free__delete.html#a712d2e91abc99bebe8cf8d32ac649326',1,'winstd::CoTaskMemFree_delete']]], - ['create_7',['create',['../classwinstd_1_1crypt__prov.html#a08b54970721effdfa94ee27920df8983',1,'winstd::crypt_prov::create()'],['../classwinstd_1_1reg__key.html#ad331246ce1b00187315048df2716ed57',1,'winstd::reg_key::create()'],['../classwinstd_1_1heap.html#ae0f6791633a50ff1b2d616a76cd1e021',1,'winstd::heap::create()'],['../classwinstd_1_1event.html#a97d7be96a11e0b5232db73e7cb5d1395',1,'winstd::event::create()'],['../classwinstd_1_1file.html#a9ea28e7360dd6700c014bc25cea2093f',1,'winstd::file::create()'],['../classwinstd_1_1setup__device__info__list.html#a4771923fd032c1caf574f7e14056d0e3',1,'winstd::setup_device_info_list::create(const GUID *ClassGuid, PCTSTR Enumerator, HWND hwndParent, DWORD Flags, HDEVINFO DeviceInfoSet, PCTSTR MachineName, PVOID Reserved) noexcept'],['../classwinstd_1_1setup__device__info__list.html#a022aef9dcf004062bde1594035711792',1,'winstd::setup_device_info_list::create(const GUID *ClassGuid, HWND hwndParent) noexcept'],['../classwinstd_1_1event__trace.html#aa18b726564c539c8689dd9b36e2aeae9',1,'winstd::event_trace::create()'],['../classwinstd_1_1event__session.html#af75b790f98bc16ed94f1167fe4acdb50',1,'winstd::event_session::create()'],['../classwinstd_1_1event__provider.html#aeb28bf6cc859920913e604b2d342f316',1,'winstd::event_provider::create()'],['../classwinstd_1_1eap__packet.html#ac769190286a427b778b17215f19010e9',1,'winstd::eap_packet::create()'],['../classwinstd_1_1crypt__hash.html#a61cffe43e118aab93ad8fc3b662f9ab2',1,'winstd::crypt_hash::create()'],['../classwinstd_1_1cert__store.html#ac426f1c354886dbc124d40cd878add19',1,'winstd::cert_store::create(HCRYPTPROV_LEGACY hCryptProv, LPCTSTR szSubsystemProtocol) noexcept'],['../classwinstd_1_1cert__store.html#a2c6c8766f36f2f80cb6ccfffff3420ab',1,'winstd::cert_store::create(LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara) noexcept'],['../classwinstd_1_1cert__chain__context.html#acdd5a92af7d4eeca32f3a7a7ae7dc4a6',1,'winstd::cert_chain_context::create()'],['../classwinstd_1_1cert__context.html#a48348ed522045126105b05b4371dd782',1,'winstd::cert_context::create()'],['../classwinstd_1_1com__obj.html#a81ffdc99034437423210d3da111b50c5',1,'winstd::com_obj::create()']]], + ['create_7',['create',['../classwinstd_1_1crypt__hash.html#a61cffe43e118aab93ad8fc3b662f9ab2',1,'winstd::crypt_hash::create()'],['../classwinstd_1_1reg__key.html#ad331246ce1b00187315048df2716ed57',1,'winstd::reg_key::create()'],['../classwinstd_1_1heap.html#ae0f6791633a50ff1b2d616a76cd1e021',1,'winstd::heap::create()'],['../classwinstd_1_1event.html#a97d7be96a11e0b5232db73e7cb5d1395',1,'winstd::event::create()'],['../classwinstd_1_1file__mapping.html#a951f00273e41acc57b386500c05c4e35',1,'winstd::file_mapping::create()'],['../classwinstd_1_1file.html#a9ea28e7360dd6700c014bc25cea2093f',1,'winstd::file::create()'],['../classwinstd_1_1setup__device__info__list.html#a4771923fd032c1caf574f7e14056d0e3',1,'winstd::setup_device_info_list::create(const GUID *ClassGuid, PCTSTR Enumerator, HWND hwndParent, DWORD Flags, HDEVINFO DeviceInfoSet, PCTSTR MachineName, PVOID Reserved) noexcept'],['../classwinstd_1_1setup__device__info__list.html#a022aef9dcf004062bde1594035711792',1,'winstd::setup_device_info_list::create(const GUID *ClassGuid, HWND hwndParent) noexcept'],['../classwinstd_1_1event__trace.html#aa18b726564c539c8689dd9b36e2aeae9',1,'winstd::event_trace::create()'],['../classwinstd_1_1event__session.html#af75b790f98bc16ed94f1167fe4acdb50',1,'winstd::event_session::create()'],['../classwinstd_1_1event__provider.html#aeb28bf6cc859920913e604b2d342f316',1,'winstd::event_provider::create()'],['../classwinstd_1_1eap__packet.html#ac769190286a427b778b17215f19010e9',1,'winstd::eap_packet::create()'],['../classwinstd_1_1crypt__prov.html#a08b54970721effdfa94ee27920df8983',1,'winstd::crypt_prov::create()'],['../classwinstd_1_1cert__store.html#ac426f1c354886dbc124d40cd878add19',1,'winstd::cert_store::create(HCRYPTPROV_LEGACY hCryptProv, LPCTSTR szSubsystemProtocol) noexcept'],['../classwinstd_1_1cert__store.html#a2c6c8766f36f2f80cb6ccfffff3420ab',1,'winstd::cert_store::create(LPCSTR lpszStoreProvider, DWORD dwEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara) noexcept'],['../classwinstd_1_1cert__chain__context.html#acdd5a92af7d4eeca32f3a7a7ae7dc4a6',1,'winstd::cert_chain_context::create()'],['../classwinstd_1_1cert__context.html#a48348ed522045126105b05b4371dd782',1,'winstd::cert_context::create()'],['../classwinstd_1_1com__obj.html#a81ffdc99034437423210d3da111b50c5',1,'winstd::com_obj::create()']]], ['create_5fexp1_8',['create_exp1',['../classwinstd_1_1crypt__key.html#a9a6097582df953795969c29ec134914a',1,'winstd::crypt_key']]], ['create_5fms_5fmppe_5fkey_9',['create_ms_mppe_key',['../classwinstd_1_1eap__attr.html#a8098b30108457f2c96c865bfabce3021',1,'winstd::eap_attr']]], ['credfree_5fdelete_10',['CredFree_delete',['../structwinstd_1_1_cred_free__delete.html#a3959d2b3727e557e19d8b0f5c449b57a',1,'winstd::CredFree_delete::CredFree_delete()'],['../structwinstd_1_1_cred_free__delete.html#ac4cc203e783bcc1c71011cde00ddf9ad',1,'winstd::CredFree_delete::CredFree_delete(const CredFree_delete< _Ty2 > &)'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aad102423f4fb96fd105b57a88a6031ab',1,'winstd::CredFree_delete< _Ty[]>::CredFree_delete()']]], diff --git a/search/functions_c.js b/search/functions_c.js index 8117fe68..7f99f131 100644 --- a/search/functions_c.js +++ b/search/functions_c.js @@ -1,20 +1,20 @@ var searchData= [ - ['open_0',['open',['../classwinstd_1_1event.html#a208402e837b0663e6f2a4babbc555145',1,'winstd::event::open()'],['../classwinstd_1_1reg__key.html#abb5d9b3f87c70423940818b5c5df79a7',1,'winstd::reg_key::open()'],['../classwinstd_1_1event__log.html#afd27669d627368ec4a71719382c871ca',1,'winstd::event_log::open()'],['../classwinstd_1_1wlan__handle.html#ab6d75e3603c311c0ea66224ab15555f9',1,'winstd::wlan_handle::open()'],['../classwinstd_1_1process.html#a3b2799779d92e9b8e6b010f90594e52e',1,'winstd::process::open()']]], + ['open_0',['open',['../classwinstd_1_1event.html#a208402e837b0663e6f2a4babbc555145',1,'winstd::event::open()'],['../classwinstd_1_1process.html#a3b2799779d92e9b8e6b010f90594e52e',1,'winstd::process::open()'],['../classwinstd_1_1wlan__handle.html#ab6d75e3603c311c0ea66224ab15555f9',1,'winstd::wlan_handle::open()'],['../classwinstd_1_1reg__key.html#abb5d9b3f87c70423940818b5c5df79a7',1,'winstd::reg_key::open()'],['../classwinstd_1_1event__log.html#afd27669d627368ec4a71719382c871ca',1,'winstd::event_log::open()']]], ['operator_20const_20event_5ftrace_5fproperties_20_2a_1',['operator const EVENT_TRACE_PROPERTIES *',['../classwinstd_1_1event__session.html#a1a37f33aed68839679f91bfe51e675d1',1,'winstd::event_session']]], ['operator_20handle_5ftype_2',['operator handle_type',['../classwinstd_1_1handle.html#a86114637674c82d6fd96d7b3eae39ac8',1,'winstd::handle']]], ['operator_20lpcritical_5fsection_3',['operator LPCRITICAL_SECTION',['../classwinstd_1_1critical__section.html#a7d071e54253a18e11dfdba7130333083',1,'winstd::critical_section']]], ['operator_20typename_20_5fty_20_2a_26_4',['operator typename _Ty *&',['../classwinstd_1_1ref__unique__ptr.html#a45bf0e1b5544e6b8f8f1e907ddaec41b',1,'winstd::ref_unique_ptr::operator typename _Ty *&()'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#afe5ec21f5765e9023bf8379d05c12187',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator typename _Ty *&()']]], ['operator_20typename_20_5fty_20_2a_2a_5',['operator typename _Ty **',['../classwinstd_1_1ref__unique__ptr.html#a0a43c89cd281cfe203cd45655d537a02',1,'winstd::ref_unique_ptr::operator typename _Ty **()'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#ae7d16a5850060668cf78a7fc92b62719',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator typename _Ty **()']]], ['operator_21_6',['operator!',['../classwinstd_1_1handle.html#a5df08ecb32b9040bf7342479aee2286c',1,'winstd::handle']]], - ['operator_21_3d_7',['operator!=',['../classwinstd_1_1variant.html#a70dc99253ef9de24b443e6d48b662643',1,'winstd::variant::operator!=()'],['../classwinstd_1_1handle.html#a6df58f6c131ab4288acb96d5b8f3012e',1,'winstd::handle::operator!=()'],['../classwinstd_1_1cert__context.html#adfad0db8dd947143a8406f2f988d04ad',1,'winstd::cert_context::operator!=()']]], + ['operator_21_3d_7',['operator!=',['../classwinstd_1_1handle.html#a6df58f6c131ab4288acb96d5b8f3012e',1,'winstd::handle::operator!=()'],['../classwinstd_1_1cert__context.html#adfad0db8dd947143a8406f2f988d04ad',1,'winstd::cert_context::operator!=()'],['../classwinstd_1_1variant.html#a70dc99253ef9de24b443e6d48b662643',1,'winstd::variant::operator!=()']]], ['operator_26_8',['operator&',['../classwinstd_1_1handle.html#a2bd2de7bb89dcebe2c9379dd54ee79c1',1,'winstd::handle']]], - ['operator_28_29_9',['operator()',['../structwinstd_1_1_co_task_mem_free__delete.html#a66d6fbd417d9073624387c4664db782f',1,'winstd::CoTaskMemFree_delete::operator()()'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a3b0a5a8db35677a63c3583a45658df1b',1,'winstd::WlanFreeMemory_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a60d22784612a4cfd16ca8ad6629a77e4',1,'winstd::WlanFreeMemory_delete< _Ty[]>::operator()(_Ty *_Ptr) const'],['../structwinstd_1_1_wlan_free_memory__delete.html#a5013eb2213d92798d755cbb9fa24e26b',1,'winstd::WlanFreeMemory_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ae6aa071d5b9824f6062746360478a683',1,'winstd::EapHostPeerFreeEapError_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a5dd9a56b7344ef66c378041a97fdb307',1,'winstd::EapHostPeerFreeErrorMemory_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#a4c573463394fc3ea6781f796d29fe26e',1,'winstd::EapHostPeerFreeRuntimeMemory_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_memory__delete.html#a20b97a65abb2063a31fc8fd7a9cb0f1f',1,'winstd::EapHostPeerFreeMemory_delete::operator()()'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#acc62d6419d7dea72f237ab2788171f48',1,'winstd::CredFree_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aea662a4ce3e32723646313a9a56c4c9a',1,'winstd::CredFree_delete< _Ty[]>::operator()(_Ty *_Ptr) const noexcept'],['../structwinstd_1_1_cred_free__delete.html#a247d6f53f119468b6ccb08ff01338465',1,'winstd::CredFree_delete::operator()()'],['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#abd0fd61b2b66c5e514755f84a655384b',1,'winstd::LocalFree_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#abf0ecfcfbb58493103f7e0905272d8d8',1,'winstd::LocalFree_delete< _Ty[]>::operator()(_Ty *_Ptr) const noexcept'],['../structwinstd_1_1_local_free__delete.html#ad96c48c15a2dea2704073d8db5b72542',1,'winstd::LocalFree_delete::operator()()']]], + ['operator_28_29_9',['operator()',['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#abf0ecfcfbb58493103f7e0905272d8d8',1,'winstd::LocalFree_delete< _Ty[]>::operator()()'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a3b0a5a8db35677a63c3583a45658df1b',1,'winstd::WlanFreeMemory_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a60d22784612a4cfd16ca8ad6629a77e4',1,'winstd::WlanFreeMemory_delete< _Ty[]>::operator()(_Ty *_Ptr) const'],['../structwinstd_1_1_wlan_free_memory__delete.html#a5013eb2213d92798d755cbb9fa24e26b',1,'winstd::WlanFreeMemory_delete::operator()()'],['../structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html#a8a44a95dd279b699a8f3ff2c5f8dd31a',1,'winstd::UnmapViewOfFile_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html#aa9bfce548f756da75283fb781ea2da75',1,'winstd::UnmapViewOfFile_delete< _Ty[]>::operator()(_Ty *_Ptr) const'],['../structwinstd_1_1_unmap_view_of_file__delete.html#aa3611bebc2deaf9acaed4e09e193032d',1,'winstd::UnmapViewOfFile_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_eap_error__delete.html#ae6aa071d5b9824f6062746360478a683',1,'winstd::EapHostPeerFreeEapError_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_error_memory__delete.html#a5dd9a56b7344ef66c378041a97fdb307',1,'winstd::EapHostPeerFreeErrorMemory_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html#a4c573463394fc3ea6781f796d29fe26e',1,'winstd::EapHostPeerFreeRuntimeMemory_delete::operator()()'],['../structwinstd_1_1_eap_host_peer_free_memory__delete.html#a20b97a65abb2063a31fc8fd7a9cb0f1f',1,'winstd::EapHostPeerFreeMemory_delete::operator()()'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#acc62d6419d7dea72f237ab2788171f48',1,'winstd::CredFree_delete< _Ty[]>::operator()(_Other *) const'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aea662a4ce3e32723646313a9a56c4c9a',1,'winstd::CredFree_delete< _Ty[]>::operator()(_Ty *_Ptr) const noexcept'],['../structwinstd_1_1_cred_free__delete.html#a247d6f53f119468b6ccb08ff01338465',1,'winstd::CredFree_delete::operator()()'],['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#abd0fd61b2b66c5e514755f84a655384b',1,'winstd::LocalFree_delete< _Ty[]>::operator()()'],['../structwinstd_1_1_local_free__delete.html#ad96c48c15a2dea2704073d8db5b72542',1,'winstd::LocalFree_delete::operator()()'],['../structwinstd_1_1_co_task_mem_free__delete.html#a66d6fbd417d9073624387c4664db782f',1,'winstd::CoTaskMemFree_delete::operator()()']]], ['operator_2a_10',['operator*',['../classwinstd_1_1handle.html#a0f1ac60cf62e41c24394bf0e3457fbd9',1,'winstd::handle']]], ['operator_2d_3e_11',['operator->',['../classwinstd_1_1handle.html#a285ada5936fe7afdd12eed70b38c2084',1,'winstd::handle']]], - ['operator_3c_12',['operator<',['../classwinstd_1_1variant.html#ac03c0c14bb91f7511425946ef7f3e725',1,'winstd::variant::operator<()'],['../classwinstd_1_1cert__context.html#a92881d07b0b41b81c4119ed8d8868c3b',1,'winstd::cert_context::operator<()'],['../classwinstd_1_1handle.html#a4c4515d0d1071cab5c675e926aa2dc92',1,'winstd::handle::operator<()']]], + ['operator_3c_12',['operator<',['../classwinstd_1_1handle.html#a4c4515d0d1071cab5c675e926aa2dc92',1,'winstd::handle::operator<()'],['../classwinstd_1_1cert__context.html#a92881d07b0b41b81c4119ed8d8868c3b',1,'winstd::cert_context::operator<()'],['../classwinstd_1_1variant.html#ac03c0c14bb91f7511425946ef7f3e725',1,'winstd::variant::operator<(const VARIANT &varSrc) const noexcept']]], ['operator_3c_3d_13',['operator<=',['../classwinstd_1_1variant.html#a02366b97c9a937f57806640dc942ecaf',1,'winstd::variant::operator<=()'],['../classwinstd_1_1handle.html#af9e9538d58b952799db4a1c68b0184b9',1,'winstd::handle::operator<=()'],['../classwinstd_1_1cert__context.html#a042240321d22636cddc379b198c7fd84',1,'winstd::cert_context::operator<=()']]], - ['operator_3d_14',['operator=',['../classwinstd_1_1eap__attr.html#a242766666ce3cbb83429ddd0eaeb9cc6',1,'winstd::eap_attr::operator=()'],['../classwinstd_1_1variant.html#a1df6086270e7799b83ee2889e2b88d9e',1,'winstd::variant::operator=()'],['../classwinstd_1_1eap__attr.html#aa5909d52c15557908ff584f4712eea05',1,'winstd::eap_attr::operator=()'],['../classwinstd_1_1data__blob.html#a637b625d29bacc0875d543c69da351c2',1,'winstd::data_blob::operator=(data_blob &&other) noexcept'],['../classwinstd_1_1data__blob.html#ac818a3116ab5fc0af960f82aa505b6ae',1,'winstd::data_blob::operator=(const DATA_BLOB &other)'],['../classwinstd_1_1dplhandle.html#a546f1f737bc3da0c9b19967d849776d3',1,'winstd::dplhandle::operator=(dplhandle< handle_type, INVAL > &&h) noexcept'],['../classwinstd_1_1dplhandle.html#abcccb97671b96da3623f700a93bb5c39',1,'winstd::dplhandle::operator=(const dplhandle< handle_type, INVAL > &h) noexcept'],['../classwinstd_1_1dplhandle.html#a31cec3cdf4ee749b1aef4b4cd7652fb7',1,'winstd::dplhandle::operator=(handle_type h) noexcept'],['../classwinstd_1_1handle.html#a6326bbc54ec3441e41f30bc1ec4d6a6c',1,'winstd::handle::operator=(handle< handle_type, INVAL > &&h) noexcept'],['../classwinstd_1_1handle.html#a591e006af92e4d088fb9c1ed974c0923',1,'winstd::handle::operator=(handle_type h) noexcept'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#acfb43bdf589d00763538f35ac5893641',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator=(ref_unique_ptr< _Ty[], _Dx > &&other)'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#a55590736d435041213af5b54ffe722bf',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator=(std::unique_ptr< _Ty[], _Dx > &owner) noexcept'],['../classwinstd_1_1variant.html#a39d9e97b57c37f3d876574cc2fd6e0a5',1,'winstd::variant::operator=(const SAFEARRAY *pSrc) noexcept'],['../classwinstd_1_1variant.html#a2ea74c1b7a770188f7f59d7eb6923dbe',1,'winstd::variant::operator=(double *pfSrc) noexcept'],['../classwinstd_1_1eap__method__info__array.html#aea48aefd91b676cdbeb9511640108f2a',1,'winstd::eap_method_info_array::operator=()'],['../classwinstd_1_1variant.html#aebabfcb503a43abecc9f3c07629f591f',1,'winstd::variant::operator=()'],['../classwinstd_1_1event__rec.html#aa5287b5572575d440f881c1d8c17bac3',1,'winstd::event_rec::operator=(const event_rec &other)'],['../classwinstd_1_1event__rec.html#a41f64986df27cea4fdaa8ee8ce2d3875',1,'winstd::event_rec::operator=(const EVENT_RECORD &other)'],['../classwinstd_1_1event__rec.html#a22ab332b9c7e3c21e6107e909703da0f',1,'winstd::event_rec::operator=(event_rec &&other) noexcept'],['../classwinstd_1_1event__session.html#a4e436a74c83a75aab21800bc9d954228',1,'winstd::event_session::operator=()'],['../classwinstd_1_1event__fn__auto.html#acb8dddbdd22399d26d4c5db2998afc1d',1,'winstd::event_fn_auto::operator=(const event_fn_auto &other)'],['../classwinstd_1_1event__fn__auto.html#ab64dd267c58d816b4ef5549e704a8949',1,'winstd::event_fn_auto::operator=(event_fn_auto &&other) noexcept'],['../classwinstd_1_1event__fn__auto__ret.html#a6bb69bf1ac97231ef47c2aed99921bc9',1,'winstd::event_fn_auto_ret::operator=(const event_fn_auto_ret< T > &other)'],['../classwinstd_1_1event__fn__auto__ret.html#ade4fd767e5e743649480b93cd0a5ba69',1,'winstd::event_fn_auto_ret::operator=(event_fn_auto_ret< T > &&other)'],['../classwinstd_1_1window__dc.html#ad5d431027a698fef783407ba9e9d167b',1,'winstd::window_dc::operator=()'],['../classwinstd_1_1sec__credentials.html#af0c3ec1f8e1b060cd4dd99b4d34d4623',1,'winstd::sec_credentials::operator=()'],['../classwinstd_1_1sec__context.html#aba957329771358ef9ca65c5e1176fc52',1,'winstd::sec_context::operator=()'],['../classwinstd_1_1vmemory.html#a17a902c8f0ce17d3f06b69ec3e01a331',1,'winstd::vmemory::operator=()'],['../classwinstd_1_1variant.html#ad0ef65b5a3f40b1a812ac78ca5e5eb50',1,'winstd::variant::operator=(long long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aff536ecc3c3a074fea648b7c60522a83',1,'winstd::variant::operator=(const VARIANT &varSrc)'],['../classwinstd_1_1variant.html#aeec12d33002777506b59d73f2c43421c',1,'winstd::variant::operator=(VARIANT &&varSrc) noexcept'],['../classwinstd_1_1variant.html#a355fecf0ce80d31377c9395f2ed1aada',1,'winstd::variant::operator=(bool bSrc) noexcept'],['../classwinstd_1_1variant.html#a63e75ec57af2d8f59830b029afeb3b68',1,'winstd::variant::operator=(char cSrc) noexcept'],['../classwinstd_1_1variant.html#a602751a752d5a7442ade0f4437646231',1,'winstd::variant::operator=(unsigned char nSrc) noexcept'],['../classwinstd_1_1variant.html#a5886220d7a2ff006d29cd4448a2a33ac',1,'winstd::variant::operator=(short nSrc) noexcept'],['../classwinstd_1_1variant.html#a5c2733a19c37248f69a07771b8e939f1',1,'winstd::variant::operator=(unsigned short nSrc) noexcept'],['../classwinstd_1_1variant.html#a71fb3ee2710ad470329e0b5c4f7f5ba4',1,'winstd::variant::operator=(int nSrc) noexcept'],['../classwinstd_1_1variant.html#a05ad6d2f51763b24d7528078a2c30e49',1,'winstd::variant::operator=(unsigned int nSrc) noexcept'],['../classwinstd_1_1variant.html#a360da15526269bd64a2fb670e9e280ff',1,'winstd::variant::operator=(long nSrc) noexcept'],['../classwinstd_1_1variant.html#a07980ff84773ac25807d0713dd05090a',1,'winstd::variant::operator=(unsigned long nSrc) noexcept'],['../classwinstd_1_1variant.html#af1898a82e4199d1f34924d448867f68f',1,'winstd::variant::operator=(long long nSrc) noexcept'],['../classwinstd_1_1variant.html#a1786d099ef012c301c0774f98af0f13a',1,'winstd::variant::operator=(float fltSrc) noexcept'],['../classwinstd_1_1variant.html#a935f6cff8004781f60d66b04a01c2330',1,'winstd::variant::operator=(CY cySrc) noexcept'],['../classwinstd_1_1variant.html#ad4a0fd8999d8d526bb232ebf70c18887',1,'winstd::variant::operator=(unsigned long long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#af86e9a10fd9dbe6e18b33a59d04f3b44',1,'winstd::variant::operator=(unsigned long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aa321e1785731055f02abcf7789383912',1,'winstd::variant::operator=(long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aa01c928f87788c505b818b7930c0f3a0',1,'winstd::variant::operator=(unsigned int *pnSrc) noexcept'],['../classwinstd_1_1variant.html#a30ba85931db8557713e5ee32d48ceecc',1,'winstd::variant::operator=(int *pnSrc) noexcept'],['../classwinstd_1_1variant.html#accf863f76609d78946f51ec07a52690e',1,'winstd::variant::operator=(unsigned short *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aa8c701dc6deac688a83d04ed9afdd4b5',1,'winstd::variant::operator=(short *pnSrc) noexcept'],['../classwinstd_1_1variant.html#a5bc092e989de74c42d92de5647248a57',1,'winstd::variant::operator=(unsigned char *pbSrc) noexcept'],['../classwinstd_1_1variant.html#a55f962bb7a077f87aaa4a6bec03c10da',1,'winstd::variant::operator=(IUnknown *pSrc)'],['../classwinstd_1_1variant.html#af5e22f4158921eb49c2207335d7c7593',1,'winstd::variant::operator=(IDispatch *pSrc)'],['../classwinstd_1_1variant.html#a984b2e054639678f06a40e3f57abf4d7',1,'winstd::variant::operator=(LPCOLESTR lpszSrc) noexcept'],['../classwinstd_1_1variant.html#a6fa877e7a098dba125c6342bd5e1c896',1,'winstd::variant::operator=(double dblSrc) noexcept']]], + ['operator_3d_14',['operator=',['../classwinstd_1_1eap__attr.html#a242766666ce3cbb83429ddd0eaeb9cc6',1,'winstd::eap_attr::operator=()'],['../classwinstd_1_1variant.html#a1df6086270e7799b83ee2889e2b88d9e',1,'winstd::variant::operator=()'],['../classwinstd_1_1eap__attr.html#aa5909d52c15557908ff584f4712eea05',1,'winstd::eap_attr::operator=()'],['../classwinstd_1_1data__blob.html#a637b625d29bacc0875d543c69da351c2',1,'winstd::data_blob::operator=(data_blob &&other) noexcept'],['../classwinstd_1_1data__blob.html#ac818a3116ab5fc0af960f82aa505b6ae',1,'winstd::data_blob::operator=(const DATA_BLOB &other)'],['../classwinstd_1_1dplhandle.html#a546f1f737bc3da0c9b19967d849776d3',1,'winstd::dplhandle::operator=(dplhandle< handle_type, INVAL > &&h) noexcept'],['../classwinstd_1_1dplhandle.html#abcccb97671b96da3623f700a93bb5c39',1,'winstd::dplhandle::operator=(const dplhandle< handle_type, INVAL > &h) noexcept'],['../classwinstd_1_1dplhandle.html#a31cec3cdf4ee749b1aef4b4cd7652fb7',1,'winstd::dplhandle::operator=(handle_type h) noexcept'],['../classwinstd_1_1handle.html#a6326bbc54ec3441e41f30bc1ec4d6a6c',1,'winstd::handle::operator=(handle< handle_type, INVAL > &&h) noexcept'],['../classwinstd_1_1handle.html#a591e006af92e4d088fb9c1ed974c0923',1,'winstd::handle::operator=(handle_type h) noexcept'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#acfb43bdf589d00763538f35ac5893641',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator=(ref_unique_ptr< _Ty[], _Dx > &&other)'],['../classwinstd_1_1ref__unique__ptr_3_01___ty_0f_0e_00_01___dx_01_4.html#a55590736d435041213af5b54ffe722bf',1,'winstd::ref_unique_ptr< _Ty[], _Dx >::operator=(std::unique_ptr< _Ty[], _Dx > &owner) noexcept'],['../classwinstd_1_1variant.html#a39d9e97b57c37f3d876574cc2fd6e0a5',1,'winstd::variant::operator=(const SAFEARRAY *pSrc) noexcept'],['../classwinstd_1_1variant.html#a2ea74c1b7a770188f7f59d7eb6923dbe',1,'winstd::variant::operator=(double *pfSrc) noexcept'],['../classwinstd_1_1eap__method__info__array.html#aea48aefd91b676cdbeb9511640108f2a',1,'winstd::eap_method_info_array::operator=()'],['../classwinstd_1_1event__rec.html#aa5287b5572575d440f881c1d8c17bac3',1,'winstd::event_rec::operator=()'],['../classwinstd_1_1variant.html#af1898a82e4199d1f34924d448867f68f',1,'winstd::variant::operator=()'],['../classwinstd_1_1event__rec.html#a41f64986df27cea4fdaa8ee8ce2d3875',1,'winstd::event_rec::operator=(const EVENT_RECORD &other)'],['../classwinstd_1_1event__rec.html#a22ab332b9c7e3c21e6107e909703da0f',1,'winstd::event_rec::operator=(event_rec &&other) noexcept'],['../classwinstd_1_1event__session.html#a4e436a74c83a75aab21800bc9d954228',1,'winstd::event_session::operator=()'],['../classwinstd_1_1event__fn__auto.html#acb8dddbdd22399d26d4c5db2998afc1d',1,'winstd::event_fn_auto::operator=(const event_fn_auto &other)'],['../classwinstd_1_1event__fn__auto.html#ab64dd267c58d816b4ef5549e704a8949',1,'winstd::event_fn_auto::operator=(event_fn_auto &&other) noexcept'],['../classwinstd_1_1event__fn__auto__ret.html#a6bb69bf1ac97231ef47c2aed99921bc9',1,'winstd::event_fn_auto_ret::operator=(const event_fn_auto_ret< T > &other)'],['../classwinstd_1_1event__fn__auto__ret.html#ade4fd767e5e743649480b93cd0a5ba69',1,'winstd::event_fn_auto_ret::operator=(event_fn_auto_ret< T > &&other)'],['../classwinstd_1_1window__dc.html#ad5d431027a698fef783407ba9e9d167b',1,'winstd::window_dc::operator=()'],['../classwinstd_1_1sec__credentials.html#af0c3ec1f8e1b060cd4dd99b4d34d4623',1,'winstd::sec_credentials::operator=()'],['../classwinstd_1_1sec__context.html#aba957329771358ef9ca65c5e1176fc52',1,'winstd::sec_context::operator=()'],['../classwinstd_1_1vmemory.html#a17a902c8f0ce17d3f06b69ec3e01a331',1,'winstd::vmemory::operator=()'],['../classwinstd_1_1variant.html#ad0ef65b5a3f40b1a812ac78ca5e5eb50',1,'winstd::variant::operator=(long long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aff536ecc3c3a074fea648b7c60522a83',1,'winstd::variant::operator=(const VARIANT &varSrc)'],['../classwinstd_1_1variant.html#aeec12d33002777506b59d73f2c43421c',1,'winstd::variant::operator=(VARIANT &&varSrc) noexcept'],['../classwinstd_1_1variant.html#a355fecf0ce80d31377c9395f2ed1aada',1,'winstd::variant::operator=(bool bSrc) noexcept'],['../classwinstd_1_1variant.html#a63e75ec57af2d8f59830b029afeb3b68',1,'winstd::variant::operator=(char cSrc) noexcept'],['../classwinstd_1_1variant.html#a602751a752d5a7442ade0f4437646231',1,'winstd::variant::operator=(unsigned char nSrc) noexcept'],['../classwinstd_1_1variant.html#a5886220d7a2ff006d29cd4448a2a33ac',1,'winstd::variant::operator=(short nSrc) noexcept'],['../classwinstd_1_1variant.html#a5c2733a19c37248f69a07771b8e939f1',1,'winstd::variant::operator=(unsigned short nSrc) noexcept'],['../classwinstd_1_1variant.html#a71fb3ee2710ad470329e0b5c4f7f5ba4',1,'winstd::variant::operator=(int nSrc) noexcept'],['../classwinstd_1_1variant.html#a05ad6d2f51763b24d7528078a2c30e49',1,'winstd::variant::operator=(unsigned int nSrc) noexcept'],['../classwinstd_1_1variant.html#a360da15526269bd64a2fb670e9e280ff',1,'winstd::variant::operator=(long nSrc) noexcept'],['../classwinstd_1_1variant.html#a07980ff84773ac25807d0713dd05090a',1,'winstd::variant::operator=(unsigned long nSrc) noexcept'],['../classwinstd_1_1variant.html#aebabfcb503a43abecc9f3c07629f591f',1,'winstd::variant::operator=(unsigned long long nSrc) noexcept'],['../classwinstd_1_1variant.html#a1786d099ef012c301c0774f98af0f13a',1,'winstd::variant::operator=(float fltSrc) noexcept'],['../classwinstd_1_1variant.html#a935f6cff8004781f60d66b04a01c2330',1,'winstd::variant::operator=(CY cySrc) noexcept'],['../classwinstd_1_1variant.html#ad4a0fd8999d8d526bb232ebf70c18887',1,'winstd::variant::operator=(unsigned long long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#af86e9a10fd9dbe6e18b33a59d04f3b44',1,'winstd::variant::operator=(unsigned long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aa321e1785731055f02abcf7789383912',1,'winstd::variant::operator=(long *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aa01c928f87788c505b818b7930c0f3a0',1,'winstd::variant::operator=(unsigned int *pnSrc) noexcept'],['../classwinstd_1_1variant.html#a30ba85931db8557713e5ee32d48ceecc',1,'winstd::variant::operator=(int *pnSrc) noexcept'],['../classwinstd_1_1variant.html#accf863f76609d78946f51ec07a52690e',1,'winstd::variant::operator=(unsigned short *pnSrc) noexcept'],['../classwinstd_1_1variant.html#aa8c701dc6deac688a83d04ed9afdd4b5',1,'winstd::variant::operator=(short *pnSrc) noexcept'],['../classwinstd_1_1variant.html#a5bc092e989de74c42d92de5647248a57',1,'winstd::variant::operator=(unsigned char *pbSrc) noexcept'],['../classwinstd_1_1variant.html#a55f962bb7a077f87aaa4a6bec03c10da',1,'winstd::variant::operator=(IUnknown *pSrc)'],['../classwinstd_1_1variant.html#af5e22f4158921eb49c2207335d7c7593',1,'winstd::variant::operator=(IDispatch *pSrc)'],['../classwinstd_1_1variant.html#a984b2e054639678f06a40e3f57abf4d7',1,'winstd::variant::operator=(LPCOLESTR lpszSrc) noexcept'],['../classwinstd_1_1variant.html#a6fa877e7a098dba125c6342bd5e1c896',1,'winstd::variant::operator=(double dblSrc) noexcept']]], ['operator_3d_3d_15',['operator==',['../classwinstd_1_1variant.html#a7e4c402b1b8d459aa2d73fb5b5e83853',1,'winstd::variant::operator==()'],['../classwinstd_1_1handle.html#ab6021e9c11accef6b813948dc4601ddc',1,'winstd::handle::operator==()'],['../classwinstd_1_1cert__context.html#a2f3ad38a637fce69d8c2a5ee3460a296',1,'winstd::cert_context::operator==()']]], ['operator_3e_16',['operator>',['../classwinstd_1_1variant.html#a323955b7123424305aed08eea20f9381',1,'winstd::variant::operator>()'],['../classwinstd_1_1handle.html#ae7361f6159006e3f87cbe10ba2a76329',1,'winstd::handle::operator>()'],['../classwinstd_1_1cert__context.html#a7224d1fe6c57bfe903fa8a6df32d2466',1,'winstd::cert_context::operator>()']]], ['operator_3e_3d_17',['operator>=',['../classwinstd_1_1variant.html#aa7ea26592a0d6b6c529eb87130ebd820',1,'winstd::variant::operator>=()'],['../classwinstd_1_1handle.html#a20e325dde8a25d1e3a7efb50b431641b',1,'winstd::handle::operator>=()'],['../classwinstd_1_1cert__context.html#a6c9f09455ef40e581accc6499222040c',1,'winstd::cert_context::operator>=()']]] diff --git a/search/typedefs_0.js b/search/typedefs_0.js index 60ad21c1..8c0d6ee3 100644 --- a/search/typedefs_0.js +++ b/search/typedefs_0.js @@ -1,5 +1,5 @@ var searchData= [ ['_5fmybase_0',['_Mybase',['../classwinstd_1_1sanitizing__allocator.html#af60051d2fb18f2c2353ffe9bb6a06087',1,'winstd::sanitizing_allocator']]], - ['_5fmyt_1',['_Myt',['../structwinstd_1_1_local_free__delete.html#a1711e7f5b78649499330c8fe8007b3ea',1,'winstd::LocalFree_delete::_Myt()'],['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#a7c9ed5a011c6d31b3189bdf3d212cd0d',1,'winstd::LocalFree_delete< _Ty[]>::_Myt()'],['../structwinstd_1_1_cred_free__delete.html#ab46fe0807ba356084523c04c8c565b53',1,'winstd::CredFree_delete::_Myt()'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aa735db2daba14212c29b3c5af0e0b0d1',1,'winstd::CredFree_delete< _Ty[]>::_Myt()'],['../structwinstd_1_1_wlan_free_memory__delete.html#a92dd05a3becb4a67ad858472eb615668',1,'winstd::WlanFreeMemory_delete::_Myt()'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a42bc91dcaea20ff32034ba5482027837',1,'winstd::WlanFreeMemory_delete< _Ty[]>::_Myt()']]] + ['_5fmyt_1',['_Myt',['../structwinstd_1_1_local_free__delete.html#a1711e7f5b78649499330c8fe8007b3ea',1,'winstd::LocalFree_delete::_Myt()'],['../structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html#a7c9ed5a011c6d31b3189bdf3d212cd0d',1,'winstd::LocalFree_delete< _Ty[]>::_Myt()'],['../structwinstd_1_1_cred_free__delete.html#ab46fe0807ba356084523c04c8c565b53',1,'winstd::CredFree_delete::_Myt()'],['../structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html#aa735db2daba14212c29b3c5af0e0b0d1',1,'winstd::CredFree_delete< _Ty[]>::_Myt()'],['../structwinstd_1_1_unmap_view_of_file__delete.html#aa38ff5b3a531d1074a7ddd681de563b6',1,'winstd::UnmapViewOfFile_delete::_Myt()'],['../structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html#aabd3d19b0796e7de041f8475f5e4cc6c',1,'winstd::UnmapViewOfFile_delete< _Ty[]>::_Myt()'],['../structwinstd_1_1_wlan_free_memory__delete.html#a92dd05a3becb4a67ad858472eb615668',1,'winstd::WlanFreeMemory_delete::_Myt()'],['../structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html#a42bc91dcaea20ff32034ba5482027837',1,'winstd::WlanFreeMemory_delete< _Ty[]>::_Myt()']]] ]; diff --git a/structwinstd_1_1_co_task_mem_free__delete-members.html b/structwinstd_1_1_co_task_mem_free__delete-members.html index 75e73efd..53dc60cc 100644 --- a/structwinstd_1_1_co_task_mem_free__delete-members.html +++ b/structwinstd_1_1_co_task_mem_free__delete-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/structwinstd_1_1_co_task_mem_free__delete.html b/structwinstd_1_1_co_task_mem_free__delete.html index 41ba6f86..0903a2fb 100644 --- a/structwinstd_1_1_co_task_mem_free__delete.html +++ b/structwinstd_1_1_co_task_mem_free__delete.html @@ -130,7 +130,7 @@ template<class _T > diff --git a/structwinstd_1_1_cred_free__delete-members.html b/structwinstd_1_1_cred_free__delete-members.html index a4129d78..8c14d015 100644 --- a/structwinstd_1_1_cred_free__delete-members.html +++ b/structwinstd_1_1_cred_free__delete-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/structwinstd_1_1_cred_free__delete.html b/structwinstd_1_1_cred_free__delete.html index 070a0744..beb065e1 100644 --- a/structwinstd_1_1_cred_free__delete.html +++ b/structwinstd_1_1_cred_free__delete.html @@ -143,7 +143,7 @@ template<class _Ty > diff --git a/structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4-members.html b/structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4-members.html index 7d4323a7..2b24e89d 100644 --- a/structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4-members.html +++ b/structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html b/structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html index a192b00d..237928fb 100644 --- a/structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html +++ b/structwinstd_1_1_cred_free__delete_3_01___ty_0f_0e_4.html @@ -175,7 +175,7 @@ template<class _Ty > diff --git a/structwinstd_1_1_eap_host_peer_free_eap_error__delete-members.html b/structwinstd_1_1_eap_host_peer_free_eap_error__delete-members.html index 22de74b6..a7553d13 100644 --- a/structwinstd_1_1_eap_host_peer_free_eap_error__delete-members.html +++ b/structwinstd_1_1_eap_host_peer_free_eap_error__delete-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/structwinstd_1_1_eap_host_peer_free_eap_error__delete.html b/structwinstd_1_1_eap_host_peer_free_eap_error__delete.html index 568049bd..607f8475 100644 --- a/structwinstd_1_1_eap_host_peer_free_eap_error__delete.html +++ b/structwinstd_1_1_eap_host_peer_free_eap_error__delete.html @@ -127,7 +127,7 @@ Public Member Functions diff --git a/structwinstd_1_1_eap_host_peer_free_error_memory__delete-members.html b/structwinstd_1_1_eap_host_peer_free_error_memory__delete-members.html index 2e903000..68bbe265 100644 --- a/structwinstd_1_1_eap_host_peer_free_error_memory__delete-members.html +++ b/structwinstd_1_1_eap_host_peer_free_error_memory__delete-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/structwinstd_1_1_eap_host_peer_free_error_memory__delete.html b/structwinstd_1_1_eap_host_peer_free_error_memory__delete.html index 386e60b9..b0170136 100644 --- a/structwinstd_1_1_eap_host_peer_free_error_memory__delete.html +++ b/structwinstd_1_1_eap_host_peer_free_error_memory__delete.html @@ -127,7 +127,7 @@ Public Member Functions diff --git a/structwinstd_1_1_eap_host_peer_free_memory__delete-members.html b/structwinstd_1_1_eap_host_peer_free_memory__delete-members.html index 463e8b53..5679d2d0 100644 --- a/structwinstd_1_1_eap_host_peer_free_memory__delete-members.html +++ b/structwinstd_1_1_eap_host_peer_free_memory__delete-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/structwinstd_1_1_eap_host_peer_free_memory__delete.html b/structwinstd_1_1_eap_host_peer_free_memory__delete.html index 1686a102..838b42d5 100644 --- a/structwinstd_1_1_eap_host_peer_free_memory__delete.html +++ b/structwinstd_1_1_eap_host_peer_free_memory__delete.html @@ -130,7 +130,7 @@ template<class _T > diff --git a/structwinstd_1_1_eap_host_peer_free_runtime_memory__delete-members.html b/structwinstd_1_1_eap_host_peer_free_runtime_memory__delete-members.html index 317362cd..cced8f88 100644 --- a/structwinstd_1_1_eap_host_peer_free_runtime_memory__delete-members.html +++ b/structwinstd_1_1_eap_host_peer_free_runtime_memory__delete-members.html @@ -78,7 +78,7 @@ $(function() { diff --git a/structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html b/structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html index c6968ab4..2cf9039f 100644 --- a/structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html +++ b/structwinstd_1_1_eap_host_peer_free_runtime_memory__delete.html @@ -99,7 +99,7 @@ template<class _T > diff --git a/structwinstd_1_1_local_free__delete-members.html b/structwinstd_1_1_local_free__delete-members.html index 73f31d68..396d5bf2 100644 --- a/structwinstd_1_1_local_free__delete-members.html +++ b/structwinstd_1_1_local_free__delete-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/structwinstd_1_1_local_free__delete.html b/structwinstd_1_1_local_free__delete.html index ef0856ae..40da4cdc 100644 --- a/structwinstd_1_1_local_free__delete.html +++ b/structwinstd_1_1_local_free__delete.html @@ -143,7 +143,7 @@ template<class _Ty > diff --git a/structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4-members.html b/structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4-members.html index bad031c4..d01e9ba5 100644 --- a/structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4-members.html +++ b/structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html b/structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html index d148bf73..2a5bcfa9 100644 --- a/structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html +++ b/structwinstd_1_1_local_free__delete_3_01___ty_0f_0e_4.html @@ -145,7 +145,7 @@ template<class _Other > diff --git a/structwinstd_1_1_unmap_view_of_file__delete-members.html b/structwinstd_1_1_unmap_view_of_file__delete-members.html new file mode 100644 index 00000000..cf69f5b7 --- /dev/null +++ b/structwinstd_1_1_unmap_view_of_file__delete-members.html @@ -0,0 +1,86 @@ + + + + + + + +WinStd: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    WinStd +
    +
    Additional templates and function helpers for Microsoft Windows using Standard C++ classes
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    winstd::UnmapViewOfFile_delete< _Ty > Member List
    +
    +
    + +

    This is the complete list of members for winstd::UnmapViewOfFile_delete< _Ty >, including all inherited members.

    + + + + + +
    _Myt typedefwinstd::UnmapViewOfFile_delete< _Ty >
    operator()(_Ty *_Ptr) constwinstd::UnmapViewOfFile_delete< _Ty >inline
    UnmapViewOfFile_delete()winstd::UnmapViewOfFile_delete< _Ty >inline
    UnmapViewOfFile_delete(const UnmapViewOfFile_delete< _Ty2 > &)winstd::UnmapViewOfFile_delete< _Ty >inline
    + + + + diff --git a/structwinstd_1_1_unmap_view_of_file__delete.html b/structwinstd_1_1_unmap_view_of_file__delete.html new file mode 100644 index 00000000..b0ec3f7c --- /dev/null +++ b/structwinstd_1_1_unmap_view_of_file__delete.html @@ -0,0 +1,118 @@ + + + + + + + +WinStd: winstd::UnmapViewOfFile_delete< _Ty > Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    WinStd +
    +
    Additional templates and function helpers for Microsoft Windows using Standard C++ classes
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    winstd::UnmapViewOfFile_delete< _Ty > Struct Template Reference
    +
    +
    + +

    Deleter for unique_ptr using UnmapViewOfFile. + More...

    + +

    #include <WinStd/Win.h>

    + + + + + +

    +Public Types

    +typedef UnmapViewOfFile_delete< _Ty > _Myt
     This type.
     
    + + + + + + + + + + + +

    +Public Member Functions

    UnmapViewOfFile_delete ()
     Default construct.
     
    +template<class _Ty2 >
     UnmapViewOfFile_delete (const UnmapViewOfFile_delete< _Ty2 > &)
     Construct from another UnmapViewOfFile_delete.
     
    +void operator() (_Ty *_Ptr) const
     Delete a pointer.
     
    +

    Detailed Description

    +
    template<class _Ty>
    +struct winstd::UnmapViewOfFile_delete< _Ty >

    Deleter for unique_ptr using UnmapViewOfFile.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4-members.html b/structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4-members.html new file mode 100644 index 00000000..3be65061 --- /dev/null +++ b/structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4-members.html @@ -0,0 +1,86 @@ + + + + + + + +WinStd: Member List + + + + + + + + + +
    +
    + + + + + + +
    +
    WinStd +
    +
    Additional templates and function helpers for Microsoft Windows using Standard C++ classes
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    winstd::UnmapViewOfFile_delete< _Ty[]> Member List
    +
    + + + + + diff --git a/structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html b/structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html new file mode 100644 index 00000000..92fd41ba --- /dev/null +++ b/structwinstd_1_1_unmap_view_of_file__delete_3_01___ty_0f_0e_4.html @@ -0,0 +1,118 @@ + + + + + + + +WinStd: winstd::UnmapViewOfFile_delete< _Ty[]> Struct Template Reference + + + + + + + + + +
    +
    + + + + + + +
    +
    WinStd +
    +
    Additional templates and function helpers for Microsoft Windows using Standard C++ classes
    +
    +
    + + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    winstd::UnmapViewOfFile_delete< _Ty[]> Struct Template Reference
    +
    +
    + +

    Deleter for unique_ptr to array of unknown size using UnmapViewOfFile. + More...

    + +

    #include <WinStd/Win.h>

    + + + + + +

    +Public Types

    +typedef UnmapViewOfFile_delete< _Ty > _Myt
     This type.
     
    + + + + + + + + + + + +

    +Public Member Functions

    UnmapViewOfFile_delete ()
     Default construct.
     
    +void operator() (_Ty *_Ptr) const
     Delete a pointer.
     
    +template<class _Other >
    void operator() (_Other *) const
     Delete a pointer of another type.
     
    +

    Detailed Description

    +
    template<class _Ty>
    +struct winstd::UnmapViewOfFile_delete< _Ty[]>

    Deleter for unique_ptr to array of unknown size using UnmapViewOfFile.

    +

    The documentation for this struct was generated from the following file: +
    + + + + diff --git a/structwinstd_1_1_wlan_free_memory__delete-members.html b/structwinstd_1_1_wlan_free_memory__delete-members.html index def864df..e0a35af5 100644 --- a/structwinstd_1_1_wlan_free_memory__delete-members.html +++ b/structwinstd_1_1_wlan_free_memory__delete-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/structwinstd_1_1_wlan_free_memory__delete.html b/structwinstd_1_1_wlan_free_memory__delete.html index 8122602c..1ec82bce 100644 --- a/structwinstd_1_1_wlan_free_memory__delete.html +++ b/structwinstd_1_1_wlan_free_memory__delete.html @@ -112,7 +112,7 @@ struct winstd::WlanFreeMemory_delete< _Ty >

    Deleter for unique_pt

    diff --git a/structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4-members.html b/structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4-members.html index 0f92471c..a0a0a098 100644 --- a/structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4-members.html +++ b/structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4-members.html @@ -80,7 +80,7 @@ $(function() { diff --git a/structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html b/structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html index 40f6e8b0..543ffdb9 100644 --- a/structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html +++ b/structwinstd_1_1_wlan_free_memory__delete_3_01___ty_0f_0e_4.html @@ -112,7 +112,7 @@ struct winstd::WlanFreeMemory_delete< _Ty[]>

    Deleter for unique_p

    diff --git a/structwinstd_1_1heap__allocator_1_1rebind-members.html b/structwinstd_1_1heap__allocator_1_1rebind-members.html index 73659b6d..30fcb3db 100644 --- a/structwinstd_1_1heap__allocator_1_1rebind-members.html +++ b/structwinstd_1_1heap__allocator_1_1rebind-members.html @@ -77,7 +77,7 @@ $(function() { diff --git a/structwinstd_1_1heap__allocator_1_1rebind.html b/structwinstd_1_1heap__allocator_1_1rebind.html index 778bcdd4..c0ada9f2 100644 --- a/structwinstd_1_1heap__allocator_1_1rebind.html +++ b/structwinstd_1_1heap__allocator_1_1rebind.html @@ -96,7 +96,7 @@ struct winstd::heap_allocator< _Ty >::rebind< _Other >

    A st

    diff --git a/structwinstd_1_1sanitizing__allocator_1_1rebind-members.html b/structwinstd_1_1sanitizing__allocator_1_1rebind-members.html index 0035af56..9f58de6f 100644 --- a/structwinstd_1_1sanitizing__allocator_1_1rebind-members.html +++ b/structwinstd_1_1sanitizing__allocator_1_1rebind-members.html @@ -77,7 +77,7 @@ $(function() { diff --git a/structwinstd_1_1sanitizing__allocator_1_1rebind.html b/structwinstd_1_1sanitizing__allocator_1_1rebind.html index 5463c225..9132bd97 100644 --- a/structwinstd_1_1sanitizing__allocator_1_1rebind.html +++ b/structwinstd_1_1sanitizing__allocator_1_1rebind.html @@ -96,7 +96,7 @@ struct winstd::sanitizing_allocator< _Ty >::rebind< _Other >