diff --git a/_c_o_m_8h_source.html b/_c_o_m_8h_source.html
index 99e91cc8..65d91282 100644
--- a/_c_o_m_8h_source.html
+++ b/_c_o_m_8h_source.html
@@ -124,794 +124,883 @@ $(function() {
- 92 template <
class _Other>
-
-
-
- 96 other->QueryInterface(__uuidof(T), (
void**)&
m_h);
-
-
- 104 template <
class _Other>
-
-
- 107 other->QueryInterface(__uuidof(T), (
void**)&
m_h);
-
-
-
-
-
-
-
-
- 124 template <
class _Other>
-
-
-
-
- 129 return m_h->QueryInterface(__uuidof(_Other), (
void**)h);
-
-
- 137 template <
class _Other>
-
-
-
-
- 142 HRESULT hr =
m_h->QueryInterface(__uuidof(_Other), (
void**)&_h);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 186 bstr(_In_ LPCOLESTR src)
noexcept
-
- 188 m_h = SysAllocString(src);
-
-
- 194 bstr(_In_ LPCOLESTR src, _In_ UINT len)
noexcept
-
- 196 m_h = SysAllocStringLen(src, len);
-
-
- 202 template<
class _Traits,
class _Ax>
- 203 bstr(_In_
const std::basic_string<wchar_t, _Traits, _Ax> &src)
noexcept
-
- 205 m_h = SysAllocStringLen(src.c_str(), (UINT)src.length());
-
-
-
-
-
-
-
-
-
-
- 226 return SysStringLen(
m_h);
-
-
-
-
-
-
-
-
-
+
+
+ 94 _In_opt_ LPUNKNOWN pUnkOuter,
+ 95 _In_ DWORD dwClsContext)
+
+
+
+
+
+
+ 107 template <
class _Other>
+
+
+
+ 111 HRESULT hr = other->QueryInterface(__uuidof(T), (
void**)&
m_h);
+
+
+
+
+ 121 template <
class _Other>
+
+
+ 124 HRESULT hr = other->QueryInterface(__uuidof(T), (
void**)&
m_h);
+
+
+
+
+
+
+
+
+
+
+ 143 template <
class _Other>
+
+
+
+
+ 148 return m_h->QueryInterface(__uuidof(_Other), (
void**)h);
+
+
+ 156 template <
class _Other>
+
+
+
+
+ 161 HRESULT hr =
m_h->QueryInterface(__uuidof(_Other), (
void**)&_h);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 207 m_h = SysAllocString(src);
+
+ 209 throw std::bad_alloc();
+
+
+ 215 bstr(_In_ LPCOLESTR src, _In_ UINT len)
+
+ 217 m_h = SysAllocStringLen(src, len);
+
+ 219 throw std::bad_alloc();
+
+
+ 225 template<
class _Traits,
class _Ax>
+ 226 bstr(_In_
const std::basic_string<wchar_t, _Traits, _Ax> &src)
+
+ 228 m_h = SysAllocStringLen(src.c_str(), (UINT)src.length());
+
+ 230 throw std::bad_alloc();
+
+
+
+
+
+
+
+
+
- 251 return SysAllocStringLen(h, SysStringLen(h));
+ 251 return SysStringLen(
m_h);
-
-
- 258 #pragma warning(push)
- 259 #pragma warning(disable: 26432)
-
-
-
-
-
-
-
-
-
-
-
- 277 const HRESULT hr = VariantCopy(
this, &varSrc);
-
-
+
+
+
+
+
+
+
+
+
+ 276 handle_type h_new = SysAllocStringLen(h, SysStringLen(h));
+
+
+ 279 throw std::bad_alloc();
-
- 285 #pragma warning(suppress: 26495)
-
-
- 288 memcpy(
this, &varSrc,
sizeof(VARIANT));
- 289 varSrc.vt = VT_EMPTY;
-
-
-
-
-
- 298 boolVal = bSrc ? VARIANT_TRUE : VARIANT_FALSE;
-
-
-
-
-
-
+
+
+ 286 #pragma warning(push)
+ 287 #pragma warning(disable: 26432)
+
+
+
+
+
+
+
+
+
+
+
+ 305 const HRESULT hr = VariantCopy(
this, &varSrc);
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 340 variant(_In_
int nSrc, _In_ VARTYPE vtSrc = VT_I4)
noexcept
-
- 342 assert(vtSrc == VT_I4 || vtSrc == VT_INT);
-
-
+ 313 #pragma warning(suppress: 26495)
+
+
+ 316 memcpy(
this, &varSrc,
sizeof(VARIANT));
+ 317 varSrc.vt = VT_EMPTY;
+
+
+
+
+
+ 326 boolVal = bSrc ? VARIANT_TRUE : VARIANT_FALSE;
+
+
+
+
+
+
+
+
+
+
+
+
- 350 variant(_In_
unsigned int nSrc, _In_ VARTYPE vtSrc = VT_UI4)
noexcept
+
- 352 assert(vtSrc == VT_UI4 || vtSrc == VT_UINT);
-
-
-
-
- 360 variant(_In_
long nSrc, _In_ VARTYPE vtSrc = VT_I4)
noexcept
-
- 362 assert(vtSrc == VT_I4 || vtSrc == VT_ERROR);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ 368 variant(_In_
int nSrc, _In_ VARTYPE vtSrc = VT_I4)
noexcept
+
+ 370 assert(vtSrc == VT_I4 || vtSrc == VT_INT);
+
+
+
+
+ 378 variant(_In_
unsigned int nSrc, _In_ VARTYPE vtSrc = VT_UI4)
noexcept
+
+ 380 assert(vtSrc == VT_UI4 || vtSrc == VT_UINT);
+
+
- 388 variant(_In_
double dblSrc, _In_ VARTYPE vtSrc = VT_R8)
noexcept
+ 388 variant(_In_
long nSrc, _In_ VARTYPE vtSrc = VT_I4)
noexcept
- 390 assert(vtSrc == VT_R8 || vtSrc == VT_DATE);
+ 390 assert(vtSrc == VT_I4 || vtSrc == VT_ERROR);
-
+
-
+
-
-
+
+
- 407 variant(_In_
unsigned long long nSrc)
noexcept
+
-
-
+
+
-
+ 416 variant(_In_
double dblSrc, _In_ VARTYPE vtSrc = VT_R8)
noexcept
-
-
-
+ 418 assert(vtSrc == VT_R8 || vtSrc == VT_DATE);
+
+
-
+
-
-
+
+
-
+ 435 variant(_In_
unsigned long long nSrc)
noexcept
-
-
+
+
-
+
-
-
-
- 449 if (pdispVal != NULL)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 470 assert(pSrc != NULL);
-
-
- 473 const HRESULT hr = SafeArrayCopy(
const_cast<LPSAFEARRAY
>(pSrc), &pCopy);
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- 477 SafeArrayGetVartype(
const_cast<LPSAFEARRAY
>(pSrc), &vt);
-
-
-
-
-
-
-
-
-
-
-
- 495 if (
this != &varSrc) {
- 496 const HRESULT hr = VariantCopy(
this, &varSrc);
-
-
-
-
-
-
-
-
- 508 if (
this != &varSrc) {
-
- 510 memcpy(
this, &varSrc,
sizeof(VARIANT));
- 511 varSrc.vt = VT_EMPTY;
-
-
-
-
-
-
-
-
-
-
- 525 boolVal = bSrc ? VARIANT_TRUE : VARIANT_FALSE;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 707 bstrVal = SysAllocString(lpszSrc);
-
-
-
-
-
-
-
-
- 719 if (pdispVal != NULL)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 742 if (vt != (VT_UI1|VT_BYREF)) {
-
- 744 vt = VT_UI1|VT_BYREF;
-
-
-
-
-
-
-
- 755 if (vt != (VT_I2|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
- 768 if (vt != (VT_UI2|VT_BYREF)) {
-
- 770 vt = VT_UI2|VT_BYREF;
-
-
-
-
-
-
-
- 781 if (vt != (VT_I4|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
- 794 if (vt != (VT_UI4|VT_BYREF)) {
-
- 796 vt = VT_UI4|VT_BYREF;
-
-
-
-
-
-
-
- 807 if (vt != (VT_I4|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
- 820 if (vt != (VT_UI4|VT_BYREF)) {
-
- 822 vt = VT_UI4|VT_BYREF;
-
-
-
-
-
-
-
- 833 if (vt != (VT_I8|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
- 846 if (vt != (VT_UI8|VT_BYREF)) {
-
- 848 vt = VT_UI8|VT_BYREF;
-
-
-
-
-
-
-
- 859 if (vt != (VT_R4|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
- 872 if (vt != (VT_R8|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
- 885 assert(pSrc != NULL);
-
-
-
- 889 const HRESULT hr = SafeArrayCopy(
const_cast<LPSAFEARRAY
>(pSrc), &pCopy);
-
- 891 SafeArrayGetVartype(
const_cast<LPSAFEARRAY
>(pSrc), &vt);
-
-
-
-
-
-
-
-
-
-
-
- 911 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return true;
- 912 if (vt != varSrc.vt)
return false;
- 913 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0) ==
static_cast<HRESULT
>(VARCMP_EQ);
-
+ 477 if (pdispVal != NULL)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 498 assert(pSrc != NULL);
+
+
+ 501 const HRESULT hr = SafeArrayCopy(
const_cast<LPSAFEARRAY
>(pSrc), &pCopy);
+
+
+
+ 505 SafeArrayGetVartype(
const_cast<LPSAFEARRAY
>(pSrc), &vt);
+
+
+
+
+
+
+
+
+
+
+
+ 523 if (
this != &varSrc) {
+ 524 const HRESULT hr = VariantCopy(
this, &varSrc);
+
+
+
+
+
+
+
+
+ 536 if (
this != &varSrc) {
+
+ 538 memcpy(
this, &varSrc,
sizeof(VARIANT));
+ 539 varSrc.vt = VT_EMPTY;
+
+
+
+
+
+
+
+
+
+
+ 553 boolVal = bSrc ? VARIANT_TRUE : VARIANT_FALSE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 735 bstrVal = SysAllocString(lpszSrc);
+
+
+
+
+
+
+
+
+ 747 if (pdispVal != NULL)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 770 if (vt != (VT_UI1|VT_BYREF)) {
+
+ 772 vt = VT_UI1|VT_BYREF;
+
+
+
+
+
+
+
+ 783 if (vt != (VT_I2|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+ 796 if (vt != (VT_UI2|VT_BYREF)) {
+
+ 798 vt = VT_UI2|VT_BYREF;
+
+
+
+
+
+
+
+ 809 if (vt != (VT_I4|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+ 822 if (vt != (VT_UI4|VT_BYREF)) {
+
+ 824 vt = VT_UI4|VT_BYREF;
+
+
+
+
+
+
+
+ 835 if (vt != (VT_I4|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+ 848 if (vt != (VT_UI4|VT_BYREF)) {
+
+ 850 vt = VT_UI4|VT_BYREF;
+
+
+
+
+
+
+
+ 861 if (vt != (VT_I8|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+ 874 if (vt != (VT_UI8|VT_BYREF)) {
+
+ 876 vt = VT_UI8|VT_BYREF;
+
+
+
+
+
+
+
+ 887 if (vt != (VT_R4|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+ 900 if (vt != (VT_R8|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+ 913 assert(pSrc != NULL);
+
-
-
-
-
-
- 937 bool operator<(_In_
const VARIANT& varSrc)
const noexcept
-
- 939 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return false;
- 940 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0)==
static_cast<HRESULT
>(VARCMP_LT);
+
+ 917 const HRESULT hr = SafeArrayCopy(
const_cast<LPSAFEARRAY
>(pSrc), &pCopy);
+
+ 919 SafeArrayGetVartype(
const_cast<LPSAFEARRAY
>(pSrc), &vt);
+
+
+
+
+
+
+
+
+
+
+ 938 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return true;
+ 939 if (vt != varSrc.vt)
return false;
+ 940 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0) ==
static_cast<HRESULT
>(VARCMP_EQ);
- 951 bool operator>(_In_
const VARIANT& varSrc)
const noexcept
+
- 953 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return false;
- 954 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0)==
static_cast<HRESULT
>(VARCMP_GT);
-
-
-
-
-
+
+
+
+ 964 bool operator<(_In_
const VARIANT& varSrc)
const noexcept
+
+ 966 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return false;
+ 967 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0)==
static_cast<HRESULT
>(VARCMP_LT);
-
+ 978 bool operator>(_In_
const VARIANT& varSrc)
const noexcept
-
-
-
- 988 HRESULT
change_type(_In_ VARTYPE _vt, _In_opt_ USHORT wFlags = 0) noexcept
-
- 990 return VariantChangeType(
this,
this, wFlags, _vt);
-
-
-
- 995 HRESULT compare(_In_
const VARIANT &varLeft, _In_
const VARIANT &varRight, _In_ LCID lcid, _In_ ULONG dwFlags)
const noexcept
-
-
- 998 case VT_I1:
return varLeft.cVal == varRight.cVal ? VARCMP_EQ : varLeft.cVal > varRight.cVal ? VARCMP_GT : VARCMP_LT;
- 999 case VT_UI2:
return varLeft.uiVal == varRight.uiVal ? VARCMP_EQ : varLeft.uiVal > varRight.uiVal ? VARCMP_GT : VARCMP_LT;
- 1000 case VT_UI4:
return varLeft.uintVal == varRight.uintVal ? VARCMP_EQ : varLeft.uintVal > varRight.uintVal ? VARCMP_GT : VARCMP_LT;
- 1001 case VT_UI8:
return varLeft.ullVal == varRight.ullVal ? VARCMP_EQ : varLeft.ullVal > varRight.ullVal ? VARCMP_GT : VARCMP_LT;
- 1002 default:
return VarCmp(
const_cast<LPVARIANT
>(&varLeft),
const_cast<LPVARIANT
>(&varRight), lcid, dwFlags);
-
-
-
- 1007 #pragma warning(pop)
-
-
-
-
-
-
-
-
-
- 1025 m_result = CoInitialize(pvReserved);
-
-
-
-
- 1035 m_result = CoInitializeEx(pvReserved, dwCoInit);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ 980 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return false;
+ 981 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0)==
static_cast<HRESULT
>(VARCMP_GT);
+
+
+
+
+
+
+
+
+
+
+
+
+ 1015 HRESULT
change_type(_In_ VARTYPE _vt, _In_opt_ USHORT wFlags = 0) noexcept
+
+ 1017 return VariantChangeType(
this,
this, wFlags, _vt);
+
+
+
+ 1022 HRESULT compare(_In_
const VARIANT &varLeft, _In_
const VARIANT &varRight, _In_ LCID lcid, _In_ ULONG dwFlags)
const noexcept
+
+
+ 1025 case VT_I1:
return varLeft.cVal == varRight.cVal ? VARCMP_EQ : varLeft.cVal > varRight.cVal ? VARCMP_GT : VARCMP_LT;
+ 1026 case VT_UI2:
return varLeft.uiVal == varRight.uiVal ? VARCMP_EQ : varLeft.uiVal > varRight.uiVal ? VARCMP_GT : VARCMP_LT;
+ 1027 case VT_UI4:
return varLeft.uintVal == varRight.uintVal ? VARCMP_EQ : varLeft.uintVal > varRight.uintVal ? VARCMP_GT : VARCMP_LT;
+ 1028 case VT_UI8:
return varLeft.ullVal == varRight.ullVal ? VARCMP_EQ : varLeft.ullVal > varRight.ullVal ? VARCMP_GT : VARCMP_LT;
+ 1029 default:
return VarCmp(
const_cast<LPVARIANT
>(&varLeft),
const_cast<LPVARIANT
>(&varRight), lcid, dwFlags);
+
+
+
+ 1034 #pragma warning(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1063 SafeArrayDestroy(
m_h);
+
-
-
-
-
-
- 1078 HRESULT hr =
CoCreateInstance(rclsid, pUnkOuter, dwClsContext, __uuidof(T), (LPVOID*)&ppv);
-
-
-
-
-
-
-
-
-
- 1093 HRESULT hr =
CoGetObject(pszName, pBindOptions, riid, (LPVOID*)&ppv);
-
-
-
-
-
-BSTR string wrapper.
Definition: COM.h:179
-bstr(LPCOLESTR src) noexcept
Constructs BSTR from OLE string.
Definition: COM.h:186
-virtual ~bstr()
Destroys the string.
Definition: COM.h:213
-handle_type duplicate_internal(handle_type h) const noexcept override
Duplicates the string.
Definition: COM.h:249
-bstr(const std::basic_string< wchar_t, _Traits, _Ax > &src) noexcept
Constructs BSTR from std::basic_string.
Definition: COM.h:203
-bstr(LPCOLESTR src, UINT len) noexcept
Constructs BSTR from OLE string with length.
Definition: COM.h:194
-void free_internal() noexcept override
Destroys the string.
Definition: COM.h:235
-UINT length() const noexcept
Returns the length of the string.
Definition: COM.h:224
-Context scope automatic COM (un)initialization.
Definition: COM.h:1013
-com_initializer(LPVOID pvReserved, DWORD dwCoInit) noexcept
Initializes the COM library for use by the calling thread, sets the thread's concurrency model,...
Definition: COM.h:1033
-com_initializer(LPVOID pvReserved) noexcept
Initializes the COM library on the current thread and identifies the concurrency model as single-thre...
Definition: COM.h:1023
-HRESULT status() const noexcept
Return result of CoInitialize() call.
Definition: COM.h:1054
-virtual ~com_initializer()
Uninitializes COM.
Definition: COM.h:1043
-HRESULT m_result
Result of CoInitialize call.
Definition: COM.h:1060
+
+
+
+ 1078 HRESULT hr = SafeArrayCopy(h, &h_new);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1102 HRESULT hr = SafeArrayAccessData(psa, (
void HUGEP**)&
m_data);
+
+
+
+
+
+
+ 1114 SafeArrayUnaccessData(
m_sa);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1146 m_result = CoInitialize(pvReserved);
+
+
+
+
+ 1156 m_result = CoInitializeEx(pvReserved, dwCoInit);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1199 HRESULT hr =
CoCreateInstance(rclsid, pUnkOuter, dwClsContext, __uuidof(T), (LPVOID*)&ppv);
+
+
+
+
+
+
+
+
+
+ 1214 HRESULT hr =
CoGetObject(pszName, pBindOptions, riid, (LPVOID*)&ppv);
+
+
+
+
+
+BSTR string wrapper.
Definition: COM.h:198
+bstr(LPCOLESTR src)
Constructs BSTR from OLE string.
Definition: COM.h:205
+bstr(const std::basic_string< wchar_t, _Traits, _Ax > &src)
Constructs BSTR from std::basic_string.
Definition: COM.h:226
+handle_type duplicate_internal(handle_type h) const override
Duplicates the string.
Definition: COM.h:274
+virtual ~bstr()
Destroys the string.
Definition: COM.h:238
+void free_internal() noexcept override
Destroys the string.
Definition: COM.h:260
+UINT length() const noexcept
Returns the length of the string.
Definition: COM.h:249
+bstr(LPCOLESTR src, UINT len)
Constructs BSTR from OLE string with length.
Definition: COM.h:215
+Context scope automatic COM (un)initialization.
Definition: COM.h:1134
+com_initializer(LPVOID pvReserved, DWORD dwCoInit) noexcept
Initializes the COM library for use by the calling thread, sets the thread's concurrency model,...
Definition: COM.h:1154
+com_initializer(LPVOID pvReserved) noexcept
Initializes the COM library on the current thread and identifies the concurrency model as single-thre...
Definition: COM.h:1144
+HRESULT status() const noexcept
Return result of CoInitialize() call.
Definition: COM.h:1175
+virtual ~com_initializer()
Uninitializes COM.
Definition: COM.h:1164
+HRESULT m_result
Result of CoInitialize call.
Definition: COM.h:1181
COM object wrapper template.
Definition: COM.h:83
-void free_internal() noexcept override
Releases the object by decrementing reference counter.
Definition: COM.h:154
-handle_type duplicate_internal(handle_type h) const noexcept override
Duplicates the object by incrementing the reference counter.
Definition: COM.h:168
-HRESULT query_interface(_Other **h) const
Queries the object for another interface.
Definition: COM.h:125
-HRESULT query_interface(com_obj< _Other > &h) const
Queries the object for another interface.
Definition: COM.h:138
-virtual ~com_obj()
Releases object.
Definition: COM.h:113
-com_obj(_Other *other)
Queries the object for another interface and creates new class with it.
Definition: COM.h:93
-com_obj(com_obj< _Other > &other)
Queries the object for another interface and creates new class with it.
Definition: COM.h:105
+void free_internal() noexcept override
Releases the object by decrementing reference counter.
Definition: COM.h:173
+com_obj(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext)
Creates a new instance of a class.
Definition: COM.h:92
+HRESULT query_interface(_Other **h) const
Queries the object for another interface.
Definition: COM.h:144
+handle_type duplicate_internal(handle_type h) const override
Duplicates the object by incrementing the reference counter.
Definition: COM.h:187
+HRESULT query_interface(com_obj< _Other > &h) const
Queries the object for another interface.
Definition: COM.h:157
+virtual ~com_obj()
Releases object.
Definition: COM.h:132
+com_obj(_Other *other)
Queries the object for another interface and creates new class with it.
Definition: COM.h:108
+com_obj(com_obj< _Other > &other)
Queries the object for another interface and creates new class with it.
Definition: COM.h:122
COM runtime error.
Definition: COM.h:26
com_runtime_error(error_type num, const std::string &msg)
Constructs an exception.
Definition: COM.h:34
com_runtime_error(error_type num, const char *msg=nullptr)
Constructs an exception.
Definition: COM.h:44
-Base abstract template class to support object handle keeping for objects that support trivial handle...
Definition: Common.h:834
-T handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:574
-handle_type m_h
Object handle.
Definition: Common.h:823
-Numerical runtime error.
Definition: Common.h:968
-HRESULT error_type
Error number type.
Definition: Common.h:970
-VARIANT struct wrapper.
Definition: COM.h:261
-bool operator<=(const VARIANT &varSrc) const noexcept
Is variant less than or equal to?
Definition: COM.h:965
-variant(bool bSrc) noexcept
Constructs VARIANT from bool.
Definition: COM.h:295
-variant & operator=(unsigned int nSrc) noexcept
Copy from unsigned int value.
Definition: COM.h:597
-variant & operator=(unsigned long nSrc) noexcept
Copy from unsigned long value.
Definition: COM.h:623
-variant(float fltSrc) noexcept
Constructs VARIANT from float.
Definition: COM.h:379
-variant(VARIANT &&varSrc) noexcept
Moves VARIANT from another.
Definition: COM.h:286
-variant & operator=(float fltSrc) noexcept
Copy from float value.
Definition: COM.h:663
-variant & operator=(float *pfSrc) noexcept
Copy from float reference.
Definition: COM.h:857
-variant(IDispatch *pSrc)
Constructs VARIANT from IDispatch.
Definition: COM.h:444
-variant(int nSrc, VARTYPE vtSrc=VT_I4) noexcept
Constructs VARIANT from integer.
Definition: COM.h:340
-variant(const SAFEARRAY *pSrc)
Constructs VARIANT from SAFEARRAY.
Definition: COM.h:468
-variant & operator=(double *pfSrc) noexcept
Copy from double reference.
Definition: COM.h:870
-variant & operator=(int *pnSrc) noexcept
Copy from int reference.
Definition: COM.h:779
-bool operator>(const VARIANT &varSrc) const noexcept
Is variant greater than?
Definition: COM.h:951
-variant & operator=(bool bSrc) noexcept
Copy from bool value.
Definition: COM.h:519
-variant & operator=(long nSrc) noexcept
Copy from long value.
Definition: COM.h:610
-variant & operator=(const SAFEARRAY *pSrc) noexcept
Copy from SAFEARRAY.
Definition: COM.h:883
-HRESULT change_type(VARTYPE _vt, USHORT wFlags=0) noexcept
Converts a variant from one type to another.
Definition: COM.h:988
-variant & operator=(IUnknown *pSrc)
Copy from IUnknown.
Definition: COM.h:727
-variant & operator=(short nSrc) noexcept
Copy from short value.
Definition: COM.h:558
-variant & operator=(unsigned char *pbSrc) noexcept
Copy from unsigned char reference.
Definition: COM.h:740
-variant & operator=(unsigned short nSrc) noexcept
Copy from unsigned short value.
Definition: COM.h:571
-variant & operator=(unsigned char nSrc) noexcept
Copy from unsigned char value.
Definition: COM.h:545
-variant & operator=(char cSrc) noexcept
Copy from char value.
Definition: COM.h:532
-variant(LPCOLESTR lpszSrc) noexcept
Constructs VARIANT from OLE string.
Definition: COM.h:426
-virtual ~variant()
Destroys VARIANT.
Definition: COM.h:485
-variant(const VARIANT &varSrc)
Constructs VARIANT from another.
Definition: COM.h:274
-variant(unsigned char nSrc) noexcept
Constructs VARIANT from byte.
Definition: COM.h:313
-variant & operator=(double dblSrc) noexcept
Copy from double value.
Definition: COM.h:676
-bool operator!=(const VARIANT &varSrc) const noexcept
Is variant not equal to?
Definition: COM.h:924
-variant & operator=(int nSrc) noexcept
Copy from int value.
Definition: COM.h:584
-variant(unsigned long nSrc) noexcept
Constructs VARIANT from unsigned long.
Definition: COM.h:370
-bool operator==(const VARIANT &varSrc) const noexcept
Is variant equal to?
Definition: COM.h:909
-variant(IUnknown *pSrc)
Constructs VARIANT from IUnknown.
Definition: COM.h:456
-variant(unsigned int nSrc, VARTYPE vtSrc=VT_UI4) noexcept
Constructs VARIANT from unsigned integer.
Definition: COM.h:350
-variant & operator=(CY cySrc) noexcept
Copy from CY value.
Definition: COM.h:689
-variant & operator=(LPCOLESTR lpszSrc) noexcept
Copy from OLE string value.
Definition: COM.h:703
-variant(long long nSrc) noexcept
Constructs VARIANT from 64-bit integer.
Definition: COM.h:398
-variant & operator=(unsigned int *pnSrc) noexcept
Copy from unsigned int reference.
Definition: COM.h:792
-variant(long nSrc, VARTYPE vtSrc=VT_I4) noexcept
Constructs VARIANT from long.
Definition: COM.h:360
-variant & operator=(long *pnSrc) noexcept
Copy from long reference.
Definition: COM.h:805
-variant(unsigned short nSrc) noexcept
Constructs VARIANT from unsigned short.
Definition: COM.h:331
-bool operator>=(const VARIANT &varSrc) const noexcept
Is variant greater than or equal to?
Definition: COM.h:978
-variant & operator=(short *pnSrc) noexcept
Copy from short reference.
Definition: COM.h:753
-variant() noexcept
Constructs blank VARIANT.
Definition: COM.h:266
-bool operator<(const VARIANT &varSrc) const noexcept
Is variant less than?
Definition: COM.h:937
-variant(unsigned long long nSrc) noexcept
Constructs VARIANT from unsigned integer.
Definition: COM.h:407
-variant(char cSrc) noexcept
Constructs VARIANT from character.
Definition: COM.h:304
-variant & operator=(unsigned short *pnSrc) noexcept
Copy from unsigned short reference.
Definition: COM.h:766
-variant & operator=(long long *pnSrc) noexcept
Copy from long long reference.
Definition: COM.h:831
-variant(BSTR bstr) noexcept
Constructs VARIANT from BSTR.
Definition: COM.h:435
-variant & operator=(unsigned long long *pnSrc) noexcept
Copy from unsigned long long reference.
Definition: COM.h:844
-variant(double dblSrc, VARTYPE vtSrc=VT_R8) noexcept
Constructs VARIANT from double or variant date.
Definition: COM.h:388
-variant(short nSrc) noexcept
Constructs VARIANT from short.
Definition: COM.h:322
-variant(CY cySrc) noexcept
Constructs VARIANT from CY (64-bit integer)
Definition: COM.h:416
-variant & operator=(unsigned long long nSrc) noexcept
Copy from unsigned long long value.
Definition: COM.h:649
-variant & operator=(VARIANT &&varSrc) noexcept
Moves from another VARIANT.
Definition: COM.h:506
-variant & operator=(long long nSrc) noexcept
Copy from long long value.
Definition: COM.h:636
-variant & operator=(IDispatch *pSrc)
Copy from IDispatch.
Definition: COM.h:714
-variant & operator=(unsigned long *pnSrc) noexcept
Copy from unsigned long reference.
Definition: COM.h:818
-variant & operator=(const VARIANT &varSrc)
Copy from another VARIANT.
Definition: COM.h:493
-static _Check_return_ HRESULT CoGetObject(LPCWSTR pszName, BIND_OPTS *pBindOptions, REFIID riid, winstd::com_obj< T > &v)
Converts a display name into a moniker that identifies the object named, and then binds to the object...
Definition: COM.h:1090
-static _Check_return_ HRESULT CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, winstd::com_obj< T > &v)
Creates and default-initializes a single object of the class associated with a specified CLSID.
Definition: COM.h:1075
+Base abstract template class to support object handle keeping for objects that support trivial handle...
Definition: Common.h:900
+T handle_type
Datatype of the object handle this template class handles.
Definition: Common.h:640
+handle_type m_h
Object handle.
Definition: Common.h:889
+Numerical runtime error.
Definition: Common.h:1029
+HRESULT error_type
Error number type.
Definition: Common.h:1031
+Context scope automatic SAFEARRAY (un)access.
Definition: COM.h:1090
+safearray_accessor(SAFEARRAY *psa)
Increments the lock count of an array, and retrieves a pointer to the array data.
Definition: COM.h:1100
+T HUGEP * data() const noexcept
Return SAFEARRAY data pointer.
Definition: COM.h:1120
+SAFEARRAY * m_sa
SAFEARRAY.
Definition: COM.h:1126
+virtual ~safearray_accessor()
Decrements the lock count of an array.
Definition: COM.h:1112
+T HUGEP * m_data
SAFEARRAY data.
Definition: COM.h:1127
+SAFEARRAY string wrapper.
Definition: COM.h:1040
+virtual ~safearray()
Destroys the array.
Definition: COM.h:1049
+handle_type duplicate_internal(handle_type h) const override
Duplicates the array.
Definition: COM.h:1075
+void free_internal() noexcept override
Destroys the array.
Definition: COM.h:1061
+VARIANT struct wrapper.
Definition: COM.h:289
+bool operator<=(const VARIANT &varSrc) const noexcept
Is variant less than or equal to?
Definition: COM.h:992
+variant(bool bSrc) noexcept
Constructs VARIANT from bool.
Definition: COM.h:323
+variant & operator=(unsigned int nSrc) noexcept
Copy from unsigned int value.
Definition: COM.h:625
+variant & operator=(unsigned long nSrc) noexcept
Copy from unsigned long value.
Definition: COM.h:651
+variant(float fltSrc) noexcept
Constructs VARIANT from float.
Definition: COM.h:407
+variant(VARIANT &&varSrc) noexcept
Moves VARIANT from another.
Definition: COM.h:314
+variant & operator=(float fltSrc) noexcept
Copy from float value.
Definition: COM.h:691
+variant & operator=(float *pfSrc) noexcept
Copy from float reference.
Definition: COM.h:885
+variant(IDispatch *pSrc)
Constructs VARIANT from IDispatch.
Definition: COM.h:472
+variant(int nSrc, VARTYPE vtSrc=VT_I4) noexcept
Constructs VARIANT from integer.
Definition: COM.h:368
+variant(const SAFEARRAY *pSrc)
Constructs VARIANT from SAFEARRAY.
Definition: COM.h:496
+variant & operator=(double *pfSrc) noexcept
Copy from double reference.
Definition: COM.h:898
+variant & operator=(const SAFEARRAY *pSrc)
Copy from SAFEARRAY.
Definition: COM.h:911
+variant & operator=(int *pnSrc) noexcept
Copy from int reference.
Definition: COM.h:807
+bool operator>(const VARIANT &varSrc) const noexcept
Is variant greater than?
Definition: COM.h:978
+variant & operator=(bool bSrc) noexcept
Copy from bool value.
Definition: COM.h:547
+variant & operator=(long nSrc) noexcept
Copy from long value.
Definition: COM.h:638
+HRESULT change_type(VARTYPE _vt, USHORT wFlags=0) noexcept
Converts a variant from one type to another.
Definition: COM.h:1015
+variant & operator=(IUnknown *pSrc)
Copy from IUnknown.
Definition: COM.h:755
+variant & operator=(short nSrc) noexcept
Copy from short value.
Definition: COM.h:586
+variant & operator=(unsigned char *pbSrc) noexcept
Copy from unsigned char reference.
Definition: COM.h:768
+variant & operator=(unsigned short nSrc) noexcept
Copy from unsigned short value.
Definition: COM.h:599
+variant & operator=(unsigned char nSrc) noexcept
Copy from unsigned char value.
Definition: COM.h:573
+variant & operator=(char cSrc) noexcept
Copy from char value.
Definition: COM.h:560
+variant(LPCOLESTR lpszSrc) noexcept
Constructs VARIANT from OLE string.
Definition: COM.h:454
+virtual ~variant()
Destroys VARIANT.
Definition: COM.h:513
+variant(const VARIANT &varSrc)
Constructs VARIANT from another.
Definition: COM.h:302
+variant(unsigned char nSrc) noexcept
Constructs VARIANT from byte.
Definition: COM.h:341
+variant & operator=(double dblSrc) noexcept
Copy from double value.
Definition: COM.h:704
+bool operator!=(const VARIANT &varSrc) const noexcept
Is variant not equal to?
Definition: COM.h:951
+variant & operator=(int nSrc) noexcept
Copy from int value.
Definition: COM.h:612
+variant(unsigned long nSrc) noexcept
Constructs VARIANT from unsigned long.
Definition: COM.h:398
+bool operator==(const VARIANT &varSrc) const noexcept
Is variant equal to?
Definition: COM.h:936
+variant(IUnknown *pSrc)
Constructs VARIANT from IUnknown.
Definition: COM.h:484
+variant(unsigned int nSrc, VARTYPE vtSrc=VT_UI4) noexcept
Constructs VARIANT from unsigned integer.
Definition: COM.h:378
+variant & operator=(CY cySrc) noexcept
Copy from CY value.
Definition: COM.h:717
+variant & operator=(LPCOLESTR lpszSrc) noexcept
Copy from OLE string value.
Definition: COM.h:731
+variant(long long nSrc) noexcept
Constructs VARIANT from 64-bit integer.
Definition: COM.h:426
+variant & operator=(unsigned int *pnSrc) noexcept
Copy from unsigned int reference.
Definition: COM.h:820
+variant(long nSrc, VARTYPE vtSrc=VT_I4) noexcept
Constructs VARIANT from long.
Definition: COM.h:388
+variant & operator=(long *pnSrc) noexcept
Copy from long reference.
Definition: COM.h:833
+variant(unsigned short nSrc) noexcept
Constructs VARIANT from unsigned short.
Definition: COM.h:359
+bool operator>=(const VARIANT &varSrc) const noexcept
Is variant greater than or equal to?
Definition: COM.h:1005
+variant & operator=(short *pnSrc) noexcept
Copy from short reference.
Definition: COM.h:781
+variant() noexcept
Constructs blank VARIANT.
Definition: COM.h:294
+bool operator<(const VARIANT &varSrc) const noexcept
Is variant less than?
Definition: COM.h:964
+variant(unsigned long long nSrc) noexcept
Constructs VARIANT from unsigned integer.
Definition: COM.h:435
+variant(char cSrc) noexcept
Constructs VARIANT from character.
Definition: COM.h:332
+variant & operator=(unsigned short *pnSrc) noexcept
Copy from unsigned short reference.
Definition: COM.h:794
+variant & operator=(long long *pnSrc) noexcept
Copy from long long reference.
Definition: COM.h:859
+variant(BSTR bstr) noexcept
Constructs VARIANT from BSTR.
Definition: COM.h:463
+variant & operator=(unsigned long long *pnSrc) noexcept
Copy from unsigned long long reference.
Definition: COM.h:872
+variant(double dblSrc, VARTYPE vtSrc=VT_R8) noexcept
Constructs VARIANT from double or variant date.
Definition: COM.h:416
+variant(short nSrc) noexcept
Constructs VARIANT from short.
Definition: COM.h:350
+variant(CY cySrc) noexcept
Constructs VARIANT from CY (64-bit integer)
Definition: COM.h:444
+variant & operator=(unsigned long long nSrc) noexcept
Copy from unsigned long long value.
Definition: COM.h:677
+variant & operator=(VARIANT &&varSrc) noexcept
Moves from another VARIANT.
Definition: COM.h:534
+variant & operator=(long long nSrc) noexcept
Copy from long long value.
Definition: COM.h:664
+variant & operator=(IDispatch *pSrc)
Copy from IDispatch.
Definition: COM.h:742
+variant & operator=(unsigned long *pnSrc) noexcept
Copy from unsigned long reference.
Definition: COM.h:846
+variant & operator=(const VARIANT &varSrc)
Copy from another VARIANT.
Definition: COM.h:521
+static _Check_return_ HRESULT CoGetObject(LPCWSTR pszName, BIND_OPTS *pBindOptions, REFIID riid, winstd::com_obj< T > &v)
Converts a display name into a moniker that identifies the object named, and then binds to the object...
Definition: COM.h:1211
+static _Check_return_ HRESULT CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, winstd::com_obj< T > &v)
Creates and default-initializes a single object of the class associated with a specified CLSID.
Definition: COM.h:1196
#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition: Common.h:66
#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition: Common.h:74
#define WINSTD_DPLHANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition: Common.h:175
-static const T invalid
Invalid handle value.
Definition: Common.h:579
+static const T invalid
Invalid handle value.
Definition: Common.h:645
Deleter for unique_ptr using CoTaskMemFree.
Definition: COM.h:58
void operator()(_T *_Ptr) const
Delete a pointer.
Definition: COM.h:70
CoTaskMemFree_delete() noexcept
Default constructor.
Definition: COM.h:62