我正在尝试从我的IE BHO访问IHTMLDocument6.documentMode
属性,但是我的计算机上找不到任何mshtml程序集中的接口。
我已经尝试将界面的接口定义混合在一起:
[Guid("30510417-98b5-11cf-bb82-00aa00bdce0b")]
[TypeLibType(4160)]
public interface IHTMLDocument6
{
[DispId(1104)]
float documentMode { get; }
}
我可以成功地将文档对象强制转换为此接口,但是我没有得到对documentMode
属性有意义的值。
在哪里可以找到包含IHTMLDocument6
接口的mshtml版本,或者要使用的接口定义的正确版本?或者还有其他方法我应该这样做吗?
感谢。
答案 0 :(得分:1)
您始终可以使用latebinding并执行Type.Invokemember
答案 1 :(得分:0)
您可以从here获取IE9的标题和库。如果该链接被破坏,我从here获得了它。
您可以从pinvoke.net获取互操作示例。在MSHTML上它看起来很精简,但是一旦弄明白就可以添加它。
答案 2 :(得分:0)
这是正确使用的代码
[Guid("30510417-98b5-11cf-bb82-00aa00bdce0b")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
public interface IHTMLDocument6
{
[DispId(1104)]
object documentMode { get; }
}
{/ 1}}是P / Invoke中的VARIANT
。以上也使用IDispatch,最大限度地减少了麻烦。