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