Formats de données et supports de transfert
La plupart des plateformes, y compris Windows, définissent un protocole standard pour le transfert de données entre applications, en fonction d’un ensemble de fonctions appelé Presse-papiers. Les applications utilisant ces fonctions peuvent partager des données même si leurs formats de données natifs sont très différents. En règle générale, ces Presse-papiers présentent deux lacunes importantes que com a surmontées.
Tout d’abord, les descriptions de données utilisent uniquement un identificateur de format, tel que l’identificateur de format de Presse-papiers 16 bits unique sur Windows, ce qui signifie que le Presse-papiers peut uniquement décrire la structure de ses données, c’est-à-dire l’ordre des bits. Il peut signaler « J’ai une bitmap » « ou j’ai du texte », mais il ne peut pas spécifier les appareils cibles pour lesquels les données sont composées, les vues ou les aspects d’elles-mêmes que les données peuvent fournir, ou quels supports de stockage sont les mieux adaptés pour leur transfert. Par exemple, il ne peut pas signaler : « J’ai une chaîne de texte stockée dans la mémoire globale et mise en forme pour une présentation à l’écran ou sur une imprimante » ou « J’ai une image bitmap d’esquisse miniature rendue pour une imprimante matricielle de points de 100 ppp et stockée sous forme de fichier disque ».
Deuxièmement, tous les transferts de données à l’aide du Presse-papiers se produisent généralement via la mémoire globale. L’utilisation de la mémoire globale est relativement efficace pour de petites quantités de données, mais horriblement inefficace pour de grandes quantités, comme un objet multimédia de 20 Mo. La mémoire globale est lente pour un objet de données volumineux, dont la taille nécessite un échange considérable vers la mémoire virtuelle sur disque. Dans les cas où les données échangées vont résider principalement sur le disque, le fait de les forcer à passer par ce goulot d’étranglement de la mémoire virtuelle est très inefficace. Une meilleure façon d’ignorer entièrement la mémoire globale et de simplement transférer les données directement sur le disque.
Pour atténuer ces problèmes, COM fournit deux structures de données : FORMATETC et STGMEDIUM. Pour plus d'informations, voir les rubriques suivantes :
Rubriques connexes