Jacek Caban : shdocvw: Call try_application_url after BindToObject failure.

Alexandre Julliard julliard at winehq.org
Fri Jan 4 07:12:40 CST 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jan  3 16:41:31 2008 +0100

shdocvw: Call try_application_url after BindToObject failure.

---

 dlls/shdocvw/navigate.c |   14 +++-----------
 1 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/dlls/shdocvw/navigate.c b/dlls/shdocvw/navigate.c
index da45694..c8bfe2e 100644
--- a/dlls/shdocvw/navigate.c
+++ b/dlls/shdocvw/navigate.c
@@ -461,6 +461,7 @@ static void on_before_navigate2(DocHost *This, LPCWSTR url, const BYTE *post_dat
         SafeArrayDestroy(V_ARRAY(&var_post_data));
 }
 
+/* FIXME: urlmon should handle it */
 static BOOL try_application_url(LPCWSTR url)
 {
     SHELLEXECUTEINFOW exec_info;
@@ -564,6 +565,8 @@ static HRESULT bind_to_object(DocHost *This, IMoniker *mon, LPCWSTR url, IBindCt
             hres = S_OK;
             if(unk)
                 IUnknown_Release(unk);
+        }else if(try_application_url(This->url)) {
+            hres = S_OK;
         }else {
             FIXME("BindToObject failed: %08x\n", hres);
         }
@@ -666,7 +669,6 @@ static HRESULT navigate_hlink(DocHost *This, IMoniker *mon, IBindCtx *bindctx,
                               IBindStatusCallback *callback)
 {
     IHttpNegotiate *http_negotiate;
-    LPWSTR url = NULL;
     PBYTE post_data = NULL;
     ULONG post_data_len = 0;
     LPWSTR headers = NULL;
@@ -674,9 +676,6 @@ static HRESULT navigate_hlink(DocHost *This, IMoniker *mon, IBindCtx *bindctx,
     DWORD bindf = 0;
     HRESULT hres;
 
-    IMoniker_GetDisplayName(mon, NULL, NULL, &url);
-    TRACE("navigating to %s\n", debugstr_w(url));
-
     hres = IBindStatusCallback_QueryInterface(callback, &IID_IHttpNegotiate,
                                               (void**)&http_negotiate);
     if(SUCCEEDED(hres)) {
@@ -698,15 +697,8 @@ static HRESULT navigate_hlink(DocHost *This, IMoniker *mon, IBindCtx *bindctx,
             post_data = bindinfo.stgmedData.u.hGlobal;
     }
 
-    /* FIXME: We should do it after BindToObject call */
-    if(try_application_url(url)) {
-        CoTaskMemFree(url);
-        return S_OK;
-    }
-
     hres = navigate_mon(This, mon, post_data, post_data_len, headers);
 
-    CoTaskMemFree(url);
     CoTaskMemFree(headers);
     ReleaseBindInfo(&bindinfo);
 




More information about the wine-cvs mailing list