win32: fix setwindowlongptr binding for 32-bit mode

This commit is contained in:
Matthew Flatt 2010-12-06 12:39:45 -07:00
parent 49b9f42ae7
commit fd79abcc1f

View File

@ -67,8 +67,16 @@
(error who "call failed (~s)" (error who "call failed (~s)"
(GetLastError))) (GetLastError)))
(define-user32 GetWindowLongPtrW (_wfun _HWND _int -> _pointer)) (define is-win64?
(define-user32 SetWindowLongPtrW (_wfun _HWND _int _pointer -> _pointer)) (equal? "win32\\x86_64"
(path->string (system-library-subpath #f))))
(define GetWindowLongPtrW
(get-ffi-obj (if is-win64? 'GetWindowLongPtrW 'GetWindowLongW) user32-lib
(_wfun _HWND _int -> _pointer)))
(define SetWindowLongPtrW
(get-ffi-obj (if is-win64? 'SetWindowLongPtrW 'SetWindowLongW) user32-lib
(_wfun _HWND _int _pointer -> _pointer)))
(define-user32 SendMessageW (_wfun _HWND _UINT _WPARAM _LPARAM -> _LRESULT)) (define-user32 SendMessageW (_wfun _HWND _UINT _WPARAM _LPARAM -> _LRESULT))
(define-user32 SendMessageW/str (_wfun _HWND _UINT _WPARAM _string/utf-16 -> _LRESULT) (define-user32 SendMessageW/str (_wfun _HWND _UINT _WPARAM _string/utf-16 -> _LRESULT)