Jacek Caban : shdocvw: Added IWebBrowser2::get_ReadyState implementation.
Alexandre Julliard
julliard at winehq.org
Mon Aug 31 10:46:54 CDT 2009
Module: wine
Branch: master
Commit: d24690c8cf7b4110a41697c807eb398c438144fb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d24690c8cf7b4110a41697c807eb398c438144fb
Author: Jacek Caban <jacek at codeweavers.com>
Date: Sun Aug 30 01:02:34 2009 +0200
shdocvw: Added IWebBrowser2::get_ReadyState implementation.
---
dlls/shdocvw/tests/webbrowser.c | 24 ++++++++++++++++++++++++
dlls/shdocvw/webbrowser.c | 5 +++--
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c
index c9658a4..b3e6e66 100644
--- a/dlls/shdocvw/tests/webbrowser.c
+++ b/dlls/shdocvw/tests/webbrowser.c
@@ -171,6 +171,17 @@ static void _test_LocationURL(unsigned line, IUnknown *unk, LPCWSTR exurl)
IWebBrowser2_Release(wb);
}
+#define test_ready_state(ex) _test_ready_state(__LINE__,ex);
+static void _test_ready_state(unsigned line, READYSTATE exstate)
+{
+ READYSTATE state;
+ HRESULT hres;
+
+ hres = IWebBrowser2_get_ReadyState(wb, &state);
+ ok_(__FILE__,line)(hres == S_OK, "get_ReadyState failed: %08x\n", hres);
+ ok_(__FILE__,line)(state == exstate, "ReadyState = %d, expected %d\n", state, exstate);
+}
+
static HRESULT QueryInterface(REFIID,void**);
static HRESULT WINAPI OleCommandTarget_QueryInterface(IOleCommandTarget *iface,
@@ -594,6 +605,7 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe
ok(pDispParams->rgvarg == NULL, "rgvarg=%p, expected NULL\n", pDispParams->rgvarg);
ok(pDispParams->cArgs == 0, "cArgs=%d, expected 0\n", pDispParams->cArgs);
+ test_ready_state(READYSTATE_LOADING);
break;
case DISPID_BEFORENAVIGATE2:
@@ -604,6 +616,7 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe
test_OnBeforeNavigate(pDispParams->rgvarg+6, pDispParams->rgvarg+5, pDispParams->rgvarg+4,
pDispParams->rgvarg+3, pDispParams->rgvarg+2, pDispParams->rgvarg+1,
pDispParams->rgvarg);
+ test_ready_state(READYSTATE_LOADING);
break;
case DISPID_SETSECURELOCKICON:
@@ -635,6 +648,7 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe
ok(pDispParams->rgvarg == NULL, "rgvarg=%p, expected NULL\n", pDispParams->rgvarg);
ok(pDispParams->cArgs == 0, "cArgs=%d, expected 0\n", pDispParams->cArgs);
+ test_ready_state(READYSTATE_LOADING);
break;
case DISPID_ONMENUBAR:
@@ -680,6 +694,7 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe
case DISPID_NAVIGATECOMPLETE2:
CHECK_EXPECT(Invoke_NAVIGATECOMPLETE2);
/* FIXME */
+ test_ready_state(READYSTATE_LOADING);
break;
case DISPID_PROGRESSCHANGE:
@@ -690,6 +705,7 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe
case DISPID_DOCUMENTCOMPLETE:
CHECK_EXPECT(Invoke_DOCUMENTCOMPLETE);
/* FIXME */
+ test_ready_state(READYSTATE_COMPLETE);
break;
case 282: /* FIXME */
@@ -2094,6 +2110,7 @@ static void test_Navigate2(IUnknown *unk)
return;
test_LocationURL(unk, emptyW);
+ test_ready_state(READYSTATE_UNINITIALIZED);
V_VT(&url) = VT_BSTR;
V_BSTR(&url) = SysAllocString(about_blankW);
@@ -2149,6 +2166,8 @@ static void test_Navigate2(IUnknown *unk)
VariantClear(&url);
IWebBrowser2_Release(webbrowser);
+
+ test_ready_state(READYSTATE_LOADING);
}
static void test_download(void)
@@ -2157,6 +2176,8 @@ static void test_download(void)
is_downloading = TRUE;
+ test_ready_state(READYSTATE_LOADING);
+
SET_EXPECT(Exec_SETPROGRESSMAX);
SET_EXPECT(Exec_SETPROGRESSPOS);
SET_EXPECT(Exec_SETDOWNLOADSTATE_1);
@@ -2201,6 +2222,8 @@ static void test_download(void)
todo_wine CHECK_CALLED(GetDropTarget);
todo_wine CHECK_CALLED(Invoke_PROGRESSCHANGE);
CHECK_CALLED(Invoke_DOCUMENTCOMPLETE);
+
+ test_ready_state(READYSTATE_COMPLETE);
}
static void test_olecmd(IUnknown *unk, BOOL loaded)
@@ -2316,6 +2339,7 @@ static void test_WebBrowser(BOOL do_download)
ok(hres == S_OK, "Could not get IWebBrowser2 iface: %08x\n", hres);
test_QueryInterface(unk);
+ test_ready_state(READYSTATE_UNINITIALIZED);
test_ClassInfo(unk);
test_LocationURL(unk, emptyW);
test_ConnectionPoint(unk, TRUE);
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c
index e54e9ee..323e9ad 100644
--- a/dlls/shdocvw/webbrowser.c
+++ b/dlls/shdocvw/webbrowser.c
@@ -776,9 +776,10 @@ static HRESULT WINAPI WebBrowser_ShowBrowserBar(IWebBrowser2 *iface, VARIANT *pv
static HRESULT WINAPI WebBrowser_get_ReadyState(IWebBrowser2 *iface, READYSTATE *lpReadyState)
{
WebBrowser *This = WEBBROWSER_THIS(iface);
- FIXME("(%p)->(%p)\n", This, lpReadyState);
- *lpReadyState = READYSTATE_COMPLETE;
+ TRACE("(%p)->(%p)\n", This, lpReadyState);
+
+ *lpReadyState = This->doc_host.ready_state;
return S_OK;
}
More information about the wine-cvs
mailing list