无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.VisualStudio.Tools.Applications.Runtime.IHostServiceProvider”
2009-05-12 18:58
1831 查看
先看问题:
无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.VisualStudio.Tools.Applications.Runtime.IHostServiceProvider”。此操作失败的原因是对 IID 为“{D80D8C20-D524-47ED-A9DD-FA05472F7C64}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。
在 Microsoft.VisualStudio.Tools.Applications.Runtime.IHostServiceProvider.GetService(Type serviceType)
在 Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.GetService(Type serviceType)
在 Microsoft.Office.Tools.ActionsPaneInternal.HookupSmartPane()
在 Microsoft.Office.Tools.DockableControlCollection.Add(Control value)
在 kfky_jsyz_xmjis_mb.frmProcessBar.InitData() 位置 E:\New Work Files\HNKFModels\kfky_jsyz_xmjis_mb\frmProcessBar.cs:行号 35
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
问题描述:
近来由于项目需求,我接触了VSTO,上述问题就是在项目中加载ActionPanel控件中出现的,以下是加载ActionPanel的方法
public void InitActionPanel()
frmProcessBar frmPB = null;//提示性窗体显示“正在加载”
public delegate void AddControl(Control control);//声明Controls.Add方法的委托
//文档启动方法,该方法在主线程中创建
private void ThisDocument_Startup(object sender, System.EventArgs e)
public void InitActionPanel(ActionsPaneControl customControl)
{
{customControl });//将Add方法委托给主线程调用
frmPB.Close();//添加完后关闭并注销提示性窗体
frmPB.Dispose();
}
这些代码经过本地测试,可以正常运行。
注意,虽然这个方法在我这里可以运行,但是根据 我这几天在网上查找的结果显示,导致这种错误的原因很多,应该根据你的实际情况来判断
现在懒得不行,写点字就累得不行
祝你好运!!
无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.VisualStudio.Tools.Applications.Runtime.IHostServiceProvider”。此操作失败的原因是对 IID 为“{D80D8C20-D524-47ED-A9DD-FA05472F7C64}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 不支持此接口 (异常来自 HRESULT:0x80004002 (E_NOINTERFACE))。
在 Microsoft.VisualStudio.Tools.Applications.Runtime.IHostServiceProvider.GetService(Type serviceType)
在 Microsoft.VisualStudio.Tools.Applications.Runtime.AppDomainManagerInternal.GetService(Type serviceType)
在 Microsoft.Office.Tools.ActionsPaneInternal.HookupSmartPane()
在 Microsoft.Office.Tools.DockableControlCollection.Add(Control value)
在 kfky_jsyz_xmjis_mb.frmProcessBar.InitData() 位置 E:\New Work Files\HNKFModels\kfky_jsyz_xmjis_mb\frmProcessBar.cs:行号 35
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
问题描述:
近来由于项目需求,我接触了VSTO,上述问题就是在项目中加载ActionPanel控件中出现的,以下是加载ActionPanel的方法
public void InitActionPanel()
frmProcessBar frmPB = null;//提示性窗体显示“正在加载”
public delegate void AddControl(Control control);//声明Controls.Add方法的委托
//文档启动方法,该方法在主线程中创建
private void ThisDocument_Startup(object sender, System.EventArgs e)
public void InitActionPanel(ActionsPaneControl customControl)
{
{customControl });//将Add方法委托给主线程调用
frmPB.Close();//添加完后关闭并注销提示性窗体
frmPB.Dispose();
}
这些代码经过本地测试,可以正常运行。
注意,虽然这个方法在我这里可以运行,但是根据 我这几天在网上查找的结果显示,导致这种错误的原因很多,应该根据你的实际情况来判断
现在懒得不行,写点字就累得不行
祝你好运!!
相关文章推荐
- 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.VisualStudio.Tools.Applications.Runtime.IHostS
- 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Microsoft.VisualStudio.OLE.Interop.IServiceProvider”。
- OPC客户端调用时提示“无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型”...
- 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型,原因为没有注册类
- System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。
- C#WPF无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“System.Speech.Internal.SapiInterop.ISpDataKey”。解决办法
- 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Ex
- (转)无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-
- 无法将类型为“System.__ComObject”的 COM 对象强制转换为类类型“System.Data.SqlClient.SqlConnection的解决方法
- 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Wor
- 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”
- 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”
- 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Wor
- 无法将类型为“System.__ComObject”的 COM 对象强制转换为类类型“mshtml.HTMLInputElementClass
- 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Wor
- 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Wor
- 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。
- 无法将类型为“*Class”的 COM 对象强制转换为接口类型 失败原因.
- 无法将类型为“Microsoft.SqlServer.Management.Smo.SimpleObjectKey”的对象强制转换
- 无法将类型为“*Class”的 COM 对象强制转换为接口类型 失败原因.