learn-ruby-in-kansai:263
From: cuzic <tomoya@c...>
Date: Fri, 01 Apr 2005 00:20:18 +0900
Subject: [learn-ruby-in-kansai:263] Re: オープンソースカンファレンス行ってきました。
cuzic です。 On Wed, 30 Mar 2005 21:36:15 +0900 Hiroshi Takagi <gollum@h...> wrote: > 高木@オフィス%デスマーチの響きは少し遠のいたかな? おめでとうございます。 > 5/14 の弊社会議室は押さえました。ご安心を。 ありがとうございます。 会場設営等いろいろとお世話になって、ありがとうございます。 > > おお、ありがとうございます! > > 内容のほうは、また、会ったときに教えてくださいね^^; > > わたしも聞きたい。 > 次回勉強会の第3 セッションにするとか :-) けっこう、こういう話題を聞きたい方がいるんですね。 というわけでちょっとだけ説明します。 COM には引数の型がありますけど、Ruby には引数に型指定はしません。 このギャップのために COM のメソッド呼び出しで正しく、型変換されなくて 困ることがあります。 InDesign で 32bit 整数のプロパティのセットのときのように 標準の変換でうまくいかないときに明示的に型を指定すると うまくいくかもしれません。 そういうときのために、型を明示的に指定して実行する機構が Win32OLE では用意されています。 それが、_invoke, _setproperty,_getproperty の3つです。 _invoke と _setproperty で、型を指定したいことが実際には 多いでしょうか? _invoke メソッドの第一引数は、ディスパッチID というもので、 WIN32OLE_METHOD#dispid で取得できます。 他に、Python COM Browser を使うという手もあります。 なお WIN32OLE_METHOD 型は、WIN32OLE#ole_method メソッドで、 取得できます。 ex) # irb -r win32ole > ie = WIN32OLE.new("InternetExplorer.Application") > navigate = ie.ole_method("Navigate") > puts navigate.dispid _invoke メソッドの第2引数は実際に渡す値の配列です。 _invoke メソッドの第3引数はCOM の型を指定するための配列です。 第3引数の使い方は olegen.rb を実行して参考にしてください。 ところで、olegen.rb っていうのは Ruby 標準添付のサンプル スクリプトです。 ruby-1.8.2 の場合は次のディレクトリにあります。 "ruby-1.8.2/ext/win32ole/sample" 以上ですが、また何か疑問点あれば言ってください。 > > > ちなみに、olegen.rb の使い方は次みたいなかんじです。 > > > > > > ~> ruby -r win32ole -e "puts WIN32OLE_TYPE.typelibs" | grep "internet" > > > Microsoft Internet Controls > > > ~> ruby olegen.rb "Microsoft Internet Controls" > > > > > > この出力を見ると、WIN32OLE#_invoke メソッドの使い方も検討がつく > > > かもしれません。 > > このML はtraffic は少ないけど勉強になるなぁ〜。 > > ではでは、また、仕事に戻ります。 > > > > On Tue, 29 Mar 2005 20:49:44 +0900 > "mbaba" <xml@t...> wrote: > > > 馬場@大阪です > > > > 遠征お疲れ様です。 > > > > > ところでオープンソースカンファレンスで arton さんや 助田さんと > > > お話する機会を持てたのですが、そのときにいろいろと Win32OLE の > > > 使い方について聞いてきました。 > > > > > > 以前あった馬場@大阪さんの話を念頭に持ちながらいろいろと > > > お話してたんですけど、olegen.rb と併用してみたり、 > > > WIN32OLE#_invoke メソッドを使ったりすると、 > > > 型を指定して、メソッドを呼び出せるようです。 > > > InDesign なんかの例でも型を指定すると呼び出せるかもしれませんので > > > 試してみてください。 > > おお、ありがとうございます! > > 内容のほうは、また、会ったときに教えてくださいね^^; > > > > > > > > ちなみに、olegen.rb の使い方は次みたいなかんじです。 > > > > > > ~> ruby -r win32ole -e "puts WIN32OLE_TYPE.typelibs" | grep "internet" > > > Microsoft Internet Controls > > > ~> ruby olegen.rb "Microsoft Internet Controls" > > > > > > この出力を見ると、WIN32OLE#_invoke メソッドの使い方も検討がつく > > > かもしれません。 > > > > > > 参考にして、何か分かったらまた教えてもらえるとうれしいです。 > > す、、少しがんばってみます、、、。 > > > > > > > > あと、そこで arton さんに mixi に誘っていただきました。 > > > mixi している人はメッセージとかくださいです。 > > 私も、ちょっと前に印刷関係の仲間にさそってもらいました。 > > > > 馬場幹彦 > > > > > > -- > > ML: learn-ruby-in-kansai@r... > > 使い方: http://QuickML.com/ > > > > -- > Hiroshi Takagi <gollum@h...> > > > > -- > ML: learn-ruby-in-kansai@r... > 使い方: http://QuickML.com/ -- ML: learn-ruby-in-kansai@r... 使い方: http://QuickML.com/
223 2005-02-11 19:27 [babie7a0@y... ] 第1回のサマリ 224 2005-02-13 06:06 ┗[xml@t... ] win32oleでBignumの定数を使うには? 226 2005-02-15 14:45 ┗[tomoya@c... ] 227 2005-02-15 18:43 ┗[xml@t... ] 259 2005-03-28 16:44 ┗[tomoya@c... ] オープンソースカンファレンス行ってきました。 260 2005-03-29 09:58 ┣[moriq@m... ] 261 2005-03-29 13:49 ┗[xml@t... ] 262 2005-03-30 14:36 ┗[gollum@h... ] -> 263 2005-03-31 17:20 ┗[tomoya@c... ]