Visual Basic中如何处理HTML文档和剪贴板

http://tech.ddvip.com   2006年07月28日    社区交流

本文详细介绍Visual Basic中如何处理HTML文档和剪贴板

  我的程序需要将HTML文档放进剪贴板中,但我不知道要怎样处理才能使其他程序也能使用它。我查看了一些关于HTML Clipboard Format (CF_HTML)的参考说明,但我还是找不到准确的定义。请问我该如何操作?

  解答:

  使用带有Windows 剪贴板的CF_HTML Clipboard Format的确容易让人搞胡涂,一部分是因为它不是clipboard format中自带的剪贴板;它是一个注册格式(registered format),所以不是一个常量,因为它的值会因为系统的不同而产生变化。你可以通过一个简单的API调用 -- RegisterClipboardFormat来获得一个注册剪贴板格式的值。这个函数的首次调用会通过一个给定的字符串来执行,它返回一个范围在C000-FFFF之间的唯一值。每一个在系统上处理的后续调用(subsequent call)会返回同样的值。用于这种格式中的关键字符串就是“HTML Format”:

  Private Declare Function RegisterClipboardFormat Lib "user32" Alias "RegisterClipboardFormatA"
(ByVal lpString As String) As Long
Dim CF_HTML As Long
Const RegHtml As String = "HTML Format"
CF_HTML = RegisterClipboardFormat(RegHtml)

  你必须首先构建一个描述性的header,并在将HTML数据放入剪贴板之前先把它放到数据中。这个header会给其他程序提供描述版本信息、HTML起始数据的偏移量(offset),以及有关实际选择范围(actual selection)起始地方的信息。用户可能会选择的HTML文档的一部分甚至只是一个元素(比如一个table中的几行)作为一个选择区域。页面的其他部分,比如内联样式定义(inline style definitions)则可能会被要求进行完全渲染(render)。你不仅需要将最初所选择的HTML区域放入剪贴板,而且还需要放入一个header,它看起来就像是这样:

责编:豆豆技术应用

正在加载评论...