2015-02-05 1 views
1

OLE 자동화를 사용하여 Word를 포함하는 응용 프로그램을 유지 관리하고 있습니다. 그러나 특정 상황에서 문서가 포함 된 탭을 닫으면 응용 프로그램을 닫은 후에도 Word 프로세스가 파일에 멈추게됩니다.OLE 자동화를 사용하여 Word 문서를 닫는 방법은 무엇입니까?

나는 가까운 방법 Word에서 파일을 찾고 있었고, 내가 전화하고 싶은 Close 방법의 일종 거기 나타냅니다, https://msdn.microsoft.com/en-us/library/office/ff196343.aspx 건너했지만, 그것은에 표시되지 않습니다 일하고있어.

말씀과 같이 열립니다 :

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

그리고 1105을 반환 automation.getIDsOfNames(new String[]){ "Close" })[0]를 호출 할 수 있습니다. 하지만 automation.invoke(1105)으로 전화를 걸면 여전히 내 문서가 열립니 다. 프레임이 닫힐 때 어떻게 문서를 닫을 수 있습니까?

답변

0

제 경험상 단순히 작동하지 않는 많은 API 메소드가 있습니다. 아마도 "닫기"가 그 중 하나 일 것입니다.

아마도 OleClientSite이 탭이나 애플리케이션보다 먼저 처리 될 수 있습니다.

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

은 내가 다음 (너무 좋지 않아 있지만 작동) 한 대화에 문제가 있었다
관련 문제