Метод 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
Состояние, зависящее от вызывающего объекта, возвращаемое свойством AsyncState интерфейса IDownloadJob . Вызывающий объект может использовать этот параметр для вложения значения в объект задания загрузки. Это позволяет вызывающей объекту позже получать пользовательские сведения об этом объекте задания загрузки.
Свойство AsyncState интерфейса IDownloadJob можно получить, но его нельзя задать. Это не мешает вызывающей объекту изменить содержимое объекта, уже заданного в свойство AsyncState интерфейса IDownloadJob . Иными словами, если свойство AsyncState содержит число, его нельзя изменить. Но если свойство AsyncState содержит безопасный массив или объект , содержимое безопасного массива или объекта можно изменить по желанию. Значение освобождается, когда вызывающий объект освобождает IDownloadJob путем вызова IUpdateDownloader::EndDownload.
[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 , если объект, реализующий интерфейс, заблокирован.
Этот метод возвращает WU_E_NO_UPDATE, если свойство Обновления интерфейса IUpdateDownloader не задано. Этот метод также возвращает WU_E_NO_UPDATE, если для свойства Обновления задана пустая коллекция.
Этот метод возвращает SUS_E_NOT_INITIALIZED , если задание загрузки не содержит обновлений.
При использовании любого асинхронного API WUA в приложении может потребоваться реализовать механизм времени ожидания. Дополнительные сведения о выполнении асинхронных операций WUA см. в разделе Рекомендации по асинхронным операциям WUA.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная с пакетом обновления 3 (SP3) [только классические приложения] |
Минимальная версия сервера | Windows Server 2003, Windows 2000 Server с пакетом обновления 3 (SP3) [только классические приложения] |
Целевая платформа | Windows |
Header | wuapi.h |
Библиотека | Wuguid.lib |
DLL | Wuapi.dll |