Асинхронные моникеры в Интернете
Интернет требует новых подходов к проектированию приложений из-за медленного сетевого доступа. Приложения должны выполнять сетевой доступ асинхронно, чтобы избежать остановки пользовательского интерфейса. Класс 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 и другие уведомления, которые вы хотите получить.
Скачивание файла с помощью асинхронных моникеров
Объявите класс, производный от CAsyncMonikerFile.
Переопределите OnDataAvailable для отображения данных.
Переопределите другие функции-члены, включая OnProgress, OnStartBinding и OnStopBinding.
Объявите экземпляр этого класса и используйте его для открытия URL-адресов.
Сведения об асинхронном скачивании в элементе activeX см. в разделе "Элементы ActiveX" в Интернете.
См. также
Задачи программирования для интернет-решений MFC
Основы программирования для интернет-решений MFC