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 錯誤碼。

此方法也可以傳回下列錯誤碼。

傳回碼 Description
WU_E_INVALID_OPERATION
計算機無法存取更新網站。
WU_E_NO_UPDATE
Windows Update Agent (WUA) 集合中沒有更新。
WU_E_NOT_INITIALIZED
未初始化 #DB472D000B6394BECA12E4745CE6AEF45 Agent (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
程式庫 Wuguid.lib
Dll Wuapi.dll

另請參閱

IUpdateDownloader