Асинхронное хранилище
Асинхронное хранилище улучшает спецификацию структурированного хранилища COM для поддержки асинхронного скачивания объектов хранилища в сетях с высокой задержкой, медленных каналах, таких как Интернет. Асинхронное хранилище позволяет как новым, так и устаревшим приложениям, которые используют составные файлы для эффективной отрисовки содержимого при доступе с помощью существующих протоколов Интернета. Один запрос на веб-сервер World Wide активирует скачивание вложенных объектов, содержащихся на веб-странице, устраняя необходимость отдельно запрашивать каждый объект. Асинхронный механизм загрузки и доступа позволяет приложению отображать первую страницу данных до получения всех данных. Точный порядок, в котором элементы страницы становятся доступными, можно указать веб-издателем и не зависит от случайных факторов сетевой топологии и доступности сервера.
Асинхронное хранилище работает вместе с асинхронными моникерами для обеспечения полного асинхронного поведения привязки. Дополнительные сведения об асинхронных моникерах см. в комплекте средств разработки программного обеспечения Microsoft ActiveX. Асинхронный моникер, зависящий от протокола, активирует операцию привязки и настраивает необходимые компоненты. В Случае с Интернетом этот моникер будет одним из них, который может проанализировать URL-адрес для привязки к объекту или хранилищу. Если цель операции привязки является постоянным объектом, вызов IMoniker::BindToStorage возвращает асинхронный объект хранилища.
Заметка
Текущая версия моникеров URL-адресов Майкрософт не поддерживает асинхронное хранилище.
Асинхронный моникер клиента запрашивает асинхронную привязку, реализуя объект обратного вызова состояния привязки и регистрируя его в контексте привязки. Объект обратного вызова привязки предоставляет интерфейс IBindStatusCallback, который позволяет клиенту указывать настройки привязки и получать уведомления о ходе выполнения и глобальных уведомлений о доступности данных во время операции привязки. Асинхронная реализация составного файла предоставляет точку подключения для IProgressNotify, которую клиенты могут использовать для получения определенных уведомлений о доступности в отдельных потоках.