factor/core/windows/utils.factor

29 lines
780 B
Factor
Raw Normal View History

2006-07-25 10:04:14 -04:00
! Copyright (C) 2005, 2006 Doug Coleman.
2006-11-02 21:28:44 -05:00
! See http://factorcode.org/license.txt for BSD license.
2006-08-01 18:59:56 -04:00
USING: alien errors io kernel math namespaces parser prettyprint words ;
2006-07-25 10:04:14 -04:00
IN: win32-api
2006-11-02 21:28:44 -05:00
! You must LocalFree the return value!
FUNCTION: void* error_message ( DWORD id ) ;
2006-08-01 18:59:56 -04:00
2006-11-02 21:28:44 -05:00
: win32-error ( -- )
GetLastError dup zero? [
drop
] [
error_message
dup alien>char-string
swap LocalFree drop
throw
] if ;
2006-08-01 18:59:56 -04:00
2006-07-25 10:04:14 -04:00
: win32-error=0 zero? [ win32-error ] when ;
: win32-error>0 0 > [ win32-error ] when ;
: win32-error<0 0 < [ win32-error ] when ;
: win32-error<>0 zero? [ win32-error ] unless ;
: lo-word ( wparam -- lo ) HEX: ffff bitand ;
: hi-word ( wparam -- hi ) -16 shift ;
: msgbox ( str -- )
f swap "DebugMsg" MB_OK MessageBox drop ;