From b65a3ad736da6068fffabf4642b7fd5df12fa733 Mon Sep 17 00:00:00 2001 From: Ilya Ivanov Date: Thu, 27 Apr 2017 15:06:56 +0300 Subject: [PATCH] Use VARIANT_TRUE and VARIANT_FALSE correctly VARIANT_TRUE (-1) must be used with VARIANTs of boolean type, instead of TRUE (1) which has a different value and can result in interoperability problems. Thanks to PVS-Studio for finding this issue (V721 The VARIANT_BOOL type is utilized incorrectly). --- src/msw/ole/activex.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/msw/ole/activex.cpp b/src/msw/ole/activex.cpp index 9fd00b1133..83bcc429ad 100644 --- a/src/msw/ole/activex.cpp +++ b/src/msw/ole/activex.cpp @@ -251,24 +251,24 @@ public: switch (dispIdMember) { case DISPID_AMBIENT_MESSAGEREFLECT: - V_BOOL(pVarResult)= FALSE; + V_BOOL(pVarResult)= VARIANT_FALSE; return S_OK; case DISPID_AMBIENT_DISPLAYASDEFAULT: - V_BOOL(pVarResult)= TRUE; + V_BOOL(pVarResult)= VARIANT_TRUE; return S_OK; case DISPID_AMBIENT_OFFLINEIFNOTCONNECTED: - V_BOOL(pVarResult) = TRUE; + V_BOOL(pVarResult) = VARIANT_TRUE; return S_OK; case DISPID_AMBIENT_SILENT: - V_BOOL(pVarResult)= TRUE; + V_BOOL(pVarResult)= VARIANT_TRUE; return S_OK; case DISPID_AMBIENT_APPEARANCE: pVarResult->vt = VT_BOOL; - pVarResult->boolVal = m_bAmbientAppearance; + pVarResult->boolVal = m_bAmbientAppearance ? VARIANT_TRUE : VARIANT_FALSE; break; case DISPID_AMBIENT_FORECOLOR: @@ -288,17 +288,17 @@ public: case DISPID_AMBIENT_USERMODE: pVarResult->vt = VT_BOOL; - pVarResult->boolVal = m_window->m_bAmbientUserMode; + pVarResult->boolVal = m_window->m_bAmbientUserMode ? VARIANT_TRUE : VARIANT_FALSE; break; case DISPID_AMBIENT_SHOWGRABHANDLES: pVarResult->vt = VT_BOOL; - pVarResult->boolVal = m_bAmbientShowGrabHandles; + pVarResult->boolVal = m_bAmbientShowGrabHandles ? VARIANT_TRUE : VARIANT_FALSE; break; case DISPID_AMBIENT_SHOWHATCHING: pVarResult->vt = VT_BOOL; - pVarResult->boolVal = m_bAmbientShowHatching; + pVarResult->boolVal = m_bAmbientShowHatching ? VARIANT_TRUE : VARIANT_FALSE; break; default: