助田です。

In message "[ruby-dev:31576] test/win32ole"
    on 07/08/22, SASADA Koichi <ko1 / atdot.net> writes:

>  mswin32 での test/win32ole が実行中に異常終了するのですが,どなか
> た心当たりはありますでしょうか.

(snip)

> > test_progid(TestWIN32OLE_TYPE):
> 
>  此処で止まります.デバッガ(VC)は win32ole.c の 2019 行目の
> atof() で止まってる,みたいなことを言ってるんですが.
> 
>  自分の環境が Vista だからかもしれません.VC 8 です(ruby 1.9.0
> (2007-08-21 patchlevel 0) [i386-mswin32_80]).他に必要な情報があれ
> ばご指摘ください.

手元にVistaの環境が無いので、さっぱりわからないのですが...。

Windows XP で VC71だと再現しませんでした。(ruby 1.9.0
(2007-08-22 patchlevel 0) [i386-mswin32_71])

atofのあたりって、レジストリの情報を読んでいるんですけど、
レジストリの情報(構成)がVistaで変わってしまったのでしょうか?
レジストリの情報として

  HKEY_CLASSES_ROOT\TypeLib\{CLSID}\2.0

というような情報が格納されていることを想定しています。
Vistaではどうなっているかわかりますか?
(実際のCLSIDは、{0000001-0000-0000-0000-000000000001}みたいになってます。)

atofのあたりは、HKEY_CLASSES_ROOT内のTypeLib内のCLSID内の
Version(上の例でいうと2.0)の中の一番大きいのを探す処理をしています。

あと、win32ole.cのreg_enum_key関数で
  char buf[BUFSIZ];
と宣言してるんですけど、BUFSIZがVista、VC8の環境だといくつかわかりますか?

整理すると、とりあえず、知りたい情報として次の2つをお願いできますか?
(1) Vistaのレジストリ情報が
     HKEY_CLASSES_ROOT\TypeLib\{CLSID}\2.0
    のような構成になっているのかどうか?
(2) BUFSIZの値

  # Vistaはまだ触ったことがない
  助田雅紀