From 7a4860104772597b70444238b82887bd0932f783 Mon Sep 17 00:00:00 2001 From: Shuai Meng Date: Mon, 13 Oct 2014 17:18:24 +0800 Subject: [PATCH] vbscript: Implemented Timer. --- dlls/vbscript/global.c | 19 +++++++++++++++++-- dlls/vbscript/tests/api.vbs | 2 ++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c index 93fdcc375fe..bbbe22c9005 100644 --- a/dlls/vbscript/global.c +++ b/dlls/vbscript/global.c @@ -130,6 +130,16 @@ static inline HRESULT return_double(VARIANT *res, double val) return S_OK; } +static inline HRESULT return_float(VARIANT *res, float val) +{ + if(res) { + V_VT(res) = VT_R4; + V_R4(res) = val; + } + + return S_OK; +} + static inline HRESULT return_null(VARIANT *res) { if(res) @@ -760,8 +770,13 @@ static HRESULT Global_Rnd(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIA static HRESULT Global_Timer(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) { - FIXME("\n"); - return E_NOTIMPL; + SYSTEMTIME lt; + double sec; + + GetLocalTime(<); + sec = lt.wHour * 3600 + lt.wMinute * 60 + lt.wSecond + lt.wMilliseconds / 1000.0; + return return_float(res, sec); + } static HRESULT Global_LBound(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) diff --git a/dlls/vbscript/tests/api.vbs b/dlls/vbscript/tests/api.vbs index e2efa9850b1..1b68d2eade2 100644 --- a/dlls/vbscript/tests/api.vbs +++ b/dlls/vbscript/tests/api.vbs @@ -1264,4 +1264,6 @@ Call ok(getVT(RGB(&h1&, &h100&, &h111&)) = "VT_I4", "getVT(RGB(&h1&, &h100&, &h1 Call testRGBError(-1, &h1e&, &h3b&, 5) Call testRGBError(&h4d&, -2, &h2f&, 5) +Call ok(getVT(Timer) = "VT_R4", "getVT(Timer) = " & getVT(Timer)) + Call reportSuccess() -- 2.11.4.GIT