金子です。

またまた mswin32 です。
Win32API が使えてなかったので修正しました。
1.4.3 の差分です。

ハンドルを INT として扱うことの善し悪しは分かりませんが、
INT2NUM() で保存したものを NUM2ULONG() で取り出して
いたので、単純に保存と取り出しの型を合わせるように
修正しました。

# cygwin版が正常に動いているのは謎です。

木村さん、小松さん、すみませんがこれも検証して
いただけますか?


================================================================
diff -u -p Win32API.c.orig Win32API.c 
--- Win32API.c.orig	Fri Oct 15 16:41:37 1999
+++ Win32API.c	Sat Dec 25 00:08:59 1999
@@ -140,7 +140,7 @@ Win32API_Call(argc, argv, obj)
 
     obj_proc = rb_iv_get(obj, "__proc__");
 
-    ApiFunction = (FARPROC)NUM2ULONG(obj_proc);
+    ApiFunction = (FARPROC)NUM2INT(obj_proc);
 
     obj_import = rb_iv_get(obj, "__import__");
     obj_export = rb_iv_get(obj, "__export__");
@@ -184,7 +184,7 @@ Win32API_Call(argc, argv, obj)
 		}
 #if defined(_MSC_VER) || defined(__LCC__)
 		_asm {
-		    mov     eax, dword ptr pParam
+		    mov     eax, pParam
 		    push    eax
 		}
 #elif defined(__CYGWIN32__) || defined(__MINGW32__)
================================================================


-- 
金子 尚史 (KANEKO Naoshi)
e-mail: wbs01621 / mail.wbs.ne.jp