after a comparison of all the above, none was totally satisfactory.
the most complete solution is in
https://github.com/java-native-access/jna
now.
It supports,
- getting interface to a running COM object
- starting a new COM object and returning its interface
- calling COM methods and returning results
- optional separate COM thread handling
- ComEventCallbacks
- RunninObjectTable queries
- lowlevel COM use
- util / high level java proxy abstraction
E.g.
MsWordApp comObj = this.factory.createObject(MsWordApp.class);
Documents documents = comObj.getDocuments();
_Document myDocument = documents.Add();
String path = new File(".").getAbsolutePath();
myDocument.SaveAs(path + "\\abcdefg", WdSaveFormat.wdFormatPDF);
comObj.Quit();