Jacek Caban : shdocvw: Fixed DISPID_ONTOOLBAR test on IE7.

Alexandre Julliard julliard at winehq.org
Mon Jun 9 07:13:02 CDT 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sun Jun  8 21:33:27 2008 +0200

shdocvw: Fixed DISPID_ONTOOLBAR test on IE7.

---

 dlls/shdocvw/tests/webbrowser.c |   26 +++++++++++++++-----------
 dlls/shdocvw/webbrowser.c       |    2 +-
 2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c
index 2989076..da92600 100644
--- a/dlls/shdocvw/tests/webbrowser.c
+++ b/dlls/shdocvw/tests/webbrowser.c
@@ -422,14 +422,18 @@ static HRESULT WINAPI WebBrowserEvents2_QueryInterface(IDispatch *iface, REFIID
     return E_NOINTERFACE;
 }
 
-#define test_invoke_bool(p) _test_invoke_bool(__LINE__,p)
-static void _test_invoke_bool(unsigned line, const DISPPARAMS *params)
+#define test_invoke_bool(p,s) _test_invoke_bool(__LINE__,p,s)
+static void _test_invoke_bool(unsigned line, const DISPPARAMS *params, BOOL strict)
 {
     ok_(__FILE__,line) (params->rgvarg != NULL, "rgvarg == NULL\n");
     ok_(__FILE__,line) (params->cArgs == 1, "cArgs=%d, expected 1\n", params->cArgs);
     ok_(__FILE__,line) (V_VT(params->rgvarg) == VT_BOOL, "V_VT(arg)=%d\n", V_VT(params->rgvarg));
-    ok_(__FILE__,line) (V_BOOL(params->rgvarg) == exvb, "V_VT(arg)=%x, expected %x\n",
-                        V_BOOL(params->rgvarg), exvb);
+    if(strict)
+        ok_(__FILE__,line) (V_BOOL(params->rgvarg) == exvb, "V_VT(arg)=%x, expected %x\n",
+                            V_BOOL(params->rgvarg), exvb);
+    else
+        ok_(__FILE__,line) (!V_BOOL(params->rgvarg) == !exvb, "V_VT(arg)=%x, expected %x\n",
+                            V_BOOL(params->rgvarg), exvb);
 }
 
 static void test_OnBeforeNavigate(const VARIANT *disp, const VARIANT *url, const VARIANT *flags,
@@ -598,37 +602,37 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe
 
     case DISPID_ONMENUBAR:
         CHECK_EXPECT(Invoke_ONMENUBAR);
-        test_invoke_bool(pDispParams);
+        test_invoke_bool(pDispParams, TRUE);
         break;
 
     case DISPID_ONADDRESSBAR:
         CHECK_EXPECT(Invoke_ONADDRESSBAR);
-        test_invoke_bool(pDispParams);
+        test_invoke_bool(pDispParams, TRUE);
         break;
 
     case DISPID_ONSTATUSBAR:
         CHECK_EXPECT(Invoke_ONSTATUSBAR);
-        test_invoke_bool(pDispParams);
+        test_invoke_bool(pDispParams, TRUE);
         break;
 
     case DISPID_ONTOOLBAR:
         CHECK_EXPECT(Invoke_ONTOOLBAR);
-        test_invoke_bool(pDispParams);
+        test_invoke_bool(pDispParams, FALSE);
         break;
 
     case DISPID_ONFULLSCREEN:
         CHECK_EXPECT(Invoke_ONFULLSCREEN);
-        test_invoke_bool(pDispParams);
+        test_invoke_bool(pDispParams, TRUE);
         break;
 
     case DISPID_ONTHEATERMODE:
         CHECK_EXPECT(Invoke_ONTHEATERMODE);
-        test_invoke_bool(pDispParams);
+        test_invoke_bool(pDispParams, TRUE);
         break;
 
     case DISPID_WINDOWSETRESIZABLE:
         CHECK_EXPECT(Invoke_WINDOWSETRESIZABLE);
-        test_invoke_bool(pDispParams);
+        test_invoke_bool(pDispParams, TRUE);
         break;
 
     default:
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c
index 1d1ca36..50c3b34 100644
--- a/dlls/shdocvw/webbrowser.c
+++ b/dlls/shdocvw/webbrowser.c
@@ -627,7 +627,7 @@ static HRESULT WINAPI WebBrowser_put_ToolBar(IWebBrowser2 *iface, int Value)
      * inform the embedder about the tool bar change. */
 
     V_VT(&arg) = VT_BOOL;
-    V_BOOL(&arg) = Value;
+    V_BOOL(&arg) = This->tool_bar;
     call_sink(This->doc_host.cps.wbe2, DISPID_ONTOOLBAR, &dispparams);
 
     return S_OK;




More information about the wine-cvs mailing list