首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问COM组件时出错

访问COM组件时出错
EN

Stack Overflow用户
提问于 2012-10-18 22:55:34
回答 5查看 58K关注 0票数 30

我为Microsoft Office Word构建了一个外接程序。当Word以管理员身份运行时,使用外接程序没有问题,但当它不是以管理员身份运行时,访问功能区元素时有两个常见的例外情况。

第一个例外:

代码语言:javascript
复制
Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Core.IRibbonUI'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000C03A7-0000-0000-C000-000000000046}' failed due to the following error:  could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
   at Microsoft.Office.Core.IRibbonUI.InvalidateControl(String ControlID)

当以下代码使控件无效时,会发生此错误:

代码语言:javascript
复制
ribbon.InvalidateControl("control-id");

第二个例外:

代码语言:javascript
复制
Unable to cast COM object of type 'Microsoft.Office.Interop.Word.ApplicationClass' to interface type 'Microsoft.Office.Interop.Word._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00020970-0000-0000-C000-000000000046}' failed due to the following error:  could not be found. (Exception from HRESULT: 0x80030002 (STG_E_FILENOTFOUND)).
   at Microsoft.Office.Interop.Word.ApplicationClass.get_Selection()

此错误发生在以下代码的最后一行:

代码语言:javascript
复制
object wdStory = Word.WdUnits.wdStory;
object wdMove = Word.WdMovementType.wdMove;
WrdApp.Selection.EndKey(ref wdStory, ref wdMove)

我如何解决这个问题?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-10-19 04:02:42

问题解决了!

我之前安装了Office 2010,因此Windows注册表中存在一些不一致之处。要修复它们,请打开regedit并查找错误中的CLSID。

对于第二个错误,您将找到类似的内容:

代码语言:javascript
复制
HKEY_CLASSES_ROOT\Interface\{00020970-0000-0000-C000-000000000046}

使用子键:

  • ProxyStubClsid
  • ProxyStubClsid32
  • TypeLib

看看TypeLib内部的(Default)Version值。

现在,使用(Default)值作为<TypeLib ID>,找到下面的节点。

HKEY_CLASSES_ROOT\TypeLib\<TypeLib ID>\<version>

作为此元素的子元素,您将发现多个元素,其中一个是第一个注册表的Version。如果您检查其他元素,您会发现它们没有指向任何内容。删除其他的!问题解决了!

票数 59
EN

Stack Overflow用户

发布于 2018-01-19 18:05:05

办公室的修缮对我很管用。在我的例子中,我安装了Project,我相信它改变了配置,并且无法调用将数据从excel工作簿迁移到SQL的过程

票数 1
EN

Stack Overflow用户

发布于 2015-09-17 14:46:29

只需安装Office2010/ MS word / .NET可编程性支持。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12957595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档