Compartir a través de


Formatos de datos y medios de transferencia

La mayoría de las plataformas, incluidas Windows, definen un protocolo estándar para transferir datos entre aplicaciones, en función de un conjunto de funciones denominadas Portapapeles. Las aplicaciones que usan estas funciones pueden compartir datos incluso si sus formatos de datos nativos son muy diferentes. Por lo general, estos portapapeles tienen dos deficiencias significativas que COM ha superado.

En primer lugar, las descripciones de datos solo usan un identificador de formato, como el identificador de formato de Portapapeles de 16 bits único en Windows, lo que significa que el Portapapeles solo puede describir la estructura de sus datos, es decir, el orden de los bits. Puede informar, "Tengo un mapa de bits" "o tengo texto", pero no puede especificar los dispositivos de destino para los que se componen los datos, qué vistas o aspectos de sí mismos pueden proporcionar los datos o qué medios de almacenamiento son más adecuados para su transferencia. Por ejemplo, no puede informar: "Tengo una cadena de texto almacenado en memoria global y con formato para la presentación en pantalla o en una impresora" o "Tengo un mapa de bits de croquis en miniatura representado para una impresora de matriz de puntos de 100 ppp y almacenada como un archivo de disco".

En segundo lugar, todas las transferencias de datos que usan el Portapapeles suelen producirse a través de la memoria global. El uso de memoria global es razonablemente eficaz para pequeñas cantidades de datos, pero es horriblemente ineficaz para grandes cantidades, como un objeto multimedia de 20 MB. La memoria global es lenta para un objeto de datos grande, cuyo tamaño requiere un intercambio considerable de memoria virtual en el disco. En los casos en los que los datos que se intercambian residirán principalmente en el disco de todos modos, forzarlos a través de este cuello de botella de memoria virtual es muy ineficaz. Una mejor manera de omitir la memoria global por completo y simplemente transferir los datos directamente al disco.

Para solucionar estos problemas, COM proporciona dos estructuras de datos: FORMATETC y STGMEDIUM. Para obtener más información, vea los temas siguientes:

Transferencia de datos