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
43 TYPEDEF: short HALF_PTR
44 TYPEDEF: ushort UHALF_PTR
46 TYPEDEF: uint UINT_PTR
49 TYPEDEF: ulong ULONG_PTR
54 TYPEDEF: ulong ULONG32
55 TYPEDEF: ulonglong ULONG64
56 TYPEDEF: long* POINTER_32
57 TYPEDEF: longlong* POINTER_64
58 TYPEDEF: longlong INT64
59 TYPEDEF: ulonglong UINT64
60 TYPEDEF: longlong LONGLONG
61 TYPEDEF: ulonglong ULONGLONG
62 TYPEDEF: longlong LONG64
63 TYPEDEF: ulonglong DWORD64
64 TYPEDEF: longlong LARGE_INTEGER
65 TYPEDEF: ulonglong ULARGE_INTEGER
66 TYPEDEF: LARGE_INTEGER* PLARGE_INTEGER
67 TYPEDEF: ULARGE_INTEGER* PULARGE_INTEGER
69 TYPEDEF: wchar_t* LPCSTR
70 TYPEDEF: wchar_t* LPWSTR
78 TYPEDEF: DWORD COLORREF
79 TYPEDEF: ULONGLONG DWORDLONG
80 TYPEDEF: ULONG_PTR DWORD_PTR
82 TYPEDEF: HANDLE HACCEL
83 TYPEDEF: HANDLE HBITMAP
84 TYPEDEF: HANDLE HBRUSH
85 TYPEDEF: HANDLE HCOLORSPACE
87 TYPEDEF: HANDLE HCONVLIST
89 TYPEDEF: HICON HCURSOR
91 TYPEDEF: HANDLE HDDEDATA
95 TYPEDEF: HANDLE HENMETAFILE
97 TYPEDEF: HANDLE HGDIOBJ
98 TYPEDEF: HANDLE HGLOBAL
100 TYPEDEF: HANDLE HINSTANCE
103 TYPEDEF: HANDLE HLOCAL
104 TYPEDEF: HANDLE HMENU
105 TYPEDEF: HANDLE HMETAFILE
106 TYPEDEF: HINSTANCE HMODULE
107 TYPEDEF: HANDLE HMONITOR
108 TYPEDEF: HANDLE HPALETTE
110 TYPEDEF: LONG HRESULT
112 TYPEDEF: HANDLE HRSRC
114 TYPEDEF: HANDLE WINSTA ! MS docs say typedef HANDLE WINSTA ;
115 TYPEDEF: HANDLE HWINSTA ! typo??
117 TYPEDEF: HANDLE HCRYPTPROV
120 TYPEDEF: DWORD LCTYPE
121 TYPEDEF: DWORD LGRPID
122 TYPEDEF: LONG_PTR LPARAM
123 TYPEDEF: BOOL* LPBOOL
124 TYPEDEF: BYTE* LPBYTE
125 TYPEDEF: DWORD* LPCOLORREF
126 TYPEDEF: WCHAR* LPCWSTR
127 ! TYPEDEF: WCHAR* LPWSTR
129 TYPEDEF: WCHAR* LPSTR
130 TYPEDEF: wchar_t* LPCTSTR
131 TYPEDEF: wchar_t* LPWTSTR
133 TYPEDEF: wchar_t* LPTSTR
134 TYPEDEF: LPCSTR PCTSTR
137 TYPEDEF: DWORD* LPDWORD
138 TYPEDEF: HANDLE* LPHANDLE
139 TYPEDEF: WORD* LPWORD
140 TYPEDEF: LONG_PTR LRESULT
142 TYPEDEF: BOOLEAN* PBOOLEAN
146 TYPEDEF: WCHAR* PCWSTR
147 TYPEDEF: DWORD* PDWORD
148 TYPEDEF: DWORDLONG* PDWORDLONG
149 TYPEDEF: DWORD_PTR* PDWORD_PTR
150 TYPEDEF: DWORD32* PDWORD32
151 TYPEDEF: DWORD64* PDWORD64
152 TYPEDEF: FLOAT* PFLOAT
153 TYPEDEF: HALF_PTR* PHALF_PTR
154 TYPEDEF: HANDLE* PHANDLE
156 TYPEDEF: INT_PTR* PINT_PTR
157 TYPEDEF: INT32* PINT32
158 TYPEDEF: INT64* PINT64
159 TYPEDEF: PDWORD PLCID
161 TYPEDEF: LONGLONG* PLONGLONG
162 TYPEDEF: LONG_PTR* PLONG_PTR
163 TYPEDEF: LONG32* PLONG32
164 TYPEDEF: LONG64* PLONG64
165 TYPEDEF: SHORT* PSHORT
166 TYPEDEF: SIZE_T* PSIZE_T
167 TYPEDEF: SSIZE_T* PSSIZE_T
169 TYPEDEF: TBYTE* PTBYTE
170 TYPEDEF: TCHAR* PTCHAR
171 TYPEDEF: UCHAR* PUCHAR
172 TYPEDEF: UHALF_PTR* PUHALF_PTR
174 TYPEDEF: UINT_PTR* PUINT_PTR
175 TYPEDEF: UINT32* PUINT32
176 TYPEDEF: UINT64* PUINT64
177 TYPEDEF: ULONG* PULONG
178 TYPEDEF: ULONGLONG* PULONGLONG
179 TYPEDEF: ULONG_PTR* PULONG_PTR
180 TYPEDEF: ULONG32* PULONG32
181 TYPEDEF: ULONG64* PULONG64
182 TYPEDEF: USHORT* PUSHORT
183 TYPEDEF: WCHAR* PWCHAR
185 TYPEDEF: WCHAR* PWSTR
186 TYPEDEF: HANDLE SC_HANDLE
187 TYPEDEF: LPVOID SC_LOCK
188 TYPEDEF: HANDLE SERVICE_STATUS_HANDLE
189 TYPEDEF: ULONG_PTR SIZE_T
190 TYPEDEF: LONG_PTR SSIZE_T
191 TYPEDEF: LONGLONG USN
192 TYPEDEF: UINT_PTR WPARAM
194 TYPEDEF: RECT* LPRECT
195 TYPEDEF: void* PWNDCLASS
196 TYPEDEF: void* PWNDCLASSEX
197 TYPEDEF: void* LPWNDCLASS
198 TYPEDEF: void* LPWNDCLASSEX
199 TYPEDEF: void* MSGBOXPARAMSA
200 TYPEDEF: void* MSGBOXPARAMSW
201 TYPEDEF: void* LPOVERLAPPED_COMPLETION_ROUTINE
203 TYPEDEF: size_t socklen_t
205 TYPEDEF: void* WNDPROC
210 : >BOOLEAN ( ? -- 1/0 ) 1 0 ? ; inline
212 ! typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
216 { "WNDPROC" "lpfnWndProc" }
217 { "int" "cbClsExtra" }
218 { "int" "cbWndExtra" }
219 { "HINSTANCE" "hInstance" }
221 { "HCURSOR" "hCursor" }
222 { "HBRUSH" "hbrBackground" }
223 { "LPCTSTR" "lpszMenuName" }
224 { "LPCTSTR" "lpszClassName" } ;
229 { "WNDPROC" "lpfnWndProc" }
230 { "int" "cbClsExtra" }
231 { "int" "cbWndExtra" }
232 { "HINSTANCE" "hInstance" }
234 { "HCURSOR" "hCursor" }
235 { "HBRUSH" "hbrBackground" }
236 { "LPCTSTR" "lpszMenuName" }
237 { "LPCTSTR" "lpszClassName" }
238 { "HICON" "hIconSm" } ;
244 { "LONG" "bottom" } ;
246 ! C-STRUCT: PAINTSTRUCT
248 ! { "BOOL" "fErase" }
249 ! { "RECT" "rcPaint" }
250 ! { "BOOL" "fRestore" }
251 ! { "BOOL" "fIncUpdate" }
252 ! { "BYTE[32]" "rgbReserved" }
255 TYPEDEF: void* LPPAINTSTRUCT
256 TYPEDEF: void* PAINTSTRUCT
265 { "WPARAM" "wParam" }
266 { "LPARAM" "lParam" }
272 C-STRUCT: PIXELFORMATDESCRIPTOR
274 { "WORD" "nVersion" }
275 { "DWORD" "dwFlags" }
276 { "BYTE" "iPixelType" }
277 { "BYTE" "cColorBits" }
278 { "BYTE" "cRedBits" }
279 { "BYTE" "cRedShift" }
280 { "BYTE" "cGreenBits" }
281 { "BYTE" "cGreenShift" }
282 { "BYTE" "cBlueBits" }
283 { "BYTE" "cBlueShift" }
284 { "BYTE" "cAlphaBits" }
285 { "BYTE" "cAlphaShift" }
286 { "BYTE" "cAccumBits" }
287 { "BYTE" "cAccumRedBits" }
288 { "BYTE" "cAccumGreenBits" }
289 { "BYTE" "cAccumBlueBits" }
290 { "BYTE" "cAccumAlphaBits" }
291 { "BYTE" "cDepthBits" }
292 { "BYTE" "cStencilBits" }
293 { "BYTE" "cAuxBuffers" }
294 { "BYTE" "iLayerType" }
295 { "BYTE" "bReserved" }
296 { "DWORD" "dwLayerMask" }
297 { "DWORD" "dwVisibleMask" }
298 { "DWORD" "dwDamageMask" } ;
304 { "LONG" "bottom" } ;
307 TYPEDEF: RECT* LPRECT
308 TYPEDEF: PIXELFORMATDESCRIPTOR PFD
310 TYPEDEF: HANDLE HGLRC
318 { "uint" "stateMask" }
319 { "void*" "pszText" }
320 { "int" "cchTextMax" }
325 { "uint" "cColumns" }
326 { "uint*" "puColumns" }
327 { "int*" "piColFmt" }
335 { "uint" "vkDirection" } ;
341 TYPEDEF: ACCEL* LPACCEL