Module: wine Branch: refs/heads/master Commit: 9d9b909466f2742ec83edc691fe70d9a967e1865 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=9d9b909466f2742ec83edc69...
Author: Jacek Caban jacek@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);