From: Jacek Caban Subject: ieframe: Fixed a typo in IDocObjectService::FireNavigateComplete2 Message-Id: <4F1FFC9A.7070901@codeweavers.com> Date: Wed, 25 Jan 2012 13:59:06 +0100 --- dlls/ieframe/shellbrowser.c | 2 +- dlls/ieframe/tests/webbrowser.c | 24 +++++++++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/dlls/ieframe/shellbrowser.c b/dlls/ieframe/shellbrowser.c index 86bba68..f9bbc29 100644 --- a/dlls/ieframe/shellbrowser.c +++ b/dlls/ieframe/shellbrowser.c @@ -748,7 +748,7 @@ static HRESULT WINAPI DocObjectService_FireNavigateComplete2( set_dochost_url(This->doc_host, url); V_VT(params) = (VT_BYREF|VT_VARIANT); - V_BYREF(params) = &url; + V_VARIANTREF(params) = &url_var; V_VT(params+1) = VT_DISPATCH; V_DISPATCH(params+1) = (IDispatch*)This->doc_host->wb; diff --git a/dlls/ieframe/tests/webbrowser.c b/dlls/ieframe/tests/webbrowser.c index 3b3d133..443834c 100644 --- a/dlls/ieframe/tests/webbrowser.c +++ b/dlls/ieframe/tests/webbrowser.c @@ -768,6 +768,26 @@ static void test_OnBeforeNavigate(const VARIANT *disp, const VARIANT *url, const *V_BOOLREF(cancel)); } +static void test_navigatecomplete2(DISPPARAMS *dp) +{ + VARIANT *v; + + CHECK_EXPECT(Invoke_NAVIGATECOMPLETE2); + + ok(dp->rgvarg != NULL, "rgvarg == NULL\n"); + ok(dp->cArgs == 2, "cArgs=%d, expected 2\n", dp->cArgs); + + ok(V_VT(dp->rgvarg) == (VT_BYREF|VT_VARIANT), "V_VT(dp->rgvarg) = %d\n", V_VT(dp->rgvarg)); + v = V_VARIANTREF(dp->rgvarg); + ok(V_VT(v) == VT_BSTR, "V_VT(url) = %d\n", V_VT(v)); + ok(!strcmp_wa(V_BSTR(v), current_url), "url=%s, expected %s\n", wine_dbgstr_w(V_BSTR(v)), current_url); + + ok(V_VT(dp->rgvarg+1) == VT_DISPATCH, "V_VT(dp->rgvarg+1) = %d\n", V_VT(dp->rgvarg+1)); + ok(V_DISPATCH(dp->rgvarg+1) == (IDispatch*)wb, "V_DISPATCH=%p, wb=%p\n", V_DISPATCH(dp->rgvarg+1), wb); + + test_ready_state((dwl_flags & (DWL_FROM_PUT_HREF|DWL_FROM_GOBACK)) ? READYSTATE_COMPLETE : READYSTATE_LOADING); +} + static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) @@ -896,9 +916,7 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe break; case DISPID_NAVIGATECOMPLETE2: - CHECK_EXPECT(Invoke_NAVIGATECOMPLETE2); - /* FIXME */ - test_ready_state((dwl_flags & (DWL_FROM_PUT_HREF|DWL_FROM_GOBACK)) ? READYSTATE_COMPLETE : READYSTATE_LOADING); + test_navigatecomplete2(pDispParams); break; case DISPID_PROGRESSCHANGE: