[#36686] 1.1 < 61.1 - 60.0 — Shin-ichiro HARA <sinara@...>

原です。

19 messages 2002/12/06

[#36770] www.ruby-lang.orgリニューアル準備のお知らせ — TADA Tadashi <sho@...>

ruby-lang.orgのwebmasterチームでは、タイムリーな情報提供と使いやすい

11 messages 2002/12/16

[ruby-list:36682] Re: WIN32OLE と IAgentCtlRequest

From: Shusaku <tsyk@...>
Date: 2002-12-05 15:29:17 UTC
List: ruby-list #36682
Shusakuです。

> #define	DISPID_VALUE	( 0 )
> この、DISPID(Invokeメソッドで使用するメソッドID)の値0は、OLEオートメー
> ションで特別な意味を持っています。具体的にはデフォルトプロパティで、明示
> 的なメソッド名の省略時の呼び出しに使用されます(無理矢理こじつけると、
> method_missingというところかな)。

うわぁ!そういうことだったのか。なにしろ、OLEオートメーションを本格的に
プログラミングした経験がなく、そのような基本的な知識が不足していました。
あらためて検索してみると、ちゃんと記述がありました。

  http://msdn.microsoft.com/library/en-us/automat/htm/chap6_7x2c.asp

    DISPID_VALUE : The default member for the object.  This property or
                   method is invoked when an ActiveX client specifies
                   the object name without a property or method.

> class WIN32OLE
>   def ==(other)
>     if WIN32OLE === other
>         return _getproperty(0,[],[]) == other._getproperty(0,[],[])
>     end
>     super(other)
>   end
> end

そうです、こういうことをやりたかったのです。
比較演算子の再定義でゴニョゴニョするのだろうとは考えていましたが、
具体的なコードに辿り着けず、質問した次第です。
ありがとうございました。

-- 
Shusaku <tsyk@yk.rim.or.jp>


In This Thread