static HRESULT WINAPI BPInternetProtocolSink_Switch(IInternetProtocolSink *iface, PROTOCOLDATA *pProtocolData) { BindProtocol *This = impl_from_IInternetProtocolSink(iface); PROTOCOLDATA *data; TRACE("(%p)->(%p)\n", This, pProtocolData); TRACE("flags %x state %x data %p cb %u\n", pProtocolData->grfFlags, pProtocolData->dwState, pProtocolData->pData, pProtocolData->cbData); data = heap_alloc(sizeof(PROTOCOLDATA)); if(!data) return E_OUTOFMEMORY; memcpy(data, pProtocolData, sizeof(PROTOCOLDATA)); if((This->pi&PI_APARTMENTTHREADED && pProtocolData->grfFlags&PI_FORCE_ASYNC) || !do_direct_notif(This)) { switch_task_t *task; task = heap_alloc(sizeof(switch_task_t)); if(!task) { heap_free(data); return E_OUTOFMEMORY; } task->data = data; push_task(This, &task->header, switch_proc); return S_OK; } return IInternetProtocolSink_Switch(This->protocol_sink_handler, data); }
static HRESULT WINAPI MimeFilterSink_Switch(IInternetProtocolSink *iface, PROTOCOLDATA *pProtocolData) { MimeFilter *This = impl_from_IInternetProtocolSink(iface); FIXME("(%p)->(%p)\n", This, pProtocolData); return E_NOTIMPL; }
static HRESULT WINAPI BPInternetProtocolSink_ReportResult(IInternetProtocolSink *iface, HRESULT hrResult, DWORD dwError, LPCWSTR szResult) { BindProtocol *This = impl_from_IInternetProtocolSink(iface); TRACE("(%p)->(%08x %d %s)\n", This, hrResult, dwError, debugstr_w(szResult)); if(!This->protocol_sink) return E_FAIL; This->reported_result = TRUE; if(!do_direct_notif(This)) { report_result_task_t *task; task = heap_alloc(sizeof(report_result_task_t)); if(!task) return E_OUTOFMEMORY; task->hres = hrResult; task->err = dwError; task->str = heap_strdupW(szResult); push_task(This, &task->header, report_result_proc); return S_OK; } return IInternetProtocolSink_ReportResult(This->protocol_sink_handler, hrResult, dwError, szResult); }
static HRESULT WINAPI MimeFilterSink_ReportProgress(IInternetProtocolSink *iface, ULONG ulStatusCode, LPCWSTR szStatusText) { MimeFilter *This = impl_from_IInternetProtocolSink(iface); FIXME("(%p)->(%u %s)\n", This, ulStatusCode, debugstr_w(szStatusText)); return E_NOTIMPL; }
static HRESULT WINAPI MimeFilterSink_ReportData(IInternetProtocolSink *iface, DWORD grfBSCF, ULONG ulProgress, ULONG ulProgressMax) { MimeFilter *This = impl_from_IInternetProtocolSink(iface); FIXME("(%p)->(%d %u %u)\n", This, grfBSCF, ulProgress, ulProgressMax); return E_NOTIMPL; }
static HRESULT WINAPI BPInternetProtocolSink_ReportData(IInternetProtocolSink *iface, DWORD grfBSCF, ULONG ulProgress, ULONG ulProgressMax) { BindProtocol *This = impl_from_IInternetProtocolSink(iface); TRACE("(%p)->(%x %u %u)\n", This, grfBSCF, ulProgress, ulProgressMax); if(!This->protocol_sink) return S_OK; if(!do_direct_notif(This)) { report_data_task_t *task; task = heap_alloc(sizeof(report_data_task_t)); if(!task) return E_OUTOFMEMORY; task->bscf = grfBSCF; task->progress = ulProgress; task->progress_max = ulProgressMax; push_task(This, &task->header, report_data_proc); return S_OK; } return IInternetProtocolSink_ReportData(This->protocol_sink_handler, grfBSCF, ulProgress, ulProgressMax); }
static HRESULT WINAPI MimeFilterSink_ReportResult(IInternetProtocolSink *iface, HRESULT hrResult, DWORD dwError, LPCWSTR szResult) { MimeFilter *This = impl_from_IInternetProtocolSink(iface); FIXME("(%p)->(%08x %d %s)\n", This, hrResult, dwError, debugstr_w(szResult)); return E_NOTIMPL; }
static HRESULT WINAPI InternetProtocolSink_Switch(IInternetProtocolSink *iface, PROTOCOLDATA *pProtocolData) { Binding *This = impl_from_IInternetProtocolSink(iface); WARN("(%p)->(%p)\n", This, pProtocolData); return E_FAIL; }
static HRESULT WINAPI InternetProtocolSink_ReportData(IInternetProtocolSink *iface, DWORD grfBSCF, ULONG ulProgress, ULONG ulProgressMax) { Binding *This = impl_from_IInternetProtocolSink(iface); TRACE("(%p)->(%d %u %u)\n", This, grfBSCF, ulProgress, ulProgressMax); report_data(This, grfBSCF, ulProgress, ulProgressMax); return S_OK; }
static HRESULT WINAPI InternetProtocolSink_ReportResult(IInternetProtocolSink *iface, HRESULT hrResult, DWORD dwError, LPCWSTR szResult) { Binding *This = impl_from_IInternetProtocolSink(iface); TRACE("(%p)->(%08x %d %s)\n", This, hrResult, dwError, debugstr_w(szResult)); stop_binding(This, hrResult, szResult); IInternetProtocolEx_Terminate(&This->protocol->IInternetProtocolEx_iface, 0); return S_OK; }
static HRESULT WINAPI InternetProtocolSink_ReportProgress(IInternetProtocolSink *iface, ULONG ulStatusCode, LPCWSTR szStatusText) { Binding *This = impl_from_IInternetProtocolSink(iface); TRACE("(%p)->(%u %s)\n", This, ulStatusCode, debugstr_w(szStatusText)); switch(ulStatusCode) { case BINDSTATUS_FINDINGRESOURCE: on_progress(This, 0, 0, BINDSTATUS_FINDINGRESOURCE, szStatusText); break; case BINDSTATUS_CONNECTING: on_progress(This, 0, 0, BINDSTATUS_CONNECTING, szStatusText); break; case BINDSTATUS_REDIRECTING: heap_free(This->redirect_url); This->redirect_url = heap_strdupW(szStatusText); on_progress(This, 0, 0, BINDSTATUS_REDIRECTING, szStatusText); break; case BINDSTATUS_BEGINDOWNLOADDATA: break; case BINDSTATUS_SENDINGREQUEST: on_progress(This, 0, 0, BINDSTATUS_SENDINGREQUEST, szStatusText); break; case BINDSTATUS_PROTOCOLCLASSID: break; case BINDSTATUS_MIMETYPEAVAILABLE: case BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE: mime_available(This, szStatusText); break; case BINDSTATUS_CACHEFILENAMEAVAILABLE: cache_file_available(This, szStatusText); break; case BINDSTATUS_DECODING: IBindStatusCallback_OnProgress(This->callback, 0, 0, BINDSTATUS_DECODING, szStatusText); break; case BINDSTATUS_LOADINGMIMEHANDLER: on_progress(This, 0, 0, BINDSTATUS_LOADINGMIMEHANDLER, szStatusText); break; case BINDSTATUS_DIRECTBIND: /* FIXME: Handle BINDSTATUS_DIRECTBIND in BindProtocol */ This->report_mime = FALSE; break; case BINDSTATUS_ACCEPTRANGES: break; default: FIXME("Unhandled status code %d\n", ulStatusCode); return E_NOTIMPL; }; return S_OK; }
static HRESULT WINAPI BPInternetProtocolSink_ReportProgress(IInternetProtocolSink *iface, ULONG ulStatusCode, LPCWSTR szStatusText) { BindProtocol *This = impl_from_IInternetProtocolSink(iface); TRACE("(%p)->(%u %s)\n", This, ulStatusCode, debugstr_w(szStatusText)); if(do_direct_notif(This)) { IInternetProtocolSink_ReportProgress(This->protocol_sink_handler, ulStatusCode, szStatusText); }else { on_progress_task_t *task; task = heap_alloc(sizeof(on_progress_task_t)); task->status_code = ulStatusCode; task->status_text = heap_strdupW(szStatusText); push_task(This, &task->header, on_progress_proc); } return S_OK; }
static ULONG WINAPI InternetProtocolSink_Release(IInternetProtocolSink *iface) { Binding *This = impl_from_IInternetProtocolSink(iface); return IBinding_Release(&This->IBinding_iface); }
static HRESULT WINAPI BPInternetProtocolSink_QueryInterface(IInternetProtocolSink *iface, REFIID riid, void **ppv) { BindProtocol *This = impl_from_IInternetProtocolSink(iface); return IInternetProtocolEx_QueryInterface(&This->IInternetProtocolEx_iface, riid, ppv); }
static ULONG WINAPI MimeFilterSink_Release(IInternetProtocolSink *iface) { MimeFilter *This = impl_from_IInternetProtocolSink(iface); return IInternetProtocol_Release(&This->IInternetProtocol_iface); }
static HRESULT WINAPI MimeFilterSink_QueryInterface(IInternetProtocolSink *iface, REFIID riid, void **ppv) { MimeFilter *This = impl_from_IInternetProtocolSink(iface); return IInternetProtocol_QueryInterface(&This->IInternetProtocol_iface, riid, ppv); }
static ULONG WINAPI BPInternetProtocolSink_Release(IInternetProtocolSink *iface) { BindProtocol *This = impl_from_IInternetProtocolSink(iface); return IInternetProtocolEx_Release(&This->IInternetProtocolEx_iface); }