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


Асинхронные моникеры в Интернете

Интернет требует новых подходов к проектированию приложений из-за медленного сетевого доступа. Приложения должны выполнять сетевой доступ асинхронно, чтобы избежать остановки пользовательского интерфейса. Класс MFC CAsyncMonikerFile обеспечивает асинхронную поддержку скачивания файлов.

С помощью асинхронных моникеров можно расширить приложение COM для асинхронного скачивания через Интернет и обеспечить прогрессивную отрисовку больших объектов, таких как растровые изображения и объекты VRML. Асинхронные моникеры позволяют загружать свойство элемента управления ActiveX или файл в Интернете, не блокируя ответ пользовательского интерфейса.

Преимущества асинхронных моникеров

Вы можете использовать асинхронные моникеры для:

  • Скачайте код и файлы без блокировки.

  • Скачайте свойства в элементах ActiveX без блокировки.

  • Получение уведомлений о ходе скачивания.

  • Отслеживание хода выполнения и готовности сведений о состоянии.

  • Предоставьте пользователю сведения о состоянии о ходе выполнения.

  • Разрешить пользователю отменить скачивание в любое время.

Классы MFC для асинхронных моникеров

CAsyncMonikerFile является производным от CMonikerFile, который, в свою очередь, является производным от COleStreamFile. COleStreamFile Объект представляет поток данных; CMonikerFile объект использует IMoniker для получения данных, а CAsyncMonikerFile объект делает это асинхронно.

Асинхронные моникеры используются в основном в приложениях с поддержкой Интернета и элементах ActiveX для предоставления адаптивного пользовательского интерфейса во время передачи файлов. Основным примером этого является использование CDataPathProperty для предоставления асинхронных свойств для элементов ActiveX.

Классы MFC для путей к данным в элементах ActiveX

Классы CDataPathProperty MFC и CCachedDataPathProperty реализуют свойства элемента управления ActiveX, которые можно загрузить асинхронно. Асинхронные свойства загружаются после синхронного запуска. Асинхронные элементы ActiveX многократно вызывают обратный вызов, чтобы указать доступность новых данных во время длительного процесса обмена свойствами.

Класс CDataPathProperty является производным от CAsyncMonikerFile. Класс CCachedDataPathProperty является производным от CDataPathProperty. Чтобы реализовать асинхронные свойства в элементах ActiveX, наследуйте класс или CDataPathProperty CCachedDataPathPropertyпереопределите OnDataAvailable и другие уведомления, которые вы хотите получить.

Скачивание файла с помощью асинхронных моникеров

  1. Объявите класс, производный от CAsyncMonikerFile.

  2. Переопределите OnDataAvailable для отображения данных.

  3. Переопределите другие функции-члены, включая OnProgress, OnStartBinding и OnStopBinding.

  4. Объявите экземпляр этого класса и используйте его для открытия URL-адресов.

Сведения об асинхронном скачивании в элементе activeX см. в разделе "Элементы ActiveX" в Интернете.

См. также

Задачи программирования для интернет-решений MFC
Основы программирования для интернет-решений MFC