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 DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI DECLSPEC_HOTPATCH CLSIDFromProgID(LPCOLESTR progid, LPCLSID clsid)
HRESULT WINAPI UrlUnescapeW(LPWSTR pszUrl, LPWSTR pszUnescaped, LPDWORD pcchUnescaped, DWORD dwFlags)
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)