Поделиться через


Метод 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.

Этот метод также может возвращать следующие коды ошибок.

Код возврата Описание
WU_E_INVALID_OPERATION
Компьютер не может получить доступ к сайту обновления.
WU_E_NO_UPDATE
Агент клиентский компонент Центра обновления Windows (WUA) не содержит обновлений в коллекции.
WU_E_NOT_INITIALIZED
Агент клиентский компонент Центра обновления Windows (WUA) не инициализирован.

Комментарии

В качестве альтернативы реализации интерфейса IDownloadProgressChangedCallback можно использовать скрипт для реализации процедуры обратного вызова любого идентификатора с DISPID 0 в объекте автоматизации. Тип параметра onProgressChangedIUnknown*.

В качестве альтернативы реализации интерфейса IDownloadCompletedCallback можно использовать скрипт для реализации процедуры обратного вызова любого идентификатора с DISPID 0 в объекте автоматизации. Тип параметра onCompletedIUnknown*.

Этот метод возвращает 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

См. также раздел

IUpdateDownloader