Module: wine Branch: master Commit: 3a7fb7575175f09eb961822fa86d1f78c5bf9d51 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3a7fb7575175f09eb961822fa8...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Tue Jun 20 12:36:56 2017 +0800
propsys: Make VT_FILETIME handling by PropVariantChangeType more implicit.
Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 1d762d0..fc6cf58 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)