]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/user32/user32.factor
scryfall: parse mtga deck format
[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: accessors alien alien.c-types alien.syntax classes.struct
4 generalizations kernel literals math math.bitwise namespaces
5 parser system windows.com.syntax windows.kernel32 windows.ole32
6 windows.types ;
7 IN: windows.user32
8
9 ! HKL for ActivateKeyboardLayout
10 CONSTANT: HKL_PREV 0
11 CONSTANT: HKL_NEXT 1
12
13 CONSTANT: CW_USEDEFAULT 0x80000000
14
15 CONSTANT: WS_OVERLAPPED       0x00000000
16 CONSTANT: WS_POPUP            0x80000000
17 CONSTANT: WS_CHILD            0x40000000
18 CONSTANT: WS_MINIMIZE         0x20000000
19 CONSTANT: WS_VISIBLE          0x10000000
20 CONSTANT: WS_DISABLED         0x08000000
21 CONSTANT: WS_CLIPSIBLINGS     0x04000000
22 CONSTANT: WS_CLIPCHILDREN     0x02000000
23 CONSTANT: WS_MAXIMIZE         0x01000000
24 CONSTANT: WS_CAPTION          0x00C00000
25 CONSTANT: WS_BORDER           0x00800000
26 CONSTANT: WS_DLGFRAME         0x00400000
27 CONSTANT: WS_VSCROLL          0x00200000
28 CONSTANT: WS_HSCROLL          0x00100000
29 CONSTANT: WS_SYSMENU          0x00080000
30 CONSTANT: WS_THICKFRAME       0x00040000
31 CONSTANT: WS_GROUP            0x00020000
32 CONSTANT: WS_TABSTOP          0x00010000
33 CONSTANT: WS_MINIMIZEBOX      0x00020000
34 CONSTANT: WS_MAXIMIZEBOX      0x00010000
35
36 ! Common window styles
37 CONSTANT: WS_OVERLAPPEDWINDOW
38     flags{
39         WS_OVERLAPPED
40         WS_CAPTION
41         WS_SYSMENU
42         WS_THICKFRAME
43         WS_MINIMIZEBOX
44         WS_MAXIMIZEBOX
45     }
46
47 CONSTANT: WS_POPUPWINDOW flags{ WS_POPUP WS_BORDER WS_SYSMENU }
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     0x00000001
59 CONSTANT: WS_EX_NOPARENTNOTIFY    0x00000004
60 CONSTANT: WS_EX_TOPMOST           0x00000008
61 CONSTANT: WS_EX_ACCEPTFILES       0x00000010
62 CONSTANT: WS_EX_TRANSPARENT       0x00000020
63 CONSTANT: WS_EX_MDICHILD          0x00000040
64 CONSTANT: WS_EX_TOOLWINDOW        0x00000080
65 CONSTANT: WS_EX_WINDOWEDGE        0x00000100
66 CONSTANT: WS_EX_CLIENTEDGE        0x00000200
67 CONSTANT: WS_EX_CONTEXTHELP       0x00000400
68
69 CONSTANT: WS_EX_RIGHT             0x00001000
70 CONSTANT: WS_EX_LEFT              0x00000000
71 CONSTANT: WS_EX_RTLREADING        0x00002000
72 CONSTANT: WS_EX_LTRREADING        0x00000000
73 CONSTANT: WS_EX_LEFTSCROLLBAR     0x00004000
74 CONSTANT: WS_EX_RIGHTSCROLLBAR    0x00000000
75 CONSTANT: WS_EX_CONTROLPARENT     0x00010000
76 CONSTANT: WS_EX_STATICEDGE        0x00020000
77 CONSTANT: WS_EX_APPWINDOW         0x00040000
78
79 CONSTANT: WS_EX_OVERLAPPEDWINDOW
80     flags{ WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE }
81
82 CONSTANT: WS_EX_PALETTEWINDOW
83     flags{ WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW WS_EX_TOPMOST }
84
85 CONSTANT: CS_VREDRAW          0x0001
86 CONSTANT: CS_HREDRAW          0x0002
87 CONSTANT: CS_DBLCLKS          0x0008
88 CONSTANT: CS_OWNDC            0x0020
89 CONSTANT: CS_CLASSDC          0x0040
90 CONSTANT: CS_PARENTDC         0x0080
91 CONSTANT: CS_NOCLOSE          0x0200
92 CONSTANT: CS_SAVEBITS         0x0800
93 CONSTANT: CS_BYTEALIGNCLIENT  0x1000
94 CONSTANT: CS_BYTEALIGNWINDOW  0x2000
95 CONSTANT: CS_GLOBALCLASS      0x4000
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 ! ShowWindow() Commands
120 CONSTANT: SW_HIDE             0
121 CONSTANT: SW_SHOWNORMAL       1
122 CONSTANT: SW_NORMAL           1
123 CONSTANT: SW_SHOWMINIMIZED    2
124 CONSTANT: SW_SHOWMAXIMIZED    3
125 CONSTANT: SW_MAXIMIZE         3
126 CONSTANT: SW_SHOWNOACTIVATE   4
127 CONSTANT: SW_SHOW             5
128 CONSTANT: SW_MINIMIZE         6
129 CONSTANT: SW_SHOWMINNOACTIVE  7
130 CONSTANT: SW_SHOWNA           8
131 CONSTANT: SW_RESTORE          9
132 CONSTANT: SW_SHOWDEFAULT      10
133 CONSTANT: SW_FORCEMINIMIZE    11
134 CONSTANT: SW_MAX              11
135
136 ! PeekMessage
137 CONSTANT: PM_NOREMOVE   0
138 CONSTANT: PM_REMOVE     1
139 CONSTANT: PM_NOYIELD    2
140 ! : PM_QS_INPUT         (QS_INPUT << 16) ;
141 ! : PM_QS_POSTMESSAGE   ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16) ;
142 ! : PM_QS_PAINT         (QS_PAINT << 16) ;
143 ! : PM_QS_SENDMESSAGE   (QS_SENDMESSAGE << 16) ;
144
145
146 !
147 ! Standard Cursor IDs
148 !
149 CONSTANT: IDC_ARROW           32512
150 CONSTANT: IDC_IBEAM           32513
151 CONSTANT: IDC_WAIT            32514
152 CONSTANT: IDC_CROSS           32515
153 CONSTANT: IDC_UPARROW         32516
154 CONSTANT: IDC_SIZE            32640 ! OBSOLETE: use IDC_SIZEALL
155 CONSTANT: IDC_ICON            32641 ! OBSOLETE: use IDC_ARROW
156 CONSTANT: IDC_SIZENWSE        32642
157 CONSTANT: IDC_SIZENESW        32643
158 CONSTANT: IDC_SIZEWE          32644
159 CONSTANT: IDC_SIZENS          32645
160 CONSTANT: IDC_SIZEALL         32646
161 CONSTANT: IDC_NO              32648 ! not in win3.1
162 CONSTANT: IDC_HAND            32649
163 CONSTANT: IDC_APPSTARTING     32650 ! not in win3.1
164 CONSTANT: IDC_HELP            32651
165
166 ! Predefined Clipboard Formats
167 CONSTANT: CF_TEXT             1
168 CONSTANT: CF_BITMAP           2
169 CONSTANT: CF_METAFILEPICT     3
170 CONSTANT: CF_SYLK             4
171 CONSTANT: CF_DIF              5
172 CONSTANT: CF_TIFF             6
173 CONSTANT: CF_OEMTEXT          7
174 CONSTANT: CF_DIB              8
175 CONSTANT: CF_PALETTE          9
176 CONSTANT: CF_PENDATA          10
177 CONSTANT: CF_RIFF             11
178 CONSTANT: CF_WAVE             12
179 CONSTANT: CF_UNICODETEXT      13
180 CONSTANT: CF_ENHMETAFILE      14
181 CONSTANT: CF_HDROP            15
182 CONSTANT: CF_LOCALE           16
183 CONSTANT: CF_DIBV5            17
184 CONSTANT: CF_MAX              18
185
186 CONSTANT: CF_OWNERDISPLAY     0x0080
187 CONSTANT: CF_DSPTEXT          0x0081
188 CONSTANT: CF_DSPBITMAP        0x0082
189 CONSTANT: CF_DSPMETAFILEPICT  0x0083
190 CONSTANT: CF_DSPENHMETAFILE   0x008E
191
192 ! "Private" formats don't get GlobalFree()'d
193 CONSTANT: CF_PRIVATEFIRST 0x200
194 CONSTANT: CF_PRIVATELAST 0x2FF
195
196 ! "GDIOBJ" formats do get DeleteObject()'d
197 CONSTANT: CF_GDIOBJFIRST 0x300
198 CONSTANT: CF_GDIOBJLAST 0x3FF
199
200 ! Virtual Keys, Standard Set
201 CONSTANT: VK_LBUTTON        0x01
202 CONSTANT: VK_RBUTTON        0x02
203 CONSTANT: VK_CANCEL         0x03
204 CONSTANT: VK_MBUTTON        0x04  ! NOT contiguous with L & RBUTTON
205 CONSTANT: VK_XBUTTON1       0x05  ! NOT contiguous with L & RBUTTON
206 CONSTANT: VK_XBUTTON2       0x06  ! NOT contiguous with L & RBUTTON
207 ! 0x07 : unassigned
208 CONSTANT: VK_BACK           0x08
209 CONSTANT: VK_TAB            0x09
210 ! 0x0A - 0x0B : reserved
211
212 CONSTANT: VK_CLEAR          0x0C
213 CONSTANT: VK_RETURN         0x0D
214
215 CONSTANT: VK_SHIFT          0x10
216 CONSTANT: VK_CONTROL        0x11
217 CONSTANT: VK_MENU           0x12
218 CONSTANT: VK_PAUSE          0x13
219 CONSTANT: VK_CAPITAL        0x14
220
221 CONSTANT: VK_KANA           0x15
222 CONSTANT: VK_HANGEUL        0x15 ! old name - here for compatibility
223 CONSTANT: VK_HANGUL         0x15
224 CONSTANT: VK_JUNJA          0x17
225 CONSTANT: VK_FINAL          0x18
226 CONSTANT: VK_HANJA          0x19
227 CONSTANT: VK_KANJI          0x19
228
229 CONSTANT: VK_ESCAPE         0x1B
230
231 CONSTANT: VK_CONVERT        0x1C
232 CONSTANT: VK_NONCONVERT     0x1D
233 CONSTANT: VK_ACCEPT         0x1E
234 CONSTANT: VK_MODECHANGE     0x1F
235
236 CONSTANT: VK_SPACE          0x20
237 CONSTANT: VK_PRIOR          0x21
238 CONSTANT: VK_NEXT           0x22
239 CONSTANT: VK_END            0x23
240 CONSTANT: VK_HOME           0x24
241 CONSTANT: VK_LEFT           0x25
242 CONSTANT: VK_UP             0x26
243 CONSTANT: VK_RIGHT          0x27
244 CONSTANT: VK_DOWN           0x28
245 CONSTANT: VK_SELECT         0x29
246 CONSTANT: VK_PRINT          0x2A
247 CONSTANT: VK_EXECUTE        0x2B
248 CONSTANT: VK_SNAPSHOT       0x2C
249 CONSTANT: VK_INSERT         0x2D
250 CONSTANT: VK_DELETE         0x2E
251 CONSTANT: VK_HELP           0x2F
252
253 CONSTANT: VK_0 CHAR: 0
254 CONSTANT: VK_1 CHAR: 1
255 CONSTANT: VK_2 CHAR: 2
256 CONSTANT: VK_3 CHAR: 3
257 CONSTANT: VK_4 CHAR: 4
258 CONSTANT: VK_5 CHAR: 5
259 CONSTANT: VK_6 CHAR: 6
260 CONSTANT: VK_7 CHAR: 7
261 CONSTANT: VK_8 CHAR: 8
262 CONSTANT: VK_9 CHAR: 9
263
264 CONSTANT: VK_A CHAR: A
265 CONSTANT: VK_B CHAR: B
266 CONSTANT: VK_C CHAR: C
267 CONSTANT: VK_D CHAR: D
268 CONSTANT: VK_E CHAR: E
269 CONSTANT: VK_F CHAR: F
270 CONSTANT: VK_G CHAR: G
271 CONSTANT: VK_H CHAR: H
272 CONSTANT: VK_I CHAR: I
273 CONSTANT: VK_J CHAR: J
274 CONSTANT: VK_K CHAR: K
275 CONSTANT: VK_L CHAR: L
276 CONSTANT: VK_M CHAR: M
277 CONSTANT: VK_N CHAR: N
278 CONSTANT: VK_O CHAR: O
279 CONSTANT: VK_P CHAR: P
280 CONSTANT: VK_Q CHAR: Q
281 CONSTANT: VK_R CHAR: R
282 CONSTANT: VK_S CHAR: S
283 CONSTANT: VK_T CHAR: T
284 CONSTANT: VK_U CHAR: U
285 CONSTANT: VK_V CHAR: V
286 CONSTANT: VK_W CHAR: W
287 CONSTANT: VK_X CHAR: X
288 CONSTANT: VK_Y CHAR: Y
289 CONSTANT: VK_Z CHAR: Z
290
291 CONSTANT: VK_LWIN           0x5B
292 CONSTANT: VK_RWIN           0x5C
293 CONSTANT: VK_APPS           0x5D
294
295 ! 0x5E : reserved
296
297 CONSTANT: VK_SLEEP          0x5F
298
299 CONSTANT: VK_NUMPAD0        0x60
300 CONSTANT: VK_NUMPAD1        0x61
301 CONSTANT: VK_NUMPAD2        0x62
302 CONSTANT: VK_NUMPAD3        0x63
303 CONSTANT: VK_NUMPAD4        0x64
304 CONSTANT: VK_NUMPAD5        0x65
305 CONSTANT: VK_NUMPAD6        0x66
306 CONSTANT: VK_NUMPAD7        0x67
307 CONSTANT: VK_NUMPAD8        0x68
308 CONSTANT: VK_NUMPAD9        0x69
309 CONSTANT: VK_MULTIPLY       0x6A
310 CONSTANT: VK_ADD            0x6B
311 CONSTANT: VK_SEPARATOR      0x6C
312 CONSTANT: VK_SUBTRACT       0x6D
313 CONSTANT: VK_DECIMAL        0x6E
314 CONSTANT: VK_DIVIDE         0x6F
315 CONSTANT: VK_F1             0x70
316 CONSTANT: VK_F2             0x71
317 CONSTANT: VK_F3             0x72
318 CONSTANT: VK_F4             0x73
319 CONSTANT: VK_F5             0x74
320 CONSTANT: VK_F6             0x75
321 CONSTANT: VK_F7             0x76
322 CONSTANT: VK_F8             0x77
323 CONSTANT: VK_F9             0x78
324 CONSTANT: VK_F10            0x79
325 CONSTANT: VK_F11            0x7A
326 CONSTANT: VK_F12            0x7B
327 CONSTANT: VK_F13            0x7C
328 CONSTANT: VK_F14            0x7D
329 CONSTANT: VK_F15            0x7E
330 CONSTANT: VK_F16            0x7F
331 CONSTANT: VK_F17            0x80
332 CONSTANT: VK_F18            0x81
333 CONSTANT: VK_F19            0x82
334 CONSTANT: VK_F20            0x83
335 CONSTANT: VK_F21            0x84
336 CONSTANT: VK_F22            0x85
337 CONSTANT: VK_F23            0x86
338 CONSTANT: VK_F24            0x87
339
340 ! 0x88 - 0x8F : unassigned
341
342 CONSTANT: VK_NUMLOCK        0x90
343 CONSTANT: VK_SCROLL         0x91
344
345 ! NEC PC-9800 kbd definitions
346 CONSTANT: VK_OEM_NEC_EQUAL  0x92  ! '=' key on numpad
347
348 ! Fujitsu/OASYS kbd definitions
349 CONSTANT: VK_OEM_FJ_JISHO   0x92  ! 'Dictionary' key
350 CONSTANT: VK_OEM_FJ_MASSHOU 0x93  ! 'Unregister word' key
351 CONSTANT: VK_OEM_FJ_TOUROKU 0x94  ! 'Register word' key
352 CONSTANT: VK_OEM_FJ_LOYA    0x95  ! 'Left OYAYUBI' key
353 CONSTANT: VK_OEM_FJ_ROYA    0x96  ! 'Right OYAYUBI' key
354
355 ! 0x97 - 0x9F : unassigned
356
357 ! VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
358 ! Used only as parameters to GetAsyncKeyState() and GetKeyState().
359 ! No other API or message will distinguish left and right keys in this way.
360 CONSTANT: VK_LSHIFT         0xA0
361 CONSTANT: VK_RSHIFT         0xA1
362 CONSTANT: VK_LCONTROL       0xA2
363 CONSTANT: VK_RCONTROL       0xA3
364 CONSTANT: VK_LMENU          0xA4
365 CONSTANT: VK_RMENU          0xA5
366
367 CONSTANT: VK_BROWSER_BACK        0xA6
368 CONSTANT: VK_BROWSER_FORWARD     0xA7
369 CONSTANT: VK_BROWSER_REFRESH     0xA8
370 CONSTANT: VK_BROWSER_STOP        0xA9
371 CONSTANT: VK_BROWSER_SEARCH      0xAA
372 CONSTANT: VK_BROWSER_FAVORITES   0xAB
373 CONSTANT: VK_BROWSER_HOME        0xAC
374
375 CONSTANT: VK_VOLUME_MUTE         0xAD
376 CONSTANT: VK_VOLUME_DOWN         0xAE
377 CONSTANT: VK_VOLUME_UP           0xAF
378 CONSTANT: VK_MEDIA_NEXT_TRACK    0xB0
379 CONSTANT: VK_MEDIA_PREV_TRACK    0xB1
380 CONSTANT: VK_MEDIA_STOP          0xB2
381 CONSTANT: VK_MEDIA_PLAY_PAUSE    0xB3
382 CONSTANT: VK_LAUNCH_MAIL         0xB4
383 CONSTANT: VK_LAUNCH_MEDIA_SELECT 0xB5
384 CONSTANT: VK_LAUNCH_APP1         0xB6
385 CONSTANT: VK_LAUNCH_APP2         0xB7
386
387 ! 0xB8 - 0xB9 : reserved
388
389 CONSTANT: VK_OEM_1          0xBA  ! ';:' for US
390 CONSTANT: VK_OEM_PLUS       0xBB  ! '+' any country
391 CONSTANT: VK_OEM_COMMA      0xBC  ! ',' any country
392 CONSTANT: VK_OEM_MINUS      0xBD  ! '-' any country
393 CONSTANT: VK_OEM_PERIOD     0xBE  ! '.' any country
394 CONSTANT: VK_OEM_2          0xBF  ! '/?' for US
395 CONSTANT: VK_OEM_3          0xC0  ! '`~' for US
396
397 ! 0xC1 - 0xD7 : reserved
398
399 ! 0xD8 - 0xDA : unassigned
400
401 CONSTANT: VK_OEM_4          0xDB !  '[{' for US
402 CONSTANT: VK_OEM_5          0xDC !  '\|' for US
403 CONSTANT: VK_OEM_6          0xDD !  ']}' for US
404 CONSTANT: VK_OEM_7          0xDE !  ''"' for US
405 CONSTANT: VK_OEM_8          0xDF
406
407 ! 0xE0 : reserved
408
409 ! Various extended or enhanced keyboards
410 CONSTANT: VK_OEM_AX         0xE1 !  'AX' key on Japanese AX kbd
411 CONSTANT: VK_OEM_102        0xE2 !  "<>" or "\|" on RT 102-key kbd.
412 CONSTANT: VK_ICO_HELP       0xE3 !  Help key on ICO
413 CONSTANT: VK_ICO_00         0xE4 !  00 key on ICO
414
415 CONSTANT: VK_PROCESSKEY     0xE5
416
417 CONSTANT: VK_ICO_CLEAR      0xE6
418
419 CONSTANT: VK_PACKET         0xE7
420
421 ! 0xE8 : unassigned
422
423 ! Nokia/Ericsson definitions
424 CONSTANT: VK_OEM_RESET      0xE9
425 CONSTANT: VK_OEM_JUMP       0xEA
426 CONSTANT: VK_OEM_PA1        0xEB
427 CONSTANT: VK_OEM_PA2        0xEC
428 CONSTANT: VK_OEM_PA3        0xED
429 CONSTANT: VK_OEM_WSCTRL     0xEE
430 CONSTANT: VK_OEM_CUSEL      0xEF
431 CONSTANT: VK_OEM_ATTN       0xF0
432 CONSTANT: VK_OEM_FINISH     0xF1
433 CONSTANT: VK_OEM_COPY       0xF2
434 CONSTANT: VK_OEM_AUTO       0xF3
435 CONSTANT: VK_OEM_ENLW       0xF4
436 CONSTANT: VK_OEM_BACKTAB    0xF5
437
438 CONSTANT: VK_ATTN           0xF6
439 CONSTANT: VK_CRSEL          0xF7
440 CONSTANT: VK_EXSEL          0xF8
441 CONSTANT: VK_EREOF          0xF9
442 CONSTANT: VK_PLAY           0xFA
443 CONSTANT: VK_ZOOM           0xFB
444 CONSTANT: VK_NONAME         0xFC
445 CONSTANT: VK_PA1            0xFD
446 CONSTANT: VK_OEM_CLEAR      0xFE
447 ! 0xFF : reserved
448
449 ! Key State Masks for Mouse Messages
450 CONSTANT: MK_LBUTTON          0x0001
451 CONSTANT: MK_RBUTTON          0x0002
452 CONSTANT: MK_SHIFT            0x0004
453 CONSTANT: MK_CONTROL          0x0008
454 CONSTANT: MK_MBUTTON          0x0010
455 CONSTANT: MK_XBUTTON1         0x0020
456 CONSTANT: MK_XBUTTON2         0x0040
457
458 ! Some fields are not defined for win64
459 ! Window field offsets for GetWindowLong()
460 CONSTANT: GWL_WNDPROC         -4
461 CONSTANT: GWL_HINSTANCE       -6
462 CONSTANT: GWL_HWNDPARENT      -8
463 CONSTANT: GWL_USERDATA        -21
464 CONSTANT: GWL_ID              -12
465
466 CONSTANT: GWL_STYLE           -16
467 CONSTANT: GWL_EXSTYLE         -20
468
469 CONSTANT: GWLP_WNDPROC        -4
470 CONSTANT: GWLP_HINSTANCE      -6
471 CONSTANT: GWLP_HWNDPARENT     -8
472 CONSTANT: GWLP_USERDATA       -21
473 CONSTANT: GWLP_ID             -12
474
475 ! Class field offsets for GetClassLong()
476 CONSTANT: GCL_MENUNAME        -8
477 CONSTANT: GCL_HBRBACKGROUND   -10
478 CONSTANT: GCL_HCURSOR         -12
479 CONSTANT: GCL_HICON           -14
480 CONSTANT: GCL_HMODULE         -16
481 CONSTANT: GCL_WNDPROC         -24
482 CONSTANT: GCL_HICONSM         -34
483 CONSTANT: GCL_CBWNDEXTRA      -18
484 CONSTANT: GCL_CBCLSEXTRA      -20
485 CONSTANT: GCL_STYLE           -26
486 CONSTANT: GCW_ATOM            -32
487
488 CONSTANT: GCLP_MENUNAME       -8
489 CONSTANT: GCLP_HBRBACKGROUND  -10
490 CONSTANT: GCLP_HCURSOR        -12
491 CONSTANT: GCLP_HICON          -14
492 CONSTANT: GCLP_HMODULE        -16
493 CONSTANT: GCLP_WNDPROC        -24
494 CONSTANT: GCLP_HICONSM        -34
495
496 CONSTANT: MB_ICONASTERISK    0x00000040
497 CONSTANT: MB_ICONEXCLAMATION 0x00000030
498 CONSTANT: MB_ICONHAND        0x00000010
499 CONSTANT: MB_ICONQUESTION    0x00000020
500 CONSTANT: MB_OK              0x00000000
501
502 ALIAS: FVIRTKEY TRUE
503 CONSTANT: FNOINVERT 2
504 CONSTANT: FSHIFT 4
505 CONSTANT: FCONTROL 8
506 CONSTANT: FALT 16
507
508 CONSTANT: MAPVK_VK_TO_VSC 0
509 CONSTANT: MAPVK_VSC_TO_VK 1
510 CONSTANT: MAPVK_VK_TO_CHAR 2
511 CONSTANT: MAPVK_VSC_TO_VK_EX 3
512 CONSTANT: MAPVK_VK_TO_VSC_EX 3
513
514 CONSTANT: TME_HOVER 1
515 CONSTANT: TME_LEAVE 2
516 CONSTANT: TME_NONCLIENT 16
517 CONSTANT: TME_QUERY 0x40000000
518 CONSTANT: TME_CANCEL 0x80000000
519 CONSTANT: HOVER_DEFAULT 0xffffffff
520 STRUCT: TRACKMOUSEEVENT
521     { cbSize DWORD }
522     { dwFlags DWORD }
523     { hwndTrack HWND }
524     { dwHoverTime DWORD } ;
525 TYPEDEF: TRACKMOUSEEVENT* LPTRACKMOUSEEVENT
526
527 CONSTANT: DBT_DEVICEARRIVAL 0x8000
528 CONSTANT: DBT_DEVICEREMOVECOMPLETE 0x8004
529
530 CONSTANT: DBT_DEVTYP_DEVICEINTERFACE 5
531
532 CONSTANT: DEVICE_NOTIFY_WINDOW_HANDLE 0
533 CONSTANT: DEVICE_NOTIFY_SERVICE_HANDLE 1
534
535 CONSTANT: DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 4
536
537 STRUCT: DEV_BROADCAST_HDR
538     { dbch_size DWORD }
539     { dbch_devicetype DWORD }
540     { dbch_reserved DWORD } ;
541
542 STRUCT: DEV_BROADCAST_DEVICEW
543     { dbcc_size DWORD }
544     { dbcc_devicetype DWORD }
545     { dbcc_reserved DWORD }
546     { dbcc_classguid GUID }
547     { dbcc_name WCHAR[1] } ;
548
549 CONSTANT: CCHDEVICENAME 32
550
551 STRUCT: MONITORINFOEX
552     { cbSize DWORD }
553     { rcMonitor RECT }
554     { rcWork RECT }
555     { dwFlags DWORD }
556     { szDevice { TCHAR CCHDEVICENAME } } ;
557
558 TYPEDEF: MONITORINFOEX* LPMONITORINFOEX
559 TYPEDEF: MONITORINFOEX* LPMONITORINFO
560
561 CONSTANT: MONITOR_DEFAULTTONULL 0
562 CONSTANT: MONITOR_DEFAULTTOPRIMARY 1
563 CONSTANT: MONITOR_DEFAULTTONEAREST 2
564 CONSTANT: MONITORINFOF_PRIMARY 1
565 CONSTANT: SWP_NOSIZE 1
566 CONSTANT: SWP_NOMOVE 2
567 CONSTANT: SWP_NOZORDER 4
568 CONSTANT: SWP_NOREDRAW 8
569 CONSTANT: SWP_NOACTIVATE 16
570 CONSTANT: SWP_FRAMECHANGED 32
571 CONSTANT: SWP_SHOWWINDOW 64
572 CONSTANT: SWP_HIDEWINDOW 128
573 CONSTANT: SWP_NOCOPYBITS 256
574 CONSTANT: SWP_NOOWNERZORDER 512
575 CONSTANT: SWP_NOSENDCHANGING 1024
576 ALIAS: SWP_DRAWFRAME SWP_FRAMECHANGED
577 ALIAS: SWP_NOREPOSITION SWP_NOOWNERZORDER
578 CONSTANT: SWP_DEFERERASE 8192
579 CONSTANT: SWP_ASYNCWINDOWPOS 16384
580
581 CONSTANT: MF_ENABLED         0x0000
582 CONSTANT: MF_GRAYED          0x0001
583 CONSTANT: MF_DISABLED        0x0002
584 CONSTANT: MF_STRING          0x0000
585 CONSTANT: MF_BITMAP          0x0004
586 CONSTANT: MF_UNCHECKED       0x0000
587 CONSTANT: MF_CHECKED         0x0008
588 CONSTANT: MF_POPUP           0x0010
589 CONSTANT: MF_MENUBARBREAK    0x0020
590 CONSTANT: MF_MENUBREAK       0x0040
591 CONSTANT: MF_UNHILITE        0x0000
592 CONSTANT: MF_HILITE          0x0080
593 CONSTANT: MF_OWNERDRAW       0x0100
594 CONSTANT: MF_USECHECKBITMAPS 0x0200
595 CONSTANT: MF_BYCOMMAND       0x0000
596 CONSTANT: MF_BYPOSITION      0x0400
597 CONSTANT: MF_SEPARATOR       0x0800
598 CONSTANT: MF_DEFAULT         0x1000
599 CONSTANT: MF_SYSMENU         0x2000
600 CONSTANT: MF_HELP            0x4000
601 CONSTANT: MF_RIGHTJUSTIFY    0x4000
602 CONSTANT: MF_MOUSESELECT     0x8000
603
604 CONSTANT: SPI_GETBEEP               1
605 CONSTANT: SPI_SETBEEP               2
606 CONSTANT: SPI_GETMOUSE              3
607 CONSTANT: SPI_SETMOUSE              4
608 CONSTANT: SPI_GETBORDER             5
609 CONSTANT: SPI_SETBORDER             6
610 CONSTANT: SPI_GETKEYBOARDSPEED      10
611 CONSTANT: SPI_SETKEYBOARDSPEED      11
612 CONSTANT: SPI_LANGDRIVER            12
613 CONSTANT: SPI_ICONHORIZONTALSPACING 13
614 CONSTANT: SPI_GETSCREENSAVETIMEOUT  14
615 CONSTANT: SPI_SETSCREENSAVETIMEOUT  15
616 CONSTANT: SPI_GETSCREENSAVEACTIVE   16
617 CONSTANT: SPI_SETSCREENSAVEACTIVE   17
618 CONSTANT: SPI_GETGRIDGRANULARITY    18
619 CONSTANT: SPI_SETGRIDGRANULARITY    19
620 CONSTANT: SPI_SETDESKWALLPAPER      20
621 CONSTANT: SPI_SETDESKPATTERN        21
622 CONSTANT: SPI_GETKEYBOARDDELAY      22
623 CONSTANT: SPI_SETKEYBOARDDELAY      23
624 CONSTANT: SPI_ICONVERTICALSPACING   24
625 CONSTANT: SPI_GETICONTITLEWRAP      25
626 CONSTANT: SPI_SETICONTITLEWRAP      26
627 CONSTANT: SPI_GETMENUDROPALIGNMENT  27
628 CONSTANT: SPI_SETMENUDROPALIGNMENT  28
629 CONSTANT: SPI_SETDOUBLECLKWIDTH     29
630 CONSTANT: SPI_SETDOUBLECLKHEIGHT    30
631 CONSTANT: SPI_GETICONTITLELOGFONT   31
632 CONSTANT: SPI_SETDOUBLECLICKTIME    32
633 CONSTANT: SPI_SETMOUSEBUTTONSWAP    33
634 CONSTANT: SPI_SETICONTITLELOGFONT   34
635 CONSTANT: SPI_GETFASTTASKSWITCH     35
636 CONSTANT: SPI_SETFASTTASKSWITCH     36
637 CONSTANT: SPI_SETDRAGFULLWINDOWS    37
638 CONSTANT: SPI_GETDRAGFULLWINDOWS    38
639
640 CONSTANT: SPI_GETFILTERKEYS         50
641 CONSTANT: SPI_SETFILTERKEYS         51
642 CONSTANT: SPI_GETTOGGLEKEYS         52
643 CONSTANT: SPI_SETTOGGLEKEYS         53
644 CONSTANT: SPI_GETMOUSEKEYS          54
645 CONSTANT: SPI_SETMOUSEKEYS          55
646 CONSTANT: SPI_GETSHOWSOUNDS         56
647 CONSTANT: SPI_SETSHOWSOUNDS         57
648 CONSTANT: SPI_GETSTICKYKEYS         58
649 CONSTANT: SPI_SETSTICKYKEYS         59
650 CONSTANT: SPI_GETACCESSTIMEOUT      60
651 CONSTANT: SPI_SETACCESSTIMEOUT      61
652
653 CONSTANT: SPI_GETSOUNDSENTRY        64
654 CONSTANT: SPI_SETSOUNDSENTRY        65
655
656 ! WINVER >= 0x0400
657 CONSTANT: SPI_GETNONCLIENTMETRICS   41
658 CONSTANT: SPI_SETNONCLIENTMETRICS   42
659 CONSTANT: SPI_GETMINIMIZEDMETRICS   43
660 CONSTANT: SPI_SETMINIMIZEDMETRICS   44
661 CONSTANT: SPI_GETICONMETRICS        45
662 CONSTANT: SPI_SETICONMETRICS        46
663 CONSTANT: SPI_SETWORKAREA           47
664 CONSTANT: SPI_GETWORKAREA           48
665 CONSTANT: SPI_SETPENWINDOWS         49
666
667 CONSTANT: SPI_GETSERIALKEYS         62
668 CONSTANT: SPI_SETSERIALKEYS         63
669 CONSTANT: SPI_GETHIGHCONTRAST       66
670 CONSTANT: SPI_SETHIGHCONTRAST       67
671 CONSTANT: SPI_GETKEYBOARDPREF       68
672 CONSTANT: SPI_SETKEYBOARDPREF       69
673 CONSTANT: SPI_GETSCREENREADER       70
674 CONSTANT: SPI_SETSCREENREADER       71
675 CONSTANT: SPI_GETANIMATION          72
676 CONSTANT: SPI_SETANIMATION          73
677 CONSTANT: SPI_GETFONTSMOOTHING      74
678 CONSTANT: SPI_SETFONTSMOOTHING      75
679 CONSTANT: SPI_SETDRAGWIDTH          76
680 CONSTANT: SPI_SETDRAGHEIGHT         77
681 CONSTANT: SPI_SETHANDHELD           78
682 CONSTANT: SPI_GETLOWPOWERTIMEOUT    79
683 CONSTANT: SPI_GETPOWEROFFTIMEOUT    80
684 CONSTANT: SPI_SETLOWPOWERTIMEOUT    81
685 CONSTANT: SPI_SETPOWEROFFTIMEOUT    82
686 CONSTANT: SPI_GETLOWPOWERACTIVE     83
687 CONSTANT: SPI_GETPOWEROFFACTIVE     84
688 CONSTANT: SPI_SETLOWPOWERACTIVE     85
689 CONSTANT: SPI_SETPOWEROFFACTIVE     86
690 CONSTANT: SPI_SETCURSORS            87
691 CONSTANT: SPI_SETICONS              88
692 CONSTANT: SPI_GETDEFAULTINPUTLANG   89
693 CONSTANT: SPI_SETDEFAULTINPUTLANG   90
694 CONSTANT: SPI_SETLANGTOGGLE         91
695 CONSTANT: SPI_GETWINDOWSEXTENSION   92
696 CONSTANT: SPI_SETMOUSETRAILS        93
697 CONSTANT: SPI_GETMOUSETRAILS        94
698 CONSTANT: SPI_SETSCREENSAVERRUNNING 97
699 ALIAS: SPI_SCREENSAVERRUNNING    SPI_SETSCREENSAVERRUNNING
700
701 ! WIN32_WINNT >= 0x0400 || WIN32_WINDOWS > 0x0400
702 CONSTANT: SPI_GETMOUSEHOVERWIDTH    98
703 CONSTANT: SPI_SETMOUSEHOVERWIDTH    99
704 CONSTANT: SPI_GETMOUSEHOVERHEIGHT   100
705 CONSTANT: SPI_SETMOUSEHOVERHEIGHT   101
706 CONSTANT: SPI_GETMOUSEHOVERTIME     102
707 CONSTANT: SPI_SETMOUSEHOVERTIME     103
708 CONSTANT: SPI_GETWHEELSCROLLLINES   104
709 CONSTANT: SPI_SETWHEELSCROLLLINES   105
710
711 CONSTANT: SPI_GETSHOWIMEUI          110
712 CONSTANT: SPI_SETSHOWIMEUI          111
713
714 ! WINVER >= 0x0500
715 CONSTANT: SPI_GETMOUSESPEED         112
716 CONSTANT: SPI_SETMOUSESPEED         113
717 CONSTANT: SPI_GETSCREENSAVERRUNNING 114
718
719 CONSTANT: SPI_GETACTIVEWINDOWTRACKING    0x1000
720 CONSTANT: SPI_SETACTIVEWINDOWTRACKING    0x1001
721 CONSTANT: SPI_GETMENUANIMATION           0x1002
722 CONSTANT: SPI_SETMENUANIMATION           0x1003
723 CONSTANT: SPI_GETCOMBOBOXANIMATION       0x1004
724 CONSTANT: SPI_SETCOMBOBOXANIMATION       0x1005
725 CONSTANT: SPI_GETLISTBOXSMOOTHSCROLLING  0x1006
726 CONSTANT: SPI_SETLISTBOXSMOOTHSCROLLING  0x1007
727 CONSTANT: SPI_GETGRADIENTCAPTIONS        0x1008
728 CONSTANT: SPI_SETGRADIENTCAPTIONS        0x1009
729 CONSTANT: SPI_GETMENUUNDERLINES          0x100A
730 CONSTANT: SPI_SETMENUUNDERLINES          0x100B
731 CONSTANT: SPI_GETACTIVEWNDTRKZORDER      0x100C
732 CONSTANT: SPI_SETACTIVEWNDTRKZORDER      0x100D
733 CONSTANT: SPI_GETHOTTRACKING             0x100E
734 CONSTANT: SPI_SETHOTTRACKING             0x100F
735 CONSTANT: SPI_GETFOREGROUNDLOCKTIMEOUT   0x2000
736 CONSTANT: SPI_SETFOREGROUNDLOCKTIMEOUT   0x2001
737 CONSTANT: SPI_GETACTIVEWNDTRKTIMEOUT     0x2002
738 CONSTANT: SPI_SETACTIVEWNDTRKTIMEOUT     0x2003
739 CONSTANT: SPI_GETFOREGROUNDFLASHCOUNT    0x2004
740 CONSTANT: SPI_SETFOREGROUNDFLASHCOUNT    0x2005
741
742 ! SystemParamInfo Flags
743 CONSTANT: SPIF_UPDATEINIFILE              1
744 CONSTANT: SPIF_SENDWININICHANGE           2
745 ALIAS: SPIF_SENDCHANGE                 SPIF_SENDWININICHANGE
746
747
748 TYPEDEF: HANDLE HRAWINPUT
749 : GET_RAWINPUT_CODE_WPARAM ( wParam -- n ) 0xff bitand ; inline
750
751 CONSTANT: LLMHF_INJECTED 1
752 CONSTANT: LLMHF_LOWER_IL_INJECTED 2
753
754
755 CONSTANT: WH_JOURNALRECORD 0    ! global
756 CONSTANT: WH_JOURNALPLAYBACK 1  ! global
757 CONSTANT: WH_KEYBOARD 2         ! thread/global
758 CONSTANT: WH_GETMESSAGE 3       ! thread/global
759 CONSTANT: WH_CALLWNDPROC 4      ! thread/global
760 CONSTANT: WH_CBT 5              ! thread/global
761 CONSTANT: WH_SYSMSGFILTER 6     ! global
762 CONSTANT: WH_MOUSE 7            ! thread/global
763 CONSTANT: WH_DEBUG 9            ! thread/global
764 CONSTANT: WH_SHELL 10           ! thread/global
765 CONSTANT: WH_FOREGROUNDIDLE 11  ! thread/global
766 CONSTANT: WH_CALLWNDPROCRET 12  ! thread/global
767 CONSTANT: WH_KEYBOARD_LL 13     ! global
768 CONSTANT: WH_MOUSE_LL 14        ! global
769 CONSTANT: WH_MSGFILTER -1       ! thread/global
770
771
772 STRUCT: KBDLLHOOKSTRUCT
773     { vkCode DWORD }
774     { scanCode DWORD }
775     { flags DWORD }
776     { time DWORD }
777     { dwExtraInfo ULONG_PTR } ;
778 TYPEDEF: KBDLLHOOKSTRUCT* PKBDLLHOOKSTRUCT
779 TYPEDEF: KBDLLHOOKSTRUCT* LPKBDLLHOOKSTRUCT
780
781 STRUCT: MSLLHOOKSTRUCT
782   { pt POINT }
783   { mouseData DWORD }
784   { flags DWORD }
785   { time DWORD }
786   { dwExtraInfo ULONG_PTR } ;
787 TYPEDEF: MSLLHOOKSTRUCT* PMSLLHOOKSTRUCT
788 TYPEDEF: MSLLHOOKSTRUCT* LPMSLLHOOKSTRUCT
789
790 CONSTANT: RIM_INPUT        0
791 CONSTANT: RIM_INPUTSINK    1
792
793 CONSTANT: RIM_TYPEMOUSE    0
794 CONSTANT: RIM_TYPEKEYBOARD 1
795 CONSTANT: RIM_TYPEHID      2
796
797 STRUCT: RAWINPUTHEADER
798     { dwType  DWORD  }
799     { dwSize  DWORD  }
800     { hDevice HANDLE }
801     { wParam  WPARAM } ;
802 TYPEDEF: RAWINPUTHEADER* PRAWINPUTHEADER
803 TYPEDEF: RAWINPUTHEADER* LPRAWINPUTHEADER
804 STRUCT: RAWMOUSE_BUTTONS_USBUTTONS
805     { usButtonFlags USHORT }
806     { usButtonData  USHORT } ;
807
808 UNION-STRUCT: RAWMOUSE_BUTTONS
809     { ulButtons ULONG                      }
810     { usButtons RAWMOUSE_BUTTONS_USBUTTONS } ;
811 STRUCT: RAWMOUSE
812     { usFlags            USHORT            }
813     { uButtons           RAWMOUSE_BUTTONS  }
814     { ulRawButtons       ULONG             }
815     { lLastX             LONG              }
816     { lLastY             LONG              }
817     { ulExtraInformation ULONG             } ;
818 TYPEDEF: RAWMOUSE* PRAWMOUSE
819 TYPEDEF: RAWMOUSE* LPRAWMOUSE
820
821 CONSTANT: RI_MOUSE_LEFT_BUTTON_DOWN   0x0001
822 CONSTANT: RI_MOUSE_LEFT_BUTTON_UP     0x0002
823 CONSTANT: RI_MOUSE_RIGHT_BUTTON_DOWN  0x0004
824 CONSTANT: RI_MOUSE_RIGHT_BUTTON_UP    0x0008
825 CONSTANT: RI_MOUSE_MIDDLE_BUTTON_DOWN 0x0010
826 CONSTANT: RI_MOUSE_MIDDLE_BUTTON_UP   0x0020
827
828 : RI_MOUSE_BUTTON_1_DOWN      ( -- n ) RI_MOUSE_LEFT_BUTTON_DOWN ; inline
829 : RI_MOUSE_BUTTON_1_UP        ( -- n ) RI_MOUSE_LEFT_BUTTON_UP ; inline
830 : RI_MOUSE_BUTTON_2_DOWN      ( -- n ) RI_MOUSE_RIGHT_BUTTON_DOWN ; inline
831 : RI_MOUSE_BUTTON_2_UP        ( -- n ) RI_MOUSE_RIGHT_BUTTON_UP ; inline
832 : RI_MOUSE_BUTTON_3_DOWN      ( -- n ) RI_MOUSE_MIDDLE_BUTTON_DOWN ; inline
833 : RI_MOUSE_BUTTON_3_UP        ( -- n ) RI_MOUSE_MIDDLE_BUTTON_UP ; inline
834
835 CONSTANT: RI_MOUSE_BUTTON_4_DOWN      0x0040
836 CONSTANT: RI_MOUSE_BUTTON_4_UP        0x0080
837 CONSTANT: RI_MOUSE_BUTTON_5_DOWN      0x0100
838 CONSTANT: RI_MOUSE_BUTTON_5_UP        0x0200
839 CONSTANT: RI_MOUSE_WHEEL              0x0400
840
841 CONSTANT: MOUSE_MOVE_RELATIVE      0
842 CONSTANT: MOUSE_MOVE_ABSOLUTE      1
843 CONSTANT: MOUSE_VIRTUAL_DESKTOP    0x02
844 CONSTANT: MOUSE_ATTRIBUTES_CHANGED 0x04
845 CONSTANT: MOUSE_MOVE_NOCOALESCE    0x08
846
847 STRUCT: RAWKEYBOARD
848     { MakeCode         USHORT }
849     { Flags            USHORT }
850     { Reserved         USHORT }
851     { VKey             USHORT }
852     { Message          UINT   }
853     { ExtraInformation ULONG  } ;
854 TYPEDEF: RAWKEYBOARD* PRAWKEYBOARD
855 TYPEDEF: RAWKEYBOARD* LPRAWKEYBOARD
856
857 CONSTANT: KEYBOARD_OVERRUN_MAKE_CODE    0xFF
858
859 CONSTANT: RI_KEY_MAKE             0
860 CONSTANT: RI_KEY_BREAK            1
861 CONSTANT: RI_KEY_E0               2
862 CONSTANT: RI_KEY_E1               4
863 CONSTANT: RI_KEY_TERMSRV_SET_LED  8
864 CONSTANT: RI_KEY_TERMSRV_SHADOW   0x10
865
866 STRUCT: RAWHID
867     { dwSizeHid DWORD   }
868     { dwCount   DWORD   }
869     { bRawData  BYTE[1] } ;
870 TYPEDEF: RAWHID* PRAWHID
871 TYPEDEF: RAWHID* LPRAWHID
872
873 UNION-STRUCT: RAWINPUT_UNION
874     { mouse    RAWMOUSE }
875     { keyboard RAWKEYBOARD }
876     { hid      RAWHID } ;
877 STRUCT: RAWINPUT
878     { header RAWINPUTHEADER }
879     { data   RAWINPUT_UNION } ;
880 TYPEDEF: RAWINPUT* PRAWINPUT
881 TYPEDEF: RAWINPUT* LPRAWINPUT
882
883 : RAWINPUT_ALIGN ( x -- y )
884     cpu x86.32 = [ 4 ] [ 8 ] if align ; inline
885 : NEXTRAWINPUTBLOCK ( struct -- next-struct )
886     dup header>> dwSize>> swap <displaced-alien> RAWINPUT_ALIGN RAWINPUT memory>struct ; inline
887
888 CONSTANT: RID_INPUT               0x10000003
889 CONSTANT: RID_HEADER              0x10000005
890 CONSTANT: RIDI_PREPARSEDDATA      0x20000005
891 CONSTANT: RIDI_DEVICENAME         0x20000007
892 CONSTANT: RIDI_DEVICEINFO         0x2000000b
893
894 STRUCT: RID_DEVICE_INFO_MOUSE
895     { dwId                 DWORD }
896     { dwNumberOfButtons    DWORD }
897     { dwSampleRate         DWORD }
898     { fHasHorizontalWheel  BOOL  } ;
899 TYPEDEF: RID_DEVICE_INFO_MOUSE* PRID_DEVICE_INFO_MOUSE
900
901 STRUCT: RID_DEVICE_INFO_KEYBOARD
902     { dwType                 DWORD }
903     { dwSubType              DWORD }
904     { dwKeyboardMode         DWORD }
905     { dwNumberOfFunctionKeys DWORD }
906     { dwNumberOfIndicators   DWORD }
907     { dwNumberOfKeysTotal    DWORD } ;
908 TYPEDEF: RID_DEVICE_INFO_KEYBOARD* PRID_DEVICE_INFO_KEYBOARD
909
910 STRUCT: RID_DEVICE_INFO_HID
911     { dwVendorId      DWORD  }
912     { dwProductId     DWORD  }
913     { dwVersionNumber DWORD  }
914     { usUsagePage     USHORT }
915     { usUsage         USHORT } ;
916 TYPEDEF: RID_DEVICE_INFO_HID* PRID_DEVICE_INFO_HID
917
918 UNION-STRUCT: RID_DEVICE_INFO_UNION
919     { mouse    RID_DEVICE_INFO_MOUSE    }
920     { keyboard RID_DEVICE_INFO_KEYBOARD }
921     { hid      RID_DEVICE_INFO_HID      } ;
922 STRUCT: RID_DEVICE_INFO
923     { cbSize DWORD                 }
924     { dwType DWORD                 }
925     { data   RID_DEVICE_INFO_UNION } ;
926 TYPEDEF: RID_DEVICE_INFO* PRID_DEVICE_INFO
927 TYPEDEF: RID_DEVICE_INFO* LPRID_DEVICE_INFO
928
929 STRUCT: RAWINPUTDEVICE
930     { usUsagePage USHORT }
931     { usUsage     USHORT }
932     { dwFlags     DWORD  }
933     { hwndTarget  HWND   } ;
934 TYPEDEF: RAWINPUTDEVICE* PRAWINPUTDEVICE
935 TYPEDEF: RAWINPUTDEVICE* LPRAWINPUTDEVICE
936 TYPEDEF: RAWINPUTDEVICE* PCRAWINPUTDEVICE
937
938 CONSTANT: RIDEV_REMOVE            0x00000001
939 CONSTANT: RIDEV_EXCLUDE           0x00000010
940 CONSTANT: RIDEV_PAGEONLY          0x00000020
941 CONSTANT: RIDEV_NOLEGACY          0x00000030
942 CONSTANT: RIDEV_INPUTSINK         0x00000100
943 CONSTANT: RIDEV_CAPTUREMOUSE      0x00000200
944 CONSTANT: RIDEV_NOHOTKEYS         0x00000200
945 CONSTANT: RIDEV_APPKEYS           0x00000400
946 CONSTANT: RIDEV_EXINPUTSINK       0x00001000
947 CONSTANT: RIDEV_DEVNOTIFY         0x00002000
948 CONSTANT: RIDEV_EXMODEMASK        0x000000F0
949
950 : RIDEV_EXMODE ( mode -- x ) RIDEV_EXMODEMASK bitand ; inline
951
952 CONSTANT: GIDC_ARRIVAL             1
953 CONSTANT: GIDC_REMOVAL             2
954
955 : GET_DEVICE_CHANGE_WPARAM ( wParam -- x ) 0xffff bitand ; inline
956
957 STRUCT: RAWINPUTDEVICELIST
958     { hDevice HANDLE }
959     { dwType  DWORD  } ;
960 TYPEDEF: RAWINPUTDEVICELIST* PRAWINPUTDEVICELIST
961
962 CONSTANT: CCHFORMNAME 32
963
964 CONSTANT: CDS_UPDATEREGISTRY      0x00000001
965 CONSTANT: CDS_TEST                0x00000002
966 CONSTANT: CDS_FULLSCREEN          0x00000004
967 CONSTANT: CDS_GLOBAL              0x00000008
968 CONSTANT: CDS_SET_PRIMARY         0x00000010
969 CONSTANT: CDS_RESET               0x40000000
970 CONSTANT: CDS_SETRECT             0x20000000
971 CONSTANT: CDS_NORESET             0x10000000
972
973 CONSTANT: DISP_CHANGE_SUCCESSFUL 0
974 CONSTANT: DISP_CHANGE_RESTART 1
975 CONSTANT: DISP_CHANGE_FAILED     -1
976 CONSTANT: DISP_CHANGE_BADMODE    -2
977 CONSTANT: DISP_CHANGE_NOTUPDATED -3
978 CONSTANT: DISP_CHANGE_BADFLAGS   -4
979 CONSTANT: DISP_CHANGE_BADPARAM   -5
980
981 STRUCT: DEVMODE_PROPS1
982     { dmOrientation short }
983     { dmPaperSize short }
984     { dmPaperLength short }
985     { dmPaperWidth short }
986     { dmScale short }
987     { dmCopies short }
988     { dmDefaultSource short }
989     { dmPrintQuality short } ;
990
991 STRUCT: DEVMODE_PROPS2
992     { dmPosition POINTL }
993     { dmDisplayOrientation DWORD }
994     { dmDisplayFixedOutput DWORD } ;
995
996 UNION-STRUCT: DEVMODE_UNION_1
997     { props1 DEVMODE_PROPS1 }
998     { props2 DEVMODE_PROPS2 } ;
999
1000 STRUCT: DEVMODE
1001     { dmDeviceName WCHAR[CCHDEVICENAME] }
1002     { dmSpecVersion WORD }
1003     { dmDriverVersion WORD }
1004     { dmSize WORD }
1005     { dmDriverExtra WORD }
1006     { dmFields DWORD }
1007
1008     { props DEVMODE_UNION_1 }
1009
1010     { dmColor short }
1011     { dmDuplex short }
1012     { dmYResolution short }
1013     { dmTTOption short }
1014     { dmCollate short }
1015     { dmFormName WCHAR[CCHFORMNAME] }
1016     { dmLogPixels WORD }
1017     { dmBitsPerPel DWORD }
1018     { dmPelsWidth DWORD }
1019     { dmPelsHeight DWORD }
1020     { dmDisplayFlags DWORD }
1021     { dmDisplayFrequency DWORD }
1022     { dmiCMMethod DWORD }
1023     { dmICMIntent DWORD }
1024     { dmMediaType DWORD }
1025     { dmDitherType DWORD }
1026     { dmReserved1 DWORD }
1027     { dmReserved2 DWORD }
1028     { dmPanningWidth DWORD }
1029     { dmPanningHeight DWORD } ;
1030
1031 TYPEDEF: DEVMODE DEVMODEW
1032 TYPEDEF: DEVMODE* PDEVMODE
1033 TYPEDEF: DEVMODE* LPDEVMODE
1034
1035 STRUCT: DISPLAY_DEVICEW
1036     { cb DWORD }
1037     { DeviceName CHAR[32] }
1038     { DeviceString CHAR[128] }
1039     { StateFlags DWORD }
1040     { DeviceID CHAR[128] }
1041     { DeviceKey CHAR[128] } ;
1042 TYPEDEF: DISPLAY_DEVICEW* PDISPLAY_DEVICEW
1043 TYPEDEF: DISPLAY_DEVICEW* LPDISPLAY_DEVICEW
1044
1045 CALLBACK: BOOL DESKTOPENUMPROCW ( LPWSTR arg1, LPARAM arg2 )
1046
1047 CONSTANT: MSGFLT_ADD    1
1048 CONSTANT: MSGFLT_REMOVE 2
1049
1050 CONSTANT: MSGFLT_RESET    0
1051 CONSTANT: MSGFLT_ALLOW    1
1052 CONSTANT: MSGFLT_DISALLOW 2
1053
1054 STRUCT: CHANGEFILTERSTRUCT
1055     { cbSize DWORD }
1056     { ExtStatus DWORD } ;
1057 TYPEDEF: CHANGEFILTERSTRUCT* PCHANGEFILTERSTRUCT
1058
1059 CONSTANT: INPUT_MOUSE 0
1060 CONSTANT: INPUT_KEYBOARD 1
1061 CONSTANT: INPUT_HARDWARE 2
1062
1063 CONSTANT: XBUTTON1 1
1064 CONSTANT: XBUTTON2 2
1065
1066 CONSTANT: MOUSEEVENTF_ABSOLUTE 0x8000
1067 CONSTANT: MOUSEEVENTF_HWHEEL 0x01000
1068 CONSTANT: MOUSEEVENTF_MOVE 0x0001
1069 CONSTANT: MOUSEEVENTF_MOVE_NOCOALESCE 0x2000
1070 CONSTANT: MOUSEEVENTF_LEFTDOWN 0x0002
1071 CONSTANT: MOUSEEVENTF_LEFTUP 0x0004
1072 CONSTANT: MOUSEEVENTF_RIGHTDOWN 0x0008
1073 CONSTANT: MOUSEEVENTF_RIGHTUP 0x0010
1074 CONSTANT: MOUSEEVENTF_MIDDLEDOWN 0x0020
1075 CONSTANT: MOUSEEVENTF_MIDDLEUP 0x0040
1076 CONSTANT: MOUSEEVENTF_VIRTUALDESK 0x4000
1077 CONSTANT: MOUSEEVENTF_WHEEL 0x0800
1078 CONSTANT: MOUSEEVENTF_XDOWN 0x0080
1079 CONSTANT: MOUSEEVENTF_XUP 0x0100
1080
1081 STRUCT: MOUSEINPUT
1082     { dx LONG }
1083     { dy LONG }
1084     { mouseData DWORD }
1085     { dwFlags DWORD }
1086     { time DWORD }
1087     { dwExtraInfo ULONG_PTR } ;
1088 TYPEDEF: MOUSEINPUT* PMOUSEINPUT
1089
1090 CONSTANT: KEYEVENTF_EXTENDEDKEY 1
1091 CONSTANT: KEYEVENTF_KEYUP 2
1092 CONSTANT: KEYEVENTF_UNICODE 4
1093 CONSTANT: KEYEVENTF_SCANCODE 8
1094
1095
1096 STRUCT: KEYBDINPUT
1097     { wVk WORD }
1098     { wScan WORD }
1099     { dwFlags DWORD }
1100     { time DWORD }
1101     { dwExtraInfo ULONG_PTR } ;
1102 TYPEDEF: KEYBDINPUT* PKEYBDINPUT
1103
1104 STRUCT: HARDWAREINPUT
1105     { uMsg DWORD }
1106     { wParamL WORD }
1107     { wParamH WORD } ;
1108 TYPEDEF: HARDWAREINPUT* PHARDWAREINPUT
1109
1110
1111 UNION-STRUCT: ANYINPUT
1112     { mi MOUSEINPUT }
1113     { ki KEYBDINPUT }
1114     { hi HARDWAREINPUT } ;
1115
1116 STRUCT: INPUT
1117     { type DWORD }
1118     { input ANYINPUT } ;
1119 TYPEDEF: INPUT* PINPUT
1120 TYPEDEF: INPUT* LPINPUT
1121
1122
1123 CONSTANT: LR_DEFAULTCOLOR 0x00
1124 CONSTANT: LR_MONOCHROME 0x01
1125 CONSTANT: LR_COLOR 0x02
1126 CONSTANT: LR_COPYRETURNORG 0x04
1127 CONSTANT: LR_COPYDELETEORG 0x08
1128 CONSTANT: LR_LOADFROMFILE 0x10
1129 CONSTANT: LR_LOADTRANSPARENT 0x20
1130 CONSTANT: LR_DEFAULTSIZE 0x40
1131 CONSTANT: LR_VGACOLOR 0x80
1132 CONSTANT: LR_LOADMAP3DCOLORS 0x1000
1133 CONSTANT: LR_CREATEDIBSECTION 0x2000
1134 CONSTANT: LR_COPYFROMRESOURCE 0x4000
1135 CONSTANT: LR_SHARED 0x8000
1136
1137 CONSTANT: IMAGE_BITMAP 0
1138 CONSTANT: IMAGE_ICON 1
1139 CONSTANT: IMAGE_CURSOR 2
1140
1141 CONSTANT: IDI_APPLICATION 32512
1142 CONSTANT: IDI_ASTERISK 21516
1143 CONSTANT: IDI_ERROR 32513
1144 CONSTANT: IDI_EXCLAMATION 32515
1145 CONSTANT: IDI_HAND 32513
1146 CONSTANT: IDI_INFORMATION 32516
1147 CONSTANT: IDI_QUESTION 32514
1148 CONSTANT: IDI_SHIELD 32518
1149 CONSTANT: IDI_WARNING 32515
1150 CONSTANT: IDI_WINLOGO 32517
1151
1152 CONSTANT: OBM_BTNCORNERS 32758
1153 CONSTANT: OBM_BTSIZE 32761
1154 CONSTANT: OBM_CHECK 32760
1155 CONSTANT: OBM_CHECKBOXES 32759
1156 CONSTANT: OBM_CLOSE 32754
1157 CONSTANT: OBM_COMBO 32738
1158 CONSTANT: OBM_DNARROW 32752
1159 CONSTANT: OBM_DNARROWD 32742
1160 CONSTANT: OBM_DNARROWI 32736
1161 CONSTANT: OBM_LFARROW 32750
1162 CONSTANT: OBM_LFARROWI 32734
1163 CONSTANT: OBM_LFARROWD 32740
1164 CONSTANT: OBM_MNARROW 32739
1165 CONSTANT: OBM_OLD_CLOSE 32767
1166 CONSTANT: OBM_OLD_DNARROW 32764
1167 CONSTANT: OBM_OLD_LFARROW 32762
1168 CONSTANT: OBM_OLD_REDUCE 32757
1169 CONSTANT: OBM_OLD_RESTORE 32755
1170 CONSTANT: OBM_OLD_RGARROW 32763
1171 CONSTANT: OBM_OLD_UPARROW 32765
1172 CONSTANT: OBM_OLD_ZOOM 32756
1173 CONSTANT: OBM_REDUCE 32749
1174 CONSTANT: OBM_REDUCED 32746
1175 CONSTANT: OBM_RESTORE 32747
1176 CONSTANT: OBM_RESTORED 32744
1177 CONSTANT: OBM_RGARROW 32751
1178 CONSTANT: OBM_RGARROWD 32741
1179 CONSTANT: OBM_RGARROWI 32735
1180 CONSTANT: OBM_SIZE 32766
1181 CONSTANT: OBM_UPARROW 32753
1182 CONSTANT: OBM_UPARROWD 32743
1183 CONSTANT: OBM_UPARROWI 32737
1184 CONSTANT: OBM_ZOOM 32748
1185 CONSTANT: OBM_ZOOMD 32745
1186 CONSTANT: OCR_NORMAL 32512
1187 CONSTANT: OCR_IBEAM 32513
1188 CONSTANT: OCR_WAIT 32514
1189 CONSTANT: OCR_CROSS 32515
1190 CONSTANT: OCR_UP 32516
1191 CONSTANT: OCR_SIZE 32640
1192 CONSTANT: OCR_ICON 32641
1193 CONSTANT: OCR_SIZENWSE 32642
1194 CONSTANT: OCR_SIZENESW 32643
1195 CONSTANT: OCR_SIZEWE 32644
1196 CONSTANT: OCR_SIZENS 32645
1197 CONSTANT: OCR_SIZEALL 32646
1198 CONSTANT: OCR_NO 32648
1199 CONSTANT: OCR_APPSTARTING 32650
1200 CONSTANT: OIC_SAMPLE 32512
1201 CONSTANT: OIC_HAND 32513
1202 CONSTANT: OIC_QUES 32514
1203 CONSTANT: OIC_BANG 32515
1204 CONSTANT: OIC_NOTE 32516
1205 CONSTANT: OIC_WINLOGO 32517
1206 CONSTANT: OIC_WARNING 32515
1207 CONSTANT: OIC_ERROR 32513
1208 CONSTANT: OIC_INFORMATION 32516
1209
1210 CONSTANT: SM_CXSCREEN 0
1211 CONSTANT: SM_CYSCREEN 1
1212 CONSTANT: SM_CXVSCROLL 2
1213 CONSTANT: SM_CYHSCROLL 3
1214 CONSTANT: SM_CYCAPTION 4
1215 CONSTANT: SM_CXBORDER 5
1216 CONSTANT: SM_CYBORDER 6
1217 CONSTANT: SM_CXDLGFRAME 7
1218 CONSTANT: SM_CXFIXEDFRAME 7
1219 CONSTANT: SM_CYDLGFRAME 8
1220 CONSTANT: SM_CYFIXEDFRAME 8
1221 CONSTANT: SM_CYVTHUMB 9
1222 CONSTANT: SM_CXHTHUMB 10
1223 CONSTANT: SM_CXICON 11
1224 CONSTANT: SM_CYICON 12
1225 CONSTANT: SM_CXCURSOR 13
1226 CONSTANT: SM_CYCURSOR 14
1227 CONSTANT: SM_CYMENU 15
1228 CONSTANT: SM_CXFULLSCREEN 16
1229 CONSTANT: SM_CYFULLSCREEN 17
1230 CONSTANT: SM_CYKANJIWINDOW 18
1231 CONSTANT: SM_MOUSEPRESENT 19
1232 CONSTANT: SM_CYVSCROLL 20
1233 CONSTANT: SM_CXHSCROLL 21
1234 CONSTANT: SM_DEBUG 22
1235 CONSTANT: SM_SWAPBUTTON 23
1236 CONSTANT: SM_RESERVED1 24
1237 CONSTANT: SM_RESERVED2 25
1238 CONSTANT: SM_RESERVED3 26
1239 CONSTANT: SM_RESERVED4 27
1240 CONSTANT: SM_CXMIN 28
1241 CONSTANT: SM_CYMIN 29
1242 CONSTANT: SM_CXSIZE 30
1243 CONSTANT: SM_CYSIZE 31
1244 CONSTANT: SM_CXSIZEFRAME 32
1245 CONSTANT: SM_CXFRAME 32
1246 CONSTANT: SM_CYSIZEFRAME 33
1247 CONSTANT: SM_CYFRAME 33
1248 CONSTANT: SM_CXMINTRACK 34
1249 CONSTANT: SM_CYMINTRACK 35
1250 CONSTANT: SM_CXDOUBLECLK 36
1251 CONSTANT: SM_CYDOUBLECLK 37
1252 CONSTANT: SM_CXICONSPACING 38
1253 CONSTANT: SM_CYICONSPACING 39
1254 CONSTANT: SM_MENUDROPALIGNMENT 40
1255 CONSTANT: SM_PENWINDOWS 41
1256 CONSTANT: SM_DBCSENABLED 42
1257 CONSTANT: SM_CMOUSEBUTTONS 43
1258 CONSTANT: SM_SECURE 44
1259 CONSTANT: SM_CXEDGE 45
1260 CONSTANT: SM_CYEDGE 46
1261 CONSTANT: SM_CXMINSPACING 47
1262 CONSTANT: SM_CYMINSPACING 48
1263 CONSTANT: SM_CXSMICON 49
1264 CONSTANT: SM_CYSMICON 50
1265 CONSTANT: SM_CYSMCAPTION 51
1266 CONSTANT: SM_CXSMSIZE 52
1267 CONSTANT: SM_CYSMSIZE 53
1268 CONSTANT: SM_CXMENUSIZE 54
1269 CONSTANT: SM_CYMENUSIZE 55
1270 CONSTANT: SM_ARRANGE 56
1271 CONSTANT: SM_CXMINIMIZED 57
1272 CONSTANT: SM_CYMINIMIZED 58
1273 CONSTANT: SM_CXMAXTRACK 59
1274 CONSTANT: SM_CYMAXTRACK 60
1275 CONSTANT: SM_CXMAXIMIZED 61
1276 CONSTANT: SM_CYMAXIMIZED 62
1277 CONSTANT: SM_NETWORK 63
1278 ! CONSTANT: LR_DEFAULTSIZE 64
1279 CONSTANT: SM_CLEANBOOT 67
1280 CONSTANT: SM_CXDRAG 68
1281 CONSTANT: SM_CYDRAG 69
1282 CONSTANT: SM_SHOWSOUNDS 70
1283 CONSTANT: SM_CXMENUCHECK 71
1284 CONSTANT: SM_CYMENUCHECK 72
1285 CONSTANT: SM_SLOWMACHINE 73
1286 CONSTANT: SM_MIDEASTENABLED 74
1287 CONSTANT: SM_MOUSEWHEELPRESENT 75
1288 CONSTANT: SM_XVIRTUALSCREEN 76
1289 CONSTANT: SM_YVIRTUALSCREEN 77
1290 CONSTANT: SM_CXVIRTUALSCREEN 78
1291 CONSTANT: SM_CYVIRTUALSCREEN 79
1292 CONSTANT: SM_CMONITORS 80
1293 CONSTANT: SM_SAMEDISPLAYFORMAT 81
1294 CONSTANT: SM_IMMENABLED 82
1295 CONSTANT: SM_CXFOCUSBORDER 83
1296 CONSTANT: SM_CYFOCUSBORDER 84
1297 CONSTANT: SM_TABLETPC 86
1298 CONSTANT: SM_MEDIACENTER 87
1299 CONSTANT: SM_CMETRICS 88
1300 CONSTANT: SM_REMOTESESSION 0X1000
1301
1302 CONSTANT: DF_ALLOWOTHERACCOUNTHOOK 1
1303
1304 LIBRARY: user32
1305
1306 FUNCTION: HKL ActivateKeyboardLayout ( HKL hkl, UINT Flags )
1307 FUNCTION: BOOL AdjustWindowRect ( LPRECT lpRect, DWORD dwStyle, BOOL bMenu )
1308 FUNCTION: BOOL AdjustWindowRectEx ( LPRECT lpRect, DWORD dwStyle, BOOL bMenu, DWORD dwExStyle )
1309 ! FUNCTION: AlignRects
1310 ! FUNCTION: AllowForegroundActivation
1311 ! FUNCTION: AllowSetForegroundWindow
1312 ! FUNCTION: AnimateWindow
1313
1314 FUNCTION: BOOL AnyPopup ( )
1315
1316 ! FUNCTION: AppendMenuA
1317 ! FUNCTION: AppendMenuW
1318 ! FUNCTION: ArrangeIconicWindows
1319 ! FUNCTION: AttachThreadInput
1320 ! FUNCTION: BeginDeferWindowPos
1321
1322 FUNCTION: HDC BeginPaint ( HWND hwnd, LPPAINTSTRUCT lpPaint )
1323
1324 ! FUNCTION: BlockInput
1325 ! FUNCTION: BringWindowToTop
1326 ! FUNCTION: BroadcastSystemMessage
1327 ! FUNCTION: BroadcastSystemMessageA
1328 ! FUNCTION: BroadcastSystemMessageExA
1329 ! FUNCTION: BroadcastSystemMessageExW
1330 ! FUNCTION: BroadcastSystemMessageW
1331 ! FUNCTION: BuildReasonArray
1332 ! FUNCTION: CalcMenuBar
1333 ! FUNCTION: CallMsgFilter
1334 ! FUNCTION: CallMsgFilterA
1335 ! FUNCTION: CallMsgFilterW
1336 FUNCTION: LRESULT CallNextHookEx ( HHOOK hhk, int nCode, WPARAM wParam, LPARAM lParam )
1337 ! FUNCTION: CallWindowProcA
1338 ! FUNCTION: CallWindowProcW
1339 ! FUNCTION: CascadeChildWindows
1340 ! FUNCTION: CascadeWindows
1341 ! FUNCTION: ChangeClipboardChain
1342 FUNCTION: LONG ChangeDisplaySettingsExW ( LPCTSTR lpszDeviceName, DEVMODE *lpDevMode, HWND hwnd, DWORD dwFlags, LPVOID lParam )
1343 FUNCTION: LONG ChangeDisplaySettingsW ( DEVMODE *lpDevMode, DWORD dwFlags )
1344 ALIAS: ChangeDisplaySettingsEx ChangeDisplaySettingsExW
1345 ALIAS: ChangeDisplaySettings ChangeDisplaySettingsW
1346 ! FUNCTION: ChangeMenuA
1347 ! FUNCTION: ChangeMenuW
1348
1349 FUNCTION: BOOL ChangeWindowMessageFilter (
1350                 UINT message,
1351                 DWORD dwFlag )
1352 FUNCTION: BOOL ChangeWindowMessageFilterEx (
1353                 HWND hWnd,
1354                 UINT message,
1355                 DWORD action,
1356                 PCHANGEFILTERSTRUCT pChangeFilterStruct )
1357
1358 ! FUNCTION: CharLowerA
1359 ! FUNCTION: CharLowerBuffA
1360 ! FUNCTION: CharLowerBuffW
1361 ! FUNCTION: CharLowerW
1362 ! FUNCTION: CharNextA
1363 ! FUNCTION: CharNextExA
1364 ! FUNCTION: CharNextW
1365 ! FUNCTION: CharPrevA
1366 ! FUNCTION: CharPrevExA
1367 ! FUNCTION: CharPrevW
1368 ! FUNCTION: CharToOemA
1369 ! FUNCTION: CharToOemBuffA
1370 ! FUNCTION: CharToOemBuffW
1371 ! FUNCTION: CharToOemW
1372 ! FUNCTION: CharUpperA
1373 ! FUNCTION: CharUpperBuffA
1374 ! FUNCTION: CharUpperBuffW
1375 ! FUNCTION: CharUpperW
1376 ! FUNCTION: CheckDlgButton
1377 ! FUNCTION: CheckMenuItem
1378 ! FUNCTION: CheckMenuRadioItem
1379 ! FUNCTION: CheckRadioButton
1380 FUNCTION: HWND ChildWindowFromPoint ( HWND hWndParent, POINT point )
1381 ! FUNCTION: ChildWindowFromPointEx
1382 ! FUNCTION: ClientThreadSetup
1383 FUNCTION: BOOL ClientToScreen ( HWND hWnd, POINT* point )
1384 ! FUNCTION: CliImmSetHotKey
1385 FUNCTION: int ClipCursor ( RECT* clipRect )
1386 FUNCTION: BOOL CloseClipboard ( )
1387 ! FUNCTION: CloseDesktop
1388 ! FUNCTION: CloseWindow
1389 ! FUNCTION: CloseWindowStation
1390 ! FUNCTION: CopyAcceleratorTableA
1391 FUNCTION: int CopyAcceleratorTableW ( HACCEL hAccelSrc, LPACCEL lpAccelDst, int cAccelEntries )
1392 ALIAS: CopyAcceleratorTable CopyAcceleratorTableW
1393 ! FUNCTION: CopyIcon
1394 ! FUNCTION: CopyImage
1395 ! FUNCTION: CopyRect
1396 ! FUNCTION: CountClipboardFormats
1397 ! FUNCTION: CreateAcceleratorTableA
1398 FUNCTION: HACCEL CreateAcceleratorTableW ( LPACCEL lpaccl, int cEntries )
1399 ALIAS: CreateAcceleratorTable CreateAcceleratorTableW
1400 ! FUNCTION: CreateCaret
1401 ! FUNCTION: CreateCursor
1402 ! FUNCTION: CreateDesktopA
1403 FUNCTION: HDESK CreateDesktopW ( LPCTSTR lpszDesktop, LPCTSTR lpszDevice, DEVMODE* pDevmode, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa )
1404 ALIAS: CreateDesktop CreateDesktopW
1405 ! FUNCTION: CreateDialogIndirectParamA
1406 ! FUNCTION: CreateDialogIndirectParamAorW
1407 ! FUNCTION: CreateDialogIndirectParamW
1408 ! FUNCTION: CreateDialogParamA
1409 ! FUNCTION: CreateDialogParamW
1410 ! FUNCTION: CreateIcon
1411 ! FUNCTION: CreateIconFromResource
1412 ! FUNCTION: CreateIconFromResourceEx
1413 ! FUNCTION: CreateIconIndirect
1414 ! FUNCTION: CreateMDIWindowA
1415 ! FUNCTION: CreateMDIWindowW
1416 ! FUNCTION: CreateMenu
1417 ! FUNCTION: CreatePopupMenu
1418 ! FUNCTION: CreateSystemThreads
1419
1420 FUNCTION: HWND CreateWindowExW (
1421                 DWORD dwExStyle,
1422                 LPCTSTR lpClassName,
1423                 LPCTSTR lpWindowName,
1424                 DWORD dwStyle,
1425                 uint X,
1426                 uint Y,
1427                 uint nWidth,
1428                 uint nHeight,
1429                 HWND hWndParent,
1430                 HMENU hMenu,
1431                 HINSTANCE hInstance,
1432                 LPVOID lpParam )
1433
1434 ALIAS: CreateWindowEx CreateWindowExW
1435
1436 : CreateWindow ( a b c d e f g h i j k -- hwnd ) 0 12 -nrot CreateWindowEx ; inline
1437
1438 ! FUNCTION: CreateWindowStationA
1439 ! FUNCTION: CreateWindowStationW
1440 ! FUNCTION: CsrBroadcastSystemMessageExW
1441 ! FUNCTION: CtxInitUser32
1442 ! FUNCTION: DdeAbandonTransaction
1443 ! FUNCTION: DdeAccessData
1444 ! FUNCTION: DdeAddData
1445 ! FUNCTION: DdeClientTransaction
1446 ! FUNCTION: DdeCmpStringHandles
1447 ! FUNCTION: DdeConnect
1448 ! FUNCTION: DdeConnectList
1449 ! FUNCTION: DdeCreateDataHandle
1450 ! FUNCTION: DdeCreateStringHandleA
1451 ! FUNCTION: DdeCreateStringHandleW
1452 ! FUNCTION: DdeDisconnect
1453 ! FUNCTION: DdeDisconnectList
1454 ! FUNCTION: DdeEnableCallback
1455 ! FUNCTION: DdeFreeDataHandle
1456 ! FUNCTION: DdeFreeStringHandle
1457 ! FUNCTION: DdeGetData
1458 ! FUNCTION: DdeGetLastError
1459 ! FUNCTION: DdeGetQualityOfService
1460 ! FUNCTION: DdeImpersonateClient
1461 ! FUNCTION: DdeInitializeA
1462 ! FUNCTION: DdeInitializeW
1463 ! FUNCTION: DdeKeepStringHandle
1464 ! FUNCTION: DdeNameService
1465 ! FUNCTION: DdePostAdvise
1466 ! FUNCTION: DdeQueryConvInfo
1467 ! FUNCTION: DdeQueryNextServer
1468 ! FUNCTION: DdeQueryStringA
1469 ! FUNCTION: DdeQueryStringW
1470 ! FUNCTION: DdeReconnect
1471 ! FUNCTION: DdeSetQualityOfService
1472 ! FUNCTION: DdeSetUserHandle
1473 ! FUNCTION: DdeUnaccessData
1474 ! FUNCTION: DdeUninitialize
1475 ! FUNCTION: DefDlgProcA
1476 ! FUNCTION: DefDlgProcW
1477 ! FUNCTION: DeferWindowPos
1478 ! FUNCTION: DefFrameProcA
1479 ! FUNCTION: DefFrameProcW
1480 ! FUNCTION: DefMDIChildProcA
1481 ! FUNCTION: DefMDIChildProcW
1482 FUNCTION: LRESULT DefRawInputProc ( PRAWINPUT* paRawInput, INT nInput, UINT cbSizeHeader )
1483 FUNCTION: LRESULT DefWindowProcW ( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam )
1484 ALIAS: DefWindowProc DefWindowProcW
1485 ! FUNCTION: DeleteMenu
1486 ! FUNCTION: DeregisterShellHookWindow
1487 FUNCTION: BOOL DestroyAcceleratorTable ( HACCEL hAccel )
1488 ! FUNCTION: DestroyCaret
1489 ! FUNCTION: DestroyCursor
1490 ! FUNCTION: DestroyIcon
1491 ! FUNCTION: DestroyMenu
1492 ! FUNCTION: DestroyReasons
1493 FUNCTION: BOOL DestroyWindow ( HWND hWnd )
1494 ! FUNCTION: DeviceEventWorker
1495 ! FUNCTION: DialogBoxIndirectParamA
1496 ! FUNCTION: DialogBoxIndirectParamAorW
1497 ! FUNCTION: DialogBoxIndirectParamW
1498 ! FUNCTION: DialogBoxParamA
1499 ! FUNCTION: DialogBoxParamW
1500 ! FUNCTION: DisableProcessWindowsGhosting
1501
1502 FUNCTION: LONG DispatchMessageW ( MSG* lpMsg )
1503 ALIAS: DispatchMessage DispatchMessageW
1504
1505 ! FUNCTION: DisplayExitWindowsWarnings
1506 ! FUNCTION: DlgDirListA
1507 ! FUNCTION: DlgDirListComboBoxA
1508 ! FUNCTION: DlgDirListComboBoxW
1509 ! FUNCTION: DlgDirListW
1510 ! FUNCTION: DlgDirSelectComboBoxExA
1511 ! FUNCTION: DlgDirSelectComboBoxExW
1512 ! FUNCTION: DlgDirSelectExA
1513 ! FUNCTION: DlgDirSelectExW
1514 ! FUNCTION: DragDetect
1515 ! FUNCTION: DragObject
1516
1517
1518 FUNCTION: BOOL DrawAnimatedRects ( HWND hWnd, int idAni, RECT* lprcFrom, RECT* lprcTo )
1519 ! FUNCTION: BOOL DrawCaption ( HWND hWnd, HDC hdc, LPRECT lprc, UINT uFlags )
1520
1521 ! FUNCTION: DrawEdge
1522 ! FUNCTION: DrawFocusRect
1523 ! FUNCTION: DrawFrame
1524 ! FUNCTION: DrawFrameControl
1525
1526 FUNCTION: BOOL DrawIcon ( HDC hDC, int X, int Y, HICON hIcon )
1527
1528 ! FUNCTION: DrawIconEx
1529 ! FUNCTION: DrawMenuBar
1530 ! FUNCTION: DrawMenuBarTemp
1531 ! FUNCTION: DrawStateA
1532 ! FUNCTION: DrawStateW
1533 ! FUNCTION: DrawTextA
1534 ! FUNCTION: DrawTextExA
1535 ! FUNCTION: DrawTextExW
1536 ! FUNCTION: DrawTextW
1537 ! FUNCTION: EditWndProc
1538 FUNCTION: BOOL EmptyClipboard ( )
1539 FUNCTION: BOOL EnableMenuItem ( HMENU hMenu, UINT uIDEnableItem, UINT uEnable )
1540 ! FUNCTION: EnableScrollBar
1541 ! FUNCTION: EnableWindow
1542 ! FUNCTION: EndDeferWindowPos
1543 ! FUNCTION: EndDialog
1544 ! FUNCTION: EndMenu
1545
1546 FUNCTION: BOOL EndPaint ( HWND hWnd, PAINTSTRUCT* lpPaint )
1547
1548 ! FUNCTION: EndTask
1549 ! FUNCTION: EnterReaderModeHelper
1550 ! FUNCTION: EnumChildWindows
1551 FUNCTION: UINT EnumClipboardFormats ( UINT format )
1552 ! FUNCTION: EnumDesktopsA
1553
1554 FUNCTION: BOOL EnumDesktopsW (
1555     HWINSTA          hwinsta,
1556     DESKTOPENUMPROCW lpEnumFunc,
1557     LPARAM           lParam
1558 )
1559
1560 FUNCTION: BOOL EnumDesktopWindows ( HDESK hDesktop, WNDENUMPROC lpFn, LPARAM lParam )
1561 ! FUNCTION: EnumDisplayDevicesA
1562 FUNCTION: BOOL EnumDisplayDevicesW (
1563     LPCWSTR          lpDevice,
1564     DWORD            iDevNum,
1565     PDISPLAY_DEVICEW lpDisplayDevice,
1566     DWORD            dwFlags
1567 )
1568 CALLBACK: BOOL MONITORENUMPROC ( HMONITOR arg1, HDC arg2, LPRECT arg3, LPARAM arg4 )
1569 FUNCTION: BOOL EnumDisplayMonitors ( HDC hdc, LPRECT lprcClip, MONITORENUMPROC lpfnEnum, LPARAM dwData )
1570 ! FUNCTION: EnumDisplaySettingsA
1571 ! FUNCTION: EnumDisplaySettingsExA
1572 FUNCTION: BOOL EnumDisplaySettingsExW ( LPCWSTR  lpszDeviceName,
1573   DWORD    iModeNum,
1574   DEVMODEW *lpDevMode,
1575   DWORD    dwFlags
1576 )
1577
1578 FUNCTION: BOOL EnumDisplaySettingsW ( LPCTSTR lpszDeviceName, DWORD iModeNum, DEVMODE *lpDevMode )
1579 ALIAS: EnumDisplaySettings EnumDisplaySettingsW
1580 ! FUNCTION: EnumPropsA
1581 ! FUNCTION: EnumPropsExA
1582 ! FUNCTION: EnumPropsExW
1583 ! FUNCTION: EnumPropsW
1584 ! FUNCTION: EnumThreadWindows
1585 FUNCTION: BOOL EnumWindows ( WNDENUMPROC lpEnumFunc, LPARAM lParam )
1586 ! FUNCTION: EnumWindowStationsA
1587 ! FUNCTION: EnumWindowStationsW
1588 ! FUNCTION: EqualRect
1589 ! FUNCTION: ExcludeUpdateRgn
1590 ! FUNCTION: ExitWindowsEx
1591 FUNCTION: int FillRect ( HDC hDC, RECT* lprc, HBRUSH hbr )
1592 FUNCTION: HWND FindWindowA ( c-string lpClassName, c-string lpWindowName )
1593 FUNCTION: HWND FindWindowW ( c-string lpClassName, c-string lpWindowName )
1594 ALIAS: FindWindow FindWindowW
1595 FUNCTION: HWND FindWindowExA ( HWND hwndParent, HWND childAfter, c-string lpClassName, c-string lpWindowName )
1596 FUNCTION: HWND FindWindowExW ( HWND hwndParent, HWND hwndChildAfter, c-string lpszClass, c-string lpszWindow )
1597 ALIAS: FindWindowEx FindWindowExW
1598 ! FUNCTION: FindWindowW
1599 ! FUNCTION: FlashWindow
1600 ! FUNCTION: FlashWindowEx
1601 ! FUNCTION: FrameRect
1602 ! FUNCTION: FreeDDElParam
1603 ! FUNCTION: GetActiveWindow
1604 ! FUNCTION: GetAltTabInfo
1605 ! FUNCTION: GetAltTabInfoA
1606 ! FUNCTION: GetAltTabInfoW
1607 ! FUNCTION: GetAncestor
1608 ! FUNCTION: GetAppCompatFlags
1609 ! FUNCTION: GetAppCompatFlags2
1610 ! FUNCTION: GetAsyncKeyState
1611 FUNCTION: HWND GetCapture ( )
1612 ! FUNCTION: GetCaretBlinkTime
1613 ! FUNCTION: GetCaretPos
1614 FUNCTION: BOOL GetClassInfoW ( HINSTANCE hInst, LPCWSTR lpszClass, LPWNDCLASS lpwcx )
1615 ALIAS: GetClassInfo GetClassInfoW
1616
1617 FUNCTION: BOOL GetClassInfoExW ( HINSTANCE hInst, LPCWSTR lpszClass, LPWNDCLASSEX lpwcx )
1618 ALIAS: GetClassInfoEx GetClassInfoExW
1619
1620 FUNCTION: ULONG_PTR GetClassLongW ( HWND hWnd, int nIndex )
1621 ALIAS: GetClassLong GetClassLongW
1622 ALIAS: GetClassLongPtr GetClassLongW
1623
1624
1625 ! FUNCTION: GetClassNameA
1626 ! FUNCTION: GetClassNameW
1627 ! FUNCTION: GetClassWord
1628 FUNCTION: BOOL GetClientRect ( HWND hWnd, LPRECT lpRect )
1629
1630 FUNCTION: HANDLE GetClipboardData ( UINT uFormat )
1631
1632 ! FUNCTION: GetClipboardFormatNameA
1633 ! FUNCTION: GetClipboardFormatNameW
1634 FUNCTION: HWND GetClipboardOwner ( )
1635 FUNCTION: DWORD GetClipboardSequenceNumber ( )
1636 ! FUNCTION: GetClipboardViewer
1637 ! FUNCTION: GetClipCursor
1638 ! FUNCTION: GetComboBoxInfo
1639 ! FUNCTION: GetCursor
1640 ! FUNCTION: GetCursorFrameInfo
1641 ! FUNCTION: GetCursorInfo
1642 FUNCTION: BOOL GetCursorPos ( LPPOINT lpPoint )
1643 FUNCTION: HDC GetDC ( HWND hWnd )
1644 FUNCTION: HDC GetDCEx ( HWND hWnd, HRGN hrgnClip, DWORD flags )
1645 FUNCTION: HWND GetDesktopWindow ( )
1646 ! FUNCTION: GetDialogBaseUnits
1647 ! FUNCTION: GetDlgCtrlID
1648 FUNCTION: HWND GetDlgItem ( HWND hDlg, int nIDDlgItem )
1649 ! FUNCTION: GetDlgItemInt
1650 ! FUNCTION: GetDlgItemTextA
1651 FUNCTION: UINT GetDlgItemTextW ( HWND hDlg, int nIDDlgItem, LPTSTR lpString, int nMaxCount )
1652 ALIAS: GetDlgItemText GetDlgItemTextW
1653 FUNCTION: uint GetDoubleClickTime ( )
1654 FUNCTION: HWND GetFocus ( )
1655 FUNCTION: HWND GetForegroundWindow ( )
1656 ! FUNCTION: GetGuiResources
1657 ! FUNCTION: GetGUIThreadInfo
1658 ! FUNCTION: GetIconInfo
1659 ! FUNCTION: GetInputDesktop
1660 ! FUNCTION: GetInputState
1661 ! FUNCTION: GetInternalWindowPos
1662 ! FUNCTION: GetKBCodePage
1663 FUNCTION: HKL GetKeyboardLayout ( DWORD idThread )
1664 ! FUNCTION: GetKeyboardLayoutList
1665 ! FUNCTION: GetKeyboardLayoutNameA
1666 ! FUNCTION: GetKeyboardLayoutNameW
1667 FUNCTION: BOOL GetKeyboardState ( BYTE *lpKeyState )
1668 FUNCTION: int GetKeyboardType ( int nTypeFlag )
1669 ! FUNCTION: GetKeyNameTextA
1670 ! FUNCTION: GetKeyNameTextW
1671 FUNCTION: SHORT GetKeyState ( int nVirtKey )
1672 ! FUNCTION: GetLastActivePopup
1673 ! FUNCTION: GetLastInputInfo
1674 ! FUNCTION: GetLayeredWindowAttributes
1675 ! FUNCTION: GetListBoxInfo
1676 ! FUNCTION: GetMenu
1677 ! FUNCTION: GetMenuBarInfo
1678 ! FUNCTION: GetMenuCheckMarkDimensions
1679 ! FUNCTION: GetMenuContextHelpId
1680 ! FUNCTION: GetMenuDefaultItem
1681 ! FUNCTION: GetMenuInfo
1682 ! FUNCTION: GetMenuItemCount
1683 ! FUNCTION: GetMenuItemID
1684 ! FUNCTION: GetMenuItemInfoA
1685 ! FUNCTION: GetMenuItemInfoW
1686 ! FUNCTION: GetMenuItemRect
1687 ! FUNCTION: GetMenuState
1688 ! FUNCTION: GetMenuStringA
1689 ! FUNCTION: GetMenuStringW
1690
1691 FUNCTION: BOOL GetMessageW ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax )
1692 ALIAS: GetMessage GetMessageW
1693
1694 FUNCTION: LPARAM GetMessageExtraInfo ( )
1695 ! FUNCTION: GetMessagePos
1696 ! FUNCTION: GetMessageTime
1697 ! FUNCTION: BOOL GetMonitorInfoA ( HMONITOR hMonitor, LPMONITORINFO lpmi )
1698 FUNCTION: BOOL GetMonitorInfoW ( HMONITOR hMonitor, LPMONITORINFO lpmi )
1699 ALIAS: GetMonitorInfo GetMonitorInfoW
1700
1701 ! FUNCTION: GetMouseMovePointsEx
1702 ! FUNCTION: GetNextDlgGroupItem
1703 ! FUNCTION: GetNextDlgTabItem
1704 ! FUNCTION: GetOpenClipboardWindow
1705 FUNCTION: HWND GetParent ( HWND hWnd )
1706 FUNCTION: int GetPriorityClipboardFormat ( UINT* paFormatPriorityList, int cFormats )
1707 ! FUNCTION: GetProcessDefaultLayout
1708 FUNCTION: HWINSTA GetProcessWindowStation ( )
1709 ! FUNCTION: GetProgmanWindow
1710 ! FUNCTION: GetPropA
1711 ! FUNCTION: GetPropW
1712 ! FUNCTION: GetQueueStatus
1713 FUNCTION: UINT GetRawInputBuffer ( PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader )
1714 FUNCTION: UINT GetRawInputData ( HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader )
1715 FUNCTION: UINT GetRawInputDeviceInfoA ( HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize )
1716 FUNCTION: UINT GetRawInputDeviceInfoW ( HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize )
1717 ALIAS: GetRawInputDeviceInfo GetRawInputDeviceInfoW
1718 FUNCTION: UINT GetRawInputDeviceList ( PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize )
1719 FUNCTION: UINT GetRegisteredRawInputDevices ( PRAWINPUTDEVICE pRawInputDevices, PUINT puiNumDevices, UINT cbSize )
1720 ! FUNCTION: GetReasonTitleFromReasonCode
1721 ! FUNCTION: GetScrollBarInfo
1722 ! FUNCTION: GetScrollInfo
1723 ! FUNCTION: GetScrollPos
1724 ! FUNCTION: GetScrollRange
1725 ! FUNCTION: GetShellWindow
1726 ! FUNCTION: GetSubMenu
1727 FUNCTION: COLORREF GetSysColor ( int nIndex )
1728 FUNCTION: HBRUSH GetSysColorBrush ( int nIndex )
1729 FUNCTION: HMENU GetSystemMenu ( HWND hWnd, BOOL bRevert )
1730 ! FUNCTION: GetSystemMetrics
1731 ! FUNCTION: GetTabbedTextExtentA
1732 ! FUNCTION: GetTabbedTextExtentW
1733 ! FUNCTION: GetTaskmanWindow
1734 FUNCTION: HDESK GetThreadDesktop ( DWORD dwThreadId )
1735 ! FUNCTION: GetTitleBarInfo
1736
1737
1738 FUNCTION: HWND GetTopWindow ( HWND hWnd )
1739 ! FUNCTION: BOOL GetUpdateRect ( HWND hWnd, LPRECT lpRect, BOOL bErase )
1740 FUNCTION: int GetUpdateRgn ( HWND hWnd, HRGN hRgn, BOOL bErase )
1741
1742
1743 ! FUNCTION: GetUserObjectInformationA
1744 ! FUNCTION: GetUserObjectInformationW
1745 ! FUNCTION: GetUserObjectSecurity
1746 FUNCTION: HWND GetWindow ( HWND hWnd, UINT uCmd )
1747 ! FUNCTION: GetWindowContextHelpId
1748 ! FUNCTION: GetWindowDC
1749 ! FUNCTION: GetWindowInfo
1750 ! FUNCTION: GetWindowLongA
1751 ! FUNCTION: GetWindowLongW
1752 FUNCTION: LONG_PTR GetWindowLongW ( HANDLE hWnd, int index )
1753 ALIAS: GetWindowLong GetWindowLongW
1754
1755 FUNCTION: LONG_PTR GetWindowLongPtrW ( HWND hWnd, int nIndex )
1756 ALIAS: GetWindowLongPtr GetWindowLongPtrW
1757 ! FUNCTION: GetWindowModuleFileName
1758 ! FUNCTION: GetWindowModuleFileNameA
1759 ! FUNCTION: GetWindowModuleFileNameW
1760 ! FUNCTION: GetWindowPlacement
1761 FUNCTION: BOOL GetWindowRect ( HWND hWnd, LPRECT lpRect )
1762 ! FUNCTION: GetWindowRgn
1763 ! FUNCTION: GetWindowRgnBox
1764 ! FUNCTION: int GetWindowTextA ( HWND hWnd, char* lpString, int nMaxCount )
1765 FUNCTION: int GetWindowTextW ( HWND hWnd, LPTSTR lpString, int nMaxCount )
1766 ALIAS: GetWindowText GetWindowTextW
1767 ! FUNCTION: GetWindowTextLengthA
1768 ! FUNCTION: GetWindowTextLengthW
1769 ! FUNCTION: GetWindowTextW
1770 FUNCTION: DWORD GetWindowThreadProcessId ( HWND hWnd, void* lpdwProcessId )
1771 ! FUNCTION: GetWindowWord
1772 ! FUNCTION: GetWinStationInfo
1773 ! FUNCTION: GrayStringA
1774 ! FUNCTION: GrayStringW
1775 ! FUNCTION: HideCaret
1776 ! FUNCTION: HiliteMenuItem
1777 ! FUNCTION: ImpersonateDdeClientWindow
1778 ! FUNCTION: IMPGetIMEA
1779 ! FUNCTION: IMPGetIMEW
1780 ! FUNCTION: IMPQueryIMEA
1781 ! FUNCTION: IMPQueryIMEW
1782 ! FUNCTION: IMPSetIMEA
1783 ! FUNCTION: IMPSetIMEW
1784 ! FUNCTION: InflateRect
1785 ! FUNCTION: InitializeLpkHooks
1786 ! FUNCTION: InitializeWin32EntryTable
1787 ! FUNCTION: InSendMessage
1788 ! FUNCTION: InSendMessageEx
1789 ! FUNCTION: InsertMenuA
1790 ! FUNCTION: InsertMenuItemA
1791 ! FUNCTION: InsertMenuItemW
1792 ! FUNCTION: InsertMenuW
1793 ! FUNCTION: InternalGetWindowText
1794 ! FUNCTION: IntersectRect
1795 ! FUNCTION: InvalidateRect
1796 ! FUNCTION: InvalidateRgn
1797 ! FUNCTION: InvertRect
1798 ! FUNCTION: IsCharAlphaA
1799 ! FUNCTION: IsCharAlphaNumericA
1800 ! FUNCTION: IsCharAlphaNumericW
1801 ! FUNCTION: IsCharAlphaW
1802 ! FUNCTION: IsCharLowerA
1803 ! FUNCTION: IsCharLowerW
1804 ! FUNCTION: IsCharUpperA
1805 ! FUNCTION: IsCharUpperW
1806 FUNCTION: BOOL IsChild ( HWND hWndParent, HWND hWnd )
1807 FUNCTION: BOOL IsClipboardFormatAvailable ( UINT format )
1808 ! FUNCTION: IsDialogMessage
1809 ! FUNCTION: IsDialogMessageA
1810 ! FUNCTION: IsDialogMessageW
1811 ! FUNCTION: IsDlgButtonChecked
1812 FUNCTION: BOOL IsGUIThread ( BOOL bConvert )
1813 FUNCTION: BOOL IsHungAppWindow ( HWND hWnd )
1814 FUNCTION: BOOL IsIconic ( HWND hWnd )
1815 FUNCTION: BOOL IsMenu ( HMENU hMenu )
1816 ! FUNCTION: BOOL IsRectEmpty
1817 ! FUNCTION: BOOL IsServerSideWindow
1818 FUNCTION: BOOL IsWindow ( HWND hWnd )
1819 ! FUNCTION: BOOL IsWindowEnabled
1820 ! FUNCTION: BOOL IsWindowInDestroy
1821 FUNCTION: BOOL IsWindowUnicode ( HWND hWnd )
1822 FUNCTION: BOOL IsWindowVisible ( HWND hWnd )
1823 ! FUNCTION: BOOL IsWinEventHookInstalled
1824 FUNCTION: BOOL IsZoomed ( HWND hWnd )
1825 ! FUNCTION: keybd_event
1826 ! FUNCTION: KillSystemTimer
1827 ! FUNCTION: KillTimer
1828 ! FUNCTION: LoadAcceleratorsA
1829 FUNCTION: HACCEL LoadAcceleratorsW ( HINSTANCE hInstance, LPCTSTR lpTableName )
1830 ! FUNCTION: LoadBitmapA
1831 ! FUNCTION: LoadBitmapW
1832 ! FUNCTION: LoadCursorFromFileA
1833 ! FUNCTION: LoadCursorFromFileW
1834
1835
1836 FUNCTION: HCURSOR LoadCursorW ( HINSTANCE hInstance, LPCWSTR lpCursorName )
1837 ALIAS: LoadCursor LoadCursorW
1838
1839 FUNCTION: HICON LoadIconW ( HINSTANCE hInstance, LPCWSTR lpIconName )
1840 ALIAS: LoadIcon LoadIconW
1841
1842 ! FUNCTION: LoadImageA
1843 FUNCTION: HANDLE LoadImageW ( HINSTANCE hinst, LPCWSTR lpszName, UINT uType, int cxDesired, int cyDesired, UINT fuLoad )
1844 ALIAS: LoadImage LoadImageW
1845 ! FUNCTION: LoadKeyboardLayoutA
1846 ! FUNCTION: LoadKeyboardLayoutEx
1847 ! FUNCTION: LoadKeyboardLayoutW
1848 ! FUNCTION: LoadLocalFonts
1849 ! FUNCTION: LoadMenuA
1850 ! FUNCTION: LoadMenuIndirectA
1851 ! FUNCTION: LoadMenuIndirectW
1852 ! FUNCTION: LoadMenuW
1853 ! FUNCTION: LoadRemoteFonts
1854 ! FUNCTION: LoadStringA
1855 ! FUNCTION: LoadStringW
1856 ! FUNCTION: LockSetForegroundWindow
1857 ! FUNCTION: LockWindowStation
1858 ! FUNCTION: LockWindowUpdate
1859 ! FUNCTION: LockWorkStation
1860 ! FUNCTION: LookupIconIdFromDirectory
1861 ! FUNCTION: LookupIconIdFromDirectoryEx
1862 ! FUNCTION: MapDialogRect
1863
1864 FUNCTION: UINT MapVirtualKeyW ( UINT uCode, UINT uMapType )
1865 ALIAS: MapVirtualKey MapVirtualKeyW
1866
1867 FUNCTION: UINT MapVirtualKeyExW ( UINT uCode, UINT uMapType, HKL dwhkl )
1868 ALIAS: MapVirtualKeyEx MapVirtualKeyExW
1869
1870 FUNCTION: int MapWindowPoints ( HWND hWndFrom, HWND hWndTo, LPPOINT lpPoints, UINT cPoints )
1871 ! FUNCTION: MB_GetString
1872 ! FUNCTION: MBToWCSEx
1873 ! FUNCTION: MenuItemFromPoint
1874 ! FUNCTION: MenuWindowProcA
1875 ! FUNCTION: MenuWindowProcW
1876
1877 ! -1 is Simple beep
1878 FUNCTION: BOOL MessageBeep ( UINT uType )
1879
1880 FUNCTION: int MessageBoxA (
1881                 HWND hWnd,
1882                 LPCSTR lpText,
1883                 LPCSTR lpCaption,
1884                 UINT uType )
1885
1886 FUNCTION: int MessageBoxW (
1887                 HWND hWnd,
1888                 LPCWSTR lpText,
1889                 LPCWSTR lpCaption,
1890                 UINT uType )
1891
1892 FUNCTION: int MessageBoxExA ( HWND hWnd,
1893                 LPCSTR lpText,
1894                 LPCSTR lpCaption,
1895                 UINT uType,
1896                 WORD wLanguageId )
1897
1898 FUNCTION: int MessageBoxExW (
1899                 HWND hWnd,
1900                 LPCWSTR lpText,
1901                 LPCWSTR lpCaption,
1902                 UINT uType,
1903                 WORD wLanguageId )
1904
1905 ! FUNCTION: int MessageBoxIndirectA ( MSGBOXPARAMSA* params )
1906 ! FUNCTION: int MessageBoxIndirectW ( MSGBOXPARAMSW* params )
1907
1908
1909 ALIAS: MessageBox MessageBoxW
1910
1911 ALIAS: MessageBoxEx MessageBoxExW
1912
1913 ! : MessageBoxIndirect
1914     ! \ MessageBoxIndirectW \ MessageBoxIndirectA unicode-exec ;
1915
1916 ! FUNCTION: MessageBoxTimeoutA ! dllexported, not in header
1917 ! FUNCTION: MessageBoxTimeoutW ! dllexported, not in header
1918
1919 ! FUNCTION: ModifyMenuA
1920 ! FUNCTION: ModifyMenuW
1921 FUNCTION: HMONITOR MonitorFromPoint ( POINT pt, DWORD dwFlags )
1922 ! FUNCTION: MonitorFromRect
1923 FUNCTION: HMONITOR MonitorFromWindow ( HWND hWnd, DWORD dwFlags )
1924 ! FUNCTION: mouse_event
1925
1926
1927 FUNCTION: BOOL MoveWindow (
1928     HWND hWnd,
1929     int X,
1930     int Y,
1931     int nWidth,
1932     int nHeight,
1933     BOOL bRepaint )
1934
1935 ! FUNCTION: MsgWaitForMultipleObjects
1936 ! FUNCTION: MsgWaitForMultipleObjectsEx
1937 ! FUNCTION: NotifyWinEvent
1938 ! FUNCTION: OemKeyScan
1939 ! FUNCTION: OemToCharA
1940 ! FUNCTION: OemToCharBuffA
1941 ! FUNCTION: OemToCharBuffW
1942 ! FUNCTION: OemToCharW
1943 ! FUNCTION: OffsetRect
1944 FUNCTION: BOOL OpenClipboard ( HWND hWndNewOwner )
1945 ! FUNCTION: OpenDesktopA
1946 FUNCTION: HDESK OpenDesktopW ( LPTSTR lpsazDesktop, DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess )
1947 ALIAS: OpenDesktop OpenDesktopW
1948 ! FUNCTION: OpenIcon
1949 FUNCTION: HDESK OpenInputDesktop ( DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess )
1950 ! FUNCTION: OpenWindowStationA
1951 ! FUNCTION: OpenWindowStationW
1952 ! FUNCTION: PackDDElParam
1953 ! FUNCTION: PaintDesktop
1954 ! FUNCTION: PaintMenuBar
1955 FUNCTION: BOOL PeekMessageA ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg )
1956 FUNCTION: BOOL PeekMessageW ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg )
1957 ALIAS: PeekMessage PeekMessageW
1958
1959 ! FUNCTION: PostMessageA
1960 ! FUNCTION: PostMessageW
1961 FUNCTION: void PostQuitMessage ( int nExitCode )
1962 ! FUNCTION: PostThreadMessageA
1963 ! FUNCTION: PostThreadMessageW
1964 ! FUNCTION: PrintWindow
1965 ! FUNCTION: PrivateExtractIconExA
1966 ! FUNCTION: PrivateExtractIconExW
1967 ! FUNCTION: PrivateExtractIconsA
1968 ! FUNCTION: PrivateExtractIconsW
1969 ! FUNCTION: PrivateSetDbgTag
1970 ! FUNCTION: PrivateSetRipFlags
1971 ! FUNCTION: PtInRect
1972 ! FUNCTION: QuerySendMessage
1973 ! FUNCTION: QueryUserCounters
1974 ! FUNCTION: RealChildWindowFromPoint
1975 ! FUNCTION: RealGetWindowClass
1976 ! FUNCTION: RealGetWindowClassA
1977 ! FUNCTION: RealGetWindowClassW
1978 ! FUNCTION: ReasonCodeNeedsBugID
1979 ! FUNCTION: ReasonCodeNeedsComment
1980 ! FUNCTION: RecordShutdownReason
1981 ! FUNCTION: RedrawWindow
1982
1983 FUNCTION: ATOM RegisterClassA ( WNDCLASS* lpWndClass )
1984 FUNCTION: ATOM RegisterClassW ( WNDCLASS* lpWndClass )
1985 FUNCTION: ATOM RegisterClassExA ( WNDCLASSEX* lpwcx )
1986 FUNCTION: ATOM RegisterClassExW ( WNDCLASSEX* lpwcx )
1987
1988 ALIAS: RegisterClass RegisterClassW
1989 ALIAS: RegisterClassEx RegisterClassExW
1990
1991 ! FUNCTION: RegisterClipboardFormatA
1992 ! FUNCTION: RegisterClipboardFormatW
1993 FUNCTION: HANDLE RegisterDeviceNotificationA ( HANDLE hRecipient, LPVOID NotificationFilter, DWORD Flags )
1994 FUNCTION: HANDLE RegisterDeviceNotificationW ( HANDLE hRecipient, LPVOID NotificationFilter, DWORD Flags )
1995 ALIAS: RegisterDeviceNotification RegisterDeviceNotificationW
1996 ! FUNCTION: RegisterHotKey
1997 ! FUNCTION: RegisterLogonProcess
1998 ! FUNCTION: RegisterMessagePumpHook
1999 FUNCTION: BOOL RegisterRawInputDevices ( PCRAWINPUTDEVICE pRawInputDevices, UINT uiNumDevices, UINT cbSize )
2000 ! FUNCTION: RegisterServicesProcess
2001 ! FUNCTION: RegisterShellHookWindow
2002 ! FUNCTION: RegisterSystemThread
2003 ! FUNCTION: RegisterTasklist
2004 ! FUNCTION: RegisterUserApiHook
2005 ! FUNCTION: RegisterWindowMessageA
2006 ! FUNCTION: RegisterWindowMessageW
2007 FUNCTION: BOOL ReleaseCapture ( )
2008 FUNCTION: int ReleaseDC ( HWND hWnd, HDC hDC )
2009 ! FUNCTION: RemoveMenu
2010 ! FUNCTION: RemovePropA
2011 ! FUNCTION: RemovePropW
2012 ! FUNCTION: ReplyMessage
2013 ! FUNCTION: ResolveDesktopForWOW
2014 ! FUNCTION: ReuseDDElParam
2015 FUNCTION: BOOL ScreenToClient ( HWND hWnd, LPPOINT lpPoint )
2016 ! FUNCTION: ScrollChildren
2017 ! FUNCTION: ScrollDC
2018 ! FUNCTION: ScrollWindow
2019 ! FUNCTION: ScrollWindowEx
2020 ! FUNCTION: SendDlgItemMessageA
2021 ! FUNCTION: SendDlgItemMessageW
2022 ! FUNCTION: SendIMEMessageExA
2023 ! FUNCTION: SendIMEMessageExW
2024 FUNCTION: UINT SendInput ( UINT nInputs, LPINPUT pInputs, int cbSize )
2025 FUNCTION: LRESULT SendMessageW ( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
2026 ALIAS: SendMessage SendMessageW
2027 ! FUNCTION: SendMessageCallbackA
2028 ! FUNCTION: SendMessageCallbackW
2029 ! FUNCTION: SendMessageTimeoutA
2030 ! FUNCTION: SendMessageTimeoutW
2031 ! FUNCTION: SendNotifyMessageA
2032 ! FUNCTION: SendNotifyMessageW
2033 ! FUNCTION: SetActiveWindow
2034 FUNCTION: HWND SetCapture ( HWND hWnd )
2035 ! FUNCTION: SetCaretBlinkTime
2036 ! FUNCTION: SetCaretPos
2037
2038 FUNCTION: ULONG_PTR SetClassLongW ( HWND hWnd, int nIndex, LONG_PTR dwNewLong )
2039 ALIAS: SetClassLongPtr SetClassLongW
2040 ALIAS: SetClassLong SetClassLongW
2041
2042 ! FUNCTION: SetClassWord
2043 FUNCTION: HANDLE SetClipboardData ( UINT uFormat, HANDLE hMem )
2044 ! FUNCTION: SetClipboardViewer
2045 ! FUNCTION: SetConsoleReserveKeys
2046 ! FUNCTION: SetCursor
2047 ! FUNCTION: SetCursorContents
2048 ! FUNCTION: SetCursorPos
2049 ! FUNCTION: SetDebugErrorLevel
2050 ! FUNCTION: SetDeskWallpaper
2051 ! FUNCTION: SetDlgItemInt
2052 ! FUNCTION: SetDlgItemTextA
2053 ! FUNCTION: SetDlgItemTextW
2054 ! FUNCTION: SetDoubleClickTime
2055 FUNCTION: HWND SetFocus ( HWND hWnd )
2056 FUNCTION: BOOL SetForegroundWindow ( HWND hWnd )
2057 ! FUNCTION: SetInternalWindowPos
2058 ! FUNCTION: SetKeyboardState
2059 ! type is ignored
2060 FUNCTION: void SetLastErrorEx ( DWORD dwErrCode, DWORD dwType )
2061 : SetLastError ( errcode -- ) 0 SetLastErrorEx ; inline
2062 ! FUNCTION: SetLayeredWindowAttributes
2063 ! FUNCTION: SetLogonNotifyWindow
2064 ! FUNCTION: SetMenu
2065 ! FUNCTION: SetMenuContextHelpId
2066 ! FUNCTION: SetMenuDefaultItem
2067 ! FUNCTION: SetMenuInfo
2068 ! FUNCTION: SetMenuItemBitmaps
2069 ! FUNCTION: SetMenuItemInfoA
2070 ! FUNCTION: SetMenuItemInfoW
2071 ! FUNCTION: SetMessageExtraInfo
2072 ! FUNCTION: SetMessageQueue
2073 ! FUNCTION: SetParent
2074 ! FUNCTION: SetProcessDefaultLayout
2075 ! FUNCTION: SetProcessWindowStation
2076 ! FUNCTION: SetProgmanWindow
2077 ! FUNCTION: SetPropA
2078 ! FUNCTION: SetPropW
2079 ! FUNCTION: SetRect
2080 ! FUNCTION: SetRectEmpty
2081 ! FUNCTION: SetScrollInfo
2082 ! FUNCTION: SetScrollPos
2083 ! FUNCTION: SetScrollRange
2084 ! FUNCTION: SetShellWindow
2085 ! FUNCTION: SetShellWindowEx
2086 ! FUNCTION: SetSysColors
2087 ! FUNCTION: SetSysColorsTemp
2088 ! FUNCTION: SetSystemCursor
2089 ! FUNCTION: SetSystemMenu
2090 ! FUNCTION: SetSystemTimer
2091 ! FUNCTION: SetTaskmanWindow
2092 ! FUNCTION: SetThreadDesktop
2093 ! FUNCTION: SetTimer
2094 ! FUNCTION: SetUserObjectInformationA
2095 ! FUNCTION: SetUserObjectInformationW
2096 ! FUNCTION: SetUserObjectSecurity
2097 ! FUNCTION: SetWindowContextHelpId
2098 ! FUNCTION: SetWindowLongA
2099 ! FUNCTION: SetWindowLongW
2100 FUNCTION: LONG_PTR SetWindowLongW ( HANDLE hWnd, int index, LONG_PTR dwNewLong )
2101 ALIAS: SetWindowLong SetWindowLongW
2102 ! FUNCTION: SetWindowPlacement
2103 FUNCTION: BOOL SetWindowPos ( HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags )
2104
2105 FUNCTION: LONG_PTR SetWindowLongPtrW ( HWND hWnd, int nIndex, LONG_PTR dwNewLong )
2106 ALIAS: SetWindowLongPtr SetWindowLongPtrW
2107
2108 : HWND_BOTTOM ( -- alien ) 1 <alien> ;
2109 : HWND_MESSAGE ( -- alien ) -3 <alien> ;
2110 : HWND_NOTOPMOST ( -- alien ) -2 <alien> ;
2111 CONSTANT: HWND_TOP f
2112 : HWND_TOPMOST ( -- alien ) -1 <alien> ;
2113 : HWND_DESKTOP ( -- alien ) 0 <alien> ;
2114 : HWND_BROADCAST ( -- alien ) 65535 <alien> ;
2115
2116 ! FUNCTION: SetWindowRgn
2117 ! FUNCTION: SetWindowsHookA
2118 ! FUNCTION: SetWindowsHookExA
2119 FUNCTION: HHOOK SetWindowsHookExW ( int idHook, HOOKPROC lpfn, HINSTANCE hMod, DWORD dwThreadId )
2120 ALIAS: SetWindowsHookEx SetWindowsHookExW
2121 ! FUNCTION: SetWindowsHookW
2122 ! FUNCTION: SetWindowStationUser
2123 ! FUNCTION: SetWindowTextA
2124 ! FUNCTION: SetWindowTextW
2125 ! FUNCTION: SetWindowWord
2126 ! FUNCTION: SetWinEventHook
2127 ! FUNCTION: ShowCaret
2128 FUNCTION: int ShowCursor ( BOOL show )
2129 ! FUNCTION: ShowOwnedPopups
2130 ! FUNCTION: ShowScrollBar
2131 ! FUNCTION: ShowStartGlass
2132
2133 FUNCTION: BOOL ShowWindow ( HWND hWnd, int nCmdShow )
2134
2135 ! FUNCTION: ShowWindowAsync
2136 ! FUNCTION: SoftModalMessageBox
2137 ! FUNCTION: SubtractRect
2138 ! FUNCTION: SwapMouseButton
2139 ! FUNCTION: SwitchDesktop
2140 ! FUNCTION: SwitchToThisWindow
2141 ! FUNCTION: SystemParametersInfoA
2142
2143 FUNCTION: BOOL SystemParametersInfoW ( UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni )
2144 ALIAS: SystemParametersInfo SystemParametersInfoW
2145
2146 ! FUNCTION: TabbedTextOutA
2147 ! FUNCTION: TabbedTextOutW
2148 ! FUNCTION: TileChildWindows
2149 ! FUNCTION: TileWindows
2150 ! FUNCTION: ToAscii
2151 ! FUNCTION: ToAsciiEx
2152 FUNCTION: int ToUnicode ( UINT wVirtKey, UINT wScanCode, BYTE *lpKeyState, LPWSTR pwszBuff, int cchBuff, UINT wFlags )
2153 ! FUNCTION: ToUnicodeEx
2154 FUNCTION: BOOL TrackMouseEvent ( LPTRACKMOUSEEVENT lpEventTrack )
2155 ! FUNCTION: TrackPopupMenu
2156 ! FUNCTION: TrackPopupMenuEx
2157 ! FUNCTION: TranslateAccelerator
2158 ! FUNCTION: TranslateAcceleratorA
2159 FUNCTION: int TranslateAcceleratorW ( HWND hWnd, HACCEL hAccTable, LPMSG lpMsg )
2160 ALIAS: TranslateAccelerator TranslateAcceleratorW
2161
2162 ! FUNCTION: TranslateMDISysAccel
2163 FUNCTION: BOOL TranslateMessage ( MSG* lpMsg )
2164
2165 ! FUNCTION: UnhookWindowsHook
2166 FUNCTION: BOOL UnhookWindowsHookEx ( HHOOK hhk )
2167 ! FUNCTION: UnhookWinEvent
2168 ! FUNCTION: UnionRect
2169 ! FUNCTION: UnloadKeyboardLayout
2170 ! FUNCTION: UnlockWindowStation
2171 ! FUNCTION: UnpackDDElParam
2172 FUNCTION: BOOL UnregisterClassW ( LPCWSTR lpClassName, HINSTANCE hInstance )
2173 ALIAS: UnregisterClass UnregisterClassW
2174 FUNCTION: BOOL UnregisterDeviceNotification ( HANDLE hDevNotify )
2175 ! FUNCTION: UnregisterHotKey
2176 ! FUNCTION: UnregisterMessagePumpHook
2177 ! FUNCTION: UnregisterUserApiHook
2178 ! FUNCTION: UpdateLayeredWindow
2179 ! FUNCTION: UpdatePerUserSystemParameters
2180
2181 FUNCTION: BOOL UpdateWindow ( HWND hWnd )
2182
2183 ! FUNCTION: User32InitializeImmEntryTable
2184 ! FUNCTION: UserClientDllInitialize
2185 ! FUNCTION: UserHandleGrantAccess
2186 ! FUNCTION: UserLpkPSMTextOut
2187 ! FUNCTION: UserLpkTabbedTextOut
2188 ! FUNCTION: UserRealizePalette
2189 ! FUNCTION: UserRegisterWowHandlers
2190 ! FUNCTION: ValidateRect
2191 ! FUNCTION: ValidateRgn
2192 ! FUNCTION: VkKeyScanA
2193 ! FUNCTION: VkKeyScanExA
2194 FUNCTION: SHORT VkKeyScanExW ( TCHAR ch, HKL dwhkl )
2195 ALIAS: VkKeyScanEx VkKeyScanExW
2196 FUNCTION: SHORT VkKeyScanW ( TCHAR ch )
2197 ALIAS: VkKeyScan VkKeyScanW
2198 ! FUNCTION: VRipOutput
2199 ! FUNCTION: VTagOutput
2200 ! FUNCTION: WaitForInputIdle
2201 ! FUNCTION: WaitMessage
2202 ! FUNCTION: WCSToMBEx
2203 ! FUNCTION: Win32PoolAllocationStats
2204 ! FUNCTION: WindowFromDC
2205 ! FUNCTION: WindowFromPoint
2206 ! FUNCTION: WinHelpA
2207 ! FUNCTION: WinHelpW
2208 ! FUNCTION: WINNLSEnableIME
2209 ! FUNCTION: WINNLSGetEnableStatus
2210 ! FUNCTION: WINNLSGetIMEHotkey
2211 ! FUNCTION: wsprintfA
2212 ! FUNCTION: wsprintfW
2213 ! FUNCTION: wvsprintfA
2214 ! FUNCTION: wvsprintfW
2215
2216 TYPEDEF: HANDLE HPOWERNOTIFY
2217
2218 FUNCTION: HPOWERNOTIFY RegisterPowerSettingNotification ( HANDLE  hRecipient, LPCGUID PowerSettingGuid, DWORD Flags )
2219 FUNCTION: BOOL UnregisterPowerSettingNotification ( HPOWERNOTIFY Handle )
2220
2221 CONSTANT: GUID_ACDC_POWER_SOURCE
2222     GUID: {5d3e9a59-e9D5-4b00-a6bd-ff34ff516548}
2223
2224 CONSTANT: GUID_BATTERY_PERCENTAGE_REMAINING
2225     GUID: {a7ad8041-b45a-4cae-87a3-eecbb468a9e1}
2226
2227 CONSTANT: GUID_CONSOLE_DISPLAY_STATE
2228     GUID: {6fe69556-704a-47a0-8f24-c28d936fda47}
2229
2230 CONSTANT: GUID_GLOBAL_USER_PRESENCE
2231     GUID: {786e8a1d-b427-4344-9207-09e70bdcbea9}
2232
2233 CONSTANT: GUID_IDLE_BACKGROUND_TASK
2234     GUID: {515c31d8-f734-163d-a0fd-11a0-8c91e8f1}
2235
2236 CONSTANT: GUID_MONITOR_POWER_ON
2237     GUID: {02731015-4510-4526-99e6-e5a17ebd1aea}
2238
2239 CONSTANT: GUID_POWER_SAVING_STATUS
2240     GUID: {e00958c0-c213-4ace-ac77-fecced2eeea5}
2241
2242 CONSTANT: GUID_POWERSCHEME_PERSONALITY
2243     GUID: {245d8541-3943-4422-b025-13a7-84f679b7}
2244
2245 CONSTANT: GUID_MIN_POWER_SAVINGS
2246     GUID: {8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c}
2247
2248 CONSTANT: GUID_MAX_POWER_SAVINGS
2249     GUID: {a1841308-3541-4fab-bc81-f71556f20b4a}
2250
2251 CONSTANT: GUID_TYPICAL_POWER_SAVINGS
2252     GUID: {381b4222-f694-41f0-9685-ff5bb260df2e}
2253
2254 CONSTANT: GUID_SESSION_DISPLAY_STATUS
2255     GUID: {2b84c20e-ad23-4ddf-93db-05ffbd7efca5}
2256
2257 CONSTANT: GUID_SESSION_USER_PRESENCE
2258     GUID: {3c0f4548-c03f-4c4d-b9f2-237ede686376}
2259
2260 CONSTANT: GUID_SYSTEM_AWAYMODE
2261     GUID: {98a7f580-01f7-48aa-9c0f-44352c29e5C0}
2262
2263 ! This notification fires when the Lid Close Action is
2264 ! changed by user in the Power Manager (Control Panel).
2265 CONSTANT: GUID_LIDCLOSE_ACTION
2266     GUID: {5ca83367-6e45-459f-a27b-476b1d01c936}
2267
2268 ! This notifies when the laptop lid is physically opened or closed.
2269 CONSTANT: GUID_LIDSWITCH_STATE_CHANGE
2270     GUID: {ba3e0f4d-b817-4094-a2d1-d56379e6a0f3}
2271
2272 CONSTANT: PBT_POWERSETTINGCHANGE 0x8013
2273
2274 STRUCT: POWERBROADCAST_SETTING
2275     { PowerSetting GUID  }
2276     { DataLength   DWORD }
2277     { Data         UCHAR }
2278 ;
2279
2280 : msgbox ( str -- )
2281     f swap "DebugMsg" MB_OK MessageBox drop ;
2282
2283 ! HighDPI
2284 TYPEDEF: HANDLE DPI_AWARENESS_CONTEXT
2285
2286 ENUM: DPI_AWARENESS
2287     { DPI_AWARENESS_INVALID -1 }
2288     { DPI_AWARENESS_UNAWARE 0 }
2289     { DPI_AWARENESS_SYSTEM_AWARE 1 }
2290     { DPI_AWARENESS_PER_MONITOR_AWARE 2 } ;
2291
2292 FUNCTION: BOOL AdjustWindowRectExForDpi (
2293     LPRECT lpRect,
2294     DWORD  dwStyle,
2295     BOOL   bMenu,
2296     DWORD  dwExStyle,
2297     UINT   dpi
2298 )
2299
2300 FUNCTION: BOOL EnableNonClientDpiScaling (
2301     HWND hwnd
2302 )
2303
2304 FUNCTION: BOOL AreDpiAwarenessContextsEqual (
2305     DPI_AWARENESS_CONTEXT dpiContextA,
2306     DPI_AWARENESS_CONTEXT dpiContextB
2307 )
2308
2309 ENUM: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS
2310     DCDC_DEFAULT
2311     DCDC_DISABLE_FONT_UPDATE
2312     DCDC_DISABLE_RELAYOUT ;
2313
2314 FUNCTION: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS GetDialogControlDpiChangeBehavior (
2315     HWND hWnd
2316 )
2317
2318 ENUM: DIALOG_DPI_CHANGE_BEHAVIORS
2319     DDC_DEFAULT
2320     DDC_DISABLE_ALL
2321     DDC_DISABLE_RESIZE
2322     DDC_DISABLE_CONTROL_RELAYOUT ;
2323
2324 FUNCTION: DIALOG_DPI_CHANGE_BEHAVIORS GetDialogDpiChangeBehavior (
2325     HWND hDlg
2326 )
2327
2328 FUNCTION: UINT GetDpiForSystem ( )
2329
2330 FUNCTION: UINT GetDpiForWindow ( HWND hwnd )
2331
2332 FUNCTION: UINT GetSystemDpiForProcess (
2333     HANDLE hProcess
2334 )
2335
2336 FUNCTION: int GetSystemMetricsForDpi (
2337     int  nIndex,
2338     UINT dpi
2339 )
2340
2341 FUNCTION: DPI_AWARENESS_CONTEXT GetThreadDpiAwarenessContext ( )
2342 FUNCTION: DPI_AWARENESS_CONTEXT SetThreadDpiAwarenessContext ( DPI_AWARENESS_CONTEXT dpiContext )
2343
2344 ENUM: DPI_HOSTING_BEHAVIOR
2345     DPI_HOSTING_BEHAVIOR_INVALID
2346     DPI_HOSTING_BEHAVIOR_DEFAULT
2347     DPI_HOSTING_BEHAVIOR_MIXED ;
2348
2349 FUNCTION: DPI_HOSTING_BEHAVIOR GetThreadDpiHostingBehavior ( )
2350
2351 FUNCTION: DPI_HOSTING_BEHAVIOR GetWindowDpiHostingBehavior (
2352     HWND hwnd
2353 )
2354
2355 FUNCTION: BOOL SetProcessDPIAware ( )
2356 FUNCTION: BOOL SetProcessDpiAwarenessContext ( DPI_AWARENESS_CONTEXT value )
2357
2358 FUNCTION: DPI_AWARENESS_CONTEXT GetWindowDpiAwarenessContext ( HWND hwnd )
2359 FUNCTION: DPI_AWARENESS GetAwarenessFromDpiAwarenessContext ( DPI_AWARENESS_CONTEXT value )
2360
2361 : get-thread-dpi-awareness ( -- enum )
2362     GetThreadDpiAwarenessContext GetAwarenessFromDpiAwarenessContext ;
2363
2364 FUNCTION: BOOL IsValidDpiAwarenessContext (
2365     DPI_AWARENESS_CONTEXT value
2366 )
2367
2368 ! DPI_AWARENESS_CONTEXT experimentally:
2369 ! USE: ranges -100 1000 [a..b] [ <alien> IsValidDpiAwarenessContext ] zip-with
2370 ! [ nip 0 > ] assoc-filter keys .
2371 ! { -5 -4 -3 -2 -1 17 18 34 273 529 785 }
2372
2373 ! -4 <alien> 34 <alien> AreDpiAwarenessContextsEqual . ! t
2374 ! -5 <alien> -5 <alien> AreDpiAwarenessContextsEqual . ! t
2375 ! -6 <alien> -6 <alien> AreDpiAwarenessContextsEqual . ! f
2376 : DPI_AWARENESS_CONTEXT_UNAWARE ( -- DPI_AWARENESS_CONTEXT )
2377     -1 <alien> ;
2378
2379 : DPI_AWARENESS_CONTEXT_SYSTEM_AWARE ( -- DPI_AWARENESS_CONTEXT )
2380     -2 <alien> ;
2381
2382 : DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE ( -- DPI_AWARENESS_CONTEXT )
2383     -3 <alien> ;
2384
2385 : DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 ( -- DPI_AWARENESS_CONTEXT )
2386     -4 <alien> ;
2387
2388 : DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED ( -- DPI_AWARENESS_CONTEXT )
2389     -5 <alien> ;
2390
2391 FUNCTION: BOOL LogicalToPhysicalPointForPerMonitorDPI (
2392     HWND    hWnd,
2393     LPPOINT lpPoint
2394 )
2395
2396 FUNCTION: BOOL PhysicalToLogicalPointForPerMonitorDPI (
2397     HWND    hWnd,
2398     LPPOINT lpPoint
2399 )
2400
2401 FUNCTION: BOOL SetDialogControlDpiChangeBehavior (
2402     HWND                                hWnd,
2403     DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS mask,
2404     DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS values
2405 )
2406
2407 FUNCTION: BOOL SetDialogDpiChangeBehavior (
2408     HWND                        hDlg,
2409     DIALOG_DPI_CHANGE_BEHAVIORS mask,
2410     DIALOG_DPI_CHANGE_BEHAVIORS values
2411 )
2412
2413 FUNCTION: DPI_HOSTING_BEHAVIOR SetThreadDpiHostingBehavior (
2414     DPI_HOSTING_BEHAVIOR value
2415 )
2416
2417 FUNCTION: BOOL SystemParametersInfoForDpi (
2418     UINT  uiAction,
2419     UINT  uiParam,
2420     PVOID pvParam,
2421     UINT  fWinIni,
2422     UINT  dpi
2423 )