Daniel Lehman : propsys: Implement InitVariantFromFileTime.

Alexandre Julliard julliard at winehq.org
Thu Mar 17 17:18:32 CDT 2022


Module: wine
Branch: master
Commit: f2b8ccb7b0b22b7b5d661d908f8f8ee02f22647d
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=f2b8ccb7b0b22b7b5d661d908f8f8ee02f22647d

Author: Daniel Lehman <dlehman at esri.com>
Date:   Tue Mar 15 07:30:59 2022 -0700

propsys: Implement InitVariantFromFileTime.

Signed-off-by: Daniel Lehman <dlehman at esri.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/propsys/propsys.spec |  2 +-
 dlls/propsys/propvar.c    | 15 +++++++++++++++
 include/propvarutil.h     |  1 +
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/dlls/propsys/propsys.spec b/dlls/propsys/propsys.spec
index 35828057264..15749952e95 100644
--- a/dlls/propsys/propsys.spec
+++ b/dlls/propsys/propsys.spec
@@ -49,7 +49,7 @@
 @ stub InitVariantFromBooleanArray
 @ stdcall InitVariantFromBuffer(ptr long ptr)
 @ stub InitVariantFromDoubleArray
-@ stub InitVariantFromFileTime
+@ stdcall InitVariantFromFileTime(ptr ptr)
 @ stub InitVariantFromFileTimeArray
 @ stdcall InitVariantFromGUIDAsString(ptr ptr)
 @ stub InitVariantFromInt16Array
diff --git a/dlls/propsys/propvar.c b/dlls/propsys/propvar.c
index be27c5cb641..8f6c52f7aa7 100644
--- a/dlls/propsys/propvar.c
+++ b/dlls/propsys/propvar.c
@@ -672,6 +672,21 @@ HRESULT WINAPI InitVariantFromBuffer(const VOID *pv, UINT cb, VARIANT *pvar)
     return S_OK;
 }
 
+HRESULT WINAPI InitVariantFromFileTime(const FILETIME *ft, VARIANT *var)
+{
+    SYSTEMTIME st;
+
+    TRACE("%p, %p\n", ft, var);
+
+    VariantInit(var);
+    if (!FileTimeToSystemTime(ft, &st))
+        return E_INVALIDARG;
+    if (!SystemTimeToVariantTime(&st, &V_DATE(var)))
+        return E_INVALIDARG;
+    V_VT(var) = VT_DATE;
+    return S_OK;
+}
+
 static inline DWORD PROPVAR_HexToNum(const WCHAR *hex)
 {
     DWORD ret;
diff --git a/include/propvarutil.h b/include/propvarutil.h
index 55b64abbe4f..36a670f56e6 100644
--- a/include/propvarutil.h
+++ b/include/propvarutil.h
@@ -71,6 +71,7 @@ typedef int PROPVAR_COMPARE_FLAGS;
 HRESULT WINAPI PropVariantChangeType(PROPVARIANT *ppropvarDest, REFPROPVARIANT propvarSrc,
                                      PROPVAR_CHANGE_FLAGS flags, VARTYPE vt);
 HRESULT WINAPI InitPropVariantFromGUIDAsString(REFGUID guid, PROPVARIANT *ppropvar);
+HRESULT WINAPI InitVariantFromFileTime(const FILETIME *ft, VARIANT *var);
 HRESULT WINAPI InitVariantFromGUIDAsString(REFGUID guid, VARIANT *pvar);
 HRESULT WINAPI InitPropVariantFromBuffer(const VOID *pv, UINT cb, PROPVARIANT *ppropvar);
 HRESULT WINAPI InitPropVariantFromCLSID(REFCLSID clsid, PROPVARIANT *ppropvar);




More information about the wine-cvs mailing list