static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *iface, HRESULT hresult, LPCWSTR szError) { BindStatusCallback *This = impl_from_IBindStatusCallback(iface); TRACE("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError)); set_status_text(This, 0, emptyW); if(!This->doc_host) return S_OK; if(!This->doc_host->olecmd) notify_download_state(This->doc_host, FALSE); if(FAILED(hresult)) handle_navigation_error(This->doc_host, hresult, This->url, NULL); IOleClientSite_Release(&This->doc_host->IOleClientSite_iface); This->doc_host = NULL; IBinding_Release(This->binding); This->binding = NULL; return S_OK; }
static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallback *iface, ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText) { BindStatusCallback *This = impl_from_IBindStatusCallback(iface); DWORD status_code; TRACE("(%p)->(%d %d %d %s)\n", This, ulProgress, ulProgressMax, ulStatusCode, debugstr_w(szStatusText)); switch(ulStatusCode) { case BINDSTATUS_REDIRECTING: return set_dochost_url(This->doc_host, szStatusText); case BINDSTATUS_BEGINDOWNLOADDATA: set_status_text(This, szStatusText); /* FIXME: "Start downloading from site: %s" */ status_code = get_http_status_code(This->binding); if(status_code != HTTP_STATUS_OK) handle_navigation_error(This->doc_host, status_code, This->url, NULL); return S_OK; case BINDSTATUS_ENDDOWNLOADDATA: set_status_text(This, szStatusText); /* FIXME: "Downloading from site: %s" */ return S_OK; case BINDSTATUS_CLASSIDAVAILABLE: case BINDSTATUS_MIMETYPEAVAILABLE: case BINDSTATUS_BEGINSYNCOPERATION: case BINDSTATUS_ENDSYNCOPERATION: return S_OK; default: FIXME("status code %u\n", ulStatusCode); } return S_OK; }