Dmitry Timoshkov : propsys: Make VT_FILETIME handling by PropVariantChangeType more implicit.

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


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

Author: Dmitry Timoshkov <dmitry at 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 at baikal.ru>
Signed-off-by: Alexandre Julliard <julliard at 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)




More information about the wine-cvs mailing list