Jacek Caban : shdocvw.5: Move on_before_navigate2 call to navigate_mon.
Alexandre Julliard
julliard at winehq.org
Fri Jan 4 07:12:40 CST 2008
Module: wine
Branch: master
Commit: e5321be5a318cb5f27a44b34c896364753c47724
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e5321be5a318cb5f27a44b34c896364753c47724
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Jan 3 16:43:03 2008 +0100
shdocvw.5: Move on_before_navigate2 call to navigate_mon.
---
dlls/shdocvw/navigate.c | 35 ++++++++++++++++++++---------------
1 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/dlls/shdocvw/navigate.c b/dlls/shdocvw/navigate.c
index 6f35a06..a3a0e24 100644
--- a/dlls/shdocvw/navigate.c
+++ b/dlls/shdocvw/navigate.c
@@ -558,13 +558,24 @@ static HRESULT navigate_mon(DocHost *This, IMoniker *mon, PBYTE post_data, ULONG
{
IBindStatusCallback *callback;
IBindCtx *bindctx;
+ VARIANT_BOOL cancel = VARIANT_FALSE;
+ LPWSTR url;
HRESULT hres;
- IMoniker_GetDisplayName(mon, NULL, NULL, &This->url);
- TRACE("navigating to %s\n", debugstr_w(This->url));
+ IMoniker_GetDisplayName(mon, NULL, NULL, &url);
+ TRACE("navigating to %s\n", debugstr_w(url));
+
+ on_before_navigate2(This, url, post_data, post_data_len, headers, &cancel);
+ if(cancel) {
+ FIXME("Navigation canceled\n");
+ CoTaskMemFree(url);
+ return S_OK;
+ }
if(This->document)
deactivate_document(This);
+ CoTaskMemFree(This->url);
+ This->url = url;
callback = create_callback(This, post_data, post_data_len, (LPWSTR)headers);
CreateAsyncBindCtx(0, callback, 0, &bindctx);
@@ -637,7 +648,6 @@ static HRESULT navigate_hlink(DocHost *This, IMoniker *mon, IBindCtx *bindctx,
PBYTE post_data = NULL;
ULONG post_data_len = 0;
LPWSTR headers = NULL;
- VARIANT_BOOL cancel = VARIANT_FALSE;
BINDINFO bindinfo;
DWORD bindf = 0;
HRESULT hres;
@@ -666,20 +676,15 @@ static HRESULT navigate_hlink(DocHost *This, IMoniker *mon, IBindCtx *bindctx,
post_data = bindinfo.stgmedData.u.hGlobal;
}
- on_before_navigate2(This, url, post_data, post_data_len, headers, &cancel);
- CoTaskMemFree(url);
-
- if(cancel) {
- FIXME("navigation canceled\n");
- hres = S_OK;
- }else {
- /* FIXME: We should do it after BindToObject call */
- if(try_application_url(url))
- return S_OK;
-
- hres = navigate_mon(This, mon, post_data, post_data_len, headers);
+ /* 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