Dmitry Timoshkov : propsys: Add support for VT_LPSTR to PropVariantChangeType.
Module: wine Branch: master Commit: db7e816c9c4294a7ee443a0397fb08e1ef432128 URL: http://source.winehq.org/git/wine.git/?a=commit;h=db7e816c9c4294a7ee443a0397... Author: Dmitry Timoshkov <dmitry(a)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(a)baikal.ru> Signed-off-by: Alexandre Julliard <julliard(a)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;
participants (1)
-
Alexandre Julliard