]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/user32/user32.factor
b447943d5a32cac09e30faac5ca23ac65e302684
[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
982
983 STRUCT: DEVMODE
984     { dmDeviceName TCHAR[CCHDEVICENAME] }
985     { dmSpecVersion WORD }
986     { dmDriverVersion WORD }
987     { dmSize WORD }
988     { dmDriverExtra WORD }
989     { dmFields DWORD }
990
991     { dmOrientation short }
992     { dmPaperSize short }
993     { dmPaperLength short }
994     { dmPaperWidth short }
995     { dmScale short }
996     { dmCopies short }
997     { dmDefaultSource short }
998     { dmPrintQuality short }
999
1000     { dmColor short }
1001     { dmDuplex short }
1002     { dmYResolution short }
1003     { dmTTOption short }
1004     { dmCollate short }
1005     { dmFormName TCHAR[CCHFORMNAME] }
1006     { dmLogPixels WORD }
1007     { dmBitsPerPel DWORD }
1008     { dmPelsWidth DWORD }
1009     { dmPelsHeight DWORD }
1010     { dmDisplayFlags DWORD }
1011     { dmDisplayFrequency DWORD }
1012     { dmiCMMethod DWORD }
1013     { dmICMIntent DWORD }
1014
1015     { dmMediaType DWORD }
1016     { dmDitherType DWORD }
1017     { dmReserved1 DWORD }
1018     { dmReserved2 DWORD }
1019     { dmPanningWidth DWORD } ;
1020
1021 ! union { DWORD dmDisplayFlags; DWORD dmNup; } ;
1022   ! union {
1023     ! struct {
1024       ! short dmOrientation;
1025       ! short dmPaperSize;
1026       ! short dmPaperLength;
1027       ! short dmPaperWidth;
1028       ! short dmScale;
1029       ! short dmCopies;
1030       ! short dmDefaultSource;
1031       ! short dmPrintQuality;
1032     ! } ;
1033     ! struct {
1034       ! POINTL dmPosition;
1035       ! DWORD dmDisplayOrientation;
1036       ! DWORD dmDisplayFixedOutput;
1037     ! } ;
1038   ! } ;
1039
1040 TYPEDEF: DEVMODE* PDEVMODE
1041 TYPEDEF: DEVMODE* LPDEVMODE
1042
1043 CONSTANT: MSGFLT_ADD    1
1044 CONSTANT: MSGFLT_REMOVE 2
1045
1046 CONSTANT: MSGFLT_RESET    0
1047 CONSTANT: MSGFLT_ALLOW    1
1048 CONSTANT: MSGFLT_DISALLOW 2
1049
1050 STRUCT: CHANGEFILTERSTRUCT
1051     { cbSize DWORD }
1052     { ExtStatus DWORD } ;
1053 TYPEDEF: CHANGEFILTERSTRUCT* PCHANGEFILTERSTRUCT
1054
1055 CONSTANT: INPUT_MOUSE 0
1056 CONSTANT: INPUT_KEYBOARD 1
1057 CONSTANT: INPUT_HARDWARE 2
1058
1059 CONSTANT: XBUTTON1 1
1060 CONSTANT: XBUTTON2 2
1061
1062 CONSTANT: MOUSEEVENTF_ABSOLUTE 0x8000
1063 CONSTANT: MOUSEEVENTF_HWHEEL 0x01000
1064 CONSTANT: MOUSEEVENTF_MOVE 0x0001
1065 CONSTANT: MOUSEEVENTF_MOVE_NOCOALESCE 0x2000
1066 CONSTANT: MOUSEEVENTF_LEFTDOWN 0x0002
1067 CONSTANT: MOUSEEVENTF_LEFTUP 0x0004
1068 CONSTANT: MOUSEEVENTF_RIGHTDOWN 0x0008
1069 CONSTANT: MOUSEEVENTF_RIGHTUP 0x0010
1070 CONSTANT: MOUSEEVENTF_MIDDLEDOWN 0x0020
1071 CONSTANT: MOUSEEVENTF_MIDDLEUP 0x0040
1072 CONSTANT: MOUSEEVENTF_VIRTUALDESK 0x4000
1073 CONSTANT: MOUSEEVENTF_WHEEL 0x0800
1074 CONSTANT: MOUSEEVENTF_XDOWN 0x0080
1075 CONSTANT: MOUSEEVENTF_XUP 0x0100
1076
1077 STRUCT: MOUSEINPUT
1078     { dx LONG }
1079     { dy LONG }
1080     { mouseData DWORD }
1081     { dwFlags DWORD }
1082     { time DWORD }
1083     { dwExtraInfo ULONG_PTR } ;
1084 TYPEDEF: MOUSEINPUT* PMOUSEINPUT
1085
1086 CONSTANT: KEYEVENTF_EXTENDEDKEY 1
1087 CONSTANT: KEYEVENTF_KEYUP 2
1088 CONSTANT: KEYEVENTF_UNICODE 4
1089 CONSTANT: KEYEVENTF_SCANCODE 8
1090
1091
1092 STRUCT: KEYBDINPUT
1093     { wVk WORD }
1094     { wScan WORD }
1095     { dwFlags DWORD }
1096     { time DWORD }
1097     { dwExtraInfo ULONG_PTR } ;
1098 TYPEDEF: KEYBDINPUT* PKEYBDINPUT
1099
1100 STRUCT: HARDWAREINPUT
1101     { uMsg DWORD }
1102     { wParamL WORD }
1103     { wParamH WORD } ;
1104 TYPEDEF: HARDWAREINPUT* PHARDWAREINPUT
1105
1106
1107 UNION-STRUCT: ANYINPUT
1108     { mi MOUSEINPUT }
1109     { ki KEYBDINPUT }
1110     { hi HARDWAREINPUT } ;
1111
1112 STRUCT: INPUT
1113     { type DWORD }
1114     { input ANYINPUT } ;
1115 TYPEDEF: INPUT* PINPUT
1116 TYPEDEF: INPUT* LPINPUT
1117
1118
1119 CONSTANT: LR_DEFAULTCOLOR 0x00
1120 CONSTANT: LR_MONOCHROME 0x01
1121 CONSTANT: LR_COLOR 0x02
1122 CONSTANT: LR_COPYRETURNORG 0x04
1123 CONSTANT: LR_COPYDELETEORG 0x08
1124 CONSTANT: LR_LOADFROMFILE 0x10
1125 CONSTANT: LR_LOADTRANSPARENT 0x20
1126 CONSTANT: LR_DEFAULTSIZE 0x40
1127 CONSTANT: LR_VGACOLOR 0x80
1128 CONSTANT: LR_LOADMAP3DCOLORS 0x1000
1129 CONSTANT: LR_CREATEDIBSECTION 0x2000
1130 CONSTANT: LR_COPYFROMRESOURCE 0x4000
1131 CONSTANT: LR_SHARED 0x8000
1132
1133 CONSTANT: IMAGE_BITMAP 0
1134 CONSTANT: IMAGE_ICON 1
1135 CONSTANT: IMAGE_CURSOR 2
1136
1137 CONSTANT: IDI_APPLICATION 32512
1138 CONSTANT: IDI_ASTERISK 21516
1139 CONSTANT: IDI_ERROR 32513
1140 CONSTANT: IDI_EXCLAMATION 32515
1141 CONSTANT: IDI_HAND 32513
1142 CONSTANT: IDI_INFORMATION 32516
1143 CONSTANT: IDI_QUESTION 32514
1144 CONSTANT: IDI_SHIELD 32518
1145 CONSTANT: IDI_WARNING 32515
1146 CONSTANT: IDI_WINLOGO 32517
1147
1148 CONSTANT: OBM_BTNCORNERS 32758
1149 CONSTANT: OBM_BTSIZE 32761
1150 CONSTANT: OBM_CHECK 32760
1151 CONSTANT: OBM_CHECKBOXES 32759
1152 CONSTANT: OBM_CLOSE 32754
1153 CONSTANT: OBM_COMBO 32738
1154 CONSTANT: OBM_DNARROW 32752
1155 CONSTANT: OBM_DNARROWD 32742
1156 CONSTANT: OBM_DNARROWI 32736
1157 CONSTANT: OBM_LFARROW 32750
1158 CONSTANT: OBM_LFARROWI 32734
1159 CONSTANT: OBM_LFARROWD 32740
1160 CONSTANT: OBM_MNARROW 32739
1161 CONSTANT: OBM_OLD_CLOSE 32767
1162 CONSTANT: OBM_OLD_DNARROW 32764
1163 CONSTANT: OBM_OLD_LFARROW 32762
1164 CONSTANT: OBM_OLD_REDUCE 32757
1165 CONSTANT: OBM_OLD_RESTORE 32755
1166 CONSTANT: OBM_OLD_RGARROW 32763
1167 CONSTANT: OBM_OLD_UPARROW 32765
1168 CONSTANT: OBM_OLD_ZOOM 32756
1169 CONSTANT: OBM_REDUCE 32749
1170 CONSTANT: OBM_REDUCED 32746
1171 CONSTANT: OBM_RESTORE 32747
1172 CONSTANT: OBM_RESTORED 32744
1173 CONSTANT: OBM_RGARROW 32751
1174 CONSTANT: OBM_RGARROWD 32741
1175 CONSTANT: OBM_RGARROWI 32735
1176 CONSTANT: OBM_SIZE 32766
1177 CONSTANT: OBM_UPARROW 32753
1178 CONSTANT: OBM_UPARROWD 32743
1179 CONSTANT: OBM_UPARROWI 32737
1180 CONSTANT: OBM_ZOOM 32748
1181 CONSTANT: OBM_ZOOMD 32745
1182 CONSTANT: OCR_NORMAL 32512
1183 CONSTANT: OCR_IBEAM 32513
1184 CONSTANT: OCR_WAIT 32514
1185 CONSTANT: OCR_CROSS 32515
1186 CONSTANT: OCR_UP 32516
1187 CONSTANT: OCR_SIZE 32640
1188 CONSTANT: OCR_ICON 32641
1189 CONSTANT: OCR_SIZENWSE 32642
1190 CONSTANT: OCR_SIZENESW 32643
1191 CONSTANT: OCR_SIZEWE 32644
1192 CONSTANT: OCR_SIZENS 32645
1193 CONSTANT: OCR_SIZEALL 32646
1194 CONSTANT: OCR_NO 32648
1195 CONSTANT: OCR_APPSTARTING 32650
1196 CONSTANT: OIC_SAMPLE 32512
1197 CONSTANT: OIC_HAND 32513
1198 CONSTANT: OIC_QUES 32514
1199 CONSTANT: OIC_BANG 32515
1200 CONSTANT: OIC_NOTE 32516
1201 CONSTANT: OIC_WINLOGO 32517
1202 CONSTANT: OIC_WARNING 32515
1203 CONSTANT: OIC_ERROR 32513
1204 CONSTANT: OIC_INFORMATION 32516
1205
1206 CONSTANT: SM_CXSCREEN 0
1207 CONSTANT: SM_CYSCREEN 1
1208 CONSTANT: SM_CXVSCROLL 2
1209 CONSTANT: SM_CYHSCROLL 3
1210 CONSTANT: SM_CYCAPTION 4
1211 CONSTANT: SM_CXBORDER 5
1212 CONSTANT: SM_CYBORDER 6
1213 CONSTANT: SM_CXDLGFRAME 7
1214 CONSTANT: SM_CXFIXEDFRAME 7
1215 CONSTANT: SM_CYDLGFRAME 8
1216 CONSTANT: SM_CYFIXEDFRAME 8
1217 CONSTANT: SM_CYVTHUMB 9
1218 CONSTANT: SM_CXHTHUMB 10
1219 CONSTANT: SM_CXICON 11
1220 CONSTANT: SM_CYICON 12
1221 CONSTANT: SM_CXCURSOR 13
1222 CONSTANT: SM_CYCURSOR 14
1223 CONSTANT: SM_CYMENU 15
1224 CONSTANT: SM_CXFULLSCREEN 16
1225 CONSTANT: SM_CYFULLSCREEN 17
1226 CONSTANT: SM_CYKANJIWINDOW 18
1227 CONSTANT: SM_MOUSEPRESENT 19
1228 CONSTANT: SM_CYVSCROLL 20
1229 CONSTANT: SM_CXHSCROLL 21
1230 CONSTANT: SM_DEBUG 22
1231 CONSTANT: SM_SWAPBUTTON 23
1232 CONSTANT: SM_RESERVED1 24
1233 CONSTANT: SM_RESERVED2 25
1234 CONSTANT: SM_RESERVED3 26
1235 CONSTANT: SM_RESERVED4 27
1236 CONSTANT: SM_CXMIN 28
1237 CONSTANT: SM_CYMIN 29
1238 CONSTANT: SM_CXSIZE 30
1239 CONSTANT: SM_CYSIZE 31
1240 CONSTANT: SM_CXSIZEFRAME 32
1241 CONSTANT: SM_CXFRAME 32
1242 CONSTANT: SM_CYSIZEFRAME 33
1243 CONSTANT: SM_CYFRAME 33
1244 CONSTANT: SM_CXMINTRACK 34
1245 CONSTANT: SM_CYMINTRACK 35
1246 CONSTANT: SM_CXDOUBLECLK 36
1247 CONSTANT: SM_CYDOUBLECLK 37
1248 CONSTANT: SM_CXICONSPACING 38
1249 CONSTANT: SM_CYICONSPACING 39
1250 CONSTANT: SM_MENUDROPALIGNMENT 40
1251 CONSTANT: SM_PENWINDOWS 41
1252 CONSTANT: SM_DBCSENABLED 42
1253 CONSTANT: SM_CMOUSEBUTTONS 43
1254 CONSTANT: SM_SECURE 44
1255 CONSTANT: SM_CXEDGE 45
1256 CONSTANT: SM_CYEDGE 46
1257 CONSTANT: SM_CXMINSPACING 47
1258 CONSTANT: SM_CYMINSPACING 48
1259 CONSTANT: SM_CXSMICON 49
1260 CONSTANT: SM_CYSMICON 50
1261 CONSTANT: SM_CYSMCAPTION 51
1262 CONSTANT: SM_CXSMSIZE 52
1263 CONSTANT: SM_CYSMSIZE 53
1264 CONSTANT: SM_CXMENUSIZE 54
1265 CONSTANT: SM_CYMENUSIZE 55
1266 CONSTANT: SM_ARRANGE 56
1267 CONSTANT: SM_CXMINIMIZED 57
1268 CONSTANT: SM_CYMINIMIZED 58
1269 CONSTANT: SM_CXMAXTRACK 59
1270 CONSTANT: SM_CYMAXTRACK 60
1271 CONSTANT: SM_CXMAXIMIZED 61
1272 CONSTANT: SM_CYMAXIMIZED 62
1273 CONSTANT: SM_NETWORK 63
1274 ! CONSTANT: LR_DEFAULTSIZE 64
1275 CONSTANT: SM_CLEANBOOT 67
1276 CONSTANT: SM_CXDRAG 68
1277 CONSTANT: SM_CYDRAG 69
1278 CONSTANT: SM_SHOWSOUNDS 70
1279 CONSTANT: SM_CXMENUCHECK 71
1280 CONSTANT: SM_CYMENUCHECK 72
1281 CONSTANT: SM_SLOWMACHINE 73
1282 CONSTANT: SM_MIDEASTENABLED 74
1283 CONSTANT: SM_MOUSEWHEELPRESENT 75
1284 CONSTANT: SM_XVIRTUALSCREEN 76
1285 CONSTANT: SM_YVIRTUALSCREEN 77
1286 CONSTANT: SM_CXVIRTUALSCREEN 78
1287 CONSTANT: SM_CYVIRTUALSCREEN 79
1288 CONSTANT: SM_CMONITORS 80
1289 CONSTANT: SM_SAMEDISPLAYFORMAT 81
1290 CONSTANT: SM_IMMENABLED 82
1291 CONSTANT: SM_CXFOCUSBORDER 83
1292 CONSTANT: SM_CYFOCUSBORDER 84
1293 CONSTANT: SM_TABLETPC 86
1294 CONSTANT: SM_MEDIACENTER 87
1295 CONSTANT: SM_CMETRICS 88
1296 CONSTANT: SM_REMOTESESSION 0X1000
1297
1298 CONSTANT: DF_ALLOWOTHERACCOUNTHOOK 1
1299
1300 LIBRARY: user32
1301
1302 FUNCTION: HKL ActivateKeyboardLayout ( HKL hkl, UINT Flags )
1303 FUNCTION: BOOL AdjustWindowRect ( LPRECT lpRect, DWORD dwStyle, BOOL bMenu )
1304 FUNCTION: BOOL AdjustWindowRectEx ( LPRECT lpRect, DWORD dwStyle, BOOL bMenu, DWORD dwExStyle )
1305 ! FUNCTION: AlignRects
1306 ! FUNCTION: AllowForegroundActivation
1307 ! FUNCTION: AllowSetForegroundWindow
1308 ! FUNCTION: AnimateWindow
1309
1310 FUNCTION: BOOL AnyPopup ( )
1311
1312 ! FUNCTION: AppendMenuA
1313 ! FUNCTION: AppendMenuW
1314 ! FUNCTION: ArrangeIconicWindows
1315 ! FUNCTION: AttachThreadInput
1316 ! FUNCTION: BeginDeferWindowPos
1317
1318 FUNCTION: HDC BeginPaint ( HWND hwnd, LPPAINTSTRUCT lpPaint )
1319
1320 ! FUNCTION: BlockInput
1321 ! FUNCTION: BringWindowToTop
1322 ! FUNCTION: BroadcastSystemMessage
1323 ! FUNCTION: BroadcastSystemMessageA
1324 ! FUNCTION: BroadcastSystemMessageExA
1325 ! FUNCTION: BroadcastSystemMessageExW
1326 ! FUNCTION: BroadcastSystemMessageW
1327 ! FUNCTION: BuildReasonArray
1328 ! FUNCTION: CalcMenuBar
1329 ! FUNCTION: CallMsgFilter
1330 ! FUNCTION: CallMsgFilterA
1331 ! FUNCTION: CallMsgFilterW
1332 FUNCTION: LRESULT CallNextHookEx ( HHOOK hhk, int nCode, WPARAM wParam, LPARAM lParam )
1333 ! FUNCTION: CallWindowProcA
1334 ! FUNCTION: CallWindowProcW
1335 ! FUNCTION: CascadeChildWindows
1336 ! FUNCTION: CascadeWindows
1337 ! FUNCTION: ChangeClipboardChain
1338 FUNCTION: LONG ChangeDisplaySettingsExW ( LPCTSTR lpszDeviceName, DEVMODE *lpDevMode, HWND hwnd, DWORD dwFlags, LPVOID lParam )
1339 FUNCTION: LONG ChangeDisplaySettingsW ( DEVMODE *lpDevMode, DWORD dwFlags )
1340 ALIAS: ChangeDisplaySettingsEx ChangeDisplaySettingsExW
1341 ALIAS: ChangeDisplaySettings ChangeDisplaySettingsW
1342 ! FUNCTION: ChangeMenuA
1343 ! FUNCTION: ChangeMenuW
1344
1345 FUNCTION: BOOL ChangeWindowMessageFilter (
1346                 UINT message,
1347                 DWORD dwFlag )
1348 FUNCTION: BOOL ChangeWindowMessageFilterEx (
1349                 HWND hWnd,
1350                 UINT message,
1351                 DWORD action,
1352                 PCHANGEFILTERSTRUCT pChangeFilterStruct )
1353
1354 ! FUNCTION: CharLowerA
1355 ! FUNCTION: CharLowerBuffA
1356 ! FUNCTION: CharLowerBuffW
1357 ! FUNCTION: CharLowerW
1358 ! FUNCTION: CharNextA
1359 ! FUNCTION: CharNextExA
1360 ! FUNCTION: CharNextW
1361 ! FUNCTION: CharPrevA
1362 ! FUNCTION: CharPrevExA
1363 ! FUNCTION: CharPrevW
1364 ! FUNCTION: CharToOemA
1365 ! FUNCTION: CharToOemBuffA
1366 ! FUNCTION: CharToOemBuffW
1367 ! FUNCTION: CharToOemW
1368 ! FUNCTION: CharUpperA
1369 ! FUNCTION: CharUpperBuffA
1370 ! FUNCTION: CharUpperBuffW
1371 ! FUNCTION: CharUpperW
1372 ! FUNCTION: CheckDlgButton
1373 ! FUNCTION: CheckMenuItem
1374 ! FUNCTION: CheckMenuRadioItem
1375 ! FUNCTION: CheckRadioButton
1376 FUNCTION: HWND ChildWindowFromPoint ( HWND hWndParent, POINT point )
1377 ! FUNCTION: ChildWindowFromPointEx
1378 ! FUNCTION: ClientThreadSetup
1379 FUNCTION: BOOL ClientToScreen ( HWND hWnd, POINT* point )
1380 ! FUNCTION: CliImmSetHotKey
1381 FUNCTION: int ClipCursor ( RECT* clipRect )
1382 FUNCTION: BOOL CloseClipboard ( )
1383 ! FUNCTION: CloseDesktop
1384 ! FUNCTION: CloseWindow
1385 ! FUNCTION: CloseWindowStation
1386 ! FUNCTION: CopyAcceleratorTableA
1387 FUNCTION: int CopyAcceleratorTableW ( HACCEL hAccelSrc, LPACCEL lpAccelDst, int cAccelEntries )
1388 ALIAS: CopyAcceleratorTable CopyAcceleratorTableW
1389 ! FUNCTION: CopyIcon
1390 ! FUNCTION: CopyImage
1391 ! FUNCTION: CopyRect
1392 ! FUNCTION: CountClipboardFormats
1393 ! FUNCTION: CreateAcceleratorTableA
1394 FUNCTION: HACCEL CreateAcceleratorTableW ( LPACCEL lpaccl, int cEntries )
1395 ALIAS: CreateAcceleratorTable CreateAcceleratorTableW
1396 ! FUNCTION: CreateCaret
1397 ! FUNCTION: CreateCursor
1398 ! FUNCTION: CreateDesktopA
1399 FUNCTION: HDESK CreateDesktopW ( LPCTSTR lpszDesktop, LPCTSTR lpszDevice, DEVMODE* pDevmode, DWORD dwFlags, ACCESS_MASK dwDesiredAccess, LPSECURITY_ATTRIBUTES lpsa )
1400 ALIAS: CreateDesktop CreateDesktopW
1401 ! FUNCTION: CreateDialogIndirectParamA
1402 ! FUNCTION: CreateDialogIndirectParamAorW
1403 ! FUNCTION: CreateDialogIndirectParamW
1404 ! FUNCTION: CreateDialogParamA
1405 ! FUNCTION: CreateDialogParamW
1406 ! FUNCTION: CreateIcon
1407 ! FUNCTION: CreateIconFromResource
1408 ! FUNCTION: CreateIconFromResourceEx
1409 ! FUNCTION: CreateIconIndirect
1410 ! FUNCTION: CreateMDIWindowA
1411 ! FUNCTION: CreateMDIWindowW
1412 ! FUNCTION: CreateMenu
1413 ! FUNCTION: CreatePopupMenu
1414 ! FUNCTION: CreateSystemThreads
1415
1416 FUNCTION: HWND CreateWindowExW (
1417                 DWORD dwExStyle,
1418                 LPCTSTR lpClassName,
1419                 LPCTSTR lpWindowName,
1420                 DWORD dwStyle,
1421                 uint X,
1422                 uint Y,
1423                 uint nWidth,
1424                 uint nHeight,
1425                 HWND hWndParent,
1426                 HMENU hMenu,
1427                 HINSTANCE hInstance,
1428                 LPVOID lpParam )
1429
1430 ALIAS: CreateWindowEx CreateWindowExW
1431
1432 : CreateWindow ( a b c d e f g h i j k -- hwnd ) 0 12 -nrot CreateWindowEx ; inline
1433
1434 ! FUNCTION: CreateWindowStationA
1435 ! FUNCTION: CreateWindowStationW
1436 ! FUNCTION: CsrBroadcastSystemMessageExW
1437 ! FUNCTION: CtxInitUser32
1438 ! FUNCTION: DdeAbandonTransaction
1439 ! FUNCTION: DdeAccessData
1440 ! FUNCTION: DdeAddData
1441 ! FUNCTION: DdeClientTransaction
1442 ! FUNCTION: DdeCmpStringHandles
1443 ! FUNCTION: DdeConnect
1444 ! FUNCTION: DdeConnectList
1445 ! FUNCTION: DdeCreateDataHandle
1446 ! FUNCTION: DdeCreateStringHandleA
1447 ! FUNCTION: DdeCreateStringHandleW
1448 ! FUNCTION: DdeDisconnect
1449 ! FUNCTION: DdeDisconnectList
1450 ! FUNCTION: DdeEnableCallback
1451 ! FUNCTION: DdeFreeDataHandle
1452 ! FUNCTION: DdeFreeStringHandle
1453 ! FUNCTION: DdeGetData
1454 ! FUNCTION: DdeGetLastError
1455 ! FUNCTION: DdeGetQualityOfService
1456 ! FUNCTION: DdeImpersonateClient
1457 ! FUNCTION: DdeInitializeA
1458 ! FUNCTION: DdeInitializeW
1459 ! FUNCTION: DdeKeepStringHandle
1460 ! FUNCTION: DdeNameService
1461 ! FUNCTION: DdePostAdvise
1462 ! FUNCTION: DdeQueryConvInfo
1463 ! FUNCTION: DdeQueryNextServer
1464 ! FUNCTION: DdeQueryStringA
1465 ! FUNCTION: DdeQueryStringW
1466 ! FUNCTION: DdeReconnect
1467 ! FUNCTION: DdeSetQualityOfService
1468 ! FUNCTION: DdeSetUserHandle
1469 ! FUNCTION: DdeUnaccessData
1470 ! FUNCTION: DdeUninitialize
1471 ! FUNCTION: DefDlgProcA
1472 ! FUNCTION: DefDlgProcW
1473 ! FUNCTION: DeferWindowPos
1474 ! FUNCTION: DefFrameProcA
1475 ! FUNCTION: DefFrameProcW
1476 ! FUNCTION: DefMDIChildProcA
1477 ! FUNCTION: DefMDIChildProcW
1478 FUNCTION: LRESULT DefRawInputProc ( PRAWINPUT* paRawInput, INT nInput, UINT cbSizeHeader )
1479 FUNCTION: LRESULT DefWindowProcW ( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam )
1480 ALIAS: DefWindowProc DefWindowProcW
1481 ! FUNCTION: DeleteMenu
1482 ! FUNCTION: DeregisterShellHookWindow
1483 FUNCTION: BOOL DestroyAcceleratorTable ( HACCEL hAccel )
1484 ! FUNCTION: DestroyCaret
1485 ! FUNCTION: DestroyCursor
1486 ! FUNCTION: DestroyIcon
1487 ! FUNCTION: DestroyMenu
1488 ! FUNCTION: DestroyReasons
1489 FUNCTION: BOOL DestroyWindow ( HWND hWnd )
1490 ! FUNCTION: DeviceEventWorker
1491 ! FUNCTION: DialogBoxIndirectParamA
1492 ! FUNCTION: DialogBoxIndirectParamAorW
1493 ! FUNCTION: DialogBoxIndirectParamW
1494 ! FUNCTION: DialogBoxParamA
1495 ! FUNCTION: DialogBoxParamW
1496 ! FUNCTION: DisableProcessWindowsGhosting
1497
1498 FUNCTION: LONG DispatchMessageW ( MSG* lpMsg )
1499 ALIAS: DispatchMessage DispatchMessageW
1500
1501 ! FUNCTION: DisplayExitWindowsWarnings
1502 ! FUNCTION: DlgDirListA
1503 ! FUNCTION: DlgDirListComboBoxA
1504 ! FUNCTION: DlgDirListComboBoxW
1505 ! FUNCTION: DlgDirListW
1506 ! FUNCTION: DlgDirSelectComboBoxExA
1507 ! FUNCTION: DlgDirSelectComboBoxExW
1508 ! FUNCTION: DlgDirSelectExA
1509 ! FUNCTION: DlgDirSelectExW
1510 ! FUNCTION: DragDetect
1511 ! FUNCTION: DragObject
1512
1513
1514 FUNCTION: BOOL DrawAnimatedRects ( HWND hWnd, int idAni, RECT* lprcFrom, RECT* lprcTo )
1515 ! FUNCTION: BOOL DrawCaption ( HWND hWnd, HDC hdc, LPRECT lprc, UINT uFlags )
1516
1517 ! FUNCTION: DrawEdge
1518 ! FUNCTION: DrawFocusRect
1519 ! FUNCTION: DrawFrame
1520 ! FUNCTION: DrawFrameControl
1521
1522 FUNCTION: BOOL DrawIcon ( HDC hDC, int X, int Y, HICON hIcon )
1523
1524 ! FUNCTION: DrawIconEx
1525 ! FUNCTION: DrawMenuBar
1526 ! FUNCTION: DrawMenuBarTemp
1527 ! FUNCTION: DrawStateA
1528 ! FUNCTION: DrawStateW
1529 ! FUNCTION: DrawTextA
1530 ! FUNCTION: DrawTextExA
1531 ! FUNCTION: DrawTextExW
1532 ! FUNCTION: DrawTextW
1533 ! FUNCTION: EditWndProc
1534 FUNCTION: BOOL EmptyClipboard ( )
1535 FUNCTION: BOOL EnableMenuItem ( HMENU hMenu, UINT uIDEnableItem, UINT uEnable )
1536 ! FUNCTION: EnableScrollBar
1537 ! FUNCTION: EnableWindow
1538 ! FUNCTION: EndDeferWindowPos
1539 ! FUNCTION: EndDialog
1540 ! FUNCTION: EndMenu
1541
1542 FUNCTION: BOOL EndPaint ( HWND hWnd, PAINTSTRUCT* lpPaint )
1543
1544 ! FUNCTION: EndTask
1545 ! FUNCTION: EnterReaderModeHelper
1546 ! FUNCTION: EnumChildWindows
1547 FUNCTION: UINT EnumClipboardFormats ( UINT format )
1548 ! FUNCTION: EnumDesktopsA
1549 ! FUNCTION: EnumDesktopsW
1550 FUNCTION: BOOL EnumDesktopWindows ( HDESK hDesktop, WNDENUMPROC lpFn, LPARAM lParam )
1551 ! FUNCTION: EnumDisplayDevicesA
1552 ! FUNCTION: EnumDisplayDevicesW
1553 ! FUNCTION: BOOL EnumDisplayMonitors ( HDC hdc, LPCRECT lprcClip, MONITORENUMPROC lpfnEnum, LPARAM dwData )
1554 ! FUNCTION: EnumDisplaySettingsA
1555 ! FUNCTION: EnumDisplaySettingsExA
1556 ! FUNCTION: EnumDisplaySettingsExW
1557 FUNCTION: BOOL EnumDisplaySettingsW ( LPCTSTR lpszDeviceName, DWORD iModeNum, DEVMODE *lpDevMode )
1558 ALIAS: EnumDisplaySettings EnumDisplaySettingsW
1559 ! FUNCTION: EnumPropsA
1560 ! FUNCTION: EnumPropsExA
1561 ! FUNCTION: EnumPropsExW
1562 ! FUNCTION: EnumPropsW
1563 ! FUNCTION: EnumThreadWindows
1564 FUNCTION: BOOL EnumWindows ( WNDENUMPROC lpEnumFunc, LPARAM lParam )
1565 ! FUNCTION: EnumWindowStationsA
1566 ! FUNCTION: EnumWindowStationsW
1567 ! FUNCTION: EqualRect
1568 ! FUNCTION: ExcludeUpdateRgn
1569 ! FUNCTION: ExitWindowsEx
1570 FUNCTION: int FillRect ( HDC hDC, RECT* lprc, HBRUSH hbr )
1571 FUNCTION: HWND FindWindowA ( c-string lpClassName, c-string lpWindowName )
1572 FUNCTION: HWND FindWindowW ( c-string lpClassName, c-string lpWindowName )
1573 ALIAS: FindWindow FindWindowW
1574 FUNCTION: HWND FindWindowExA ( HWND hwndParent, HWND childAfter, c-string lpClassName, c-string lpWindowName )
1575 FUNCTION: HWND FindWindowExW ( HWND hwndParent, HWND hwndChildAfter, c-string lpszClass, c-string lpszWindow )
1576 ALIAS: FindWindowEx FindWindowExW
1577 ! FUNCTION: FindWindowW
1578 ! FUNCTION: FlashWindow
1579 ! FUNCTION: FlashWindowEx
1580 ! FUNCTION: FrameRect
1581 ! FUNCTION: FreeDDElParam
1582 ! FUNCTION: GetActiveWindow
1583 ! FUNCTION: GetAltTabInfo
1584 ! FUNCTION: GetAltTabInfoA
1585 ! FUNCTION: GetAltTabInfoW
1586 ! FUNCTION: GetAncestor
1587 ! FUNCTION: GetAppCompatFlags
1588 ! FUNCTION: GetAppCompatFlags2
1589 ! FUNCTION: GetAsyncKeyState
1590 FUNCTION: HWND GetCapture ( )
1591 ! FUNCTION: GetCaretBlinkTime
1592 ! FUNCTION: GetCaretPos
1593 FUNCTION: BOOL GetClassInfoW ( HINSTANCE hInst, LPCWSTR lpszClass, LPWNDCLASS lpwcx )
1594 ALIAS: GetClassInfo GetClassInfoW
1595
1596 FUNCTION: BOOL GetClassInfoExW ( HINSTANCE hInst, LPCWSTR lpszClass, LPWNDCLASSEX lpwcx )
1597 ALIAS: GetClassInfoEx GetClassInfoExW
1598
1599 FUNCTION: ULONG_PTR GetClassLongW ( HWND hWnd, int nIndex )
1600 ALIAS: GetClassLong GetClassLongW
1601 ALIAS: GetClassLongPtr GetClassLongW
1602
1603
1604 ! FUNCTION: GetClassNameA
1605 ! FUNCTION: GetClassNameW
1606 ! FUNCTION: GetClassWord
1607 FUNCTION: BOOL GetClientRect ( HWND hWnd, LPRECT lpRect )
1608
1609 FUNCTION: HANDLE GetClipboardData ( UINT uFormat )
1610
1611 ! FUNCTION: GetClipboardFormatNameA
1612 ! FUNCTION: GetClipboardFormatNameW
1613 FUNCTION: HWND GetClipboardOwner ( )
1614 FUNCTION: DWORD GetClipboardSequenceNumber ( )
1615 ! FUNCTION: GetClipboardViewer
1616 ! FUNCTION: GetClipCursor
1617 ! FUNCTION: GetComboBoxInfo
1618 ! FUNCTION: GetCursor
1619 ! FUNCTION: GetCursorFrameInfo
1620 ! FUNCTION: GetCursorInfo
1621 FUNCTION: BOOL GetCursorPos ( LPPOINT lpPoint )
1622 FUNCTION: HDC GetDC ( HWND hWnd )
1623 FUNCTION: HDC GetDCEx ( HWND hWnd, HRGN hrgnClip, DWORD flags )
1624 FUNCTION: HWND GetDesktopWindow ( )
1625 ! FUNCTION: GetDialogBaseUnits
1626 ! FUNCTION: GetDlgCtrlID
1627 FUNCTION: HWND GetDlgItem ( HWND hDlg, int nIDDlgItem )
1628 ! FUNCTION: GetDlgItemInt
1629 ! FUNCTION: GetDlgItemTextA
1630 FUNCTION: UINT GetDlgItemTextW ( HWND hDlg, int nIDDlgItem, LPTSTR lpString, int nMaxCount )
1631 ALIAS: GetDlgItemText GetDlgItemTextW
1632 FUNCTION: uint GetDoubleClickTime ( )
1633 FUNCTION: HWND GetFocus ( )
1634 FUNCTION: HWND GetForegroundWindow ( )
1635 ! FUNCTION: GetGuiResources
1636 ! FUNCTION: GetGUIThreadInfo
1637 ! FUNCTION: GetIconInfo
1638 ! FUNCTION: GetInputDesktop
1639 ! FUNCTION: GetInputState
1640 ! FUNCTION: GetInternalWindowPos
1641 ! FUNCTION: GetKBCodePage
1642 FUNCTION: HKL GetKeyboardLayout ( DWORD idThread )
1643 ! FUNCTION: GetKeyboardLayoutList
1644 ! FUNCTION: GetKeyboardLayoutNameA
1645 ! FUNCTION: GetKeyboardLayoutNameW
1646 FUNCTION: BOOL GetKeyboardState ( BYTE *lpKeyState )
1647 FUNCTION: int GetKeyboardType ( int nTypeFlag )
1648 ! FUNCTION: GetKeyNameTextA
1649 ! FUNCTION: GetKeyNameTextW
1650 FUNCTION: SHORT GetKeyState ( int nVirtKey )
1651 ! FUNCTION: GetLastActivePopup
1652 ! FUNCTION: GetLastInputInfo
1653 ! FUNCTION: GetLayeredWindowAttributes
1654 ! FUNCTION: GetListBoxInfo
1655 ! FUNCTION: GetMenu
1656 ! FUNCTION: GetMenuBarInfo
1657 ! FUNCTION: GetMenuCheckMarkDimensions
1658 ! FUNCTION: GetMenuContextHelpId
1659 ! FUNCTION: GetMenuDefaultItem
1660 ! FUNCTION: GetMenuInfo
1661 ! FUNCTION: GetMenuItemCount
1662 ! FUNCTION: GetMenuItemID
1663 ! FUNCTION: GetMenuItemInfoA
1664 ! FUNCTION: GetMenuItemInfoW
1665 ! FUNCTION: GetMenuItemRect
1666 ! FUNCTION: GetMenuState
1667 ! FUNCTION: GetMenuStringA
1668 ! FUNCTION: GetMenuStringW
1669
1670 FUNCTION: BOOL GetMessageW ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax )
1671 ALIAS: GetMessage GetMessageW
1672
1673 FUNCTION: LPARAM GetMessageExtraInfo ( )
1674 ! FUNCTION: GetMessagePos
1675 ! FUNCTION: GetMessageTime
1676 ! FUNCTION: GetMonitorInfoA
1677
1678 FUNCTION: BOOL GetMonitorInfoW ( HMONITOR hMonitor, LPMONITORINFO lpmi )
1679 ALIAS: GetMonitorInfo GetMonitorInfoW
1680
1681 ! FUNCTION: GetMouseMovePointsEx
1682 ! FUNCTION: GetNextDlgGroupItem
1683 ! FUNCTION: GetNextDlgTabItem
1684 ! FUNCTION: GetOpenClipboardWindow
1685 FUNCTION: HWND GetParent ( HWND hWnd )
1686 FUNCTION: int GetPriorityClipboardFormat ( UINT* paFormatPriorityList, int cFormats )
1687 ! FUNCTION: GetProcessDefaultLayout
1688 ! FUNCTION: GetProcessWindowStation
1689 ! FUNCTION: GetProgmanWindow
1690 ! FUNCTION: GetPropA
1691 ! FUNCTION: GetPropW
1692 ! FUNCTION: GetQueueStatus
1693 FUNCTION: UINT GetRawInputBuffer ( PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader )
1694 FUNCTION: UINT GetRawInputData ( HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader )
1695 FUNCTION: UINT GetRawInputDeviceInfoA ( HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize )
1696 FUNCTION: UINT GetRawInputDeviceInfoW ( HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize )
1697 ALIAS: GetRawInputDeviceInfo GetRawInputDeviceInfoW
1698 FUNCTION: UINT GetRawInputDeviceList ( PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize )
1699 FUNCTION: UINT GetRegisteredRawInputDevices ( PRAWINPUTDEVICE pRawInputDevices, PUINT puiNumDevices, UINT cbSize )
1700 ! FUNCTION: GetReasonTitleFromReasonCode
1701 ! FUNCTION: GetScrollBarInfo
1702 ! FUNCTION: GetScrollInfo
1703 ! FUNCTION: GetScrollPos
1704 ! FUNCTION: GetScrollRange
1705 ! FUNCTION: GetShellWindow
1706 ! FUNCTION: GetSubMenu
1707 FUNCTION: COLORREF GetSysColor ( int nIndex )
1708 FUNCTION: HBRUSH GetSysColorBrush ( int nIndex )
1709 FUNCTION: HMENU GetSystemMenu ( HWND hWnd, BOOL bRevert )
1710 ! FUNCTION: GetSystemMetrics
1711 ! FUNCTION: GetTabbedTextExtentA
1712 ! FUNCTION: GetTabbedTextExtentW
1713 ! FUNCTION: GetTaskmanWindow
1714 FUNCTION: HDESK GetThreadDesktop ( DWORD dwThreadId )
1715 ! FUNCTION: GetTitleBarInfo
1716
1717
1718 FUNCTION: HWND GetTopWindow ( HWND hWnd )
1719 ! FUNCTION: BOOL GetUpdateRect ( HWND hWnd, LPRECT lpRect, BOOL bErase )
1720 FUNCTION: int GetUpdateRgn ( HWND hWnd, HRGN hRgn, BOOL bErase )
1721
1722
1723 ! FUNCTION: GetUserObjectInformationA
1724 ! FUNCTION: GetUserObjectInformationW
1725 ! FUNCTION: GetUserObjectSecurity
1726 FUNCTION: HWND GetWindow ( HWND hWnd, UINT uCmd )
1727 ! FUNCTION: GetWindowContextHelpId
1728 ! FUNCTION: GetWindowDC
1729 ! FUNCTION: GetWindowInfo
1730 ! FUNCTION: GetWindowLongA
1731 ! FUNCTION: GetWindowLongW
1732 FUNCTION: LONG_PTR GetWindowLongW ( HANDLE hWnd, int index )
1733 ALIAS: GetWindowLong GetWindowLongW
1734
1735 FUNCTION: LONG_PTR GetWindowLongPtrW ( HWND hWnd, int nIndex )
1736 ALIAS: GetWindowLongPtr GetWindowLongPtrW
1737 ! FUNCTION: GetWindowModuleFileName
1738 ! FUNCTION: GetWindowModuleFileNameA
1739 ! FUNCTION: GetWindowModuleFileNameW
1740 ! FUNCTION: GetWindowPlacement
1741 FUNCTION: BOOL GetWindowRect ( HWND hWnd, LPRECT lpRect )
1742 ! FUNCTION: GetWindowRgn
1743 ! FUNCTION: GetWindowRgnBox
1744 ! FUNCTION: int GetWindowTextA ( HWND hWnd, char* lpString, int nMaxCount )
1745 FUNCTION: int GetWindowTextW ( HWND hWnd, LPTSTR lpString, int nMaxCount )
1746 ALIAS: GetWindowText GetWindowTextW
1747 ! FUNCTION: GetWindowTextLengthA
1748 ! FUNCTION: GetWindowTextLengthW
1749 ! FUNCTION: GetWindowTextW
1750 FUNCTION: DWORD GetWindowThreadProcessId ( HWND hWnd, void* lpdwProcessId )
1751 ! FUNCTION: GetWindowWord
1752 ! FUNCTION: GetWinStationInfo
1753 ! FUNCTION: GrayStringA
1754 ! FUNCTION: GrayStringW
1755 ! FUNCTION: HideCaret
1756 ! FUNCTION: HiliteMenuItem
1757 ! FUNCTION: ImpersonateDdeClientWindow
1758 ! FUNCTION: IMPGetIMEA
1759 ! FUNCTION: IMPGetIMEW
1760 ! FUNCTION: IMPQueryIMEA
1761 ! FUNCTION: IMPQueryIMEW
1762 ! FUNCTION: IMPSetIMEA
1763 ! FUNCTION: IMPSetIMEW
1764 ! FUNCTION: InflateRect
1765 ! FUNCTION: InitializeLpkHooks
1766 ! FUNCTION: InitializeWin32EntryTable
1767 ! FUNCTION: InSendMessage
1768 ! FUNCTION: InSendMessageEx
1769 ! FUNCTION: InsertMenuA
1770 ! FUNCTION: InsertMenuItemA
1771 ! FUNCTION: InsertMenuItemW
1772 ! FUNCTION: InsertMenuW
1773 ! FUNCTION: InternalGetWindowText
1774 ! FUNCTION: IntersectRect
1775 ! FUNCTION: InvalidateRect
1776 ! FUNCTION: InvalidateRgn
1777 ! FUNCTION: InvertRect
1778 ! FUNCTION: IsCharAlphaA
1779 ! FUNCTION: IsCharAlphaNumericA
1780 ! FUNCTION: IsCharAlphaNumericW
1781 ! FUNCTION: IsCharAlphaW
1782 ! FUNCTION: IsCharLowerA
1783 ! FUNCTION: IsCharLowerW
1784 ! FUNCTION: IsCharUpperA
1785 ! FUNCTION: IsCharUpperW
1786 FUNCTION: BOOL IsChild ( HWND hWndParent, HWND hWnd )
1787 FUNCTION: BOOL IsClipboardFormatAvailable ( UINT format )
1788 ! FUNCTION: IsDialogMessage
1789 ! FUNCTION: IsDialogMessageA
1790 ! FUNCTION: IsDialogMessageW
1791 ! FUNCTION: IsDlgButtonChecked
1792 FUNCTION: BOOL IsGUIThread ( BOOL bConvert )
1793 FUNCTION: BOOL IsHungAppWindow ( HWND hWnd )
1794 FUNCTION: BOOL IsIconic ( HWND hWnd )
1795 FUNCTION: BOOL IsMenu ( HMENU hMenu )
1796 ! FUNCTION: BOOL IsRectEmpty
1797 ! FUNCTION: BOOL IsServerSideWindow
1798 FUNCTION: BOOL IsWindow ( HWND hWnd )
1799 ! FUNCTION: BOOL IsWindowEnabled
1800 ! FUNCTION: BOOL IsWindowInDestroy
1801 FUNCTION: BOOL IsWindowUnicode ( HWND hWnd )
1802 FUNCTION: BOOL IsWindowVisible ( HWND hWnd )
1803 ! FUNCTION: BOOL IsWinEventHookInstalled
1804 FUNCTION: BOOL IsZoomed ( HWND hWnd )
1805 ! FUNCTION: keybd_event
1806 ! FUNCTION: KillSystemTimer
1807 ! FUNCTION: KillTimer
1808 ! FUNCTION: LoadAcceleratorsA
1809 FUNCTION: HACCEL LoadAcceleratorsW ( HINSTANCE hInstance, LPCTSTR lpTableName )
1810 ! FUNCTION: LoadBitmapA
1811 ! FUNCTION: LoadBitmapW
1812 ! FUNCTION: LoadCursorFromFileA
1813 ! FUNCTION: LoadCursorFromFileW
1814
1815
1816 FUNCTION: HCURSOR LoadCursorW ( HINSTANCE hInstance, LPCWSTR lpCursorName )
1817 ALIAS: LoadCursor LoadCursorW
1818
1819 FUNCTION: HICON LoadIconW ( HINSTANCE hInstance, LPCWSTR lpIconName )
1820 ALIAS: LoadIcon LoadIconW
1821
1822 ! FUNCTION: LoadImageA
1823 FUNCTION: HANDLE LoadImageW ( HINSTANCE hinst, LPCWSTR lpszName, UINT uType, int cxDesired, int cyDesired, UINT fuLoad )
1824 ALIAS: LoadImage LoadImageW
1825 ! FUNCTION: LoadKeyboardLayoutA
1826 ! FUNCTION: LoadKeyboardLayoutEx
1827 ! FUNCTION: LoadKeyboardLayoutW
1828 ! FUNCTION: LoadLocalFonts
1829 ! FUNCTION: LoadMenuA
1830 ! FUNCTION: LoadMenuIndirectA
1831 ! FUNCTION: LoadMenuIndirectW
1832 ! FUNCTION: LoadMenuW
1833 ! FUNCTION: LoadRemoteFonts
1834 ! FUNCTION: LoadStringA
1835 ! FUNCTION: LoadStringW
1836 ! FUNCTION: LockSetForegroundWindow
1837 ! FUNCTION: LockWindowStation
1838 ! FUNCTION: LockWindowUpdate
1839 ! FUNCTION: LockWorkStation
1840 ! FUNCTION: LookupIconIdFromDirectory
1841 ! FUNCTION: LookupIconIdFromDirectoryEx
1842 ! FUNCTION: MapDialogRect
1843
1844 FUNCTION: UINT MapVirtualKeyW ( UINT uCode, UINT uMapType )
1845 ALIAS: MapVirtualKey MapVirtualKeyW
1846
1847 FUNCTION: UINT MapVirtualKeyExW ( UINT uCode, UINT uMapType, HKL dwhkl )
1848 ALIAS: MapVirtualKeyEx MapVirtualKeyExW
1849
1850 FUNCTION: int MapWindowPoints ( HWND hWndFrom, HWND hWndTo, LPPOINT lpPoints, UINT cPoints )
1851 ! FUNCTION: MB_GetString
1852 ! FUNCTION: MBToWCSEx
1853 ! FUNCTION: MenuItemFromPoint
1854 ! FUNCTION: MenuWindowProcA
1855 ! FUNCTION: MenuWindowProcW
1856
1857 ! -1 is Simple beep
1858 FUNCTION: BOOL MessageBeep ( UINT uType )
1859
1860 FUNCTION: int MessageBoxA (
1861                 HWND hWnd,
1862                 LPCSTR lpText,
1863                 LPCSTR lpCaption,
1864                 UINT uType )
1865
1866 FUNCTION: int MessageBoxW (
1867                 HWND hWnd,
1868                 LPCWSTR lpText,
1869                 LPCWSTR lpCaption,
1870                 UINT uType )
1871
1872 FUNCTION: int MessageBoxExA ( HWND hWnd,
1873                 LPCSTR lpText,
1874                 LPCSTR lpCaption,
1875                 UINT uType,
1876                 WORD wLanguageId )
1877
1878 FUNCTION: int MessageBoxExW (
1879                 HWND hWnd,
1880                 LPCWSTR lpText,
1881                 LPCWSTR lpCaption,
1882                 UINT uType,
1883                 WORD wLanguageId )
1884
1885 ! FUNCTION: int MessageBoxIndirectA ( MSGBOXPARAMSA* params )
1886 ! FUNCTION: int MessageBoxIndirectW ( MSGBOXPARAMSW* params )
1887
1888
1889 ALIAS: MessageBox MessageBoxW
1890
1891 ALIAS: MessageBoxEx MessageBoxExW
1892
1893 ! : MessageBoxIndirect
1894     ! \ MessageBoxIndirectW \ MessageBoxIndirectA unicode-exec ;
1895
1896 ! FUNCTION: MessageBoxTimeoutA ! dllexported, not in header
1897 ! FUNCTION: MessageBoxTimeoutW ! dllexported, not in header
1898
1899 ! FUNCTION: ModifyMenuA
1900 ! FUNCTION: ModifyMenuW
1901 FUNCTION: HMONITOR MonitorFromPoint ( POINT pt, DWORD dwFlags )
1902 ! FUNCTION: MonitorFromRect
1903 FUNCTION: HMONITOR MonitorFromWindow ( HWND hWnd, DWORD dwFlags )
1904 ! FUNCTION: mouse_event
1905
1906
1907 FUNCTION: BOOL MoveWindow (
1908     HWND hWnd,
1909     int X,
1910     int Y,
1911     int nWidth,
1912     int nHeight,
1913     BOOL bRepaint )
1914
1915 ! FUNCTION: MsgWaitForMultipleObjects
1916 ! FUNCTION: MsgWaitForMultipleObjectsEx
1917 ! FUNCTION: NotifyWinEvent
1918 ! FUNCTION: OemKeyScan
1919 ! FUNCTION: OemToCharA
1920 ! FUNCTION: OemToCharBuffA
1921 ! FUNCTION: OemToCharBuffW
1922 ! FUNCTION: OemToCharW
1923 ! FUNCTION: OffsetRect
1924 FUNCTION: BOOL OpenClipboard ( HWND hWndNewOwner )
1925 ! FUNCTION: OpenDesktopA
1926 FUNCTION: HDESK OpenDesktopW ( LPTSTR lpsazDesktop, DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess )
1927 ALIAS: OpenDesktop OpenDesktopW
1928 ! FUNCTION: OpenIcon
1929 FUNCTION: HDESK OpenInputDesktop ( DWORD dwFlags, BOOL fInherit, ACCESS_MASK dwDesiredAccess )
1930 ! FUNCTION: OpenWindowStationA
1931 ! FUNCTION: OpenWindowStationW
1932 ! FUNCTION: PackDDElParam
1933 ! FUNCTION: PaintDesktop
1934 ! FUNCTION: PaintMenuBar
1935 FUNCTION: BOOL PeekMessageA ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg )
1936 FUNCTION: BOOL PeekMessageW ( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg )
1937 ALIAS: PeekMessage PeekMessageW
1938
1939 ! FUNCTION: PostMessageA
1940 ! FUNCTION: PostMessageW
1941 FUNCTION: void PostQuitMessage ( int nExitCode )
1942 ! FUNCTION: PostThreadMessageA
1943 ! FUNCTION: PostThreadMessageW
1944 ! FUNCTION: PrintWindow
1945 ! FUNCTION: PrivateExtractIconExA
1946 ! FUNCTION: PrivateExtractIconExW
1947 ! FUNCTION: PrivateExtractIconsA
1948 ! FUNCTION: PrivateExtractIconsW
1949 ! FUNCTION: PrivateSetDbgTag
1950 ! FUNCTION: PrivateSetRipFlags
1951 ! FUNCTION: PtInRect
1952 ! FUNCTION: QuerySendMessage
1953 ! FUNCTION: QueryUserCounters
1954 ! FUNCTION: RealChildWindowFromPoint
1955 ! FUNCTION: RealGetWindowClass
1956 ! FUNCTION: RealGetWindowClassA
1957 ! FUNCTION: RealGetWindowClassW
1958 ! FUNCTION: ReasonCodeNeedsBugID
1959 ! FUNCTION: ReasonCodeNeedsComment
1960 ! FUNCTION: RecordShutdownReason
1961 ! FUNCTION: RedrawWindow
1962
1963 FUNCTION: ATOM RegisterClassA ( WNDCLASS* lpWndClass )
1964 FUNCTION: ATOM RegisterClassW ( WNDCLASS* lpWndClass )
1965 FUNCTION: ATOM RegisterClassExA ( WNDCLASSEX* lpwcx )
1966 FUNCTION: ATOM RegisterClassExW ( WNDCLASSEX* lpwcx )
1967
1968 ALIAS: RegisterClass RegisterClassW
1969 ALIAS: RegisterClassEx RegisterClassExW
1970
1971 ! FUNCTION: RegisterClipboardFormatA
1972 ! FUNCTION: RegisterClipboardFormatW
1973 FUNCTION: HANDLE RegisterDeviceNotificationA ( HANDLE hRecipient, LPVOID NotificationFilter, DWORD Flags )
1974 FUNCTION: HANDLE RegisterDeviceNotificationW ( HANDLE hRecipient, LPVOID NotificationFilter, DWORD Flags )
1975 ALIAS: RegisterDeviceNotification RegisterDeviceNotificationW
1976 ! FUNCTION: RegisterHotKey
1977 ! FUNCTION: RegisterLogonProcess
1978 ! FUNCTION: RegisterMessagePumpHook
1979 FUNCTION: BOOL RegisterRawInputDevices ( PCRAWINPUTDEVICE pRawInputDevices, UINT uiNumDevices, UINT cbSize )
1980 ! FUNCTION: RegisterServicesProcess
1981 ! FUNCTION: RegisterShellHookWindow
1982 ! FUNCTION: RegisterSystemThread
1983 ! FUNCTION: RegisterTasklist
1984 ! FUNCTION: RegisterUserApiHook
1985 ! FUNCTION: RegisterWindowMessageA
1986 ! FUNCTION: RegisterWindowMessageW
1987 FUNCTION: BOOL ReleaseCapture ( )
1988 FUNCTION: int ReleaseDC ( HWND hWnd, HDC hDC )
1989 ! FUNCTION: RemoveMenu
1990 ! FUNCTION: RemovePropA
1991 ! FUNCTION: RemovePropW
1992 ! FUNCTION: ReplyMessage
1993 ! FUNCTION: ResolveDesktopForWOW
1994 ! FUNCTION: ReuseDDElParam
1995 FUNCTION: BOOL ScreenToClient ( HWND hWnd, LPPOINT lpPoint )
1996 ! FUNCTION: ScrollChildren
1997 ! FUNCTION: ScrollDC
1998 ! FUNCTION: ScrollWindow
1999 ! FUNCTION: ScrollWindowEx
2000 ! FUNCTION: SendDlgItemMessageA
2001 ! FUNCTION: SendDlgItemMessageW
2002 ! FUNCTION: SendIMEMessageExA
2003 ! FUNCTION: SendIMEMessageExW
2004 FUNCTION: UINT SendInput ( UINT nInputs, LPINPUT pInputs, int cbSize )
2005 FUNCTION: LRESULT SendMessageW ( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
2006 ALIAS: SendMessage SendMessageW
2007 ! FUNCTION: SendMessageCallbackA
2008 ! FUNCTION: SendMessageCallbackW
2009 ! FUNCTION: SendMessageTimeoutA
2010 ! FUNCTION: SendMessageTimeoutW
2011 ! FUNCTION: SendNotifyMessageA
2012 ! FUNCTION: SendNotifyMessageW
2013 ! FUNCTION: SetActiveWindow
2014 FUNCTION: HWND SetCapture ( HWND hWnd )
2015 ! FUNCTION: SetCaretBlinkTime
2016 ! FUNCTION: SetCaretPos
2017
2018 FUNCTION: ULONG_PTR SetClassLongW ( HWND hWnd, int nIndex, LONG_PTR dwNewLong )
2019 ALIAS: SetClassLongPtr SetClassLongW
2020 ALIAS: SetClassLong SetClassLongW
2021
2022 ! FUNCTION: SetClassWord
2023 FUNCTION: HANDLE SetClipboardData ( UINT uFormat, HANDLE hMem )
2024 ! FUNCTION: SetClipboardViewer
2025 ! FUNCTION: SetConsoleReserveKeys
2026 ! FUNCTION: SetCursor
2027 ! FUNCTION: SetCursorContents
2028 ! FUNCTION: SetCursorPos
2029 ! FUNCTION: SetDebugErrorLevel
2030 ! FUNCTION: SetDeskWallpaper
2031 ! FUNCTION: SetDlgItemInt
2032 ! FUNCTION: SetDlgItemTextA
2033 ! FUNCTION: SetDlgItemTextW
2034 ! FUNCTION: SetDoubleClickTime
2035 FUNCTION: HWND SetFocus ( HWND hWnd )
2036 FUNCTION: BOOL SetForegroundWindow ( HWND hWnd )
2037 ! FUNCTION: SetInternalWindowPos
2038 ! FUNCTION: SetKeyboardState
2039 ! type is ignored
2040 FUNCTION: void SetLastErrorEx ( DWORD dwErrCode, DWORD dwType )
2041 : SetLastError ( errcode -- ) 0 SetLastErrorEx ; inline
2042 ! FUNCTION: SetLayeredWindowAttributes
2043 ! FUNCTION: SetLogonNotifyWindow
2044 ! FUNCTION: SetMenu
2045 ! FUNCTION: SetMenuContextHelpId
2046 ! FUNCTION: SetMenuDefaultItem
2047 ! FUNCTION: SetMenuInfo
2048 ! FUNCTION: SetMenuItemBitmaps
2049 ! FUNCTION: SetMenuItemInfoA
2050 ! FUNCTION: SetMenuItemInfoW
2051 ! FUNCTION: SetMessageExtraInfo
2052 ! FUNCTION: SetMessageQueue
2053 ! FUNCTION: SetParent
2054 ! FUNCTION: SetProcessDefaultLayout
2055 ! FUNCTION: SetProcessWindowStation
2056 ! FUNCTION: SetProgmanWindow
2057 ! FUNCTION: SetPropA
2058 ! FUNCTION: SetPropW
2059 ! FUNCTION: SetRect
2060 ! FUNCTION: SetRectEmpty
2061 ! FUNCTION: SetScrollInfo
2062 ! FUNCTION: SetScrollPos
2063 ! FUNCTION: SetScrollRange
2064 ! FUNCTION: SetShellWindow
2065 ! FUNCTION: SetShellWindowEx
2066 ! FUNCTION: SetSysColors
2067 ! FUNCTION: SetSysColorsTemp
2068 ! FUNCTION: SetSystemCursor
2069 ! FUNCTION: SetSystemMenu
2070 ! FUNCTION: SetSystemTimer
2071 ! FUNCTION: SetTaskmanWindow
2072 ! FUNCTION: SetThreadDesktop
2073 ! FUNCTION: SetTimer
2074 ! FUNCTION: SetUserObjectInformationA
2075 ! FUNCTION: SetUserObjectInformationW
2076 ! FUNCTION: SetUserObjectSecurity
2077 ! FUNCTION: SetWindowContextHelpId
2078 ! FUNCTION: SetWindowLongA
2079 ! FUNCTION: SetWindowLongW
2080 FUNCTION: LONG_PTR SetWindowLongW ( HANDLE hWnd, int index, LONG_PTR dwNewLong )
2081 ALIAS: SetWindowLong SetWindowLongW
2082 ! FUNCTION: SetWindowPlacement
2083 FUNCTION: BOOL SetWindowPos ( HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags )
2084
2085 FUNCTION: LONG_PTR SetWindowLongPtrW ( HWND hWnd, int nIndex, LONG_PTR dwNewLong )
2086 ALIAS: SetWindowLongPtr SetWindowLongPtrW
2087
2088 : HWND_BOTTOM ( -- alien ) 1 <alien> ;
2089 : HWND_MESSAGE ( -- alien ) -3 <alien> ;
2090 : HWND_NOTOPMOST ( -- alien ) -2 <alien> ;
2091 CONSTANT: HWND_TOP f
2092 : HWND_TOPMOST ( -- alien ) -1 <alien> ;
2093 : HWND_DESKTOP ( -- alien ) 0 <alien> ;
2094 : HWND_BROADCAST ( -- alien ) 65535 <alien> ;
2095
2096 ! FUNCTION: SetWindowRgn
2097 ! FUNCTION: SetWindowsHookA
2098 ! FUNCTION: SetWindowsHookExA
2099 FUNCTION: HHOOK SetWindowsHookExW ( int idHook, HOOKPROC lpfn, HINSTANCE hMod, DWORD dwThreadId )
2100 ALIAS: SetWindowsHookEx SetWindowsHookExW
2101 ! FUNCTION: SetWindowsHookW
2102 ! FUNCTION: SetWindowStationUser
2103 ! FUNCTION: SetWindowTextA
2104 ! FUNCTION: SetWindowTextW
2105 ! FUNCTION: SetWindowWord
2106 ! FUNCTION: SetWinEventHook
2107 ! FUNCTION: ShowCaret
2108 FUNCTION: int ShowCursor ( BOOL show )
2109 ! FUNCTION: ShowOwnedPopups
2110 ! FUNCTION: ShowScrollBar
2111 ! FUNCTION: ShowStartGlass
2112
2113 FUNCTION: BOOL ShowWindow ( HWND hWnd, int nCmdShow )
2114
2115 ! FUNCTION: ShowWindowAsync
2116 ! FUNCTION: SoftModalMessageBox
2117 ! FUNCTION: SubtractRect
2118 ! FUNCTION: SwapMouseButton
2119 ! FUNCTION: SwitchDesktop
2120 ! FUNCTION: SwitchToThisWindow
2121 ! FUNCTION: SystemParametersInfoA
2122
2123 FUNCTION: BOOL SystemParametersInfoW ( UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni )
2124 ALIAS: SystemParametersInfo SystemParametersInfoW
2125
2126 ! FUNCTION: TabbedTextOutA
2127 ! FUNCTION: TabbedTextOutW
2128 ! FUNCTION: TileChildWindows
2129 ! FUNCTION: TileWindows
2130 ! FUNCTION: ToAscii
2131 ! FUNCTION: ToAsciiEx
2132 FUNCTION: int ToUnicode ( UINT wVirtKey, UINT wScanCode, BYTE *lpKeyState, LPWSTR pwszBuff, int cchBuff, UINT wFlags )
2133 ! FUNCTION: ToUnicodeEx
2134 FUNCTION: BOOL TrackMouseEvent ( LPTRACKMOUSEEVENT lpEventTrack )
2135 ! FUNCTION: TrackPopupMenu
2136 ! FUNCTION: TrackPopupMenuEx
2137 ! FUNCTION: TranslateAccelerator
2138 ! FUNCTION: TranslateAcceleratorA
2139 FUNCTION: int TranslateAcceleratorW ( HWND hWnd, HACCEL hAccTable, LPMSG lpMsg )
2140 ALIAS: TranslateAccelerator TranslateAcceleratorW
2141
2142 ! FUNCTION: TranslateMDISysAccel
2143 FUNCTION: BOOL TranslateMessage ( MSG* lpMsg )
2144
2145 ! FUNCTION: UnhookWindowsHook
2146 FUNCTION: BOOL UnhookWindowsHookEx ( HHOOK hhk )
2147 ! FUNCTION: UnhookWinEvent
2148 ! FUNCTION: UnionRect
2149 ! FUNCTION: UnloadKeyboardLayout
2150 ! FUNCTION: UnlockWindowStation
2151 ! FUNCTION: UnpackDDElParam
2152 FUNCTION: BOOL UnregisterClassW ( LPCWSTR lpClassName, HINSTANCE hInstance )
2153 ALIAS: UnregisterClass UnregisterClassW
2154 FUNCTION: BOOL UnregisterDeviceNotification ( HANDLE hDevNotify )
2155 ! FUNCTION: UnregisterHotKey
2156 ! FUNCTION: UnregisterMessagePumpHook
2157 ! FUNCTION: UnregisterUserApiHook
2158 ! FUNCTION: UpdateLayeredWindow
2159 ! FUNCTION: UpdatePerUserSystemParameters
2160
2161 FUNCTION: BOOL UpdateWindow ( HWND hWnd )
2162
2163 ! FUNCTION: User32InitializeImmEntryTable
2164 ! FUNCTION: UserClientDllInitialize
2165 ! FUNCTION: UserHandleGrantAccess
2166 ! FUNCTION: UserLpkPSMTextOut
2167 ! FUNCTION: UserLpkTabbedTextOut
2168 ! FUNCTION: UserRealizePalette
2169 ! FUNCTION: UserRegisterWowHandlers
2170 ! FUNCTION: ValidateRect
2171 ! FUNCTION: ValidateRgn
2172 ! FUNCTION: VkKeyScanA
2173 ! FUNCTION: VkKeyScanExA
2174 FUNCTION: SHORT VkKeyScanExW ( TCHAR ch, HKL dwhkl )
2175 ALIAS: VkKeyScanEx VkKeyScanExW
2176 FUNCTION: SHORT VkKeyScanW ( TCHAR ch )
2177 ALIAS: VkKeyScan VkKeyScanW
2178 ! FUNCTION: VRipOutput
2179 ! FUNCTION: VTagOutput
2180 ! FUNCTION: WaitForInputIdle
2181 ! FUNCTION: WaitMessage
2182 ! FUNCTION: WCSToMBEx
2183 ! FUNCTION: Win32PoolAllocationStats
2184 ! FUNCTION: WindowFromDC
2185 ! FUNCTION: WindowFromPoint
2186 ! FUNCTION: WinHelpA
2187 ! FUNCTION: WinHelpW
2188 ! FUNCTION: WINNLSEnableIME
2189 ! FUNCTION: WINNLSGetEnableStatus
2190 ! FUNCTION: WINNLSGetIMEHotkey
2191 ! FUNCTION: wsprintfA
2192 ! FUNCTION: wsprintfW
2193 ! FUNCTION: wvsprintfA
2194 ! FUNCTION: wvsprintfW
2195
2196 TYPEDEF: HANDLE HPOWERNOTIFY
2197
2198 FUNCTION: HPOWERNOTIFY RegisterPowerSettingNotification ( HANDLE  hRecipient, LPCGUID PowerSettingGuid, DWORD Flags )
2199 FUNCTION: BOOL UnregisterPowerSettingNotification ( HPOWERNOTIFY Handle )
2200
2201 CONSTANT: GUID_ACDC_POWER_SOURCE
2202     GUID: {5d3e9a59-e9D5-4b00-a6bd-ff34ff516548}
2203
2204 CONSTANT: GUID_BATTERY_PERCENTAGE_REMAINING
2205     GUID: {a7ad8041-b45a-4cae-87a3-eecbb468a9e1}
2206
2207 CONSTANT: GUID_CONSOLE_DISPLAY_STATE
2208     GUID: {6fe69556-704a-47a0-8f24-c28d936fda47}
2209
2210 CONSTANT: GUID_GLOBAL_USER_PRESENCE
2211     GUID: {786e8a1d-b427-4344-9207-09e70bdcbea9}
2212
2213 CONSTANT: GUID_IDLE_BACKGROUND_TASK
2214     GUID: {515c31d8-f734-163d-a0fd-11a0-8c91e8f1}
2215
2216 CONSTANT: GUID_MONITOR_POWER_ON
2217     GUID: {02731015-4510-4526-99e6-e5a17ebd1aea}
2218
2219 CONSTANT: GUID_POWER_SAVING_STATUS
2220     GUID: {e00958c0-c213-4ace-ac77-fecced2eeea5}
2221
2222 CONSTANT: GUID_POWERSCHEME_PERSONALITY
2223     GUID: {245d8541-3943-4422-b025-13a7-84f679b7}
2224
2225 CONSTANT: GUID_MIN_POWER_SAVINGS
2226     GUID: {8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c}
2227
2228 CONSTANT: GUID_MAX_POWER_SAVINGS
2229     GUID: {a1841308-3541-4fab-bc81-f71556f20b4a}
2230
2231 CONSTANT: GUID_TYPICAL_POWER_SAVINGS
2232     GUID: {381b4222-f694-41f0-9685-ff5bb260df2e}
2233
2234 CONSTANT: GUID_SESSION_DISPLAY_STATUS
2235     GUID: {2b84c20e-ad23-4ddf-93db-05ffbd7efca5}
2236
2237 CONSTANT: GUID_SESSION_USER_PRESENCE
2238     GUID: {3c0f4548-c03f-4c4d-b9f2-237ede686376}
2239
2240 CONSTANT: GUID_SYSTEM_AWAYMODE
2241     GUID: {98a7f580-01f7-48aa-9c0f-44352c29e5C0}
2242
2243 ! This notification fires when the Lid Close Action is
2244 ! changed by user in the Power Manager (Control Panel).
2245 CONSTANT: GUID_LIDCLOSE_ACTION
2246     GUID: {5ca83367-6e45-459f-a27b-476b1d01c936}
2247
2248 ! This notifies when the laptop lid is physically opened or closed.
2249 CONSTANT: GUID_LIDSWITCH_STATE_CHANGE
2250     GUID: {ba3e0f4d-b817-4094-a2d1-d56379e6a0f3}
2251
2252 CONSTANT: PBT_POWERSETTINGCHANGE 0x8013
2253
2254 STRUCT: POWERBROADCAST_SETTING
2255     { PowerSetting GUID  }
2256     { DataLength   DWORD }
2257     { Data         UCHAR }
2258 ;
2259
2260 : msgbox ( str -- )
2261     f swap "DebugMsg" MB_OK MessageBox drop ;
2262
2263 ! HighDPI
2264 TYPEDEF: HANDLE DPI_AWARENESS_CONTEXT
2265
2266 ENUM: PROCESS_DPI_AWARENESS
2267     { PROCESS_DPI_UNAWARE 0 }
2268     { PROCESS_SYSTEM_DPI_AWARE 1 }
2269     { PROCESS_PER_MONITOR_DPI_AWARE 2 } ;
2270
2271 ENUM: DPI_AWARENESS
2272     { DPI_AWARENESS_INVALID -1 }
2273     { DPI_AWARENESS_UNAWARE 0 }
2274     { DPI_AWARENESS_SYSTEM_AWARE 1 }
2275     { DPI_AWARENESS_PER_MONITOR_AWARE 2 } ;
2276
2277 FUNCTION: BOOL AdjustWindowRectExForDpi (
2278     LPRECT lpRect,
2279     DWORD  dwStyle,
2280     BOOL   bMenu,
2281     DWORD  dwExStyle,
2282     UINT   dpi
2283 )
2284
2285 FUNCTION: BOOL EnableNonClientDpiScaling (
2286     HWND hwnd
2287 )
2288
2289 FUNCTION: BOOL AreDpiAwarenessContextsEqual (
2290     DPI_AWARENESS_CONTEXT dpiContextA,
2291     DPI_AWARENESS_CONTEXT dpiContextB
2292 )
2293
2294 ENUM: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS
2295     DCDC_DEFAULT
2296     DCDC_DISABLE_FONT_UPDATE
2297     DCDC_DISABLE_RELAYOUT ;
2298
2299 FUNCTION: DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS GetDialogControlDpiChangeBehavior (
2300     HWND hWnd
2301 )
2302
2303 ENUM: DIALOG_DPI_CHANGE_BEHAVIORS
2304     DDC_DEFAULT
2305     DDC_DISABLE_ALL
2306     DDC_DISABLE_RESIZE
2307     DDC_DISABLE_CONTROL_RELAYOUT ;
2308
2309 FUNCTION: DIALOG_DPI_CHANGE_BEHAVIORS GetDialogDpiChangeBehavior (
2310     HWND hDlg
2311 )
2312
2313 FUNCTION: UINT GetDpiForSystem ( )
2314
2315 FUNCTION: UINT GetDpiForWindow ( HWND hwnd )
2316
2317 FUNCTION: HRESULT GetProcessDpiAwareness ( HANDLE hprocess, PROCESS_DPI_AWARENESS* value )
2318
2319 FUNCTION: UINT GetSystemDpiForProcess (
2320     HANDLE hProcess
2321 )
2322
2323 FUNCTION: int GetSystemMetricsForDpi (
2324     int  nIndex,
2325     UINT dpi
2326 )
2327
2328 FUNCTION: DPI_AWARENESS_CONTEXT GetThreadDpiAwarenessContext ( )
2329 FUNCTION: DPI_AWARENESS_CONTEXT SetThreadDpiAwarenessContext ( DPI_AWARENESS_CONTEXT dpiContext )
2330
2331 ENUM: DPI_HOSTING_BEHAVIOR
2332     DPI_HOSTING_BEHAVIOR_INVALID
2333     DPI_HOSTING_BEHAVIOR_DEFAULT
2334     DPI_HOSTING_BEHAVIOR_MIXED ;
2335
2336 FUNCTION: DPI_HOSTING_BEHAVIOR GetThreadDpiHostingBehavior ( )
2337
2338 FUNCTION: DPI_HOSTING_BEHAVIOR GetWindowDpiHostingBehavior (
2339     HWND hwnd
2340 )
2341
2342 FUNCTION: BOOL SetProcessDPIAware ( )
2343 FUNCTION: HRESULT SetProcessDpiAwareness ( PROCESS_DPI_AWARENESS value )
2344 FUNCTION: BOOL SetProcessDpiAwarenessContext ( DPI_AWARENESS_CONTEXT value )
2345
2346 FUNCTION: DPI_AWARENESS_CONTEXT GetWindowDpiAwarenessContext ( HWND hwnd )
2347 FUNCTION: DPI_AWARENESS GetAwarenessFromDpiAwarenessContext ( DPI_AWARENESS_CONTEXT value )
2348
2349 FUNCTION: BOOL IsValidDpiAwarenessContext (
2350     DPI_AWARENESS_CONTEXT value
2351 )
2352
2353 ! Needs work
2354 ! GetThreadDpiAwarenessContext -8 swap <displaced-alien> IsValidDpiAwarenessContext ! 0, should be 1
2355 ! : DPI_AWARENESS_CONTEXT_UNAWARE ( -- DPI_AWARENESS_CONTEXT )
2356 !     GetThreadDpiAwarenessContext -1 swap <displaced-alien> ;
2357 ! : DPI_AWARENESS_CONTEXT_SYSTEM_AWARE ( -- DPI_AWARENESS_CONTEXT )
2358 !     GetThreadDpiAwarenessContext -2 swap <displaced-alien> ;
2359 ! : DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE ( -- DPI_AWARENESS_CONTEXT )
2360 !     GetThreadDpiAwarenessContext -3 swap <displaced-alien> ;
2361 ! : DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 ( -- DPI_AWARENESS_CONTEXT )
2362 !     GetThreadDpiAwarenessContext -4 swap <displaced-alien> ;
2363 ! : DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED ( -- DPI_AWARENESS_CONTEXT )
2364 !     GetThreadDpiAwarenessContext -5 swap <displaced-alien> ;
2365
2366 FUNCTION: BOOL LogicalToPhysicalPointForPerMonitorDPI (
2367     HWND    hWnd,
2368     LPPOINT lpPoint
2369 )
2370
2371 FUNCTION: BOOL PhysicalToLogicalPointForPerMonitorDPI (
2372     HWND    hWnd,
2373     LPPOINT lpPoint
2374 )
2375
2376 FUNCTION: BOOL SetDialogControlDpiChangeBehavior (
2377     HWND                                hWnd,
2378     DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS mask,
2379     DIALOG_CONTROL_DPI_CHANGE_BEHAVIORS values
2380 )
2381
2382 FUNCTION: BOOL SetDialogDpiChangeBehavior (
2383     HWND                        hDlg,
2384     DIALOG_DPI_CHANGE_BEHAVIORS mask,
2385     DIALOG_DPI_CHANGE_BEHAVIORS values
2386 )
2387
2388 FUNCTION: DPI_HOSTING_BEHAVIOR SetThreadDpiHostingBehavior (
2389     DPI_HOSTING_BEHAVIOR value
2390 )
2391
2392 FUNCTION: BOOL SystemParametersInfoForDpi (
2393     UINT  uiAction,
2394     UINT  uiParam,
2395     PVOID pvParam,
2396     UINT  fWinIni,
2397     UINT  dpi
2398 )