选择剪贴板格式顺序

此文源自http://social.msdn.microsoft.com/Forums/en/windowssdk/thread/94bb2db4-3ca2-4cd8-9f7c-6dd9aab6fd18的讨论

在复制数据到剪贴板时,一个应用程序应该提供尽可能多的格式使得更多的程序能够识别剪贴板上的数据。例如IE将复制的HTML保存为CF_UNICODETEXT、CF_TEXT和CF_HTML等格式。

很多程序在识别剪贴板数据的时候,在找到第一个支持的格式时就停止搜索。有的程序支持粘贴时选择格式(例如Word里面的选择性粘贴),但是这样的程序是例外,在粘贴时支持多种剪贴板格式的程序并不多。为了避免数据往返时的数据丢失,在决定剪贴板格式顺序的时候,包含最多信息的格式应该放在第一个,而包含较少的放在后面,包含最少信息的放在最后。举例来说,CF_HTML 第一, CF_UNICODETEXT第二,CF_TEXT最后。在复制一个jpeg图片到剪贴板的时候,可以以如下顺序填充剪贴板:CF_HDROP、CFSTR_FILECONTENTS、CFSTR_FILENAME、CFSTR_MIME_JPEG、CF_DIB、CF_PALETTE 、CF_METAFILEPICT、CF_ENHMETAFILE、CF_DIBV5。

当然,有时候你想限制剪贴板上的数据的格式,例如在从Visual Studio复制代码但是期望在粘贴代码的时候不包含格式,那么你可能像要把一个信息量较少的数据格式放在最前面。 

如果你使用一个浏览器作为文本编辑器,你可以通过实现OnFilterDataObject来在粘贴的时候去掉文字的格式。

你可能感兴趣的:(选择剪贴板格式顺序)