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 错误代码。

此方法还可以返回以下错误代码。

返回代码 说明
WU_E_INVALID_OPERATION
计算机无法访问更新站点。
WU_E_NO_UPDATE
Windows 更新 代理 (WUA) 集合中没有更新。
WU_E_NOT_INITIALIZED
未初始化 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

另请参阅

IUpdateDownloader