助田です。
遅くなってすいません。どうも、ちょっと不調なもので。
あとどうしようかと迷ってたこともありました。

In message "[ruby-ext:02070] BSTR with win32ole"
    on 02/02/23, UENO Katsuhiro <unnie / blue.sky.or.jp> writes:

> どうもこのメソッドは、バイナリデータをそのまま表現した
> BSTR 型の引数を要求しているようで、String オブジェクトから
> BSTR を生成する際に ole_mb2wc でワイドキャラクタ化してしまう
> win32ole では期待通りの結果が得られません。
> 
> とりあえず、こんな感じで対処してみました。
>  rs.Fields(0).AppendChunk WIN32OLE_BSTR.new("hoge")
>
>のように使います。

BSTR型専用にこういうのを用意するのはちょっと抵抗があるんです。
そのまま取り込ませていただこうかと思ったのですが、
(正直、このメール書き始めたときは、「取り込ませていただきます。」と
 書くつもりだったのです。)
もうちょっと考えさせてください。歯切れ悪くてすいません。
いっそのこと

  rs.Fields(0).AppendChunk WIN32OLE_VARIANT.new("hoge", BSTR|MB)

みたいに、WIN32OLE_VARIANT型を用意した方がいいんじゃないかと
思い始めました。

# WIN32OLE_VARIANT.new("hoge", BSTR|WC) だったらワイドキャラクタ化する。

やり過ぎという気もしないではないのですが、あってもいいんじゃないかと
思い始めてます。どう思われますか?

  助田 雅紀