Jacek Caban : mshtml: Use QueryService helper function in SetClientSite implementation.

Alexandre Julliard julliard at winehq.org
Thu Jan 5 15:24:43 CST 2012


Module: wine
Branch: master
Commit: 986800701b2c7a1d1963fe68d5a193bb5047735e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=986800701b2c7a1d1963fe68d5a193bb5047735e

Author: Jacek Caban <jacek at 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);
             }
         }
 




More information about the wine-cvs mailing list