1 ! Copyright (C) 2005, 2006 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.syntax namespaces kernel words ;
10 TYPEDEF: ushort wchar_t
11 TYPEDEF: wchar_t WCHAR
14 TYPEDEF: ushort USHORT
30 TYPEDEF: long LONG_PTR
31 TYPEDEF: long* PLONG_PTR
34 TYPEDEF: void* ULONG_PTR
35 TYPEDEF: void* PULONG_PTR
40 TYPEDEF: void* LPCVOID
44 TYPEDEF: intptr_t HALF_PTR
45 TYPEDEF: intptr_t UHALF_PTR
46 TYPEDEF: intptr_t INT_PTR
47 TYPEDEF: intptr_t UINT_PTR
50 TYPEDEF: ulong ULONG_PTR
55 TYPEDEF: ulong ULONG32
56 TYPEDEF: ulonglong ULONG64
57 TYPEDEF: long* POINTER_32
58 TYPEDEF: longlong* POINTER_64
59 TYPEDEF: longlong INT64
60 TYPEDEF: ulonglong UINT64
61 TYPEDEF: longlong LONGLONG
62 TYPEDEF: ulonglong ULONGLONG
63 TYPEDEF: longlong LONG64
64 TYPEDEF: ulonglong DWORD64
65 TYPEDEF: longlong LARGE_INTEGER
66 TYPEDEF: ulonglong ULARGE_INTEGER
67 TYPEDEF: LARGE_INTEGER* PLARGE_INTEGER
68 TYPEDEF: ULARGE_INTEGER* PULARGE_INTEGER
70 TYPEDEF: wchar_t* LPCSTR
71 TYPEDEF: wchar_t* LPWSTR
79 TYPEDEF: DWORD COLORREF
80 TYPEDEF: ULONGLONG DWORDLONG
81 TYPEDEF: ULONG_PTR DWORD_PTR
83 TYPEDEF: HANDLE HACCEL
84 TYPEDEF: HANDLE HBITMAP
85 TYPEDEF: HANDLE HBRUSH
86 TYPEDEF: HANDLE HCOLORSPACE
88 TYPEDEF: HANDLE HCONVLIST
90 TYPEDEF: HICON HCURSOR
92 TYPEDEF: HANDLE HDDEDATA
96 TYPEDEF: HANDLE HENMETAFILE
98 TYPEDEF: HANDLE HGDIOBJ
99 TYPEDEF: HANDLE HGLOBAL
100 TYPEDEF: HANDLE HHOOK
101 TYPEDEF: HANDLE HINSTANCE
104 TYPEDEF: HANDLE HLOCAL
105 TYPEDEF: HANDLE HMENU
106 TYPEDEF: HANDLE HMETAFILE
107 TYPEDEF: HINSTANCE HMODULE
108 TYPEDEF: HANDLE HMONITOR
109 TYPEDEF: HANDLE HPALETTE
111 TYPEDEF: LONG HRESULT
113 TYPEDEF: HANDLE HRSRC
115 TYPEDEF: HANDLE WINSTA ! MS docs say typedef HANDLE WINSTA ;
116 TYPEDEF: HANDLE HWINSTA ! typo??
118 TYPEDEF: HANDLE HCRYPTPROV
121 TYPEDEF: DWORD LCTYPE
122 TYPEDEF: DWORD LGRPID
123 TYPEDEF: LONG_PTR LPARAM
124 TYPEDEF: BOOL* LPBOOL
125 TYPEDEF: BYTE* LPBYTE
126 TYPEDEF: DWORD* LPCOLORREF
127 TYPEDEF: WCHAR* LPCWSTR
128 ! TYPEDEF: WCHAR* LPWSTR
130 TYPEDEF: WCHAR* LPSTR
131 TYPEDEF: wchar_t* LPCTSTR
132 TYPEDEF: wchar_t* LPWTSTR
134 TYPEDEF: wchar_t* LPTSTR
135 TYPEDEF: LPCSTR PCTSTR
138 TYPEDEF: DWORD* LPDWORD
139 TYPEDEF: HANDLE* LPHANDLE
140 TYPEDEF: WORD* LPWORD
141 TYPEDEF: LONG_PTR LRESULT
143 TYPEDEF: BOOLEAN* PBOOLEAN
147 TYPEDEF: WCHAR* PCWSTR
148 TYPEDEF: DWORD* PDWORD
149 TYPEDEF: DWORDLONG* PDWORDLONG
150 TYPEDEF: DWORD_PTR* PDWORD_PTR
151 TYPEDEF: DWORD32* PDWORD32
152 TYPEDEF: DWORD64* PDWORD64
153 TYPEDEF: FLOAT* PFLOAT
154 TYPEDEF: HALF_PTR* PHALF_PTR
155 TYPEDEF: HANDLE* PHANDLE
157 TYPEDEF: INT_PTR* PINT_PTR
158 TYPEDEF: INT32* PINT32
159 TYPEDEF: INT64* PINT64
160 TYPEDEF: PDWORD PLCID
162 TYPEDEF: LONGLONG* PLONGLONG
163 TYPEDEF: LONG_PTR* PLONG_PTR
164 TYPEDEF: LONG32* PLONG32
165 TYPEDEF: LONG64* PLONG64
166 TYPEDEF: SHORT* PSHORT
167 TYPEDEF: SIZE_T* PSIZE_T
168 TYPEDEF: SSIZE_T* PSSIZE_T
170 TYPEDEF: TBYTE* PTBYTE
171 TYPEDEF: TCHAR* PTCHAR
172 TYPEDEF: UCHAR* PUCHAR
173 TYPEDEF: UHALF_PTR* PUHALF_PTR
175 TYPEDEF: UINT_PTR* PUINT_PTR
176 TYPEDEF: UINT32* PUINT32
177 TYPEDEF: UINT64* PUINT64
178 TYPEDEF: ULONG* PULONG
179 TYPEDEF: ULONGLONG* PULONGLONG
180 TYPEDEF: ULONG_PTR* PULONG_PTR
181 TYPEDEF: ULONG32* PULONG32
182 TYPEDEF: ULONG64* PULONG64
183 TYPEDEF: USHORT* PUSHORT
184 TYPEDEF: WCHAR* PWCHAR
186 TYPEDEF: WCHAR* PWSTR
187 TYPEDEF: HANDLE SC_HANDLE
188 TYPEDEF: LPVOID SC_LOCK
189 TYPEDEF: HANDLE SERVICE_STATUS_HANDLE
190 TYPEDEF: ULONG_PTR SIZE_T
191 TYPEDEF: LONG_PTR SSIZE_T
192 TYPEDEF: LONGLONG USN
193 TYPEDEF: UINT_PTR WPARAM
195 TYPEDEF: RECT* LPRECT
196 TYPEDEF: void* PWNDCLASS
197 TYPEDEF: void* PWNDCLASSEX
198 TYPEDEF: void* LPWNDCLASS
199 TYPEDEF: void* LPWNDCLASSEX
200 TYPEDEF: void* MSGBOXPARAMSA
201 TYPEDEF: void* MSGBOXPARAMSW
202 TYPEDEF: void* LPOVERLAPPED_COMPLETION_ROUTINE
204 TYPEDEF: size_t socklen_t
206 TYPEDEF: void* WNDPROC
211 : >BOOLEAN ( ? -- 1/0 ) 1 0 ? ; inline
213 ! typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
217 { "WNDPROC" "lpfnWndProc" }
218 { "int" "cbClsExtra" }
219 { "int" "cbWndExtra" }
220 { "HINSTANCE" "hInstance" }
222 { "HCURSOR" "hCursor" }
223 { "HBRUSH" "hbrBackground" }
224 { "LPCTSTR" "lpszMenuName" }
225 { "LPCTSTR" "lpszClassName" } ;
230 { "WNDPROC" "lpfnWndProc" }
231 { "int" "cbClsExtra" }
232 { "int" "cbWndExtra" }
233 { "HINSTANCE" "hInstance" }
235 { "HCURSOR" "hCursor" }
236 { "HBRUSH" "hbrBackground" }
237 { "LPCTSTR" "lpszMenuName" }
238 { "LPCTSTR" "lpszClassName" }
239 { "HICON" "hIconSm" } ;
245 { "LONG" "bottom" } ;
247 ! C-STRUCT: PAINTSTRUCT
249 ! { "BOOL" "fErase" }
250 ! { "RECT" "rcPaint" }
251 ! { "BOOL" "fRestore" }
252 ! { "BOOL" "fIncUpdate" }
253 ! { "BYTE[32]" "rgbReserved" }
256 C-STRUCT: BITMAPINFOHEADER
259 { "LONG" "biHeight" }
260 { "WORD" "biPlanes" }
261 { "WORD" "biBitCount" }
262 { "DWORD" "biCompression" }
263 { "DWORD" "biSizeImage" }
264 { "LONG" "biXPelsPerMeter" }
265 { "LONG" "biYPelsPerMeter" }
266 { "DWORD" "biClrUsed" }
267 { "DWORD" "biClrImportant" } ;
271 { "BYTE" "rgbGreen" }
273 { "BYTE" "rgbReserved" } ;
276 { "BITMAPINFOHEADER" "bmiHeader" }
277 { "RGBQUAD[1]" "bmiColors" } ;
279 TYPEDEF: void* LPPAINTSTRUCT
280 TYPEDEF: void* PAINTSTRUCT
289 { "WPARAM" "wParam" }
290 { "LPARAM" "lParam" }
296 C-STRUCT: PIXELFORMATDESCRIPTOR
298 { "WORD" "nVersion" }
299 { "DWORD" "dwFlags" }
300 { "BYTE" "iPixelType" }
301 { "BYTE" "cColorBits" }
302 { "BYTE" "cRedBits" }
303 { "BYTE" "cRedShift" }
304 { "BYTE" "cGreenBits" }
305 { "BYTE" "cGreenShift" }
306 { "BYTE" "cBlueBits" }
307 { "BYTE" "cBlueShift" }
308 { "BYTE" "cAlphaBits" }
309 { "BYTE" "cAlphaShift" }
310 { "BYTE" "cAccumBits" }
311 { "BYTE" "cAccumRedBits" }
312 { "BYTE" "cAccumGreenBits" }
313 { "BYTE" "cAccumBlueBits" }
314 { "BYTE" "cAccumAlphaBits" }
315 { "BYTE" "cDepthBits" }
316 { "BYTE" "cStencilBits" }
317 { "BYTE" "cAuxBuffers" }
318 { "BYTE" "iLayerType" }
319 { "BYTE" "bReserved" }
320 { "DWORD" "dwLayerMask" }
321 { "DWORD" "dwVisibleMask" }
322 { "DWORD" "dwDamageMask" } ;
328 { "LONG" "bottom" } ;
331 TYPEDEF: RECT* LPRECT
332 TYPEDEF: PIXELFORMATDESCRIPTOR PFD
334 TYPEDEF: HANDLE HGLRC
342 { "uint" "stateMask" }
343 { "void*" "pszText" }
344 { "int" "cchTextMax" }
349 { "uint" "cColumns" }
350 { "uint*" "puColumns" }
351 { "int*" "piColFmt" }
359 { "uint" "vkDirection" } ;
365 TYPEDEF: ACCEL* LPACCEL