Commit 3ae610ad authored by Gabriel Ivăncescu's avatar Gabriel Ivăncescu Committed by Alexandre Julliard

mshtml: Move some FormElement methods up.

parent 0593b1d2
......@@ -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,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment