$VERBOSE = nil class Win32Fun def initialize(dll, func, arg_spec, ret_spec) @dll = dll @func = func @arg_spec = arg_spec @ret_spec = ret_spec end def call(*args) method = @dll + "_" + @func if self.class.private_method_defined? method return self.send method, args elsif Win32NativeAPI.respond_to? method return Win32NativeAPI.send method, args[0] else puts "fixme: " + @dll + "." + @func return 0 end end private end module Win32API def self.new(dll, func, arg_spec, ret_spec) return Win32Fun.new(dll, func, arg_spec, ret_spec) end end