Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

This function creates a pull type stream object from a URL.

Syntax

HRESULT URLOpenPullStream(
  LPUNKNOWN 
pCaller,
  LPCSTR 
szURL,
  DWORD 
dwReserved,
  LPBINDSTATUSCALLBACK 
lpfnCB
);

Parameters

pCaller

Address of the controlling IUnknowninterface of the calling Microsoft ActiveX component, if the caller is an ActiveX component. If the caller is not an ActiveX component, this value can be set to NULL. Otherwise, the caller is a Component Object Model (COM) object that is contained in another component, such as an ActiveX Control within the context of an HTML page. This parameter represents the outermost IUnknownof the calling component. The function attempts the download within the context of the ActiveX client framework and allows the caller's container to receive callbacks on the progress of the download.

szURL

String containing the URL to be converted to a stream object. This parameter cannot be NULL.

dwReserved

Reserved. Must be zero.

lpfnCB

Address of the caller's IBindStatusCallbackinterface, on which URLOpenPullStreamcalls IBindStatusCallback::OnDataAvailablewhen data arrives from the Internet. IBindStatusCallback::OnDataAvailablecan return E_ABORT to abort the download.

Return Value

Returns S_OK if the operation succeeded or E_OUTOFMEMORY if there was insufficient memory to complete the operation.

Remarks

The pull model is slightly more cumbersome than the push model, but it allows the client to control the amount of Internet access for the download.

The data is downloaded from the Internet on demand. If not enough data is available locally to satisfy the requests, the IStream::Readcall will not block until enough data has arrived. Instead, IStream::Readimmediately returns E_PENDING and URLOpenPullStreamrequests the next packet of data from the Internet server.

Requirements

Header urlmon.h, urlmon.idl
Library urlmon.lib
Windows Embedded CE Windows CE .NET 4.0 and later
Windows Mobile Windows Mobile Version 5.0 and later