Jacek Caban : mshtml: Don' t assume that nsIDOMHTML*Element interfaces inherit from nsIDOMHTMLElement in htmlinput.c.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Oct 1 14:34:31 CDT 2014


Module: wine
Branch: master
Commit: f30f506d22357818e5e8813275d083f2d9f102c4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f30f506d22357818e5e8813275d083f2d9f102c4

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Oct  1 11:23:25 2014 +0200

mshtml: Don't assume that nsIDOMHTML*Element interfaces inherit from nsIDOMHTMLElement in htmlinput.c.

---

 dlls/mshtml/htmlinput.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmlinput.c b/dlls/mshtml/htmlinput.c
index e568f4b..4ce01b5 100644
--- a/dlls/mshtml/htmlinput.c
+++ b/dlls/mshtml/htmlinput.c
@@ -256,6 +256,7 @@ static HRESULT WINAPI HTMLInputElement_get_form(IHTMLInputElement *iface, IHTMLF
 {
     HTMLInputElement *This = impl_from_IHTMLInputElement(iface);
     nsIDOMHTMLFormElement *nsform;
+    nsIDOMNode *form_node;
     HTMLDOMNode *node;
     HRESULT hres;
     nsresult nsres;
@@ -269,8 +270,12 @@ static HRESULT WINAPI HTMLInputElement_get_form(IHTMLInputElement *iface, IHTMLF
         return E_FAIL;
     }
 
-    hres = get_node(This->element.node.doc, (nsIDOMNode*)nsform, TRUE, &node);
+    nsres = nsIDOMHTMLFormElement_QueryInterface(nsform, &IID_nsIDOMNode, (void**)&form_node);
     nsIDOMHTMLFormElement_Release(nsform);
+    assert(nsres == NS_OK);
+
+    hres = get_node(This->element.node.doc, form_node, TRUE, &node);
+    nsIDOMNode_Release(form_node);
     if (FAILED(hres))
         return hres;
 
@@ -1233,7 +1238,7 @@ static HRESULT HTMLInputElementImpl_fire_event(HTMLDOMNode *iface, eventid_t eid
 
         *handled = TRUE;
 
-        nsres = nsIDOMHTMLInputElement_Click(This->nsinput);
+        nsres = nsIDOMHTMLElement_Click(This->element.nselem);
         if(NS_FAILED(nsres)) {
             ERR("Click failed: %08x\n", nsres);
             return E_FAIL;




More information about the wine-cvs mailing list