2013-02-01 64 views
0

任何线索如何解决此错误?互操作类型'mshtml.HTMLHeadElementClass'不能嵌入

void wb_LoadCompleted(object sender, NavigationEventArgs e) 
     { 
      var doc = (mshtml.HTMLDocument)wb.Document; 

      HTMLHeadElementClass head = (HTMLHeadElementClass)((IHTMLElementCollection)doc.all.tags("head")).item(null, 0); // Error 

      IHTMLScriptElement scriptObject = (IHTMLScriptElement)doc.createElement("script"); 
      scriptObject.type = @"text/javascript"; 
      scriptObject.text = @"function btn1_OnClick(str){alert('you clicked' + str);}"; 

      head.appendChild((IHTMLDOMNode)scriptObject); 
} 
+1

由于在mshtml的情况下,它可能不是解决错误的正确方法,但解决“互操作类型不能嵌入”错误的快速方法是关闭“嵌入互操作类型”在参考本身的属性菜单中。 – Brian

回答

1

合成COM互操作类的名字一端与“类”不嵌入。 “嵌入互操作类型”功能(又名“nopia”)仅支持实际出现在类型库中的嵌入接口和coclass类型。

改为使用接口类型mshtml.IHTMLHeadElement。就像你为IHTMLScriptElement所做的一样。

相关问题