なかだです。

At Thu, 12 Feb 2004 19:26:38 +0900,
arton wrote in [ruby-list:39145]:
> > といったエラーが出ますね。attacEvent はあるのだけど、第2引数
> > がわかりません。これは出来てもいい気がするんだけど、、、。
> できるようにすることは可能なので、パッチを作ってテストしてみました。
> 問題なさそうだったので助田さんに取り込んでいただけるようお願いました。
> 原さんが試されるのでしたら添付のパッチをwin32ole.cに適用してみてください。
> リリース版のruby-1.8.1/ext/win32ole/win32ole.c 用です。
> 
> -- 
> arton <artonx / yahoo.co.jp>
> [2 patch.txt <application/octet-stream (base64)>]
> +     VALUE* parg = ALLOC_N(VALUE, args);
> +     for (i = 0; i < args; i++) {
> + 	*(parg + i) = ole_variant2val(&pDispParams->rgvarg[args - i - 1]);
> +     }

pargはALLOCA_N()を使えば解放する必要がなくなると思います。

+     pdisp = ALLOC(Win32OLEIDispatch);
+     pdisp->dispatch.lpVtbl = p;
+     pdisp->refcount = 1;
+     pdisp->obj = val;

このobjはmark不要?

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦