From 0a15f2e02f5b61ad380f592ef6452148c118f2b8 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Tue, 10 Oct 2017 17:07:50 +0200 Subject: [PATCH] vbscript: Add Array implementation. Signed-off-by: Piotr Caban Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/vbscript/global.c | 42 ++++++++++++++++++++++++++++++++++--- dlls/vbscript/tests/api.vbs | 15 +++++++++++++ 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c index 7e147767b78..f523820b2a8 100644 --- a/dlls/vbscript/global.c +++ b/dlls/vbscript/global.c @@ -1792,8 +1792,44 @@ static HRESULT Global_TypeName(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, static HRESULT Global_Array(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) { - FIXME("\n"); - return E_NOTIMPL; + SAFEARRAYBOUND bounds; + SAFEARRAY *sa; + VARIANT *data; + HRESULT hres; + unsigned i; + + TRACE("arg_cnt=%u\n", args_cnt); + + bounds.lLbound = 0; + bounds.cElements = args_cnt; + sa = SafeArrayCreate(VT_VARIANT, 1, &bounds); + if(!sa) + return E_OUTOFMEMORY; + + hres = SafeArrayAccessData(sa, (void**)&data); + if(FAILED(hres)) { + SafeArrayDestroy(sa); + return hres; + } + + for(i=0; i