Downloads data into the Internet cache and returns the name of the cached file. The client can optionally be notified of progress by means of a notification callback.
HRESULT URLDownloadToCacheFile(
LPUNKNOWN pCaller, |
// Caller’s controlling IUnknown |
LPCWSTR szURL, |
// URL to be downloaded |
LPTSTR szFileName, |
// Name of cached file |
DWORD dwBufLen, |
// Size of szFileName |
DWORD dwResv, |
// Reserved for future use |
LPBINDSTATUSCALLBACK lpfnCB |
// Caller’s IBindStatusCallback |
); |
Parameters
Return Values
This moniker also returns the same values as IBindHost::MonikerBindToStorage.
Remarks
URLDownloadToFile calls the caller’s IBindStatusCallback interface to provide notifications during the binding process. In particular, URLDownloadToFile calls IBindStatusCallback::OnProgress to report the ongoing status of the download. The caller does not need not implement any of the notification callbacks for the function to succeed, but doing so allows the client to receive notifications, if interested, and allows downloads to be canceled by returning E_ABORT from the OnProgress call.
This function always returns a filename if the dowload operation succeeds. If the given URL is a file URL (i.e., contains “file:”), URLDownloadToCacheFile will directly return the filename for the file URL, rather than copying the file to the cache. If the given URL is an Internet URL (i.e., contains “http:” or “ftp:”), URLDownloadToCacheFile will download this file and return the local filename of the cached copy. Using this function ensures that a filename is returned without unnecessary copying of data.
If pCaller is non-NULL, the caller is a COM object that is contained in another component, such as an ActiveX Control in the context of an HTML page.In this case, the function attempts the download in the context of the ActiveX client framework and allows the caller's container to receive callbacks on the progress of the download.
See Also
IBindStatusCallback, IBindStatusCallback::OnProgress