Module: wine Branch: master Commit: 3ae610ad3220b8e2336e7518b2034b46de8f7a11 URL: https://gitlab.winehq.org/wine/wine/-/commit/3ae610ad3220b8e2336e7518b2034b4...
Author: Gabriel Ivăncescu gabrielopcode@gmail.com Date: Mon Sep 18 18:00:53 2023 +0300
mshtml: Move some FormElement methods up.
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,