Alistair Leslie-Hughes : oleaut32: Use VariantChangeTypeEx to convert to VT_BOOL.
Alexandre Julliard
julliard at winehq.org
Mon May 22 15:54:03 CDT 2017
Module: wine
Branch: master
Commit: 1762f89ff259f6f82c0284b50e2a7380f94badcd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1762f89ff259f6f82c0284b50e2a7380f94badcd
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Thu May 18 22:59:44 2017 +0000
oleaut32: Use VariantChangeTypeEx to convert to VT_BOOL.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/oleaut32/variant.c | 33 ++++-----------------------------
1 file changed, 4 insertions(+), 29 deletions(-)
diff --git a/dlls/oleaut32/variant.c b/dlls/oleaut32/variant.c
index 188e393..2dcded5 100644
--- a/dlls/oleaut32/variant.c
+++ b/dlls/oleaut32/variant.c
@@ -2503,19 +2503,12 @@ HRESULT WINAPI VarCat(LPVARIANT left, LPVARIANT right, LPVARIANT out)
{
VARTYPE leftvt,rightvt,resultvt;
HRESULT hres;
- static WCHAR str_true[32];
- static WCHAR str_false[32];
static const WCHAR sz_empty[] = {'\0'};
leftvt = V_VT(left);
rightvt = V_VT(right);
TRACE("%s,%s,%p)\n", debugstr_variant(left), debugstr_variant(right), out);
- if (!str_true[0]) {
- VARIANT_GetLocalisedText(LOCALE_USER_DEFAULT, IDS_FALSE, str_false);
- VARIANT_GetLocalisedText(LOCALE_USER_DEFAULT, IDS_TRUE, str_true);
- }
-
/* when both left and right are NULL the result is NULL */
if (leftvt == VT_NULL && rightvt == VT_NULL)
{
@@ -2596,24 +2589,15 @@ HRESULT WINAPI VarCat(LPVARIANT left, LPVARIANT right, LPVARIANT out)
/* Convert left side variant to string */
if (leftvt != VT_BSTR)
{
- if (leftvt == VT_BOOL)
- {
- /* Bools are handled as localized True/False strings instead of 0/-1 as in MSDN */
- V_VT(&bstrvar_left) = VT_BSTR;
- if (V_BOOL(left))
- V_BSTR(&bstrvar_left) = SysAllocString(str_true);
- else
- V_BSTR(&bstrvar_left) = SysAllocString(str_false);
- }
/* Fill with empty string for later concat with right side */
- else if (leftvt == VT_NULL)
+ if (leftvt == VT_NULL)
{
V_VT(&bstrvar_left) = VT_BSTR;
V_BSTR(&bstrvar_left) = SysAllocString(sz_empty);
}
else
{
- hres = VariantChangeTypeEx(&bstrvar_left,left,0,0,VT_BSTR);
+ hres = VariantChangeTypeEx(&bstrvar_left,left,0,VARIANT_ALPHABOOL|VARIANT_LOCALBOOL,VT_BSTR);
if (hres != S_OK) {
VariantClear(&bstrvar_left);
VariantClear(&bstrvar_right);
@@ -2625,24 +2609,15 @@ HRESULT WINAPI VarCat(LPVARIANT left, LPVARIANT right, LPVARIANT out)
/* convert right side variant to string */
if (rightvt != VT_BSTR)
{
- if (rightvt == VT_BOOL)
- {
- /* Bools are handled as localized True/False strings instead of 0/-1 as in MSDN */
- V_VT(&bstrvar_right) = VT_BSTR;
- if (V_BOOL(right))
- V_BSTR(&bstrvar_right) = SysAllocString(str_true);
- else
- V_BSTR(&bstrvar_right) = SysAllocString(str_false);
- }
/* Fill with empty string for later concat with right side */
- else if (rightvt == VT_NULL)
+ if (rightvt == VT_NULL)
{
V_VT(&bstrvar_right) = VT_BSTR;
V_BSTR(&bstrvar_right) = SysAllocString(sz_empty);
}
else
{
- hres = VariantChangeTypeEx(&bstrvar_right,right,0,0,VT_BSTR);
+ hres = VariantChangeTypeEx(&bstrvar_right,right,0,VARIANT_ALPHABOOL|VARIANT_LOCALBOOL,VT_BSTR);
if (hres != S_OK) {
VariantClear(&bstrvar_left);
VariantClear(&bstrvar_right);
More information about the wine-cvs
mailing list