Formatos de dados e mídia de transferência
A maioria das plataformas, incluindo o Windows, define um protocolo padrão para transferir dados entre aplicativos, com base em um conjunto de funções chamado área de transferência. Os aplicativos que usam essas funções podem compartilhar dados mesmo que seus formatos de dados nativos sejam muito diferentes. Geralmente, essas pranchetas têm duas deficiências significativas que a COM superou.
Primeiro, as descrições de dados usam apenas um identificador de formato, como o identificador de formato único da área de transferência de 16 bits no Windows, o que significa que a área de transferência só pode descrever a estrutura de seus dados, ou seja, a ordem dos bits. Ele pode relatar "Eu tenho um bitmap" "ou Eu tenho algum texto", mas não pode especificar os dispositivos de destino para os quais os dados são compostos, quais exibições ou aspectos de si mesmos os dados podem fornecer ou qual mídia de armazenamento é mais adequada para sua transferência. Por exemplo, ele não pode relatar "Tenho uma cadeia de caracteres de texto armazenada na memória global e formatada para apresentação na tela ou em uma impressora" ou "Tenho um bitmap de esboço em miniatura renderizado para uma impressora matricial de 100 dpi e armazenado como um arquivo de disco".
Em segundo lugar, todas as transferências de dados usando a área de transferência geralmente ocorrem através da memória global. Usar memória global é razoavelmente eficiente para pequenas quantidades de dados, mas horrivelmente ineficiente para grandes quantidades, como um objeto multimídia de 20 MB. A memória global é lenta para um objeto de dados grande, cujo tamanho requer uma troca considerável para memória virtual no disco. Nos casos em que os dados que estão sendo trocados residirão principalmente no disco de qualquer maneira, forçá-lo a passar por esse gargalo de memória virtual é altamente ineficiente. Uma maneira melhor seria ignorar totalmente a memória global e simplesmente transferir os dados diretamente para o disco.
Para aliviar esses problemas, o COM fornece duas estruturas de dados: FORMATETC e STGMEDIUM. Para Mais informações, consulte os seguintes tópicos:
Tópicos relacionados