从msdn上看来,
为了解决这个问题,您需要将调用放在循环中,并等待其成功:
我的问题是:如果每次调用办公应用程序的对象模型都需要这个样板代码,那么实现
IMessageFilter
似乎不能处理所有异常,例如,在某些时候,办公应用程序会“挂起”它们的对象模型,此时无法调用并抛出:0x800AC472(VBA_E_IGNORE)
。为了解决这个问题,您需要将调用放在循环中,并等待其成功:
while(true)
{
try
{
office_app.DoSomething();
break;
}
catch(COMException ce)
{
LOG(ce.Message);
}
}
我的问题是:如果每次调用办公应用程序的对象模型都需要这个样板代码,那么实现
IMessageFilter
有什么意义吗?