助田です。

In message "[ruby-list:40926] Re: windowsでコンテキストメニューの「印刷」を実行するには?"
    on 05/07/13, "H.Yamamoto" <ocean / m2.ccsnet.ne.jp> writes:

> ># どうするか、考えがまとまらない...。
> 
> 本来は、パラメータが [in] なら値渡し、[out] なら参照渡しするのが
> 正しいやり方なんだと思います。[in] か [out] か、ruby側(レイトバインディング)で
> 知る方法がないのが問題だと・・・・

なるほど。[in]なら値渡し、[out]なら参照渡しですか。

> となると、VBScript みたいにユーザに参照渡しと値渡しを区別させるとか
> (VBScript では括弧で囲むと値渡し、囲まないと参照渡しになるらしい)
> JScript のようにすべて値渡しするとか・・・でもこれだと動かないものが
> あったんですよね。動かないというのは、やっぱり [out] に値渡しだと
> エラーになるとか、値が得られないとか、そういうことでしょうか?

そうです。
今までエラーになる状況というのは聞いたことがないと思うのですが、
値が得られないというのが問題になったことがあります。

参照渡しでエラーなら、全部値渡しにして、もう一度実行するという
アドホックなことを、Win32OLEでは、やっているのですが、
InvokeVerbの場合は、参照渡しでエラーにならないんですよね。

  助田 雅紀