! Copyright (C) 2005, 2006 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.c-types alien.syntax namespaces kernel words
-sequences math math.bitwise math.vectors colors
-io.encodings.utf16n classes.struct accessors ;
+USING: alien.c-types alien.syntax classes.struct colors
+io.encodings.utf16 io.encodings.utf8 kernel math math.bitwise
+math.functions math.vectors sequences ;
FROM: alien.c-types => float short ;
IN: windows.types
TYPEDEF: ptrdiff_t SSIZE_T
TYPEDEF: { c-string utf16n } LPCSTR
+TYPEDEF: { c-string utf16n } LPTCSTR
+
TYPEDEF: { c-string utf16n } LPWSTR
TYPEDEF: WCHAR TCHAR
TYPEDEF: LPWSTR LPTCH
TYPEDEF: HANDLE HLOCAL
TYPEDEF: HANDLE HMENU
TYPEDEF: HANDLE HMETAFILE
+TYPEDEF: HANDLE HMETAFILEPICT
TYPEDEF: HINSTANCE HMODULE
TYPEDEF: HANDLE HMONITOR
TYPEDEF: HANDLE HPALETTE
TYPEDEF: LONG_PTR LPARAM
TYPEDEF: BOOL* LPBOOL
TYPEDEF: BYTE* LPBYTE
+
TYPEDEF: { c-string utf16n } LPCWSTR
! TYPEDEF: WCHAR* LPWSTR
-TYPEDEF: { c-string utf16n } LPSTR
+TYPEDEF: { c-string utf8 } LPSTR
TYPEDEF: { c-string utf16n } LPCTSTR
TYPEDEF: { c-string utf16n } LPWTSTR
-
TYPEDEF: { c-string utf16n } LPTSTR
TYPEDEF: LPCSTR PCTSTR
TYPEDEF: LPSTR PTSTR
TYPEDEF: HANDLE SERVICE_STATUS_HANDLE
TYPEDEF: LONGLONG USN
TYPEDEF: UINT_PTR WPARAM
+TYPEDEF: DWORD ACCESS_MASK
+TYPEDEF: ACCESS_MASK* PACCESS_MASK
TYPEDEF: size_t socklen_t
STRUCT: POINT
{ x LONG }
- { y LONG } ;
+ { y LONG } ;
+TYPEDEF: POINT* LPPOINT
STRUCT: SIZE
{ cx LONG }
{ dwDamageMask DWORD } ;
: <RECT> ( loc dim -- RECT )
- dupd v+ [ first2 ] bi@ RECT <struct-boa> ;
+ dupd v+ [ first2 ] bi@ RECT boa ;
TYPEDEF: RECT* PRECT
TYPEDEF: RECT* LPRECT
: RGB ( r g b -- COLORREF )
{ 16 8 0 } bitfield ; inline
: >RGB< ( COLORREF -- r g b )
- [ HEX: ff bitand ]
- [ -8 shift HEX: ff bitand ]
- [ -16 shift HEX: ff bitand ] tri ;
+ [ 0xff bitand ]
+ [ -8 shift 0xff bitand ]
+ [ -16 shift 0xff bitand ] tri ;
: color>RGB ( color -- COLORREF )
- >rgba-components drop [ 255 * >integer ] tri@ RGB ;
+ >rgba-components drop [ 255 round * >integer ] tri@ RGB ;
: RGB>color ( COLORREF -- color )
- >RGB< [ 1/255. * >float ] tri@ 1.0 <rgba> ;
+ >RGB< [ 255 /f ] tri@ 1.0 <rgba> ;
STRUCT: TEXTMETRICW
{ tmHeight LONG }
TYPEDEF: TEXTMETRICW* LPTEXTMETRIC
TYPEDEF: ULONG PROPID
+
+CALLBACK: BOOL WNDENUMPROC ( HWND hWnd, LPARAM lParam )
+CALLBACK: LRESULT HOOKPROC ( int nCode, WPARAM wParam, LPARAM lParam )