使用 JNA 来 CreateObject 我没有 .class 的 COM 对象

Use JNA to CreateObject of a COM object I have no .class for

我见过这样的例子

MsWordApp comObj = this.factory.createObject(MsWordApp.class);

其他问题在这里on SO

我的问题是我需要像在 vbscript 示例中那样创建一个对象:

Set tdc = CreateObject("TDApiOle80.TDConnection")

在此场景中,createObject 需要处理字符串,而不是 class。我怎样才能将这个 vbscript 翻译成 Java / JNA ?

VBScript 的 CreateObject 本质上是 CLSIDFromProgID 后跟 CoCreateInstance,带有错误处理。

VBScript 始终使用后期绑定,因此您对 IDispatch 支持感兴趣。

JNA 似乎通过 COMBindingBaseObject:

提供了这个
new COMBindingBaseObject("TDApiOle80.TDConnection", false)

然后,使用提供的 IDispatch 调用方法并获取或设置属性。

Reference.