助田です。

In message "[ruby-list:31453] Re: Win32OLE 拡張の試み"
    on 01/09/15, arton <arton / geocities.co.jp> writes:

> > 助田です。
> > win32ole.c へのパッチはcygwinでもコンパイルできるような形で取り込み
> > ました。
> うぅ、あのままではダメでしたか。

1. LPCL 型が定義されてなかったので、 CL* を使った。
2. VARIANTARG のメンバを参照するのに V_XXXX マクロを使うようにした。

の2つです。
2.はVARIANTARGの定義が微妙に違うので、直接メンバを参照しようとすると
エラーになるのでした。 定義の差分を吸収するために、V_XXXXマクロを使う
ようにしています。

> 1.WIN32OLE派生ではなく集約にしているけど、実際は派生で良いのではないか?
> 2.集約としても、method_missing を使って、プロパティの読み込み/書き込み
> をWIN32OLEにデリゲートしてやったほうが良いのではないか?

これは、判断つかないです。今のままでもいいような気がします。

> 3.VT_XXXXを個々のクラス内て定数として持つのはいかがなものか?
これはちょっと嫌。
WIN32OLE側でVT_XXXX用のモジュールを用意するのがいいと思います。

例えば、
  class WIN32OLE
    module VARIANT_TYPE
      VT_I2 = 2
       ...
    end
  end
に相当するものを win32ole.c で定義してやって olegen.rb で生成するときには

include WIN32OLE::VARIANT_TYPE

とかして、 VT_I2 などを利用するのがいいんじゃないかと。

  助田 雅紀