Dmitry Timoshkov : propsys: Add support for VT_LPWSTR and VT_BSTR to PropVariantToStringAlloc.

Alexandre Julliard julliard at winehq.org
Tue Jun 20 15:34:55 CDT 2017


Module: wine
Branch: master
Commit: 97c512082c0eccb1606061c4f5435d2065a74bc9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=97c512082c0eccb1606061c4f5435d2065a74bc9

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Tue Jun 20 12:36:47 2017 +0800

propsys: Add support for VT_LPWSTR and VT_BSTR to PropVariantToStringAlloc.

Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/propsys/propvar.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/dlls/propsys/propvar.c b/dlls/propsys/propvar.c
index 007fd94..af486d6 100644
--- a/dlls/propsys/propvar.c
+++ b/dlls/propsys/propvar.c
@@ -224,6 +224,7 @@ HRESULT WINAPI PropVariantToStringAlloc(REFPROPVARIANT propvarIn, WCHAR **ret)
             res = CoTaskMemAlloc(1*sizeof(WCHAR));
             res[0] = '\0';
             break;
+
         case VT_LPSTR:
             if(propvarIn->u.pszVal)
             {
@@ -237,6 +238,18 @@ HRESULT WINAPI PropVariantToStringAlloc(REFPROPVARIANT propvarIn, WCHAR **ret)
                 MultiByteToWideChar(CP_ACP, 0, propvarIn->u.pszVal, -1, res, len);
             }
             break;
+
+        case VT_LPWSTR:
+        case VT_BSTR:
+            if (propvarIn->u.pwszVal)
+            {
+                DWORD size = (lstrlenW(propvarIn->u.pwszVal) + 1) * sizeof(WCHAR);
+                res = CoTaskMemAlloc(size);
+                if(!res) return E_OUTOFMEMORY;
+                memcpy(res, propvarIn->u.pwszVal, size);
+            }
+            break;
+
         default:
             FIXME("Unsupported conversion (%d)\n", propvarIn->vt);
             hr = E_FAIL;




More information about the wine-cvs mailing list