Fichiers composés asynchrones

Les fichiers composés asynchrones, l’implémentation fournie par le système de stockage asynchrone, permettent le téléchargement efficace de fichiers composés à partir d’Internet en général et sur le Web en particulier. L’architecture de base des fichiers composés asynchrones est illustrée dans le diagramme suivant.

architecture de base des fichiers composés asynchrones

L’implémentation de fichiers composés asynchrones peut fonctionner avec de nouveaux types de moniker asynchrones qui comprennent les protocoles Internet et peuvent être liés à un objet identifié par une URL. Un tel moniker retourne un IStream asynchrone ou pointeur IStorage à partir de l’appel du client vers IMoniker ::BindToStorage.

Les fichiers composés en général sont implémentés au-dessus d’un objet de tableau d’octets, une abstraction d’un fichier qui représente les données d’un objet en tant que tableau d’octets plats. L’objet de tableau d’octets expose ses fonctionnalités via l’interface ILockBytes. Si un tableau d’octets prend en charge le stockage asynchrone non bloquant, il retourne E_PENDING à l’implémentation de fichier composé, qui propage à son tour l’erreur à l’appelant.

Pour suivre les données disponibles pendant un téléchargement, un tableau d’octets prenant en charge le stockage asynchrone expose l’interface IFillLockBytes sur un objet wrapper fourni par le système spécifiquement à cet effet. Le code de téléchargement fourni par un moniker asynchrone appelle cette interface pour remplir le tableau d’octets de manière asynchrone, car les données sont disponibles. L’objet wrapper expose également une interface ILockBytes, que l’implémentation de fichiers composés asynchrones utilise pour lire et écrire des données depuis et dans le tableau.

Les objets de stockage et de flux asynchrones fournissent un point de connexion pour l’interfaceIProgressNotify, qui est implémentée par le code de téléchargement asynchrone du moniker. L’implémentation de fichiers composés asynchrones appelle IProgressNotify pour fournir au téléchargeur des informations sur l’état de l’opération de téléchargement.