shdocvw:WebBrowser_get_Busy implementation
Jared
jared151 at gmail.com
Thu Mar 6 20:51:49 CST 2008
Implements WebBrowser_get_Busy function defined in Bugzilla Bug #4924.
This is a low impact change that fixes Auto-Update features in programs
like Shot-Online.
dlls/shdocvw/dochost.c:
navigate_complete function resets busy bool to false.
dlls/shdocvw/navigate.c:
on_before_navigate2 function sets busy bool to true.
dlls/shdocvw/shdocvw.h:
variant_bool busy was added to DocHost structure.
dlls/shdocvw/webbrowser.c:
WebBrowser_get_Busy function implemented using DocHost busy variable.
diff --git a/dlls/shdocvw/dochost.c b/dlls/shdocvw/dochost.c
index c3a22f4..908503c 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 7e8606f..7ca0b0f 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 af647a1..1257b76 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 95586f0..71324e5 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)
More information about the wine-patches
mailing list