235{
241 BINDINFO bindinfo;
242 STATSTG statstg;
246
247 TRACE(
"(%p)->(%p %p %p %08x %p)\n",
This, pUri, pOIProtSink,
249
254 return INET_E_INVALID_URL;
255
256 memset(&bindinfo, 0,
sizeof(bindinfo));
257 bindinfo.cbSize = sizeof(BINDINFO);
258 hres = IInternetBindInfo_GetBindInfo(pOIBindInfo, &
bindf, &bindinfo);
260 WARN(
"GetBindInfo failed: %08x\n",
hres);
262 }
263
265
266 IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_SENDINGREQUEST,
NULL);
267
268 hres = IUri_GetDisplayUri(pUri, &
url);
274 IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_MIMETYPEAVAILABLE,
mime);
276 }
277
286 }
287
290 if(!colon_ptr) {
293 }
294
298
303 {
306 }
307
314 }
315
316 hres = IParseDisplayName_ParseDisplayName(pdn,
NULL , display_name, &eaten, &mon);
318 IParseDisplayName_Release(pdn);
320 WARN(
"ParseDisplayName failed: %08x\n",
hres);
322 }
323
325 IStream_Release(
This->stream);
327 }
328
329 hres = IMoniker_BindToStorage(mon,
NULL ,
NULL, &IID_IStream, (
void**)&
This->stream);
330 IMoniker_Release(mon);
332 WARN(
"BindToStorage failed: %08x\n",
hres);
334 }
335
336 hres = IStream_Stat(
This->stream, &statstg, STATFLAG_NONAME);
340 }
341
342 IInternetProtocolSink_ReportData(pOIProtSink,
343 BSCF_FIRSTDATANOTIFICATION | BSCF_LASTDATANOTIFICATION,
344 statstg.cbSize.u.LowPart, statstg.cbSize.u.LowPart);
346}
static BOOL heap_free(void *mem)
#define ERROR_INVALID_PARAMETER
HRESULT WINAPI UrlUnescapeW(WCHAR *url, WCHAR *unescaped, DWORD *unescaped_len, DWORD flags)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH CLSIDFromProgID(LPCOLESTR progid, LPCLSID clsid)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
HRESULT WINAPI FindMimeFromData(LPBC pBC, LPCWSTR pwzUrl, LPVOID pBuffer, DWORD cbSize, LPCWSTR pwzMimeProposed, DWORD dwMimeFlags, LPWSTR *ppwzMimeOut, DWORD dwReserved)
static HRESULT report_result(IInternetProtocolSink *sink, HRESULT hres, DWORD dwError)
#define memcpy(s1, s2, n)
UINT WINAPI SysStringLen(BSTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IParseDisplayName
#define URL_UNESCAPE_INPLACE
void WINAPI ReleaseBindInfo(BINDINFO *pbindinfo)