|
|
1
1
下面是一个简单的处理方法。我最近不得不与Visual Studio接口,我发现这很好地工作,如果您愿意在COM对象变得无限繁忙时快速失败的话。看看这是否对你有用:
在作用域中具有此委托和方法之后,下面是使用匿名委托的方法调用和属性访问的示例。
我故意隐藏了ComException,因为我不想要它,但是如果需要它,只需在调用方法内的MakeriskyComCall方法内设置一个ComException变量。您还可以检查特定的hresult,它指示正在等待繁忙的进程,而对于其他hresult,则会更快地失败。这个解决方案很快并且避免了所有的COM互操作混乱,缺点是它不漂亮,但是它可以工作,而且对于代码维护者来说更容易理解(我认为)。 |
|
|
2
1
当访问一个正忙的Out-Proc自动化服务器时,您确实可以得到一个异常。对于Office,一种可能发生这种情况的方法是,如果打开文档时有一个宏在运行。如果连接到打开了对话框的Office应用程序实例,也会出现问题。 This article 描述如何通过实现IOleMessageFilter错误处理程序来避免这种情况。本文讨论的是Visual Studio的自动化,但是对于自动化其他进程外自动化服务器(如Office),原理和技术是相同的。 |
|
Saravanan Sachi TheSharpieOne · 在VB中调用Excel函数的任何方法。NET作为Microsoft。办公室互操作。Excel在服务器中抛出未注册的类(REGB\u E\u CLASSNOTREG)? 8 年前 |
|
|
IS4 · 无参考的封送[in]参考 8 年前 |
|
|
Water Cooler v2 · 如何在Java中进行COM互操作? 8 年前 |
|
|
Aurora · C#到VB6互操作:索引数组属性不能跨嵌套COM接口访问 10 年前 |
|
|
Eugen · _bstr_r与_T(“”) 11 年前 |
|
|
Builder · 应用程序退出后留在内存中 11 年前 |