]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/user32/user32.factor
Merge branch 'master' of git://github.com/erikcharlebois/factor
[factor.git] / basis / windows / user32 / user32.factor
1 ! Copyright (C) 2005, 2006 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien alien.c-types alien.syntax parser namespaces
4 kernel math windows.types generalizations math.bitwise
5 classes.struct literals windows.kernel32 system accessors ;
6 IN: windows.user32
7
8 ! HKL for ActivateKeyboardLayout
9 CONSTANT: HKL_PREV 0
10 CONSTANT: HKL_NEXT 1
11
12 CONSTANT: CW_USEDEFAULT HEX: 80000000
13
14 CONSTANT: WS_OVERLAPPED       HEX: 00000000
15 CONSTANT: WS_POPUP            HEX: 80000000
16 CONSTANT: WS_CHILD            HEX: 40000000
17 CONSTANT: WS_MINIMIZE         HEX: 20000000
18 CONSTANT: WS_VISIBLE          HEX: 10000000
19 CONSTANT: WS_DISABLED         HEX: 08000000
20 CONSTANT: WS_CLIPSIBLINGS     HEX: 04000000
21 CONSTANT: WS_CLIPCHILDREN     HEX: 02000000
22 CONSTANT: WS_MAXIMIZE         HEX: 01000000
23 CONSTANT: WS_CAPTION          HEX: 00C00000
24 CONSTANT: WS_BORDER           HEX: 00800000
25 CONSTANT: WS_DLGFRAME         HEX: 00400000
26 CONSTANT: WS_VSCROLL          HEX: 00200000
27 CONSTANT: WS_HSCROLL          HEX: 00100000
28 CONSTANT: WS_SYSMENU          HEX: 00080000
29 CONSTANT: WS_THICKFRAME       HEX: 00040000
30 CONSTANT: WS_GROUP            HEX: 00020000
31 CONSTANT: WS_TABSTOP          HEX: 00010000
32 CONSTANT: WS_MINIMIZEBOX      HEX: 00020000
33 CONSTANT: WS_MAXIMIZEBOX      HEX: 00010000
34
35 ! Common window styles
36 : WS_OVERLAPPEDWINDOW ( -- n )
37     {
38         WS_OVERLAPPED
39         WS_CAPTION
40         WS_SYSMENU
41         WS_THICKFRAME
42         WS_MINIMIZEBOX
43         WS_MAXIMIZEBOX
44     } flags ; foldable
45
46 : WS_POPUPWINDOW ( -- n )
47     { WS_POPUP WS_BORDER WS_SYSMENU } flags ; foldable
48
49 ALIAS: WS_CHILDWINDOW      WS_CHILD
50
51 ALIAS: WS_TILED            WS_OVERLAPPED
52 ALIAS: WS_ICONIC           WS_MINIMIZE
53 ALIAS: WS_SIZEBOX          WS_THICKFRAME
54 ALIAS: WS_TILEDWINDOW WS_OVERLAPPEDWINDOW
55
56 ! Extended window styles
57
58 CONSTANT: WS_EX_DLGMODALFRAME     HEX: 00000001
59 CONSTANT: WS_EX_NOPARENTNOTIFY    HEX: 00000004
60 CONSTANT: WS_EX_TOPMOST           HEX: 00000008
61 CONSTANT: WS_EX_ACCEPTFILES       HEX: 00000010
62 CONSTANT: WS_EX_TRANSPARENT       HEX: 00000020
63 CONSTANT: WS_EX_MDICHILD          HEX: 00000040
64 CONSTANT: WS_EX_TOOLWINDOW        HEX: 00000080
65 CONSTANT: WS_EX_WINDOWEDGE        HEX: 00000100
66 CONSTANT: WS_EX_CLIENTEDGE        HEX: 00000200
67 CONSTANT: WS_EX_CONTEXTHELP       HEX: 00000400
68
69 CONSTANT: WS_EX_RIGHT             HEX: 00001000
70 CONSTANT: WS_EX_LEFT              HEX: 00000000
71 CONSTANT: WS_EX_RTLREADING        HEX: 00002000
72 CONSTANT: WS_EX_LTRREADING        HEX: 00000000
73 CONSTANT: WS_EX_LEFTSCROLLBAR     HEX: 00004000
74 CONSTANT: WS_EX_RIGHTSCROLLBAR    HEX: 00000000
75 CONSTANT: WS_EX_CONTROLPARENT     HEX: 00010000
76 CONSTANT: WS_EX_STATICEDGE        HEX: 00020000
77 CONSTANT: WS_EX_APPWINDOW         HEX: 00040000
78
79 : WS_EX_OVERLAPPEDWINDOW ( -- n )
80     WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE bitor ; foldable
81
82 : WS_EX_PALETTEWINDOW ( -- n )
83     { WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW WS_EX_TOPMOST } flags ; foldable
84
85 CONSTANT: CS_VREDRAW          HEX: 0001
86 CONSTANT: CS_HREDRAW          HEX: 0002
87 CONSTANT: CS_DBLCLKS          HEX: 0008
88 CONSTANT: CS_OWNDC            HEX: 0020
89 CONSTANT: CS_CLASSDC          HEX: 0040
90 CONSTANT: CS_PARENTDC         HEX: 0080
91 CONSTANT: CS_NOCLOSE          HEX: 0200
92 CONSTANT: CS_SAVEBITS         HEX: 0800
93 CONSTANT: CS_BYTEALIGNCLIENT  HEX: 1000
94 CONSTANT: CS_BYTEALIGNWINDOW  HEX: 2000
95 CONSTANT: CS_GLOBALCLASS      HEX: 4000
96
97 CONSTANT: COLOR_SCROLLBAR         0
98 CONSTANT: COLOR_BACKGROUND        1
99 CONSTANT: COLOR_ACTIVECAPTION     2
100 CONSTANT: COLOR_INACTIVECAPTION   3
101 CONSTANT: COLOR_MENU              4
102 CONSTANT: COLOR_WINDOW            5
103 CONSTANT: COLOR_WINDOWFRAME       6
104 CONSTANT: COLOR_MENUTEXT          7
105 CONSTANT: COLOR_WINDOWTEXT        8
106 CONSTANT: COLOR_CAPTIONTEXT       9
107 CONSTANT: COLOR_ACTIVEBORDER      10
108 CONSTANT: COLOR_INACTIVEBORDER    11
109 CONSTANT: COLOR_APPWORKSPACE      12
110 CONSTANT: COLOR_HIGHLIGHT         13
111 CONSTANT: COLOR_HIGHLIGHTTEXT     14
112 CONSTANT: COLOR_BTNFACE           15
113 CONSTANT: COLOR_BTNSHADOW         16
114 CONSTANT: COLOR_GRAYTEXT          17
115 CONSTANT: COLOR_BTNTEXT           18
116 CONSTANT: COLOR_INACTIVECAPTIONTEXT 19
117 CONSTANT: COLOR_BTNHIGHLIGHT      20
118
119 CONSTANT: IDI_APPLICATION     32512
120 CONSTANT: IDI_HAND            32513
121 CONSTANT: IDI_QUESTION        32514
122 CONSTANT: IDI_EXCLAMATION     32515
123 CONSTANT: IDI_ASTERISK        32516
124 CONSTANT: IDI_WINLOGO         32517
125
126 ! ShowWindow() Commands
127 CONSTANT: SW_HIDE             0
128 CONSTANT: SW_SHOWNORMAL       1
129 CONSTANT: SW_NORMAL           1
130 CONSTANT: SW_SHOWMINIMIZED    2
131 CONSTANT: SW_SHOWMAXIMIZED    3
132 CONSTANT: SW_MAXIMIZE         3
133 CONSTANT: SW_SHOWNOACTIVATE   4
134 CONSTANT: SW_SHOW             5
135 CONSTANT: SW_MINIMIZE         6
136 CONSTANT: SW_SHOWMINNOACTIVE  7
137 CONSTANT: SW_SHOWNA           8
138 CONSTANT: SW_RESTORE          9
139 CONSTANT: SW_SHOWDEFAULT      10
140 CONSTANT: SW_FORCEMINIMIZE    11
141 CONSTANT: SW_MAX              11
142
143 ! PeekMessage
144 CONSTANT: PM_NOREMOVE   0
145 CONSTANT: PM_REMOVE     1
146 CONSTANT: PM_NOYIELD    2
147 ! : PM_QS_INPUT         (QS_INPUT << 16) ;
148 ! : PM_QS_POSTMESSAGE   ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16) ;
149 ! : PM_QS_PAINT         (QS_PAINT << 16) ;
150 ! : PM_QS_SENDMESSAGE   (QS_SENDMESSAGE << 16) ;
151
152
153
154 ! Standard Cursor IDs
155 !
156 CONSTANT: IDC_ARROW           32512
157 CONSTANT: IDC_IBEAM           32513
158 CONSTANT: IDC_WAIT            32514
159 CONSTANT: IDC_CROSS           32515
160 CONSTANT: IDC_UPARROW         32516
161 CONSTANT: IDC_SIZE            32640 ! OBSOLETE: use IDC_SIZEALL
162 CONSTANT: IDC_ICON            32641 ! OBSOLETE: use IDC_ARROW
163 CONSTANT: IDC_SIZENWSE        32642
164 CONSTANT: IDC_SIZENESW        32643
165 CONSTANT: IDC_SIZEWE          32644
166 CONSTANT: IDC_SIZENS          32645
167 CONSTANT: IDC_SIZEALL         32646
168 CONSTANT: IDC_NO              32648 ! not in win3.1
169 CONSTANT: IDC_HAND            32649
170 CONSTANT: IDC_APPSTARTING     32650 ! not in win3.1
171 CONSTANT: IDC_HELP            32651
172
173 ! Predefined Clipboard Formats
174 CONSTANT: CF_TEXT             1
175 CONSTANT: CF_BITMAP           2
176 CONSTANT: CF_METAFILEPICT     3
177 CONSTANT: CF_SYLK             4
178 CONSTANT: CF_DIF              5
179 CONSTANT: CF_TIFF             6
180 CONSTANT: CF_OEMTEXT          7
181 CONSTANT: CF_DIB              8
182 CONSTANT: CF_PALETTE          9
183 CONSTANT: CF_PENDATA          10
184 CONSTANT: CF_RIFF             11
185 CONSTANT: CF_WAVE             12
186 CONSTANT: CF_UNICODETEXT      13
187 CONSTANT: CF_ENHMETAFILE      14
188 CONSTANT: CF_HDROP            15
189 CONSTANT: CF_LOCALE           16
190 CONSTANT: CF_DIBV5            17
191 CONSTANT: CF_MAX              18
192
193 CONSTANT: CF_OWNERDISPLAY HEX: 0080
194 CONSTANT: CF_DSPTEXT HEX: 0081
195 CONSTANT: CF_DSPBITMAP HEX: 0082
196 CONSTANT: CF_DSPMETAFILEPICT HEX: 0083
197 CONSTANT: CF_DSPENHMETAFILE HEX: 008E
198
199 ! "Private" formats don't get GlobalFree()'d
200 CONSTANT: CF_PRIVATEFIRST HEX: 200
201 CONSTANT: CF_PRIVATELAST HEX: 2FF
202
203 ! "GDIOBJ" formats do get DeleteObject()'d
204 CONSTANT: CF_GDIOBJFIRST HEX: 300
205 CONSTANT: CF_GDIOBJLAST HEX: 3FF
206
207 ! Virtual Keys, Standard Set
208 CONSTANT: VK_LBUTTON        HEX: 01
209 CONSTANT: VK_RBUTTON        HEX: 02
210 CONSTANT: VK_CANCEL         HEX: 03
211 CONSTANT: VK_MBUTTON        HEX: 04  ! NOT contiguous with L & RBUTTON
212 CONSTANT: VK_XBUTTON1       HEX: 05  ! NOT contiguous with L & RBUTTON
213 CONSTANT: VK_XBUTTON2       HEX: 06  ! NOT contiguous with L & RBUTTON
214 ! 0x07 : unassigned
215 CONSTANT: VK_BACK           HEX: 08
216 CONSTANT: VK_TAB            HEX: 09
217 ! 0x0A - 0x0B : reserved
218
219 CONSTANT: VK_CLEAR          HEX: 0C
220 CONSTANT: VK_RETURN         HEX: 0D
221
222 CONSTANT: VK_SHIFT          HEX: 10
223 CONSTANT: VK_CONTROL        HEX: 11
224 CONSTANT: VK_MENU           HEX: 12
225 CONSTANT: VK_PAUSE          HEX: 13
226 CONSTANT: VK_CAPITAL        HEX: 14
227
228 CONSTANT: VK_KANA           HEX: 15
229 CONSTANT: VK_HANGEUL        HEX: 15 ! old name - here for compatibility
230 CONSTANT: VK_HANGUL         HEX: 15
231 CONSTANT: VK_JUNJA          HEX: 17
232 CONSTANT: VK_FINAL          HEX: 18
233 CONSTANT: VK_HANJA          HEX: 19
234 CONSTANT: VK_KANJI          HEX: 19
235
236 CONSTANT: VK_ESCAPE         HEX: 1B
237
238 CONSTANT: VK_CONVERT        HEX: 1C
239 CONSTANT: VK_NONCONVERT     HEX: 1D
240 CONSTANT: VK_ACCEPT         HEX: 1E
241 CONSTANT: VK_MODECHANGE     HEX: 1F
242
243 CONSTANT: VK_SPACE          HEX: 20
244 CONSTANT: VK_PRIOR          HEX: 21
245 CONSTANT: VK_NEXT           HEX: 22
246 CONSTANT: VK_END            HEX: 23
247 CONSTANT: VK_HOME           HEX: 24
248 CONSTANT: VK_LEFT           HEX: 25
249 CONSTANT: VK_UP             HEX: 26
250 CONSTANT: VK_RIGHT          HEX: 27
251 CONSTANT: VK_DOWN           HEX: 28
252 CONSTANT: VK_SELECT         HEX: 29
253 CONSTANT: VK_PRINT          HEX: 2A
254 CONSTANT: VK_EXECUTE        HEX: 2B
255 CONSTANT: VK_SNAPSHOT       HEX: 2C
256 CONSTANT: VK_INSERT         HEX: 2D
257 CONSTANT: VK_DELETE         HEX: 2E
258 CONSTANT: VK_HELP           HEX: 2F
259
260 CONSTANT: VK_0 CHAR: 0
261 CONSTANT: VK_1 CHAR: 1
262 CONSTANT: VK_2 CHAR: 2
263 CONSTANT: VK_3 CHAR: 3
264 CONSTANT: VK_4 CHAR: 4
265 CONSTANT: VK_5 CHAR: 5
266 CONSTANT: VK_6 CHAR: 6
267 CONSTANT: VK_7 CHAR: 7
268 CONSTANT: VK_8 CHAR: 8
269 CONSTANT: VK_9 CHAR: 9
270
271 CONSTANT: VK_A CHAR: A
272 CONSTANT: VK_B CHAR: B
273 CONSTANT: VK_C CHAR: C
274 CONSTANT: VK_D CHAR: D
275 CONSTANT: VK_E CHAR: E
276 CONSTANT: VK_F CHAR: F
277 CONSTANT: VK_G CHAR: G
278 CONSTANT: VK_H CHAR: H
279 CONSTANT: VK_I CHAR: I
280 CONSTANT: VK_J CHAR: J
281 CONSTANT: VK_K CHAR: K
282 CONSTANT: VK_L CHAR: L
283 CONSTANT: VK_M CHAR: M
284 CONSTANT: VK_N CHAR: N
285 CONSTANT: VK_O CHAR: O
286 CONSTANT: VK_P CHAR: P
287 CONSTANT: VK_Q CHAR: Q
288 CONSTANT: VK_R CHAR: R
289 CONSTANT: VK_S CHAR: S
290 CONSTANT: VK_T CHAR: T
291 CONSTANT: VK_U CHAR: U
292 CONSTANT: VK_V CHAR: V
293 CONSTANT: VK_W CHAR: W
294 CONSTANT: VK_X CHAR: X
295 CONSTANT: VK_Y CHAR: Y
296 CONSTANT: VK_Z CHAR: Z
297
298 CONSTANT: VK_LWIN           HEX: 5B
299 CONSTANT: VK_RWIN           HEX: 5C
300 CONSTANT: VK_APPS           HEX: 5D
301
302 ! 0x5E : reserved
303
304 CONSTANT: VK_SLEEP          HEX: 5F
305
306 CONSTANT: VK_NUMPAD0        HEX: 60
307 CONSTANT: VK_NUMPAD1        HEX: 61
308 CONSTANT: VK_NUMPAD2        HEX: 62
309 CONSTANT: VK_NUMPAD3        HEX: 63
310 CONSTANT: VK_NUMPAD4        HEX: 64
311 CONSTANT: VK_NUMPAD5        HEX: 65
312 CONSTANT: VK_NUMPAD6        HEX: 66
313 CONSTANT: VK_NUMPAD7        HEX: 67
314 CONSTANT: VK_NUMPAD8        HEX: 68
315 CONSTANT: VK_NUMPAD9        HEX: 69
316 CONSTANT: VK_MULTIPLY       HEX: 6A
317 CONSTANT: VK_ADD            HEX: 6B
318 CONSTANT: VK_SEPARATOR      HEX: 6C
319 CONSTANT: VK_SUBTRACT       HEX: 6D
320 CONSTANT: VK_DECIMAL        HEX: 6E
321 CONSTANT: VK_DIVIDE         HEX: 6F
322 CONSTANT: VK_F1             HEX: 70
323 CONSTANT: VK_F2             HEX: 71
324 CONSTANT: VK_F3             HEX: 72
325 CONSTANT: VK_F4             HEX: 73
326 CONSTANT: VK_F5             HEX: 74
327 CONSTANT: VK_F6             HEX: 75
328 CONSTANT: VK_F7             HEX: 76
329 CONSTANT: VK_F8             HEX: 77
330 CONSTANT: VK_F9             HEX: 78
331 CONSTANT: VK_F10            HEX: 79
332 CONSTANT: VK_F11            HEX: 7A
333 CONSTANT: VK_F12            HEX: 7B
334 CONSTANT: VK_F13            HEX: 7C
335 CONSTANT: VK_F14            HEX: 7D
336 CONSTANT: VK_F15            HEX: 7E
337 CONSTANT: VK_F16            HEX: 7F
338 CONSTANT: VK_F17            HEX: 80
339 CONSTANT: VK_F18            HEX: 81
340 CONSTANT: VK_F19            HEX: 82
341 CONSTANT: VK_F20            HEX: 83
342 CONSTANT: VK_F21            HEX: 84
343 CONSTANT: VK_F22            HEX: 85
344 CONSTANT: VK_F23            HEX: 86
345 CONSTANT: VK_F24            HEX: 87
346
347 ! 0x88 - 0x8F : unassigned
348
349 CONSTANT: VK_NUMLOCK        HEX: 90
350 CONSTANT: VK_SCROLL         HEX: 91
351
352 ! NEC PC-9800 kbd definitions
353 CONSTANT: VK_OEM_NEC_EQUAL  HEX: 92  ! '=' key on numpad
354
355 ! Fujitsu/OASYS kbd definitions
356 CONSTANT: VK_OEM_FJ_JISHO   HEX: 92  ! 'Dictionary' key
357 CONSTANT: VK_OEM_FJ_MASSHOU HEX: 93  ! 'Unregister word' key
358 CONSTANT: VK_OEM_FJ_TOUROKU HEX: 94  ! 'Register word' key
359 CONSTANT: VK_OEM_FJ_LOYA    HEX: 95  ! 'Left OYAYUBI' key
360 CONSTANT: VK_OEM_FJ_ROYA    HEX: 96  ! 'Right OYAYUBI' key
361
362 ! 0x97 - 0x9F : unassigned
363
364 ! VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
365 ! Used only as parameters to GetAsyncKeyState() and GetKeyState().
366 ! No other API or message will distinguish left and right keys in this way.
367 CONSTANT: VK_LSHIFT         HEX: A0
368 CONSTANT: VK_RSHIFT         HEX: A1
369 CONSTANT: VK_LCONTROL       HEX: A2
370 CONSTANT: VK_RCONTROL       HEX: A3
371 CONSTANT: VK_LMENU          HEX: A4
372 CONSTANT: VK_RMENU          HEX: A5
373
374 CONSTANT: VK_BROWSER_BACK        HEX: A6
375 CONSTANT: VK_BROWSER_FORWARD     HEX: A7
376 CONSTANT: VK_BROWSER_REFRESH     HEX: A8
377 CONSTANT: VK_BROWSER_STOP        HEX: A9
378 CONSTANT: VK_BROWSER_SEARCH      HEX: AA
379 CONSTANT: VK_BROWSER_FAVORITES   HEX: AB
380 CONSTANT: VK_BROWSER_HOME        HEX: AC
381
382 CONSTANT: VK_VOLUME_MUTE         HEX: AD
383 CONSTANT: VK_VOLUME_DOWN         HEX: AE
384 CONSTANT: VK_VOLUME_UP           HEX: AF
385 CONSTANT: VK_MEDIA_NEXT_TRACK    HEX: B0
386 CONSTANT: VK_MEDIA_PREV_TRACK    HEX: B1
387 CONSTANT: VK_MEDIA_STOP          HEX: B2
388 CONSTANT: VK_MEDIA_PLAY_PAUSE    HEX: B3
389 CONSTANT: VK_LAUNCH_MAIL         HEX: B4
390 CONSTANT: VK_LAUNCH_MEDIA_SELECT HEX: B5
391 CONSTANT: VK_LAUNCH_APP1         HEX: B6
392 CONSTANT: VK_LAUNCH_APP2         HEX: B7
393
394 ! 0xB8 - 0xB9 : reserved
395
396 CONSTANT: VK_OEM_1          HEX: BA  ! ';:' for US
397 CONSTANT: VK_OEM_PLUS       HEX: BB  ! '+' any country
398 CONSTANT: VK_OEM_COMMA      HEX: BC  ! ',' any country
399 CONSTANT: VK_OEM_MINUS      HEX: BD  ! '-' any country
400 CONSTANT: VK_OEM_PERIOD     HEX: BE  ! '.' any country
401 CONSTANT: VK_OEM_2          HEX: BF  ! '/?' for US
402 CONSTANT: VK_OEM_3          HEX: C0  ! '`~' for US
403
404 ! 0xC1 - 0xD7 : reserved
405
406 ! 0xD8 - 0xDA : unassigned
407
408 CONSTANT: VK_OEM_4          HEX: DB !  '[{' for US
409 CONSTANT: VK_OEM_5          HEX: DC !  '\|' for US
410 CONSTANT: VK_OEM_6          HEX: DD !  ']}' for US
411 CONSTANT: VK_OEM_7          HEX: DE !  ''"' for US
412 CONSTANT: VK_OEM_8          HEX: DF
413
414 ! 0xE0 : reserved
415
416 ! Various extended or enhanced keyboards
417 CONSTANT: VK_OEM_AX         HEX: E1 !  'AX' key on Japanese AX kbd
418 CONSTANT: VK_OEM_102        HEX: E2 !  "<>" or "\|" on RT 102-key kbd.
419 CONSTANT: VK_ICO_HELP       HEX: E3 !  Help key on ICO
420 CONSTANT: VK_ICO_00         HEX: E4 !  00 key on ICO
421
422 CONSTANT: VK_PROCESSKEY     HEX: E5
423
424 CONSTANT: VK_ICO_CLEAR      HEX: E6
425
426 CONSTANT: VK_PACKET         HEX: E7
427
428 ! 0xE8 : unassigned
429
430 ! Nokia/Ericsson definitions
431 CONSTANT: VK_OEM_RESET      HEX: E9
432 CONSTANT: VK_OEM_JUMP       HEX: EA
433 CONSTANT: VK_OEM_PA1        HEX: EB
434 CONSTANT: VK_OEM_PA2        HEX: EC
435 CONSTANT: VK_OEM_PA3        HEX: ED
436 CONSTANT: VK_OEM_WSCTRL     HEX: EE
437 CONSTANT: VK_OEM_CUSEL      HEX: EF
438 CONSTANT: VK_OEM_ATTN       HEX: F0
439 CONSTANT: VK_OEM_FINISH     HEX: F1
440 CONSTANT: VK_OEM_COPY       HEX: F2
441 CONSTANT: VK_OEM_AUTO       HEX: F3
442 CONSTANT: VK_OEM_ENLW       HEX: F4
443 CONSTANT: VK_OEM_BACKTAB    HEX: F5
444
445 CONSTANT: VK_ATTN           HEX: F6
446 CONSTANT: VK_CRSEL          HEX: F7
447 CONSTANT: VK_EXSEL          HEX: F8
448 CONSTANT: VK_EREOF          HEX: F9
449 CONSTANT: VK_PLAY           HEX: FA
450 CONSTANT: VK_ZOOM           HEX: FB
451 CONSTANT: VK_NONAME         HEX: FC
452 CONSTANT: VK_PA1            HEX: FD
453 CONSTANT: VK_OEM_CLEAR      HEX: FE
454 ! 0xFF : reserved
455
456 ! Key State Masks for Mouse Messages
457 CONSTANT: MK_LBUTTON          HEX: 0001
458 CONSTANT: MK_RBUTTON          HEX: 0002
459 CONSTANT: MK_SHIFT            HEX: 0004
460 CONSTANT: MK_CONTROL          HEX: 0008
461 CONSTANT: MK_MBUTTON          HEX: 0010
462 CONSTANT: MK_XBUTTON1         HEX: 0020
463 CONSTANT: MK_XBUTTON2         HEX: 0040
464
465 ! Some fields are not defined for win64
466 ! Window field offsets for GetWindowLong()
467 CONSTANT: GWL_WNDPROC         -4
468 CONSTANT: GWL_HINSTANCE       -6
469 CONSTANT: GWL_HWNDPARENT      -8
470 CONSTANT: GWL_USERDATA        -21
471 CONSTANT: GWL_ID              -12
472
473 CONSTANT: GWL_STYLE           -16
474 CONSTANT: GWL_EXSTYLE         -20
475
476 CONSTANT: GWLP_WNDPROC        -4
477 CONSTANT: GWLP_HINSTANCE      -6
478 CONSTANT: GWLP_HWNDPARENT     -8
479 CONSTANT: GWLP_USERDATA       -21
480 CONSTANT: GWLP_ID             -12
481
482 ! Class field offsets for GetClassLong()
483 CONSTANT: GCL_MENUNAME        -8
484 CONSTANT: GCL_HBRBACKGROUND   -10
485 CONSTANT: GCL_HCURSOR         -12
486 CONSTANT: GCL_HICON           -14
487 CONSTANT: GCL_HMODULE         -16
488 CONSTANT: GCL_WNDPROC         -24
489 CONSTANT: GCL_HICONSM         -34
490 CONSTANT: GCL_CBWNDEXTRA      -18
491 CONSTANT: GCL_CBCLSEXTRA      -20
492 CONSTANT: GCL_STYLE           -26
493 CONSTANT: GCW_ATOM            -32
494
495 CONSTANT: GCLP_MENUNAME       -8
496 CONSTANT: GCLP_HBRBACKGROUND  -10
497 CONSTANT: GCLP_HCURSOR        -12
498 CONSTANT: GCLP_HICON          -14
499 CONSTANT: GCLP_HMODULE        -16
500 CONSTANT: GCLP_WNDPROC        -24
501 CONSTANT: GCLP_HICONSM        -34
502
503 CONSTANT: MB_ICONASTERISK    HEX: 00000040
504 CONSTANT: MB_ICONEXCLAMATION HEX: 00000030
505 CONSTANT: MB_ICONHAND        HEX: 00000010
506 CONSTANT: MB_ICONQUESTION    HEX: 00000020
507 CONSTANT: MB_OK              HEX: 00000000
508
509 ALIAS: FVIRTKEY TRUE
510 CONSTANT: FNOINVERT 2
511 CONSTANT: FSHIFT 4
512 CONSTANT: FCONTROL 8
513 CONSTANT: FALT 16
514
515 CONSTANT: MAPVK_VK_TO_VSC 0
516 CONSTANT: MAPVK_VSC_TO_VK 1
517 CONSTANT: MAPVK_VK_TO_CHAR 2
518 CONSTANT: MAPVK_VSC_TO_VK_EX 3
519 CONSTANT: MAPVK_VK_TO_VSC_EX 3
520
521 CONSTANT: TME_HOVER 1
522 CONSTANT: TME_LEAVE 2
523 CONSTANT: TME_NONCLIENT 16
524 CONSTANT: TME_QUERY HEX: 40000000
525 CONSTANT: TME_CANCEL HEX: 80000000
526 CONSTANT: HOVER_DEFAULT HEX: ffffffff
527 STRUCT: TRACKMOUSEEVENT
528     { cbSize DWORD }
529     { dwFlags DWORD }
530     { hwndTrack HWND }
531     { dwHoverTime DWORD } ;
532 TYPEDEF: TRACKMOUSEEVENT* LPTRACKMOUSEEVENT
533
534 CONSTANT: DBT_DEVICEARRIVAL HEX: 8000
535 CONSTANT: DBT_DEVICEREMOVECOMPLETE HEX: 8004
536
537 CONSTANT: DBT_DEVTYP_DEVICEINTERFACE 5
538
539 CONSTANT: DEVICE_NOTIFY_WINDOW_HANDLE 0
540 CONSTANT: DEVICE_NOTIFY_SERVICE_HANDLE 1
541
542 CONSTANT: DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 4
543
544 STRUCT: DEV_BROADCAST_HDR
545     { dbch_size DWORD }
546     { dbch_devicetype DWORD }
547     { dbch_reserved DWORD } ;
548
549 STRUCT: DEV_BROADCAST_DEVICEW
550     { dbcc_size DWORD }
551     { dbcc_devicetype DWORD }
552     { dbcc_reserved DWORD }
553     { dbcc_classguid GUID }
554     { dbcc_name WCHAR[1] } ;
555
556 CONSTANT: CCHDEVICENAME 32
557
558 STRUCT: MONITORINFOEX
559     { cbSize DWORD }
560     { rcMonitor RECT }
561     { rcWork RECT }
562     { dwFlags DWORD }
563     { szDevice { TCHAR CCHDEVICENAME } } ;
564
565 TYPEDEF: MONITORINFOEX* LPMONITORINFOEX
566 TYPEDEF: MONITORINFOEX* LPMONITORINFO
567
568 CONSTANT: MONITOR_DEFAULTTONULL 0
569 CONSTANT: MONITOR_DEFAULTTOPRIMARY 1
570 CONSTANT: MONITOR_DEFAULTTONEAREST 2
571 CONSTANT: MONITORINFOF_PRIMARY 1
572 CONSTANT: SWP_NOSIZE 1
573 CONSTANT: SWP_NOMOVE 2
574 CONSTANT: SWP_NOZORDER 4
575 CONSTANT: SWP_NOREDRAW 8
576 CONSTANT: SWP_NOACTIVATE 16
577 CONSTANT: SWP_FRAMECHANGED 32
578 CONSTANT: SWP_SHOWWINDOW 64
579 CONSTANT: SWP_HIDEWINDOW 128
580 CONSTANT: SWP_NOCOPYBITS 256
581 CONSTANT: SWP_NOOWNERZORDER 512
582 CONSTANT: SWP_NOSENDCHANGING 1024
583 CONSTANT: SWP_DRAWFRAME SWP_FRAMECHANGED
584 CONSTANT: SWP_NOREPOSITION SWP_NOOWNERZORDER
585 CONSTANT: SWP_DEFERERASE 8192
586 CONSTANT: SWP_ASYNCWINDOWPOS 16384
587
588 CONSTANT: MF_ENABLED         HEX: 0000
589 CONSTANT: MF_GRAYED          HEX: 0001
590 CONSTANT: MF_DISABLED        HEX: 0002
591 CONSTANT: MF_STRING          HEX: 0000
592 CONSTANT: MF_BITMAP          HEX: 0004
593 CONSTANT: MF_UNCHECKED       HEX: 0000
594 CONSTANT: MF_CHECKED         HEX: 0008
595 CONSTANT: MF_POPUP           HEX: 0010
596 CONSTANT: MF_MENUBARBREAK    HEX: 0020
597 CONSTANT: MF_MENUBREAK       HEX: 0040
598 CONSTANT: MF_UNHILITE        HEX: 0000
599 CONSTANT: MF_HILITE          HEX: 0080
600 CONSTANT: MF_OWNERDRAW       HEX: 0100
601 CONSTANT: MF_USECHECKBITMAPS HEX: 0200
602 CONSTANT: MF_BYCOMMAND       HEX: 0000
603 CONSTANT: MF_BYPOSITION      HEX: 0400
604 CONSTANT: MF_SEPARATOR       HEX: 0800
605 CONSTANT: MF_DEFAULT         HEX: 1000
606 CONSTANT: MF_SYSMENU         HEX: 2000
607 CONSTANT: MF_HELP            HEX: 4000
608 CONSTANT: MF_RIGHTJUSTIFY    HEX: 4000
609 CONSTANT: MF_MOUSESELECT     HEX: 8000
610
611 TYPEDEF: HANDLE HRAWINPUT
612 : GET_RAWINPUT_CODE_WPARAM ( wParam -- n ) HEX: ff bitand ; inline
613
614 CONSTANT: RIM_INPUT        0
615 CONSTANT: RIM_INPUTSINK    1
616
617 CONSTANT: RIM_TYPEMOUSE    0
618 CONSTANT: RIM_TYPEKEYBOARD 1
619 CONSTANT: RIM_TYPEHID      2
620
621 STRUCT: RAWINPUTHEADER
622     { dwType  DWORD  }
623     { dwSize  DWORD  }
624     { hDevice HANDLE }
625     { wParam  WPARAM } ;
626 TYPEDEF: RAWINPUTHEADER* PRAWINPUTHEADER
627 TYPEDEF: RAWINPUTHEADER* LPRAWINPUTHEADER
628 STRUCT: RAWMOUSE_BUTTONS_USBUTTONS
629     { usButtonFlags USHORT }
630     { usButtonData  USHORT } ;
631
632 UNION-STRUCT: RAWMOUSE_BUTTONS
633     { ulButtons ULONG                      }
634     { usButtons RAWMOUSE_BUTTONS_USBUTTONS } ;
635 STRUCT: RAWMOUSE
636     { usFlags            USHORT            }
637     { uButtons           RAWMOUSE_BUTTONS  }
638     { ulRawButtons       ULONG             }
639     { lLastX             LONG              }
640     { lLastY             LONG              }
641     { ulExtraInformation ULONG             } ;
642 TYPEDEF: RAWMOUSE* PRAWMOUSE
643 TYPEDEF: RAWMOUSE* LPRAWMOUSE
644
645 CONSTANT: RI_MOUSE_LEFT_BUTTON_DOWN   HEX: 0001
646 CONSTANT: RI_MOUSE_LEFT_BUTTON_UP     HEX: 0002
647 CONSTANT: RI_MOUSE_RIGHT_BUTTON_DOWN  HEX: 0004
648 CONSTANT: RI_MOUSE_RIGHT_BUTTON_UP    HEX: 0008
649 CONSTANT: RI_MOUSE_MIDDLE_BUTTON_DOWN HEX: 0010
650 CONSTANT: RI_MOUSE_MIDDLE_BUTTON_UP   HEX: 0020
651
652 : RI_MOUSE_BUTTON_1_DOWN      ( -- n ) RI_MOUSE_LEFT_BUTTON_DOWN ; inline
653 : RI_MOUSE_BUTTON_1_UP        ( -- n ) RI_MOUSE_LEFT_BUTTON_UP ; inline
654 : RI_MOUSE_BUTTON_2_DOWN      ( -- n ) RI_MOUSE_RIGHT_BUTTON_DOWN ; inline
655 : RI_MOUSE_BUTTON_2_UP        ( -- n ) RI_MOUSE_RIGHT_BUTTON_UP ; inline
656 : RI_MOUSE_BUTTON_3_DOWN      ( -- n ) RI_MOUSE_MIDDLE_BUTTON_DOWN ; inline
657 : RI_MOUSE_BUTTON_3_UP        ( -- n ) RI_MOUSE_MIDDLE_BUTTON_UP ; inline
658
659 CONSTANT: RI_MOUSE_BUTTON_4_DOWN      HEX: 0040
660 CONSTANT: RI_MOUSE_BUTTON_4_UP        HEX: 0080
661 CONSTANT: RI_MOUSE_BUTTON_5_DOWN      HEX: 0100
662 CONSTANT: RI_MOUSE_BUTTON_5_UP        HEX: 0200
663 CONSTANT: RI_MOUSE_WHEEL              HEX: 0400
664
665 CONSTANT: MOUSE_MOVE_RELATIVE      0
666 CONSTANT: MOUSE_MOVE_ABSOLUTE      1
667 CONSTANT: MOUSE_VIRTUAL_DESKTOP    HEX: 02
668 CONSTANT: MOUSE_ATTRIBUTES_CHANGED HEX: 04
669 CONSTANT: MOUSE_MOVE_NOCOALESCE    HEX: 08
670
671 STRUCT: RAWKEYBOARD
672     { MakeCode         USHORT }
673     { Flags            USHORT }
674     { Reserved         USHORT }
675     { VKey             USHORT }
676     { Message          UINT   }
677     { ExtraInformation ULONG  } ;
678 TYPEDEF: RAWKEYBOARD* PRAWKEYBOARD
679 TYPEDEF: RAWKEYBOARD* LPRAWKEYBOARD
680
681 CONSTANT: KEYBOARD_OVERRUN_MAKE_CODE    HEX: FF
682
683 CONSTANT: RI_KEY_MAKE             0
684 CONSTANT: RI_KEY_BREAK            1
685 CONSTANT: RI_KEY_E0               2
686 CONSTANT: RI_KEY_E1               4
687 CONSTANT: RI_KEY_TERMSRV_SET_LED  8
688 CONSTANT: RI_KEY_TERMSRV_SHADOW   HEX: 10
689
690 STRUCT: RAWHID
691     { dwSizeHid DWORD   }
692     { dwCount   DWORD   }
693     { bRawData  BYTE[1] } ;
694 TYPEDEF: RAWHID* PRAWHID
695 TYPEDEF: RAWHID* LPRAWHID
696
697 UNION-STRUCT: RAWINPUT_UNION
698     { mouse    RAWMOUSE }
699     { keyboard RAWKEYBOARD }
700     { hid      RAWHID } ;
701 STRUCT: RAWINPUT
702     { header RAWINPUTHEADER }
703     { data   RAWINPUT_UNION } ;
704 TYPEDEF: RAWINPUT* PRAWINPUT
705 TYPEDEF: RAWINPUT* LPRAWINPUT
706
707 : RAWINPUT_ALIGN ( x -- y )
708     cpu x86.32 = [ 4 ] [ 8 ] if align ; inline
709 : NEXTRAWINPUTBLOCK ( struct -- next-struct )
710     dup header>> dwSize>> swap <displaced-alien> RAWINPUT_ALIGN RAWINPUT memory>struct ; inline
711
712 CONSTANT: RID_INPUT               HEX: 10000003
713 CONSTANT: RID_HEADER              HEX: 10000005
714 CONSTANT: RIDI_PREPARSEDDATA      HEX: 20000005
715 CONSTANT: RIDI_DEVICENAME         HEX: 20000007
716 CONSTANT: RIDI_DEVICEINFO         HEX: 2000000b
717
718 STRUCT: RID_DEVICE_INFO_MOUSE
719     { dwId                 DWORD }
720     { dwNumberOfButtons    DWORD }
721     { dwSampleRate         DWORD }
722     { fHasHorizontalWheel  BOOL  } ;
723 TYPEDEF: RID_DEVICE_INFO_MOUSE* PRID_DEVICE_INFO_MOUSE
724
725 STRUCT: RID_DEVICE_INFO_KEYBOARD
726     { dwType                 DWORD }
727     { dwSubType              DWORD }
728     { dwKeyboardMode         DWORD }
729     { dwNumberOfFunctionKeys DWORD }
730     { dwNumberOfIndicators   DWORD }
731     { dwNumberOfKeysTotal    DWORD } ;
732 TYPEDEF: RID_DEVICE_INFO_KEYBOARD* PRID_DEVICE_INFO_KEYBOARD
733
734 STRUCT: RID_DEVICE_INFO_HID
735     { dwVendorId      DWORD  }
736     { dwProductId     DWORD  }
737     { dwVersionNumber DWORD  }
738     { usUsagePage     USHORT }
739     { usUsage         USHORT } ;
740 TYPEDEF: RID_DEVICE_INFO_HID* PRID_DEVICE_INFO_HID
741
742 UNION-STRUCT: RID_DEVICE_INFO_UNION
743     { mouse    RID_DEVICE_INFO_MOUSE    }
744     { keyboard RID_DEVICE_INFO_KEYBOARD }
745     { hid      RID_DEVICE_INFO_HID      } ;
746 STRUCT: RID_DEVICE_INFO
747     { cbSize DWORD                 }
748     { dwType DWORD                 }
749     { data   RID_DEVICE_INFO_UNION } ;
750 TYPEDEF: RID_DEVICE_INFO* PRID_DEVICE_INFO
751 TYPEDEF: RID_DEVICE_INFO* LPRID_DEVICE_INFO
752
753 STRUCT: RAWINPUTDEVICE
754     { usUsagePage USHORT }
755     { usUsage     USHORT }
756     { dwFlags     DWORD  }
757     { hwndTarget  HWND   } ;
758 TYPEDEF: RAWINPUTDEVICE* PRAWINPUTDEVICE
759 TYPEDEF: RAWINPUTDEVICE* LPRAWINPUTDEVICE
760 TYPEDEF: RAWINPUTDEVICE* PCRAWINPUTDEVICE
761
762 CONSTANT: RIDEV_REMOVE            HEX: 00000001
763 CONSTANT: RIDEV_EXCLUDE           HEX: 00000010
764 CONSTANT: RIDEV_PAGEONLY          HEX: 00000020
765 CONSTANT: RIDEV_NOLEGACY          HEX: 00000030
766 CONSTANT: RIDEV_INPUTSINK         HEX: 00000100
767 CONSTANT: RIDEV_CAPTUREMOUSE      HEX: 00000200
768 CONSTANT: RIDEV_NOHOTKEYS         HEX: 00000200
769 CONSTANT: RIDEV_APPKEYS           HEX: 00000400
770 CONSTANT: RIDEV_EXINPUTSINK       HEX: 00001000
771 CONSTANT: RIDEV_DEVNOTIFY         HEX: 00002000
772 CONSTANT: RIDEV_EXMODEMASK        HEX: 000000F0
773
774 : RIDEV_EXMODE ( mode -- x ) RIDEV_EXMODEMASK bitand ; inline
775
776 CONSTANT: GIDC_ARRIVAL             1
777 CONSTANT: GIDC_REMOVAL             2
778
779 : GET_DEVICE_CHANGE_WPARAM ( wParam -- x ) HEX: ffff bitand ; inline
780
781 STRUCT: RAWINPUTDEVICELIST
782     { hDevice HANDLE }
783     { dwType  DWORD  } ;
784 TYPEDEF: RAWINPUTDEVICELIST* PRAWINPUTDEVICELIST
785
786 LIBRARY: user32
787
788 FUNCTION: HKL ActivateKeyboardLayout ( HKL hkl, UINT Flags ) ;
789 FUNCTION: BOOL AdjustWindowRect ( LPRECT lpRect, DWORD dwStyle, BOOL bMenu ) ;
790 FUNCTION: BOOL AdjustWindowRectEx ( LPRECT lpRect, DWORD dwStyle, BOOL bMenu, DWORD dwExStyle ) ;
791 ! FUNCTION: AlignRects
792 ! FUNCTION: AllowForegroundActivation
793 ! FUNCTION: AllowSetForegroundWindow
794 ! FUNCTION: AnimateWindow
795
796 FUNCTION: BOOL AnyPopup ( ) ;
797
798 ! FUNCTION: AppendMenuA
799 ! FUNCTION: AppendMenuW
800 ! FUNCTION: ArrangeIconicWindows
801 ! FUNCTION: AttachThreadInput
802 ! FUNCTION: BeginDeferWindowPos
803
804 FUNCTION: HDC BeginPaint ( HWND hwnd, LPPAINTSTRUCT lpPaint ) ;
805
806 ! FUNCTION: BlockInput
807 ! FUNCTION: BringWindowToTop
808 ! FUNCTION: BroadcastSystemMessage
809 ! FUNCTION: BroadcastSystemMessageA
810 ! FUNCTION: BroadcastSystemMessageExA
811 ! FUNCTION: BroadcastSystemMessageExW
812 ! FUNCTION: BroadcastSystemMessageW
813 ! FUNCTION: BuildReasonArray
814 ! FUNCTION: CalcMenuBar
815 ! FUNCTION: CallMsgFilter
816 ! FUNCTION: CallMsgFilterA
817 ! FUNCTION: CallMsgFilterW
818 ! FUNCTION: CallNextHookEx
819 ! FUNCTION: CallWindowProcA
820 ! FUNCTION: CallWindowProcW
821 ! FUNCTION: CascadeChildWindows
822 ! FUNCTION: CascadeWindows
823 ! FUNCTION: ChangeClipboardChain
824 ! FUNCTION: ChangeDisplaySettingsA
825 ! FUNCTION: ChangeDisplaySettingsExA
826 ! FUNCTION: ChangeDisplaySettingsExW
827 ! FUNCTION: ChangeDisplaySettingsW
828 ! FUNCTION: ChangeMenuA
829 ! FUNCTION: ChangeMenuW
830 ! FUNCTION: CharLowerA
831 ! FUNCTION: CharLowerBuffA
832 ! FUNCTION: CharLowerBuffW
833 ! FUNCTION: CharLowerW
834 ! FUNCTION: CharNextA
835 ! FUNCTION: CharNextExA
836 ! FUNCTION: CharNextW
837 ! FUNCTION: CharPrevA
838 ! FUNCTION: CharPrevExA
839 ! FUNCTION: CharPrevW
840 ! FUNCTION: CharToOemA
841 ! FUNCTION: CharToOemBuffA
842 ! FUNCTION: CharToOemBuffW
843 ! FUNCTION: CharToOemW
844 ! FUNCTION: CharUpperA
845 ! FUNCTION: CharUpperBuffA
846 ! FUNCTION: CharUpperBuffW
847 ! FUNCTION: CharUpperW
848 ! FUNCTION: CheckDlgButton
849 ! FUNCTION: CheckMenuItem
850 ! FUNCTION: CheckMenuRadioItem
851 ! FUNCTION: CheckRadioButton
852 FUNCTION: HWND ChildWindowFromPoint ( HWND hWndParent, POINT point ) ;
853 ! FUNCTION: ChildWindowFromPointEx
854 ! FUNCTION: ClientThreadSetup
855 FUNCTION: BOOL ClientToScreen ( HWND hWnd, POINT* point ) ;
856 ! FUNCTION: CliImmSetHotKey
857 FUNCTION: int ClipCursor ( RECT* clipRect ) ;
858 FUNCTION: BOOL CloseClipboard ( ) ;
859 ! FUNCTION: CloseDesktop
860 ! FUNCTION: CloseWindow
861 ! FUNCTION: CloseWindowStation
862 ! FUNCTION: CopyAcceleratorTableA
863 FUNCTION: int CopyAcceleratorTableW ( HACCEL hAccelSrc, LPACCEL lpAccelDst, int cAccelEntries ) ;
864 ALIAS: CopyAcceleratorTable CopyAcceleratorTableW
865 ! FUNCTION: CopyIcon
866 ! FUNCTION: CopyImage
867 ! FUNCTION: CopyRect
868 ! FUNCTION: CountClipboardFormats
869 ! FUNCTION: CreateAcceleratorTableA
870 FUNCTION: HACCEL CreateAcceleratorTableW ( LPACCEL lpaccl, int cEntries ) ;
871 ALIAS: CreateAcceleratorTable CreateAcceleratorTableW
872 ! FUNCTION: CreateCaret
873 ! FUNCTION: CreateCursor
874 ! FUNCTION: CreateDesktopA
875 ! FUNCTION: CreateDesktopW
876 ! FUNCTION: CreateDialogIndirectParamA
877 ! FUNCTION: CreateDialogIndirectParamAorW
878 ! FUNCTION: CreateDialogIndirectParamW
879 ! FUNCTION: CreateDialogParamA
880 ! FUNCTION: CreateDialogParamW
881 ! FUNCTION: CreateIcon
882 ! FUNCTION: CreateIconFromResource
883 ! FUNCTION: CreateIconFromResourceEx
884 ! FUNCTION: CreateIconIndirect
885 ! FUNCTION: CreateMDIWindowA
886 ! FUNCTION: CreateMDIWindowW
887 ! FUNCTION: CreateMenu
888 ! FUNCTION: CreatePopupMenu
889 ! FUNCTION: CreateSystemThreads
890
891 FUNCTION: HWND CreateWindowExW (
892                 DWORD dwExStyle,
893                 LPCTSTR lpClassName,
894                 LPCTSTR lpWindowName,
895                 DWORD dwStyle,
896                 uint X,
897                 uint Y,
898                 uint nWidth,
899                 uint nHeight,
900                 HWND hWndParent,
901                 HMENU hMenu,
902                 HINSTANCE hInstance,
903                 LPVOID lpParam ) ;
904
905 ALIAS: CreateWindowEx CreateWindowExW
906
907 : CreateWindow ( a b c d e f g h i j k -- hwnd ) 0 12 -nrot CreateWindowEx ; inline
908
909 ! FUNCTION: CreateWindowStationA
910 ! FUNCTION: CreateWindowStationW
911 ! FUNCTION: CsrBroadcastSystemMessageExW
912 ! FUNCTION: CtxInitUser32
913 ! FUNCTION: DdeAbandonTransaction
914 ! FUNCTION: DdeAccessData
915 ! FUNCTION: DdeAddData
916 ! FUNCTION: DdeClientTransaction
917 ! FUNCTION: DdeCmpStringHandles
918 ! FUNCTION: DdeConnect
919 ! FUNCTION: DdeConnectList
920 ! FUNCTION: DdeCreateDataHandle
921 ! FUNCTION: DdeCreateStringHandleA
922 ! FUNCTION: DdeCreateStringHandleW
923 ! FUNCTION: DdeDisconnect
924 ! FUNCTION: DdeDisconnectList
925 ! FUNCTION: DdeEnableCallback
926 ! FUNCTION: DdeFreeDataHandle
927 ! FUNCTION: DdeFreeStringHandle
928 ! FUNCTION: DdeGetData
929 ! FUNCTION: DdeGetLastError
930 ! FUNCTION: DdeGetQualityOfService
931 ! FUNCTION: DdeImpersonateClient
932 ! FUNCTION: DdeInitializeA
933 ! FUNCTION: DdeInitializeW
934 ! FUNCTION: DdeKeepStringHandle
935 ! FUNCTION: DdeNameService
936 ! FUNCTION: DdePostAdvise
937 ! FUNCTION: DdeQueryConvInfo
938 ! FUNCTION: DdeQueryNextServer
939 ! FUNCTION: DdeQueryStringA
940 ! FUNCTION: DdeQueryStringW
941 ! FUNCTION: DdeReconnect
942 ! FUNCTION: DdeSetQualityOfService
943 ! FUNCTION: DdeSetUserHandle
944 ! FUNCTION: DdeUnaccessData
945 ! FUNCTION: DdeUninitialize
946 ! FUNCTION: DefDlgProcA
947 ! FUNCTION: DefDlgProcW
948 ! FUNCTION: DeferWindowPos
949 ! FUNCTION: DefFrameProcA
950 ! FUNCTION: DefFrameProcW
951 ! FUNCTION: DefMDIChildProcA
952 ! FUNCTION: DefMDIChildProcW
953 FUNCTION: LRESULT DefRawInputProc ( PRAWINPUT* paRawInput, INT nInput, UINT cbSizeHeader ) ;
954 FUNCTION: LRESULT DefWindowProcW ( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ) ;
955 ALIAS: DefWindowProc DefWindowProcW
956 ! FUNCTION: DeleteMenu
957 ! FUNCTION: DeregisterShellHookWindow
958 FUNCTION: BOOL DestroyAcceleratorTable ( HACCEL hAccel ) ;
959 ! FUNCTION: DestroyCaret
960 ! FUNCTION: DestroyCursor
961 ! FUNCTION: DestroyIcon
962 ! FUNCTION: DestroyMenu
963 ! FUNCTION: DestroyReasons
964 FUNCTION: BOOL DestroyWindow ( HWND hWnd ) ;
965 ! FUNCTION: DeviceEventWorker
966 ! FUNCTION: DialogBoxIndirectParamA
967 ! FUNCTION: DialogBoxIndirectParamAorW
968 ! FUNCTION: DialogBoxIndirectParamW
969 ! FUNCTION: DialogBoxParamA
970 ! FUNCTION: DialogBoxParamW
971 ! FUNCTION: DisableProcessWindowsGhosting
972
973 FUNCTION: LONG DispatchMessageW ( MSG* lpMsg ) ;
974 ALIAS: DispatchMessage DispatchMessageW
975
976 ! FUNCTION: DisplayExitWindowsWarnings
977 ! FUNCTION: DlgDirListA
978 ! FUNCTION: DlgDirListComboBoxA
979 ! FUNCTION: DlgDirListComboBoxW
980 ! FUNCTION: DlgDirListW
981 ! FUNCTION: DlgDirSelectComboBoxExA
982 ! FUNCTION: DlgDirSelectComboBoxExW
983 ! FUNCTION: DlgDirSelectExA
984 ! FUNCTION: DlgDirSelectExW
985 ! FUNCTION: DragDetect
986 ! FUNCTION: DragObject
987
988
989 FUNCTION: BOOL DrawAnimatedRects ( HWND hWnd, int idAni, RECT* lprcFrom, RECT* lprcTo ) ;
990 ! FUNCTION: BOOL DrawCaption ( HWND hWnd, HDC hdc, LPRECT lprc, UINT uFlags ) ;
991
992 ! FUNCTION: DrawEdge
993 ! FUNCTION: DrawFocusRect
994 ! FUNCTION: DrawFrame
995 ! FUNCTION: DrawFrameControl
996
997 FUNCTION: BOOL DrawIcon ( HDC hDC, int X, int Y, HICON hIcon ) ;
998
999 ! FUNCTION: DrawIconEx
1000 ! FUNCTION: DrawMenuBar
1001 ! FUNCTION: DrawMenuBarTemp
1002 ! FUNCTION: DrawStateA
1003 ! FUNCTION: DrawStateW
1004 ! FUNCTION: DrawTextA
1005 ! FUNCTION: DrawTextExA
1006 ! FUNCTION: DrawTextExW
1007 ! FUNCTION: DrawTextW
1008 ! FUNCTION: EditWndProc
1009 FUNCTION: BOOL EmptyClipboard ( ) ;
1010 FUNCTION: BOOL EnableMenuItem ( HMENU hMenu, UINT uIDEnableItem, UINT uEnable ) ;
1011 ! FUNCTION: EnableScrollBar
1012 ! FUNCTION: EnableWindow
1013 ! FUNCTION: EndDeferWindowPos
1014 ! FUNCTION: EndDialog
1015 ! FUNCTION: EndMenu
1016
1017 FUNCTION: BOOL EndPaint ( HWND hWnd, PAINTSTRUCT* lpPaint) ;
1018
1019 ! FUNCTION: EndTask
1020 ! FUNCTION: EnterReaderModeHelper
1021 ! FUNCTION: EnumChildWindows
1022 FUNCTION: UINT EnumClipboardFormats ( UINT format ) ;
1023 ! FUNCTION: EnumDesktopsA
1024 ! FUNCTION: EnumDesktopsW
1025 ! FUNCTION: EnumDesktopWindows
1026 ! FUNCTION: EnumDisplayDevicesA
1027 ! FUNCTION: EnumDisplayDevicesW
1028 ! FUNCTION: EnumDisplayMonitors
1029 ! FUNCTION: EnumDisplaySettingsA
1030 ! FUNCTION: EnumDisplaySettingsExA
1031 ! FUNCTION: EnumDisplaySettingsExW
1032 ! FUNCTION: EnumDisplaySettingsW
1033 ! FUNCTION: EnumPropsA
1034 ! FUNCTION: EnumPropsExA
1035 ! FUNCTION: EnumPropsExW
1036 ! FUNCTION: EnumPropsW
1037 ! FUNCTION: EnumThreadWindows
1038 ! FUNCTION: EnumWindows
1039 ! FUNCTION: EnumWindowStationsA
1040 ! FUNCTION: EnumWindowStationsW
1041 ! FUNCTION: EqualRect
1042 ! FUNCTION: ExcludeUpdateRgn
1043 ! FUNCTION: ExitWindowsEx
1044 FUNCTION: int FillRect ( HDC hDC, RECT* lprc, HBRUSH hbr ) ;
1045 FUNCTION: HWND FindWindowA ( char* lpClassName, char* lpWindowName ) ;
1046 FUNCTION: HWND FindWindowExA ( HWND hwndParent, HWND childAfter, char* lpClassName, char* lpWindowName ) ;
1047 ! FUNCTION: FindWindowExW
1048 ! FUNCTION: FindWindowW
1049 ! FUNCTION: FlashWindow
1050 ! FUNCTION: FlashWindowEx
1051 ! FUNCTION: FrameRect
1052 ! FUNCTION: FreeDDElParam
1053 ! FUNCTION: GetActiveWindow
1054 ! FUNCTION: GetAltTabInfo
1055 ! FUNCTION: GetAltTabInfoA
1056 ! FUNCTION: GetAltTabInfoW
1057 ! FUNCTION: GetAncestor
1058 ! FUNCTION: GetAppCompatFlags
1059 ! FUNCTION: GetAppCompatFlags2
1060 ! FUNCTION: GetAsyncKeyState
1061 FUNCTION: HWND GetCapture ( ) ;
1062 ! FUNCTION: GetCaretBlinkTime
1063 ! FUNCTION: GetCaretPos
1064 FUNCTION: BOOL GetClassInfoW ( HINSTANCE hInst, LPCWSTR lpszClass, LPWNDCLASS lpwcx ) ;
1065 ALIAS: GetClassInfo GetClassInfoW
1066
1067 FUNCTION: BOOL GetClassInfoExW ( HINSTANCE hInst, LPCWSTR lpszClass, LPWNDCLASSEX lpwcx ) ;
1068 ALIAS: GetClassInfoEx GetClassInfoExW
1069
1070 FUNCTION: ULONG_PTR GetClassLongW ( HWND hWnd, int nIndex ) ;
1071 ALIAS: GetClassLong GetClassLongW
1072 ALIAS: GetClassLongPtr GetClassLongW
1073
1074
1075 ! FUNCTION: GetClassNameA
1076 ! FUNCTION: GetClassNameW
1077 ! FUNCTION: GetClassWord
1078 FUNCTION: BOOL GetClientRect ( HWND hWnd, LPRECT lpRect ) ;
1079
1080 FUNCTION: HANDLE GetClipboardData ( UINT uFormat ) ;
1081
1082 ! FUNCTION: GetClipboardFormatNameA
1083 ! FUNCTION: GetClipboardFormatNameW
1084 FUNCTION: HWND GetClipboardOwner ( ) ;
1085 FUNCTION: DWORD GetClipboardSequenceNumber ( ) ;
1086 ! FUNCTION: GetClipboardViewer
1087 ! FUNCTION: GetClipCursor
1088 ! FUNCTION: GetComboBoxInfo
1089 ! FUNCTION: GetCursor
1090 ! FUNCTION: GetCursorFrameInfo
1091 ! FUNCTION: GetCursorInfo
1092 ! FUNCTION: GetCursorPos
1093 FUNCTION: HDC GetDC ( HWND hWnd ) ;
1094 FUNCTION: HDC GetDCEx ( HWND hWnd, HRGN hrgnClip, DWORD flags ) ;
1095 ! FUNCTION: GetDesktopWindow
1096 ! FUNCTION: GetDialogBaseUnits
1097 ! FUNCTION: GetDlgCtrlID
1098 ! FUNCTION: GetDlgItem
1099 ! FUNCTION: GetDlgItemInt
1100 ! FUNCTION: GetDlgItemTextA
1101 ! FUNCTION: GetDlgItemTextW
1102 FUNCTION: uint GetDoubleClickTime ( ) ;
1103 FUNCTION: HWND GetFocus ( ) ;
1104 ! FUNCTION: GetForegroundWindow
1105 ! FUNCTION: GetGuiResources
1106 ! FUNCTION: GetGUIThreadInfo
1107 ! FUNCTION: GetIconInfo
1108 ! FUNCTION: GetInputDesktop
1109 ! FUNCTION: GetInputState
1110 ! FUNCTION: GetInternalWindowPos
1111 ! FUNCTION: GetKBCodePage
1112 ! FUNCTION: GetKeyboardLayout
1113 ! FUNCTION: GetKeyboardLayoutList
1114 ! FUNCTION: GetKeyboardLayoutNameA
1115 ! FUNCTION: GetKeyboardLayoutNameW
1116 ! FUNCTION: GetKeyboardState
1117 ! FUNCTION: GetKeyboardType
1118 ! FUNCTION: GetKeyNameTextA
1119 ! FUNCTION: GetKeyNameTextW
1120 FUNCTION: SHORT GetKeyState ( int nVirtKey ) ;
1121 ! FUNCTION: GetLastActivePopup
1122 ! FUNCTION: GetLastInputInfo
1123 ! FUNCTION: GetLayeredWindowAttributes
1124 ! FUNCTION: GetListBoxInfo
1125 ! FUNCTION: GetMenu
1126 ! FUNCTION: GetMenuBarInfo
1127 ! FUNCTION: GetMenuCheckMarkDimensions
1128 ! FUNCTION: GetMenuContextHelpId
1129 ! FUNCTION: GetMenuDefaultItem
1130 ! FUNCTION: GetMenuInfo
1131 ! FUNCTION: GetMenuItemCount
1132 ! FUNCTION: GetMenuItemID
1133 ! FUNCTION: GetMenuItemInfoA
1134 ! FUNCTION: GetMenuItemInfoW
1135 ! FUNCTION: GetMenuItemRect
1136 ! FUNCTION: GetMenuState
1137 ! FUNCTION: GetMenuStringA
1138 ! FUNCTION: GetMenuStringW
1139
1140 FUNCTION: BOOL GetMessageW ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax ) ;
1141 ALIAS: GetMessage GetMessageW
1142
1143 ! FUNCTION: GetMessageExtraInfo
1144 ! FUNCTION: GetMessagePos
1145 ! FUNCTION: GetMessageTime
1146 ! FUNCTION: GetMonitorInfoA
1147
1148 FUNCTION: BOOL GetMonitorInfoW ( HMONITOR hMonitor, LPMONITORINFO lpmi ) ;
1149 ALIAS: GetMonitorInfo GetMonitorInfoW
1150
1151 ! FUNCTION: GetMouseMovePointsEx
1152 ! FUNCTION: GetNextDlgGroupItem
1153 ! FUNCTION: GetNextDlgTabItem
1154 ! FUNCTION: GetOpenClipboardWindow
1155 FUNCTION: HWND GetParent ( HWND hWnd ) ;
1156 FUNCTION: int GetPriorityClipboardFormat ( UINT* paFormatPriorityList, int cFormats ) ;
1157 ! FUNCTION: GetProcessDefaultLayout
1158 ! FUNCTION: GetProcessWindowStation
1159 ! FUNCTION: GetProgmanWindow
1160 ! FUNCTION: GetPropA
1161 ! FUNCTION: GetPropW
1162 ! FUNCTION: GetQueueStatus
1163 FUNCTION: UINT GetRawInputBuffer ( PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader ) ;
1164 FUNCTION: UINT GetRawInputData ( HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader ) ;
1165 FUNCTION: UINT GetRawInputDeviceInfoA ( HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize ) ;
1166 FUNCTION: UINT GetRawInputDeviceInfoW ( HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize ) ;
1167 ALIAS: GetRawInputDeviceInfo GetRawInputDeviceInfoW
1168 FUNCTION: UINT GetRawInputDeviceList ( PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize ) ;
1169 FUNCTION: UINT GetRegisteredRawInputDevices ( PRAWINPUTDEVICE pRawInputDevices, PUINT puiNumDevices, UINT cbSize ) ;
1170 ! FUNCTION: GetReasonTitleFromReasonCode
1171 ! FUNCTION: GetScrollBarInfo
1172 ! FUNCTION: GetScrollInfo
1173 ! FUNCTION: GetScrollPos
1174 ! FUNCTION: GetScrollRange
1175 ! FUNCTION: GetShellWindow
1176 ! FUNCTION: GetSubMenu
1177 FUNCTION: COLORREF GetSysColor ( int nIndex ) ;
1178 FUNCTION: HBRUSH GetSysColorBrush ( int nIndex ) ;
1179 FUNCTION: HMENU GetSystemMenu ( HWND hWnd, BOOL bRevert ) ;
1180 ! FUNCTION: GetSystemMetrics
1181 ! FUNCTION: GetTabbedTextExtentA
1182 ! FUNCTION: GetTabbedTextExtentW
1183 ! FUNCTION: GetTaskmanWindow
1184 ! FUNCTION: GetThreadDesktop
1185 ! FUNCTION: GetTitleBarInfo
1186
1187
1188 FUNCTION: HWND GetTopWindow ( HWND hWnd ) ;
1189 ! FUNCTION: BOOL GetUpdateRect ( HWND hWnd, LPRECT lpRect, BOOL bErase ) ;
1190 FUNCTION: int GetUpdateRgn ( HWND hWnd, HRGN hRgn, BOOL bErase ) ;
1191
1192
1193 ! FUNCTION: GetUserObjectInformationA
1194 ! FUNCTION: GetUserObjectInformationW
1195 ! FUNCTION: GetUserObjectSecurity
1196 FUNCTION: HWND GetWindow ( HWND hWnd, UINT uCmd ) ;
1197 ! FUNCTION: GetWindowContextHelpId
1198 ! FUNCTION: GetWindowDC
1199 ! FUNCTION: GetWindowInfo
1200 ! FUNCTION: GetWindowLongA
1201 ! FUNCTION: GetWindowLongW
1202 FUNCTION: LONG_PTR GetWindowLongW ( HANDLE hWnd, int index ) ;
1203 ALIAS: GetWindowLong GetWindowLongW
1204 ! FUNCTION: GetWindowModuleFileName
1205 ! FUNCTION: GetWindowModuleFileNameA
1206 ! FUNCTION: GetWindowModuleFileNameW
1207 ! FUNCTION: GetWindowPlacement
1208 FUNCTION: BOOL GetWindowRect ( HWND hWnd, LPRECT lpRect ) ;
1209 ! FUNCTION: GetWindowRgn
1210 ! FUNCTION: GetWindowRgnBox
1211 FUNCTION: int GetWindowTextA ( HWND hWnd, char* lpString, int nMaxCount ) ;
1212 ! FUNCTION: GetWindowTextLengthA
1213 ! FUNCTION: GetWindowTextLengthW
1214 ! FUNCTION: GetWindowTextW
1215 FUNCTION: DWORD GetWindowThreadProcessId ( HWND hWnd, void* lpdwProcessId ) ;
1216 ! FUNCTION: GetWindowWord
1217 ! FUNCTION: GetWinStationInfo
1218 ! FUNCTION: GrayStringA
1219 ! FUNCTION: GrayStringW
1220 ! FUNCTION: HideCaret
1221 ! FUNCTION: HiliteMenuItem
1222 ! FUNCTION: ImpersonateDdeClientWindow
1223 ! FUNCTION: IMPGetIMEA
1224 ! FUNCTION: IMPGetIMEW
1225 ! FUNCTION: IMPQueryIMEA
1226 ! FUNCTION: IMPQueryIMEW
1227 ! FUNCTION: IMPSetIMEA
1228 ! FUNCTION: IMPSetIMEW
1229 ! FUNCTION: InflateRect
1230 ! FUNCTION: InitializeLpkHooks
1231 ! FUNCTION: InitializeWin32EntryTable
1232 ! FUNCTION: InSendMessage
1233 ! FUNCTION: InSendMessageEx
1234 ! FUNCTION: InsertMenuA
1235 ! FUNCTION: InsertMenuItemA
1236 ! FUNCTION: InsertMenuItemW
1237 ! FUNCTION: InsertMenuW
1238 ! FUNCTION: InternalGetWindowText
1239 ! FUNCTION: IntersectRect
1240 ! FUNCTION: InvalidateRect
1241 ! FUNCTION: InvalidateRgn
1242 ! FUNCTION: InvertRect
1243 ! FUNCTION: IsCharAlphaA
1244 ! FUNCTION: IsCharAlphaNumericA
1245 ! FUNCTION: IsCharAlphaNumericW
1246 ! FUNCTION: IsCharAlphaW
1247 ! FUNCTION: IsCharLowerA
1248 ! FUNCTION: IsCharLowerW
1249 ! FUNCTION: IsCharUpperA
1250 ! FUNCTION: IsCharUpperW
1251 FUNCTION: BOOL IsChild ( HWND hWndParent, HWND hWnd ) ;
1252 FUNCTION: BOOL IsClipboardFormatAvailable ( UINT format ) ;
1253 ! FUNCTION: IsDialogMessage
1254 ! FUNCTION: IsDialogMessageA
1255 ! FUNCTION: IsDialogMessageW
1256 ! FUNCTION: IsDlgButtonChecked
1257 FUNCTION: BOOL IsGUIThread ( BOOL bConvert ) ;
1258 FUNCTION: BOOL IsHungAppWindow ( HWND hWnd ) ;
1259 FUNCTION: BOOL IsIconic ( HWND hWnd ) ;
1260 FUNCTION: BOOL IsMenu ( HMENU hMenu ) ;
1261 ! FUNCTION: BOOL IsRectEmpty
1262 ! FUNCTION: BOOL IsServerSideWindow
1263 FUNCTION: BOOL IsWindow ( HWND hWnd ) ;
1264 ! FUNCTION: BOOL IsWindowEnabled
1265 ! FUNCTION: BOOL IsWindowInDestroy
1266 FUNCTION: BOOL IsWindowUnicode ( HWND hWnd ) ;
1267 FUNCTION: BOOL IsWindowVisible ( HWND hWnd ) ;
1268 ! FUNCTION: BOOL IsWinEventHookInstalled
1269 FUNCTION: BOOL IsZoomed ( HWND hWnd ) ;
1270 ! FUNCTION: keybd_event
1271 ! FUNCTION: KillSystemTimer
1272 ! FUNCTION: KillTimer
1273 ! FUNCTION: LoadAcceleratorsA
1274 FUNCTION: HACCEL LoadAcceleratorsW ( HINSTANCE hInstance, LPCTSTR lpTableName ) ;
1275 ! FUNCTION: LoadBitmapA
1276 ! FUNCTION: LoadBitmapW
1277 ! FUNCTION: LoadCursorFromFileA
1278 ! FUNCTION: LoadCursorFromFileW
1279
1280
1281 ! FUNCTION: HCURSOR LoadCursorW ( HINSTANCE hInstance, LPCWSTR lpCursorName ) ;
1282 FUNCTION: HCURSOR LoadCursorW ( HINSTANCE hInstance, ushort lpCursorName ) ;
1283 ALIAS: LoadCursor LoadCursorW
1284
1285 ! FUNCTION: HICON LoadIconA ( HINSTANCE hInstance, LPCTSTR lpIconName ) ;
1286 FUNCTION: HICON LoadIconW ( HINSTANCE hInstance, LPCTSTR lpIconName ) ;
1287 ALIAS: LoadIcon LoadIconW
1288
1289 ! FUNCTION: LoadImageA
1290 ! FUNCTION: LoadImageW
1291 ! FUNCTION: LoadKeyboardLayoutA
1292 ! FUNCTION: LoadKeyboardLayoutEx
1293 ! FUNCTION: LoadKeyboardLayoutW
1294 ! FUNCTION: LoadLocalFonts
1295 ! FUNCTION: LoadMenuA
1296 ! FUNCTION: LoadMenuIndirectA
1297 ! FUNCTION: LoadMenuIndirectW
1298 ! FUNCTION: LoadMenuW
1299 ! FUNCTION: LoadRemoteFonts
1300 ! FUNCTION: LoadStringA
1301 ! FUNCTION: LoadStringW
1302 ! FUNCTION: LockSetForegroundWindow
1303 ! FUNCTION: LockWindowStation
1304 ! FUNCTION: LockWindowUpdate
1305 ! FUNCTION: LockWorkStation
1306 ! FUNCTION: LookupIconIdFromDirectory
1307 ! FUNCTION: LookupIconIdFromDirectoryEx
1308 ! FUNCTION: MapDialogRect
1309
1310 FUNCTION: UINT MapVirtualKeyW ( UINT uCode, UINT uMapType ) ;
1311 ALIAS: MapVirtualKey MapVirtualKeyW
1312
1313 FUNCTION: UINT MapVirtualKeyExW ( UINT uCode, UINT uMapType, HKL dwhkl ) ;
1314 ALIAS: MapVirtualKeyEx MapVirtualKeyExW
1315
1316 ! FUNCTION: MapWindowPoints
1317 ! FUNCTION: MB_GetString
1318 ! FUNCTION: MBToWCSEx
1319 ! FUNCTION: MenuItemFromPoint
1320 ! FUNCTION: MenuWindowProcA
1321 ! FUNCTION: MenuWindowProcW
1322
1323 ! -1 is Simple beep
1324 FUNCTION: BOOL MessageBeep ( UINT uType ) ;
1325
1326 FUNCTION: int MessageBoxA ( 
1327                 HWND hWnd,
1328                 LPCSTR lpText,
1329                 LPCSTR lpCaption,
1330                 UINT uType ) ;
1331
1332 FUNCTION: int MessageBoxW (
1333                 HWND hWnd,
1334                 LPCWSTR lpText,
1335                 LPCWSTR lpCaption,
1336                 UINT uType) ;
1337
1338 FUNCTION: int MessageBoxExA ( HWND hWnd,
1339                 LPCSTR lpText,
1340                 LPCSTR lpCaption,
1341                 UINT uType,
1342                 WORD wLanguageId
1343                 ) ;
1344
1345 FUNCTION: int MessageBoxExW (
1346                 HWND hWnd,
1347                 LPCWSTR lpText,
1348                 LPCWSTR lpCaption,
1349                 UINT uType,
1350                 WORD wLanguageId ) ;
1351
1352 ! FUNCTION: int MessageBoxIndirectA ( MSGBOXPARAMSA* params ) ;
1353 ! FUNCTION: int MessageBoxIndirectW ( MSGBOXPARAMSW* params ) ;
1354
1355
1356 ALIAS: MessageBox MessageBoxW
1357
1358 ALIAS: MessageBoxEx MessageBoxExW
1359
1360 ! : MessageBoxIndirect
1361     ! \ MessageBoxIndirectW \ MessageBoxIndirectA unicode-exec ;
1362
1363 ! FUNCTION: MessageBoxTimeoutA ! dllexported, not in header
1364 ! FUNCTION: MessageBoxTimeoutW ! dllexported, not in header
1365
1366 ! FUNCTION: ModifyMenuA
1367 ! FUNCTION: ModifyMenuW
1368 ! FUNCTION: MonitorFromPoint
1369 ! FUNCTION: MonitorFromRect
1370 FUNCTION: HMONITOR MonitorFromWindow ( HWND hWnd, DWORD dwFlags ) ;
1371 ! FUNCTION: mouse_event
1372
1373
1374 FUNCTION: BOOL MoveWindow (
1375     HWND hWnd,
1376     int X,
1377     int Y,
1378     int nWidth,
1379     int nHeight,
1380     BOOL bRepaint ) ;
1381
1382 ! FUNCTION: MsgWaitForMultipleObjects
1383 ! FUNCTION: MsgWaitForMultipleObjectsEx
1384 ! FUNCTION: NotifyWinEvent
1385 ! FUNCTION: OemKeyScan
1386 ! FUNCTION: OemToCharA
1387 ! FUNCTION: OemToCharBuffA
1388 ! FUNCTION: OemToCharBuffW
1389 ! FUNCTION: OemToCharW
1390 ! FUNCTION: OffsetRect
1391 FUNCTION: BOOL OpenClipboard ( HWND hWndNewOwner ) ;
1392 ! FUNCTION: OpenDesktopA
1393 ! FUNCTION: OpenDesktopW
1394 ! FUNCTION: OpenIcon
1395 ! FUNCTION: OpenInputDesktop
1396 ! FUNCTION: OpenWindowStationA
1397 ! FUNCTION: OpenWindowStationW
1398 ! FUNCTION: PackDDElParam
1399 ! FUNCTION: PaintDesktop
1400 ! FUNCTION: PaintMenuBar
1401 FUNCTION: BOOL PeekMessageA ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg ) ;
1402 FUNCTION: BOOL PeekMessageW ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg ) ;
1403 ALIAS: PeekMessage PeekMessageW
1404
1405 ! FUNCTION: PostMessageA
1406 ! FUNCTION: PostMessageW
1407 FUNCTION: void PostQuitMessage ( int nExitCode ) ;
1408 ! FUNCTION: PostThreadMessageA
1409 ! FUNCTION: PostThreadMessageW
1410 ! FUNCTION: PrintWindow
1411 ! FUNCTION: PrivateExtractIconExA
1412 ! FUNCTION: PrivateExtractIconExW
1413 ! FUNCTION: PrivateExtractIconsA
1414 ! FUNCTION: PrivateExtractIconsW
1415 ! FUNCTION: PrivateSetDbgTag
1416 ! FUNCTION: PrivateSetRipFlags
1417 ! FUNCTION: PtInRect
1418 ! FUNCTION: QuerySendMessage
1419 ! FUNCTION: QueryUserCounters
1420 ! FUNCTION: RealChildWindowFromPoint
1421 ! FUNCTION: RealGetWindowClass
1422 ! FUNCTION: RealGetWindowClassA
1423 ! FUNCTION: RealGetWindowClassW
1424 ! FUNCTION: ReasonCodeNeedsBugID
1425 ! FUNCTION: ReasonCodeNeedsComment
1426 ! FUNCTION: RecordShutdownReason
1427 ! FUNCTION: RedrawWindow
1428
1429 FUNCTION: ATOM RegisterClassA ( WNDCLASS* lpWndClass ) ;
1430 FUNCTION: ATOM RegisterClassW ( WNDCLASS* lpWndClass ) ;
1431 FUNCTION: ATOM RegisterClassExA ( WNDCLASSEX* lpwcx ) ;
1432 FUNCTION: ATOM RegisterClassExW ( WNDCLASSEX* lpwcx ) ;
1433
1434 ALIAS: RegisterClass RegisterClassW
1435 ALIAS: RegisterClassEx RegisterClassExW
1436
1437 ! FUNCTION: RegisterClipboardFormatA
1438 ! FUNCTION: RegisterClipboardFormatW
1439 FUNCTION: HANDLE RegisterDeviceNotificationA ( HANDLE hRecipient, LPVOID NotificationFilter, DWORD Flags ) ;
1440 FUNCTION: HANDLE RegisterDeviceNotificationW ( HANDLE hRecipient, LPVOID NotificationFilter, DWORD Flags ) ;
1441 ALIAS: RegisterDeviceNotification RegisterDeviceNotificationW
1442 ! FUNCTION: RegisterHotKey
1443 ! FUNCTION: RegisterLogonProcess
1444 ! FUNCTION: RegisterMessagePumpHook
1445 FUNCTION: BOOL RegisterRawInputDevices ( PCRAWINPUTDEVICE pRawInputDevices, UINT uiNumDevices, UINT cbSize ) ;
1446 ! FUNCTION: RegisterServicesProcess
1447 ! FUNCTION: RegisterShellHookWindow
1448 ! FUNCTION: RegisterSystemThread
1449 ! FUNCTION: RegisterTasklist
1450 ! FUNCTION: RegisterUserApiHook
1451 ! FUNCTION: RegisterWindowMessageA
1452 ! FUNCTION: RegisterWindowMessageW
1453 FUNCTION: BOOL ReleaseCapture ( ) ;
1454 FUNCTION: int ReleaseDC ( HWND hWnd, HDC hDC ) ;
1455 ! FUNCTION: RemoveMenu
1456 ! FUNCTION: RemovePropA
1457 ! FUNCTION: RemovePropW
1458 ! FUNCTION: ReplyMessage
1459 ! FUNCTION: ResolveDesktopForWOW
1460 ! FUNCTION: ReuseDDElParam
1461 ! FUNCTION: ScreenToClient
1462 ! FUNCTION: ScrollChildren
1463 ! FUNCTION: ScrollDC
1464 ! FUNCTION: ScrollWindow
1465 ! FUNCTION: ScrollWindowEx
1466 ! FUNCTION: SendDlgItemMessageA
1467 ! FUNCTION: SendDlgItemMessageW
1468 ! FUNCTION: SendIMEMessageExA
1469 ! FUNCTION: SendIMEMessageExW
1470 ! FUNCTION: UINT SendInput ( UINT nInputs, LPINPUT pInputs, int cbSize ) ;
1471 FUNCTION: LRESULT SendMessageW ( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) ;
1472 ALIAS: SendMessage SendMessageW
1473 ! FUNCTION: SendMessageCallbackA
1474 ! FUNCTION: SendMessageCallbackW
1475 ! FUNCTION: SendMessageTimeoutA
1476 ! FUNCTION: SendMessageTimeoutW
1477 ! FUNCTION: SendNotifyMessageA
1478 ! FUNCTION: SendNotifyMessageW
1479 ! FUNCTION: SetActiveWindow
1480 FUNCTION: HWND SetCapture ( HWND hWnd ) ;
1481 ! FUNCTION: SetCaretBlinkTime
1482 ! FUNCTION: SetCaretPos
1483
1484 FUNCTION: ULONG_PTR SetClassLongW ( HWND hWnd, int nIndex, LONG_PTR dwNewLong ) ;
1485 ALIAS: SetClassLongPtr SetClassLongW
1486 ALIAS: SetClassLong SetClassLongW
1487
1488 ! FUNCTION: SetClassWord
1489 FUNCTION: HANDLE SetClipboardData ( UINT uFormat, HANDLE hMem ) ;
1490 ! FUNCTION: SetClipboardViewer
1491 ! FUNCTION: SetConsoleReserveKeys
1492 ! FUNCTION: SetCursor
1493 ! FUNCTION: SetCursorContents
1494 ! FUNCTION: SetCursorPos
1495 ! FUNCTION: SetDebugErrorLevel
1496 ! FUNCTION: SetDeskWallpaper
1497 ! FUNCTION: SetDlgItemInt
1498 ! FUNCTION: SetDlgItemTextA
1499 ! FUNCTION: SetDlgItemTextW
1500 ! FUNCTION: SetDoubleClickTime
1501 FUNCTION: HWND SetFocus ( HWND hWnd ) ;
1502 FUNCTION: BOOL SetForegroundWindow ( HWND hWnd ) ;
1503 ! FUNCTION: SetInternalWindowPos
1504 ! FUNCTION: SetKeyboardState
1505 ! type is ignored
1506 FUNCTION: void SetLastErrorEx ( DWORD dwErrCode, DWORD dwType ) ; 
1507 : SetLastError ( errcode -- ) 0 SetLastErrorEx ; inline
1508 ! FUNCTION: SetLayeredWindowAttributes
1509 ! FUNCTION: SetLogonNotifyWindow
1510 ! FUNCTION: SetMenu
1511 ! FUNCTION: SetMenuContextHelpId
1512 ! FUNCTION: SetMenuDefaultItem
1513 ! FUNCTION: SetMenuInfo
1514 ! FUNCTION: SetMenuItemBitmaps
1515 ! FUNCTION: SetMenuItemInfoA
1516 ! FUNCTION: SetMenuItemInfoW
1517 ! FUNCTION: SetMessageExtraInfo
1518 ! FUNCTION: SetMessageQueue
1519 ! FUNCTION: SetParent
1520 ! FUNCTION: SetProcessDefaultLayout
1521 ! FUNCTION: SetProcessWindowStation
1522 ! FUNCTION: SetProgmanWindow
1523 ! FUNCTION: SetPropA
1524 ! FUNCTION: SetPropW
1525 ! FUNCTION: SetRect
1526 ! FUNCTION: SetRectEmpty
1527 ! FUNCTION: SetScrollInfo
1528 ! FUNCTION: SetScrollPos
1529 ! FUNCTION: SetScrollRange
1530 ! FUNCTION: SetShellWindow
1531 ! FUNCTION: SetShellWindowEx
1532 ! FUNCTION: SetSysColors
1533 ! FUNCTION: SetSysColorsTemp
1534 ! FUNCTION: SetSystemCursor
1535 ! FUNCTION: SetSystemMenu
1536 ! FUNCTION: SetSystemTimer
1537 ! FUNCTION: SetTaskmanWindow
1538 ! FUNCTION: SetThreadDesktop
1539 ! FUNCTION: SetTimer
1540 ! FUNCTION: SetUserObjectInformationA
1541 ! FUNCTION: SetUserObjectInformationW
1542 ! FUNCTION: SetUserObjectSecurity
1543 ! FUNCTION: SetWindowContextHelpId
1544 ! FUNCTION: SetWindowLongA
1545 ! FUNCTION: SetWindowLongW
1546 FUNCTION: LONG_PTR SetWindowLongW ( HANDLE hWnd, int index, LONG_PTR dwNewLong ) ;
1547 ALIAS: SetWindowLong SetWindowLongW
1548 ! FUNCTION: SetWindowPlacement
1549 FUNCTION: BOOL SetWindowPos ( HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags ) ;
1550
1551 : HWND_BOTTOM ( -- alien ) 1 <alien> ;
1552 : HWND_NOTOPMOST ( -- alien ) -2 <alien> ;
1553 CONSTANT: HWND_TOP f
1554 : HWND_TOPMOST ( -- alien ) -1 <alien> ;
1555
1556 ! FUNCTION: SetWindowRgn
1557 ! FUNCTION: SetWindowsHookA
1558 ! FUNCTION: SetWindowsHookExA
1559 ! FUNCTION: SetWindowsHookExW
1560 ! FUNCTION: SetWindowsHookW
1561 ! FUNCTION: SetWindowStationUser
1562 ! FUNCTION: SetWindowTextA
1563 ! FUNCTION: SetWindowTextW
1564 ! FUNCTION: SetWindowWord
1565 ! FUNCTION: SetWinEventHook
1566 ! FUNCTION: ShowCaret
1567 FUNCTION: int ShowCursor ( BOOL show ) ;
1568 ! FUNCTION: ShowOwnedPopups
1569 ! FUNCTION: ShowScrollBar
1570 ! FUNCTION: ShowStartGlass
1571
1572 FUNCTION: BOOL ShowWindow ( HWND hWnd, int nCmdShow ) ;
1573
1574 ! FUNCTION: ShowWindowAsync
1575 ! FUNCTION: SoftModalMessageBox
1576 ! FUNCTION: SubtractRect
1577 ! FUNCTION: SwapMouseButton
1578 ! FUNCTION: SwitchDesktop
1579 ! FUNCTION: SwitchToThisWindow
1580 ! FUNCTION: SystemParametersInfoA
1581 ! FUNCTION: SystemParametersInfoW
1582 ! FUNCTION: TabbedTextOutA
1583 ! FUNCTION: TabbedTextOutW
1584 ! FUNCTION: TileChildWindows
1585 ! FUNCTION: TileWindows
1586 ! FUNCTION: ToAscii
1587 ! FUNCTION: ToAsciiEx
1588 ! FUNCTION: ToUnicode
1589 ! FUNCTION: ToUnicodeEx
1590 FUNCTION: BOOL TrackMouseEvent ( LPTRACKMOUSEEVENT lpEventTrack ) ;
1591 ! FUNCTION: TrackPopupMenu
1592 ! FUNCTION: TrackPopupMenuEx
1593 ! FUNCTION: TranslateAccelerator
1594 ! FUNCTION: TranslateAcceleratorA
1595 FUNCTION: int TranslateAcceleratorW ( HWND hWnd, HACCEL hAccTable, LPMSG lpMsg ) ;
1596 ALIAS: TranslateAccelerator TranslateAcceleratorW
1597
1598 ! FUNCTION: TranslateMDISysAccel
1599 FUNCTION: BOOL TranslateMessage ( MSG* lpMsg ) ;
1600
1601 ! FUNCTION: UnhookWindowsHook
1602 ! FUNCTION: UnhookWindowsHookEx
1603 ! FUNCTION: UnhookWinEvent
1604 ! FUNCTION: UnionRect
1605 ! FUNCTION: UnloadKeyboardLayout
1606 ! FUNCTION: UnlockWindowStation
1607 ! FUNCTION: UnpackDDElParam
1608 FUNCTION: BOOL UnregisterClassW ( LPCWSTR lpClassName, HINSTANCE hInstance ) ;
1609 ALIAS: UnregisterClass UnregisterClassW
1610 FUNCTION: BOOL UnregisterDeviceNotification ( HANDLE hDevNotify ) ;
1611 ! FUNCTION: UnregisterHotKey
1612 ! FUNCTION: UnregisterMessagePumpHook
1613 ! FUNCTION: UnregisterUserApiHook
1614 ! FUNCTION: UpdateLayeredWindow
1615 ! FUNCTION: UpdatePerUserSystemParameters
1616
1617 FUNCTION: BOOL UpdateWindow ( HWND hWnd ) ;
1618
1619 ! FUNCTION: User32InitializeImmEntryTable
1620 ! FUNCTION: UserClientDllInitialize
1621 ! FUNCTION: UserHandleGrantAccess
1622 ! FUNCTION: UserLpkPSMTextOut
1623 ! FUNCTION: UserLpkTabbedTextOut
1624 ! FUNCTION: UserRealizePalette
1625 ! FUNCTION: UserRegisterWowHandlers
1626 ! FUNCTION: ValidateRect
1627 ! FUNCTION: ValidateRgn
1628 ! FUNCTION: VkKeyScanA
1629 ! FUNCTION: VkKeyScanExA
1630 ! FUNCTION: VkKeyScanExW
1631 ! FUNCTION: VkKeyScanW
1632 ! FUNCTION: VRipOutput
1633 ! FUNCTION: VTagOutput
1634 ! FUNCTION: WaitForInputIdle
1635 ! FUNCTION: WaitMessage
1636 ! FUNCTION: WCSToMBEx
1637 ! FUNCTION: Win32PoolAllocationStats
1638 ! FUNCTION: WindowFromDC
1639 ! FUNCTION: WindowFromPoint
1640 ! FUNCTION: WinHelpA
1641 ! FUNCTION: WinHelpW
1642 ! FUNCTION: WINNLSEnableIME
1643 ! FUNCTION: WINNLSGetEnableStatus
1644 ! FUNCTION: WINNLSGetIMEHotkey
1645 ! FUNCTION: wsprintfA
1646 ! FUNCTION: wsprintfW
1647 ! FUNCTION: wvsprintfA
1648 ! FUNCTION: wvsprintfW
1649
1650 : msgbox ( str -- )
1651     f swap "DebugMsg" MB_OK MessageBox drop ;