shdocvw: Added OnStopBinding implementation and use it in http_load_hack.

This commit is contained in:
Jacek Caban 2008-01-03 16:40:17 +01:00 committed by Alexandre Julliard
parent f79771cb6c
commit cc8ed9a371
1 changed files with 10 additions and 13 deletions

View File

@ -30,6 +30,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw); WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
static const WCHAR emptyW[] = {0};
typedef struct { typedef struct {
const IBindStatusCallbackVtbl *lpBindStatusCallbackVtbl; const IBindStatusCallbackVtbl *lpBindStatusCallbackVtbl;
const IHttpNegotiateVtbl *lpHttpNegotiateVtbl; const IHttpNegotiateVtbl *lpHttpNegotiateVtbl;
@ -214,14 +216,16 @@ static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *ifac
{ {
BindStatusCallback *This = BINDSC_THIS(iface); BindStatusCallback *This = BINDSC_THIS(iface);
FIXME("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError)); TRACE("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError));
set_status_text(This, emptyW);
if(This->doc_host) { if(This->doc_host) {
IOleClientSite_Release(CLIENTSITE(This->doc_host)); IOleClientSite_Release(CLIENTSITE(This->doc_host));
This->doc_host = NULL; This->doc_host = NULL;
} }
return E_NOTIMPL; return S_OK;
} }
static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface, static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface,
@ -512,8 +516,10 @@ static HRESULT http_load_hack(DocHost *This, IMoniker *mon, IBindStatusCallback
} }
hres = IUnknown_QueryInterface(doc, &IID_IPersistMoniker, (void**)&persist); hres = IUnknown_QueryInterface(doc, &IID_IPersistMoniker, (void**)&persist);
if(FAILED(hres)) if(FAILED(hres)) {
IUnknown_Release(doc);
return hres; return hres;
}
hres = IPersistMoniker_Load(persist, FALSE, mon, bindctx, 0); hres = IPersistMoniker_Load(persist, FALSE, mon, bindctx, 0);
IPersistMoniker_Release(persist); IPersistMoniker_Release(persist);
@ -525,14 +531,7 @@ static HRESULT http_load_hack(DocHost *This, IMoniker *mon, IBindStatusCallback
IUnknown_Release(doc); IUnknown_Release(doc);
if(This->frame) { return IBindStatusCallback_OnStopBinding(callback, hres, NULL);
static const WCHAR empty[] = {0};
IOleInPlaceFrame_SetStatusText(This->frame, empty); /* FIXME */
}
return hres;
} }
static HRESULT bind_to_object(DocHost *This, IMoniker *mon, LPCWSTR url, IBindCtx *bindctx, static HRESULT bind_to_object(DocHost *This, IMoniker *mon, LPCWSTR url, IBindCtx *bindctx,
@ -572,8 +571,6 @@ static HRESULT navigate_mon(DocHost *This, IMoniker *mon, PBYTE post_data, ULONG
hres = bind_to_object(This, mon, This->url, bindctx, callback); hres = bind_to_object(This, mon, This->url, bindctx, callback);
IBindStatusCallback_OnStopBinding(callback, hres, NULL);
IBindStatusCallback_Release(callback); IBindStatusCallback_Release(callback);
IBindCtx_Release(bindctx); IBindCtx_Release(bindctx);