mshtml: Added IHTMLFormElement::onsubmit implementation.
authorJacek Caban <jacek@codeweavers.com>
Mon, 28 Feb 2011 12:13:49 +0000 (13:13 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 28 Feb 2011 13:04:53 +0000 (14:04 +0100)
dlls/mshtml/htmlevent.c
dlls/mshtml/htmlevent.h
dlls/mshtml/htmlform.c

index c8dad46c0591425faa3f951acd0e278a948e5105..9092b65007900038ab9b359d4dab21004d890f30 100644 (file)
@@ -107,6 +107,9 @@ static const WCHAR onresizeW[] = {'o','n','r','e','s','i','z','e',0};
 static const WCHAR selectstartW[] = {'s','e','l','e','c','t','s','t','a','r','t',0};
 static const WCHAR onselectstartW[] = {'o','n','s','e','l','e','c','t','s','t','a','r','t',0};
 
+static const WCHAR submitW[] = {'s','u','b','m','i','t',0};
+static const WCHAR onsubmitW[] = {'o','n','s','u','b','m','i','t',0};
+
 static const WCHAR HTMLEventsW[] = {'H','T','M','L','E','v','e','n','t','s',0};
 static const WCHAR KeyboardEventW[] = {'K','e','y','b','o','a','r','d','E','v','e','n','t',0};
 static const WCHAR MouseEventW[] = {'M','o','u','s','e','E','v','e','n','t',0};
@@ -180,7 +183,9 @@ static const event_info_t event_info[] = {
     {resizeW,            onresizeW,            EVENTT_NONE,   DISPID_EVMETH_ONRESIZE,
         EVENT_DEFAULTLISTENER|EVENT_BUBBLE},
     {selectstartW,       onselectstartW,       EVENTT_MOUSE,  DISPID_EVMETH_ONSELECTSTART,
-        0}
+        0},
+    {submitW,            onsubmitW,            EVENTT_HTML,   DISPID_EVMETH_ONSUBMIT,
+        EVENT_DEFAULTLISTENER|EVENT_BUBBLE}
 };
 
 static const eventid_t node_handled_list[] = { EVENTID_LOAD };
index 608950479bb176ebad8847d28dba00525d4cdd94..a1b3c7440686d90c1fba1a5575380b3edb536bbf 100644 (file)
@@ -38,6 +38,7 @@ typedef enum {
     EVENTID_READYSTATECHANGE,
     EVENTID_RESIZE,
     EVENTID_SELECTSTART,
+    EVENTID_SUBMIT,
     EVENTID_LAST
 } eventid_t;
 
index 3dff3766f846e54aecc3587dce7147777ff89ba7..0f77d28cb148373c7ec6b767d86e688353e53c6a 100644 (file)
@@ -28,6 +28,7 @@
 #include "wine/debug.h"
 
 #include "mshtml_private.h"
+#include "htmlevent.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
 
@@ -323,15 +324,19 @@ static HRESULT WINAPI HTMLFormElement_get_name(IHTMLFormElement *iface, BSTR *p)
 static HRESULT WINAPI HTMLFormElement_put_onsubmit(IHTMLFormElement *iface, VARIANT v)
 {
     HTMLFormElement *This = impl_from_IHTMLFormElement(iface);
-    FIXME("(%p)->(v)\n", This);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
+
+    return set_node_event(&This->element.node, EVENTID_SUBMIT, &v);
 }
 
 static HRESULT WINAPI HTMLFormElement_get_onsubmit(IHTMLFormElement *iface, VARIANT *p)
 {
     HTMLFormElement *This = impl_from_IHTMLFormElement(iface);
-    FIXME("(%p)->(%p)\n", This, p);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%p)\n", This, p);
+
+    return get_node_event(&This->element.node, EVENTID_SUBMIT, p);
 }
 
 static HRESULT WINAPI HTMLFormElement_put_onreset(IHTMLFormElement *iface, VARIANT v)