ChangeSet ID: 21622 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/12/02 07:14:47
Modified files: dlls/shdocvw : dochost.c
Log message: Jacek Caban jacek@codeweavers.com Use sink in navigate_complete instead of ClientSite's IDispatch.
Patch: http://cvs.winehq.org/patch.py?id=21622
Old revision New revision Changes Path 1.5 1.6 +8 -15 wine/dlls/shdocvw/dochost.c
Index: wine/dlls/shdocvw/dochost.c diff -u -p wine/dlls/shdocvw/dochost.c:1.5 wine/dlls/shdocvw/dochost.c:1.6 --- wine/dlls/shdocvw/dochost.c:1.5 2 Dec 2005 13:14:47 -0000 +++ wine/dlls/shdocvw/dochost.c 2 Dec 2005 13:14:47 -0000 @@ -27,17 +27,13 @@ static ATOM doc_view_atom = 0;
static void navigate_complete(WebBrowser *This) { - IDispatch *disp, *docdisp = NULL; + IDispatch *disp = NULL; DISPPARAMS dispparams; VARIANTARG params[2]; VARIANT url; HRESULT hres;
- hres = IOleClientSite_QueryInterface(This->client, &IID_IDispatch, (void**)&disp); - if(FAILED(hres)) - return; - - hres = IUnknown_QueryInterface(This->document, &IID_IDispatch, (void**)&docdisp); + hres = IUnknown_QueryInterface(This->document, &IID_IDispatch, (void**)&disp); if(FAILED(hres)) FIXME("Could not get IDispatch interface\n");
@@ -50,19 +46,16 @@ static void navigate_complete(WebBrowser V_BYREF(params) = &url;
V_VT(params+1) = VT_DISPATCH; - V_DISPATCH(params+1) = docdisp; + V_DISPATCH(params+1) = disp;
V_VT(&url) = VT_BSTR; V_BSTR(&url) = This->url;
- IDispatch_Invoke(disp, DISPID_NAVIGATECOMPLETE2, &IID_NULL, LOCALE_SYSTEM_DEFAULT, - DISPATCH_METHOD, &dispparams, NULL, NULL, NULL); - IDispatch_Invoke(disp, DISPID_DOCUMENTCOMPLETE, &IID_NULL, LOCALE_SYSTEM_DEFAULT, - DISPATCH_METHOD, &dispparams, NULL, NULL, NULL); - - IDispatch_Release(disp); - if(docdisp) - IDispatch_Release(docdisp); + call_sink(This->cp_wbe2, DISPID_NAVIGATECOMPLETE2, &dispparams); + call_sink(This->cp_wbe2, DISPID_DOCUMENTCOMPLETE, &dispparams); + + if(disp) + IDispatch_Release(disp); }
static LRESULT navigate2(WebBrowser *This)