我正在维护一个使用OLE自动化嵌入Word的应用程序。但是,当在某些情况下关闭包含文档的选项卡时,Word进程将挂起到该文件 - 即使在关闭我们的应用程序之后。
我一直在搜索如何在Word中关闭文件,我遇到了https://msdn.microsoft.com/en-us/library/office/ff196343.aspx,这表明我有某种Close
方法我想打电话,但似乎没有用。
Word就像这样打开:
clientSite = new OleClientSite(frame, SWT.NONE, Word97To2003ClassId, file);
automation = new OleAutomation(clientSite);
我可以致电automation.getIDsOfNames(new String[]){ "Close" })[0]
并返回1105
。但是当我打电话给automation.invoke(1105)
时,它仍然保持我的文件打开。我知道如何在框架关闭时关闭文档吗?
答案 0 :(得分:0)
根据我的经验,有很多API方法根本不起作用。可能"关闭"是其中之一。
也许您可以确保在标签页或应用程序之前放置OleClientSite
。
我在对话框中遇到了问题,我做了以下操作(不太好但是有效):
@Override
public boolean close() {
// make sure clientSite is disposed first
if (clientSite != null && !clientSite.isDisposed()) {
clientSite.dispose();
}
return super.close();
}