Module: wine Branch: master Commit: db7e816c9c4294a7ee443a0397fb08e1ef432128 URL: http://source.winehq.org/git/wine.git/?a=commit;h=db7e816c9c4294a7ee443a0397...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Tue Jun 20 12:37:00 2017 +0800
propsys: Add support for VT_LPSTR to PropVariantChangeType.
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/propsys/propvar.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
diff --git a/dlls/propsys/propvar.c b/dlls/propsys/propvar.c index fc6cf58..8a8698f 100644 --- a/dlls/propsys/propvar.c +++ b/dlls/propsys/propvar.c @@ -385,6 +385,31 @@ HRESULT WINAPI PropVariantChangeType(PROPVARIANT *ppropvarDest, REFPROPVARIANT p return hr; }
+ case VT_LPSTR: + { + WCHAR *resW; + hr = PropVariantToStringAlloc(propvarSrc, &resW); + if (SUCCEEDED(hr)) + { + char *res; + DWORD len; + + len = WideCharToMultiByte(CP_ACP, 0, resW, -1, NULL, 0, NULL, NULL); + res = CoTaskMemAlloc(len); + if (res) + { + WideCharToMultiByte(CP_ACP, 0, resW, -1, res, len, NULL, NULL); + ppropvarDest->vt = VT_LPSTR; + ppropvarDest->u.pszVal = res; + } + else + hr = E_OUTOFMEMORY; + + CoTaskMemFree(resW); + } + return hr; + } + default: FIXME("Unhandled dest type: %d\n", vt); return E_FAIL;