本主题介绍如何展开受支持的格式列表,尤其是针对 OLE 支持。 主题 剪贴板:复制和粘贴数据 描述了支持从剪贴板复制和粘贴所需的最低实现。 如果这是你实现的一切,则剪贴板上放置的唯一格式是 CF_METAFILEPICT、 CF_EMBEDSOURCE、 CF_OBJECTDESCRIPTOR和可能 CF_LINKSOURCE。 大多数应用程序将需要比这三种格式更多的剪贴板格式。
注册自定义格式
若要创建自定义格式,请按照注册任何自定义剪贴板格式时使用的相同过程作:将格式的名称传递给 RegisterClipboardFormat 函数,并使用其返回值作为格式 ID。
在剪贴板上放置格式
若要向剪贴板上放置的那些格式添加更多格式,必须替代派生自 OnGetClipboardData
或 COleClientItem
(具体取决于要复制的是否是本机数据)的类中的 COleServerItem
函数。 在此函数中,应使用以下过程。
在剪贴板上放置格式
创建
COleDataSource
对象。将此数据源传递给一个函数,该函数通过调用
COleDataSource::CacheGlobalData
将本机数据格式添加到受支持的格式列表中。为希望支持的每种标准格式调用
COleDataSource::CacheGlobalData
,从而添加标准格式。
此方法用于 MFC OLE 示例程序 HIERSVR (检查 OnGetClipboardData
CServerItem 类的成员函数)。 此示例中唯一的区别在于,未实现步骤 3,因为 HIERSVR 不支持其他标准格式。