Jacek Caban : shdocvw: Call WindowSetResizable in put_Resizable.
Module: wine Branch: master Commit: 6f3ffa51f8670fd5a3ea9f9793b3a6dacae0a98e URL: http://source.winehq.org/git/wine.git/?a=commit;h=6f3ffa51f8670fd5a3ea9f9793... Author: Jacek Caban <jacek(a)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; }
participants (1)
-
Alexandre Julliard