This is mostly just no-ops moving stuff around except for last patch, so they're in a consistent ordering for when we'll replace them to dispex vtbl methods, keeping those patches smaller and more obvious what they change.
Next MR will convert query_interface (and maybe destructor, QI will need a bit more prep work first).
From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlelem.c | 162 ++++++++++++++++++++--------------------- 1 file changed, 81 insertions(+), 81 deletions(-)
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c index 06966954626..314b85b8a72 100644 --- a/dlls/mshtml/htmlelem.c +++ b/dlls/mshtml/htmlelem.c @@ -6780,6 +6780,50 @@ static inline HTMLElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLElement, node); }
+HRESULT HTMLElement_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HTMLDOMNode **ret) +{ + HTMLElement *This = impl_from_HTMLDOMNode(iface); + HTMLElement *new_elem; + HRESULT hres; + + hres = HTMLElement_Create(This->node.doc, nsnode, FALSE, &new_elem); + if(FAILED(hres)) + return hres; + + if(This->filter) { + new_elem->filter = wcsdup(This->filter); + if(!new_elem->filter) { + IHTMLElement_Release(&This->IHTMLElement_iface); + return E_OUTOFMEMORY; + } + } + + *ret = &new_elem->node; + return S_OK; +} + +cp_static_data_t HTMLElementEvents2_data = { HTMLElementEvents2_tid, NULL /* FIXME */, TRUE }; + +const cpc_entry_t HTMLElement_cpc[] = { + HTMLELEMENT_CPC, + {NULL} +}; + +static const NodeImplVtbl HTMLElementImplVtbl = { + .clsid = &CLSID_HTMLUnknownElement, + .qi = HTMLElement_QI, + .destructor = HTMLElement_destructor, + .cpc_entries = HTMLElement_cpc, + .clone = HTMLElement_clone, + .handle_event = HTMLElement_handle_event, + .get_attr_col = HTMLElement_get_attr_col +}; + +static inline HTMLElement *impl_from_DispatchEx(DispatchEx *iface) +{ + return CONTAINING_RECORD(iface, HTMLElement, node.event_target.dispex); +} + void *HTMLElement_QI(HTMLDOMNode *iface, REFIID riid) { HTMLElement *This = impl_from_HTMLDOMNode(iface); @@ -6847,87 +6891,6 @@ void HTMLElement_destructor(HTMLDOMNode *iface) free(This->filter); }
-HRESULT HTMLElement_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HTMLDOMNode **ret) -{ - HTMLElement *This = impl_from_HTMLDOMNode(iface); - HTMLElement *new_elem; - HRESULT hres; - - hres = HTMLElement_Create(This->node.doc, nsnode, FALSE, &new_elem); - if(FAILED(hres)) - return hres; - - if(This->filter) { - new_elem->filter = wcsdup(This->filter); - if(!new_elem->filter) { - IHTMLElement_Release(&This->IHTMLElement_iface); - return E_OUTOFMEMORY; - } - } - - *ret = &new_elem->node; - return S_OK; -} - -HRESULT HTMLElement_handle_event(HTMLDOMNode *iface, DWORD eid, nsIDOMEvent *event, BOOL *prevent_default) -{ - HTMLElement *This = impl_from_HTMLDOMNode(iface); - - switch(eid) { - case EVENTID_KEYDOWN: { - nsIDOMKeyEvent *key_event; - nsresult nsres; - - nsres = nsIDOMEvent_QueryInterface(event, &IID_nsIDOMKeyEvent, (void**)&key_event); - if(NS_SUCCEEDED(nsres)) { - UINT32 code = 0; - - nsIDOMKeyEvent_GetKeyCode(key_event, &code); - - if(code == VK_F1 /* DOM_VK_F1 */) { - DOMEvent *help_event; - HRESULT hres; - - TRACE("F1 pressed\n"); - - hres = create_document_event(This->node.doc, EVENTID_HELP, &help_event); - if(SUCCEEDED(hres)) { - dispatch_event(&This->node.event_target, help_event); - IDOMEvent_Release(&help_event->IDOMEvent_iface); - } - *prevent_default = TRUE; - } - - nsIDOMKeyEvent_Release(key_event); - } - } - } - - return S_OK; -} - -cp_static_data_t HTMLElementEvents2_data = { HTMLElementEvents2_tid, NULL /* FIXME */, TRUE }; - -const cpc_entry_t HTMLElement_cpc[] = { - HTMLELEMENT_CPC, - {NULL} -}; - -static const NodeImplVtbl HTMLElementImplVtbl = { - .clsid = &CLSID_HTMLUnknownElement, - .qi = HTMLElement_QI, - .destructor = HTMLElement_destructor, - .cpc_entries = HTMLElement_cpc, - .clone = HTMLElement_clone, - .handle_event = HTMLElement_handle_event, - .get_attr_col = HTMLElement_get_attr_col -}; - -static inline HTMLElement *impl_from_DispatchEx(DispatchEx *iface) -{ - return CONTAINING_RECORD(iface, HTMLElement, node.event_target.dispex); -} - HRESULT HTMLElement_get_dispid(DispatchEx *dispex, BSTR name, DWORD grfdex, DISPID *pid) { HTMLElement *This = impl_from_DispatchEx(dispex); @@ -7068,6 +7031,43 @@ HRESULT HTMLElement_handle_event_default(DispatchEx *dispex, eventid_t eid, nsID return This->node.vtbl->handle_event(&This->node, eid, nsevent, prevent_default); }
+HRESULT HTMLElement_handle_event(HTMLDOMNode *iface, DWORD eid, nsIDOMEvent *event, BOOL *prevent_default) +{ + HTMLElement *This = impl_from_HTMLDOMNode(iface); + + switch(eid) { + case EVENTID_KEYDOWN: { + nsIDOMKeyEvent *key_event; + nsresult nsres; + + nsres = nsIDOMEvent_QueryInterface(event, &IID_nsIDOMKeyEvent, (void**)&key_event); + if(NS_SUCCEEDED(nsres)) { + UINT32 code = 0; + + nsIDOMKeyEvent_GetKeyCode(key_event, &code); + + if(code == VK_F1 /* DOM_VK_F1 */) { + DOMEvent *help_event; + HRESULT hres; + + TRACE("F1 pressed\n"); + + hres = create_document_event(This->node.doc, EVENTID_HELP, &help_event); + if(SUCCEEDED(hres)) { + dispatch_event(&This->node.event_target, help_event); + IDOMEvent_Release(&help_event->IDOMEvent_iface); + } + *prevent_default = TRUE; + } + + nsIDOMKeyEvent_Release(key_event); + } + } + } + + return S_OK; +} + EventTarget *HTMLElement_get_parent_event_target(DispatchEx *dispex) { HTMLElement *This = impl_from_DispatchEx(dispex);
From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlanchor.c | 42 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/dlls/mshtml/htmlanchor.c b/dlls/mshtml/htmlanchor.c index 8986e617492..441934c892f 100644 --- a/dlls/mshtml/htmlanchor.c +++ b/dlls/mshtml/htmlanchor.c @@ -797,6 +797,11 @@ static inline HTMLAnchorElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLAnchorElement, element.node); }
+static inline HTMLAnchorElement *impl_from_DispatchEx(DispatchEx *iface) +{ + return CONTAINING_RECORD(iface, HTMLAnchorElement, element.node.event_target.dispex); +} + static void *HTMLAnchorElement_QI(HTMLDOMNode *iface, REFIID riid) { HTMLAnchorElement *This = impl_from_HTMLDOMNode(iface); @@ -811,6 +816,22 @@ static void *HTMLAnchorElement_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
+static void HTMLAnchorElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) +{ + HTMLAnchorElement *This = impl_from_DispatchEx(dispex); + HTMLDOMNode_traverse(dispex, cb); + + if(This->nsanchor) + note_cc_edge((nsISupports*)This->nsanchor, "nsanchor", cb); +} + +static void HTMLAnchorElement_unlink(DispatchEx *dispex) +{ + HTMLAnchorElement *This = impl_from_DispatchEx(dispex); + HTMLDOMNode_unlink(dispex); + unlink_ref(&This->nsanchor); +} + static HRESULT HTMLAnchorElement_handle_event(HTMLDOMNode *iface, DWORD eid, nsIDOMEvent *event, BOOL *prevent_default) { HTMLAnchorElement *This = impl_from_HTMLDOMNode(iface); @@ -842,27 +863,6 @@ fallback: return HTMLElement_handle_event(&This->element.node, eid, event, prevent_default); }
-static inline HTMLAnchorElement *impl_from_DispatchEx(DispatchEx *iface) -{ - return CONTAINING_RECORD(iface, HTMLAnchorElement, element.node.event_target.dispex); -} - -static void HTMLAnchorElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) -{ - HTMLAnchorElement *This = impl_from_DispatchEx(dispex); - HTMLDOMNode_traverse(dispex, cb); - - if(This->nsanchor) - note_cc_edge((nsISupports*)This->nsanchor, "nsanchor", cb); -} - -static void HTMLAnchorElement_unlink(DispatchEx *dispex) -{ - HTMLAnchorElement *This = impl_from_DispatchEx(dispex); - HTMLDOMNode_unlink(dispex); - unlink_ref(&This->nsanchor); -} - static const NodeImplVtbl HTMLAnchorElementImplVtbl = { .clsid = &CLSID_HTMLAnchorElement, .qi = HTMLAnchorElement_QI,
From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlarea.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/dlls/mshtml/htmlarea.c b/dlls/mshtml/htmlarea.c index fd810a0baa1..3a3f8c7c57b 100644 --- a/dlls/mshtml/htmlarea.c +++ b/dlls/mshtml/htmlarea.c @@ -413,6 +413,11 @@ static inline HTMLAreaElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLAreaElement, element.node); }
+static inline HTMLAreaElement *impl_from_DispatchEx(DispatchEx *iface) +{ + return CONTAINING_RECORD(iface, HTMLAreaElement, element.node.event_target.dispex); +} + static void *HTMLAreaElement_QI(HTMLDOMNode *iface, REFIID riid) { HTMLAreaElement *This = impl_from_HTMLDOMNode(iface); @@ -423,6 +428,22 @@ static void *HTMLAreaElement_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
+static void HTMLAreaElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) +{ + HTMLAreaElement *This = impl_from_DispatchEx(dispex); + HTMLDOMNode_traverse(dispex, cb); + + if(This->nsarea) + note_cc_edge((nsISupports*)This->nsarea, "nsarea", cb); +} + +static void HTMLAreaElement_unlink(DispatchEx *dispex) +{ + HTMLAreaElement *This = impl_from_DispatchEx(dispex); + HTMLDOMNode_unlink(dispex); + unlink_ref(&This->nsarea); +} + static HRESULT HTMLAreaElement_handle_event(HTMLDOMNode *iface, DWORD eid, nsIDOMEvent *event, BOOL *prevent_default) { HTMLAreaElement *This = impl_from_HTMLDOMNode(iface); @@ -454,27 +475,6 @@ fallback: return HTMLElement_handle_event(&This->element.node, eid, event, prevent_default); }
-static inline HTMLAreaElement *impl_from_DispatchEx(DispatchEx *iface) -{ - return CONTAINING_RECORD(iface, HTMLAreaElement, element.node.event_target.dispex); -} - -static void HTMLAreaElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) -{ - HTMLAreaElement *This = impl_from_DispatchEx(dispex); - HTMLDOMNode_traverse(dispex, cb); - - if(This->nsarea) - note_cc_edge((nsISupports*)This->nsarea, "nsarea", cb); -} - -static void HTMLAreaElement_unlink(DispatchEx *dispex) -{ - HTMLAreaElement *This = impl_from_DispatchEx(dispex); - HTMLDOMNode_unlink(dispex); - unlink_ref(&This->nsarea); -} - static const NodeImplVtbl HTMLAreaElementImplVtbl = { .clsid = &CLSID_HTMLAreaElement, .qi = HTMLAreaElement_QI,
From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlform.c | 58 ++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 30 deletions(-)
diff --git a/dlls/mshtml/htmlform.c b/dlls/mshtml/htmlform.c index 39270de11ca..e4cab195954 100644 --- a/dlls/mshtml/htmlform.c +++ b/dlls/mshtml/htmlform.c @@ -773,6 +773,11 @@ static inline HTMLFormElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLFormElement, element.node); }
+static inline HTMLFormElement *impl_from_DispatchEx(DispatchEx *iface) +{ + return CONTAINING_RECORD(iface, HTMLFormElement, element.node.event_target.dispex); +} + static void *HTMLFormElement_QI(HTMLDOMNode *iface, REFIID riid) { HTMLFormElement *This = impl_from_HTMLDOMNode(iface); @@ -789,8 +794,23 @@ static void *HTMLFormElement_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static HRESULT HTMLFormElement_get_dispid(HTMLDOMNode *iface, - BSTR name, DWORD grfdex, DISPID *pid) +static void HTMLFormElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) +{ + HTMLFormElement *This = impl_from_DispatchEx(dispex); + HTMLDOMNode_traverse(dispex, cb); + + if(This->nsform) + note_cc_edge((nsISupports*)This->nsform, "nsform", cb); +} + +static void HTMLFormElement_unlink(DispatchEx *dispex) +{ + HTMLFormElement *This = impl_from_DispatchEx(dispex); + HTMLDOMNode_unlink(dispex); + unlink_ref(&This->nsform); +} + +static HRESULT HTMLFormElement_get_dispid(HTMLDOMNode *iface, BSTR name, DWORD grfdex, DISPID *dispid) { HTMLFormElement *This = impl_from_HTMLDOMNode(iface); nsIDOMHTMLCollection *elements; @@ -799,7 +819,7 @@ static HRESULT HTMLFormElement_get_dispid(HTMLDOMNode *iface, nsresult nsres; HRESULT hres = DISP_E_UNKNOWNNAME;
- TRACE("(%p)->(%s %lx %p)\n", This, wine_dbgstr_w(name), grfdex, pid); + TRACE("(%p)->(%s %lx %p)\n", This, wine_dbgstr_w(name), grfdex, dispid);
nsres = nsIDOMHTMLFormElement_GetElements(This->nsform, &elements); if(NS_FAILED(nsres)) { @@ -823,7 +843,7 @@ static HRESULT HTMLFormElement_get_dispid(HTMLDOMNode *iface,
i = wcstoul(name, &end_ptr, 10); if(!*end_ptr && i < len) { - *pid = MSHTML_DISPID_CUSTOM_MIN + i; + *dispid = MSHTML_DISPID_CUSTOM_MIN + i; return S_OK; } } @@ -861,7 +881,7 @@ static HRESULT HTMLFormElement_get_dispid(HTMLDOMNode *iface, if(!wcsicmp(str, name)) { nsIDOMElement_Release(elem); /* FIXME: using index for dispid */ - *pid = MSHTML_DISPID_CUSTOM_MIN + i; + *dispid = MSHTML_DISPID_CUSTOM_MIN + i; hres = S_OK; break; } @@ -873,7 +893,7 @@ static HRESULT HTMLFormElement_get_dispid(HTMLDOMNode *iface, if(!wcsicmp(str, name)) { nsAString_Finish(&name_str); /* FIXME: using index for dispid */ - *pid = MSHTML_DISPID_CUSTOM_MIN + i; + *dispid = MSHTML_DISPID_CUSTOM_MIN + i; hres = S_OK; break; } @@ -911,9 +931,8 @@ static HRESULT HTMLFormElement_dispex_get_name(HTMLDOMNode *iface, DISPID id, BS return (*name = SysAllocStringLen(buf, len)) ? S_OK : E_OUTOFMEMORY; }
-static HRESULT HTMLFormElement_invoke(HTMLDOMNode *iface, - DISPID id, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *res, - EXCEPINFO *ei, IServiceProvider *caller) +static HRESULT HTMLFormElement_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid, WORD flags, DISPPARAMS *params, + VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller) { HTMLFormElement *This = impl_from_HTMLDOMNode(iface); IDispatch *ret; @@ -946,27 +965,6 @@ static HRESULT HTMLFormElement_handle_event(HTMLDOMNode *iface, DWORD eid, nsIDO return HTMLElement_handle_event(&This->element.node, eid, event, prevent_default); }
-static inline HTMLFormElement *impl_from_DispatchEx(DispatchEx *iface) -{ - return CONTAINING_RECORD(iface, HTMLFormElement, element.node.event_target.dispex); -} - -static void HTMLFormElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) -{ - HTMLFormElement *This = impl_from_DispatchEx(dispex); - HTMLDOMNode_traverse(dispex, cb); - - if(This->nsform) - note_cc_edge((nsISupports*)This->nsform, "nsform", cb); -} - -static void HTMLFormElement_unlink(DispatchEx *dispex) -{ - HTMLFormElement *This = impl_from_DispatchEx(dispex); - HTMLDOMNode_unlink(dispex); - unlink_ref(&This->nsform); -} - static const NodeImplVtbl HTMLFormElementImplVtbl = { .clsid = &CLSID_HTMLFormElement, .qi = HTMLFormElement_QI,
From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlframe.c | 109 ++++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 55 deletions(-)
diff --git a/dlls/mshtml/htmlframe.c b/dlls/mshtml/htmlframe.c index 991e2ea8ff8..b66e1d91267 100644 --- a/dlls/mshtml/htmlframe.c +++ b/dlls/mshtml/htmlframe.c @@ -887,23 +887,6 @@ static inline HTMLFrameElement *frame_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLFrameElement, framebase.element.node); }
-static void *HTMLFrameElement_QI(HTMLDOMNode *iface, REFIID riid) -{ - HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); - - if(IsEqualGUID(&IID_IHTMLFrameElement3, riid)) - return &This->IHTMLFrameElement3_iface; - - return HTMLFrameBase_QI(&This->framebase, riid); -} - -static void HTMLFrameElement_destructor(HTMLDOMNode *iface) -{ - HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); - - HTMLFrameBase_destructor(&This->framebase); -} - static HRESULT HTMLFrameElement_get_document(HTMLDOMNode *iface, IDispatch **p) { HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); @@ -925,44 +908,6 @@ static HRESULT HTMLFrameElement_get_readystate(HTMLDOMNode *iface, BSTR *p) return IHTMLFrameBase2_get_readyState(&This->framebase.IHTMLFrameBase2_iface, p); }
-static HRESULT HTMLFrameElement_get_dispid(HTMLDOMNode *iface, BSTR name, - DWORD grfdex, DISPID *pid) -{ - HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); - - if(!This->framebase.content_window) - return DISP_E_UNKNOWNNAME; - - return search_window_props(This->framebase.content_window->base.inner_window, name, grfdex, pid); -} - -static HRESULT HTMLFrameElement_get_name(HTMLDOMNode *iface, DISPID id, BSTR *name) -{ - HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); - DWORD idx = id - MSHTML_DISPID_CUSTOM_MIN; - - if(!This->framebase.content_window || - idx >= This->framebase.content_window->base.inner_window->global_prop_cnt) - return DISP_E_MEMBERNOTFOUND; - - *name = SysAllocString(This->framebase.content_window->base.inner_window->global_props[idx].name); - return *name ? S_OK : E_OUTOFMEMORY; -} - -static HRESULT HTMLFrameElement_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid, - WORD flags, DISPPARAMS *params, VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller) -{ - HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); - - if(!This->framebase.content_window) { - ERR("no content window to invoke on\n"); - return E_FAIL; - } - - return IDispatchEx_InvokeEx(&This->framebase.content_window->base.IDispatchEx_iface, id, lcid, - flags, params, res, ei, caller); -} - static HRESULT HTMLFrameElement_bind_to_tree(HTMLDOMNode *iface) { HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); @@ -986,6 +931,16 @@ static inline HTMLFrameElement *frame_from_DispatchEx(DispatchEx *iface) return CONTAINING_RECORD(iface, HTMLFrameElement, framebase.element.node.event_target.dispex); }
+static void *HTMLFrameElement_QI(HTMLDOMNode *iface, REFIID riid) +{ + HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); + + if(IsEqualGUID(&IID_IHTMLFrameElement3, riid)) + return &This->IHTMLFrameElement3_iface; + + return HTMLFrameBase_QI(&This->framebase, riid); +} + static void HTMLFrameElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLFrameElement *This = frame_from_DispatchEx(dispex); @@ -1002,6 +957,50 @@ static void HTMLFrameElement_unlink(DispatchEx *dispex) unlink_ref(&This->framebase.nsframe); }
+static void HTMLFrameElement_destructor(HTMLDOMNode *iface) +{ + HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); + + HTMLFrameBase_destructor(&This->framebase); +} + +static HRESULT HTMLFrameElement_get_dispid(HTMLDOMNode *iface, BSTR name, DWORD grfdex, DISPID *dispid) +{ + HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); + + if(!This->framebase.content_window) + return DISP_E_UNKNOWNNAME; + + return search_window_props(This->framebase.content_window->base.inner_window, name, grfdex, dispid); +} + +static HRESULT HTMLFrameElement_get_name(HTMLDOMNode *iface, DISPID id, BSTR *name) +{ + HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); + DWORD idx = id - MSHTML_DISPID_CUSTOM_MIN; + + if(!This->framebase.content_window || + idx >= This->framebase.content_window->base.inner_window->global_prop_cnt) + return DISP_E_MEMBERNOTFOUND; + + *name = SysAllocString(This->framebase.content_window->base.inner_window->global_props[idx].name); + return *name ? S_OK : E_OUTOFMEMORY; +} + +static HRESULT HTMLFrameElement_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid, WORD flags, DISPPARAMS *params, + VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller) +{ + HTMLFrameElement *This = frame_from_HTMLDOMNode(iface); + + if(!This->framebase.content_window) { + ERR("no content window to invoke on\n"); + return E_FAIL; + } + + return IDispatchEx_InvokeEx(&This->framebase.content_window->base.IDispatchEx_iface, id, lcid, + flags, params, res, ei, caller); +} + static const NodeImplVtbl HTMLFrameElementImplVtbl = { .clsid = &CLSID_HTMLFrameElement, .qi = HTMLFrameElement_QI,
From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlframe.c | 117 ++++++++++++++++++++-------------------- 1 file changed, 58 insertions(+), 59 deletions(-)
diff --git a/dlls/mshtml/htmlframe.c b/dlls/mshtml/htmlframe.c index b66e1d91267..5229e6635a8 100644 --- a/dlls/mshtml/htmlframe.c +++ b/dlls/mshtml/htmlframe.c @@ -1473,27 +1473,6 @@ static inline HTMLIFrame *iframe_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLIFrame, framebase.element.node); }
-static void *HTMLIFrame_QI(HTMLDOMNode *iface, REFIID riid) -{ - HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); - - if(IsEqualGUID(&IID_IHTMLIFrameElement, riid)) - return &This->IHTMLIFrameElement_iface; - if(IsEqualGUID(&IID_IHTMLIFrameElement2, riid)) - return &This->IHTMLIFrameElement2_iface; - if(IsEqualGUID(&IID_IHTMLIFrameElement3, riid)) - return &This->IHTMLIFrameElement3_iface; - - return HTMLFrameBase_QI(&This->framebase, riid); -} - -static void HTMLIFrame_destructor(HTMLDOMNode *iface) -{ - HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); - - HTMLFrameBase_destructor(&This->framebase); -} - static HRESULT HTMLIFrame_get_document(HTMLDOMNode *iface, IDispatch **p) { HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); @@ -1508,44 +1487,6 @@ static HRESULT HTMLIFrame_get_document(HTMLDOMNode *iface, IDispatch **p) return S_OK; }
-static HRESULT HTMLIFrame_get_dispid(HTMLDOMNode *iface, BSTR name, - DWORD grfdex, DISPID *pid) -{ - HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); - - if(!This->framebase.content_window) - return DISP_E_UNKNOWNNAME; - - return search_window_props(This->framebase.content_window->base.inner_window, name, grfdex, pid); -} - -static HRESULT HTMLIFrame_get_name(HTMLDOMNode *iface, DISPID id, BSTR *name) -{ - HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); - DWORD idx = id - MSHTML_DISPID_CUSTOM_MIN; - - if(!This->framebase.content_window || - idx >= This->framebase.content_window->base.inner_window->global_prop_cnt) - return DISP_E_MEMBERNOTFOUND; - - *name = SysAllocString(This->framebase.content_window->base.inner_window->global_props[idx].name); - return *name ? S_OK : E_OUTOFMEMORY; -} - -static HRESULT HTMLIFrame_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid, - WORD flags, DISPPARAMS *params, VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller) -{ - HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); - - if(!This->framebase.content_window) { - ERR("no content window to invoke on\n"); - return E_FAIL; - } - - return IDispatchEx_InvokeEx(&This->framebase.content_window->base.IDispatchEx_iface, id, lcid, - flags, params, res, ei, caller); -} - static HRESULT HTMLIFrame_get_readystate(HTMLDOMNode *iface, BSTR *p) { HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); @@ -1576,6 +1517,20 @@ static inline HTMLIFrame *iframe_from_DispatchEx(DispatchEx *iface) return CONTAINING_RECORD(iface, HTMLIFrame, framebase.element.node.event_target.dispex); }
+static void *HTMLIFrame_QI(HTMLDOMNode *iface, REFIID riid) +{ + HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); + + if(IsEqualGUID(&IID_IHTMLIFrameElement, riid)) + return &This->IHTMLIFrameElement_iface; + if(IsEqualGUID(&IID_IHTMLIFrameElement2, riid)) + return &This->IHTMLIFrameElement2_iface; + if(IsEqualGUID(&IID_IHTMLIFrameElement3, riid)) + return &This->IHTMLIFrameElement3_iface; + + return HTMLFrameBase_QI(&This->framebase, riid); +} + static void HTMLIFrame_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLIFrame *This = iframe_from_DispatchEx(dispex); @@ -1592,6 +1547,50 @@ static void HTMLIFrame_unlink(DispatchEx *dispex) unlink_ref(&This->framebase.nsiframe); }
+static void HTMLIFrame_destructor(HTMLDOMNode *iface) +{ + HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); + + HTMLFrameBase_destructor(&This->framebase); +} + +static HRESULT HTMLIFrame_get_dispid(HTMLDOMNode *iface, BSTR name, DWORD grfdex, DISPID *dispid) +{ + HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); + + if(!This->framebase.content_window) + return DISP_E_UNKNOWNNAME; + + return search_window_props(This->framebase.content_window->base.inner_window, name, grfdex, dispid); +} + +static HRESULT HTMLIFrame_get_name(HTMLDOMNode *iface, DISPID id, BSTR *name) +{ + HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); + DWORD idx = id - MSHTML_DISPID_CUSTOM_MIN; + + if(!This->framebase.content_window || + idx >= This->framebase.content_window->base.inner_window->global_prop_cnt) + return DISP_E_MEMBERNOTFOUND; + + *name = SysAllocString(This->framebase.content_window->base.inner_window->global_props[idx].name); + return *name ? S_OK : E_OUTOFMEMORY; +} + +static HRESULT HTMLIFrame_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid, WORD flags, DISPPARAMS *params, + VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller) +{ + HTMLIFrame *This = iframe_from_HTMLDOMNode(iface); + + if(!This->framebase.content_window) { + ERR("no content window to invoke on\n"); + return E_FAIL; + } + + return IDispatchEx_InvokeEx(&This->framebase.content_window->base.IDispatchEx_iface, id, lcid, + flags, params, res, ei, caller); +} + static const NodeImplVtbl HTMLIFrameImplVtbl = { .clsid = &CLSID_HTMLIFrame, .qi = HTMLIFrame_QI,
From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlobject.c | 67 ++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 34 deletions(-)
diff --git a/dlls/mshtml/htmlobject.c b/dlls/mshtml/htmlobject.c index fbaa7d4c7d1..6c0fc014dad 100644 --- a/dlls/mshtml/htmlobject.c +++ b/dlls/mshtml/htmlobject.c @@ -637,6 +637,18 @@ static inline HTMLObjectElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLObjectElement, plugin_container.element.node); }
+static HRESULT HTMLObjectElement_get_readystate(HTMLDOMNode *iface, BSTR *p) +{ + HTMLObjectElement *This = impl_from_HTMLDOMNode(iface); + FIXME("(%p)->(%p)\n", This, p); + return E_NOTIMPL; +} + +static inline HTMLObjectElement *impl_from_DispatchEx(DispatchEx *iface) +{ + return CONTAINING_RECORD(iface, HTMLObjectElement, plugin_container.element.node.event_target.dispex); +} + static void *HTMLObjectElement_QI(HTMLDOMNode *iface, REFIID riid) { HTMLObjectElement *This = impl_from_HTMLDOMNode(iface); @@ -676,6 +688,22 @@ static void *HTMLObjectElement_QI(HTMLDOMNode *iface, REFIID riid) return elem_iface; }
+static void HTMLObjectElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) +{ + HTMLObjectElement *This = impl_from_DispatchEx(dispex); + HTMLDOMNode_traverse(dispex, cb); + + if(This->nsobject) + note_cc_edge((nsISupports*)This->nsobject, "nsobject", cb); +} + +static void HTMLObjectElement_unlink(DispatchEx *dispex) +{ + HTMLObjectElement *This = impl_from_DispatchEx(dispex); + HTMLDOMNode_unlink(dispex); + unlink_ref(&This->nsobject); +} + static void HTMLObjectElement_destructor(HTMLDOMNode *iface) { HTMLObjectElement *This = impl_from_HTMLDOMNode(iface); @@ -686,21 +714,13 @@ static void HTMLObjectElement_destructor(HTMLDOMNode *iface) HTMLElement_destructor(&This->plugin_container.element.node); }
-static HRESULT HTMLObjectElement_get_readystate(HTMLDOMNode *iface, BSTR *p) -{ - HTMLObjectElement *This = impl_from_HTMLDOMNode(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; -} - -static HRESULT HTMLObjectElement_get_dispid(HTMLDOMNode *iface, BSTR name, - DWORD grfdex, DISPID *pid) +static HRESULT HTMLObjectElement_get_dispid(HTMLDOMNode *iface, BSTR name, DWORD grfdex, DISPID *dispid) { HTMLObjectElement *This = impl_from_HTMLDOMNode(iface);
- TRACE("(%p)->(%s %lx %p)\n", This, debugstr_w(name), grfdex, pid); + TRACE("(%p)->(%s %lx %p)\n", This, debugstr_w(name), grfdex, dispid);
- return get_plugin_dispid(&This->plugin_container, name, pid); + return get_plugin_dispid(&This->plugin_container, name, dispid); }
static HRESULT HTMLObjectElement_dispex_get_name(HTMLDOMNode *iface, DISPID id, BSTR *name) @@ -712,8 +732,8 @@ static HRESULT HTMLObjectElement_dispex_get_name(HTMLDOMNode *iface, DISPID id, return E_NOTIMPL; }
-static HRESULT HTMLObjectElement_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid, - WORD flags, DISPPARAMS *params, VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller) +static HRESULT HTMLObjectElement_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid, WORD flags, DISPPARAMS *params, + VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller) { HTMLObjectElement *This = impl_from_HTMLDOMNode(iface);
@@ -722,27 +742,6 @@ static HRESULT HTMLObjectElement_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid return invoke_plugin_prop(&This->plugin_container, id, lcid, flags, params, res, ei); }
-static inline HTMLObjectElement *impl_from_DispatchEx(DispatchEx *iface) -{ - return CONTAINING_RECORD(iface, HTMLObjectElement, plugin_container.element.node.event_target.dispex); -} - -static void HTMLObjectElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) -{ - HTMLObjectElement *This = impl_from_DispatchEx(dispex); - HTMLDOMNode_traverse(dispex, cb); - - if(This->nsobject) - note_cc_edge((nsISupports*)This->nsobject, "nsobject", cb); -} - -static void HTMLObjectElement_unlink(DispatchEx *dispex) -{ - HTMLObjectElement *This = impl_from_DispatchEx(dispex); - HTMLDOMNode_unlink(dispex); - unlink_ref(&This->nsobject); -} - static const NodeImplVtbl HTMLObjectElementImplVtbl = { .clsid = &CLSID_HTMLObjectElement, .qi = HTMLObjectElement_QI,
From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlselect.c | 54 ++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/dlls/mshtml/htmlselect.c b/dlls/mshtml/htmlselect.c index 5c020ffe089..13b8f14b807 100644 --- a/dlls/mshtml/htmlselect.c +++ b/dlls/mshtml/htmlselect.c @@ -1313,6 +1313,23 @@ static inline HTMLSelectElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLSelectElement, element.node); }
+static HRESULT HTMLSelectElementImpl_put_disabled(HTMLDOMNode *iface, VARIANT_BOOL v) +{ + HTMLSelectElement *This = impl_from_HTMLDOMNode(iface); + return IHTMLSelectElement_put_disabled(&This->IHTMLSelectElement_iface, v); +} + +static HRESULT HTMLSelectElementImpl_get_disabled(HTMLDOMNode *iface, VARIANT_BOOL *p) +{ + HTMLSelectElement *This = impl_from_HTMLDOMNode(iface); + return IHTMLSelectElement_get_disabled(&This->IHTMLSelectElement_iface, p); +} + +static inline HTMLSelectElement *impl_from_DispatchEx(DispatchEx *iface) +{ + return CONTAINING_RECORD(iface, HTMLSelectElement, element.node.event_target.dispex); +} + static void *HTMLSelectElement_QI(HTMLDOMNode *iface, REFIID riid) { HTMLSelectElement *This = impl_from_HTMLDOMNode(iface); @@ -1327,16 +1344,20 @@ static void *HTMLSelectElement_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static HRESULT HTMLSelectElementImpl_put_disabled(HTMLDOMNode *iface, VARIANT_BOOL v) +static void HTMLSelectElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { - HTMLSelectElement *This = impl_from_HTMLDOMNode(iface); - return IHTMLSelectElement_put_disabled(&This->IHTMLSelectElement_iface, v); + HTMLSelectElement *This = impl_from_DispatchEx(dispex); + HTMLDOMNode_traverse(dispex, cb); + + if(This->nsselect) + note_cc_edge((nsISupports*)This->nsselect, "nsselect", cb); }
-static HRESULT HTMLSelectElementImpl_get_disabled(HTMLDOMNode *iface, VARIANT_BOOL *p) +static void HTMLSelectElement_unlink(DispatchEx *dispex) { - HTMLSelectElement *This = impl_from_HTMLDOMNode(iface); - return IHTMLSelectElement_get_disabled(&This->IHTMLSelectElement_iface, p); + HTMLSelectElement *This = impl_from_DispatchEx(dispex); + HTMLDOMNode_unlink(dispex); + unlink_ref(&This->nsselect); }
#define DISPID_OPTIONCOL_0 MSHTML_DISPID_CUSTOM_MIN @@ -1406,27 +1427,6 @@ static HRESULT HTMLSelectElement_invoke(HTMLDOMNode *iface, DISPID id, LCID lcid return S_OK; }
-static inline HTMLSelectElement *impl_from_DispatchEx(DispatchEx *iface) -{ - return CONTAINING_RECORD(iface, HTMLSelectElement, element.node.event_target.dispex); -} - -static void HTMLSelectElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) -{ - HTMLSelectElement *This = impl_from_DispatchEx(dispex); - HTMLDOMNode_traverse(dispex, cb); - - if(This->nsselect) - note_cc_edge((nsISupports*)This->nsselect, "nsselect", cb); -} - -static void HTMLSelectElement_unlink(DispatchEx *dispex) -{ - HTMLSelectElement *This = impl_from_DispatchEx(dispex); - HTMLDOMNode_unlink(dispex); - unlink_ref(&This->nsselect); -} - static const NodeImplVtbl HTMLSelectElementImplVtbl = { .clsid = &CLSID_HTMLSelectElement, .qi = HTMLSelectElement_QI,
From: Gabriel Ivăncescu gabrielopcode@gmail.com
So they're in a consistent ordering for dispex conversion.
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlbody.c | 32 ++++++++++---------- dlls/mshtml/htmlcomment.c | 20 ++++++------- dlls/mshtml/htmlhead.c | 20 ++++++------- dlls/mshtml/htmlimg.c | 20 ++++++------- dlls/mshtml/htmlinput.c | 60 ++++++++++++++++++------------------- dlls/mshtml/htmllink.c | 20 ++++++------- dlls/mshtml/htmlnode.c | 32 ++++++++++---------- dlls/mshtml/htmlscript.c | 28 ++++++++--------- dlls/mshtml/htmlselect.c | 10 +++---- dlls/mshtml/htmlstyleelem.c | 26 ++++++++-------- dlls/mshtml/htmltable.c | 44 +++++++++++++-------------- dlls/mshtml/htmltextarea.c | 28 ++++++++--------- dlls/mshtml/htmltextnode.c | 14 ++++----- 13 files changed, 177 insertions(+), 177 deletions(-)
diff --git a/dlls/mshtml/htmlbody.c b/dlls/mshtml/htmlbody.c index 46f3ddef0dd..51c88b409f8 100644 --- a/dlls/mshtml/htmlbody.c +++ b/dlls/mshtml/htmlbody.c @@ -890,22 +890,6 @@ static inline HTMLBodyElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLBodyElement, element.node); }
-static void *HTMLBodyElement_QI(HTMLDOMNode *iface, REFIID riid) -{ - HTMLBodyElement *This = impl_from_HTMLDOMNode(iface); - - if(IsEqualGUID(&IID_IUnknown, riid)) - return &This->IHTMLBodyElement_iface; - if(IsEqualGUID(&IID_IDispatch, riid)) - return &This->IHTMLBodyElement_iface; - if(IsEqualGUID(&IID_IHTMLBodyElement, riid)) - return &This->IHTMLBodyElement_iface; - if(IsEqualGUID(&IID_IHTMLTextContainer, riid)) - return &This->IHTMLTextContainer_iface; - - return HTMLElement_QI(&This->element.node, riid); -} - static EventTarget *HTMLBodyElement_get_event_prop_target(HTMLDOMNode *iface, int event_id) { HTMLBodyElement *This = impl_from_HTMLDOMNode(iface); @@ -944,6 +928,22 @@ static inline HTMLBodyElement *impl_from_DispatchEx(DispatchEx *iface) return CONTAINING_RECORD(iface, HTMLBodyElement, element.node.event_target.dispex); }
+static void *HTMLBodyElement_QI(HTMLDOMNode *iface, REFIID riid) +{ + HTMLBodyElement *This = impl_from_HTMLDOMNode(iface); + + if(IsEqualGUID(&IID_IUnknown, riid)) + return &This->IHTMLBodyElement_iface; + if(IsEqualGUID(&IID_IDispatch, riid)) + return &This->IHTMLBodyElement_iface; + if(IsEqualGUID(&IID_IHTMLBodyElement, riid)) + return &This->IHTMLBodyElement_iface; + if(IsEqualGUID(&IID_IHTMLTextContainer, riid)) + return &This->IHTMLTextContainer_iface; + + return HTMLElement_QI(&This->element.node, riid); +} + static void HTMLBodyElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLBodyElement *This = impl_from_DispatchEx(dispex); diff --git a/dlls/mshtml/htmlcomment.c b/dlls/mshtml/htmlcomment.c index 1ac331e8c31..1f08e2ffa5e 100644 --- a/dlls/mshtml/htmlcomment.c +++ b/dlls/mshtml/htmlcomment.c @@ -146,16 +146,6 @@ static inline HTMLCommentElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLCommentElement, element.node); }
-static void *HTMLCommentElement_QI(HTMLDOMNode *iface, REFIID riid) -{ - HTMLCommentElement *This = impl_from_HTMLDOMNode(iface); - - if(IsEqualGUID(&IID_IHTMLCommentElement, riid)) - return &This->IHTMLCommentElement_iface; - - return HTMLElement_QI(&This->element.node, riid); -} - static void HTMLCommentElement_destructor(HTMLDOMNode *iface) { HTMLCommentElement *This = impl_from_HTMLDOMNode(iface); @@ -177,6 +167,16 @@ static HRESULT HTMLCommentElement_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, return S_OK; }
+static void *HTMLCommentElement_QI(HTMLDOMNode *iface, REFIID riid) +{ + HTMLCommentElement *This = impl_from_HTMLDOMNode(iface); + + if(IsEqualGUID(&IID_IHTMLCommentElement, riid)) + return &This->IHTMLCommentElement_iface; + + return HTMLElement_QI(&This->element.node, riid); +} + static const NodeImplVtbl HTMLCommentElementImplVtbl = { .clsid = &CLSID_HTMLCommentElement, .qi = HTMLCommentElement_QI, diff --git a/dlls/mshtml/htmlhead.c b/dlls/mshtml/htmlhead.c index 4703553e818..3449b27e050 100644 --- a/dlls/mshtml/htmlhead.c +++ b/dlls/mshtml/htmlhead.c @@ -303,16 +303,6 @@ static inline HTMLHtmlElement *HTMLHtmlElement_from_HTMLDOMNode(HTMLDOMNode *ifa return CONTAINING_RECORD(iface, HTMLHtmlElement, element.node); }
-static void *HTMLHtmlElement_QI(HTMLDOMNode *iface, REFIID riid) -{ - HTMLHtmlElement *This = HTMLHtmlElement_from_HTMLDOMNode(iface); - - if(IsEqualGUID(&IID_IHTMLHtmlElement, riid)) - return &This->IHTMLHtmlElement_iface; - - return HTMLElement_QI(&This->element.node, riid); -} - static void HTMLHtmlElement_destructor(HTMLDOMNode *iface) { HTMLHtmlElement *This = HTMLHtmlElement_from_HTMLDOMNode(iface); @@ -330,6 +320,16 @@ static BOOL HTMLHtmlElement_is_settable(HTMLDOMNode *iface, DISPID dispid) } }
+static void *HTMLHtmlElement_QI(HTMLDOMNode *iface, REFIID riid) +{ + HTMLHtmlElement *This = HTMLHtmlElement_from_HTMLDOMNode(iface); + + if(IsEqualGUID(&IID_IHTMLHtmlElement, riid)) + return &This->IHTMLHtmlElement_iface; + + return HTMLElement_QI(&This->element.node, riid); +} + static const NodeImplVtbl HTMLHtmlElementImplVtbl = { .clsid = &CLSID_HTMLHtmlElement, .qi = HTMLHtmlElement_QI, diff --git a/dlls/mshtml/htmlimg.c b/dlls/mshtml/htmlimg.c index 766d01b9eb7..7ede42e3ec5 100644 --- a/dlls/mshtml/htmlimg.c +++ b/dlls/mshtml/htmlimg.c @@ -658,16 +658,6 @@ static inline HTMLImg *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLImg, element.node); }
-static void *HTMLImgElement_QI(HTMLDOMNode *iface, REFIID riid) -{ - HTMLImg *This = impl_from_HTMLDOMNode(iface); - - if(IsEqualGUID(&IID_IHTMLImgElement, riid)) - return &This->IHTMLImgElement_iface; - - return HTMLElement_QI(&This->element.node, riid); -} - static HRESULT HTMLImgElement_get_readystate(HTMLDOMNode *iface, BSTR *p) { HTMLImg *This = impl_from_HTMLDOMNode(iface); @@ -680,6 +670,16 @@ static inline HTMLImg *HTMLImg_from_DispatchEx(DispatchEx *iface) return CONTAINING_RECORD(iface, HTMLImg, element.node.event_target.dispex); }
+static void *HTMLImgElement_QI(HTMLDOMNode *iface, REFIID riid) +{ + HTMLImg *This = impl_from_HTMLDOMNode(iface); + + if(IsEqualGUID(&IID_IHTMLImgElement, riid)) + return &This->IHTMLImgElement_iface; + + return HTMLElement_QI(&This->element.node, riid); +} + static void HTMLImgElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLImg *This = HTMLImg_from_DispatchEx(dispex); diff --git a/dlls/mshtml/htmlinput.c b/dlls/mshtml/htmlinput.c index 79af8c617a0..c6527309b8c 100644 --- a/dlls/mshtml/htmlinput.c +++ b/dlls/mshtml/htmlinput.c @@ -1344,24 +1344,6 @@ static inline HTMLInputElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLInputElement, element.node); }
-static void *HTMLInputElement_QI(HTMLDOMNode *iface, REFIID riid) -{ - HTMLInputElement *This = impl_from_HTMLDOMNode(iface); - - if(IsEqualGUID(&IID_IUnknown, riid)) - return &This->IHTMLInputElement_iface; - if(IsEqualGUID(&IID_IDispatch, riid)) - return &This->IHTMLInputElement_iface; - if(IsEqualGUID(&IID_IHTMLInputElement, riid)) - return &This->IHTMLInputElement_iface; - if(IsEqualGUID(&IID_IHTMLInputTextElement, riid)) - return &This->IHTMLInputTextElement_iface; - if(IsEqualGUID(&IID_IHTMLInputTextElement2, riid)) - return &This->IHTMLInputTextElement2_iface; - - return HTMLElement_QI(&This->element.node, riid); -} - static HRESULT HTMLInputElementImpl_put_disabled(HTMLDOMNode *iface, VARIANT_BOOL v) { HTMLInputElement *This = impl_from_HTMLDOMNode(iface); @@ -1398,6 +1380,24 @@ static inline HTMLInputElement *input_from_DispatchEx(DispatchEx *iface) return CONTAINING_RECORD(iface, HTMLInputElement, element.node.event_target.dispex); }
+static void *HTMLInputElement_QI(HTMLDOMNode *iface, REFIID riid) +{ + HTMLInputElement *This = impl_from_HTMLDOMNode(iface); + + if(IsEqualGUID(&IID_IUnknown, riid)) + return &This->IHTMLInputElement_iface; + if(IsEqualGUID(&IID_IDispatch, riid)) + return &This->IHTMLInputElement_iface; + if(IsEqualGUID(&IID_IHTMLInputElement, riid)) + return &This->IHTMLInputElement_iface; + if(IsEqualGUID(&IID_IHTMLInputTextElement, riid)) + return &This->IHTMLInputTextElement_iface; + if(IsEqualGUID(&IID_IHTMLInputTextElement2, riid)) + return &This->IHTMLInputTextElement2_iface; + + return HTMLElement_QI(&This->element.node, riid); +} + static void HTMLInputElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLInputElement *This = input_from_DispatchEx(dispex); @@ -1894,18 +1894,6 @@ static inline HTMLButtonElement *button_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLButtonElement, element.node); }
-static void *HTMLButtonElement_QI(HTMLDOMNode *iface, REFIID riid) -{ - HTMLButtonElement *This = button_from_HTMLDOMNode(iface); - - if(IsEqualGUID(&IID_IUnknown, riid)) - return &This->IHTMLButtonElement_iface; - if(IsEqualGUID(&IID_IHTMLButtonElement, riid)) - return &This->IHTMLButtonElement_iface; - - return HTMLElement_QI(&This->element.node, riid); -} - static HRESULT HTMLButtonElementImpl_put_disabled(HTMLDOMNode *iface, VARIANT_BOOL v) { HTMLButtonElement *This = button_from_HTMLDOMNode(iface); @@ -1928,6 +1916,18 @@ static inline HTMLButtonElement *button_from_DispatchEx(DispatchEx *iface) return CONTAINING_RECORD(iface, HTMLButtonElement, element.node.event_target.dispex); }
+static void *HTMLButtonElement_QI(HTMLDOMNode *iface, REFIID riid) +{ + HTMLButtonElement *This = button_from_HTMLDOMNode(iface); + + if(IsEqualGUID(&IID_IUnknown, riid)) + return &This->IHTMLButtonElement_iface; + if(IsEqualGUID(&IID_IHTMLButtonElement, riid)) + return &This->IHTMLButtonElement_iface; + + return HTMLElement_QI(&This->element.node, riid); +} + static void HTMLButtonElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLButtonElement *This = button_from_DispatchEx(dispex); diff --git a/dlls/mshtml/htmllink.c b/dlls/mshtml/htmllink.c index ef756494b76..f27941728cb 100644 --- a/dlls/mshtml/htmllink.c +++ b/dlls/mshtml/htmllink.c @@ -374,16 +374,6 @@ static inline HTMLLinkElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLLinkElement, element.node); }
-static void *HTMLLinkElement_QI(HTMLDOMNode *iface, REFIID riid) -{ - HTMLLinkElement *This = impl_from_HTMLDOMNode(iface); - - if(IsEqualGUID(&IID_IHTMLLinkElement, riid)) - return &This->IHTMLLinkElement_iface; - - return HTMLElement_QI(&This->element.node, riid); -} - static HRESULT HTMLLinkElementImpl_put_disabled(HTMLDOMNode *iface, VARIANT_BOOL v) { HTMLLinkElement *This = impl_from_HTMLDOMNode(iface); @@ -401,6 +391,16 @@ static inline HTMLLinkElement *impl_from_DispatchEx(DispatchEx *iface) return CONTAINING_RECORD(iface, HTMLLinkElement, element.node.event_target.dispex); }
+static void *HTMLLinkElement_QI(HTMLDOMNode *iface, REFIID riid) +{ + HTMLLinkElement *This = impl_from_HTMLDOMNode(iface); + + if(IsEqualGUID(&IID_IHTMLLinkElement, riid)) + return &This->IHTMLLinkElement_iface; + + return HTMLElement_QI(&This->element.node, riid); +} + static void HTMLLinkElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLLinkElement *This = impl_from_DispatchEx(dispex); diff --git a/dlls/mshtml/htmlnode.c b/dlls/mshtml/htmlnode.c index a2bec6126ba..6092d1367ef 100644 --- a/dlls/mshtml/htmlnode.c +++ b/dlls/mshtml/htmlnode.c @@ -1410,6 +1410,22 @@ void *HTMLDOMNode_query_interface(DispatchEx *dispex, REFIID riid) return This->vtbl->qi(This, riid); }
+void *HTMLDOMNode_QI(HTMLDOMNode *This, REFIID riid) +{ + if(IsEqualGUID(&IID_IUnknown, riid)) + return &This->IHTMLDOMNode_iface; + if(IsEqualGUID(&IID_IDispatch, riid)) + return &This->IHTMLDOMNode_iface; + if(IsEqualGUID(&IID_IHTMLDOMNode, riid)) + return &This->IHTMLDOMNode_iface; + if(IsEqualGUID(&IID_IHTMLDOMNode2, riid)) + return &This->IHTMLDOMNode2_iface; + if(IsEqualGUID(&IID_IHTMLDOMNode3, riid)) + return &This->IHTMLDOMNode3_iface; + + return EventTarget_query_interface(&This->event_target, riid); +} + void HTMLDOMNode_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLDOMNode *This = HTMLDOMNode_from_DispatchEx(dispex); @@ -1443,22 +1459,6 @@ void HTMLDOMNode_destructor(DispatchEx *dispex) free(This); }
-void *HTMLDOMNode_QI(HTMLDOMNode *This, REFIID riid) -{ - if(IsEqualGUID(&IID_IUnknown, riid)) - return &This->IHTMLDOMNode_iface; - if(IsEqualGUID(&IID_IDispatch, riid)) - return &This->IHTMLDOMNode_iface; - if(IsEqualGUID(&IID_IHTMLDOMNode, riid)) - return &This->IHTMLDOMNode_iface; - if(IsEqualGUID(&IID_IHTMLDOMNode2, riid)) - return &This->IHTMLDOMNode2_iface; - if(IsEqualGUID(&IID_IHTMLDOMNode3, riid)) - return &This->IHTMLDOMNode3_iface; - - return EventTarget_query_interface(&This->event_target, riid); -} - static HRESULT HTMLDOMNode_clone(HTMLDOMNode *This, nsIDOMNode *nsnode, HTMLDOMNode **ret) { return create_node(This->doc, nsnode, ret); diff --git a/dlls/mshtml/htmlscript.c b/dlls/mshtml/htmlscript.c index 7bedf3682c7..dadd31d24a8 100644 --- a/dlls/mshtml/htmlscript.c +++ b/dlls/mshtml/htmlscript.c @@ -354,20 +354,6 @@ static inline HTMLScriptElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLScriptElement, element.node); }
-static void *HTMLScriptElement_QI(HTMLDOMNode *iface, REFIID riid) -{ - HTMLScriptElement *This = impl_from_HTMLDOMNode(iface); - - if(IsEqualGUID(&IID_IUnknown, riid)) - return &This->IHTMLScriptElement_iface; - if(IsEqualGUID(&IID_IDispatch, riid)) - return &This->IHTMLScriptElement_iface; - if(IsEqualGUID(&IID_IHTMLScriptElement, riid)) - return &This->IHTMLScriptElement_iface; - - return HTMLElement_QI(&This->element.node, riid); -} - static void HTMLScriptElement_destructor(HTMLDOMNode *iface) { HTMLScriptElement *This = impl_from_HTMLDOMNode(iface); @@ -406,6 +392,20 @@ static inline HTMLScriptElement *impl_from_DispatchEx(DispatchEx *iface) return CONTAINING_RECORD(iface, HTMLScriptElement, element.node.event_target.dispex); }
+static void *HTMLScriptElement_QI(HTMLDOMNode *iface, REFIID riid) +{ + HTMLScriptElement *This = impl_from_HTMLDOMNode(iface); + + if(IsEqualGUID(&IID_IUnknown, riid)) + return &This->IHTMLScriptElement_iface; + if(IsEqualGUID(&IID_IDispatch, riid)) + return &This->IHTMLScriptElement_iface; + if(IsEqualGUID(&IID_IHTMLScriptElement, riid)) + return &This->IHTMLScriptElement_iface; + + return HTMLElement_QI(&This->element.node, riid); +} + static void HTMLScriptElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLScriptElement *This = impl_from_DispatchEx(dispex); diff --git a/dlls/mshtml/htmlselect.c b/dlls/mshtml/htmlselect.c index 13b8f14b807..787b04933c5 100644 --- a/dlls/mshtml/htmlselect.c +++ b/dlls/mshtml/htmlselect.c @@ -346,6 +346,11 @@ static inline HTMLOptionElement *HTMLOptionElement_from_HTMLDOMNode(HTMLDOMNode return CONTAINING_RECORD(iface, HTMLOptionElement, element.node); }
+static inline HTMLOptionElement *HTMLOptionElement_from_DispatchEx(DispatchEx *iface) +{ + return CONTAINING_RECORD(iface, HTMLOptionElement, element.node.event_target.dispex); +} + static void *HTMLOptionElement_QI(HTMLDOMNode *iface, REFIID riid) { HTMLOptionElement *This = HTMLOptionElement_from_HTMLDOMNode(iface); @@ -360,11 +365,6 @@ static void *HTMLOptionElement_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static inline HTMLOptionElement *HTMLOptionElement_from_DispatchEx(DispatchEx *iface) -{ - return CONTAINING_RECORD(iface, HTMLOptionElement, element.node.event_target.dispex); -} - static void HTMLOptionElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLOptionElement *This = HTMLOptionElement_from_DispatchEx(dispex); diff --git a/dlls/mshtml/htmlstyleelem.c b/dlls/mshtml/htmlstyleelem.c index 6c7005f097e..8ad167a5fe3 100644 --- a/dlls/mshtml/htmlstyleelem.c +++ b/dlls/mshtml/htmlstyleelem.c @@ -365,6 +365,19 @@ static inline HTMLStyleElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLStyleElement, element.node); }
+static void HTMLStyleElement_destructor(HTMLDOMNode *iface) +{ + HTMLStyleElement *This = impl_from_HTMLDOMNode(iface); + + unlink_ref(&This->style_sheet); + HTMLElement_destructor(iface); +} + +static inline HTMLStyleElement *impl_from_DispatchEx(DispatchEx *iface) +{ + return CONTAINING_RECORD(iface, HTMLStyleElement, element.node.event_target.dispex); +} + static void *HTMLStyleElement_QI(HTMLDOMNode *iface, REFIID riid) { HTMLStyleElement *This = impl_from_HTMLDOMNode(iface); @@ -381,19 +394,6 @@ static void *HTMLStyleElement_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static void HTMLStyleElement_destructor(HTMLDOMNode *iface) -{ - HTMLStyleElement *This = impl_from_HTMLDOMNode(iface); - - unlink_ref(&This->style_sheet); - HTMLElement_destructor(iface); -} - -static inline HTMLStyleElement *impl_from_DispatchEx(DispatchEx *iface) -{ - return CONTAINING_RECORD(iface, HTMLStyleElement, element.node.event_target.dispex); -} - static void HTMLStyleElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLStyleElement *This = impl_from_DispatchEx(dispex); diff --git a/dlls/mshtml/htmltable.c b/dlls/mshtml/htmltable.c index c1df64198d6..4d5438d165b 100644 --- a/dlls/mshtml/htmltable.c +++ b/dlls/mshtml/htmltable.c @@ -446,6 +446,18 @@ static inline HTMLTableCell *HTMLTableCell_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLTableCell, element.node); }
+static void HTMLTableCell_destructor(HTMLDOMNode *iface) +{ + HTMLTableCell *This = HTMLTableCell_from_HTMLDOMNode(iface); + + HTMLElement_destructor(&This->element.node); +} + +static inline HTMLTableCell *HTMLTableCell_from_DispatchEx(DispatchEx *iface) +{ + return CONTAINING_RECORD(iface, HTMLTableCell, element.node.event_target.dispex); +} + static void *HTMLTableCell_QI(HTMLDOMNode *iface, REFIID riid) { HTMLTableCell *This = HTMLTableCell_from_HTMLDOMNode(iface); @@ -460,18 +472,6 @@ static void *HTMLTableCell_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static void HTMLTableCell_destructor(HTMLDOMNode *iface) -{ - HTMLTableCell *This = HTMLTableCell_from_HTMLDOMNode(iface); - - HTMLElement_destructor(&This->element.node); -} - -static inline HTMLTableCell *HTMLTableCell_from_DispatchEx(DispatchEx *iface) -{ - return CONTAINING_RECORD(iface, HTMLTableCell, element.node.event_target.dispex); -} - static void HTMLTableCell_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLTableCell *This = HTMLTableCell_from_DispatchEx(dispex); @@ -887,6 +887,11 @@ static inline HTMLTableRow *HTMLTableRow_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLTableRow, element.node); }
+static inline HTMLTableRow *HTMLTableRow_from_DispatchEx(DispatchEx *iface) +{ + return CONTAINING_RECORD(iface, HTMLTableRow, element.node.event_target.dispex); +} + static void *HTMLTableRow_QI(HTMLDOMNode *iface, REFIID riid) { HTMLTableRow *This = HTMLTableRow_from_HTMLDOMNode(iface); @@ -901,11 +906,6 @@ static void *HTMLTableRow_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static inline HTMLTableRow *HTMLTableRow_from_DispatchEx(DispatchEx *iface) -{ - return CONTAINING_RECORD(iface, HTMLTableRow, element.node.event_target.dispex); -} - static void HTMLTableRow_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLTableRow *This = HTMLTableRow_from_DispatchEx(dispex); @@ -1895,6 +1895,11 @@ static inline HTMLTable *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLTable, element.node); }
+static inline HTMLTable *impl_from_DispatchEx(DispatchEx *iface) +{ + return CONTAINING_RECORD(iface, HTMLTable, element.node.event_target.dispex); +} + static void *HTMLTable_QI(HTMLDOMNode *iface, REFIID riid) { HTMLTable *This = impl_from_HTMLDOMNode(iface); @@ -1913,11 +1918,6 @@ static void *HTMLTable_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static inline HTMLTable *impl_from_DispatchEx(DispatchEx *iface) -{ - return CONTAINING_RECORD(iface, HTMLTable, element.node.event_target.dispex); -} - static void HTMLTable_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLTable *This = impl_from_DispatchEx(dispex); diff --git a/dlls/mshtml/htmltextarea.c b/dlls/mshtml/htmltextarea.c index 7aa3f9dbb67..2760f37b665 100644 --- a/dlls/mshtml/htmltextarea.c +++ b/dlls/mshtml/htmltextarea.c @@ -390,20 +390,6 @@ static inline HTMLTextAreaElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLTextAreaElement, element.node); }
-static void *HTMLTextAreaElement_QI(HTMLDOMNode *iface, REFIID riid) -{ - HTMLTextAreaElement *This = impl_from_HTMLDOMNode(iface); - - if(IsEqualGUID(&IID_IUnknown, riid)) - return &This->IHTMLTextAreaElement_iface; - if(IsEqualGUID(&IID_IDispatch, riid)) - return &This->IHTMLTextAreaElement_iface; - if(IsEqualGUID(&IID_IHTMLTextAreaElement, riid)) - return &This->IHTMLTextAreaElement_iface; - - return HTMLElement_QI(&This->element.node, riid); -} - static HRESULT HTMLTextAreaElementImpl_put_disabled(HTMLDOMNode *iface, VARIANT_BOOL v) { HTMLTextAreaElement *This = impl_from_HTMLDOMNode(iface); @@ -426,6 +412,20 @@ static inline HTMLTextAreaElement *impl_from_DispatchEx(DispatchEx *iface) return CONTAINING_RECORD(iface, HTMLTextAreaElement, element.node.event_target.dispex); }
+static void *HTMLTextAreaElement_QI(HTMLDOMNode *iface, REFIID riid) +{ + HTMLTextAreaElement *This = impl_from_HTMLDOMNode(iface); + + if(IsEqualGUID(&IID_IUnknown, riid)) + return &This->IHTMLTextAreaElement_iface; + if(IsEqualGUID(&IID_IDispatch, riid)) + return &This->IHTMLTextAreaElement_iface; + if(IsEqualGUID(&IID_IHTMLTextAreaElement, riid)) + return &This->IHTMLTextAreaElement_iface; + + return HTMLElement_QI(&This->element.node, riid); +} + static void HTMLTextAreaElement_traverse(DispatchEx *dispex, nsCycleCollectionTraversalCallback *cb) { HTMLTextAreaElement *This = impl_from_DispatchEx(dispex); diff --git a/dlls/mshtml/htmltextnode.c b/dlls/mshtml/htmltextnode.c index f3302fcaf6f..2bebe9dee1b 100644 --- a/dlls/mshtml/htmltextnode.c +++ b/dlls/mshtml/htmltextnode.c @@ -324,6 +324,13 @@ static inline HTMLDOMTextNode *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLDOMTextNode, node); }
+static HRESULT HTMLDOMTextNode_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HTMLDOMNode **ret) +{ + HTMLDOMTextNode *This = impl_from_HTMLDOMNode(iface); + + return HTMLDOMTextNode_Create(This->node.doc, nsnode, ret); +} + static void *HTMLDOMTextNode_QI(HTMLDOMNode *iface, REFIID riid) { HTMLDOMTextNode *This = impl_from_HTMLDOMNode(iface); @@ -336,13 +343,6 @@ static void *HTMLDOMTextNode_QI(HTMLDOMNode *iface, REFIID riid) return HTMLDOMNode_QI(&This->node, riid); }
-static HRESULT HTMLDOMTextNode_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HTMLDOMNode **ret) -{ - HTMLDOMTextNode *This = impl_from_HTMLDOMNode(iface); - - return HTMLDOMTextNode_Create(This->node.doc, nsnode, ret); -} - static const cpc_entry_t HTMLDOMTextNode_cpc[] = {{NULL}};
static const NodeImplVtbl HTMLDOMTextNodeImplVtbl = {
From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlscript.c | 14 +++++++------- dlls/mshtml/htmlstyleelem.c | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/dlls/mshtml/htmlscript.c b/dlls/mshtml/htmlscript.c index dadd31d24a8..262002b07b5 100644 --- a/dlls/mshtml/htmlscript.c +++ b/dlls/mshtml/htmlscript.c @@ -354,13 +354,6 @@ static inline HTMLScriptElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLScriptElement, element.node); }
-static void HTMLScriptElement_destructor(HTMLDOMNode *iface) -{ - HTMLScriptElement *This = impl_from_HTMLDOMNode(iface); - free(This->src_text); - HTMLElement_destructor(&This->element.node); -} - static HRESULT HTMLScriptElement_get_readystate(HTMLDOMNode *iface, BSTR *p) { HTMLScriptElement *This = impl_from_HTMLDOMNode(iface); @@ -422,6 +415,13 @@ static void HTMLScriptElement_unlink(DispatchEx *dispex) unlink_ref(&This->nsscript); }
+static void HTMLScriptElement_destructor(HTMLDOMNode *iface) +{ + HTMLScriptElement *This = impl_from_HTMLDOMNode(iface); + free(This->src_text); + HTMLElement_destructor(&This->element.node); +} + static const NodeImplVtbl HTMLScriptElementImplVtbl = { .clsid = &CLSID_HTMLScriptElement, .qi = HTMLScriptElement_QI, diff --git a/dlls/mshtml/htmlstyleelem.c b/dlls/mshtml/htmlstyleelem.c index 8ad167a5fe3..f206537f59a 100644 --- a/dlls/mshtml/htmlstyleelem.c +++ b/dlls/mshtml/htmlstyleelem.c @@ -365,14 +365,6 @@ static inline HTMLStyleElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLStyleElement, element.node); }
-static void HTMLStyleElement_destructor(HTMLDOMNode *iface) -{ - HTMLStyleElement *This = impl_from_HTMLDOMNode(iface); - - unlink_ref(&This->style_sheet); - HTMLElement_destructor(iface); -} - static inline HTMLStyleElement *impl_from_DispatchEx(DispatchEx *iface) { return CONTAINING_RECORD(iface, HTMLStyleElement, element.node.event_target.dispex); @@ -410,6 +402,14 @@ static void HTMLStyleElement_unlink(DispatchEx *dispex) unlink_ref(&This->nsstyle); }
+static void HTMLStyleElement_destructor(HTMLDOMNode *iface) +{ + HTMLStyleElement *This = impl_from_HTMLDOMNode(iface); + + unlink_ref(&This->style_sheet); + HTMLElement_destructor(iface); +} + static void HTMLStyleElement_init_dispex_info(dispex_data_t *info, compat_mode_t mode) { static const dispex_hook_t ie11_hooks[] = {
From: Gabriel Ivăncescu gabrielopcode@gmail.com
Just use the HTMLElement_destructor directly.
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlcomment.c | 9 +-------- dlls/mshtml/htmlgeneric.c | 9 +-------- dlls/mshtml/htmlhead.c | 36 ++++-------------------------------- dlls/mshtml/htmlobject.c | 9 +-------- dlls/mshtml/htmltable.c | 9 +-------- 5 files changed, 8 insertions(+), 64 deletions(-)
diff --git a/dlls/mshtml/htmlcomment.c b/dlls/mshtml/htmlcomment.c index 1f08e2ffa5e..9c720d9468e 100644 --- a/dlls/mshtml/htmlcomment.c +++ b/dlls/mshtml/htmlcomment.c @@ -146,13 +146,6 @@ static inline HTMLCommentElement *impl_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLCommentElement, element.node); }
-static void HTMLCommentElement_destructor(HTMLDOMNode *iface) -{ - HTMLCommentElement *This = impl_from_HTMLDOMNode(iface); - - HTMLElement_destructor(&This->element.node); -} - static HRESULT HTMLCommentElement_clone(HTMLDOMNode *iface, nsIDOMNode *nsnode, HTMLDOMNode **ret) { HTMLCommentElement *This = impl_from_HTMLDOMNode(iface); @@ -180,7 +173,7 @@ static void *HTMLCommentElement_QI(HTMLDOMNode *iface, REFIID riid) static const NodeImplVtbl HTMLCommentElementImplVtbl = { .clsid = &CLSID_HTMLCommentElement, .qi = HTMLCommentElement_QI, - .destructor = HTMLCommentElement_destructor, + .destructor = HTMLElement_destructor, .cpc_entries = HTMLElement_cpc, .clone = HTMLCommentElement_clone, .handle_event = HTMLElement_handle_event, diff --git a/dlls/mshtml/htmlgeneric.c b/dlls/mshtml/htmlgeneric.c index 7cae4026c47..5f069e05f67 100644 --- a/dlls/mshtml/htmlgeneric.c +++ b/dlls/mshtml/htmlgeneric.c @@ -138,17 +138,10 @@ static void *HTMLGenericElement_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static void HTMLGenericElement_destructor(HTMLDOMNode *iface) -{ - HTMLGenericElement *This = impl_from_HTMLDOMNode(iface); - - HTMLElement_destructor(&This->element.node); -} - static const NodeImplVtbl HTMLGenericElementImplVtbl = { .clsid = &CLSID_HTMLGenericElement, .qi = HTMLGenericElement_QI, - .destructor = HTMLGenericElement_destructor, + .destructor = HTMLElement_destructor, .cpc_entries = HTMLElement_cpc, .clone = HTMLElement_clone, .handle_event = HTMLElement_handle_event, diff --git a/dlls/mshtml/htmlhead.c b/dlls/mshtml/htmlhead.c index 3449b27e050..af17a35dbb7 100644 --- a/dlls/mshtml/htmlhead.c +++ b/dlls/mshtml/htmlhead.c @@ -156,17 +156,10 @@ static void *HTMLTitleElement_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static void HTMLTitleElement_destructor(HTMLDOMNode *iface) -{ - HTMLTitleElement *This = HTMLTitleElement_from_HTMLDOMNode(iface); - - HTMLElement_destructor(&This->element.node); -} - static const NodeImplVtbl HTMLTitleElementImplVtbl = { .clsid = &CLSID_HTMLTitleElement, .qi = HTMLTitleElement_QI, - .destructor = HTMLTitleElement_destructor, + .destructor = HTMLElement_destructor, .cpc_entries = HTMLElement_cpc, .clone = HTMLElement_clone, .handle_event = HTMLElement_handle_event, @@ -303,13 +296,6 @@ static inline HTMLHtmlElement *HTMLHtmlElement_from_HTMLDOMNode(HTMLDOMNode *ifa return CONTAINING_RECORD(iface, HTMLHtmlElement, element.node); }
-static void HTMLHtmlElement_destructor(HTMLDOMNode *iface) -{ - HTMLHtmlElement *This = HTMLHtmlElement_from_HTMLDOMNode(iface); - - HTMLElement_destructor(&This->element.node); -} - static BOOL HTMLHtmlElement_is_settable(HTMLDOMNode *iface, DISPID dispid) { switch(dispid) { @@ -333,7 +319,7 @@ static void *HTMLHtmlElement_QI(HTMLDOMNode *iface, REFIID riid) static const NodeImplVtbl HTMLHtmlElementImplVtbl = { .clsid = &CLSID_HTMLHtmlElement, .qi = HTMLHtmlElement_QI, - .destructor = HTMLHtmlElement_destructor, + .destructor = HTMLElement_destructor, .cpc_entries = HTMLElement_cpc, .clone = HTMLElement_clone, .handle_event = HTMLElement_handle_event, @@ -553,17 +539,10 @@ static void *HTMLMetaElement_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static void HTMLMetaElement_destructor(HTMLDOMNode *iface) -{ - HTMLMetaElement *This = HTMLMetaElement_from_HTMLDOMNode(iface); - - HTMLElement_destructor(&This->element.node); -} - static const NodeImplVtbl HTMLMetaElementImplVtbl = { .clsid = &CLSID_HTMLMetaElement, .qi = HTMLMetaElement_QI, - .destructor = HTMLMetaElement_destructor, + .destructor = HTMLElement_destructor, .cpc_entries = HTMLElement_cpc, .clone = HTMLElement_clone, .handle_event = HTMLElement_handle_event, @@ -713,17 +692,10 @@ static void *HTMLHeadElement_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static void HTMLHeadElement_destructor(HTMLDOMNode *iface) -{ - HTMLHeadElement *This = impl_from_HTMLDOMNode(iface); - - HTMLElement_destructor(&This->element.node); -} - static const NodeImplVtbl HTMLHeadElementImplVtbl = { .clsid = &CLSID_HTMLHeadElement, .qi = HTMLHeadElement_QI, - .destructor = HTMLHeadElement_destructor, + .destructor = HTMLElement_destructor, .cpc_entries = HTMLElement_cpc, .clone = HTMLElement_clone, .handle_event = HTMLElement_handle_event, diff --git a/dlls/mshtml/htmlobject.c b/dlls/mshtml/htmlobject.c index 6c0fc014dad..6e903a0e97e 100644 --- a/dlls/mshtml/htmlobject.c +++ b/dlls/mshtml/htmlobject.c @@ -1006,17 +1006,10 @@ static void *HTMLEmbedElement_QI(HTMLDOMNode *iface, REFIID riid) return HTMLElement_QI(&This->element.node, riid); }
-static void HTMLEmbedElement_destructor(HTMLDOMNode *iface) -{ - HTMLEmbed *This = embed_from_HTMLDOMNode(iface); - - HTMLElement_destructor(&This->element.node); -} - static const NodeImplVtbl HTMLEmbedElementImplVtbl = { .clsid = &CLSID_HTMLEmbed, .qi = HTMLEmbedElement_QI, - .destructor = HTMLEmbedElement_destructor, + .destructor = HTMLElement_destructor, .cpc_entries = HTMLElement_cpc, .clone = HTMLElement_clone, .handle_event = HTMLElement_handle_event, diff --git a/dlls/mshtml/htmltable.c b/dlls/mshtml/htmltable.c index 4d5438d165b..aa4e16037e3 100644 --- a/dlls/mshtml/htmltable.c +++ b/dlls/mshtml/htmltable.c @@ -446,13 +446,6 @@ static inline HTMLTableCell *HTMLTableCell_from_HTMLDOMNode(HTMLDOMNode *iface) return CONTAINING_RECORD(iface, HTMLTableCell, element.node); }
-static void HTMLTableCell_destructor(HTMLDOMNode *iface) -{ - HTMLTableCell *This = HTMLTableCell_from_HTMLDOMNode(iface); - - HTMLElement_destructor(&This->element.node); -} - static inline HTMLTableCell *HTMLTableCell_from_DispatchEx(DispatchEx *iface) { return CONTAINING_RECORD(iface, HTMLTableCell, element.node.event_target.dispex); @@ -491,7 +484,7 @@ static void HTMLTableCell_unlink(DispatchEx *dispex) static const NodeImplVtbl HTMLTableCellImplVtbl = { .clsid = &CLSID_HTMLTableCell, .qi = HTMLTableCell_QI, - .destructor = HTMLTableCell_destructor, + .destructor = HTMLElement_destructor, .cpc_entries = HTMLElement_cpc, .clone = HTMLElement_clone, .handle_event = HTMLElement_handle_event,
This merge request was approved by Jacek Caban.