From 473010268df893322c0252bef1629213310df1f2 Mon Sep 17 00:00:00 2001 From: Jared Lapsley Date: Thu, 13 Mar 2008 08:16:41 -0400 Subject: [PATCH] shdocvw: WebBrowser_get_Busy implementation. --- dlls/shdocvw/dochost.c | 1 + dlls/shdocvw/navigate.c | 2 ++ dlls/shdocvw/shdocvw.h | 1 + dlls/shdocvw/webbrowser.c | 7 +++++-- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/dlls/shdocvw/dochost.c b/dlls/shdocvw/dochost.c index c3a22f461df..908503c1870 100644 --- a/dlls/shdocvw/dochost.c +++ b/dlls/shdocvw/dochost.c @@ -78,6 +78,7 @@ static void navigate_complete(DocHost *This) SysFreeString(V_BSTR(&url)); if(disp) IDispatch_Release(disp); + This->busy = VARIANT_FALSE; } void object_available(DocHost *This) diff --git a/dlls/shdocvw/navigate.c b/dlls/shdocvw/navigate.c index 7e8606fb10e..7ca0b0f56b3 100644 --- a/dlls/shdocvw/navigate.c +++ b/dlls/shdocvw/navigate.c @@ -427,6 +427,8 @@ static void on_before_navigate2(DocHost *This, LPCWSTR url, const BYTE *post_dat dispparams.rgdispidNamedArgs = NULL; dispparams.rgvarg = params; + This->busy = VARIANT_TRUE; + V_VT(params) = VT_BOOL|VT_BYREF; V_BOOLREF(params) = cancel; diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h index af647a1add1..1257b760303 100644 --- a/dlls/shdocvw/shdocvw.h +++ b/dlls/shdocvw/shdocvw.h @@ -99,6 +99,7 @@ struct DocHost { VARIANT_BOOL silent; VARIANT_BOOL offline; + VARIANT_BOOL busy; ConnectionPointContainer cps; }; diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c index 1262c3c6e3c..db6bea6120f 100644 --- a/dlls/shdocvw/webbrowser.c +++ b/dlls/shdocvw/webbrowser.c @@ -462,8 +462,11 @@ static HRESULT WINAPI WebBrowser_get_LocationURL(IWebBrowser2 *iface, BSTR *Loca static HRESULT WINAPI WebBrowser_get_Busy(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->doc_host.busy; + return S_OK; } static HRESULT WINAPI WebBrowser_Quit(IWebBrowser2 *iface)