From: arton Date: 2004-06-16T23:59:06+09:00 Subject: [ruby-dev:23699] Re: Shell.Application on WIN32OLE artonです。 On Wed, 16 Jun 2004 21:34:13 +0900 H.Yamamoto さん wrote: > C++ のコードでも再現するので、ruby とは関係ないです。(bcc32でコンパイル) どうも、Folder2のバグのようですね。 たとえば > hr = item->Verbs(&verbs); > if (FAILED(hr)) puts("[error] Verbs"); verbs->AddRef(); を追加すると落ちなくなります。が、ここでAddRefを呼ぶのは誤りなので、単純 に物理フォルダの実装にバグがあり参照カウンタの見方がおかしいのだと思いま す。 とりあえず、[ruby-dev:23693]の最初のパッチのCoFreeUnusedLibrayの呼び出し を消すという対処が良いのではないでしょうか。この場合の問題点は不要となっ たライブラリが開放されないためにプロセスメモリーが大きいままとなることで すが、それ以外には特にないはずです。 MULTITHREADEDで、CoInitializeExを呼び出すのは賛成できません。なぜならば、 Win32OLEの実装が、MTAを意識していないからです。 -- arton __________________________________________________ Do You Yahoo!? http://bb.yahoo.co.jp/