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 |
---|---|
|
計算機無法存取更新網站。 |
|
Windows Update Agent (WUA) 集合中沒有更新。 |
|
未初始化 #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 |