Google Gearsをインストールしたら、IE向けにはDLLが1個入るだけみたいだった。これ多分COMだろうな、と思ってVBAでオブジェクトブラウザを立ち上げてみたら、やっぱり「GearsTypelib」とやらができているので、COMでなんかできるっぽい。
で、ライブラリ探してるときに「Earth 1.0.Type Library」とかいろいろと興味深いものがちらほらと見つかったのだが、そのなかの1つに「COMWin 1.0.Type Library」てのがあった。
ライブラリの場所を見たところ、Microsoft Script Debuggerについてきてるやつみたいだ。(昔インストールしていた)
さっそくオブジェクトブラウザで開いてみると、「COMWindow」ってオブジェクトがあり、これが「CreateWindowEx」だの、「FindWindowEx」だの、ActiveXにあるまじき名前のメソッドが実装されてるっぽい。なんじゃこりゃーー。
ともかく、
var cw = new ActiveXObject("COMWinLib.COMWindow");としてみると、「オートメーション サーバーはオブジェクトを作成できません」。 はて、したらこれでどうだ。
var cw = new ActiveXObject("COMWindow");おお、エラーでないよ。これでいいんか。
ほんじゃまず引数取らないやつから試すか。
var w = cw.GetDesktopWindow();「オブジェクトでサポートされていないプロパティまたはメソッドです」だそうだ。はて?
VBS経由して型を調べてみたら、COMWindowではなくIWindowDispになっていた。ほんじゃそっちのメソッドを試してみよう。
cw.IsWindow(); // → false cw.IsWindowEnabled(); // → false cw.IsWindowVisible(); // → falseぜんぜんだめじゃん。お、「GetParent()」なんてのがある。
var p = cw.GetParent(); // → pもIWindowDisp p.IsWindow(); // → false p.IsWindowEnabled(); // → false p.IsWindowVisible(); // → falseなんじゃそれ。
まぁ、メソッドの定義とか見てると、引数の中に
uType AS <サポートされていないバリアント型>とかorzな記述があったりで、WSHからシンプルに使えるライブラリじゃなさそうなんだけど、「COMWinLib」とか「comwin.dll」とか見てもほとんど情報が見つからないのでものすごく気になってる。
追記:「サポートされないバリアント型」はIWindowDisp#MessageBoxにあったんだが、VC#2005でtlbimpしてみたらuintとかでマーシャリングされてたのでふつーにNumber渡して問題なかった。
だれかなんか情報しらないかなー
セコメントをする