Jacek Caban : mshtml: Added IHTMLElement::put_onclick implementation.

Alexandre Julliard julliard at winehq.org
Mon Jun 23 16:04:03 CDT 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Jun 23 09:54:51 2008 -0500

mshtml: Added IHTMLElement::put_onclick implementation.

---

 dlls/mshtml/htmlelem.c       |    6 ++++--
 dlls/mshtml/htmlevent.c      |   13 +++++++++++++
 dlls/mshtml/mshtml_private.h |    1 +
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index ce93399..3968156 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -443,8 +443,10 @@ static HRESULT WINAPI HTMLElement_get_onhelp(IHTMLElement *iface, VARIANT *p)
 static HRESULT WINAPI HTMLElement_put_onclick(IHTMLElement *iface, VARIANT v)
 {
     HTMLElement *This = HTMLELEM_THIS(iface);
-    FIXME("(%p)->()\n", This);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->()\n", This);
+
+    return set_node_event(&This->node, EVENTID_CLICK, &v);
 }
 
 static HRESULT WINAPI HTMLElement_get_onclick(IHTMLElement *iface, VARIANT *p)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index d155ed5..cfd6ebc 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -419,6 +419,19 @@ static HRESULT set_node_event_disp(HTMLDOMNode *node, eventid_t eid, IDispatch *
     return S_OK;
 }
 
+HRESULT set_node_event(HTMLDOMNode *node, eventid_t eid, VARIANT *var)
+{
+    switch(V_VT(var)) {
+    case VT_DISPATCH:
+        return set_node_event_disp(node, eid, V_DISPATCH(var));
+
+    default:
+        FIXME("not supported vt=%d\n", V_VT(var));
+    }
+
+    return E_NOTIMPL;
+}
+
 void check_event_attr(HTMLDocument *doc, nsIDOMElement *nselem)
 {
     const PRUnichar *attr_value;
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 38dc715..3842591 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -505,6 +505,7 @@ nsresult get_nsinterface(nsISupports*,REFIID,void**);
 void check_event_attr(HTMLDocument*,nsIDOMElement*);
 void release_event_target(event_target_t*);
 void fire_event(HTMLDocument*,eventid_t,nsIDOMNode*);
+HRESULT set_node_event(HTMLDOMNode*,eventid_t,VARIANT*);
 eventid_t str_to_eid(LPCWSTR);
 
 void set_document_bscallback(HTMLDocument*,nsChannelBSC*);




More information about the wine-cvs mailing list