剪贴板:添加其他格式

本主题说明如何扩展支持的格式列表,尤其是针对 OLE 支持。 主题剪贴板:复制和粘贴数据介绍了支持从剪贴板复制和粘贴所需的最低实现。 如果仅实现了这些内容,则剪贴板上唯一的格式只有 CF_METAFILEPICT、CF_EMBEDSOURCE 和 CF_OBJECTDESCRIPTOR,也可能有 CF_LINKSOURCE。 这三种格式通常不足以解决大多数应用程序在剪贴板上的格式需求。

注册自定义格式

若要创建自定义格式,请按照注册任何自定义剪贴板格式时使用的过程操作:将格式的名称传递至 RegisterClipboardFormat 函数,并使用其返回值作为格式 ID

在剪贴板上放置格式

若要向剪贴板上放置的那些格式添加更多格式,必须替代派生自 COleClientItemCOleServerItem(具体取决于要复制的是否是本机数据)的类中的 OnGetClipboardData 函数。 在此函数中,应使用以下过程。

在剪贴板上放置格式

  1. 创建 COleDataSource 对象。

  2. 将此数据源传递给函数,该函数通过调用 COleDataSource::CacheGlobalData 将本机数据格式添加到受支持的格式列表。

  3. 为希望支持的每种标准格式调用 COleDataSource::CacheGlobalData,从而添加标准格式。

此方法用于 MFC OLE 示例程序 HIERSVR(请检查“CServerItem”类的 OnGetClipboardData 成员函数)。 此示例中唯一的区别是未执行步骤 3,因为 HIERSVR 不支持其他标准格式。

你想进一步了解什么

另请参阅

剪贴板:使用 OLE 剪贴板机制