Jacek Caban : shdocvw: Call WindowSetResizable in put_Resizable.

Alexandre Julliard julliard at winehq.org
Tue Jan 15 07:47:09 CST 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Jan 14 16:26:36 2008 +0100

shdocvw: Call WindowSetResizable in put_Resizable.

---

 dlls/shdocvw/tests/webbrowser.c |    4 ++--
 dlls/shdocvw/webbrowser.c       |   10 +++++++++-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c
index 102f7d9..0929f03 100644
--- a/dlls/shdocvw/tests/webbrowser.c
+++ b/dlls/shdocvw/tests/webbrowser.c
@@ -1562,12 +1562,12 @@ static void test_ie_funcs(IUnknown *unk)
     SET_EXPECT(Invoke_WINDOWSETRESIZABLE);
     hres = IWebBrowser2_put_Resizable(wb, (exvb = VARIANT_TRUE));
     ok(hres == S_OK, "put_Resizable failed: %08x\n", hres);
-    todo_wine CHECK_CALLED(Invoke_WINDOWSETRESIZABLE);
+    CHECK_CALLED(Invoke_WINDOWSETRESIZABLE);
 
     SET_EXPECT(Invoke_WINDOWSETRESIZABLE);
     hres = IWebBrowser2_put_Resizable(wb, (exvb = VARIANT_FALSE));
     ok(hres == S_OK, "put_Resizable failed: %08x\n", hres);
-    todo_wine CHECK_CALLED(Invoke_WINDOWSETRESIZABLE);
+    CHECK_CALLED(Invoke_WINDOWSETRESIZABLE);
 
     hres = IWebBrowser2_get_Resizable(wb, &b);
     ok(hres == E_NOTIMPL, "get_Resizable failed: %08x\n", hres);
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c
index b72523b..55f1620 100644
--- a/dlls/shdocvw/webbrowser.c
+++ b/dlls/shdocvw/webbrowser.c
@@ -864,10 +864,18 @@ static HRESULT WINAPI WebBrowser_get_Resizable(IWebBrowser2 *iface, VARIANT_BOOL
 static HRESULT WINAPI WebBrowser_put_Resizable(IWebBrowser2 *iface, VARIANT_BOOL Value)
 {
     WebBrowser *This = WEBBROWSER_THIS(iface);
+    VARIANTARG arg;
+    DISPPARAMS dispparams = {&arg, NULL, 1, 0};
 
     TRACE("(%p)->(%x)\n", This, Value);
 
-    /* It's InternetExplorer object's method. We have nothing to do here. */
+    /* In opposition to InternetExplorer, all we should do here is
+     * inform the embedder about the resizable change. */
+
+    V_VT(&arg) = VT_BOOL;
+    V_BOOL(&arg) = Value;
+    call_sink(This->doc_host.cps.wbe2, DISPID_WINDOWSETRESIZABLE, &dispparams);
+
     return S_OK;
 }
 




More information about the wine-cvs mailing list