基本上就是按照MSDN的文档来实现。经过测试,写字板不支持HTML格式,所以我猜他是支持RTF格式的。RTF格式接下来做。所以这次的demo是复制到Word,因为也想不起来到底还有什么程序需要被粘贴超文本内容。显而易见地,并不是HTML的所有功能都可以使用。
总的来说,Windows的HTML格式是一个UTF-8的字符串,里面包含一个头和完整的HTML文件。你可以指定HTML文件的其中一部分作为剪贴板真正的内容,现在我不可能往剪贴板里面写废话,所以body的内容就被做了标记。
不过目前看来,Word会忽略标记以外的其他东西,一开始我尝试在header里面写一些css让html变得更短,然后发现全部当没看见。然后我就试图用ins和del来代替已经被HTML5 deprecate掉的u和s,发现Word竟然在看见del标记的时候就真的把内容删了(智能!),看见ins的时候真的打上了“插入”记号而不是下划线。但是我又不想用回u和s,所以干脆内联css,长就长吧,你们能复制多少文字。
生成HTML的过程简单粗暴,style里面会包含一些多余的东西。最后贴一下剪贴板的内容:
StartHTML:-1
EndHTML:-1
StartFragment:0000000210
EndFragment:0000000613
< !DOCTYPE html>
< html>
< header>
< title>GacUI Document 1.0< /title>
< meta charset="utf-8"/>
< /header>
< body>
< p>< span style="font-family:Microsoft YaHei UI; font-size:12px; color:#000000; ">This is a < /span>
< span style="font-weight:bold; font-style:italic; text-decoration:underline line-through; font-family:Modern No. 20; font-size:56px; color:#FF0000; background-color:#FFFF00; ">styled< /span>
< span style="font-family:Microsoft YaHei UI; font-size:12px; color:#000000; "> text< /span>< /p>
< /body>
< /html>