Java 如何使用OLE自动化关闭Word文档?

Java 如何使用OLE自动化关闭Word文档?,java,ms-word,ole,Java,Ms Word,Ole,我正在维护一个使用OLE自动化嵌入Word的应用程序。但是,当包含文档的选项卡在某些情况下关闭时,Word进程将挂起该文件,即使在关闭应用程序之后也是如此 我一直在搜索如何在Word中关闭一个文件,我遇到了,这表明我想调用某种close方法,但它似乎不起作用 单词是这样打开的: clientSite = new OleClientSite(frame, SWT.NONE, Word97To2003ClassId, file); automation = new OleAutomation(cli

我正在维护一个使用OLE自动化嵌入Word的应用程序。但是,当包含文档的选项卡在某些情况下关闭时,Word进程将挂起该文件,即使在关闭应用程序之后也是如此

我一直在搜索如何在Word中关闭一个文件,我遇到了,这表明我想调用某种close方法,但它似乎不起作用

单词是这样打开的:

clientSite = new OleClientSite(frame, SWT.NONE, Word97To2003ClassId, file);
automation = new OleAutomation(clientSite);

我可以调用automation.getIDsOfNamesnew String[]{Close}[0],它返回1105。但是当我调用automation.invoke1105时,它仍然保持我的文档处于打开状态。你知道如何在框架关闭时关闭文档吗?

根据我的经验,有很多API方法根本不起作用。可能close就是其中之一

也许您可以确保在处理选项卡或应用程序之前先处理OleClientSite

我在一个对话中遇到问题,我做了以下不太好但很有效的事情:

    @Override
    public boolean close() {
        // make sure clientSite is disposed first
        if (clientSite != null && !clientSite.isDisposed()) {
            clientSite.dispose();
        }
        return super.close();
    }