Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Асинхронные составные файлы, предоставляемая системой реализация асинхронного хранилища, позволяет эффективно загружать составные файлы из Интернета в целом и в Интернете, в частности. Базовая архитектура асинхронных составных файлов показана на следующей схеме.
Реализация асинхронных составных файлов может работать с новыми асинхронными типами моникера, которые понимают интернет-протоколы и могут привязаться к объекту, определенному URL-адресом. Такой моникер вернет асинхронный IStream или указатель IStorage из вызова клиента на IMoniker::BindToStorage.
Составные файлы, как правило, реализуются поверх объекта массива байтов, абстракции файла, представляющего данные объекта в виде плоского массива байтов. Объект массива байтов предоставляет свои функциональные возможности через интерфейс ILockBytes. Если массив байтов поддерживает асинхронное хранилище, он возвращает E_PENDING в реализацию составного файла, которая, в свою очередь, распространяет ошибку обратно вызывающему объекту.
Чтобы отслеживать данные, доступные во время скачивания, массив байтов, поддерживающий асинхронное хранилище, предоставляет интерфейс IFillLockBytes в объекте-оболочке, предоставленном системой специально для этой цели. Код загрузки, предоставляемый асинхронным моникером, вызывает этот интерфейс для асинхронного байтового массива, так как данные доступны. Объект-оболочка также предоставляет интерфейс ILockBytes, который используется реализацией асинхронных составных файлов для чтения и записи данных из массива.
Асинхронные объекты хранилища и потоков предоставляют точку подключения для интерфейса IProgressNotify, который реализуется с помощью кода скачивания асинхронного моникера. Реализация асинхронных составных файлов вызывает IProgressNotify, чтобы предоставить загрузчику сведения о состоянии операции скачивания.