通过任务管理器终止应用程序时,ole容器关闭功能触发EOleSysError

时间:2018-06-19 11:58:02

标签: delphi ole

我正在TOLEContainer中打开MS Word。我注意到,如果无法通过调用OLEContainer1.close将其正确关闭,则会使后台MS Word应用程序运行。这样可以防止oleContainer加载word文档。包含OLECOntainer的应用程序只是挂在创建对象的调用上,直到通过任务管理器终止单词处理为止。

只要用户正常关闭表单,FormClose事件中对OLEContainer1.close的调用将按预期运行。但是,如果您意外中止了应用程序(例如,通过任务管理器),则对close函数的调用会引发EOleSysError,其描述如下:

  

由于应用程序正在分派,因此无法拨出电话   输入同步呼叫

我已经阅读了此消息的含义,虽然我基本上了解了发生的情况,但我不知道如何在异常终止情况下调用close函数,以免引起错误。

>

1 个答案:

答案 0 :(得分:0)

问题似乎出在OLEContainer1.Close事件中对FormClose的调用上。如果省略此选项,则即使崩溃也将终止Word应用程序。我认为有必要在退出之前关闭容器,但似乎没有。我还打电话给DestroyObject,但似乎在释放对象时会自动完成。