mshtml: Added IHTMLElement::put_onclick implementation.
authorJacek Caban <jacek@codeweavers.com>
Mon, 23 Jun 2008 14:54:51 +0000 (09:54 -0500)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 23 Jun 2008 17:46:30 +0000 (19:46 +0200)
dlls/mshtml/htmlelem.c
dlls/mshtml/htmlevent.c
dlls/mshtml/mshtml_private.h

index ce93399c27066b50d16a3a165f781716214640a3..3968156c0ed0247b79c5a0f9304dd06ec3c65cc8 100644 (file)
@@ -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)
index d155ed50fbd626a1f4998f670466a99928fc6bb9..cfd6ebc1a9c82c58eedc6693574466d96a14987d 100644 (file)
@@ -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;
index 38dc7157f5f02df40d9acd7579b8d1f8e26204b0..3842591a2be967760be1d33bf13b181a41d0941c 100644 (file)
@@ -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*);