IUpdateDownloader::BeginDownload 方法 (wuapi.h)
开始异步下载与更新关联的内容文件。
语法
HRESULT BeginDownload(
[in] IUnknown *onProgressChanged,
[in] IUnknown *onCompleted,
[in] VARIANT state,
[out] IDownloadJob **retval
);
参数
[in] onProgressChanged
IDownloadProgressChangedCallback 接口,在下载完成之前定期调用以更改下载进度。
[in] onCompleted
IDownloadCompletedCallback 接口 (在异步下载操作完成时调用的 C++/COM) 。
[in] state
IDownloadJob 接口的 AsyncState 属性返回的特定于调用方的状态。 调用方可以使用此参数将值附加到下载作业对象。 这允许调用方稍后检索有关该下载作业对象的自定义信息。
可以检索 IDownloadJob 接口的 AsyncState 属性,但无法设置。 这不会阻止调用方更改已设置为 IDownloadJob 接口的 AsyncState 属性的对象的内容。 换句话说,如果 AsyncState 属性包含数字,则无法更改该数字。 但是,如果 AsyncState 属性包含安全数组或对象,则可以更改安全数组或对象的内容。 当调用方通过调用 IUpdateDownloader::EndDownload 释放 IDownloadJob 时,将释放该值。
[out] retval
IDownloadJob 接口,其中包含可用于已启动的下载操作的属性和方法。
返回值
如果成功 , 则返回S_OK。 否则,将返回 COM 或 Windows 错误代码。
此方法还可以返回以下错误代码。
返回代码 | 说明 |
---|---|
|
计算机无法访问更新站点。 |
|
Windows 更新 代理 (WUA) 集合中没有更新。 |
|
未初始化 Windows 更新 代理 (WUA) 。 |
注解
作为实现 IDownloadProgressChangedCallback 接口的替代方法,可以使用脚本在自动化对象上实现具有 DISPID 0 的任何标识符的回调例程。 onProgressChanged 参数的类型为 IUnknown*。
作为实现 IDownloadCompletedCallback 接口的替代方法,可以使用脚本在自动化对象上实现具有 DISPID 0 的任何标识符的回调例程。 onCompleted 参数的类型为 IUnknown*。
如果实现接口的对象锁定,此方法将返回 WU_E_INVALID_OPERATION 。
如果未设置IUpdateDownloader 接口的 汇报 属性,此方法将返回WU_E_NO_UPDATE。 如果将 汇报 属性设置为空集合,此方法也会返回WU_E_NO_UPDATE。
如果下载作业不包含 任何 更新,则此方法返回SUS_E_NOT_INITIALIZED。
在应用中使用任何异步 WUA API 时,可能需要实现超时机制。 有关如何执行异步 WUA 操作的详细信息,请参阅 异步 WUA 操作指南。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP、Windows 2000 Professional SP3 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003、Windows 2000 Server SP3 [仅限桌面应用] |
目标平台 | Windows |
标头 | wuapi.h |
Library | Wuguid.lib |
DLL | Wuapi.dll |