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

Alexandre Julliard julliard at wine.codeweavers.com
Fri May 5 14:08:01 CDT 2006


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Apr 28 20:29:07 2006 +0200

shdocvw: Added [get|put]_Visible implementation.

---

 dlls/shdocvw/shdocvw.h    |    2 ++
 dlls/shdocvw/webbrowser.c |   24 ++++++++++++++++++++----
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h
index deabf20..11a9b26 100644
--- a/dlls/shdocvw/shdocvw.h
+++ b/dlls/shdocvw/shdocvw.h
@@ -115,6 +115,8 @@ typedef struct {
 
     HWND shell_embedding_hwnd;
 
+    VARIANT_BOOL visible;
+
     DocHost doc_host;
 } WebBrowser;
 
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c
index 74ad74e..8036511 100644
--- a/dlls/shdocvw/webbrowser.c
+++ b/dlls/shdocvw/webbrowser.c
@@ -21,6 +21,7 @@
 
 #include "wine/debug.h"
 #include "shdocvw.h"
+#include "exdispid.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
 
@@ -486,15 +487,28 @@ static HRESULT WINAPI WebBrowser_get_Pat
 static HRESULT WINAPI WebBrowser_get_Visible(IWebBrowser2 *iface, VARIANT_BOOL *pBool)
 {
     WebBrowser *This = WEBBROWSER_THIS(iface);
-    FIXME("(%p)->(%p)\n", This, pBool);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%p)\n", This, pBool);
+
+    *pBool = This->visible;
+    return S_OK;
 }
 
 static HRESULT WINAPI WebBrowser_put_Visible(IWebBrowser2 *iface, VARIANT_BOOL Value)
 {
     WebBrowser *This = WEBBROWSER_THIS(iface);
-    FIXME("(%p)->(%x)\n", This, Value);
-    return E_NOTIMPL;
+    VARIANTARG arg;
+    DISPPARAMS dispparams = {&arg, NULL, 1, 0};
+
+    TRACE("(%p)->(%x)\n", This, Value);
+
+    This->visible = Value;
+
+    V_VT(&arg) = VT_BOOL;
+    V_BOOL(&arg) = Value;
+    call_sink(This->doc_host.cp_wbe2, DISPID_ONVISIBLE, &dispparams);
+
+    return S_OK;
 }
 
 static HRESULT WINAPI WebBrowser_get_StatusBar(IWebBrowser2 *iface, VARIANT_BOOL *pBool)
@@ -842,6 +856,8 @@ HRESULT WebBrowser_Create(IUnknown *pOut
 
     DocHost_Init(&ret->doc_host, (IDispatch*)WEBBROWSER2(ret));
 
+    ret->visible = VARIANT_TRUE;
+
     WebBrowser_OleObject_Init(ret);
     WebBrowser_ViewObject_Init(ret);
     WebBrowser_Persist_Init(ret);




More information about the wine-cvs mailing list