[前][次][番号順一覧][スレッド一覧]

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...         ]