IUpdateDownloaderEx::BeginDownload2 method (wuapi.h)

Important

Some information relates to a prerelease product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Starts an asynchronous download of the content files that are associated with the updates.

Syntax

HRESULT BeginDownload2(
  DownloadType downloadType,
  IUnknown     *onProgressChanged,
  IUnknown     *onCompleted,
  VARIANT      state,
  IDownloadJob **retval
);

Parameters

downloadType

A value from the DownloadType specifying the type of download to perform, full download or downloading only the update bootstrapper.

Note

Attempting to download the update bootstrapper for an update that does not contain one will fail with the error code WU_E_NOT_SUPPORTED.

onProgressChanged

An IDownloadProgressChangedCallback interface that is called periodically for download progress changes before download is complete.

onCompleted

An IDownloadCompletedCallback interface that is called when an asynchronous download operation is complete.

state

The caller-specific state that the AsyncState property of the IDownloadJob interface returns. A caller may use this parameter to attach a value to the download job object. This allows the caller to retrieve custom information about that download job object at a later time.

Note

  The AsyncState property of the IDownloadJob interface can be retrieved, but it cannot be set. This does not prevent the caller from changing the contents of the object already set to the AsyncState property of the IDownloadJob interface. In other words, if the AsyncState property contains a number, the number cannot be changed. But, if the AsyncState property contains a safe array or an object, the contents of the safe array or the object can be changed at will. The value is released when the caller releases IDownloadJob by calling IUpdateDownloader::EndDownload.

retval

An IDownloadJob interface that contains the properties and methods that are available to a download operation that has started.

Return value

An HRESULT including one of the following values:

Value Description
S_OK Success.
WU_E_INVALID_OPERATION The computer cannot access the update site.
WU_E_NO_UPDATE The Windows Update Agent (WUA) does not have updates in the collection.
WU_E_NOT_INITIALIZED The Windows Update Agent (WUA) is not initialized.
WU_E_NOT_SUPPORTED The update bootstrapper download was attempted on an update that doesn't contain one.

Remarks

As an alternative to implementing the IDownloadProgressChangedCallback interface, you can use a script to implement a callback routine of any identifier with DISPID 0 on an automation object. The type of the onProgressChanged parameter is IUnknown.

As an alternative to implementing the IDownloadCompletedCallback interface, you can use a script to implement a callback routine of any identifier with DISPID 0 on an automation object. The type of the onCompleted parameter is IUnknown.

This method returns WU_E_INVALID_OPERATION if the object that is implementing the interface is locked down.

This method returns WU_E_NO_UPDATE if the Updates property of the IUpdateDownloader interface is not set. This method also returns WU_E_NO_UPDATE if the Updates property is set to an empty collection.

This method returns SUS_E_NOT_INITIALIZED if the download job contains no updates.

When you use any asynchronous WUA API in your app, you might need to implement a time-out mechanism. For more info about how to perform asynchronous WUA operations, see Guidelines for Asynchronous WUA Operations.

Requirements

Requirement Value
Minimum supported client Windows 11 Build 26100
Header wuapi.h