Jacek Caban : shdocvw: Added [get|put]_Silent implementation.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Sep 25 14:45:26 CDT 2006


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Sep 21 18:07:04 2006 +0200

shdocvw: Added [get|put]_Silent implementation.

As we don't have any dialog in WebBrowser implemented yet, all we have to do is to store silent value.

---

 dlls/shdocvw/shdocvw.h          |    1 +
 dlls/shdocvw/tests/webbrowser.c |   44 +++++++++++++++++++++++++++++++++++++++
 dlls/shdocvw/webbrowser.c       |   15 ++++++++++---
 3 files changed, 56 insertions(+), 4 deletions(-)

diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h
index ee4bf8e..a022eb2 100644
--- a/dlls/shdocvw/shdocvw.h
+++ b/dlls/shdocvw/shdocvw.h
@@ -128,6 +128,7 @@ struct WebBrowser {
     VARIANT_BOOL address_bar;
     VARIANT_BOOL status_bar;
     VARIANT_BOOL tool_bar;
+    VARIANT_BOOL silent;
 
     DocHost doc_host;
 };
diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c
index 2897857..161f608 100644
--- a/dlls/shdocvw/tests/webbrowser.c
+++ b/dlls/shdocvw/tests/webbrowser.c
@@ -809,6 +809,49 @@ static void test_ie_funcs(IUnknown *unk)
     IWebBrowser2_Release(wb);
 }
 
+static void test_Silent(IUnknown *unk)
+{
+    IWebBrowser2 *wb;
+    VARIANT_BOOL b;
+    HRESULT hres;
+
+    hres = IUnknown_QueryInterface(unk, &IID_IWebBrowser2, (void**)&wb);
+    ok(hres == S_OK, "Could not get IWebBrowser2 interface: %08lx\n", hres);
+    if(FAILED(hres))
+        return;
+
+    b = 100;
+    hres = IWebBrowser2_get_Silent(wb, &b);
+    ok(hres == S_OK, "get_Silent failed: %08lx\n", hres);
+    ok(b == VARIANT_FALSE, "b=%x\n", b);
+
+    hres = IWebBrowser2_put_Silent(wb, VARIANT_TRUE);
+    ok(hres == S_OK, "set_Silent failed: %08lx\n", hres);
+
+    b = 100;
+    hres = IWebBrowser2_get_Silent(wb, &b);
+    ok(hres == S_OK, "get_Silent failed: %08lx\n", hres);
+    ok(b == VARIANT_TRUE, "b=%x\n", b);
+
+    hres = IWebBrowser2_put_Silent(wb, 100);
+    ok(hres == S_OK, "set_Silent failed: %08lx\n", hres);
+
+    b = 100;
+    hres = IWebBrowser2_get_Silent(wb, &b);
+    ok(hres == S_OK, "get_Silent failed: %08lx\n", hres);
+    ok(b == VARIANT_TRUE, "b=%x\n", b);
+
+    hres = IWebBrowser2_put_Silent(wb, VARIANT_FALSE);
+    ok(hres == S_OK, "set_Silent failed: %08lx\n", hres);
+
+    b = 100;
+    hres = IWebBrowser2_get_Silent(wb, &b);
+    ok(hres == S_OK, "get_Silent failed: %08lx\n", hres);
+    ok(b == VARIANT_FALSE, "b=%x\n", b);
+
+    IWebBrowser_Release(wb);
+}
+
 static void test_GetControlInfo(IUnknown *unk)
 {
     IOleControl *control;
@@ -911,6 +954,7 @@ static void test_WebBrowser(void)
     test_ClientSite(unk, NULL);
     test_ie_funcs(unk);
     test_GetControlInfo(unk);
+    test_Silent(unk);
 
     ref = IUnknown_Release(unk);
     ok(ref == 0, "ref=%ld, expected 0\n", ref);
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c
index 6d46132..9e56733 100644
--- a/dlls/shdocvw/webbrowser.c
+++ b/dlls/shdocvw/webbrowser.c
@@ -749,15 +749,21 @@ static HRESULT WINAPI WebBrowser_put_Off
 static HRESULT WINAPI WebBrowser_get_Silent(IWebBrowser2 *iface, VARIANT_BOOL *pbSilent)
 {
     WebBrowser *This = WEBBROWSER_THIS(iface);
-    FIXME("(%p)->(%p)\n", This, pbSilent);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%p)\n", This, pbSilent);
+
+    *pbSilent = This->silent;
+    return S_OK;
 }
 
 static HRESULT WINAPI WebBrowser_put_Silent(IWebBrowser2 *iface, VARIANT_BOOL bSilent)
 {
     WebBrowser *This = WEBBROWSER_THIS(iface);
-    FIXME("(%p)->(%x)\n", This, bSilent);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%x)\n", This, bSilent);
+
+    This->silent = bSilent ? VARIANT_TRUE : VARIANT_FALSE;
+    return S_OK;
 }
 
 static HRESULT WINAPI WebBrowser_get_RegisterAsBrowser(IWebBrowser2 *iface,
@@ -947,6 +953,7 @@ static HRESULT WebBrowser_Create(INT ver
     ret->address_bar = VARIANT_TRUE;
     ret->status_bar = VARIANT_TRUE;
     ret->tool_bar = VARIANT_TRUE;
+    ret->silent = VARIANT_FALSE;
 
     WebBrowser_OleObject_Init(ret);
     WebBrowser_ViewObject_Init(ret);




More information about the wine-cvs mailing list