From 3a7fb7575175f09eb961822fa86d1f78c5bf9d51 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Tue, 20 Jun 2017 12:36:56 +0800 Subject: [PATCH] propsys: Make VT_FILETIME handling by PropVariantChangeType more implicit. Signed-off-by: Dmitry Timoshkov Signed-off-by: Alexandre Julliard --- dlls/propsys/propvar.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/dlls/propsys/propvar.c b/dlls/propsys/propvar.c index 1d762d0c4d5..fc6cf58e702 100644 --- a/dlls/propsys/propvar.c +++ b/dlls/propsys/propvar.c @@ -36,12 +36,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(propsys); -static HRESULT PROPVAR_ConvertFILETIME(PROPVARIANT *ppropvarDest, - REFPROPVARIANT propvarSrc, VARTYPE vt) +static HRESULT PROPVAR_ConvertFILETIME(const FILETIME *ft, PROPVARIANT *ppropvarDest, VARTYPE vt) { SYSTEMTIME time; - FileTimeToSystemTime(&propvarSrc->u.filetime, &time); + FileTimeToSystemTime(ft, &time); switch (vt) { @@ -272,9 +271,12 @@ HRESULT WINAPI PropVariantChangeType(PROPVARIANT *ppropvarDest, REFPROPVARIANT p FIXME("(%p, %p, %d, %d, %d): semi-stub!\n", ppropvarDest, propvarSrc, propvarSrc->vt, flags, vt); - if(vt == propvarSrc->vt) + if (vt == propvarSrc->vt) return PropVariantCopy(ppropvarDest, propvarSrc); + if (propvarSrc->vt == VT_FILETIME) + return PROPVAR_ConvertFILETIME(&propvarSrc->u.filetime, ppropvarDest, vt); + switch (vt) { case VT_I1: @@ -382,17 +384,11 @@ HRESULT WINAPI PropVariantChangeType(PROPVARIANT *ppropvarDest, REFPROPVARIANT p } return hr; } - } - switch (propvarSrc->vt) - { - case VT_FILETIME: - return PROPVAR_ConvertFILETIME(ppropvarDest, propvarSrc, vt); - default: - FIXME("Unhandled source type: %d\n", propvarSrc->vt); + default: + FIXME("Unhandled dest type: %d\n", vt); + return E_FAIL; } - - return E_FAIL; } static void PROPVAR_GUIDToWSTR(REFGUID guid, WCHAR *str)