Module: wine Branch: refs/heads/master Commit: 470e987d2f05a8bd0d33e17be6c37ca730c4bf84 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=470e987d2f05a8bd0d33e17b...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Apr 18 00:44:17 2006 +0200
shdocvw: Use DocHost, not WebBrowser, in navigate_url.
---
dlls/shdocvw/navigate.c | 38 +++++++++++++++++++------------------- dlls/shdocvw/shdocvw.h | 6 ++---- dlls/shdocvw/webbrowser.c | 2 +- 3 files changed, 22 insertions(+), 24 deletions(-)
diff --git a/dlls/shdocvw/navigate.c b/dlls/shdocvw/navigate.c index a506e2e..1b6ba87 100644 --- a/dlls/shdocvw/navigate.c +++ b/dlls/shdocvw/navigate.c @@ -288,7 +288,7 @@ static const IHttpNegotiateVtbl HttpNego HttpNegotiate_OnResponse };
-static IBindStatusCallback *create_callback(WebBrowser *This, PBYTE post_data, +static IBindStatusCallback *create_callback(DocHost *This, PBYTE post_data, ULONG post_data_len, LPWSTR headers, VARIANT_BOOL *cancel) { BindStatusCallback *ret = HeapAlloc(GetProcessHeap(), 0, sizeof(BindStatusCallback)); @@ -315,7 +315,7 @@ static IBindStatusCallback *create_callb return BINDSC(ret); }
-static void on_before_navigate2(WebBrowser *This, LPWSTR url, PBYTE post_data, ULONG post_data_len, +static void on_before_navigate2(DocHost *This, LPWSTR url, PBYTE post_data, ULONG post_data_len, LPWSTR headers, VARIANT_BOOL *cancel) { VARIANT var_url, var_flags, var_frame_name, var_post_data, var_post_data2, var_headers; @@ -369,16 +369,16 @@ static void on_before_navigate2(WebBrows V_BSTR(&var_url) = SysAllocString(url);
V_VT(params+6) = (VT_DISPATCH); - V_DISPATCH(params+6) = (IDispatch*)WEBBROWSER2(This); + V_DISPATCH(params+6) = This->disp;
- call_sink(This->doc_host.cp_wbe2, DISPID_BEFORENAVIGATE2, &dispparams); + call_sink(This->cp_wbe2, DISPID_BEFORENAVIGATE2, &dispparams);
SysFreeString(V_BSTR(&var_url)); if(post_data_len) SafeArrayDestroy(V_ARRAY(&var_post_data)); }
-static HRESULT navigate(WebBrowser *This, IMoniker *mon, IBindCtx *bindctx, +static HRESULT navigate(DocHost *This, IMoniker *mon, IBindCtx *bindctx, IBindStatusCallback *callback) { IOleObject *oleobj; @@ -392,7 +392,7 @@ static HRESULT navigate(WebBrowser *This }
IBindCtx_RegisterObjectParam(bindctx, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM, - (IUnknown*)CLIENTSITE(&This->doc_host)); + (IUnknown*)CLIENTSITE(This));
/* * FIXME: @@ -400,19 +400,19 @@ static HRESULT navigate(WebBrowser *This * This should be fixed when mshtml.dll and urlmon.dll will be good enough. */
- if(This->doc_host.document) - deactivate_document(&This->doc_host); + if(This->document) + deactivate_document(This);
hres = CoCreateInstance(&CLSID_HTMLDocument, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER, - &IID_IUnknown, (void**)&This->doc_host.document); + &IID_IUnknown, (void**)&This->document);
if(FAILED(hres)) { ERR("Could not create HTMLDocument: %08lx\n", hres); return hres; }
- hres = IUnknown_QueryInterface(This->doc_host.document, &IID_IPersistMoniker, (void**)&persist); + hres = IUnknown_QueryInterface(This->document, &IID_IPersistMoniker, (void**)&persist); if(FAILED(hres)) return hres;
@@ -428,20 +428,20 @@ static HRESULT navigate(WebBrowser *This return hres; }
- hres = IUnknown_QueryInterface(This->doc_host.document, &IID_IOleObject, (void**)&oleobj); + hres = IUnknown_QueryInterface(This->document, &IID_IOleObject, (void**)&oleobj); if(FAILED(hres)) return hres;
- hres = IOleObject_SetClientSite(oleobj, CLIENTSITE(&This->doc_host)); + hres = IOleObject_SetClientSite(oleobj, CLIENTSITE(This)); IOleObject_Release(oleobj);
- PostMessageW(This->doc_host.hwnd, WB_WM_NAVIGATE2, 0, 0); + PostMessageW(This->hwnd, WB_WM_NAVIGATE2, 0, 0);
return hres;
}
-HRESULT navigate_url(WebBrowser *This, LPCWSTR url, PBYTE post_data, ULONG post_data_len, +HRESULT navigate_url(DocHost *This, LPCWSTR url, PBYTE post_data, ULONG post_data_len, LPWSTR headers) { IBindStatusCallback *callback; @@ -456,8 +456,8 @@ HRESULT navigate_url(WebBrowser *This, L return hres; }
- IMoniker_GetDisplayName(mon, NULL, NULL, &This->doc_host.url); - TRACE("navigating to %s\n", debugstr_w(This->doc_host.url)); + IMoniker_GetDisplayName(mon, NULL, NULL, &This->url); + TRACE("navigating to %s\n", debugstr_w(This->url));
callback = create_callback(This, post_data, post_data_len, (LPWSTR)headers, &cancel); CreateAsyncBindCtx(0, callback, 0, &bindctx); @@ -469,7 +469,7 @@ HRESULT navigate_url(WebBrowser *This, L return hres; }
-HRESULT navigate_hlink(WebBrowser *This, IMoniker *mon, IBindCtx *bindctx, +HRESULT navigate_hlink(DocHost *This, IMoniker *mon, IBindCtx *bindctx, IBindStatusCallback *callback) { IHttpNegotiate *http_negotiate; @@ -517,7 +517,7 @@ HRESULT navigate_hlink(WebBrowser *This, return S_OK; }
- This->doc_host.url = url; + This->url = url;
return navigate(This, mon, bindctx, callback); } @@ -586,7 +586,7 @@ static HRESULT WINAPI HlinkFrame_Navigat return E_NOTIMPL; }
- return navigate_hlink(This, mon, pbc, pibsc); + return navigate_hlink(&This->doc_host, mon, pbc, pibsc); }
static HRESULT WINAPI HlinkFrame_OnNavigate(IHlinkFrame *iface, DWORD grfHLNF, diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h index bb15549..9228478 100644 --- a/dlls/shdocvw/shdocvw.h +++ b/dlls/shdocvw/shdocvw.h @@ -51,8 +51,6 @@ extern HRESULT SHDOCVW_GetShellInstanceO
typedef struct ConnectionPoint ConnectionPoint;
-struct WebBrowser; - typedef struct { const IOleClientSiteVtbl *lpOleClientSiteVtbl; const IOleInPlaceSiteVtbl *lpOleInPlaceSiteVtbl; @@ -83,7 +81,7 @@ typedef struct { ConnectionPoint *cp_pns; } DocHost;
-typedef struct WebBrowser { +typedef struct { /* Interfaces available via WebBrowser object */
const IWebBrowser2Vtbl *lpWebBrowser2Vtbl; @@ -169,7 +167,7 @@ HRESULT WebBrowser_Create(IUnknown*,REFI void create_doc_view_hwnd(DocHost*); void deactivate_document(DocHost*); void call_sink(ConnectionPoint*,DISPID,DISPPARAMS*); -HRESULT navigate_url(WebBrowser*,LPCWSTR,PBYTE,ULONG,LPWSTR); +HRESULT navigate_url(DocHost*,LPCWSTR,PBYTE,ULONG,LPWSTR);
#define WB_WM_NAVIGATE2 (WM_USER+100)
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c index 6dda296..cb2d284 100644 --- a/dlls/shdocvw/webbrowser.c +++ b/dlls/shdocvw/webbrowser.c @@ -615,7 +615,7 @@ static HRESULT WINAPI WebBrowser_Navigat if(!This->doc_host.hwnd) create_doc_view_hwnd(&This->doc_host);
- hres = navigate_url(This, V_BSTR(URL), post_data, post_data_len, headers); + hres = navigate_url(&This->doc_host, V_BSTR(URL), post_data, post_data_len, headers);
if(post_data) SafeArrayUnaccessData(V_ARRAY(PostData));