shdocvw: Call try_application_url after BindToObject failure.
This commit is contained in:
parent
b5f387997c
commit
f427951d04
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue