258{
263 BINDINFO bindinfo;
269
270 TRACE(
"(%p)->(%p %p %p %08lx %p)\n",
This, pUri, pOIProtSink,
272
273 if(!pUri)
275
282
283 memset(&bindinfo, 0,
sizeof(bindinfo));
284 bindinfo.cbSize = sizeof(BINDINFO);
285 hres = IInternetBindInfo_GetBindInfo(pOIBindInfo, &grfBINDF, &bindinfo);
287 WARN(
"GetBindInfo failed: %08lx\n",
hres);
289 }
290
292
293 if(!(grfBINDF & BINDF_FROMURLMON))
294 IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_DIRECTBIND,
NULL);
295
297 IInternetProtocolSink_ReportData(pOIProtSink,
298 BSCF_FIRSTDATANOTIFICATION|BSCF_LASTDATANOTIFICATION,
301 }
302
303 IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_SENDINGREQUEST,
L"");
304
308 WARN(
"CoInternetParseIUri failed: %08lx\n",
hres);
310 }
311
315
319 }
322
326 }
327
330 IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_CACHEFILENAMEAVAILABLE,
path);
331
332 hres = IUri_GetExtension(pUri, &
ext);
339 IInternetProtocolSink_ReportProgress(pOIProtSink,
340 (grfBINDF & BINDF_FROMURLMON) ?
341 BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE : BINDSTATUS_MIMETYPEAVAILABLE,
344 }
345 }
347 }
348
349 IInternetProtocolSink_ReportData(pOIProtSink,
350 BSCF_FIRSTDATANOTIFICATION|BSCF_LASTDATANOTIFICATION,
352
354}
void WINAPI CoTaskMemFree(void *ptr)
#define FILE_ATTRIBUTE_NORMAL
static const WCHAR *const ext[]
static HRESULT report_result(IInternetProtocolSink *protocol_sink, HRESULT hres, DWORD res)
HRESULT WINAPI CoInternetParseIUri(IUri *pIUri, PARSEACTION ParseAction, DWORD dwFlags, LPWSTR pwzResult, DWORD cchResult, DWORD *pcchResult, DWORD_PTR dwReserved)
HRESULT find_mime_from_ext(const WCHAR *ext, WCHAR **ret)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
static unsigned int file_size
static FILE * file_handle
void WINAPI ReleaseBindInfo(BINDINFO *pbindinfo)
DWORD WINAPI GetLastError(void)
#define INET_E_RESOURCE_NOT_FOUND