我有一个使用ComfyJ在Java中实现的COM服务器,它基本上使用CoRegisterClassObject
注册自定义接口。我可以使用以下Java代码访问它:
OleMessageLoop.invokeAndWait(new Runnable() {
public void run() {
IUnknown unknown = new IUnknownImpl(
COMServerSample.COMServer.CLSID,
ClsCtx.LOCAL_SERVER);
Automation automation = new Automation(unknown);
automation.invoke("method2", new Object[] {new Integer(123) });
}
});
OleMessageLoop.stop();
我假设使用CoGetClassObject
来访问服务器。
这样做,我可以访问COM服务器而无需更改注册表,也无需向服务器可执行文件添加任何元数据。
有没有办法从VBA访问此服务器?我可以从VBA拨打CoGetClassObject
吗?
答案 0 :(得分:1)
要通过clsid创建COM组件的实例,可以使用CreateObject。 此示例创建" ADODB.Recordset"的新实例:
Set obj = CreateObject("new:{00000535-0000-0010-8000-00AA006D2EA4}")