Module: wine Branch: master Commit: b7c257bb48e299bc710eb43ff1b028d01f21f576 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b7c257bb48e299bc710eb43ff1...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Oct 13 20:50:28 2009 +0200
mshtml: Added support for DISPATCH_METHOD|DISPATCH_PROPERTYGET calls to InvokeEx implementation.
---
dlls/mshtml/dispex.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c index 4079242..fc8bd55 100644 --- a/dlls/mshtml/dispex.c +++ b/dlls/mshtml/dispex.c @@ -221,7 +221,7 @@ static void add_func_info(dispex_data_t *data, DWORD *size, tid_t tid, const FUN
data->funcs[data->func_cnt].id = desc->memid; data->funcs[data->func_cnt].tid = tid; - data->funcs[data->func_cnt].func_disp_idx = desc->invkind == DISPATCH_METHOD ? data->func_disp_cnt++ : -1; + data->funcs[data->func_cnt].func_disp_idx = (desc->invkind & DISPATCH_METHOD) ? data->func_disp_cnt++ : -1;
data->func_cnt++; } @@ -515,6 +515,9 @@ static HRESULT function_value(IUnknown *iface, LCID lcid, WORD flags, DISPPARAMS HRESULT hres;
switch(flags) { + case DISPATCH_METHOD|DISPATCH_PROPERTYGET: + if(!res) + return E_INVALIDARG; case DISPATCH_METHOD: hres = typeinfo_invoke(This->obj, This->info, flags, params, res, ei); break; @@ -571,8 +574,10 @@ static HRESULT function_invoke(DispatchEx *This, func_info_t *func, WORD flags, HRESULT hres;
switch(flags) { - case DISPATCH_METHOD: case DISPATCH_METHOD|DISPATCH_PROPERTYGET: + if(!res) + return E_INVALIDARG; + case DISPATCH_METHOD: hres = typeinfo_invoke(This, func, flags, dp, res, ei); break; case DISPATCH_PROPERTYGET: { @@ -810,6 +815,9 @@ static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lc var = &This->dynamic_data->props[idx].var;
switch(wFlags) { + case DISPATCH_METHOD|DISPATCH_PROPERTYGET: + if(!pvarRes) + return E_INVALIDARG; case DISPATCH_METHOD: { DISPID named_arg = DISPID_THIS; DISPPARAMS dp = {NULL, &named_arg, 0, 1};