Hello, COM(Groovy) World!
Posted on 1月 17th, 2013 by cx20
COM(Groovy)
COM(Component Object Model)はマイクロソフトの提唱するプログラム部品の仕様である。
COM を用いて開発された部品であれば言語を問わず利用することができる。
Groovy 自身には、COM を呼び出す機能を持っていないが、別途ライブラリを経由することで呼び出すことが可能である。
以下は Groovy より JACOB(JAVA-COM Bridge) ライブラリを使用した COM クライアントの例となっている。
ソースコード
import com.jacob.com.Variant import com.jacob.activeX.ActiveXComponent class Hello { static void main (args) { def shell = new ActiveXComponent("Shell.Application") def hwnd = new Variant(0) def title = new Variant("Hello, COM(JACOB) World!") def option = new Variant(0) def rootFolder = new Variant(36) def params = [ hwnd, title, option, rootFolder ] as Variant[] def folder = shell.invoke( "BrowseForFolder", params ) } } |
実行方法
C:¥> groovy Hello.groovy |
実行結果
+----------------------------------------+ |Browse For Folder [X]| +----------------------------------------+ | Hello, COM(JACOB) Wolrd! | | | | +------------------------------------+ | | |[Windows] | | | | +[addins] | | | | +[AppCompat] | | | | +[AppPatch] | | | | +[assembly] | | | | : | | | | : | | | | : | | | +------------------------------------+ | | [Make New Folder] [ OK ] [Cancel] | +----------------------------------------+ |
Tags: COM