TYPEDEF: uchar BYTE
TYPEDEF: ushort wchar_t
+
TYPEDEF: wchar_t WCHAR
TYPEDEF: short SHORT
TYPEDEF: ushort USHORT
+TYPEDEF: short INT16
+TYPEDEF: ushort UINT16
TYPEDEF: ushort WORD
TYPEDEF: ulong DWORD
TYPEDEF: long LONG
TYPEDEF: long* LPLONG
-TYPEDEF: long LONG_PTR
-TYPEDEF: long* PLONG_PTR
+TYPEDEF: intptr_t LONG_PTR
TYPEDEF: uint ULONG
-TYPEDEF: void* ULONG_PTR
-TYPEDEF: void* PULONG_PTR
+TYPEDEF: uintptr_t ULONG_PTR
TYPEDEF: void VOID
TYPEDEF: void* PVOID
TYPEDEF: intptr_t INT_PTR
TYPEDEF: intptr_t UINT_PTR
-TYPEDEF: int LONG_PTR
-TYPEDEF: ulong ULONG_PTR
-
TYPEDEF: int INT32
TYPEDEF: uint UINT32
TYPEDEF: uint DWORD32
+TYPEDEF: long LONG32
TYPEDEF: ulong ULONG32
TYPEDEF: ulonglong ULONG64
TYPEDEF: long* POINTER_32
TYPEDEF: ulonglong ULARGE_INTEGER
TYPEDEF: LARGE_INTEGER* PLARGE_INTEGER
TYPEDEF: ULARGE_INTEGER* PULARGE_INTEGER
+TYPEDEF: size_t SIZE_T
+TYPEDEF: ptrdiff_t SSIZE_T
-SYMBOL: wchar_t*
-<< { char* utf16n } \ wchar_t* typedef >>
-
-TYPEDEF: wchar_t* LPCSTR
-TYPEDEF: wchar_t* LPWSTR
+TYPEDEF: { c-string utf16n } LPCSTR
+TYPEDEF: { c-string utf16n } LPWSTR
TYPEDEF: WCHAR TCHAR
TYPEDEF: LPWSTR LPTCH
TYPEDEF: LPWSTR PTCH
TYPEDEF: WORD ATOM
TYPEDEF: BYTE BOOLEAN
-TYPEDEF: DWORD COLORREF
TYPEDEF: ULONGLONG DWORDLONG
TYPEDEF: ULONG_PTR DWORD_PTR
TYPEDEF: PVOID HANDLE
TYPEDEF: HANDLE HDESK
TYPEDEF: HANDLE HDROP
TYPEDEF: HANDLE HDWP
-TYPEDEF: HANDLE HENMETAFILE
+TYPEDEF: HANDLE HENHMETAFILE
TYPEDEF: HANDLE HFONT
TYPEDEF: HANDLE HGDIOBJ
TYPEDEF: HANDLE HGLOBAL
TYPEDEF: LONG_PTR LPARAM
TYPEDEF: BOOL* LPBOOL
TYPEDEF: BYTE* LPBYTE
-TYPEDEF: DWORD* LPCOLORREF
-TYPEDEF: WCHAR* LPCWSTR
+TYPEDEF: { c-string utf16n } LPCWSTR
! TYPEDEF: WCHAR* LPWSTR
-TYPEDEF: WCHAR* LPSTR
-TYPEDEF: wchar_t* LPCTSTR
-TYPEDEF: wchar_t* LPWTSTR
+TYPEDEF: { c-string utf16n } LPSTR
+TYPEDEF: { c-string utf16n } LPCTSTR
+TYPEDEF: { c-string utf16n } LPWTSTR
-TYPEDEF: wchar_t* LPTSTR
+TYPEDEF: { c-string utf16n } LPTSTR
TYPEDEF: LPCSTR PCTSTR
TYPEDEF: LPSTR PTSTR
TYPEDEF: BYTE* PBYTE
TYPEDEF: CHAR* PCHAR
TYPEDEF: CHAR* PCSTR
-TYPEDEF: WCHAR* PCWSTR
+TYPEDEF: { c-string utf16n } PCWSTR
TYPEDEF: DWORD* PDWORD
TYPEDEF: DWORDLONG* PDWORDLONG
TYPEDEF: DWORD_PTR* PDWORD_PTR
TYPEDEF: ULONG32* PULONG32
TYPEDEF: ULONG64* PULONG64
TYPEDEF: USHORT* PUSHORT
-TYPEDEF: WCHAR* PWCHAR
+TYPEDEF: { c-string utf16n } PWCHAR
TYPEDEF: WORD* PWORD
-TYPEDEF: WCHAR* PWSTR
+TYPEDEF: { c-string utf16n } PWSTR
TYPEDEF: HANDLE SC_HANDLE
TYPEDEF: LPVOID SC_LOCK
TYPEDEF: HANDLE SERVICE_STATUS_HANDLE
-TYPEDEF: ULONG_PTR SIZE_T
-TYPEDEF: LONG_PTR SSIZE_T
TYPEDEF: LONGLONG USN
TYPEDEF: UINT_PTR WPARAM
-TYPEDEF: RECT* LPRECT
-TYPEDEF: void* PWNDCLASS
-TYPEDEF: void* PWNDCLASSEX
-TYPEDEF: void* LPWNDCLASS
-TYPEDEF: void* LPWNDCLASSEX
-TYPEDEF: void* MSGBOXPARAMSA
-TYPEDEF: void* MSGBOXPARAMSW
-TYPEDEF: void* LPOVERLAPPED_COMPLETION_ROUTINE
-
TYPEDEF: size_t socklen_t
TYPEDEF: void* WNDPROC
STRUCT: POINT
{ x LONG }
- { y LONG } ;
+ { y LONG } ;
STRUCT: SIZE
{ cx LONG }
TYPEDEF: PIXELFORMATDESCRIPTOR PFD
TYPEDEF: PFD* LPPFD
TYPEDEF: HANDLE HGLRC
-TYPEDEF: HANDLE HRGN
+
+TYPEDEF: void* PWNDCLASS
+TYPEDEF: void* PWNDCLASSEX
+TYPEDEF: void* LPWNDCLASS
+TYPEDEF: void* LPWNDCLASSEX
+TYPEDEF: void* MSGBOXPARAMSA
+TYPEDEF: void* MSGBOXPARAMSW
+TYPEDEF: void* LPOVERLAPPED_COMPLETION_ROUTINE
STRUCT: LVITEM
{ mask uint }
STRUCT: LVFINDINFO
{ flags uint }
- { psz char* }
+ { psz c-string }
{ lParam long }
{ pt POINT }
{ vkDirection uint } ;
: RGB ( r g b -- COLORREF )
{ 16 8 0 } bitfield ; inline
+: >RGB< ( COLORREF -- r g b )
+ [ 0xff bitand ]
+ [ -8 shift 0xff bitand ]
+ [ -16 shift 0xff bitand ] tri ;
: color>RGB ( color -- COLORREF )
>rgba-components drop [ 255 * >integer ] tri@ RGB ;
+: RGB>color ( COLORREF -- color )
+ >RGB< [ 1/255. * >float ] tri@ 1.0 <rgba> ;
STRUCT: TEXTMETRICW
{ tmHeight LONG }
{ tmCharSet BYTE } ;
TYPEDEF: TEXTMETRICW* LPTEXTMETRIC
+
+TYPEDEF: ULONG PROPID