From: Jacek Caban Subject: ieframe: Fixed a typo in IDocObjectService::FireDocumentComplete Message-Id: <4F20262F.7080609@codeweavers.com> Date: Wed, 25 Jan 2012 16:56:31 +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 f9bbc29..91a3bf6 100644 --- a/dlls/ieframe/shellbrowser.c +++ b/dlls/ieframe/shellbrowser.c @@ -809,7 +809,7 @@ static HRESULT WINAPI DocObjectService_FireDocumentComplete( TRACE("got URL %s\n", debugstr_w(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 443834c..e97cf3f 100644 --- a/dlls/ieframe/tests/webbrowser.c +++ b/dlls/ieframe/tests/webbrowser.c @@ -788,6 +788,26 @@ static void test_navigatecomplete2(DISPPARAMS *dp) test_ready_state((dwl_flags & (DWL_FROM_PUT_HREF|DWL_FROM_GOBACK)) ? READYSTATE_COMPLETE : READYSTATE_LOADING); } +static void test_documentcomplete(DISPPARAMS *dp) +{ + VARIANT *v; + + CHECK_EXPECT(Invoke_DOCUMENTCOMPLETE); + + 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(READYSTATE_COMPLETE); +} + static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) @@ -925,9 +945,7 @@ static HRESULT WINAPI WebBrowserEvents2_Invoke(IDispatch *iface, DISPID dispIdMe break; case DISPID_DOCUMENTCOMPLETE: - CHECK_EXPECT(Invoke_DOCUMENTCOMPLETE); - /* FIXME */ - test_ready_state(READYSTATE_COMPLETE); + test_documentcomplete(pDispParams); break; case 282: /* FIXME */