vbscript: Support calling VARIANT in interpreter.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2019-10-28 18:40:36 +01:00 committed by Alexandre Julliard
parent ecaa72855a
commit 1ff55510d8
1 changed files with 23 additions and 4 deletions

View File

@ -653,14 +653,33 @@ static HRESULT interp_icallv(exec_ctx_t *ctx)
static HRESULT interp_vcall(exec_ctx_t *ctx) static HRESULT interp_vcall(exec_ctx_t *ctx)
{ {
FIXME("\n"); const unsigned arg_cnt = ctx->instr->arg1.uint;
return E_NOTIMPL; VARIANT res, *v;
HRESULT hres;
TRACE("\n");
v = stack_pop(ctx);
hres = variant_call(ctx, v, arg_cnt, &res);
VariantClear(v);
if(FAILED(hres))
return hres;
return stack_push(ctx, &res);
} }
static HRESULT interp_vcallv(exec_ctx_t *ctx) static HRESULT interp_vcallv(exec_ctx_t *ctx)
{ {
FIXME("\n"); const unsigned arg_cnt = ctx->instr->arg1.uint;
return E_NOTIMPL; VARIANT *v;
HRESULT hres;
TRACE("\n");
v = stack_pop(ctx);
hres = variant_call(ctx, v, arg_cnt, NULL);
VariantClear(v);
return hres;
} }
static HRESULT do_mcall(exec_ctx_t *ctx, VARIANT *res) static HRESULT do_mcall(exec_ctx_t *ctx, VARIANT *res)