Subject: [ruby-ffi] Re: unable to find method? |
From: rogerdpack |
Date: 12/18/09 4:19 PM |
To: ruby-ffi |
BTW, where are you guys with coming up with more interesting windows examples (64-bit, pointer-to-pointer return types, etc)!? ;)
Got stuck with this example segfaulting.
require 'ffi'
# button constants
BUTTONS_OK = 0
BUTTONS_OKCANCEL = 1
BUTTONS_ABORTRETRYIGNORE = 2
BUTTONS_YESNO = 4
# return code constants
CLICKED_OK = 1
CLICKED_CANCEL = 2
CLICKED_ABORT = 3
CLICKED_RETRY = 4
CLICKED_IGNORE = 5
CLICKED_YES = 6
CLICKED_NO = 7
extend FFI::Library
ffi_lib 'user32'
attach_function :msgbox, 'MessageBoxA',
[:pointer, :string, :string, :uint], :int
def message_box(txt, title=APP_TITLE, buttons=BUTTONS_OK)
ffi_lib 'user32'
r = msgbox(nil, txt, title, buttons)
return r
end
response = message_box("Are you sure you want to proceed?",
"Proceed?", BUTTONS_YESNO)
if response == CLICKED_YES
# insert your code here
end
-r