助田です。

反応が鈍くてすいません。

In message "[ruby-list:40890] windowsでコンテキストメニューの「印刷」を実行するには?"
    on 05/07/01, 岩崎 弘孝 <IH000667 / mb.taiyokogyo.co.jp> writes:


> 今回、windowsでコンテキストメニュー(マウス右ボタンのメニュー)の「印刷」
> を実行したく
> 以下のコードを作成しましたが、デフォルトの動作である「開く(&O)」に相当す
> 
> 動作しかしないようです。解決策のご助言をお願いします。

ごめんなさい。
今のところ、Win32OLEでは、できないです。

できないことは、はっきりしたのですが、できるようにするために
どうWin32OLEのソースを修正すればいいのか、わからないのが現状です。
本当にごめんなさい。


以下、Win32OLEの内部的な話になって申し訳ないのですが、
Win32OLE内部では、参照渡しで InvokeVerbに引数 "印刷(&P)" を渡しています。

この渡し方に問題があるみたいで、InvokeVerb側に引数がうまく
渡っていかなくて、引数が省略されたとInvokeVerbは判断するのか
引数がないときの動きをするようです。

試しにWin32OLEのソースを値渡しに修正してみると動きました。

ただ、Win32OLE側で、参照渡しを値渡しにすると、他で動かないスクリプトが
出てくるんです。
昔は、値渡しだったのですが、動かないスクリプトがあったので、参照渡し
にした経緯があります。

参照渡しの中にどっかまずいところがあるんでしょうけど、どこが悪いのか
わからないのです。

  助田雅紀