Jacek Caban : mshtml: Added IHTMLElement2::blur implementation.

Alexandre Julliard julliard at winehq.org
Tue Apr 10 13:52:34 CDT 2012


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Apr 10 12:53:24 2012 +0200

mshtml: Added IHTMLElement2::blur implementation.

---

 dlls/mshtml/htmlelem2.c    |   13 +++++++++++--
 dlls/mshtml/tests/events.c |   23 +++++++++++++++++++++++
 2 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmlelem2.c b/dlls/mshtml/htmlelem2.c
index 7deda19..2538b55 100644
--- a/dlls/mshtml/htmlelem2.c
+++ b/dlls/mshtml/htmlelem2.c
@@ -776,8 +776,17 @@ static HRESULT WINAPI HTMLElement2_get_onresize(IHTMLElement2 *iface, VARIANT *p
 static HRESULT WINAPI HTMLElement2_blur(IHTMLElement2 *iface)
 {
     HTMLElement *This = impl_from_IHTMLElement2(iface);
-    FIXME("(%p)\n", This);
-    return E_NOTIMPL;
+    nsresult nsres;
+
+    TRACE("(%p)\n", This);
+
+    nsres = nsIDOMHTMLElement_Blur(This->nselem);
+    if(NS_FAILED(nsres)) {
+        ERR("Blur failed: %08x\n", nsres);
+        return E_FAIL;
+    }
+
+    return S_OK;
 }
 
 static HRESULT WINAPI HTMLElement2_addFilter(IHTMLElement2 *iface, IUnknown *pUnk)
diff --git a/dlls/mshtml/tests/events.c b/dlls/mshtml/tests/events.c
index 82f22f4..d1f4e9b 100644
--- a/dlls/mshtml/tests/events.c
+++ b/dlls/mshtml/tests/events.c
@@ -74,6 +74,7 @@ DEFINE_EXPECT(iframedoc_onreadystatechange);
 DEFINE_EXPECT(img_onload);
 DEFINE_EXPECT(img_onerror);
 DEFINE_EXPECT(input_onfocus);
+DEFINE_EXPECT(input_onblur);
 DEFINE_EXPECT(form_onsubmit);
 DEFINE_EXPECT(form_onclick);
 DEFINE_EXPECT(submit_onclick);
@@ -950,6 +951,17 @@ static HRESULT WINAPI input_onfocus(IDispatchEx *iface, DISPID id, LCID lcid, WO
 
 EVENT_HANDLER_FUNC_OBJ(input_onfocus);
 
+static HRESULT WINAPI input_onblur(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp,
+        VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller)
+{
+    CHECK_EXPECT(input_onblur);
+    test_event_args(&DIID_DispHTMLInputElement, id, wFlags, pdp, pvarRes, pei, pspCaller);
+    test_event_src("INPUT");
+    return S_OK;
+}
+
+EVENT_HANDLER_FUNC_OBJ(input_onblur);
+
 static HRESULT WINAPI form_onsubmit(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp,
         VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller)
 {
@@ -1768,6 +1780,17 @@ static void test_focus(IHTMLDocument2 *doc)
     CHECK_CALLED(input_onfocus);
     ok(hres == S_OK, "focus failed: %08x\n", hres);
 
+    V_VT(&v) = VT_DISPATCH;
+    V_DISPATCH(&v) = (IDispatch*)&input_onblur_obj;
+    hres = IHTMLElement2_put_onblur(elem2, v);
+    ok(hres == S_OK, "put_onblur failed: %08x\n", hres);
+
+    SET_EXPECT(input_onblur);
+    hres = IHTMLElement2_blur(elem2);
+    pump_msgs(NULL);
+    CHECK_CALLED(input_onblur);
+    ok(hres == S_OK, "blur failed: %08x\n", hres);
+
     if(!winetest_interactive)
         ShowWindow(container_hwnd, SW_HIDE);
 




More information about the wine-cvs mailing list