Compartir a través de


Portapapeles: Agregar otros formatos

En este tema se explica cómo expandir la lista de formatos admitidos, especialmente para la compatibilidad con OLE. En el tema Portapapeles: Copiado y pegado de datos se describe la implementación mínima necesaria para admitir la copia y el pegado desde el Portapapeles. Si esto es todo lo que implementa, los únicos formatos colocados en el Portapapeles son CF_METAFILEPICT, CF_EMBEDSOURCE, CF_OBJECTDESCRIPTOR y, posiblemente, CF_LINKSOURCE. La mayoría de las aplicaciones van a necesitar más formatos en el Portapapeles que estos tres.

Registro de formatos personalizados

Para crear formatos propios personalizados, siga el mismo procedimiento que usaría al registrar cualquier formato personalizado del Portapapeles: pase el nombre del formato a la función RegisterClipboardFormat y use su valor devuelto como identificador de formato.

Colocación de formatos en el Portapapeles

Para agregar más formatos a los colocados en el Portapapeles, debe invalidar la función OnGetClipboardData en la clase derivada de COleClientItem o COleServerItem (en función de si los datos que se van a copiar son nativos). En esta función debe usar el procedimiento siguiente.

Para colocar formatos en el Portapapeles

  1. Crear un objeto COleDataSource.

  2. Pase este origen de datos a una función que agregue los formatos de datos nativos a la lista de formatos admitidos mediante una llamada a COleDataSource::CacheGlobalData.

  3. Agregue formatos estándar mediante una llamada a COleDataSource::CacheGlobalData por cada formato estándar que quiera admitir.

Esta técnica se usa en el programa de ejemplo OLE de MFC HIERSVR (examine la función miembro OnGetClipboardData de la clase CServerItem). La única diferencia de este ejemplo es que el paso tres no se implementa porque HIERSVR no admite ningún otro formato estándar.

Qué más quieres saber

Consulte también

Portapapeles: Usar el mecanismo del Portapapeles de OLE