From: Jacek Caban jacek@codeweavers.com
Based on patch by Gabriel Ivăncescu. --- dlls/mshtml/dispex.c | 130 ++++++++++++++------------- dlls/mshtml/htmlattr.c | 6 +- dlls/mshtml/htmldoc.c | 4 +- dlls/mshtml/htmlelem.c | 22 ++--- dlls/mshtml/htmlelemcol.c | 2 +- dlls/mshtml/htmlevent.c | 6 +- dlls/mshtml/htmlframe.c | 4 +- dlls/mshtml/htmlstyle.c | 2 +- dlls/mshtml/htmlwindow.c | 81 ++++++++--------- dlls/mshtml/mshtml_private.h | 18 ++-- dlls/mshtml/mshtml_private_iface.idl | 9 ++ dlls/mshtml/mutation.c | 2 +- dlls/mshtml/oleobj.c | 18 ++-- dlls/mshtml/omnavigator.c | 2 +- dlls/mshtml/script.c | 6 +- 15 files changed, 162 insertions(+), 150 deletions(-)
diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c index 9c0e9a0b9ec..ab901908901 100644 --- a/dlls/mshtml/dispex.c +++ b/dlls/mshtml/dispex.c @@ -787,7 +787,7 @@ static HRESULT typeinfo_invoke(DispatchEx *This, func_info_t *func, WORD flags, return hres; }
- hres = IDispatchEx_QueryInterface(&This->IDispatchEx_iface, tid_ids[func->tid], (void**)&unk); + hres = IWineJSDispatchHost_QueryInterface(&This->IWineJSDispatchHost_iface, tid_ids[func->tid], (void**)&unk); if(FAILED(hres)) { ERR("Could not get iface %s: %08lx\n", debugstr_mshtml_guid(tid_ids[func->tid]), hres); return E_FAIL; @@ -916,7 +916,7 @@ static HRESULT invoke_disp_value(DispatchEx *This, IDispatch *func_disp, LCID lc memcpy(new_dp.rgvarg+1, dp->rgvarg, dp->cArgs*sizeof(VARIANTARG));
V_VT(new_dp.rgvarg) = VT_DISPATCH; - V_DISPATCH(new_dp.rgvarg) = (IDispatch*)&This->IDispatchEx_iface; + V_DISPATCH(new_dp.rgvarg) = (IDispatch*)&This->IWineJSDispatchHost_iface;
hres = IDispatch_QueryInterface(func_disp, &IID_IDispatchEx, (void**)&dispex); TRACE(">>>\n"); @@ -957,9 +957,9 @@ static HRESULT get_func_obj_entry(DispatchEx *This, func_info_t *func, func_obj_ if(!entry->func_obj) return E_OUTOFMEMORY;
- IDispatchEx_AddRef(&entry->func_obj->dispex.IDispatchEx_iface); + IWineJSDispatchHost_AddRef(&entry->func_obj->dispex.IWineJSDispatchHost_iface); V_VT(&entry->val) = VT_DISPATCH; - V_DISPATCH(&entry->val) = (IDispatch*)&entry->func_obj->dispex.IDispatchEx_iface; + V_DISPATCH(&entry->val) = (IDispatch*)&entry->func_obj->dispex.IWineJSDispatchHost_iface; }
*ret = entry; @@ -1082,7 +1082,7 @@ static HRESULT builtin_propget(DispatchEx *This, func_info_t *func, DISPPARAMS *
assert(func->get_vtbl_off);
- hres = IDispatchEx_QueryInterface(&This->IDispatchEx_iface, tid_ids[func->tid], (void**)&iface); + hres = IWineJSDispatchHost_QueryInterface(&This->IWineJSDispatchHost_iface, tid_ids[func->tid], (void**)&iface); if(SUCCEEDED(hres)) { switch(func->prop_vt) { #define CASE_VT(vt,type,access) \ @@ -1139,7 +1139,7 @@ static HRESULT builtin_propput(DispatchEx *This, func_info_t *func, DISPPARAMS * v = &tmpv; }
- hres = IDispatchEx_QueryInterface(&This->IDispatchEx_iface, tid_ids[func->tid], (void**)&iface); + hres = IWineJSDispatchHost_QueryInterface(&This->IWineJSDispatchHost_iface, tid_ids[func->tid], (void**)&iface); if(SUCCEEDED(hres)) { switch(func->prop_vt) { #define CASE_VT(vt,type,access) \ @@ -1183,7 +1183,7 @@ static HRESULT invoke_builtin_function(DispatchEx *This, func_info_t *func, DISP return E_INVALIDARG; }
- hres = IDispatchEx_QueryInterface(&This->IDispatchEx_iface, tid_ids[func->tid], (void**)&iface); + hres = IWineJSDispatchHost_QueryInterface(&This->IWineJSDispatchHost_iface, tid_ids[func->tid], (void**)&iface); if(FAILED(hres)) return hres;
@@ -1288,7 +1288,7 @@ static HRESULT function_invoke(DispatchEx *This, func_info_t *func, WORD flags, return E_NOTIMPL; }
- if((IDispatch*)&entry->func_obj->dispex.IDispatchEx_iface != V_DISPATCH(&entry->val)) { + if((IDispatch*)&entry->func_obj->dispex.IWineJSDispatchHost_iface != V_DISPATCH(&entry->val)) { if(!V_DISPATCH(&entry->val)) { FIXME("Calling null\n"); return E_FAIL; @@ -1464,14 +1464,14 @@ HRESULT remove_attribute(DispatchEx *This, DISPID id, VARIANT_BOOL *success)
entry = This->dynamic_data->func_disps + func->func_disp_idx; if(V_VT(&entry->val) == VT_DISPATCH - && V_DISPATCH(&entry->val) == (IDispatch*)&entry->func_obj->dispex.IDispatchEx_iface) { + && V_DISPATCH(&entry->val) == (IDispatch*)&entry->func_obj->dispex.IWineJSDispatchHost_iface) { *success = VARIANT_FALSE; return S_OK; }
VariantClear(&entry->val); V_VT(&entry->val) = VT_DISPATCH; - V_DISPATCH(&entry->val) = (IDispatch*)&entry->func_obj->dispex.IDispatchEx_iface; + V_DISPATCH(&entry->val) = (IDispatch*)&entry->func_obj->dispex.IWineJSDispatchHost_iface; IDispatch_AddRef(V_DISPATCH(&entry->val)); *success = VARIANT_TRUE; return S_OK; @@ -1549,14 +1549,14 @@ static BOOL ensure_real_info(DispatchEx *dispex) return dispex->info != NULL; }
-static inline DispatchEx *impl_from_IDispatchEx(IDispatchEx *iface) +static inline DispatchEx *impl_from_IWineJSDispatchHost(IWineJSDispatchHost *iface) { - return CONTAINING_RECORD(iface, DispatchEx, IDispatchEx_iface); + return CONTAINING_RECORD(iface, DispatchEx, IWineJSDispatchHost_iface); }
-static HRESULT WINAPI DispatchEx_QueryInterface(IDispatchEx *iface, REFIID riid, void **ppv) +static HRESULT WINAPI DispatchEx_QueryInterface(IWineJSDispatchHost *iface, REFIID riid, void **ppv) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface);
TRACE("%s (%p)->(%s %p)\n", This->info->desc->name, This, debugstr_mshtml_guid(riid), ppv);
@@ -1567,12 +1567,14 @@ static HRESULT WINAPI DispatchEx_QueryInterface(IDispatchEx *iface, REFIID riid, }
if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IDispatch, riid) || IsEqualGUID(&IID_IDispatchEx, riid)) - *ppv = &This->IDispatchEx_iface; + *ppv = &This->IWineJSDispatchHost_iface; + else if(IsEqualGUID(&IID_IWineJSDispatchHost, riid)) + *ppv = &This->IWineJSDispatchHost_iface; else if(IsEqualGUID(&IID_nsXPCOMCycleCollectionParticipant, riid)) { *ppv = &dispex_ccp; return S_OK; }else if(IsEqualGUID(&IID_nsCycleCollectionISupports, riid)) { - *ppv = &This->IDispatchEx_iface; + *ppv = &This->IWineJSDispatchHost_iface; return S_OK; }else if(IsEqualGUID(&IID_IDispatchJS, riid) || IsEqualGUID(&IID_UndocumentedScriptIface, riid) || @@ -1587,24 +1589,24 @@ static HRESULT WINAPI DispatchEx_QueryInterface(IDispatchEx *iface, REFIID riid, }
ret: - IDispatchEx_AddRef(&This->IDispatchEx_iface); + IWineJSDispatchHost_AddRef(&This->IWineJSDispatchHost_iface); return S_OK; }
-static ULONG WINAPI DispatchEx_AddRef(IDispatchEx *iface) +static ULONG WINAPI DispatchEx_AddRef(IWineJSDispatchHost *iface) { - DispatchEx *This = impl_from_IDispatchEx(iface); - LONG ref = ccref_incr(&This->ccref, (nsISupports*)&This->IDispatchEx_iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface); + LONG ref = ccref_incr(&This->ccref, (nsISupports*)&This->IWineJSDispatchHost_iface);
TRACE("%s (%p) ref=%ld\n", This->info->desc->name, This, ref);
return ref; }
-static ULONG WINAPI DispatchEx_Release(IDispatchEx *iface) +static ULONG WINAPI DispatchEx_Release(IWineJSDispatchHost *iface) { - DispatchEx *This = impl_from_IDispatchEx(iface); - LONG ref = ccref_decr(&This->ccref, (nsISupports*)&This->IDispatchEx_iface, &dispex_ccp); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface); + LONG ref = ccref_decr(&This->ccref, (nsISupports*)&This->IWineJSDispatchHost_iface, &dispex_ccp);
TRACE("%s (%p) ref=%ld\n", This->info->desc->name, This, ref);
@@ -1612,17 +1614,17 @@ static ULONG WINAPI DispatchEx_Release(IDispatchEx *iface) * an extra care for objects that need an immediate clean up. See Gecko's * NS_IMPL_CYCLE_COLLECTING_NATIVE_RELEASE_WITH_LAST_RELEASE for details. */ if(!ref && This->info->desc->vtbl->last_release) { - ccref_incr(&This->ccref, (nsISupports*)&This->IDispatchEx_iface); + ccref_incr(&This->ccref, (nsISupports*)&This->IWineJSDispatchHost_iface); This->info->desc->vtbl->last_release(This); - ccref_decr(&This->ccref, (nsISupports*)&This->IDispatchEx_iface, &dispex_ccp); + ccref_decr(&This->ccref, (nsISupports*)&This->IWineJSDispatchHost_iface, &dispex_ccp); }
return ref; }
-static HRESULT WINAPI DispatchEx_GetTypeInfoCount(IDispatchEx *iface, UINT *pctinfo) +static HRESULT WINAPI DispatchEx_GetTypeInfoCount(IWineJSDispatchHost *iface, UINT *pctinfo) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface);
TRACE("%s (%p)->(%p)\n", This->info->desc->name, This, pctinfo);
@@ -1630,10 +1632,10 @@ static HRESULT WINAPI DispatchEx_GetTypeInfoCount(IDispatchEx *iface, UINT *pcti return S_OK; }
-static HRESULT WINAPI DispatchEx_GetTypeInfo(IDispatchEx *iface, UINT iTInfo, - LCID lcid, ITypeInfo **ppTInfo) +static HRESULT WINAPI DispatchEx_GetTypeInfo(IWineJSDispatchHost *iface, UINT iTInfo, + LCID lcid, ITypeInfo **ppTInfo) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface); HRESULT hres;
TRACE("%s (%p)->(%u %lu %p)\n", This->info->desc->name, This, iTInfo, lcid, ppTInfo); @@ -1646,11 +1648,11 @@ static HRESULT WINAPI DispatchEx_GetTypeInfo(IDispatchEx *iface, UINT iTInfo, return S_OK; }
-static HRESULT WINAPI DispatchEx_GetIDsOfNames(IDispatchEx *iface, REFIID riid, - LPOLESTR *rgszNames, UINT cNames, - LCID lcid, DISPID *rgDispId) +static HRESULT WINAPI DispatchEx_GetIDsOfNames(IWineJSDispatchHost *iface, REFIID riid, + LPOLESTR *rgszNames, UINT cNames, + LCID lcid, DISPID *rgDispId) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface); HRESULT hres = S_OK;
TRACE("%s (%p)->(%s %p %u %lu %p)\n", This->info->desc->name, This, debugstr_guid(riid), rgszNames, @@ -1658,27 +1660,27 @@ static HRESULT WINAPI DispatchEx_GetIDsOfNames(IDispatchEx *iface, REFIID riid,
/* Native ignores all cNames > 1, and doesn't even fill them */ if(cNames) - hres = IDispatchEx_GetDispID(&This->IDispatchEx_iface, rgszNames[0], 0, rgDispId); + hres = IWineJSDispatchHost_GetDispID(&This->IWineJSDispatchHost_iface, rgszNames[0], 0, rgDispId);
return hres; }
-static HRESULT WINAPI DispatchEx_Invoke(IDispatchEx *iface, DISPID dispIdMember, +static HRESULT WINAPI DispatchEx_Invoke(IWineJSDispatchHost *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface);
TRACE("%s (%p)->(%ld %s %ld %d %p %p %p %p)\n", This->info->desc->name, This, dispIdMember, debugstr_guid(riid), lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
- return IDispatchEx_InvokeEx(&This->IDispatchEx_iface, dispIdMember, lcid, wFlags, pDispParams, + return IWineJSDispatchHost_InvokeEx(&This->IWineJSDispatchHost_iface, dispIdMember, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, NULL); }
-static HRESULT WINAPI DispatchEx_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD grfdex, DISPID *pid) +static HRESULT WINAPI DispatchEx_GetDispID(IWineJSDispatchHost *iface, BSTR bstrName, DWORD grfdex, DISPID *pid) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface); dynamic_prop_t *dprop = NULL; HRESULT hres;
@@ -1711,10 +1713,10 @@ static HRESULT WINAPI DispatchEx_GetDispID(IDispatchEx *iface, BSTR bstrName, DW return S_OK; }
-static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, +static HRESULT WINAPI DispatchEx_InvokeEx(IWineJSDispatchHost *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface); HRESULT hres;
TRACE("%s (%p)->(%lx %lx %x %p %p %p %p)\n", This->info->desc->name, This, id, lcid, wFlags, pdp, pvarRes, pei, pspCaller); @@ -1803,9 +1805,9 @@ static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lc } }
-static HRESULT WINAPI DispatchEx_DeleteMemberByName(IDispatchEx *iface, BSTR name, DWORD grfdex) +static HRESULT WINAPI DispatchEx_DeleteMemberByName(IWineJSDispatchHost *iface, BSTR name, DWORD grfdex) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface); DISPID id; HRESULT hres;
@@ -1814,7 +1816,7 @@ static HRESULT WINAPI DispatchEx_DeleteMemberByName(IDispatchEx *iface, BSTR nam if(dispex_compat_mode(This) < COMPAT_MODE_IE8 && !This->info->desc->vtbl->delete) return E_NOTIMPL;
- hres = IDispatchEx_GetDispID(&This->IDispatchEx_iface, name, grfdex & ~fdexNameEnsure, &id); + hres = IWineJSDispatchHost_GetDispID(&This->IWineJSDispatchHost_iface, name, grfdex & ~fdexNameEnsure, &id); if(FAILED(hres)) { compat_mode_t compat_mode = dispex_compat_mode(This); TRACE("property %s not found\n", debugstr_w(name)); @@ -1822,12 +1824,12 @@ static HRESULT WINAPI DispatchEx_DeleteMemberByName(IDispatchEx *iface, BSTR nam compat_mode < COMPAT_MODE_IE9 ? hres : S_OK; }
- return IDispatchEx_DeleteMemberByDispID(&This->IDispatchEx_iface, id); + return IWineJSDispatchHost_DeleteMemberByDispID(&This->IWineJSDispatchHost_iface, id); }
-static HRESULT WINAPI DispatchEx_DeleteMemberByDispID(IDispatchEx *iface, DISPID id) +static HRESULT WINAPI DispatchEx_DeleteMemberByDispID(IWineJSDispatchHost *iface, DISPID id) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface);
TRACE("%s (%p)->(%lx)\n", This->info->desc->name, This, id);
@@ -1855,16 +1857,16 @@ static HRESULT WINAPI DispatchEx_DeleteMemberByDispID(IDispatchEx *iface, DISPID return S_OK; }
-static HRESULT WINAPI DispatchEx_GetMemberProperties(IDispatchEx *iface, DISPID id, DWORD grfdexFetch, DWORD *pgrfdex) +static HRESULT WINAPI DispatchEx_GetMemberProperties(IWineJSDispatchHost *iface, DISPID id, DWORD grfdexFetch, DWORD *pgrfdex) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface); FIXME("%s (%p)->(%lx %lx %p)\n", This->info->desc->name, This, id, grfdexFetch, pgrfdex); return E_NOTIMPL; }
-static HRESULT WINAPI DispatchEx_GetMemberName(IDispatchEx *iface, DISPID id, BSTR *pbstrName) +static HRESULT WINAPI DispatchEx_GetMemberName(IWineJSDispatchHost *iface, DISPID id, BSTR *pbstrName) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface); func_info_t *func; HRESULT hres;
@@ -1917,9 +1919,9 @@ static HRESULT next_dynamic_id(DispatchEx *dispex, DWORD idx, DISPID *ret_id) return S_OK; }
-static HRESULT WINAPI DispatchEx_GetNextDispID(IDispatchEx *iface, DWORD grfdex, DISPID id, DISPID *pid) +static HRESULT WINAPI DispatchEx_GetNextDispID(IWineJSDispatchHost *iface, DWORD grfdex, DISPID id, DISPID *pid) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface); func_info_t *func; HRESULT hres;
@@ -1971,14 +1973,14 @@ static HRESULT WINAPI DispatchEx_GetNextDispID(IDispatchEx *iface, DWORD grfdex, return S_FALSE; }
-static HRESULT WINAPI DispatchEx_GetNameSpaceParent(IDispatchEx *iface, IUnknown **ppunk) +static HRESULT WINAPI DispatchEx_GetNameSpaceParent(IWineJSDispatchHost *iface, IUnknown **ppunk) { - DispatchEx *This = impl_from_IDispatchEx(iface); + DispatchEx *This = impl_from_IWineJSDispatchHost(iface); FIXME("%s (%p)->(%p)\n", This->info->desc->name, This, ppunk); return E_NOTIMPL; }
-static IDispatchExVtbl DispatchExVtbl = { +static IWineJSDispatchHostVtbl JSDispatchHostVtbl = { DispatchEx_QueryInterface, DispatchEx_AddRef, DispatchEx_Release, @@ -1998,7 +2000,7 @@ static IDispatchExVtbl DispatchExVtbl = {
static nsresult NSAPI dispex_traverse(void *ccp, void *p, nsCycleCollectionTraversalCallback *cb) { - DispatchEx *This = impl_from_IDispatchEx(p); + DispatchEx *This = impl_from_IWineJSDispatchHost(p); dynamic_prop_t *prop;
describe_cc_node(&This->ccref, This->info->desc->name, cb); @@ -2018,7 +2020,7 @@ static nsresult NSAPI dispex_traverse(void *ccp, void *p, nsCycleCollectionTrave for(iter = This->dynamic_data->func_disps; iter < end; iter++) { if(!iter->func_obj) continue; - note_cc_edge((nsISupports*)&iter->func_obj->dispex.IDispatchEx_iface, "func_obj", cb); + note_cc_edge((nsISupports*)&iter->func_obj->dispex.IWineJSDispatchHost_iface, "func_obj", cb); traverse_variant(&iter->val, "func_val", cb); } } @@ -2045,7 +2047,7 @@ void dispex_props_unlink(DispatchEx *This) if(!iter->func_obj) continue; iter->func_obj->obj = NULL; - IDispatchEx_Release(&iter->func_obj->dispex.IDispatchEx_iface); + IWineJSDispatchHost_Release(&iter->func_obj->dispex.IWineJSDispatchHost_iface); VariantClear(&iter->val); }
@@ -2056,7 +2058,7 @@ void dispex_props_unlink(DispatchEx *This)
static nsresult NSAPI dispex_unlink(void *p) { - DispatchEx *This = impl_from_IDispatchEx(p); + DispatchEx *This = impl_from_IWineJSDispatchHost(p);
if(This->info->desc->vtbl->unlink) This->info->desc->vtbl->unlink(This); @@ -2067,7 +2069,7 @@ static nsresult NSAPI dispex_unlink(void *p)
static void NSAPI dispex_delete_cycle_collectable(void *p) { - DispatchEx *This = impl_from_IDispatchEx(p); + DispatchEx *This = impl_from_IWineJSDispatchHost(p); dynamic_prop_t *prop;
if(This->info->desc->vtbl->unlink) @@ -2089,7 +2091,7 @@ static void NSAPI dispex_delete_cycle_collectable(void *p) for(iter = This->dynamic_data->func_disps; iter < This->dynamic_data->func_disps + This->info->func_disp_cnt; iter++) { if(iter->func_obj) { iter->func_obj->obj = NULL; - IDispatchEx_Release(&iter->func_obj->dispex.IDispatchEx_iface); + IWineJSDispatchHost_Release(&iter->func_obj->dispex.IWineJSDispatchHost_iface); } VariantClear(&iter->val); } @@ -2122,7 +2124,7 @@ void init_dispatch(DispatchEx *dispex, dispex_static_data_t *data, compat_mode_t { assert(compat_mode < COMPAT_MODE_CNT);
- dispex->IDispatchEx_iface.lpVtbl = &DispatchExVtbl; + dispex->IWineJSDispatchHost_iface.lpVtbl = &JSDispatchHostVtbl; dispex->dynamic_data = NULL; ccref_init(&dispex->ccref, 1);
diff --git a/dlls/mshtml/htmlattr.c b/dlls/mshtml/htmlattr.c index 8a652619b59..eaf7e4fc9c5 100644 --- a/dlls/mshtml/htmlattr.c +++ b/dlls/mshtml/htmlattr.c @@ -55,7 +55,7 @@ static HRESULT WINAPI HTMLDOMAttribute_get_nodeName(IHTMLDOMAttribute *iface, BS return *p ? S_OK : E_OUTOFMEMORY; }
- return IDispatchEx_GetMemberName(&This->elem->node.event_target.dispex.IDispatchEx_iface, This->dispid, p); + return IWineJSDispatchHost_GetMemberName(&This->elem->node.event_target.dispex.IWineJSDispatchHost_iface, This->dispid, p); }
static HRESULT WINAPI HTMLDOMAttribute_put_nodeValue(IHTMLDOMAttribute *iface, VARIANT v) @@ -73,7 +73,7 @@ static HRESULT WINAPI HTMLDOMAttribute_put_nodeValue(IHTMLDOMAttribute *iface, V
memset(&ei, 0, sizeof(ei));
- return IDispatchEx_InvokeEx(&This->elem->node.event_target.dispex.IDispatchEx_iface, This->dispid, LOCALE_SYSTEM_DEFAULT, + return IWineJSDispatchHost_InvokeEx(&This->elem->node.event_target.dispex.IWineJSDispatchHost_iface, This->dispid, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYPUT, &dp, &ret, &ei, NULL); }
@@ -110,7 +110,7 @@ static HRESULT WINAPI HTMLDOMAttribute_get_specified(IHTMLDOMAttribute *iface, V return S_OK; }
- hres = IDispatchEx_GetMemberName(&This->elem->node.event_target.dispex.IDispatchEx_iface, This->dispid, &name); + hres = IWineJSDispatchHost_GetMemberName(&This->elem->node.event_target.dispex.IWineJSDispatchHost_iface, This->dispid, &name); if(FAILED(hres)) return hres;
diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index 9aa0cefc21d..d45cc4cc7a9 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -5529,8 +5529,8 @@ static HRESULT HTMLDocumentNode_location_hook(DispatchEx *dispex, WORD flags, DI if(!This->window->base.outer_window) return E_FAIL;
- return IDispatchEx_InvokeEx(&This->window->event_target.dispex.IDispatchEx_iface, DISPID_IHTMLWINDOW2_LOCATION, - 0, flags, dp, res, ei, caller); + return IWineJSDispatchHost_InvokeEx(&This->window->event_target.dispex.IWineJSDispatchHost_iface, + DISPID_IHTMLWINDOW2_LOCATION, 0, flags, dp, res, ei, caller); }
static HRESULT HTMLDocumentNode_pre_handle_event(DispatchEx* dispex, DOMEvent *event) diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c index e62c08f1148..1e20e75366a 100644 --- a/dlls/mshtml/htmlelem.c +++ b/dlls/mshtml/htmlelem.c @@ -1170,7 +1170,7 @@ static HRESULT set_elem_attr_value_by_dispid(HTMLElement *elem, DISPID dispid, V return S_OK; }
- return IDispatchEx_InvokeEx(&elem->node.event_target.dispex.IDispatchEx_iface, dispid, + return IWineJSDispatchHost_InvokeEx(&elem->node.event_target.dispex.IWineJSDispatchHost_iface, dispid, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYPUT, &dp, NULL, &ei, NULL); }
@@ -1189,7 +1189,7 @@ static HRESULT WINAPI HTMLElement_setAttribute(IHTMLElement *iface, BSTR strAttr TRACE("(%p)->(%s %s %08lx)\n", This, debugstr_w(strAttributeName), debugstr_variant(&AttributeValue), lFlags);
if(compat_mode < COMPAT_MODE_IE9 || !This->dom_element) { - hres = IDispatchEx_GetDispID(&This->node.event_target.dispex.IDispatchEx_iface, translate_attr_name(strAttributeName, compat_mode), + hres = IWineJSDispatchHost_GetDispID(&This->node.event_target.dispex.IWineJSDispatchHost_iface, translate_attr_name(strAttributeName, compat_mode), (lFlags&ATTRFLAG_CASESENSITIVE ? fdexNameCaseSensitive : fdexNameCaseInsensitive) | fdexNameEnsure, &dispid); if(FAILED(hres)) return hres; @@ -1241,7 +1241,7 @@ HRESULT get_elem_attr_value_by_dispid(HTMLElement *elem, DISPID dispid, VARIANT DISPPARAMS dispParams = {NULL, NULL, 0, 0}; EXCEPINFO excep;
- return IDispatchEx_InvokeEx(&elem->node.event_target.dispex.IDispatchEx_iface, dispid, LOCALE_SYSTEM_DEFAULT, + return IWineJSDispatchHost_InvokeEx(&elem->node.event_target.dispex.IWineJSDispatchHost_iface, dispid, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET, &dispParams, ret, &excep, NULL); }
@@ -1288,7 +1288,7 @@ static HRESULT WINAPI HTMLElement_getAttribute(IHTMLElement *iface, BSTR strAttr FIXME("Unsupported flags %lx\n", lFlags);
if(compat_mode < COMPAT_MODE_IE9 || !This->dom_element) { - hres = IDispatchEx_GetDispID(&This->node.event_target.dispex.IDispatchEx_iface, translate_attr_name(strAttributeName, compat_mode), + hres = IWineJSDispatchHost_GetDispID(&This->node.event_target.dispex.IWineJSDispatchHost_iface, translate_attr_name(strAttributeName, compat_mode), lFlags&ATTRFLAG_CASESENSITIVE ? fdexNameCaseSensitive : fdexNameCaseInsensitive, &dispid); if(FAILED(hres)) { V_VT(AttributeValue) = VT_NULL; @@ -1336,7 +1336,7 @@ static HRESULT WINAPI HTMLElement_removeAttribute(IHTMLElement *iface, BSTR strA TRACE("(%p)->(%s %lx %p)\n", This, debugstr_w(strAttributeName), lFlags, pfSuccess);
if(compat_mode < COMPAT_MODE_IE9 || !This->dom_element) { - hres = IDispatchEx_GetDispID(&This->node.event_target.dispex.IDispatchEx_iface, translate_attr_name(strAttributeName, compat_mode), + hres = IWineJSDispatchHost_GetDispID(&This->node.event_target.dispex.IWineJSDispatchHost_iface, translate_attr_name(strAttributeName, compat_mode), lFlags&ATTRFLAG_CASESENSITIVE ? fdexNameCaseSensitive : fdexNameCaseInsensitive, &id); if(hres == DISP_E_UNKNOWNNAME) { *pfSuccess = VARIANT_FALSE; @@ -2483,7 +2483,7 @@ static HRESULT WINAPI HTMLElement_toString(IHTMLElement *iface, BSTR *String) if(!String) return E_INVALIDARG;
- hres = IDispatchEx_InvokeEx(&This->node.event_target.dispex.IDispatchEx_iface, DISPID_VALUE, + hres = IWineJSDispatchHost_InvokeEx(&This->node.event_target.dispex.IWineJSDispatchHost_iface, DISPID_VALUE, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYGET, NULL, &var, NULL, NULL); if(SUCCEEDED(hres)) { assert(V_VT(&var) == VT_BSTR); @@ -4429,7 +4429,7 @@ static HRESULT WINAPI HTMLElement4_setAttributeNode(IHTMLElement4 *iface, IHTMLD return E_INVALIDARG; }
- hres = IDispatchEx_GetDispID(&This->node.event_target.dispex.IDispatchEx_iface, + hres = IWineJSDispatchHost_GetDispID(&This->node.event_target.dispex.IWineJSDispatchHost_iface, attr->name, fdexNameCaseInsensitive|fdexNameEnsure, &dispid); if(FAILED(hres)) return hres; @@ -6399,7 +6399,7 @@ HRESULT HTMLElement_populate_props(DispatchEx *dispex) continue; }
- hres = IDispatchEx_GetDispID(&dispex->IDispatchEx_iface, name, fdexNameCaseInsensitive, &id); + hres = IWineJSDispatchHost_GetDispID(&dispex->IWineJSDispatchHost_iface, name, fdexNameCaseInsensitive, &id); if(hres != DISP_E_UNKNOWNNAME) { nsIDOMAttr_Release(attr); SysFreeString(name); @@ -7544,7 +7544,7 @@ static HRESULT create_filters_collection(compat_mode_t compat_mode, IHTMLFilters
static HRESULT get_attr_dispid_by_relative_idx(HTMLAttributeCollection *This, LONG *idx, DISPID start, DISPID *dispid) { - IDispatchEx *dispex = &This->elem->node.event_target.dispex.IDispatchEx_iface; + IWineJSDispatchHost *dispex = &This->elem->node.event_target.dispex.IWineJSDispatchHost_iface; DISPID id = start; LONG len = -1; HRESULT hres; @@ -7552,7 +7552,7 @@ static HRESULT get_attr_dispid_by_relative_idx(HTMLAttributeCollection *This, LO FIXME("filter non-enumerable attributes out\n");
while(1) { - hres = IDispatchEx_GetNextDispID(dispex, fdexEnumAll, id, &id); + hres = IWineJSDispatchHost_GetNextDispID(dispex, fdexEnumAll, id, &id); if(FAILED(hres)) return hres; else if(hres == S_FALSE) @@ -7593,7 +7593,7 @@ static inline HRESULT get_attr_dispid_by_name(HTMLAttributeCollection *This, BST } }
- hres = IDispatchEx_GetDispID(&This->elem->node.event_target.dispex.IDispatchEx_iface, + hres = IWineJSDispatchHost_GetDispID(&This->elem->node.event_target.dispex.IWineJSDispatchHost_iface, name, fdexNameCaseInsensitive, id); return hres; } diff --git a/dlls/mshtml/htmlelemcol.c b/dlls/mshtml/htmlelemcol.c index 8b69de72a17..191fa8cbc1e 100644 --- a/dlls/mshtml/htmlelemcol.c +++ b/dlls/mshtml/htmlelemcol.c @@ -315,7 +315,7 @@ static BOOL is_elem_name(HTMLElement *elem, LPCWSTR name) static HRESULT get_item_idx(HTMLElementCollection *This, UINT idx, IDispatch **ret) { if(idx < This->len) { - *ret = (IDispatch*)&This->elems[idx]->node.event_target.dispex.IDispatchEx_iface; + *ret = (IDispatch*)&This->elems[idx]->node.event_target.dispex.IWineJSDispatchHost_iface; IDispatch_AddRef(*ret); }
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index f83153fc084..dad7174681d 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -2056,7 +2056,7 @@ static HRESULT WINAPI DOMEvent_get_srcElement(IDOMEvent *iface, IHTMLElement **p TRACE("(%p)->(%p)\n", This, p);
if(This->target) - IDispatchEx_QueryInterface(&This->target->dispex.IDispatchEx_iface, &IID_IHTMLElement, (void**)p); + IWineJSDispatchHost_QueryInterface(&This->target->dispex.IWineJSDispatchHost_iface, &IID_IHTMLElement, (void**)p); else *p = NULL; return S_OK; @@ -4167,7 +4167,7 @@ static void call_event_handlers(EventTarget *event_target, DOMEvent *event, disp skip_onevent_listener = TRUE;
V_VT(&arg) = VT_DISPATCH; - V_DISPATCH(&arg) = (IDispatch*)&event_target->dispex.IDispatchEx_iface; + V_DISPATCH(&arg) = (IDispatch*)&event_target->dispex.IWineJSDispatchHost_iface; V_VT(&v) = VT_EMPTY; if(vtbl->get_dispatch_this) V_DISPATCH(&arg) = vtbl->get_dispatch_this(&event_target->dispex); @@ -4249,7 +4249,7 @@ static void call_event_handlers(EventTarget *event_target, DOMEvent *event, disp DISPPARAMS dp = {args, &named_arg, 2, 1};
V_VT(args) = VT_DISPATCH; - V_DISPATCH(args) = (IDispatch*)&event_target->dispex.IDispatchEx_iface; + V_DISPATCH(args) = (IDispatch*)&event_target->dispex.IWineJSDispatchHost_iface; if(vtbl->get_dispatch_this) V_DISPATCH(args) = vtbl->get_dispatch_this(&event_target->dispex); IDispatch_AddRef(V_DISPATCH(args)); diff --git a/dlls/mshtml/htmlframe.c b/dlls/mshtml/htmlframe.c index d842f82672d..953add5672d 100644 --- a/dlls/mshtml/htmlframe.c +++ b/dlls/mshtml/htmlframe.c @@ -893,7 +893,7 @@ static HRESULT HTMLFrameElement_invoke(DispatchEx *dispex, DISPID id, LCID lcid, return E_FAIL; }
- return IDispatchEx_InvokeEx(&This->framebase.content_window->IDispatchEx_iface, id, lcid, + return IWineJSDispatchHost_InvokeEx(&This->framebase.content_window->IWineJSDispatchHost_iface, id, lcid, flags, params, res, ei, caller); }
@@ -1330,7 +1330,7 @@ static HRESULT HTMLIFrame_invoke(DispatchEx *dispex, DISPID id, LCID lcid, WORD return E_FAIL; }
- return IDispatchEx_InvokeEx(&This->framebase.content_window->IDispatchEx_iface, id, lcid, + return IWineJSDispatchHost_InvokeEx(&This->framebase.content_window->IWineJSDispatchHost_iface, id, lcid, flags, params, res, ei, caller); }
diff --git a/dlls/mshtml/htmlstyle.c b/dlls/mshtml/htmlstyle.c index 0585f8314d6..5816139854f 100644 --- a/dlls/mshtml/htmlstyle.c +++ b/dlls/mshtml/htmlstyle.c @@ -2917,7 +2917,7 @@ static HRESULT WINAPI HTMLStyle_removeAttribute(IHTMLStyle *iface, BSTR strAttri DISPID dispid; unsigned i;
- hres = IDispatchEx_GetDispID(&This->css_style.dispex.IDispatchEx_iface, strAttributeName, + hres = IWineJSDispatchHost_GetDispID(&This->css_style.dispex.IWineJSDispatchHost_iface, strAttributeName, (lFlags&1) ? fdexNameCaseSensitive : fdexNameCaseInsensitive, &dispid); if(hres != S_OK) { *pfSuccess = VARIANT_FALSE; diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c index 82c1b1db029..1f4fe6ffd7a 100644 --- a/dlls/mshtml/htmlwindow.c +++ b/dlls/mshtml/htmlwindow.c @@ -211,8 +211,8 @@ static HRESULT WINAPI outer_window_QueryInterface(IHTMLWindow2 *iface, REFIID ri }else if(IsEqualGUID(&IID_nsCycleCollectionISupports, riid)) { *ppv = &This->base.IHTMLWindow2_iface; return S_OK; - }else if(IsEqualGUID(&IID_IDispatchEx, riid)) { - *ppv = &This->IDispatchEx_iface; + }else if(IsEqualGUID(&IID_IDispatchEx, riid) || IsEqualGUID(&IID_IWineJSDispatchHost, riid)) { + *ppv = &This->IWineJSDispatchHost_iface; }else if(IsEqualGUID(&IID_IEventTarget, riid)) { if(!This->base.inner_window->doc || This->base.inner_window->doc->document_mode < COMPAT_MODE_IE9) return E_NOINTERFACE; @@ -3277,34 +3277,34 @@ static const IWineHTMLWindowCompatPrivateVtbl WineHTMLWindowCompatPrivateVtbl = window_compat_private_get_performance, };
-static inline HTMLOuterWindow *impl_from_IDispatchEx(IDispatchEx *iface) +static inline HTMLOuterWindow *impl_from_IWineJSDispatchHost(IWineJSDispatchHost *iface) { - return CONTAINING_RECORD(iface, HTMLOuterWindow, IDispatchEx_iface); + return CONTAINING_RECORD(iface, HTMLOuterWindow, IWineJSDispatchHost_iface); }
-static HRESULT WINAPI WindowDispEx_QueryInterface(IDispatchEx *iface, REFIID riid, void **ppv) +static HRESULT WINAPI WindowDispEx_QueryInterface(IWineJSDispatchHost *iface, REFIID riid, void **ppv) { - HTMLOuterWindow *This = impl_from_IDispatchEx(iface); + HTMLOuterWindow *This = impl_from_IWineJSDispatchHost(iface);
return IHTMLWindow2_QueryInterface(&This->base.IHTMLWindow2_iface, riid, ppv); }
-static ULONG WINAPI WindowDispEx_AddRef(IDispatchEx *iface) +static ULONG WINAPI WindowDispEx_AddRef(IWineJSDispatchHost *iface) { - HTMLOuterWindow *This = impl_from_IDispatchEx(iface); + HTMLOuterWindow *This = impl_from_IWineJSDispatchHost(iface);
return IHTMLWindow2_AddRef(&This->base.IHTMLWindow2_iface); }
-static ULONG WINAPI WindowDispEx_Release(IDispatchEx *iface) +static ULONG WINAPI WindowDispEx_Release(IWineJSDispatchHost *iface) { - HTMLOuterWindow *This = impl_from_IDispatchEx(iface); + HTMLOuterWindow *This = impl_from_IWineJSDispatchHost(iface);
return IHTMLWindow2_Release(&This->base.IHTMLWindow2_iface); }
-DISPEX_IDISPATCH_NOUNK_IMPL(WindowDispEx, IDispatchEx, - impl_from_IDispatchEx(iface)->base.inner_window->event_target.dispex) +DISPEX_IDISPATCH_NOUNK_IMPL(WindowDispEx, IWineJSDispatchHost, + impl_from_IWineJSDispatchHost(iface)->base.inner_window->event_target.dispex)
static global_prop_t *alloc_global_prop(HTMLInnerWindow *This, global_prop_type_t type, BSTR name) { @@ -3369,69 +3369,70 @@ HRESULT search_window_props(HTMLInnerWindow *This, BSTR bstrName, DWORD grfdex, return DISP_E_UNKNOWNNAME; }
-static HRESULT WINAPI WindowDispEx_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD grfdex, DISPID *pid) +static HRESULT WINAPI WindowDispEx_GetDispID(IWineJSDispatchHost *iface, BSTR bstrName, DWORD grfdex, DISPID *pid) { - HTMLOuterWindow *This = impl_from_IDispatchEx(iface); + HTMLOuterWindow *This = impl_from_IWineJSDispatchHost(iface);
- return IDispatchEx_GetDispID(&This->base.inner_window->event_target.dispex.IDispatchEx_iface, bstrName, grfdex, pid); + return IWineJSDispatchHost_GetDispID(&This->base.inner_window->event_target.dispex.IWineJSDispatchHost_iface, bstrName, grfdex, pid); }
-static HRESULT WINAPI WindowDispEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, +static HRESULT WINAPI WindowDispEx_InvokeEx(IWineJSDispatchHost *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller) { - HTMLOuterWindow *This = impl_from_IDispatchEx(iface); - return IDispatchEx_InvokeEx(&This->base.inner_window->event_target.dispex.IDispatchEx_iface, id, lcid, wFlags, pdp, pvarRes, pei, pspCaller); + HTMLOuterWindow *This = impl_from_IWineJSDispatchHost(iface); + return IWineJSDispatchHost_InvokeEx(&This->base.inner_window->event_target.dispex.IWineJSDispatchHost_iface, id, lcid, wFlags, + pdp, pvarRes, pei, pspCaller); }
-static HRESULT WINAPI WindowDispEx_DeleteMemberByName(IDispatchEx *iface, BSTR bstrName, DWORD grfdex) +static HRESULT WINAPI WindowDispEx_DeleteMemberByName(IWineJSDispatchHost *iface, BSTR bstrName, DWORD grfdex) { - HTMLOuterWindow *This = impl_from_IDispatchEx(iface); + HTMLOuterWindow *This = impl_from_IWineJSDispatchHost(iface);
TRACE("(%p)->(%s %lx)\n", This, debugstr_w(bstrName), grfdex);
- return IDispatchEx_DeleteMemberByName(&This->base.inner_window->event_target.dispex.IDispatchEx_iface, bstrName, grfdex); + return IWineJSDispatchHost_DeleteMemberByName(&This->base.inner_window->event_target.dispex.IWineJSDispatchHost_iface, bstrName, grfdex); }
-static HRESULT WINAPI WindowDispEx_DeleteMemberByDispID(IDispatchEx *iface, DISPID id) +static HRESULT WINAPI WindowDispEx_DeleteMemberByDispID(IWineJSDispatchHost *iface, DISPID id) { - HTMLOuterWindow *This = impl_from_IDispatchEx(iface); + HTMLOuterWindow *This = impl_from_IWineJSDispatchHost(iface);
TRACE("(%p)->(%lx)\n", This, id);
- return IDispatchEx_DeleteMemberByDispID(&This->base.inner_window->event_target.dispex.IDispatchEx_iface, id); + return IWineJSDispatchHost_DeleteMemberByDispID(&This->base.inner_window->event_target.dispex.IWineJSDispatchHost_iface, id); }
-static HRESULT WINAPI WindowDispEx_GetMemberProperties(IDispatchEx *iface, DISPID id, DWORD grfdexFetch, DWORD *pgrfdex) +static HRESULT WINAPI WindowDispEx_GetMemberProperties(IWineJSDispatchHost *iface, DISPID id, DWORD grfdexFetch, DWORD *pgrfdex) { - HTMLOuterWindow *This = impl_from_IDispatchEx(iface); + HTMLOuterWindow *This = impl_from_IWineJSDispatchHost(iface);
TRACE("(%p)->(%lx %lx %p)\n", This, id, grfdexFetch, pgrfdex);
- return IDispatchEx_GetMemberProperties(&This->base.inner_window->event_target.dispex.IDispatchEx_iface, id, grfdexFetch, + return IWineJSDispatchHost_GetMemberProperties(&This->base.inner_window->event_target.dispex.IWineJSDispatchHost_iface, id, grfdexFetch, pgrfdex); }
-static HRESULT WINAPI WindowDispEx_GetMemberName(IDispatchEx *iface, DISPID id, BSTR *pbstrName) +static HRESULT WINAPI WindowDispEx_GetMemberName(IWineJSDispatchHost *iface, DISPID id, BSTR *pbstrName) { - HTMLOuterWindow *This = impl_from_IDispatchEx(iface); + HTMLOuterWindow *This = impl_from_IWineJSDispatchHost(iface);
TRACE("(%p)->(%lx %p)\n", This, id, pbstrName);
- return IDispatchEx_GetMemberName(&This->base.inner_window->event_target.dispex.IDispatchEx_iface, id, pbstrName); + return IWineJSDispatchHost_GetMemberName(&This->base.inner_window->event_target.dispex.IWineJSDispatchHost_iface, id, pbstrName); }
-static HRESULT WINAPI WindowDispEx_GetNextDispID(IDispatchEx *iface, DWORD grfdex, DISPID id, DISPID *pid) +static HRESULT WINAPI WindowDispEx_GetNextDispID(IWineJSDispatchHost *iface, DWORD grfdex, DISPID id, DISPID *pid) { - HTMLOuterWindow *This = impl_from_IDispatchEx(iface); + HTMLOuterWindow *This = impl_from_IWineJSDispatchHost(iface);
TRACE("(%p)->(%lx %lx %p)\n", This, grfdex, id, pid);
- return IDispatchEx_GetNextDispID(&This->base.inner_window->event_target.dispex.IDispatchEx_iface, grfdex, id, pid); + return IWineJSDispatchHost_GetNextDispID(&This->base.inner_window->event_target.dispex.IWineJSDispatchHost_iface, grfdex, id, pid); }
-static HRESULT WINAPI WindowDispEx_GetNameSpaceParent(IDispatchEx *iface, IUnknown **ppunk) +static HRESULT WINAPI WindowDispEx_GetNameSpaceParent(IWineJSDispatchHost *iface, IUnknown **ppunk) { - HTMLOuterWindow *This = impl_from_IDispatchEx(iface); + HTMLOuterWindow *This = impl_from_IWineJSDispatchHost(iface);
TRACE("(%p)->(%p)\n", This, ppunk);
@@ -3439,7 +3440,7 @@ static HRESULT WINAPI WindowDispEx_GetNameSpaceParent(IDispatchEx *iface, IUnkno return S_OK; }
-static const IDispatchExVtbl WindowDispExVtbl = { +static const IWineJSDispatchHostVtbl WindowDispExVtbl = { WindowDispEx_QueryInterface, WindowDispEx_AddRef, WindowDispEx_Release, @@ -3810,7 +3811,7 @@ static HRESULT HTMLWindow_invoke(DispatchEx *dispex, DISPID id, LCID lcid, WORD
prop->type = GLOBAL_DISPEXVAR; prop->id = dispex_id; - return IDispatchEx_InvokeEx(&This->event_target.dispex.IDispatchEx_iface, dispex_id, 0, flags, params, res, ei, caller); + return IWineJSDispatchHost_InvokeEx(&This->event_target.dispex.IWineJSDispatchHost_iface, dispex_id, 0, flags, params, res, ei, caller); } default: FIXME("Not supported flags: %x\n", flags); @@ -3838,7 +3839,7 @@ static HRESULT HTMLWindow_invoke(DispatchEx *dispex, DISPID id, LCID lcid, WORD return E_NOTIMPL; } case GLOBAL_DISPEXVAR: - return IDispatchEx_InvokeEx(&This->event_target.dispex.IDispatchEx_iface, prop->id, 0, flags, params, res, ei, caller); + return IWineJSDispatchHost_InvokeEx(&This->event_target.dispex.IWineJSDispatchHost_iface, prop->id, 0, flags, params, res, ei, caller); default: ERR("invalid type %d\n", prop->type); hres = DISP_E_MEMBERNOTFOUND; @@ -3901,7 +3902,7 @@ static HRESULT IHTMLWindow2_location_hook(DispatchEx *dispex, WORD flags, DISPPA if(FAILED(hres)) return hres;
- hres = IDispatchEx_InvokeEx(&location->dispex.IDispatchEx_iface, DISPID_VALUE, 0, flags, dp, res, ei, caller); + hres = IWineJSDispatchHost_InvokeEx(&location->dispex.IWineJSDispatchHost_iface, DISPID_VALUE, 0, flags, dp, res, ei, caller); IHTMLLocation_Release(&location->IHTMLLocation_iface); return hres; } @@ -4204,7 +4205,7 @@ HRESULT create_outer_window(GeckoBrowser *browser, mozIDOMWindowProxy *mozwindow if(!window) return E_OUTOFMEMORY; window->base.IHTMLWindow2_iface.lpVtbl = &outer_window_HTMLWindow2Vtbl; - window->IDispatchEx_iface.lpVtbl = &WindowDispExVtbl; + window->IWineJSDispatchHost_iface.lpVtbl = &WindowDispExVtbl; window->IEventTarget_iface.lpVtbl = &EventTargetVtbl;
window->base.outer_window = window; diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 4b2cffd0f54..1a8c666ae57 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -413,7 +413,7 @@ typedef struct { } dispex_hook_t;
struct DispatchEx { - IDispatchEx IDispatchEx_iface; + IWineJSDispatchHost IWineJSDispatchHost_iface;
nsCycleCollectingAutoRefCnt ccref;
@@ -424,38 +424,38 @@ struct DispatchEx { #define DISPEX_IDISPATCH_NOUNK_IMPL(prefix, iface_name, dispex) \ static HRESULT WINAPI prefix##_GetTypeInfoCount(iface_name *iface, UINT *count) \ { \ - return IDispatchEx_GetTypeInfoCount(&(dispex).IDispatchEx_iface, count); \ + return IWineJSDispatchHost_GetTypeInfoCount(&(dispex).IWineJSDispatchHost_iface, count); \ } \ static HRESULT WINAPI prefix##_GetTypeInfo(iface_name *iface, \ UINT index, LCID lcid, ITypeInfo **ret) \ { \ - return IDispatchEx_GetTypeInfo(&(dispex).IDispatchEx_iface, index, lcid, ret); \ + return IWineJSDispatchHost_GetTypeInfo(&(dispex).IWineJSDispatchHost_iface, index, lcid, ret); \ } \ static HRESULT WINAPI prefix##_GetIDsOfNames(iface_name *iface, REFIID riid, \ LPOLESTR *names, UINT count, LCID lcid, DISPID *dispid) \ { \ - return IDispatchEx_GetIDsOfNames(&(dispex).IDispatchEx_iface, \ + return IWineJSDispatchHost_GetIDsOfNames(&(dispex).IWineJSDispatchHost_iface, \ riid, names, count, lcid, dispid); \ } \ static HRESULT WINAPI prefix##_Invoke(iface_name *iface, DISPID dispid, REFIID riid, \ LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *res, EXCEPINFO *ei, UINT *err) \ { \ - return IDispatchEx_Invoke(&(dispex).IDispatchEx_iface, dispid, \ + return IWineJSDispatchHost_Invoke(&(dispex).IWineJSDispatchHost_iface, dispid, \ riid, lcid, flags, params, res, ei, err); \ }
#define DISPEX_IDISPATCH_IMPL(prefix, iface_name, dispex) \ static HRESULT WINAPI prefix##_QueryInterface(iface_name *iface, REFIID riid, void **ppv) \ { \ - return IDispatchEx_QueryInterface(&(dispex).IDispatchEx_iface, riid, ppv); \ + return IWineJSDispatchHost_QueryInterface(&(dispex).IWineJSDispatchHost_iface, riid, ppv); \ } \ static ULONG WINAPI prefix##_AddRef(iface_name *iface) \ { \ - return IDispatchEx_AddRef(&(dispex).IDispatchEx_iface); \ + return IWineJSDispatchHost_AddRef(&(dispex).IWineJSDispatchHost_iface); \ } \ static ULONG WINAPI prefix##_Release(iface_name *iface) \ { \ - return IDispatchEx_Release(&(dispex).IDispatchEx_iface); \ + return IWineJSDispatchHost_Release(&(dispex).IWineJSDispatchHost_iface); \ } \ DISPEX_IDISPATCH_NOUNK_IMPL(prefix, iface_name, dispex)
@@ -594,7 +594,7 @@ struct HTMLWindow { struct HTMLOuterWindow { HTMLWindow base; IEventTarget IEventTarget_iface; - IDispatchEx IDispatchEx_iface; + IWineJSDispatchHost IWineJSDispatchHost_iface;
nsCycleCollectingAutoRefCnt ccref; LONG task_magic; diff --git a/dlls/mshtml/mshtml_private_iface.idl b/dlls/mshtml/mshtml_private_iface.idl index 503593d1c25..46bf692b240 100644 --- a/dlls/mshtml/mshtml_private_iface.idl +++ b/dlls/mshtml/mshtml_private_iface.idl @@ -258,3 +258,12 @@ interface IWineXMLHttpRequestPrivate : IDispatch }
} /* library MSHTML_private */ + +[ + object, + uuid(d359f2fe-5531-741b-a41a-5cf92edc971b), + local +] +interface IWineJSDispatchHost : IDispatchEx +{ +} diff --git a/dlls/mshtml/mutation.c b/dlls/mshtml/mutation.c index 44cb2f491af..290174e4785 100644 --- a/dlls/mshtml/mutation.c +++ b/dlls/mshtml/mutation.c @@ -1301,6 +1301,6 @@ HRESULT create_mutation_observer_ctor(compat_mode_t compat_mode, IDispatch **ret
init_dispatch(&obj->dispex, &mutation_observer_ctor_dispex, compat_mode);
- *ret = (IDispatch *)&obj->dispex.IDispatchEx_iface; + *ret = (IDispatch *)&obj->dispex.IWineJSDispatchHost_iface; return S_OK; } diff --git a/dlls/mshtml/oleobj.c b/dlls/mshtml/oleobj.c index cd09117645d..2374ce0ea81 100644 --- a/dlls/mshtml/oleobj.c +++ b/dlls/mshtml/oleobj.c @@ -3542,7 +3542,7 @@ static HRESULT WINAPI DocObjDispatchEx_GetDispID(IDispatchEx *iface, BSTR name, { HTMLDocumentObj *This = impl_from_IDispatchEx(iface);
- return IDispatchEx_GetDispID(&This->doc_node->node.event_target.dispex.IDispatchEx_iface, name, grfdex, pid); + return IWineJSDispatchHost_GetDispID(&This->doc_node->node.event_target.dispex.IWineJSDispatchHost_iface, name, grfdex, pid); }
static HRESULT WINAPI DocObjDispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, @@ -3550,29 +3550,29 @@ static HRESULT WINAPI DocObjDispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, L { HTMLDocumentObj *This = impl_from_IDispatchEx(iface);
- return IDispatchEx_InvokeEx(&This->doc_node->node.event_target.dispex.IDispatchEx_iface, id, lcid, - wFlags, pdp, pvarRes, pei, pspCaller); + return IWineJSDispatchHost_InvokeEx(&This->doc_node->node.event_target.dispex.IWineJSDispatchHost_iface, id, lcid, + wFlags, pdp, pvarRes, pei, pspCaller); }
static HRESULT WINAPI DocObjDispatchEx_DeleteMemberByName(IDispatchEx *iface, BSTR bstrName, DWORD grfdex) { HTMLDocumentObj *This = impl_from_IDispatchEx(iface);
- return IDispatchEx_DeleteMemberByName(&This->doc_node->node.event_target.dispex.IDispatchEx_iface, bstrName, grfdex); + return IWineJSDispatchHost_DeleteMemberByName(&This->doc_node->node.event_target.dispex.IWineJSDispatchHost_iface, bstrName, grfdex); }
static HRESULT WINAPI DocObjDispatchEx_DeleteMemberByDispID(IDispatchEx *iface, DISPID id) { HTMLDocumentObj *This = impl_from_IDispatchEx(iface);
- return IDispatchEx_DeleteMemberByDispID(&This->doc_node->node.event_target.dispex.IDispatchEx_iface, id); + return IWineJSDispatchHost_DeleteMemberByDispID(&This->doc_node->node.event_target.dispex.IWineJSDispatchHost_iface, id); }
static HRESULT WINAPI DocObjDispatchEx_GetMemberProperties(IDispatchEx *iface, DISPID id, DWORD grfdexFetch, DWORD *pgrfdex) { HTMLDocumentObj *This = impl_from_IDispatchEx(iface);
- return IDispatchEx_GetMemberProperties(&This->doc_node->node.event_target.dispex.IDispatchEx_iface, id, grfdexFetch, + return IWineJSDispatchHost_GetMemberProperties(&This->doc_node->node.event_target.dispex.IWineJSDispatchHost_iface, id, grfdexFetch, pgrfdex); }
@@ -3580,21 +3580,21 @@ static HRESULT WINAPI DocObjDispatchEx_GetMemberName(IDispatchEx *iface, DISPID { HTMLDocumentObj *This = impl_from_IDispatchEx(iface);
- return IDispatchEx_GetMemberName(&This->doc_node->node.event_target.dispex.IDispatchEx_iface, id, name); + return IWineJSDispatchHost_GetMemberName(&This->doc_node->node.event_target.dispex.IWineJSDispatchHost_iface, id, name); }
static HRESULT WINAPI DocObjDispatchEx_GetNextDispID(IDispatchEx *iface, DWORD grfdex, DISPID id, DISPID *pid) { HTMLDocumentObj *This = impl_from_IDispatchEx(iface);
- return IDispatchEx_GetNextDispID(&This->doc_node->node.event_target.dispex.IDispatchEx_iface, grfdex, id, pid); + return IWineJSDispatchHost_GetNextDispID(&This->doc_node->node.event_target.dispex.IWineJSDispatchHost_iface, grfdex, id, pid); }
static HRESULT WINAPI DocObjDispatchEx_GetNameSpaceParent(IDispatchEx *iface, IUnknown **ppunk) { HTMLDocumentObj *This = impl_from_IDispatchEx(iface);
- return IDispatchEx_GetNameSpaceParent(&This->doc_node->node.event_target.dispex.IDispatchEx_iface, ppunk); + return IWineJSDispatchHost_GetNameSpaceParent(&This->doc_node->node.event_target.dispex.IWineJSDispatchHost_iface, ppunk); }
static const IDispatchExVtbl DocObjDispatchExVtbl = { diff --git a/dlls/mshtml/omnavigator.c b/dlls/mshtml/omnavigator.c index 49e7685d71d..69a47c2706d 100644 --- a/dlls/mshtml/omnavigator.c +++ b/dlls/mshtml/omnavigator.c @@ -2313,7 +2313,7 @@ static nsresult NSAPI media_query_list_callback_HandleChange(nsIDOMMediaQueryLis DISPPARAMS dp = { args, NULL, 1, 0 };
V_VT(args) = VT_DISPATCH; - V_DISPATCH(args) = (IDispatch*)&media_query_list->dispex.IDispatchEx_iface; + V_DISPATCH(args) = (IDispatch*)&media_query_list->dispex.IWineJSDispatchHost_iface; V_VT(&v) = VT_EMPTY;
TRACE("%p >>>\n", media_query_list); diff --git a/dlls/mshtml/script.c b/dlls/mshtml/script.c index d1da451cb98..b1f24f9d8d3 100644 --- a/dlls/mshtml/script.c +++ b/dlls/mshtml/script.c @@ -1573,7 +1573,7 @@ static EventTarget *find_event_target(HTMLDocumentNode *doc, HTMLScriptElement * }else if(!wcscmp(target_id, L"window")) { if(doc->window) { event_target = &doc->window->event_target; - IDispatchEx_AddRef(&event_target->dispex.IDispatchEx_iface); + IWineJSDispatchHost_AddRef(&event_target->dispex.IWineJSDispatchHost_iface); } }else { HTMLElement *target_elem; @@ -1731,14 +1731,14 @@ void bind_event_scripts(HTMLDocumentNode *doc) if(event_disp) { event_target = find_event_target(doc, script_elem); if(event_target) { - hres = IDispatchEx_QueryInterface(&event_target->dispex.IDispatchEx_iface, &IID_HTMLPluginContainer, + hres = IWineJSDispatchHost_QueryInterface(&event_target->dispex.IWineJSDispatchHost_iface, &IID_HTMLPluginContainer, (void**)&plugin_container); if(SUCCEEDED(hres)) bind_activex_event(doc, plugin_container, event, event_disp); else bind_target_event(doc, event_target, event, event_disp);
- IDispatchEx_Release(&event_target->dispex.IDispatchEx_iface); + IWineJSDispatchHost_Release(&event_target->dispex.IWineJSDispatchHost_iface); if(plugin_container) node_release(&plugin_container->element.node); }