Module: wine Branch: master Commit: 986800701b2c7a1d1963fe68d5a193bb5047735e URL: http://source.winehq.org/git/wine.git/?a=commit;h=986800701b2c7a1d1963fe68d5...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Jan 5 18:30:36 2012 +0100
mshtml: Use QueryService helper function in SetClientSite implementation.
---
dlls/mshtml/oleobj.c | 39 ++++++++++++++++----------------------- 1 files changed, 16 insertions(+), 23 deletions(-)
diff --git a/dlls/mshtml/oleobj.c b/dlls/mshtml/oleobj.c index e5c0235..e207066 100644 --- a/dlls/mshtml/oleobj.c +++ b/dlls/mshtml/oleobj.c @@ -203,41 +203,34 @@ static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, IOleClientSite OLECMD cmd = {OLECMDID_SETPROGRESSTEXT, 0};
if(!hostui_setup) { - IServiceProvider *sp; + IDocObjectService *doc_object_service; + IBrowserService *browser_service; + IWebBrowser2 *wb;
V_VT(&var) = VT_UNKNOWN; V_UNKNOWN(&var) = (IUnknown*)&This->window->IHTMLWindow2_iface; IOleCommandTarget_Exec(cmdtrg, &CGID_DocHostCmdPriv, DOCHOST_DOCCANNAVIGATE, 0, &var, NULL);
- hres = IOleClientSite_QueryInterface(pClientSite, &IID_IServiceProvider, (void**)&sp); + hres = do_query_service((IUnknown*)pClientSite, &IID_IShellBrowser, + &IID_IBrowserService, (void**)&browser_service); if(SUCCEEDED(hres)) { - IDocObjectService *doc_object_service; - IBrowserService *browser_service; - IWebBrowser2 *wb; - - hres = IServiceProvider_QueryService(sp, &IID_IShellBrowser, - &IID_IBrowserService, (void**)&browser_service); + hres = IBrowserService_QueryInterface(browser_service, + &IID_IDocObjectService, (void**)&doc_object_service); if(SUCCEEDED(hres)) { - hres = IBrowserService_QueryInterface(browser_service, - &IID_IDocObjectService, (void**)&doc_object_service); + This->doc_obj->doc_object_service = doc_object_service; + + /* + * Some embedding routines, esp. in regards to use of IDocObjectService, differ if + * embedder supports IWebBrowserApp. + */ + hres = do_query_service((IUnknown*)pClientSite, &IID_IWebBrowserApp, &IID_IWebBrowser2, (void**)&wb); if(SUCCEEDED(hres)) { - This->doc_obj->doc_object_service = doc_object_service; - - /* - * Some embedding routines, esp. in regards to use of IDocObjectService, differ if - * embedder supports IWebBrowserApp. - */ - hres = IServiceProvider_QueryService(sp, &IID_IWebBrowserApp, &IID_IWebBrowser2, (void**)&wb); - if(SUCCEEDED(hres)) { - This->doc_obj->is_webbrowser = TRUE; - IWebBrowser2_Release(wb); - } + This->doc_obj->is_webbrowser = TRUE; + IWebBrowser2_Release(wb); }
IBrowserService_Release(browser_service); } - - IServiceProvider_Release(sp); } }