1 ! Copyright (C) 2005, 2006 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien namespaces kernel words ;
6 ! http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_data_types.asp
8 SYMBOL: unicode f unicode set
9 : unicode-exec ( unicode-func ascii-func -- func )
16 : unicode? unicode get ; inline
21 ! char uchar short ushort int uint long ulong longlong ulonglong
24 ! char uchar short ushort int uint long ulong longlong ulonglong
32 TYPEDEF: short wchar_t
33 TYPEDEF: wchar_t WCHAR
36 TYPEDEF: ushort USHORT
52 TYPEDEF: long LONG_PTR
53 TYPEDEF: long* PLONG_PTR
56 TYPEDEF: void* ULONG_PTR
57 TYPEDEF: void* PULONG_PTR
62 TYPEDEF: void* LPCVOID
65 TYPEDEF: short HALF_PTR
66 TYPEDEF: ushort UHALF_PTR
68 TYPEDEF: uint UINT_PTR
71 TYPEDEF: ulong ULONG_PTR
76 TYPEDEF: ulong ULONG32
77 TYPEDEF: ulonglong ULONG64
78 TYPEDEF: long* POINTER_32
79 TYPEDEF: longlong* POINTER_64
80 TYPEDEF: longlong INT64
81 TYPEDEF: ulonglong UINT64
82 TYPEDEF: longlong LONGLONG
83 TYPEDEF: ulonglong ULONGLONG
84 TYPEDEF: longlong LONG64
85 TYPEDEF: ulonglong DWORD64
93 TYPEDEF: DWORD COLORREF
94 TYPEDEF: ULONGLONG DWORDLONG
95 TYPEDEF: ULONG_PTR DWORD_PTR
97 TYPEDEF: HANDLE HACCEL
98 TYPEDEF: HANDLE HBITMAP
99 TYPEDEF: HANDLE HBRUSH
100 TYPEDEF: HANDLE HCOLORSPACE
101 TYPEDEF: HANDLE HCONV
102 TYPEDEF: HANDLE HCONVLIST
103 TYPEDEF: HANDLE HICON
104 TYPEDEF: HICON HCURSOR
106 TYPEDEF: HANDLE HDDEDATA
107 TYPEDEF: HANDLE HDESK
108 TYPEDEF: HANDLE HDROP
110 TYPEDEF: HANDLE HENMETAFILE
111 TYPEDEF: HANDLE HFONT
112 TYPEDEF: HANDLE HGDIOBJ
113 TYPEDEF: HANDLE HGLOBAL
114 TYPEDEF: HANDLE HHOOK
115 TYPEDEF: HANDLE HINSTANCE
118 TYPEDEF: HANDLE HLOCAL
119 TYPEDEF: HANDLE HMENU
120 TYPEDEF: HANDLE HMETAFILE
121 TYPEDEF: HINSTANCE HMODULE
122 TYPEDEF: HANDLE HMONITOR
123 TYPEDEF: HANDLE HPALETTE
125 TYPEDEF: LONG HRESULT
127 TYPEDEF: HANDLE HRSRC
129 TYPEDEF: HANDLE WINSTA ! MS docs say typedef HANDLE WINSTA ;
130 TYPEDEF: HANDLE HWINSTA ! typo??
134 TYPEDEF: DWORD LCTYPE
135 TYPEDEF: DWORD LGRPID
136 TYPEDEF: LONG_PTR LPARAM
137 TYPEDEF: BOOL* LPBOOL
138 TYPEDEF: BYTE* LPBYTE
139 TYPEDEF: DWORD* LPCOLORREF
140 TYPEDEF: WCHAR* LPCWSTR
141 TYPEDEF: WCHAR* LPWSTR
143 ! TYPEDEF: LPCWSTR LPCTSTR
144 ! TYPEDEF: LPWSTR LPTSTR
145 ! TYPEDEF: LPCWSTR PCTSTR
146 ! TYPEDEF: LPWSTR PTSTR
148 TYPEDEF: WCHAR* LPWSTR
150 ! TYPEDEF: CHAR* LPCSTR
151 TYPEDEF: VOID* LPCSTR
153 TYPEDEF: LPCSTR LPCTSTR
154 TYPEDEF: LPSTR LPTSTR
155 TYPEDEF: LPCSTR PCTSTR
158 TYPEDEF: DWORD* LPDWORD
159 TYPEDEF: HANDLE* LPHANDLE
160 TYPEDEF: WORD* LPWORD
161 TYPEDEF: LONG_PTR LRESULT
163 TYPEDEF: BOOLEAN* PBOOLEAN
167 TYPEDEF: WCHAR* PCWSTR
168 TYPEDEF: DWORD* PDWORD
169 TYPEDEF: DWORDLONG* PDWORDLONG
170 TYPEDEF: DWORD_PTR* PDWORD_PTR
171 TYPEDEF: DWORD32* PDWORD32
172 TYPEDEF: DWORD64* PDWORD64
173 TYPEDEF: FLOAT* PFLOAT
174 TYPEDEF: HALF_PTR* PHALF_PTR
175 TYPEDEF: HANDLE* PHANDLE
177 TYPEDEF: INT_PTR* PINT_PTR
178 TYPEDEF: INT32* PINT32
179 TYPEDEF: INT64* PINT64
180 TYPEDEF: PDWORD PLCID
182 TYPEDEF: LONGLONG* PLONGLONG
183 TYPEDEF: LONG_PTR* PLONG_PTR
184 TYPEDEF: LONG32* PLONG32
185 TYPEDEF: LONG64* PLONG64
186 TYPEDEF: SHORT* PSHORT
187 TYPEDEF: SIZE_T* PSIZE_T
188 TYPEDEF: SSIZE_T* PSSIZE_T
190 TYPEDEF: TBYTE* PTBYTE
191 TYPEDEF: TCHAR* PTCHAR
192 TYPEDEF: UCHAR* PUCHAR
193 TYPEDEF: UHALF_PTR* PUHALF_PTR
195 TYPEDEF: UINT_PTR* PUINT_PTR
196 TYPEDEF: UINT32* PUINT32
197 TYPEDEF: UINT64* PUINT64
198 TYPEDEF: ULONG* PULONG
199 TYPEDEF: ULONGLONG* PULONGLONG
200 TYPEDEF: ULONG_PTR* PULONG_PTR
201 TYPEDEF: ULONG32* PULONG32
202 TYPEDEF: ULONG64* PULONG64
203 TYPEDEF: USHORT* PUSHORT
204 TYPEDEF: WCHAR* PWCHAR
206 TYPEDEF: WCHAR* PWSTR
207 TYPEDEF: HANDLE SC_HANDLE
208 TYPEDEF: LPVOID SC_LOCK
209 TYPEDEF: HANDLE SERVICE_STATUS_HANDLE
210 TYPEDEF: ULONG_PTR SIZE_T
211 TYPEDEF: LONG_PTR SSIZE_T
212 TYPEDEF: LONGLONG USN
213 TYPEDEF: UINT_PTR WPARAM
215 TYPEDEF: RECT* LPRECT
216 TYPEDEF: void* PWNDCLASS
217 TYPEDEF: void* PWNDCLASSEX
218 TYPEDEF: void* LPWNDCLASS
219 TYPEDEF: void* LPWNDCLASSEX
221 TYPEDEF: void* WNDPROC
223 ! typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
225 BEGIN-STRUCT: WNDCLASS
227 FIELD: WNDPROC lpfnWndProc
228 FIELD: int cbClsExtra
229 FIELD: int cbWndExtra
230 FIELD: HINSTANCE hInstance
232 FIELD: HCURSOR hCursor
233 FIELD: HBRUSH hbrBackground
234 FIELD: LPCTSTR lpszMenuName
235 FIELD: LPCTSTR lpszClassName
238 BEGIN-STRUCT: WNDCLASSEX
241 FIELD: WNDPROC lpfnWndProc
242 FIELD: int cbClsExtra
243 FIELD: int cbWndExtra
244 FIELD: HINSTANCE hInstance
246 FIELD: HCURSOR hCursor
247 FIELD: HBRUSH hbrBackground
248 FIELD: LPCTSTR lpszMenuName
249 FIELD: LPCTSTR lpszClassName
260 ! BEGIN-STRUCT: PAINTSTRUCT
263 ! FIELD: RECT rcPaint
264 ! FIELD: BOOL fRestore
265 ! FIELD: BOOL fIncUpdate
266 ! FIELD: BYTE[32] rgbReserved
269 TYPEDEF: void* LPPAINTSTRUCT
270 TYPEDEF: void* PAINTSTRUCT
287 BEGIN-STRUCT: PIXELFORMATDESCRIPTOR
291 FIELD: BYTE iPixelType
292 FIELD: BYTE cColorBits
294 FIELD: BYTE cRedShift
295 FIELD: BYTE cGreenBits
296 FIELD: BYTE cGreenShift
297 FIELD: BYTE cBlueBits
298 FIELD: BYTE cBlueShift
299 FIELD: BYTE cAlphaBits
300 FIELD: BYTE cAlphaShift
301 FIELD: BYTE cAccumBits
302 FIELD: BYTE cAccumRedBits
303 FIELD: BYTE cAccumGreenBits
304 FIELD: BYTE cAccumBlueBits
305 FIELD: BYTE cAccumAlphaBits
306 FIELD: BYTE cDepthBits
307 FIELD: BYTE cStencilBits
308 FIELD: BYTE cAuxBuffers
309 FIELD: BYTE iLayerType
310 FIELD: BYTE bReserved
311 FIELD: DWORD dwLayerMask
312 FIELD: DWORD dwVisibleMask
313 FIELD: DWORD dwDamageMask
324 TYPEDEF: RECT* LPRECT
325 TYPEDEF: PIXELFORMATDESCRIPTOR PFD
327 TYPEDEF: HANDLE HGLRC