无法将“System .__ ComObject”类型的COM对象强制转换为接口类型'mshtml.HTMLElementCollection

时间:2012-11-03 15:30:00

标签: .net vb.net winforms mshtml

我试图通过webbrowser控件使用mshtml填充vb.net上的表单,

Dim doc As MSH.IHTMLDocument2 = DirectCast(wbMain.Document.DomDocument, MSH.IHTMLDocument2)
Dim buttons As MSH.HTMLElementCollection = doc.getElementsByTagName("button")
Dim Inputs As MSH.HTMLElementCollection = doc.getElementsByTagName("input")

但是我收到以下错误

  

无法将“System .__ ComObject”类型的COM对象强制转换为接口   输入'mshtml.HTMLElementCollection'。此操作失败,因为   QueryInterface在具有IID的接口的COM组件上调用   '{3050F56B-98B5-11CF-BB82-00AA00BDCE0B}'因以下原因失败   错误:不支持此类接口(HRESULT异常:0x80004002   (E_NOINTERFACE))。

任何人都可以帮我解决可能的解决方案吗?

1 个答案:

答案 0 :(得分:1)

  

Dim buttons As MSH.HTMLElementCollection

错误的类型。那应该是IHTMLElementCollection。请注意领先的I. MSDN页面is here

缺少I的类型是coclass,而不是接口。脚本客户端在想要创建自己的集合对象时使用。