diff --git a/_c_o_m_8h_source.html b/_c_o_m_8h_source.html
index 3507609d..680deb5e 100644
--- a/_c_o_m_8h_source.html
+++ b/_c_o_m_8h_source.html
@@ -250,860 +250,861 @@ $(document).ready(function() { init_codefold(0); });
226 bstr(_In_
const std::basic_string<OLECHAR, _Traits, _Ax> &src)
-
228 if (src.length() >= UINT_MAX)
-
229 throw std::invalid_argument(
"String too long");
-
230 m_h = SysAllocStringLen(src.c_str(), (UINT)src.length());
-
-
232 throw std::bad_alloc();
-
-
-
-
-
-
-
-
-
253 return SysStringLen(
m_h);
-
-
-
-
-
-
-
-
-
-
278 handle_type h_new = SysAllocStringLen(h, SysStringLen(h));
-
-
-
281 throw std::bad_alloc();
-
-
-
-
-
- 288 #pragma warning(push)
- 289 #pragma warning(disable: 26432)
-
-
-
-
-
-
-
-
-
-
-
307 const HRESULT hr = VariantCopy(
this, &varSrc);
-
-
-
-
-
-
315 #pragma warning(suppress: 26495)
-
-
-
-
318 memcpy(
this, &varSrc,
sizeof(VARIANT));
-
319 varSrc.vt = VT_EMPTY;
-
-
-
-
-
-
-
-
328 boolVal = bSrc ? VARIANT_TRUE : VARIANT_FALSE;
-
-
-
-
-
-
-
-
-
-
-
-
-
370 variant(_In_
int nSrc, _In_ VARTYPE vtSrc = VT_I4)
noexcept
-
-
372 assert(vtSrc == VT_I4 || vtSrc == VT_INT);
-
-
-
-
-
-
-
380 variant(_In_
unsigned int nSrc, _In_ VARTYPE vtSrc = VT_UI4)
noexcept
-
-
382 assert(vtSrc == VT_UI4 || vtSrc == VT_UINT);
-
-
-
-
-
-
-
390 variant(_In_
long nSrc, _In_ VARTYPE vtSrc = VT_I4)
noexcept
-
-
392 assert(vtSrc == VT_I4 || vtSrc == VT_ERROR);
-
-
-
-
-
-
-
-
-
-
-
418 variant(_In_
double dblSrc, _In_ VARTYPE vtSrc = VT_R8)
noexcept
-
-
420 assert(vtSrc == VT_R8 || vtSrc == VT_DATE);
-
-
-
-
-
-
-
-
-
437 variant(_In_
unsigned long long nSrc)
noexcept
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
479 if (pdispVal != NULL)
-
-
-
-
-
-
-
-
-
-
500 assert(pSrc != NULL);
-
-
-
503 const HRESULT hr = SafeArrayCopy(
const_cast<LPSAFEARRAY
>(pSrc), &pCopy);
-
-
-
-
507 SafeArrayGetVartype(
const_cast<LPSAFEARRAY
>(pSrc), &vt);
-
-
-
-
-
-
-
-
-
-
-
525 if (
this != &varSrc) {
-
526 const HRESULT hr = VariantCopy(
this, &varSrc);
-
-
-
-
-
-
-
-
-
-
-
538 if (
this != &varSrc) {
-
-
540 memcpy(
this, &varSrc,
sizeof(VARIANT));
-
541 varSrc.vt = VT_EMPTY;
-
-
-
-
-
-
-
-
-
-
-
-
-
555 boolVal = bSrc ? VARIANT_TRUE : VARIANT_FALSE;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
737 bstrVal = SysAllocString(lpszSrc);
-
-
-
-
-
-
-
-
-
-
-
749 if (pdispVal != NULL)
-
-
-
-
-
-
-
-
-
-
-
772 if (vt != (VT_UI1|VT_BYREF)) {
-
-
774 vt = VT_UI1|VT_BYREF;
-
-
-
-
-
-
-
-
-
-
785 if (vt != (VT_I2|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
-
-
-
798 if (vt != (VT_UI2|VT_BYREF)) {
-
-
800 vt = VT_UI2|VT_BYREF;
-
-
-
-
-
-
-
-
-
-
811 if (vt != (VT_I4|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
-
-
-
824 if (vt != (VT_UI4|VT_BYREF)) {
-
-
826 vt = VT_UI4|VT_BYREF;
-
-
-
-
-
-
-
-
-
-
837 if (vt != (VT_I4|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
-
-
-
850 if (vt != (VT_UI4|VT_BYREF)) {
-
-
852 vt = VT_UI4|VT_BYREF;
-
-
-
-
-
-
-
-
-
-
863 if (vt != (VT_I8|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
-
-
-
876 if (vt != (VT_UI8|VT_BYREF)) {
-
-
878 vt = VT_UI8|VT_BYREF;
-
-
-
-
-
-
-
-
-
-
889 if (vt != (VT_R4|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
-
-
-
902 if (vt != (VT_R8|VT_BYREF)) {
-
-
-
-
-
-
-
-
-
-
-
-
915 assert(pSrc != NULL);
-
-
-
-
919 const HRESULT hr = SafeArrayCopy(
const_cast<LPSAFEARRAY
>(pSrc), &pCopy);
-
-
921 SafeArrayGetVartype(
const_cast<LPSAFEARRAY
>(pSrc), &vt);
-
-
-
-
-
-
-
-
-
-
-
-
-
940 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return true;
-
941 if (vt != varSrc.vt)
return false;
-
942 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0) ==
static_cast<HRESULT
>(VARCMP_EQ);
-
-
-
-
-
-
-
966 bool operator<(_In_
const VARIANT& varSrc)
const noexcept
-
-
968 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return false;
-
969 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0)==
static_cast<HRESULT
>(VARCMP_LT);
-
-
-
-
-
980 bool operator>(_In_
const VARIANT& varSrc)
const noexcept
-
-
982 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return false;
-
983 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0)==
static_cast<HRESULT
>(VARCMP_GT);
-
-
-
-
-
-
-
-
-
1017 HRESULT
change_type(_In_ VARTYPE _vt, _In_opt_ USHORT wFlags = 0) noexcept
-
-
1019 return VariantChangeType(
this,
this, wFlags, _vt);
-
-
-
-
-
1024 HRESULT compare(_In_
const VARIANT &varLeft, _In_
const VARIANT &varRight, _In_ LCID lcid, _In_ ULONG dwFlags)
const noexcept
-
-
-
1027 case VT_I1:
return varLeft.cVal == varRight.cVal ? VARCMP_EQ : varLeft.cVal > varRight.cVal ? VARCMP_GT : VARCMP_LT;
-
1028 case VT_UI2:
return varLeft.uiVal == varRight.uiVal ? VARCMP_EQ : varLeft.uiVal > varRight.uiVal ? VARCMP_GT : VARCMP_LT;
-
1029 case VT_UI4:
return varLeft.uintVal == varRight.uintVal ? VARCMP_EQ : varLeft.uintVal > varRight.uintVal ? VARCMP_GT : VARCMP_LT;
-
1030 case VT_UI8:
return varLeft.ullVal == varRight.ullVal ? VARCMP_EQ : varLeft.ullVal > varRight.ullVal ? VARCMP_GT : VARCMP_LT;
-
1031 default:
return VarCmp(
const_cast<LPVARIANT
>(&varLeft),
const_cast<LPVARIANT
>(&varRight), lcid, dwFlags);
-
-
-
-
- 1036 #pragma warning(pop)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1065 SafeArrayDestroy(
m_h);
-
-
-
-
-
-
-
-
1080 HRESULT hr = SafeArrayCopy(h, &h_new);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1104 HRESULT hr = SafeArrayAccessData(psa, (
void HUGEP**)&
m_data);
-
-
-
-
-
-
-
-
-
1116 SafeArrayUnaccessData(
m_sa);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1148 m_result = CoInitialize(pvReserved);
-
-
-
-
-
-
-
1158 m_result = CoInitializeEx(pvReserved, dwCoInit);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
1201 HRESULT hr =
CoCreateInstance(rclsid, pUnkOuter, dwClsContext, __uuidof(T), (LPVOID*)&ppv);
-
-
-
-
-
-
-
-
-
-
-
-
1216 HRESULT hr =
CoGetObject(pszName, pBindOptions, riid, (LPVOID*)&ppv);
-
-
-
-
-
-
+ 228 size_t len = src.length();
+
+ 230 throw std::invalid_argument(
"string too long");
+ 231 m_h = SysAllocStringLen(src.c_str(),
static_cast<UINT
>(len));
+
+ 233 throw std::bad_alloc();
+
+
+
+
+
+
+
+
+
254 return SysStringLen(
m_h);
+
+
+
+
+
+
+
+
+
+
279 handle_type h_new = SysAllocStringLen(h, SysStringLen(h));
+
+
+
282 throw std::bad_alloc();
+
+
+
+
+
+ 289 #pragma warning(push)
+ 290 #pragma warning(disable: 26432)
+
+
+
+
+
+
+
+
+
+
+
308 const HRESULT hr = VariantCopy(
this, &varSrc);
+
+
+
+
+
+
316 #pragma warning(suppress: 26495)
+
+
+
+
319 memcpy(
this, &varSrc,
sizeof(VARIANT));
+
320 varSrc.vt = VT_EMPTY;
+
+
+
+
+
+
+
+
329 boolVal = bSrc ? VARIANT_TRUE : VARIANT_FALSE;
+
+
+
+
+
+
+
+
+
+
+
+
+
371 variant(_In_
int nSrc, _In_ VARTYPE vtSrc = VT_I4)
noexcept
+
+
373 assert(vtSrc == VT_I4 || vtSrc == VT_INT);
+
+
+
+
+
+
+
381 variant(_In_
unsigned int nSrc, _In_ VARTYPE vtSrc = VT_UI4)
noexcept
+
+
383 assert(vtSrc == VT_UI4 || vtSrc == VT_UINT);
+
+
+
+
+
+
+
391 variant(_In_
long nSrc, _In_ VARTYPE vtSrc = VT_I4)
noexcept
+
+
393 assert(vtSrc == VT_I4 || vtSrc == VT_ERROR);
+
+
+
+
+
+
+
+
+
+
+
419 variant(_In_
double dblSrc, _In_ VARTYPE vtSrc = VT_R8)
noexcept
+
+
421 assert(vtSrc == VT_R8 || vtSrc == VT_DATE);
+
+
+
+
+
+
+
+
+
438 variant(_In_
unsigned long long nSrc)
noexcept
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
480 if (pdispVal != NULL)
+
+
+
+
+
+
+
+
+
+
501 assert(pSrc != NULL);
+
+
+
504 const HRESULT hr = SafeArrayCopy(
const_cast<LPSAFEARRAY
>(pSrc), &pCopy);
+
+
+
+
508 SafeArrayGetVartype(
const_cast<LPSAFEARRAY
>(pSrc), &vt);
+
+
+
+
+
+
+
+
+
+
+
526 if (
this != &varSrc) {
+
527 const HRESULT hr = VariantCopy(
this, &varSrc);
+
+
+
+
+
+
+
+
+
+
+
539 if (
this != &varSrc) {
+
+
541 memcpy(
this, &varSrc,
sizeof(VARIANT));
+
542 varSrc.vt = VT_EMPTY;
+
+
+
+
+
+
+
+
+
+
+
+
+
556 boolVal = bSrc ? VARIANT_TRUE : VARIANT_FALSE;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
738 bstrVal = SysAllocString(lpszSrc);
+
+
+
+
+
+
+
+
+
+
+
750 if (pdispVal != NULL)
+
+
+
+
+
+
+
+
+
+
+
773 if (vt != (VT_UI1|VT_BYREF)) {
+
+
775 vt = VT_UI1|VT_BYREF;
+
+
+
+
+
+
+
+
+
+
786 if (vt != (VT_I2|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+
+
+
799 if (vt != (VT_UI2|VT_BYREF)) {
+
+
801 vt = VT_UI2|VT_BYREF;
+
+
+
+
+
+
+
+
+
+
812 if (vt != (VT_I4|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+
+
+
825 if (vt != (VT_UI4|VT_BYREF)) {
+
+
827 vt = VT_UI4|VT_BYREF;
+
+
+
+
+
+
+
+
+
+
838 if (vt != (VT_I4|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+
+
+
851 if (vt != (VT_UI4|VT_BYREF)) {
+
+
853 vt = VT_UI4|VT_BYREF;
+
+
+
+
+
+
+
+
+
+
864 if (vt != (VT_I8|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+
+
+
877 if (vt != (VT_UI8|VT_BYREF)) {
+
+
879 vt = VT_UI8|VT_BYREF;
+
+
+
+
+
+
+
+
+
+
890 if (vt != (VT_R4|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+
+
+
903 if (vt != (VT_R8|VT_BYREF)) {
+
+
+
+
+
+
+
+
+
+
+
+
916 assert(pSrc != NULL);
+
+
+
+
920 const HRESULT hr = SafeArrayCopy(
const_cast<LPSAFEARRAY
>(pSrc), &pCopy);
+
+
922 SafeArrayGetVartype(
const_cast<LPSAFEARRAY
>(pSrc), &vt);
+
+
+
+
+
+
+
+
+
+
+
+
+
941 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return true;
+
942 if (vt != varSrc.vt)
return false;
+
943 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0) ==
static_cast<HRESULT
>(VARCMP_EQ);
+
+
+
+
+
+
+
967 bool operator<(_In_
const VARIANT& varSrc)
const noexcept
+
+
969 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return false;
+
970 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0)==
static_cast<HRESULT
>(VARCMP_LT);
+
+
+
+
+
981 bool operator>(_In_
const VARIANT& varSrc)
const noexcept
+
+
983 if (vt == VT_NULL && varSrc.vt == VT_NULL)
return false;
+
984 return compare(
static_cast<const VARIANT&
>(*
this), varSrc, LOCALE_USER_DEFAULT, 0)==
static_cast<HRESULT
>(VARCMP_GT);
+
+
+
+
+
+
+
+
+
1018 HRESULT
change_type(_In_ VARTYPE _vt, _In_opt_ USHORT wFlags = 0) noexcept
+
+
1020 return VariantChangeType(
this,
this, wFlags, _vt);
+
+
+
+
+
1025 HRESULT compare(_In_
const VARIANT &varLeft, _In_
const VARIANT &varRight, _In_ LCID lcid, _In_ ULONG dwFlags)
const noexcept
+
+
+
1028 case VT_I1:
return varLeft.cVal == varRight.cVal ? VARCMP_EQ : varLeft.cVal > varRight.cVal ? VARCMP_GT : VARCMP_LT;
+
1029 case VT_UI2:
return varLeft.uiVal == varRight.uiVal ? VARCMP_EQ : varLeft.uiVal > varRight.uiVal ? VARCMP_GT : VARCMP_LT;
+
1030 case VT_UI4:
return varLeft.uintVal == varRight.uintVal ? VARCMP_EQ : varLeft.uintVal > varRight.uintVal ? VARCMP_GT : VARCMP_LT;
+
1031 case VT_UI8:
return varLeft.ullVal == varRight.ullVal ? VARCMP_EQ : varLeft.ullVal > varRight.ullVal ? VARCMP_GT : VARCMP_LT;
+
1032 default:
return VarCmp(
const_cast<LPVARIANT
>(&varLeft),
const_cast<LPVARIANT
>(&varRight), lcid, dwFlags);
+
+
+
+
+ 1037 #pragma warning(pop)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1066 SafeArrayDestroy(
m_h);
+
+
+
+
+
+
+
+
1081 HRESULT hr = SafeArrayCopy(h, &h_new);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1105 HRESULT hr = SafeArrayAccessData(psa, (
void HUGEP**)&
m_data);
+
+
+
+
+
+
+
+
+
1117 SafeArrayUnaccessData(
m_sa);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1149 m_result = CoInitialize(pvReserved);
+
+
+
+
+
+
+
1159 m_result = CoInitializeEx(pvReserved, dwCoInit);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
1202 HRESULT hr =
CoCreateInstance(rclsid, pUnkOuter, dwClsContext, __uuidof(T), (LPVOID*)&ppv);
+
+
+
+
+
+
+
+
+
+
+
+
1217 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
-handle_type duplicate_internal(handle_type h) const override
Duplicates the string.
Definition COM.h:276
-virtual ~bstr()
Destroys the string.
Definition COM.h:240
-void free_internal() noexcept override
Destroys the string.
Definition COM.h:262
-UINT length() const noexcept
Returns the length of the string.
Definition COM.h:251
+handle_type duplicate_internal(handle_type h) const override
Duplicates the string.
Definition COM.h:277
+virtual ~bstr()
Destroys the string.
Definition COM.h:241
+void free_internal() noexcept override
Destroys the string.
Definition COM.h:263
+UINT length() const noexcept
Returns the length of the string.
Definition COM.h:252
bstr(LPCOLESTR src, UINT len)
Constructs BSTR from OLE string with length.
Definition COM.h:215
bstr(const std::basic_string< OLECHAR, _Traits, _Ax > &src)
Constructs BSTR from std::basic_string.
Definition COM.h:226
-Context scope automatic COM (un)initialization.
Definition COM.h:1136
-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:1156
-com_initializer(LPVOID pvReserved) noexcept
Initializes the COM library on the current thread and identifies the concurrency model as single-thre...
Definition COM.h:1146
-HRESULT status() const noexcept
Return result of CoInitialize() call.
Definition COM.h:1177
-virtual ~com_initializer()
Uninitializes COM.
Definition COM.h:1166
-HRESULT m_result
Result of CoInitialize call.
Definition COM.h:1183
+Context scope automatic COM (un)initialization.
Definition COM.h:1137
+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:1157
+com_initializer(LPVOID pvReserved) noexcept
Initializes the COM library on the current thread and identifies the concurrency model as single-thre...
Definition COM.h:1147
+HRESULT status() const noexcept
Return result of CoInitialize() call.
Definition COM.h:1178
+virtual ~com_initializer()
Uninitializes COM.
Definition COM.h:1167
+HRESULT m_result
Result of CoInitialize call.
Definition COM.h:1184
COM object wrapper template.
Definition COM.h:83
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
@@ -1116,96 +1117,96 @@ $(document).ready(function() { init_codefold(0); });
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:1248
-T handle_type
Datatype of the object handle this template class handles.
Definition Common.h:988
-handle_type m_h
Object handle.
Definition Common.h:1237
-Numerical runtime error.
Definition Common.h:1446
-HRESULT error_type
Error number type.
Definition Common.h:1448
-Context scope automatic SAFEARRAY (un)access.
Definition COM.h:1092
-safearray_accessor(SAFEARRAY *psa)
Increments the lock count of an array, and retrieves a pointer to the array data.
Definition COM.h:1102
-T HUGEP * data() const noexcept
Return SAFEARRAY data pointer.
Definition COM.h:1122
-SAFEARRAY * m_sa
SAFEARRAY.
Definition COM.h:1128
-virtual ~safearray_accessor()
Decrements the lock count of an array.
Definition COM.h:1114
-T HUGEP * m_data
SAFEARRAY data.
Definition COM.h:1129
-SAFEARRAY string wrapper.
Definition COM.h:1042
-virtual ~safearray()
Destroys the array.
Definition COM.h:1051
-handle_type duplicate_internal(handle_type h) const override
Duplicates the array.
Definition COM.h:1077
-void free_internal() noexcept override
Destroys the array.
Definition COM.h:1063
-VARIANT struct wrapper.
Definition COM.h:291
-bool operator<=(const VARIANT &varSrc) const noexcept
Is variant less than or equal to?
Definition COM.h:994
-variant(bool bSrc) noexcept
Constructs VARIANT from bool.
Definition COM.h:325
-variant & operator=(unsigned int nSrc) noexcept
Copy from unsigned int value.
Definition COM.h:627
-variant & operator=(unsigned long nSrc) noexcept
Copy from unsigned long value.
Definition COM.h:653
-variant(float fltSrc) noexcept
Constructs VARIANT from float.
Definition COM.h:409
-variant(VARIANT &&varSrc) noexcept
Moves VARIANT from another.
Definition COM.h:316
-variant & operator=(float fltSrc) noexcept
Copy from float value.
Definition COM.h:693
-variant & operator=(float *pfSrc) noexcept
Copy from float reference.
Definition COM.h:887
-variant(IDispatch *pSrc)
Constructs VARIANT from IDispatch.
Definition COM.h:474
-variant(int nSrc, VARTYPE vtSrc=VT_I4) noexcept
Constructs VARIANT from integer.
Definition COM.h:370
-variant(const SAFEARRAY *pSrc)
Constructs VARIANT from SAFEARRAY.
Definition COM.h:498
-variant & operator=(double *pfSrc) noexcept
Copy from double reference.
Definition COM.h:900
-variant & operator=(const SAFEARRAY *pSrc)
Copy from SAFEARRAY.
Definition COM.h:913
-variant & operator=(int *pnSrc) noexcept
Copy from int reference.
Definition COM.h:809
-bool operator>(const VARIANT &varSrc) const noexcept
Is variant greater than?
Definition COM.h:980
-variant & operator=(bool bSrc) noexcept
Copy from bool value.
Definition COM.h:549
-variant & operator=(long nSrc) noexcept
Copy from long value.
Definition COM.h:640
-HRESULT change_type(VARTYPE _vt, USHORT wFlags=0) noexcept
Converts a variant from one type to another.
Definition COM.h:1017
-variant & operator=(IUnknown *pSrc)
Copy from IUnknown.
Definition COM.h:757
-variant & operator=(short nSrc) noexcept
Copy from short value.
Definition COM.h:588
-variant & operator=(unsigned char *pbSrc) noexcept
Copy from unsigned char reference.
Definition COM.h:770
-variant & operator=(unsigned short nSrc) noexcept
Copy from unsigned short value.
Definition COM.h:601
-variant & operator=(unsigned char nSrc) noexcept
Copy from unsigned char value.
Definition COM.h:575
-variant & operator=(char cSrc) noexcept
Copy from char value.
Definition COM.h:562
-variant(LPCOLESTR lpszSrc) noexcept
Constructs VARIANT from OLE string.
Definition COM.h:456
-virtual ~variant()
Destroys VARIANT.
Definition COM.h:515
-variant(const VARIANT &varSrc)
Constructs VARIANT from another.
Definition COM.h:304
-variant(unsigned char nSrc) noexcept
Constructs VARIANT from byte.
Definition COM.h:343
-variant & operator=(double dblSrc) noexcept
Copy from double value.
Definition COM.h:706
-bool operator!=(const VARIANT &varSrc) const noexcept
Is variant not equal to?
Definition COM.h:953
-variant & operator=(int nSrc) noexcept
Copy from int value.
Definition COM.h:614
-variant(unsigned long nSrc) noexcept
Constructs VARIANT from unsigned long.
Definition COM.h:400
-bool operator==(const VARIANT &varSrc) const noexcept
Is variant equal to?
Definition COM.h:938
-variant(IUnknown *pSrc)
Constructs VARIANT from IUnknown.
Definition COM.h:486
-variant(unsigned int nSrc, VARTYPE vtSrc=VT_UI4) noexcept
Constructs VARIANT from unsigned integer.
Definition COM.h:380
-variant & operator=(CY cySrc) noexcept
Copy from CY value.
Definition COM.h:719
-variant & operator=(LPCOLESTR lpszSrc) noexcept
Copy from OLE string value.
Definition COM.h:733
-variant(long long nSrc) noexcept
Constructs VARIANT from 64-bit integer.
Definition COM.h:428
-variant & operator=(unsigned int *pnSrc) noexcept
Copy from unsigned int reference.
Definition COM.h:822
-variant(long nSrc, VARTYPE vtSrc=VT_I4) noexcept
Constructs VARIANT from long.
Definition COM.h:390
-variant & operator=(long *pnSrc) noexcept
Copy from long reference.
Definition COM.h:835
-variant(unsigned short nSrc) noexcept
Constructs VARIANT from unsigned short.
Definition COM.h:361
-bool operator>=(const VARIANT &varSrc) const noexcept
Is variant greater than or equal to?
Definition COM.h:1007
-variant & operator=(short *pnSrc) noexcept
Copy from short reference.
Definition COM.h:783
-variant() noexcept
Constructs blank VARIANT.
Definition COM.h:296
-bool operator<(const VARIANT &varSrc) const noexcept
Is variant less than?
Definition COM.h:966
-variant(unsigned long long nSrc) noexcept
Constructs VARIANT from unsigned integer.
Definition COM.h:437
-variant(char cSrc) noexcept
Constructs VARIANT from character.
Definition COM.h:334
-variant & operator=(unsigned short *pnSrc) noexcept
Copy from unsigned short reference.
Definition COM.h:796
-variant & operator=(long long *pnSrc) noexcept
Copy from long long reference.
Definition COM.h:861
-variant(BSTR bstr) noexcept
Constructs VARIANT from BSTR.
Definition COM.h:465
-variant & operator=(unsigned long long *pnSrc) noexcept
Copy from unsigned long long reference.
Definition COM.h:874
-variant(double dblSrc, VARTYPE vtSrc=VT_R8) noexcept
Constructs VARIANT from double or variant date.
Definition COM.h:418
-variant(short nSrc) noexcept
Constructs VARIANT from short.
Definition COM.h:352
-variant(CY cySrc) noexcept
Constructs VARIANT from CY (64-bit integer)
Definition COM.h:446
-variant & operator=(unsigned long long nSrc) noexcept
Copy from unsigned long long value.
Definition COM.h:679
-variant & operator=(VARIANT &&varSrc) noexcept
Moves from another VARIANT.
Definition COM.h:536
-variant & operator=(long long nSrc) noexcept
Copy from long long value.
Definition COM.h:666
-variant & operator=(IDispatch *pSrc)
Copy from IDispatch.
Definition COM.h:744
-variant & operator=(unsigned long *pnSrc) noexcept
Copy from unsigned long reference.
Definition COM.h:848
-variant & operator=(const VARIANT &varSrc)
Copy from another VARIANT.
Definition COM.h:523
-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:1213
-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:1198
-#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:993
+Base abstract template class to support object handle keeping for objects that support trivial handle...
Definition Common.h:1285
+T handle_type
Datatype of the object handle this template class handles.
Definition Common.h:1025
+handle_type m_h
Object handle.
Definition Common.h:1274
+Numerical runtime error.
Definition Common.h:1483
+HRESULT error_type
Error number type.
Definition Common.h:1485
+Context scope automatic SAFEARRAY (un)access.
Definition COM.h:1093
+safearray_accessor(SAFEARRAY *psa)
Increments the lock count of an array, and retrieves a pointer to the array data.
Definition COM.h:1103
+T HUGEP * data() const noexcept
Return SAFEARRAY data pointer.
Definition COM.h:1123
+SAFEARRAY * m_sa
SAFEARRAY.
Definition COM.h:1129
+virtual ~safearray_accessor()
Decrements the lock count of an array.
Definition COM.h:1115
+T HUGEP * m_data
SAFEARRAY data.
Definition COM.h:1130
+SAFEARRAY string wrapper.
Definition COM.h:1043
+virtual ~safearray()
Destroys the array.
Definition COM.h:1052
+handle_type duplicate_internal(handle_type h) const override
Duplicates the array.
Definition COM.h:1078
+void free_internal() noexcept override
Destroys the array.
Definition COM.h:1064
+VARIANT struct wrapper.
Definition COM.h:292
+bool operator<=(const VARIANT &varSrc) const noexcept
Is variant less than or equal to?
Definition COM.h:995
+variant(bool bSrc) noexcept
Constructs VARIANT from bool.
Definition COM.h:326
+variant & operator=(unsigned int nSrc) noexcept
Copy from unsigned int value.
Definition COM.h:628
+variant & operator=(unsigned long nSrc) noexcept
Copy from unsigned long value.
Definition COM.h:654
+variant(float fltSrc) noexcept
Constructs VARIANT from float.
Definition COM.h:410
+variant(VARIANT &&varSrc) noexcept
Moves VARIANT from another.
Definition COM.h:317
+variant & operator=(float fltSrc) noexcept
Copy from float value.
Definition COM.h:694
+variant & operator=(float *pfSrc) noexcept
Copy from float reference.
Definition COM.h:888
+variant(IDispatch *pSrc)
Constructs VARIANT from IDispatch.
Definition COM.h:475
+variant(int nSrc, VARTYPE vtSrc=VT_I4) noexcept
Constructs VARIANT from integer.
Definition COM.h:371
+variant(const SAFEARRAY *pSrc)
Constructs VARIANT from SAFEARRAY.
Definition COM.h:499
+variant & operator=(double *pfSrc) noexcept
Copy from double reference.
Definition COM.h:901
+variant & operator=(const SAFEARRAY *pSrc)
Copy from SAFEARRAY.
Definition COM.h:914
+variant & operator=(int *pnSrc) noexcept
Copy from int reference.
Definition COM.h:810
+bool operator>(const VARIANT &varSrc) const noexcept
Is variant greater than?
Definition COM.h:981
+variant & operator=(bool bSrc) noexcept
Copy from bool value.
Definition COM.h:550
+variant & operator=(long nSrc) noexcept
Copy from long value.
Definition COM.h:641
+HRESULT change_type(VARTYPE _vt, USHORT wFlags=0) noexcept
Converts a variant from one type to another.
Definition COM.h:1018
+variant & operator=(IUnknown *pSrc)
Copy from IUnknown.
Definition COM.h:758
+variant & operator=(short nSrc) noexcept
Copy from short value.
Definition COM.h:589
+variant & operator=(unsigned char *pbSrc) noexcept
Copy from unsigned char reference.
Definition COM.h:771
+variant & operator=(unsigned short nSrc) noexcept
Copy from unsigned short value.
Definition COM.h:602
+variant & operator=(unsigned char nSrc) noexcept
Copy from unsigned char value.
Definition COM.h:576
+variant & operator=(char cSrc) noexcept
Copy from char value.
Definition COM.h:563
+variant(LPCOLESTR lpszSrc) noexcept
Constructs VARIANT from OLE string.
Definition COM.h:457
+virtual ~variant()
Destroys VARIANT.
Definition COM.h:516
+variant(const VARIANT &varSrc)
Constructs VARIANT from another.
Definition COM.h:305
+variant(unsigned char nSrc) noexcept
Constructs VARIANT from byte.
Definition COM.h:344
+variant & operator=(double dblSrc) noexcept
Copy from double value.
Definition COM.h:707
+bool operator!=(const VARIANT &varSrc) const noexcept
Is variant not equal to?
Definition COM.h:954
+variant & operator=(int nSrc) noexcept
Copy from int value.
Definition COM.h:615
+variant(unsigned long nSrc) noexcept
Constructs VARIANT from unsigned long.
Definition COM.h:401
+bool operator==(const VARIANT &varSrc) const noexcept
Is variant equal to?
Definition COM.h:939
+variant(IUnknown *pSrc)
Constructs VARIANT from IUnknown.
Definition COM.h:487
+variant(unsigned int nSrc, VARTYPE vtSrc=VT_UI4) noexcept
Constructs VARIANT from unsigned integer.
Definition COM.h:381
+variant & operator=(CY cySrc) noexcept
Copy from CY value.
Definition COM.h:720
+variant & operator=(LPCOLESTR lpszSrc) noexcept
Copy from OLE string value.
Definition COM.h:734
+variant(long long nSrc) noexcept
Constructs VARIANT from 64-bit integer.
Definition COM.h:429
+variant & operator=(unsigned int *pnSrc) noexcept
Copy from unsigned int reference.
Definition COM.h:823
+variant(long nSrc, VARTYPE vtSrc=VT_I4) noexcept
Constructs VARIANT from long.
Definition COM.h:391
+variant & operator=(long *pnSrc) noexcept
Copy from long reference.
Definition COM.h:836
+variant(unsigned short nSrc) noexcept
Constructs VARIANT from unsigned short.
Definition COM.h:362
+bool operator>=(const VARIANT &varSrc) const noexcept
Is variant greater than or equal to?
Definition COM.h:1008
+variant & operator=(short *pnSrc) noexcept
Copy from short reference.
Definition COM.h:784
+variant() noexcept
Constructs blank VARIANT.
Definition COM.h:297
+bool operator<(const VARIANT &varSrc) const noexcept
Is variant less than?
Definition COM.h:967
+variant(unsigned long long nSrc) noexcept
Constructs VARIANT from unsigned integer.
Definition COM.h:438
+variant(char cSrc) noexcept
Constructs VARIANT from character.
Definition COM.h:335
+variant & operator=(unsigned short *pnSrc) noexcept
Copy from unsigned short reference.
Definition COM.h:797
+variant & operator=(long long *pnSrc) noexcept
Copy from long long reference.
Definition COM.h:862
+variant(BSTR bstr) noexcept
Constructs VARIANT from BSTR.
Definition COM.h:466
+variant & operator=(unsigned long long *pnSrc) noexcept
Copy from unsigned long long reference.
Definition COM.h:875
+variant(double dblSrc, VARTYPE vtSrc=VT_R8) noexcept
Constructs VARIANT from double or variant date.
Definition COM.h:419
+variant(short nSrc) noexcept
Constructs VARIANT from short.
Definition COM.h:353
+variant(CY cySrc) noexcept
Constructs VARIANT from CY (64-bit integer)
Definition COM.h:447
+variant & operator=(unsigned long long nSrc) noexcept
Copy from unsigned long long value.
Definition COM.h:680
+variant & operator=(VARIANT &&varSrc) noexcept
Moves from another VARIANT.
Definition COM.h:537
+variant & operator=(long long nSrc) noexcept
Copy from long long value.
Definition COM.h:667
+variant & operator=(IDispatch *pSrc)
Copy from IDispatch.
Definition COM.h:745
+variant & operator=(unsigned long *pnSrc) noexcept
Copy from unsigned long reference.
Definition COM.h:849
+variant & operator=(const VARIANT &varSrc)
Copy from another VARIANT.
Definition COM.h:524
+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:1214
+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:1199
+#define WINSTD_NONCOPYABLE(C)
Declares a class as non-copyable.
Definition Common.h:67
+#define WINSTD_NONMOVABLE(C)
Declares a class as non-movable.
Definition Common.h:75
+#define WINSTD_DPLHANDLE_IMPL(C, INVAL)
Implements default constructors and operators to prevent their auto-generation by compiler.
Definition Common.h:176
+static const T invalid
Invalid handle value.
Definition Common.h:1030
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