COM オブジェクトをインスタンス化してから、メソッドを呼び出します。
ActiveXComponent comp = new ActiveXComponent("MyDll.MyClass");
String argument1 = "test1";
String argument2 = "test2";
Variant[] arguments = { new Variant(argument1), new Variant(argument2) };
comp.invoke("myMethod", arguments)
MyDll にというメソッドがあると仮定すると、
myMethod(String s1, String s2)
それは正常に動作します。
では、メソッドがある場合はどうなるでしょうか
myMethod(String s1, ReturnDeletedModeEnum enum)
MyDll で定義された列挙型で?
どうにかして列挙型をメソッドに渡す必要がありますが、アクセスする方法がわかりません。
Enum を ActiveXComponent として取得しようとしましたが、
new ActiveXComponent("MyDll.ReturnDeletedModeEnum");
(驚くべきことではありませんが)うまくいきませんでした:
com.jacob.com.ComFailException: Can't get object clsid from progid
Enum固有のクラスがあるように見えるため、Jacobに関するドキュメントをさらに見つけようとしましたが、それらの使用方法に関する説明は見つかりませんでした。