vbscript: Add Day function implementation.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2019-09-30 20:19:31 +02:00 committed by Alexandre Julliard
parent b84a4aa53b
commit fcc9b7171a
2 changed files with 23 additions and 2 deletions

View File

@ -198,6 +198,19 @@ static HRESULT to_string(VARIANT *v, BSTR *ret)
return S_OK;
}
static HRESULT to_system_time(VARIANT *v, SYSTEMTIME *st)
{
VARIANT date;
HRESULT hres;
V_VT(&date) = VT_EMPTY;
hres = VariantChangeType(&date, v, 0, VT_DATE);
if(FAILED(hres))
return hres;
return VariantTimeToSystemTime(V_DATE(&date), st);
}
static HRESULT set_object_site(script_ctx_t *ctx, IUnknown *obj)
{
IObjectWithSite *obj_site;
@ -1596,8 +1609,13 @@ static HRESULT Global_Time(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARI
static HRESULT Global_Day(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
{
FIXME("\n");
return E_NOTIMPL;
SYSTEMTIME st;
HRESULT hres;
TRACE("(%s)\n", debugstr_variant(arg));
hres = to_system_time(arg, &st);
return FAILED(hres) ? hres : return_short(res, st.wDay);
}
static HRESULT Global_Month(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)

View File

@ -1442,6 +1442,9 @@ Call ok(getVT(Log(CByte(2))) = "VT_R8", "getVT(Log(CByte(2))) = " & getVT(Log(CB
Call ok(getVT(Date) = "VT_DATE", "getVT(Date) = " & getVT(Date))
Call ok(getVT(Time) = "VT_DATE", "getVT(Time) = " & getVT(Time))
Call ok(getVT(Day(now)) = "VT_I2", "getVT(Day(now)) = " & getVT(Day(now)))
Call ok(Day(2) = 1, "Day(time) = " & Day(2))
Sub testRGBError(arg1, arg2, arg3, error_num)
on error resume next
Dim x