1
ComfyJを使用してJavaで実装されたCOMサーバーがあります。これは、基本的にCoRegisterClassObject
を使用してカスタムインターフェイスを登録します。私は、サーバーにアクセスするためにボンネットの下にCoGetClassObject
を使用して想定しVBAで未登録のCOMコンポーネントにアクセスするにはどうすればよいですか?
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();
:私は、次のJavaコードを使用してアクセスすることができます。
これを実行すると、レジストリを変更せずに、サーバーの実行可能ファイルにメタデータを追加せずに、COMサーバーにアクセスできます。
VBAからこのサーバーにアクセスする方法はありますか? VBAからCoGetClassObject
に電話できますか?
ClsCtx.LOCAL_SERVERの価値とは? @FlorentB。 –
ClsCtx.LOCAL_SERVERの値は4です(https://msdn.microsoft.com/de-de/library/windows/desktop/ms693716%28v=vs.85%29.aspxを参照してください) –
Set obj = CreateObject( "new:{00000535-0000-0010-8000-00AA006D2EA4}") –