comparison fuhtark_test/include/winapi/winuser.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
comparison
equal deleted inserted replaced
1499:1f58458b7ef7 1500:91c8c3b7cbf0
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef _WINUSER_
7 #define _WINUSER_
8
9 #define WINUSERAPI DECLSPEC_IMPORT
10
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14
15 #ifndef WINVER
16 #define WINVER 0x0502
17 #endif
18
19 #include <stdarg.h>
20
21 #ifndef NOUSER
22 typedef HANDLE HDWP;
23 typedef VOID MENUTEMPLATEA;
24 typedef VOID MENUTEMPLATEW;
25 typedef PVOID LPMENUTEMPLATEA;
26 typedef PVOID LPMENUTEMPLATEW;
27
28 #ifdef UNICODE
29 typedef MENUTEMPLATEW MENUTEMPLATE;
30 typedef LPMENUTEMPLATEW LPMENUTEMPLATE;
31 #else
32 typedef MENUTEMPLATEA MENUTEMPLATE;
33 typedef LPMENUTEMPLATEA LPMENUTEMPLATE;
34 #endif
35
36 typedef LRESULT (CALLBACK *WNDPROC)(HWND,UINT,WPARAM,LPARAM);
37 typedef INT_PTR (CALLBACK *DLGPROC)(HWND,UINT,WPARAM,LPARAM);
38 typedef VOID (CALLBACK *TIMERPROC)(HWND,UINT,UINT_PTR,DWORD);
39 typedef WINBOOL (CALLBACK *GRAYSTRINGPROC)(HDC,LPARAM,int);
40 typedef WINBOOL (CALLBACK *WNDENUMPROC)(HWND,LPARAM);
41 typedef LRESULT (CALLBACK *HOOKPROC)(int code,WPARAM wParam,LPARAM lParam);
42 typedef VOID (CALLBACK *SENDASYNCPROC)(HWND,UINT,ULONG_PTR,LRESULT);
43 typedef WINBOOL (CALLBACK *PROPENUMPROCA)(HWND,LPCSTR,HANDLE);
44 typedef WINBOOL (CALLBACK *PROPENUMPROCW)(HWND,LPCWSTR,HANDLE);
45 typedef WINBOOL (CALLBACK *PROPENUMPROCEXA)(HWND,LPSTR,HANDLE,ULONG_PTR);
46 typedef WINBOOL (CALLBACK *PROPENUMPROCEXW)(HWND,LPWSTR,HANDLE,ULONG_PTR);
47 typedef int (CALLBACK *EDITWORDBREAKPROCA)(LPSTR lpch,int ichCurrent,int cch,int code);
48 typedef int (CALLBACK *EDITWORDBREAKPROCW)(LPWSTR lpch,int ichCurrent,int cch,int code);
49 typedef WINBOOL (CALLBACK *DRAWSTATEPROC)(HDC hdc,LPARAM lData,WPARAM wData,int cx,int cy);
50
51 #ifdef UNICODE
52 typedef PROPENUMPROCW PROPENUMPROC;
53 typedef PROPENUMPROCEXW PROPENUMPROCEX;
54 typedef EDITWORDBREAKPROCW EDITWORDBREAKPROC;
55 #else
56 typedef PROPENUMPROCA PROPENUMPROC;
57 typedef PROPENUMPROCEXA PROPENUMPROCEX;
58 typedef EDITWORDBREAKPROCA EDITWORDBREAKPROC;
59 #endif
60
61 typedef WINBOOL (CALLBACK *NAMEENUMPROCA)(LPSTR,LPARAM);
62 typedef WINBOOL (CALLBACK *NAMEENUMPROCW)(LPWSTR,LPARAM);
63 typedef NAMEENUMPROCA WINSTAENUMPROCA;
64 typedef NAMEENUMPROCA DESKTOPENUMPROCA;
65 typedef NAMEENUMPROCW WINSTAENUMPROCW;
66 typedef NAMEENUMPROCW DESKTOPENUMPROCW;
67
68 #ifdef UNICODE
69 typedef WINSTAENUMPROCW WINSTAENUMPROC;
70 typedef DESKTOPENUMPROCW DESKTOPENUMPROC;
71 #else
72 typedef WINSTAENUMPROCA WINSTAENUMPROC;
73 typedef DESKTOPENUMPROCA DESKTOPENUMPROC;
74 #endif
75
76 #define IS_INTRESOURCE(_r) ((((ULONG_PTR)(_r)) >> 16)==0)
77 #define MAKEINTRESOURCEA(i) ((LPSTR)((ULONG_PTR)((WORD)(i))))
78 #define MAKEINTRESOURCEW(i) ((LPWSTR)((ULONG_PTR)((WORD)(i))))
79 #ifdef UNICODE
80 #define MAKEINTRESOURCE MAKEINTRESOURCEW
81 #else
82 #define MAKEINTRESOURCE MAKEINTRESOURCEA
83 #endif
84
85 #ifndef NORESOURCE
86
87 #define RT_CURSOR MAKEINTRESOURCE(1)
88 #define RT_BITMAP MAKEINTRESOURCE(2)
89 #define RT_ICON MAKEINTRESOURCE(3)
90 #define RT_MENU MAKEINTRESOURCE(4)
91 #define RT_DIALOG MAKEINTRESOURCE(5)
92 #define RT_STRING MAKEINTRESOURCE(6)
93 #define RT_FONTDIR MAKEINTRESOURCE(7)
94 #define RT_FONT MAKEINTRESOURCE(8)
95 #define RT_ACCELERATOR MAKEINTRESOURCE(9)
96 #define RT_RCDATA MAKEINTRESOURCE(10)
97 #define RT_MESSAGETABLE MAKEINTRESOURCE(11)
98
99 #define DIFFERENCE 11
100 #define RT_GROUP_CURSOR MAKEINTRESOURCE((ULONG_PTR)RT_CURSOR + DIFFERENCE)
101 #define RT_GROUP_ICON MAKEINTRESOURCE((ULONG_PTR)RT_ICON + DIFFERENCE)
102 #define RT_VERSION MAKEINTRESOURCE(16)
103 #define RT_DLGINCLUDE MAKEINTRESOURCE(17)
104 #define RT_PLUGPLAY MAKEINTRESOURCE(19)
105 #define RT_VXD MAKEINTRESOURCE(20)
106 #define RT_ANICURSOR MAKEINTRESOURCE(21)
107 #define RT_ANIICON MAKEINTRESOURCE(22)
108 #define RT_HTML MAKEINTRESOURCE(23)
109 #ifdef RC_INVOKED
110 #define RT_MANIFEST 24
111 #define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
112 #define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2
113 #define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3
114 #define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID 1
115 #define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID 16
116 #else
117 #define RT_MANIFEST MAKEINTRESOURCE(24)
118 #define CREATEPROCESS_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(1)
119 #define ISOLATIONAWARE_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(2)
120 #define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(3)
121 #define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(1)
122 #define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(16)
123 #endif
124 #endif
125
126 #ifdef UNICODE
127 #define wvsprintf wvsprintfW
128 #define wsprintf wsprintfW
129 #else
130 #define wvsprintf wvsprintfA
131 #define wsprintf wsprintfA
132 #endif
133
134 WINUSERAPI int WINAPI wvsprintfA(LPSTR,LPCSTR,va_list arglist);
135 WINUSERAPI int WINAPI wvsprintfW(LPWSTR,LPCWSTR,va_list arglist);
136 WINUSERAPI int WINAPIV wsprintfA(LPSTR,LPCSTR,...);
137 WINUSERAPI int WINAPIV wsprintfW(LPWSTR,LPCWSTR,...);
138
139 #define SETWALLPAPER_DEFAULT ((LPWSTR)-1)
140
141 #ifndef NOSCROLL
142 #define SB_HORZ 0
143 #define SB_VERT 1
144 #define SB_CTL 2
145 #define SB_BOTH 3
146
147 #define SB_LINEUP 0
148 #define SB_LINELEFT 0
149 #define SB_LINEDOWN 1
150 #define SB_LINERIGHT 1
151 #define SB_PAGEUP 2
152 #define SB_PAGELEFT 2
153 #define SB_PAGEDOWN 3
154 #define SB_PAGERIGHT 3
155 #define SB_THUMBPOSITION 4
156 #define SB_THUMBTRACK 5
157 #define SB_TOP 6
158 #define SB_LEFT 6
159 #define SB_BOTTOM 7
160 #define SB_RIGHT 7
161 #define SB_ENDSCROLL 8
162 #endif
163
164 #ifndef NOSHOWWINDOW
165 #define SW_HIDE 0
166 #define SW_SHOWNORMAL 1
167 #define SW_NORMAL 1
168 #define SW_SHOWMINIMIZED 2
169 #define SW_SHOWMAXIMIZED 3
170 #define SW_MAXIMIZE 3
171 #define SW_SHOWNOACTIVATE 4
172 #define SW_SHOW 5
173 #define SW_MINIMIZE 6
174 #define SW_SHOWMINNOACTIVE 7
175 #define SW_SHOWNA 8
176 #define SW_RESTORE 9
177 #define SW_SHOWDEFAULT 10
178 #define SW_FORCEMINIMIZE 11
179 #define SW_MAX 11
180
181 #define HIDE_WINDOW 0
182 #define SHOW_OPENWINDOW 1
183 #define SHOW_ICONWINDOW 2
184 #define SHOW_FULLSCREEN 3
185 #define SHOW_OPENNOACTIVATE 4
186
187 #define SW_PARENTCLOSING 1
188 #define SW_OTHERZOOM 2
189 #define SW_PARENTOPENING 3
190 #define SW_OTHERUNZOOM 4
191 #endif
192
193 #define AW_HOR_POSITIVE 0x00000001
194 #define AW_HOR_NEGATIVE 0x00000002
195 #define AW_VER_POSITIVE 0x00000004
196 #define AW_VER_NEGATIVE 0x00000008
197 #define AW_CENTER 0x00000010
198 #define AW_HIDE 0x00010000
199 #define AW_ACTIVATE 0x00020000
200 #define AW_SLIDE 0x00040000
201 #define AW_BLEND 0x00080000
202
203 #define KF_EXTENDED 0x0100
204 #define KF_DLGMODE 0x0800
205 #define KF_MENUMODE 0x1000
206 #define KF_ALTDOWN 0x2000
207 #define KF_REPEAT 0x4000
208 #define KF_UP 0x8000
209
210 #ifndef NOVIRTUALKEYCODES
211
212 #define VK_LBUTTON 0x01
213 #define VK_RBUTTON 0x02
214 #define VK_CANCEL 0x03
215 #define VK_MBUTTON 0x04
216 #define VK_XBUTTON1 0x05
217 #define VK_XBUTTON2 0x06
218 #define VK_BACK 0x08
219 #define VK_TAB 0x09
220 #define VK_CLEAR 0x0C
221 #define VK_RETURN 0x0D
222 #define VK_SHIFT 0x10
223 #define VK_CONTROL 0x11
224 #define VK_MENU 0x12
225 #define VK_PAUSE 0x13
226 #define VK_CAPITAL 0x14
227 #define VK_KANA 0x15
228 #define VK_HANGEUL 0x15
229 #define VK_HANGUL 0x15
230 #define VK_JUNJA 0x17
231 #define VK_FINAL 0x18
232 #define VK_HANJA 0x19
233 #define VK_KANJI 0x19
234 #define VK_ESCAPE 0x1B
235 #define VK_CONVERT 0x1C
236 #define VK_NONCONVERT 0x1D
237 #define VK_ACCEPT 0x1E
238 #define VK_MODECHANGE 0x1F
239 #define VK_SPACE 0x20
240 #define VK_PRIOR 0x21
241 #define VK_NEXT 0x22
242 #define VK_END 0x23
243 #define VK_HOME 0x24
244 #define VK_LEFT 0x25
245 #define VK_UP 0x26
246 #define VK_RIGHT 0x27
247 #define VK_DOWN 0x28
248 #define VK_SELECT 0x29
249 #define VK_PRINT 0x2A
250 #define VK_EXECUTE 0x2B
251 #define VK_SNAPSHOT 0x2C
252 #define VK_INSERT 0x2D
253 #define VK_DELETE 0x2E
254 #define VK_HELP 0x2F
255
256 #define VK_LWIN 0x5B
257 #define VK_RWIN 0x5C
258 #define VK_APPS 0x5D
259 #define VK_SLEEP 0x5F
260 #define VK_NUMPAD0 0x60
261 #define VK_NUMPAD1 0x61
262 #define VK_NUMPAD2 0x62
263 #define VK_NUMPAD3 0x63
264 #define VK_NUMPAD4 0x64
265 #define VK_NUMPAD5 0x65
266 #define VK_NUMPAD6 0x66
267 #define VK_NUMPAD7 0x67
268 #define VK_NUMPAD8 0x68
269 #define VK_NUMPAD9 0x69
270 #define VK_MULTIPLY 0x6A
271 #define VK_ADD 0x6B
272 #define VK_SEPARATOR 0x6C
273 #define VK_SUBTRACT 0x6D
274 #define VK_DECIMAL 0x6E
275 #define VK_DIVIDE 0x6F
276 #define VK_F1 0x70
277 #define VK_F2 0x71
278 #define VK_F3 0x72
279 #define VK_F4 0x73
280 #define VK_F5 0x74
281 #define VK_F6 0x75
282 #define VK_F7 0x76
283 #define VK_F8 0x77
284 #define VK_F9 0x78
285 #define VK_F10 0x79
286 #define VK_F11 0x7A
287 #define VK_F12 0x7B
288 #define VK_F13 0x7C
289 #define VK_F14 0x7D
290 #define VK_F15 0x7E
291 #define VK_F16 0x7F
292 #define VK_F17 0x80
293 #define VK_F18 0x81
294 #define VK_F19 0x82
295 #define VK_F20 0x83
296 #define VK_F21 0x84
297 #define VK_F22 0x85
298 #define VK_F23 0x86
299 #define VK_F24 0x87
300 #define VK_NUMLOCK 0x90
301 #define VK_SCROLL 0x91
302 #define VK_OEM_NEC_EQUAL 0x92
303 #define VK_OEM_FJ_JISHO 0x92
304 #define VK_OEM_FJ_MASSHOU 0x93
305 #define VK_OEM_FJ_TOUROKU 0x94
306 #define VK_OEM_FJ_LOYA 0x95
307 #define VK_OEM_FJ_ROYA 0x96
308 #define VK_LSHIFT 0xA0
309 #define VK_RSHIFT 0xA1
310 #define VK_LCONTROL 0xA2
311 #define VK_RCONTROL 0xA3
312 #define VK_LMENU 0xA4
313 #define VK_RMENU 0xA5
314 #define VK_BROWSER_BACK 0xA6
315 #define VK_BROWSER_FORWARD 0xA7
316 #define VK_BROWSER_REFRESH 0xA8
317 #define VK_BROWSER_STOP 0xA9
318 #define VK_BROWSER_SEARCH 0xAA
319 #define VK_BROWSER_FAVORITES 0xAB
320 #define VK_BROWSER_HOME 0xAC
321 #define VK_VOLUME_MUTE 0xAD
322 #define VK_VOLUME_DOWN 0xAE
323 #define VK_VOLUME_UP 0xAF
324 #define VK_MEDIA_NEXT_TRACK 0xB0
325 #define VK_MEDIA_PREV_TRACK 0xB1
326 #define VK_MEDIA_STOP 0xB2
327 #define VK_MEDIA_PLAY_PAUSE 0xB3
328 #define VK_LAUNCH_MAIL 0xB4
329 #define VK_LAUNCH_MEDIA_SELECT 0xB5
330 #define VK_LAUNCH_APP1 0xB6
331 #define VK_LAUNCH_APP2 0xB7
332 #define VK_OEM_1 0xBA
333 #define VK_OEM_PLUS 0xBB
334 #define VK_OEM_COMMA 0xBC
335 #define VK_OEM_MINUS 0xBD
336 #define VK_OEM_PERIOD 0xBE
337 #define VK_OEM_2 0xBF
338 #define VK_OEM_3 0xC0
339 #define VK_OEM_4 0xDB
340 #define VK_OEM_5 0xDC
341 #define VK_OEM_6 0xDD
342 #define VK_OEM_7 0xDE
343 #define VK_OEM_8 0xDF
344 #define VK_OEM_AX 0xE1
345 #define VK_OEM_102 0xE2
346 #define VK_ICO_HELP 0xE3
347 #define VK_ICO_00 0xE4
348 #define VK_PROCESSKEY 0xE5
349 #define VK_ICO_CLEAR 0xE6
350 #define VK_PACKET 0xE7
351 #define VK_OEM_RESET 0xE9
352 #define VK_OEM_JUMP 0xEA
353 #define VK_OEM_PA1 0xEB
354 #define VK_OEM_PA2 0xEC
355 #define VK_OEM_PA3 0xED
356 #define VK_OEM_WSCTRL 0xEE
357 #define VK_OEM_CUSEL 0xEF
358 #define VK_OEM_ATTN 0xF0
359 #define VK_OEM_FINISH 0xF1
360 #define VK_OEM_COPY 0xF2
361 #define VK_OEM_AUTO 0xF3
362 #define VK_OEM_ENLW 0xF4
363 #define VK_OEM_BACKTAB 0xF5
364 #define VK_ATTN 0xF6
365 #define VK_CRSEL 0xF7
366 #define VK_EXSEL 0xF8
367 #define VK_EREOF 0xF9
368 #define VK_PLAY 0xFA
369 #define VK_ZOOM 0xFB
370 #define VK_NONAME 0xFC
371 #define VK_PA1 0xFD
372 #define VK_OEM_CLEAR 0xFE
373 #endif
374
375 #ifndef NOWH
376
377 #define WH_MIN (-1)
378 #define WH_MSGFILTER (-1)
379 #define WH_JOURNALRECORD 0
380 #define WH_JOURNALPLAYBACK 1
381 #define WH_KEYBOARD 2
382 #define WH_GETMESSAGE 3
383 #define WH_CALLWNDPROC 4
384 #define WH_CBT 5
385 #define WH_SYSMSGFILTER 6
386 #define WH_MOUSE 7
387 #define WH_HARDWARE 8
388 #define WH_DEBUG 9
389 #define WH_SHELL 10
390 #define WH_FOREGROUNDIDLE 11
391 #define WH_CALLWNDPROCRET 12
392
393 #define WH_KEYBOARD_LL 13
394 #define WH_MOUSE_LL 14
395
396 #define WH_MAX 14
397
398 #define WH_MINHOOK WH_MIN
399 #define WH_MAXHOOK WH_MAX
400
401 #define HC_ACTION 0
402 #define HC_GETNEXT 1
403 #define HC_SKIP 2
404 #define HC_NOREMOVE 3
405 #define HC_NOREM HC_NOREMOVE
406 #define HC_SYSMODALON 4
407 #define HC_SYSMODALOFF 5
408
409 #define HCBT_MOVESIZE 0
410 #define HCBT_MINMAX 1
411 #define HCBT_QS 2
412 #define HCBT_CREATEWND 3
413 #define HCBT_DESTROYWND 4
414 #define HCBT_ACTIVATE 5
415 #define HCBT_CLICKSKIPPED 6
416 #define HCBT_KEYSKIPPED 7
417 #define HCBT_SYSCOMMAND 8
418 #define HCBT_SETFOCUS 9
419
420 typedef struct tagCBT_CREATEWNDA {
421 struct tagCREATESTRUCTA *lpcs;
422 HWND hwndInsertAfter;
423 } CBT_CREATEWNDA,*LPCBT_CREATEWNDA;
424
425 typedef struct tagCBT_CREATEWNDW {
426 struct tagCREATESTRUCTW *lpcs;
427 HWND hwndInsertAfter;
428 } CBT_CREATEWNDW,*LPCBT_CREATEWNDW;
429 #ifdef UNICODE
430 typedef CBT_CREATEWNDW CBT_CREATEWND;
431 typedef LPCBT_CREATEWNDW LPCBT_CREATEWND;
432 #else
433 typedef CBT_CREATEWNDA CBT_CREATEWND;
434 typedef LPCBT_CREATEWNDA LPCBT_CREATEWND;
435 #endif
436
437 typedef struct tagCBTACTIVATESTRUCT
438 {
439 WINBOOL fMouse;
440 HWND hWndActive;
441 } CBTACTIVATESTRUCT,*LPCBTACTIVATESTRUCT;
442
443 typedef struct tagWTSSESSION_NOTIFICATION {
444 DWORD cbSize;
445 DWORD dwSessionId;
446
447 } WTSSESSION_NOTIFICATION,*PWTSSESSION_NOTIFICATION;
448
449 #define WTS_CONSOLE_CONNECT 0x1
450 #define WTS_CONSOLE_DISCONNECT 0x2
451 #define WTS_REMOTE_CONNECT 0x3
452 #define WTS_REMOTE_DISCONNECT 0x4
453 #define WTS_SESSION_LOGON 0x5
454 #define WTS_SESSION_LOGOFF 0x6
455 #define WTS_SESSION_LOCK 0x7
456 #define WTS_SESSION_UNLOCK 0x8
457 #define WTS_SESSION_REMOTE_CONTROL 0x9
458
459 #define MSGF_DIALOGBOX 0
460 #define MSGF_MESSAGEBOX 1
461 #define MSGF_MENU 2
462 #define MSGF_SCROLLBAR 5
463 #define MSGF_NEXTWINDOW 6
464 #define MSGF_MAX 8
465 #define MSGF_USER 4096
466
467 #define HSHELL_WINDOWCREATED 1
468 #define HSHELL_WINDOWDESTROYED 2
469 #define HSHELL_ACTIVATESHELLWINDOW 3
470
471 #define HSHELL_WINDOWACTIVATED 4
472 #define HSHELL_GETMINRECT 5
473 #define HSHELL_REDRAW 6
474 #define HSHELL_TASKMAN 7
475 #define HSHELL_LANGUAGE 8
476 #define HSHELL_SYSMENU 9
477 #define HSHELL_ENDTASK 10
478 #define HSHELL_ACCESSIBILITYSTATE 11
479 #define HSHELL_APPCOMMAND 12
480 #define HSHELL_WINDOWREPLACED 13
481 #define HSHELL_WINDOWREPLACING 14
482 #define HSHELL_HIGHBIT 0x8000
483 #define HSHELL_FLASH (HSHELL_REDRAW|HSHELL_HIGHBIT)
484 #define HSHELL_RUDEAPPACTIVATED (HSHELL_WINDOWACTIVATED|HSHELL_HIGHBIT)
485
486 #define ACCESS_STICKYKEYS 0x0001
487 #define ACCESS_FILTERKEYS 0x0002
488 #define ACCESS_MOUSEKEYS 0x0003
489
490 #define APPCOMMAND_BROWSER_BACKWARD 1
491 #define APPCOMMAND_BROWSER_FORWARD 2
492 #define APPCOMMAND_BROWSER_REFRESH 3
493 #define APPCOMMAND_BROWSER_STOP 4
494 #define APPCOMMAND_BROWSER_SEARCH 5
495 #define APPCOMMAND_BROWSER_FAVORITES 6
496 #define APPCOMMAND_BROWSER_HOME 7
497 #define APPCOMMAND_VOLUME_MUTE 8
498 #define APPCOMMAND_VOLUME_DOWN 9
499 #define APPCOMMAND_VOLUME_UP 10
500 #define APPCOMMAND_MEDIA_NEXTTRACK 11
501 #define APPCOMMAND_MEDIA_PREVIOUSTRACK 12
502 #define APPCOMMAND_MEDIA_STOP 13
503 #define APPCOMMAND_MEDIA_PLAY_PAUSE 14
504 #define APPCOMMAND_LAUNCH_MAIL 15
505 #define APPCOMMAND_LAUNCH_MEDIA_SELECT 16
506 #define APPCOMMAND_LAUNCH_APP1 17
507 #define APPCOMMAND_LAUNCH_APP2 18
508 #define APPCOMMAND_BASS_DOWN 19
509 #define APPCOMMAND_BASS_BOOST 20
510 #define APPCOMMAND_BASS_UP 21
511 #define APPCOMMAND_TREBLE_DOWN 22
512 #define APPCOMMAND_TREBLE_UP 23
513 #define APPCOMMAND_MICROPHONE_VOLUME_MUTE 24
514 #define APPCOMMAND_MICROPHONE_VOLUME_DOWN 25
515 #define APPCOMMAND_MICROPHONE_VOLUME_UP 26
516 #define APPCOMMAND_HELP 27
517 #define APPCOMMAND_FIND 28
518 #define APPCOMMAND_NEW 29
519 #define APPCOMMAND_OPEN 30
520 #define APPCOMMAND_CLOSE 31
521 #define APPCOMMAND_SAVE 32
522 #define APPCOMMAND_PRINT 33
523 #define APPCOMMAND_UNDO 34
524 #define APPCOMMAND_REDO 35
525 #define APPCOMMAND_COPY 36
526 #define APPCOMMAND_CUT 37
527 #define APPCOMMAND_PASTE 38
528 #define APPCOMMAND_REPLY_TO_MAIL 39
529 #define APPCOMMAND_FORWARD_MAIL 40
530 #define APPCOMMAND_SEND_MAIL 41
531 #define APPCOMMAND_SPELL_CHECK 42
532 #define APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE 43
533 #define APPCOMMAND_MIC_ON_OFF_TOGGLE 44
534 #define APPCOMMAND_CORRECTION_LIST 45
535 #define APPCOMMAND_MEDIA_PLAY 46
536 #define APPCOMMAND_MEDIA_PAUSE 47
537 #define APPCOMMAND_MEDIA_RECORD 48
538 #define APPCOMMAND_MEDIA_FAST_FORWARD 49
539 #define APPCOMMAND_MEDIA_REWIND 50
540 #define APPCOMMAND_MEDIA_CHANNEL_UP 51
541 #define APPCOMMAND_MEDIA_CHANNEL_DOWN 52
542
543 #define FAPPCOMMAND_MOUSE 0x8000
544 #define FAPPCOMMAND_KEY 0
545 #define FAPPCOMMAND_OEM 0x1000
546 #define FAPPCOMMAND_MASK 0xF000
547
548 #define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK))
549 #define GET_DEVICE_LPARAM(lParam) ((WORD)(HIWORD(lParam) & FAPPCOMMAND_MASK))
550 #define GET_MOUSEORKEY_LPARAM GET_DEVICE_LPARAM
551 #define GET_FLAGS_LPARAM(lParam) (LOWORD(lParam))
552 #define GET_KEYSTATE_LPARAM(lParam) GET_FLAGS_LPARAM(lParam)
553
554 typedef struct {
555 HWND hwnd;
556 RECT rc;
557 } SHELLHOOKINFO,*LPSHELLHOOKINFO;
558
559 typedef struct tagEVENTMSG {
560 UINT message;
561 UINT paramL;
562 UINT paramH;
563 DWORD time;
564 HWND hwnd;
565 } EVENTMSG,*PEVENTMSGMSG,*NPEVENTMSGMSG,*LPEVENTMSGMSG;
566
567 typedef struct tagEVENTMSG *PEVENTMSG,*NPEVENTMSG,*LPEVENTMSG;
568
569 typedef struct tagCWPSTRUCT {
570 LPARAM lParam;
571 WPARAM wParam;
572 UINT message;
573 HWND hwnd;
574 } CWPSTRUCT,*PCWPSTRUCT,*NPCWPSTRUCT,*LPCWPSTRUCT;
575
576 typedef struct tagCWPRETSTRUCT {
577 LRESULT lResult;
578 LPARAM lParam;
579 WPARAM wParam;
580 UINT message;
581 HWND hwnd;
582 } CWPRETSTRUCT,*PCWPRETSTRUCT,*NPCWPRETSTRUCT,*LPCWPRETSTRUCT;
583
584 #define LLKHF_EXTENDED (KF_EXTENDED >> 8)
585 #define LLKHF_INJECTED 0x00000010
586 #define LLKHF_ALTDOWN (KF_ALTDOWN >> 8)
587 #define LLKHF_UP (KF_UP >> 8)
588
589 #define LLMHF_INJECTED 0x00000001
590
591 typedef struct tagKBDLLHOOKSTRUCT {
592 DWORD vkCode;
593 DWORD scanCode;
594 DWORD flags;
595 DWORD time;
596 ULONG_PTR dwExtraInfo;
597 } KBDLLHOOKSTRUCT,*LPKBDLLHOOKSTRUCT,*PKBDLLHOOKSTRUCT;
598
599 typedef struct tagMSLLHOOKSTRUCT {
600 POINT pt;
601 DWORD mouseData;
602 DWORD flags;
603 DWORD time;
604 ULONG_PTR dwExtraInfo;
605 } MSLLHOOKSTRUCT,*LPMSLLHOOKSTRUCT,*PMSLLHOOKSTRUCT;
606
607 typedef struct tagDEBUGHOOKINFO {
608 DWORD idThread;
609 DWORD idThreadInstaller;
610 LPARAM lParam;
611 WPARAM wParam;
612 int code;
613 } DEBUGHOOKINFO,*PDEBUGHOOKINFO,*NPDEBUGHOOKINFO,*LPDEBUGHOOKINFO;
614
615 typedef struct tagMOUSEHOOKSTRUCT {
616 POINT pt;
617 HWND hwnd;
618 UINT wHitTestCode;
619 ULONG_PTR dwExtraInfo;
620 } MOUSEHOOKSTRUCT,*LPMOUSEHOOKSTRUCT,*PMOUSEHOOKSTRUCT;
621
622 #ifdef __cplusplus
623 typedef struct tagMOUSEHOOKSTRUCTEX : public tagMOUSEHOOKSTRUCT {
624 DWORD mouseData;
625 } MOUSEHOOKSTRUCTEX,*LPMOUSEHOOKSTRUCTEX,*PMOUSEHOOKSTRUCTEX;
626 #else
627 typedef struct tagMOUSEHOOKSTRUCTEX {
628 MOUSEHOOKSTRUCT _unnamed;
629 DWORD mouseData;
630 } MOUSEHOOKSTRUCTEX,*LPMOUSEHOOKSTRUCTEX,*PMOUSEHOOKSTRUCTEX;
631 #endif
632
633 typedef struct tagHARDWAREHOOKSTRUCT {
634 HWND hwnd;
635 UINT message;
636 WPARAM wParam;
637 LPARAM lParam;
638 } HARDWAREHOOKSTRUCT,*LPHARDWAREHOOKSTRUCT,*PHARDWAREHOOKSTRUCT;
639 #endif
640
641 #define HKL_PREV 0
642 #define HKL_NEXT 1
643
644 #define KLF_ACTIVATE 0x00000001
645 #define KLF_SUBSTITUTE_OK 0x00000002
646 #define KLF_REORDER 0x00000008
647 #define KLF_REPLACELANG 0x00000010
648 #define KLF_NOTELLSHELL 0x00000080
649 #define KLF_SETFORPROCESS 0x00000100
650 #define KLF_SHIFTLOCK 0x00010000
651 #define KLF_RESET 0x40000000
652
653 #define INPUTLANGCHANGE_SYSCHARSET 0x0001
654 #define INPUTLANGCHANGE_FORWARD 0x0002
655 #define INPUTLANGCHANGE_BACKWARD 0x0004
656
657 #define KL_NAMELENGTH 9
658
659 #ifdef UNICODE
660 #define LoadKeyboardLayout LoadKeyboardLayoutW
661 #define GetKeyboardLayoutName GetKeyboardLayoutNameW
662 #else
663 #define LoadKeyboardLayout LoadKeyboardLayoutA
664 #define GetKeyboardLayoutName GetKeyboardLayoutNameA
665 #endif
666
667 WINUSERAPI HKL WINAPI LoadKeyboardLayoutA(LPCSTR pwszKLID,UINT Flags);
668 WINUSERAPI HKL WINAPI LoadKeyboardLayoutW(LPCWSTR pwszKLID,UINT Flags);
669 WINUSERAPI HKL WINAPI ActivateKeyboardLayout(HKL hkl,UINT Flags);
670 WINUSERAPI int WINAPI ToUnicodeEx(UINT wVirtKey,UINT wScanCode,CONST BYTE *lpKeyState,LPWSTR pwszBuff,int cchBuff,UINT wFlags,HKL dwhkl);
671 WINUSERAPI WINBOOL WINAPI UnloadKeyboardLayout(HKL hkl);
672 WINUSERAPI WINBOOL WINAPI GetKeyboardLayoutNameA(LPSTR pwszKLID);
673 WINUSERAPI WINBOOL WINAPI GetKeyboardLayoutNameW(LPWSTR pwszKLID);
674 WINUSERAPI int WINAPI GetKeyboardLayoutList(int nBuff,HKL *lpList);
675 WINUSERAPI HKL WINAPI GetKeyboardLayout(DWORD idThread);
676
677 typedef struct tagMOUSEMOVEPOINT {
678 int x;
679 int y;
680 DWORD time;
681 ULONG_PTR dwExtraInfo;
682 } MOUSEMOVEPOINT,*PMOUSEMOVEPOINT,*LPMOUSEMOVEPOINT;
683
684 #define GMMP_USE_DISPLAY_POINTS 1
685 #define GMMP_USE_HIGH_RESOLUTION_POINTS 2
686
687 WINUSERAPI int WINAPI GetMouseMovePointsEx(UINT cbSize,LPMOUSEMOVEPOINT lppt,LPMOUSEMOVEPOINT lpptBuf,int nBufPoints,DWORD resolution);
688
689 #ifndef NODESKTOP
690
691 #define DESKTOP_READOBJECTS 0x0001L
692 #define DESKTOP_CREATEWINDOW 0x0002L
693 #define DESKTOP_CREATEMENU 0x0004L
694 #define DESKTOP_HOOKCONTROL 0x0008L
695 #define DESKTOP_JOURNALRECORD 0x0010L
696 #define DESKTOP_JOURNALPLAYBACK 0x0020L
697 #define DESKTOP_ENUMERATE 0x0040L
698 #define DESKTOP_WRITEOBJECTS 0x0080L
699 #define DESKTOP_SWITCHDESKTOP 0x0100L
700
701 #define DF_ALLOWOTHERACCOUNTHOOK 0x0001L
702
703 #ifdef _WINGDI_
704 #ifndef NOGDI
705 #ifdef UNICODE
706 #define CreateDesktop CreateDesktopW
707 #else
708 #define CreateDesktop CreateDesktopA
709 #endif
710
711 WINUSERAPI HDESK WINAPI CreateDesktopA(LPCSTR lpszDesktop,LPCSTR lpszDevice,LPDEVMODEA pDevmode,DWORD dwFlags,ACCESS_MASK dwDesiredAccess,LPSECURITY_ATTRIBUTES lpsa);
712 WINUSERAPI HDESK WINAPI CreateDesktopW(LPCWSTR lpszDesktop,LPCWSTR lpszDevice,LPDEVMODEW pDevmode,DWORD dwFlags,ACCESS_MASK dwDesiredAccess,LPSECURITY_ATTRIBUTES lpsa);
713 #endif
714 #endif
715
716 #ifdef UNICODE
717 #define OpenDesktop OpenDesktopW
718 #define EnumDesktops EnumDesktopsW
719 #else
720 #define OpenDesktop OpenDesktopA
721 #define EnumDesktops EnumDesktopsA
722 #endif
723
724 WINUSERAPI HDESK WINAPI OpenDesktopA(LPCSTR lpszDesktop,DWORD dwFlags,WINBOOL fInherit,ACCESS_MASK dwDesiredAccess);
725 WINUSERAPI HDESK WINAPI OpenDesktopW(LPCWSTR lpszDesktop,DWORD dwFlags,WINBOOL fInherit,ACCESS_MASK dwDesiredAccess);
726 WINUSERAPI HDESK WINAPI OpenInputDesktop(DWORD dwFlags,WINBOOL fInherit,ACCESS_MASK dwDesiredAccess);
727 WINUSERAPI WINBOOL WINAPI EnumDesktopsA(HWINSTA hwinsta,DESKTOPENUMPROCA lpEnumFunc,LPARAM lParam);
728 WINUSERAPI WINBOOL WINAPI EnumDesktopsW(HWINSTA hwinsta,DESKTOPENUMPROCW lpEnumFunc,LPARAM lParam);
729 WINUSERAPI WINBOOL WINAPI EnumDesktopWindows(HDESK hDesktop,WNDENUMPROC lpfn,LPARAM lParam);
730 WINUSERAPI WINBOOL WINAPI SwitchDesktop(HDESK hDesktop);
731 WINUSERAPI WINBOOL WINAPI SetThreadDesktop(HDESK hDesktop);
732 WINUSERAPI WINBOOL WINAPI CloseDesktop(HDESK hDesktop);
733 WINUSERAPI HDESK WINAPI GetThreadDesktop(DWORD dwThreadId);
734 #endif
735
736 #ifndef NOWINDOWSTATION
737 #define WINSTA_ENUMDESKTOPS 0x0001L
738 #define WINSTA_READATTRIBUTES 0x0002L
739 #define WINSTA_ACCESSCLIPBOARD 0x0004L
740 #define WINSTA_CREATEDESKTOP 0x0008L
741 #define WINSTA_WRITEATTRIBUTES 0x0010L
742 #define WINSTA_ACCESSGLOBALATOMS 0x0020L
743 #define WINSTA_EXITWINDOWS 0x0040L
744 #define WINSTA_ENUMERATE 0x0100L
745 #define WINSTA_READSCREEN 0x0200L
746 #define WINSTA_ALL_ACCESS (WINSTA_ENUMDESKTOPS | WINSTA_READATTRIBUTES | WINSTA_ACCESSCLIPBOARD | WINSTA_CREATEDESKTOP | WINSTA_WRITEATTRIBUTES | WINSTA_ACCESSGLOBALATOMS | WINSTA_EXITWINDOWS | WINSTA_ENUMERATE | WINSTA_READSCREEN)
747
748 #define CWF_CREATE_ONLY 0x0001L
749
750 #define WSF_VISIBLE 0x0001L
751
752 #ifdef UNICODE
753 #define CreateWindowStation CreateWindowStationW
754 #define OpenWindowStation OpenWindowStationW
755 #define EnumWindowStations EnumWindowStationsW
756 #else
757 #define CreateWindowStation CreateWindowStationA
758 #define OpenWindowStation OpenWindowStationA
759 #define EnumWindowStations EnumWindowStationsA
760 #endif
761
762 WINUSERAPI HWINSTA WINAPI CreateWindowStationA(LPCSTR lpwinsta,DWORD dwFlags,ACCESS_MASK dwDesiredAccess,LPSECURITY_ATTRIBUTES lpsa);
763 WINUSERAPI HWINSTA WINAPI CreateWindowStationW(LPCWSTR lpwinsta,DWORD dwFlags,ACCESS_MASK dwDesiredAccess,LPSECURITY_ATTRIBUTES lpsa);
764 WINUSERAPI HWINSTA WINAPI OpenWindowStationA(LPCSTR lpszWinSta,WINBOOL fInherit,ACCESS_MASK dwDesiredAccess);
765 WINUSERAPI HWINSTA WINAPI OpenWindowStationW(LPCWSTR lpszWinSta,WINBOOL fInherit,ACCESS_MASK dwDesiredAccess);
766 WINUSERAPI WINBOOL WINAPI EnumWindowStationsA(WINSTAENUMPROCA lpEnumFunc,LPARAM lParam);
767 WINUSERAPI WINBOOL WINAPI EnumWindowStationsW(WINSTAENUMPROCW lpEnumFunc,LPARAM lParam);
768 WINUSERAPI WINBOOL WINAPI CloseWindowStation(HWINSTA hWinSta);
769 WINUSERAPI WINBOOL WINAPI SetProcessWindowStation(HWINSTA hWinSta);
770 WINUSERAPI HWINSTA WINAPI GetProcessWindowStation(VOID);
771 #endif
772
773 #ifndef NOSECURITY
774 WINUSERAPI WINBOOL WINAPI SetUserObjectSecurity(HANDLE hObj,PSECURITY_INFORMATION pSIRequested,PSECURITY_DESCRIPTOR pSID);
775 WINUSERAPI WINBOOL WINAPI GetUserObjectSecurity(HANDLE hObj,PSECURITY_INFORMATION pSIRequested,PSECURITY_DESCRIPTOR pSID,DWORD nLength,LPDWORD lpnLengthNeeded);
776
777 #define UOI_FLAGS 1
778 #define UOI_NAME 2
779 #define UOI_TYPE 3
780 #define UOI_USER_SID 4
781
782 typedef struct tagUSEROBJECTFLAGS {
783 WINBOOL fInherit;
784 WINBOOL fReserved;
785 DWORD dwFlags;
786 } USEROBJECTFLAGS,*PUSEROBJECTFLAGS;
787
788 #ifdef UNICODE
789 #define GetUserObjectInformation GetUserObjectInformationW
790 #define SetUserObjectInformation SetUserObjectInformationW
791 #else
792 #define GetUserObjectInformation GetUserObjectInformationA
793 #define SetUserObjectInformation SetUserObjectInformationA
794 #endif
795
796 WINUSERAPI WINBOOL WINAPI GetUserObjectInformationA(HANDLE hObj,int nIndex,PVOID pvInfo,DWORD nLength,LPDWORD lpnLengthNeeded);
797 WINUSERAPI WINBOOL WINAPI GetUserObjectInformationW(HANDLE hObj,int nIndex,PVOID pvInfo,DWORD nLength,LPDWORD lpnLengthNeeded);
798 WINUSERAPI WINBOOL WINAPI SetUserObjectInformationA(HANDLE hObj,int nIndex,PVOID pvInfo,DWORD nLength);
799 WINUSERAPI WINBOOL WINAPI SetUserObjectInformationW(HANDLE hObj,int nIndex,PVOID pvInfo,DWORD nLength);
800 #endif
801
802 typedef struct tagWNDCLASSEXA {
803 UINT cbSize;
804 UINT style;
805 WNDPROC lpfnWndProc;
806 int cbClsExtra;
807 int cbWndExtra;
808 HINSTANCE hInstance;
809 HICON hIcon;
810 HCURSOR hCursor;
811 HBRUSH hbrBackground;
812 LPCSTR lpszMenuName;
813 LPCSTR lpszClassName;
814 HICON hIconSm;
815 } WNDCLASSEXA,*PWNDCLASSEXA,*NPWNDCLASSEXA,*LPWNDCLASSEXA;
816
817 typedef struct tagWNDCLASSEXW {
818 UINT cbSize;
819 UINT style;
820 WNDPROC lpfnWndProc;
821 int cbClsExtra;
822 int cbWndExtra;
823 HINSTANCE hInstance;
824 HICON hIcon;
825 HCURSOR hCursor;
826 HBRUSH hbrBackground;
827 LPCWSTR lpszMenuName;
828 LPCWSTR lpszClassName;
829
830 HICON hIconSm;
831 } WNDCLASSEXW,*PWNDCLASSEXW,*NPWNDCLASSEXW,*LPWNDCLASSEXW;
832
833 #ifdef UNICODE
834 typedef WNDCLASSEXW WNDCLASSEX;
835 typedef PWNDCLASSEXW PWNDCLASSEX;
836 typedef NPWNDCLASSEXW NPWNDCLASSEX;
837 typedef LPWNDCLASSEXW LPWNDCLASSEX;
838 #else
839 typedef WNDCLASSEXA WNDCLASSEX;
840 typedef PWNDCLASSEXA PWNDCLASSEX;
841 typedef NPWNDCLASSEXA NPWNDCLASSEX;
842 typedef LPWNDCLASSEXA LPWNDCLASSEX;
843 #endif
844
845 typedef struct tagWNDCLASSA {
846 UINT style;
847 WNDPROC lpfnWndProc;
848 int cbClsExtra;
849 int cbWndExtra;
850 HINSTANCE hInstance;
851 HICON hIcon;
852 HCURSOR hCursor;
853 HBRUSH hbrBackground;
854 LPCSTR lpszMenuName;
855 LPCSTR lpszClassName;
856 } WNDCLASSA,*PWNDCLASSA,*NPWNDCLASSA,*LPWNDCLASSA;
857
858 typedef struct tagWNDCLASSW {
859 UINT style;
860 WNDPROC lpfnWndProc;
861 int cbClsExtra;
862 int cbWndExtra;
863 HINSTANCE hInstance;
864 HICON hIcon;
865 HCURSOR hCursor;
866 HBRUSH hbrBackground;
867 LPCWSTR lpszMenuName;
868 LPCWSTR lpszClassName;
869 } WNDCLASSW,*PWNDCLASSW,*NPWNDCLASSW,*LPWNDCLASSW;
870
871 #ifdef UNICODE
872 typedef WNDCLASSW WNDCLASS;
873 typedef PWNDCLASSW PWNDCLASS;
874 typedef NPWNDCLASSW NPWNDCLASS;
875 typedef LPWNDCLASSW LPWNDCLASS;
876 #else
877 typedef WNDCLASSA WNDCLASS;
878 typedef PWNDCLASSA PWNDCLASS;
879 typedef NPWNDCLASSA NPWNDCLASS;
880 typedef LPWNDCLASSA LPWNDCLASS;
881 #endif
882
883 WINUSERAPI WINBOOL WINAPI IsHungAppWindow(HWND hwnd);
884 WINUSERAPI VOID WINAPI DisableProcessWindowsGhosting(VOID);
885
886 #ifndef NOMSG
887 typedef struct tagMSG {
888 HWND hwnd;
889 UINT message;
890 WPARAM wParam;
891 LPARAM lParam;
892 DWORD time;
893 POINT pt;
894 } MSG,*PMSG,*NPMSG,*LPMSG;
895
896 #define POINTSTOPOINT(pt,pts) { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); }
897
898 #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x),(short)((pt).y)))
899 #define MAKEWPARAM(l,h) ((WPARAM)(DWORD)MAKELONG(l,h))
900 #define MAKELPARAM(l,h) ((LPARAM)(DWORD)MAKELONG(l,h))
901 #define MAKELRESULT(l,h) ((LRESULT)(DWORD)MAKELONG(l,h))
902 #endif
903
904 #ifndef NOWINOFFSETS
905 #define GWL_WNDPROC (-4)
906 #define GWL_HINSTANCE (-6)
907 #define GWL_HWNDPARENT (-8)
908 #define GWL_STYLE (-16)
909 #define GWL_EXSTYLE (-20)
910 #define GWL_USERDATA (-21)
911 #define GWL_ID (-12)
912
913 #ifdef _WIN64
914 #undef GWL_WNDPROC
915 #undef GWL_HINSTANCE
916 #undef GWL_HWNDPARENT
917 #undef GWL_USERDATA
918 #endif
919
920 #define GWLP_WNDPROC (-4)
921 #define GWLP_HINSTANCE (-6)
922 #define GWLP_HWNDPARENT (-8)
923 #define GWLP_USERDATA (-21)
924 #define GWLP_ID (-12)
925
926 #define GCL_MENUNAME (-8)
927 #define GCL_HBRBACKGROUND (-10)
928 #define GCL_HCURSOR (-12)
929 #define GCL_HICON (-14)
930 #define GCL_HMODULE (-16)
931 #define GCL_CBWNDEXTRA (-18)
932 #define GCL_CBCLSEXTRA (-20)
933 #define GCL_WNDPROC (-24)
934 #define GCL_STYLE (-26)
935 #define GCW_ATOM (-32)
936 #define GCL_HICONSM (-34)
937
938 #ifdef _WIN64
939
940 #undef GCL_MENUNAME
941 #undef GCL_HBRBACKGROUND
942 #undef GCL_HCURSOR
943 #undef GCL_HICON
944 #undef GCL_HMODULE
945 #undef GCL_WNDPROC
946 #undef GCL_HICONSM
947 #endif
948
949 #define GCLP_MENUNAME (-8)
950 #define GCLP_HBRBACKGROUND (-10)
951 #define GCLP_HCURSOR (-12)
952 #define GCLP_HICON (-14)
953 #define GCLP_HMODULE (-16)
954 #define GCLP_WNDPROC (-24)
955 #define GCLP_HICONSM (-34)
956 #endif
957
958 #ifndef NOWINMESSAGES
959
960 #define WM_NULL 0x0000
961 #define WM_CREATE 0x0001
962 #define WM_DESTROY 0x0002
963 #define WM_MOVE 0x0003
964 #define WM_SIZE 0x0005
965
966 #define WM_ACTIVATE 0x0006
967
968 #define WA_INACTIVE 0
969 #define WA_ACTIVE 1
970 #define WA_CLICKACTIVE 2
971
972 #define WM_SETFOCUS 0x0007
973 #define WM_KILLFOCUS 0x0008
974 #define WM_ENABLE 0x000A
975 #define WM_SETREDRAW 0x000B
976 #define WM_SETTEXT 0x000C
977 #define WM_GETTEXT 0x000D
978 #define WM_GETTEXTLENGTH 0x000E
979 #define WM_PAINT 0x000F
980 #define WM_CLOSE 0x0010
981 #ifndef _WIN32_WCE
982 #define WM_QUERYENDSESSION 0x0011
983 #define WM_QUERYOPEN 0x0013
984 #define WM_ENDSESSION 0x0016
985 #endif
986 #define WM_QUIT 0x0012
987 #define WM_ERASEBKGND 0x0014
988 #define WM_SYSCOLORCHANGE 0x0015
989 #define WM_SHOWWINDOW 0x0018
990 #define WM_WININICHANGE 0x001A
991 #define WM_SETTINGCHANGE WM_WININICHANGE
992 #define WM_DEVMODECHANGE 0x001B
993 #define WM_ACTIVATEAPP 0x001C
994 #define WM_FONTCHANGE 0x001D
995 #define WM_TIMECHANGE 0x001E
996 #define WM_CANCELMODE 0x001F
997 #define WM_SETCURSOR 0x0020
998 #define WM_MOUSEACTIVATE 0x0021
999 #define WM_CHILDACTIVATE 0x0022
1000 #define WM_QUEUESYNC 0x0023
1001
1002 #define WM_GETMINMAXINFO 0x0024
1003
1004 typedef struct tagMINMAXINFO {
1005 POINT ptReserved;
1006 POINT ptMaxSize;
1007 POINT ptMaxPosition;
1008 POINT ptMinTrackSize;
1009 POINT ptMaxTrackSize;
1010 } MINMAXINFO,*PMINMAXINFO,*LPMINMAXINFO;
1011
1012 #define WM_PAINTICON 0x0026
1013 #define WM_ICONERASEBKGND 0x0027
1014 #define WM_NEXTDLGCTL 0x0028
1015 #define WM_SPOOLERSTATUS 0x002A
1016 #define WM_DRAWITEM 0x002B
1017 #define WM_MEASUREITEM 0x002C
1018 #define WM_DELETEITEM 0x002D
1019 #define WM_VKEYTOITEM 0x002E
1020 #define WM_CHARTOITEM 0x002F
1021 #define WM_SETFONT 0x0030
1022 #define WM_GETFONT 0x0031
1023 #define WM_SETHOTKEY 0x0032
1024 #define WM_GETHOTKEY 0x0033
1025 #define WM_QUERYDRAGICON 0x0037
1026 #define WM_COMPAREITEM 0x0039
1027 #ifndef _WIN32_WCE
1028 #define WM_GETOBJECT 0x003D
1029 #endif
1030 #define WM_COMPACTING 0x0041
1031 #define WM_COMMNOTIFY 0x0044
1032 #define WM_WINDOWPOSCHANGING 0x0046
1033 #define WM_WINDOWPOSCHANGED 0x0047
1034
1035 #define WM_POWER 0x0048
1036
1037 #define PWR_OK 1
1038 #define PWR_FAIL (-1)
1039 #define PWR_SUSPENDREQUEST 1
1040 #define PWR_SUSPENDRESUME 2
1041 #define PWR_CRITICALRESUME 3
1042
1043 #define WM_COPYDATA 0x004A
1044 #define WM_CANCELJOURNAL 0x004B
1045
1046 typedef struct tagCOPYDATASTRUCT {
1047 ULONG_PTR dwData;
1048 DWORD cbData;
1049 PVOID lpData;
1050 } COPYDATASTRUCT,*PCOPYDATASTRUCT;
1051
1052 typedef struct tagMDINEXTMENU {
1053 HMENU hmenuIn;
1054 HMENU hmenuNext;
1055 HWND hwndNext;
1056 } MDINEXTMENU,*PMDINEXTMENU,*LPMDINEXTMENU;
1057
1058 #define WM_NOTIFY 0x004E
1059 #define WM_INPUTLANGCHANGEREQUEST 0x0050
1060 #define WM_INPUTLANGCHANGE 0x0051
1061 #define WM_TCARD 0x0052
1062 #define WM_HELP 0x0053
1063 #define WM_USERCHANGED 0x0054
1064 #define WM_NOTIFYFORMAT 0x0055
1065
1066 #define NFR_ANSI 1
1067 #define NFR_UNICODE 2
1068 #define NF_QUERY 3
1069 #define NF_REQUERY 4
1070
1071 #define WM_CONTEXTMENU 0x007B
1072 #define WM_STYLECHANGING 0x007C
1073 #define WM_STYLECHANGED 0x007D
1074 #define WM_DISPLAYCHANGE 0x007E
1075 #define WM_GETICON 0x007F
1076 #define WM_SETICON 0x0080
1077
1078 #define WM_NCCREATE 0x0081
1079 #define WM_NCDESTROY 0x0082
1080 #define WM_NCCALCSIZE 0x0083
1081 #define WM_NCHITTEST 0x0084
1082 #define WM_NCPAINT 0x0085
1083 #define WM_NCACTIVATE 0x0086
1084 #define WM_GETDLGCODE 0x0087
1085 #ifndef _WIN32_WCE
1086 #define WM_SYNCPAINT 0x0088
1087 #endif
1088 #define WM_NCMOUSEMOVE 0x00A0
1089 #define WM_NCLBUTTONDOWN 0x00A1
1090 #define WM_NCLBUTTONUP 0x00A2
1091 #define WM_NCLBUTTONDBLCLK 0x00A3
1092 #define WM_NCRBUTTONDOWN 0x00A4
1093 #define WM_NCRBUTTONUP 0x00A5
1094 #define WM_NCRBUTTONDBLCLK 0x00A6
1095 #define WM_NCMBUTTONDOWN 0x00A7
1096 #define WM_NCMBUTTONUP 0x00A8
1097 #define WM_NCMBUTTONDBLCLK 0x00A9
1098
1099 #define WM_NCXBUTTONDOWN 0x00AB
1100 #define WM_NCXBUTTONUP 0x00AC
1101 #define WM_NCXBUTTONDBLCLK 0x00AD
1102 #define WM_INPUT 0x00FF
1103 #define WM_KEYFIRST 0x0100
1104 #define WM_KEYDOWN 0x0100
1105 #define WM_KEYUP 0x0101
1106 #define WM_CHAR 0x0102
1107 #define WM_DEADCHAR 0x0103
1108 #define WM_SYSKEYDOWN 0x0104
1109 #define WM_SYSKEYUP 0x0105
1110 #define WM_SYSCHAR 0x0106
1111 #define WM_SYSDEADCHAR 0x0107
1112 #define WM_UNICHAR 0x0109
1113 #define WM_KEYLAST 0x0109
1114 #define UNICODE_NOCHAR 0xFFFF
1115 #define WM_IME_STARTCOMPOSITION 0x010D
1116 #define WM_IME_ENDCOMPOSITION 0x010E
1117 #define WM_IME_COMPOSITION 0x010F
1118 #define WM_IME_KEYLAST 0x010F
1119 #define WM_INITDIALOG 0x0110
1120 #define WM_COMMAND 0x0111
1121 #define WM_SYSCOMMAND 0x0112
1122 #define WM_TIMER 0x0113
1123 #define WM_HSCROLL 0x0114
1124 #define WM_VSCROLL 0x0115
1125 #define WM_INITMENU 0x0116
1126 #define WM_INITMENUPOPUP 0x0117
1127 #define WM_MENUSELECT 0x011F
1128 #define WM_MENUCHAR 0x0120
1129 #define WM_ENTERIDLE 0x0121
1130 #ifndef _WIN32_WCE
1131 #define WM_MENURBUTTONUP 0x0122
1132 #define WM_MENUDRAG 0x0123
1133 #define WM_MENUGETOBJECT 0x0124
1134 #define WM_UNINITMENUPOPUP 0x0125
1135 #define WM_MENUCOMMAND 0x0126
1136
1137 #ifndef _WIN32_WCE
1138 #define WM_CHANGEUISTATE 0x0127
1139 #define WM_UPDATEUISTATE 0x0128
1140 #define WM_QUERYUISTATE 0x0129
1141
1142 #define UIS_SET 1
1143 #define UIS_CLEAR 2
1144 #define UIS_INITIALIZE 3
1145
1146 #define UISF_HIDEFOCUS 0x1
1147 #define UISF_HIDEACCEL 0x2
1148 #define UISF_ACTIVE 0x4
1149 #endif
1150 #endif
1151
1152 #define WM_CTLCOLORMSGBOX 0x0132
1153 #define WM_CTLCOLOREDIT 0x0133
1154 #define WM_CTLCOLORLISTBOX 0x0134
1155 #define WM_CTLCOLORBTN 0x0135
1156 #define WM_CTLCOLORDLG 0x0136
1157 #define WM_CTLCOLORSCROLLBAR 0x0137
1158 #define WM_CTLCOLORSTATIC 0x0138
1159 #define MN_GETHMENU 0x01E1
1160
1161 #define WM_MOUSEFIRST 0x0200
1162 #define WM_MOUSEMOVE 0x0200
1163 #define WM_LBUTTONDOWN 0x0201
1164 #define WM_LBUTTONUP 0x0202
1165 #define WM_LBUTTONDBLCLK 0x0203
1166 #define WM_RBUTTONDOWN 0x0204
1167 #define WM_RBUTTONUP 0x0205
1168 #define WM_RBUTTONDBLCLK 0x0206
1169 #define WM_MBUTTONDOWN 0x0207
1170 #define WM_MBUTTONUP 0x0208
1171 #define WM_MBUTTONDBLCLK 0x0209
1172 #define WM_MOUSEWHEEL 0x020A
1173 #define WM_XBUTTONDOWN 0x020B
1174 #define WM_XBUTTONUP 0x020C
1175 #define WM_XBUTTONDBLCLK 0x020D
1176 #define WM_MOUSELAST 0x020D
1177
1178 #define WHEEL_DELTA 120
1179 #define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam))
1180
1181 #define WHEEL_PAGESCROLL (UINT_MAX)
1182
1183 #define GET_KEYSTATE_WPARAM(wParam) (LOWORD(wParam))
1184 #define GET_NCHITTEST_WPARAM(wParam) ((short)LOWORD(wParam))
1185 #define GET_XBUTTON_WPARAM(wParam) (HIWORD(wParam))
1186
1187 #define XBUTTON1 0x0001
1188 #define XBUTTON2 0x0002
1189
1190 #define WM_PARENTNOTIFY 0x0210
1191 #define WM_ENTERMENULOOP 0x0211
1192 #define WM_EXITMENULOOP 0x0212
1193
1194 #define WM_NEXTMENU 0x0213
1195 #define WM_SIZING 0x0214
1196 #define WM_CAPTURECHANGED 0x0215
1197 #define WM_MOVING 0x0216
1198
1199 #define WM_POWERBROADCAST 0x0218
1200
1201 #ifndef _WIN32_WCE
1202 #define PBT_APMQUERYSUSPEND 0x0000
1203 #define PBT_APMQUERYSTANDBY 0x0001
1204
1205 #define PBT_APMQUERYSUSPENDFAILED 0x0002
1206 #define PBT_APMQUERYSTANDBYFAILED 0x0003
1207
1208 #define PBT_APMSUSPEND 0x0004
1209 #define PBT_APMSTANDBY 0x0005
1210
1211 #define PBT_APMRESUMECRITICAL 0x0006
1212 #define PBT_APMRESUMESUSPEND 0x0007
1213 #define PBT_APMRESUMESTANDBY 0x0008
1214
1215 #define PBTF_APMRESUMEFROMFAILURE 0x00000001
1216
1217 #define PBT_APMBATTERYLOW 0x0009
1218 #define PBT_APMPOWERSTATUSCHANGE 0x000A
1219
1220 #define PBT_APMOEMEVENT 0x000B
1221 #define PBT_APMRESUMEAUTOMATIC 0x0012
1222 #endif
1223
1224 #define WM_DEVICECHANGE 0x0219
1225
1226 #define WM_MDICREATE 0x0220
1227 #define WM_MDIDESTROY 0x0221
1228 #define WM_MDIACTIVATE 0x0222
1229 #define WM_MDIRESTORE 0x0223
1230 #define WM_MDINEXT 0x0224
1231 #define WM_MDIMAXIMIZE 0x0225
1232 #define WM_MDITILE 0x0226
1233 #define WM_MDICASCADE 0x0227
1234 #define WM_MDIICONARRANGE 0x0228
1235 #define WM_MDIGETACTIVE 0x0229
1236
1237 #define WM_MDISETMENU 0x0230
1238 #define WM_ENTERSIZEMOVE 0x0231
1239 #define WM_EXITSIZEMOVE 0x0232
1240 #define WM_DROPFILES 0x0233
1241 #define WM_MDIREFRESHMENU 0x0234
1242
1243 #define WM_IME_SETCONTEXT 0x0281
1244 #define WM_IME_NOTIFY 0x0282
1245 #define WM_IME_CONTROL 0x0283
1246 #define WM_IME_COMPOSITIONFULL 0x0284
1247 #define WM_IME_SELECT 0x0285
1248 #define WM_IME_CHAR 0x0286
1249 #define WM_IME_REQUEST 0x0288
1250 #define WM_IME_KEYDOWN 0x0290
1251 #define WM_IME_KEYUP 0x0291
1252
1253 #define WM_MOUSEHOVER 0x02A1
1254 #define WM_MOUSELEAVE 0x02A3
1255 #define WM_NCMOUSEHOVER 0x02A0
1256 #define WM_NCMOUSELEAVE 0x02A2
1257 #define WM_WTSSESSION_CHANGE 0x02B1
1258 #define WM_TABLET_FIRST 0x02c0
1259 #define WM_TABLET_LAST 0x02df
1260 #define WM_CUT 0x0300
1261 #define WM_COPY 0x0301
1262 #define WM_PASTE 0x0302
1263 #define WM_CLEAR 0x0303
1264 #define WM_UNDO 0x0304
1265 #define WM_RENDERFORMAT 0x0305
1266 #define WM_RENDERALLFORMATS 0x0306
1267 #define WM_DESTROYCLIPBOARD 0x0307
1268 #define WM_DRAWCLIPBOARD 0x0308
1269 #define WM_PAINTCLIPBOARD 0x0309
1270 #define WM_VSCROLLCLIPBOARD 0x030A
1271 #define WM_SIZECLIPBOARD 0x030B
1272 #define WM_ASKCBFORMATNAME 0x030C
1273 #define WM_CHANGECBCHAIN 0x030D
1274 #define WM_HSCROLLCLIPBOARD 0x030E
1275 #define WM_QUERYNEWPALETTE 0x030F
1276 #define WM_PALETTEISCHANGING 0x0310
1277 #define WM_PALETTECHANGED 0x0311
1278 #define WM_HOTKEY 0x0312
1279 #define WM_PRINT 0x0317
1280 #define WM_PRINTCLIENT 0x0318
1281 #define WM_APPCOMMAND 0x0319
1282 #define WM_THEMECHANGED 0x031A
1283 #define WM_HANDHELDFIRST 0x0358
1284 #define WM_HANDHELDLAST 0x035F
1285 #define WM_AFXFIRST 0x0360
1286 #define WM_AFXLAST 0x037F
1287 #define WM_PENWINFIRST 0x0380
1288 #define WM_PENWINLAST 0x038F
1289 #define WM_APP 0x8000
1290 #define WM_USER 0x0400
1291
1292 #define WMSZ_LEFT 1
1293 #define WMSZ_RIGHT 2
1294 #define WMSZ_TOP 3
1295 #define WMSZ_TOPLEFT 4
1296 #define WMSZ_TOPRIGHT 5
1297 #define WMSZ_BOTTOM 6
1298 #define WMSZ_BOTTOMLEFT 7
1299 #define WMSZ_BOTTOMRIGHT 8
1300
1301 #ifndef NONCMESSAGES
1302
1303 #define HTERROR (-2)
1304 #define HTTRANSPARENT (-1)
1305 #define HTNOWHERE 0
1306 #define HTCLIENT 1
1307 #define HTCAPTION 2
1308 #define HTSYSMENU 3
1309 #define HTGROWBOX 4
1310 #define HTSIZE HTGROWBOX
1311 #define HTMENU 5
1312 #define HTHSCROLL 6
1313 #define HTVSCROLL 7
1314 #define HTMINBUTTON 8
1315 #define HTMAXBUTTON 9
1316 #define HTLEFT 10
1317 #define HTRIGHT 11
1318 #define HTTOP 12
1319 #define HTTOPLEFT 13
1320 #define HTTOPRIGHT 14
1321 #define HTBOTTOM 15
1322 #define HTBOTTOMLEFT 16
1323 #define HTBOTTOMRIGHT 17
1324 #define HTBORDER 18
1325 #define HTREDUCE HTMINBUTTON
1326 #define HTZOOM HTMAXBUTTON
1327 #define HTSIZEFIRST HTLEFT
1328 #define HTSIZELAST HTBOTTOMRIGHT
1329 #define HTOBJECT 19
1330 #define HTCLOSE 20
1331 #define HTHELP 21
1332
1333 #define SMTO_NORMAL 0x0000
1334 #define SMTO_BLOCK 0x0001
1335 #define SMTO_ABORTIFHUNG 0x0002
1336 #define SMTO_NOTIMEOUTIFNOTHUNG 0x0008
1337 #endif
1338
1339 #define MA_ACTIVATE 1
1340 #define MA_ACTIVATEANDEAT 2
1341 #define MA_NOACTIVATE 3
1342 #define MA_NOACTIVATEANDEAT 4
1343
1344 #define ICON_SMALL 0
1345 #define ICON_BIG 1
1346 #define ICON_SMALL2 2
1347
1348 #ifdef UNICODE
1349 #define RegisterWindowMessage RegisterWindowMessageW
1350 #else
1351 #define RegisterWindowMessage RegisterWindowMessageA
1352 #endif
1353
1354 WINUSERAPI UINT WINAPI RegisterWindowMessageA(LPCSTR lpString);
1355 WINUSERAPI UINT WINAPI RegisterWindowMessageW(LPCWSTR lpString);
1356
1357 #define SIZE_RESTORED 0
1358 #define SIZE_MINIMIZED 1
1359 #define SIZE_MAXIMIZED 2
1360 #define SIZE_MAXSHOW 3
1361 #define SIZE_MAXHIDE 4
1362
1363 #define SIZENORMAL SIZE_RESTORED
1364 #define SIZEICONIC SIZE_MINIMIZED
1365 #define SIZEFULLSCREEN SIZE_MAXIMIZED
1366 #define SIZEZOOMSHOW SIZE_MAXSHOW
1367 #define SIZEZOOMHIDE SIZE_MAXHIDE
1368
1369 typedef struct tagWINDOWPOS {
1370 HWND hwnd;
1371 HWND hwndInsertAfter;
1372 int x;
1373 int y;
1374 int cx;
1375 int cy;
1376 UINT flags;
1377 } WINDOWPOS,*LPWINDOWPOS,*PWINDOWPOS;
1378
1379 typedef struct tagNCCALCSIZE_PARAMS {
1380 RECT rgrc[3];
1381 PWINDOWPOS lppos;
1382 } NCCALCSIZE_PARAMS,*LPNCCALCSIZE_PARAMS;
1383
1384 #define WVR_ALIGNTOP 0x0010
1385 #define WVR_ALIGNLEFT 0x0020
1386 #define WVR_ALIGNBOTTOM 0x0040
1387 #define WVR_ALIGNRIGHT 0x0080
1388 #define WVR_HREDRAW 0x0100
1389 #define WVR_VREDRAW 0x0200
1390 #define WVR_REDRAW (WVR_HREDRAW | WVR_VREDRAW)
1391 #define WVR_VALIDRECTS 0x0400
1392
1393 #ifndef NOKEYSTATES
1394
1395 #define MK_LBUTTON 0x0001
1396 #define MK_RBUTTON 0x0002
1397 #define MK_SHIFT 0x0004
1398 #define MK_CONTROL 0x0008
1399 #define MK_MBUTTON 0x0010
1400 #define MK_XBUTTON1 0x0020
1401 #define MK_XBUTTON2 0x0040
1402 #endif
1403
1404 #ifndef NOTRACKMOUSEEVENT
1405 #define TME_HOVER 0x00000001
1406 #define TME_LEAVE 0x00000002
1407 #define TME_NONCLIENT 0x00000010
1408 #define TME_QUERY 0x40000000
1409 #define TME_CANCEL 0x80000000
1410
1411 #define HOVER_DEFAULT 0xFFFFFFFF
1412 #endif
1413
1414 typedef struct tagTRACKMOUSEEVENT {
1415 DWORD cbSize;
1416 DWORD dwFlags;
1417 HWND hwndTrack;
1418 DWORD dwHoverTime;
1419 } TRACKMOUSEEVENT,*LPTRACKMOUSEEVENT;
1420
1421 WINUSERAPI WINBOOL WINAPI TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack);
1422 #endif
1423
1424 #ifndef NOWINSTYLES
1425
1426 #define WS_OVERLAPPED 0x00000000L
1427 #define WS_POPUP 0x80000000L
1428 #define WS_CHILD 0x40000000L
1429 #define WS_MINIMIZE 0x20000000L
1430 #define WS_VISIBLE 0x10000000L
1431 #define WS_DISABLED 0x08000000L
1432 #define WS_CLIPSIBLINGS 0x04000000L
1433 #define WS_CLIPCHILDREN 0x02000000L
1434 #define WS_MAXIMIZE 0x01000000L
1435 #define WS_CAPTION 0x00C00000L
1436 #define WS_BORDER 0x00800000L
1437 #define WS_DLGFRAME 0x00400000L
1438 #define WS_VSCROLL 0x00200000L
1439 #define WS_HSCROLL 0x00100000L
1440 #define WS_SYSMENU 0x00080000L
1441 #define WS_THICKFRAME 0x00040000L
1442 #define WS_GROUP 0x00020000L
1443 #define WS_TABSTOP 0x00010000L
1444 #define WS_MINIMIZEBOX 0x00020000L
1445 #define WS_MAXIMIZEBOX 0x00010000L
1446 #define WS_TILED WS_OVERLAPPED
1447 #define WS_ICONIC WS_MINIMIZE
1448 #define WS_SIZEBOX WS_THICKFRAME
1449 #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW
1450 #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
1451 #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
1452 #define WS_CHILDWINDOW (WS_CHILD)
1453
1454 #define WS_EX_DLGMODALFRAME 0x00000001L
1455 #define WS_EX_NOPARENTNOTIFY 0x00000004L
1456 #define WS_EX_TOPMOST 0x00000008L
1457 #define WS_EX_ACCEPTFILES 0x00000010L
1458 #define WS_EX_TRANSPARENT 0x00000020L
1459 #define WS_EX_MDICHILD 0x00000040L
1460 #define WS_EX_TOOLWINDOW 0x00000080L
1461 #define WS_EX_WINDOWEDGE 0x00000100L
1462 #define WS_EX_CLIENTEDGE 0x00000200L
1463 #define WS_EX_CONTEXTHELP 0x00000400L
1464 #define WS_EX_RIGHT 0x00001000L
1465 #define WS_EX_LEFT 0x00000000L
1466 #define WS_EX_RTLREADING 0x00002000L
1467 #define WS_EX_LTRREADING 0x00000000L
1468 #define WS_EX_LEFTSCROLLBAR 0x00004000L
1469 #define WS_EX_RIGHTSCROLLBAR 0x00000000L
1470 #define WS_EX_CONTROLPARENT 0x00010000L
1471 #define WS_EX_STATICEDGE 0x00020000L
1472 #define WS_EX_APPWINDOW 0x00040000L
1473 #define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
1474 #define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)
1475 #define WS_EX_LAYERED 0x00080000
1476 #define WS_EX_NOINHERITLAYOUT 0x00100000L
1477 #define WS_EX_LAYOUTRTL 0x00400000L
1478 #define WS_EX_COMPOSITED 0x02000000L
1479 #define WS_EX_NOACTIVATE 0x08000000L
1480
1481 #define CS_VREDRAW 0x0001
1482 #define CS_HREDRAW 0x0002
1483 #define CS_DBLCLKS 0x0008
1484 #define CS_OWNDC 0x0020
1485 #define CS_CLASSDC 0x0040
1486 #define CS_PARENTDC 0x0080
1487 #define CS_NOCLOSE 0x0200
1488 #define CS_SAVEBITS 0x0800
1489 #define CS_BYTEALIGNCLIENT 0x1000
1490 #define CS_BYTEALIGNWINDOW 0x2000
1491 #define CS_GLOBALCLASS 0x4000
1492 #define CS_IME 0x00010000
1493 #define CS_DROPSHADOW 0x00020000
1494 #endif
1495
1496 #define PRF_CHECKVISIBLE 0x00000001L
1497 #define PRF_NONCLIENT 0x00000002L
1498 #define PRF_CLIENT 0x00000004L
1499 #define PRF_ERASEBKGND 0x00000008L
1500 #define PRF_CHILDREN 0x00000010L
1501 #define PRF_OWNED 0x00000020L
1502
1503 #define BDR_RAISEDOUTER 0x0001
1504 #define BDR_SUNKENOUTER 0x0002
1505 #define BDR_RAISEDINNER 0x0004
1506 #define BDR_SUNKENINNER 0x0008
1507
1508 #define BDR_OUTER (BDR_RAISEDOUTER | BDR_SUNKENOUTER)
1509 #define BDR_INNER (BDR_RAISEDINNER | BDR_SUNKENINNER)
1510 #define BDR_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER)
1511 #define BDR_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER)
1512
1513 #define EDGE_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER)
1514 #define EDGE_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER)
1515 #define EDGE_ETCHED (BDR_SUNKENOUTER | BDR_RAISEDINNER)
1516 #define EDGE_BUMP (BDR_RAISEDOUTER | BDR_SUNKENINNER)
1517
1518 #define BF_LEFT 0x0001
1519 #define BF_TOP 0x0002
1520 #define BF_RIGHT 0x0004
1521 #define BF_BOTTOM 0x0008
1522
1523 #define BF_TOPLEFT (BF_TOP | BF_LEFT)
1524 #define BF_TOPRIGHT (BF_TOP | BF_RIGHT)
1525 #define BF_BOTTOMLEFT (BF_BOTTOM | BF_LEFT)
1526 #define BF_BOTTOMRIGHT (BF_BOTTOM | BF_RIGHT)
1527 #define BF_RECT (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)
1528
1529 #define BF_DIAGONAL 0x0010
1530
1531 #define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL | BF_TOP | BF_RIGHT)
1532 #define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT)
1533 #define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
1534 #define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
1535
1536 #define BF_MIDDLE 0x0800
1537 #define BF_SOFT 0x1000
1538 #define BF_ADJUST 0x2000
1539 #define BF_FLAT 0x4000
1540 #define BF_MONO 0x8000
1541
1542 WINUSERAPI WINBOOL WINAPI DrawEdge(HDC hdc,LPRECT qrc,UINT edge,UINT grfFlags);
1543
1544 #define DFC_CAPTION 1
1545 #define DFC_MENU 2
1546 #define DFC_SCROLL 3
1547 #define DFC_BUTTON 4
1548 #define DFC_POPUPMENU 5
1549
1550 #define DFCS_CAPTIONCLOSE 0x0000
1551 #define DFCS_CAPTIONMIN 0x0001
1552 #define DFCS_CAPTIONMAX 0x0002
1553 #define DFCS_CAPTIONRESTORE 0x0003
1554 #define DFCS_CAPTIONHELP 0x0004
1555
1556 #define DFCS_MENUARROW 0x0000
1557 #define DFCS_MENUCHECK 0x0001
1558 #define DFCS_MENUBULLET 0x0002
1559 #define DFCS_MENUARROWRIGHT 0x0004
1560 #define DFCS_SCROLLUP 0x0000
1561 #define DFCS_SCROLLDOWN 0x0001
1562 #define DFCS_SCROLLLEFT 0x0002
1563 #define DFCS_SCROLLRIGHT 0x0003
1564 #define DFCS_SCROLLCOMBOBOX 0x0005
1565 #define DFCS_SCROLLSIZEGRIP 0x0008
1566 #define DFCS_SCROLLSIZEGRIPRIGHT 0x0010
1567
1568 #define DFCS_BUTTONCHECK 0x0000
1569 #define DFCS_BUTTONRADIOIMAGE 0x0001
1570 #define DFCS_BUTTONRADIOMASK 0x0002
1571 #define DFCS_BUTTONRADIO 0x0004
1572 #define DFCS_BUTTON3STATE 0x0008
1573 #define DFCS_BUTTONPUSH 0x0010
1574
1575 #define DFCS_INACTIVE 0x0100
1576 #define DFCS_PUSHED 0x0200
1577 #define DFCS_CHECKED 0x0400
1578
1579 #define DFCS_TRANSPARENT 0x0800
1580 #define DFCS_HOT 0x1000
1581
1582 #define DFCS_ADJUSTRECT 0x2000
1583 #define DFCS_FLAT 0x4000
1584 #define DFCS_MONO 0x8000
1585
1586 WINUSERAPI WINBOOL WINAPI DrawFrameControl(HDC,LPRECT,UINT,UINT);
1587
1588 #define DC_ACTIVE 0x0001
1589 #define DC_SMALLCAP 0x0002
1590 #define DC_ICON 0x0004
1591 #define DC_TEXT 0x0008
1592 #define DC_INBUTTON 0x0010
1593 #define DC_GRADIENT 0x0020
1594 #define DC_BUTTONS 0x1000
1595
1596 WINUSERAPI WINBOOL WINAPI DrawCaption(HWND hwnd,HDC hdc,CONST RECT *lprect,UINT flags);
1597
1598 #define IDANI_OPEN 1
1599 #define IDANI_CAPTION 3
1600
1601 WINUSERAPI WINBOOL WINAPI DrawAnimatedRects(HWND hwnd,int idAni,CONST RECT *lprcFrom,CONST RECT *lprcTo);
1602
1603 #ifndef NOCLIPBOARD
1604
1605 #define CF_TEXT 1
1606 #define CF_BITMAP 2
1607 #define CF_METAFILEPICT 3
1608 #define CF_SYLK 4
1609 #define CF_DIF 5
1610 #define CF_TIFF 6
1611 #define CF_OEMTEXT 7
1612 #define CF_DIB 8
1613 #define CF_PALETTE 9
1614 #define CF_PENDATA 10
1615 #define CF_RIFF 11
1616 #define CF_WAVE 12
1617 #define CF_UNICODETEXT 13
1618 #define CF_ENHMETAFILE 14
1619 #define CF_HDROP 15
1620 #define CF_LOCALE 16
1621 #define CF_DIBV5 17
1622 #define CF_MAX 18
1623
1624 #define CF_OWNERDISPLAY 0x0080
1625 #define CF_DSPTEXT 0x0081
1626 #define CF_DSPBITMAP 0x0082
1627 #define CF_DSPMETAFILEPICT 0x0083
1628 #define CF_DSPENHMETAFILE 0x008E
1629
1630 #define CF_PRIVATEFIRST 0x0200
1631 #define CF_PRIVATELAST 0x02FF
1632
1633 #define CF_GDIOBJFIRST 0x0300
1634 #define CF_GDIOBJLAST 0x03FF
1635 #endif
1636
1637 #define FVIRTKEY TRUE
1638 #define FNOINVERT 0x02
1639 #define FSHIFT 0x04
1640 #define FCONTROL 0x08
1641 #define FALT 0x10
1642
1643 typedef struct tagACCEL {
1644 BYTE fVirt;
1645 WORD key;
1646 WORD cmd;
1647 } ACCEL,*LPACCEL;
1648
1649 typedef struct tagPAINTSTRUCT {
1650 HDC hdc;
1651 WINBOOL fErase;
1652 RECT rcPaint;
1653 WINBOOL fRestore;
1654 WINBOOL fIncUpdate;
1655 BYTE rgbReserved[32];
1656 } PAINTSTRUCT,*PPAINTSTRUCT,*NPPAINTSTRUCT,*LPPAINTSTRUCT;
1657
1658 typedef struct tagCREATESTRUCTA {
1659 LPVOID lpCreateParams;
1660 HINSTANCE hInstance;
1661 HMENU hMenu;
1662 HWND hwndParent;
1663 int cy;
1664 int cx;
1665 int y;
1666 int x;
1667 LONG style;
1668 LPCSTR lpszName;
1669 LPCSTR lpszClass;
1670 DWORD dwExStyle;
1671 } CREATESTRUCTA,*LPCREATESTRUCTA;
1672
1673 typedef struct tagCREATESTRUCTW {
1674 LPVOID lpCreateParams;
1675 HINSTANCE hInstance;
1676 HMENU hMenu;
1677 HWND hwndParent;
1678 int cy;
1679 int cx;
1680 int y;
1681 int x;
1682 LONG style;
1683 LPCWSTR lpszName;
1684 LPCWSTR lpszClass;
1685 DWORD dwExStyle;
1686 } CREATESTRUCTW,*LPCREATESTRUCTW;
1687
1688 #ifdef UNICODE
1689 typedef CREATESTRUCTW CREATESTRUCT;
1690 typedef LPCREATESTRUCTW LPCREATESTRUCT;
1691 #else
1692 typedef CREATESTRUCTA CREATESTRUCT;
1693 typedef LPCREATESTRUCTA LPCREATESTRUCT;
1694 #endif
1695
1696 typedef struct tagWINDOWPLACEMENT {
1697 UINT length;
1698 UINT flags;
1699 UINT showCmd;
1700 POINT ptMinPosition;
1701 POINT ptMaxPosition;
1702 RECT rcNormalPosition;
1703 } WINDOWPLACEMENT;
1704 typedef WINDOWPLACEMENT *PWINDOWPLACEMENT,*LPWINDOWPLACEMENT;
1705
1706 #define WPF_SETMINPOSITION 0x0001
1707 #define WPF_RESTORETOMAXIMIZED 0x0002
1708 #define WPF_ASYNCWINDOWPLACEMENT 0x0004
1709
1710 typedef struct tagNMHDR {
1711 HWND hwndFrom;
1712 UINT_PTR idFrom;
1713 UINT code;
1714 } NMHDR;
1715
1716 typedef NMHDR *LPNMHDR;
1717
1718 typedef struct tagSTYLESTRUCT {
1719 DWORD styleOld;
1720 DWORD styleNew;
1721 } STYLESTRUCT,*LPSTYLESTRUCT;
1722
1723 #define ODT_MENU 1
1724 #define ODT_LISTBOX 2
1725 #define ODT_COMBOBOX 3
1726 #define ODT_BUTTON 4
1727 #define ODT_STATIC 5
1728
1729 #define ODA_DRAWENTIRE 0x0001
1730 #define ODA_SELECT 0x0002
1731 #define ODA_FOCUS 0x0004
1732
1733 #define ODS_SELECTED 0x0001
1734 #define ODS_GRAYED 0x0002
1735 #define ODS_DISABLED 0x0004
1736 #define ODS_CHECKED 0x0008
1737 #define ODS_FOCUS 0x0010
1738 #define ODS_DEFAULT 0x0020
1739 #define ODS_COMBOBOXEDIT 0x1000
1740 #define ODS_HOTLIGHT 0x0040
1741 #define ODS_INACTIVE 0x0080
1742 #define ODS_NOACCEL 0x0100
1743 #define ODS_NOFOCUSRECT 0x0200
1744
1745 typedef struct tagMEASUREITEMSTRUCT {
1746 UINT CtlType;
1747 UINT CtlID;
1748 UINT itemID;
1749 UINT itemWidth;
1750 UINT itemHeight;
1751 ULONG_PTR itemData;
1752 } MEASUREITEMSTRUCT,*PMEASUREITEMSTRUCT,*LPMEASUREITEMSTRUCT;
1753
1754 typedef struct tagDRAWITEMSTRUCT {
1755 UINT CtlType;
1756 UINT CtlID;
1757 UINT itemID;
1758 UINT itemAction;
1759 UINT itemState;
1760 HWND hwndItem;
1761 HDC hDC;
1762 RECT rcItem;
1763 ULONG_PTR itemData;
1764 } DRAWITEMSTRUCT,*PDRAWITEMSTRUCT,*LPDRAWITEMSTRUCT;
1765
1766 typedef struct tagDELETEITEMSTRUCT {
1767 UINT CtlType;
1768 UINT CtlID;
1769 UINT itemID;
1770 HWND hwndItem;
1771 ULONG_PTR itemData;
1772 } DELETEITEMSTRUCT,*PDELETEITEMSTRUCT,*LPDELETEITEMSTRUCT;
1773
1774 typedef struct tagCOMPAREITEMSTRUCT {
1775 UINT CtlType;
1776 UINT CtlID;
1777 HWND hwndItem;
1778 UINT itemID1;
1779 ULONG_PTR itemData1;
1780 UINT itemID2;
1781 ULONG_PTR itemData2;
1782 DWORD dwLocaleId;
1783 } COMPAREITEMSTRUCT,*PCOMPAREITEMSTRUCT,*LPCOMPAREITEMSTRUCT;
1784
1785 #ifndef NOMSG
1786 #ifdef UNICODE
1787 #define GetMessage GetMessageW
1788 #define DispatchMessage DispatchMessageW
1789 #define PeekMessage PeekMessageW
1790 #else
1791 #define GetMessage GetMessageA
1792 #define DispatchMessage DispatchMessageA
1793 #define PeekMessage PeekMessageA
1794 #endif
1795
1796 WINUSERAPI WINBOOL WINAPI GetMessageA(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax);
1797 WINUSERAPI WINBOOL WINAPI GetMessageW(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax);
1798 WINUSERAPI WINBOOL WINAPI TranslateMessage(CONST MSG *lpMsg);
1799 WINUSERAPI LRESULT WINAPI DispatchMessageA(CONST MSG *lpMsg);
1800 WINUSERAPI LRESULT WINAPI DispatchMessageW(CONST MSG *lpMsg);
1801 WINUSERAPI WINBOOL WINAPI SetMessageQueue(int cMessagesMax);
1802 WINUSERAPI WINBOOL WINAPI PeekMessageA(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax,UINT wRemoveMsg);
1803 WINUSERAPI WINBOOL WINAPI PeekMessageW(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax,UINT wRemoveMsg);
1804
1805 #define PM_NOREMOVE 0x0000
1806 #define PM_REMOVE 0x0001
1807 #define PM_NOYIELD 0x0002
1808 #define PM_QS_INPUT (QS_INPUT << 16)
1809 #define PM_QS_POSTMESSAGE ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16)
1810 #define PM_QS_PAINT (QS_PAINT << 16)
1811 #define PM_QS_SENDMESSAGE (QS_SENDMESSAGE << 16)
1812 #endif
1813
1814 WINUSERAPI WINBOOL WINAPI RegisterHotKey(HWND hWnd,int id,UINT fsModifiers,UINT vk);
1815 WINUSERAPI WINBOOL WINAPI UnregisterHotKey(HWND hWnd,int id);
1816
1817 #define MOD_ALT 0x0001
1818 #define MOD_CONTROL 0x0002
1819 #define MOD_SHIFT 0x0004
1820 #define MOD_WIN 0x0008
1821
1822 #define IDHOT_SNAPWINDOW (-1)
1823 #define IDHOT_SNAPDESKTOP (-2)
1824
1825 #ifdef WIN_INTERNAL
1826 #ifndef LSTRING
1827 #define NOLSTRING
1828 #endif
1829 #ifndef LFILEIO
1830 #define NOLFILEIO
1831 #endif
1832 #endif
1833
1834 #define ENDSESSION_LOGOFF 0x80000000
1835
1836 #define EWX_LOGOFF 0
1837 #define EWX_SHUTDOWN 0x00000001
1838 #define EWX_REBOOT 0x00000002
1839 #define EWX_FORCE 0x00000004
1840 #define EWX_POWEROFF 0x00000008
1841 #define EWX_FORCEIFHUNG 0x00000010
1842
1843 #define ExitWindows(dwReserved,Code) ExitWindowsEx(EWX_LOGOFF,0xFFFFFFFF)
1844
1845 #ifdef UNICODE
1846 #define SendMessage SendMessageW
1847 #define SendMessageTimeout SendMessageTimeoutW
1848 #define SendNotifyMessage SendNotifyMessageW
1849 #define SendMessageCallback SendMessageCallbackW
1850 #else
1851 #define SendMessage SendMessageA
1852 #define SendMessageTimeout SendMessageTimeoutA
1853 #define SendNotifyMessage SendNotifyMessageA
1854 #define SendMessageCallback SendMessageCallbackA
1855 #endif
1856
1857 WINUSERAPI WINBOOL WINAPI ExitWindowsEx(UINT uFlags,DWORD dwReason);
1858 WINUSERAPI WINBOOL WINAPI SwapMouseButton(WINBOOL fSwap);
1859 WINUSERAPI DWORD WINAPI GetMessagePos(VOID);
1860 WINUSERAPI LONG WINAPI GetMessageTime(VOID);
1861 WINUSERAPI LPARAM WINAPI GetMessageExtraInfo(VOID);
1862 WINUSERAPI WINBOOL WINAPI IsWow64Message(VOID);
1863 WINUSERAPI LPARAM WINAPI SetMessageExtraInfo(LPARAM lParam);
1864 WINUSERAPI LRESULT WINAPI SendMessageA(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
1865 WINUSERAPI LRESULT WINAPI SendMessageW(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
1866 WINUSERAPI LRESULT WINAPI SendMessageTimeoutA(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,UINT fuFlags,UINT uTimeout,PDWORD_PTR lpdwResult);
1867 WINUSERAPI LRESULT WINAPI SendMessageTimeoutW(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,UINT fuFlags,UINT uTimeout,PDWORD_PTR lpdwResult);
1868 WINUSERAPI WINBOOL WINAPI SendNotifyMessageA(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
1869 WINUSERAPI WINBOOL WINAPI SendNotifyMessageW(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
1870 WINUSERAPI WINBOOL WINAPI SendMessageCallbackA(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,SENDASYNCPROC lpResultCallBack,ULONG_PTR dwData);
1871 WINUSERAPI WINBOOL WINAPI SendMessageCallbackW(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,SENDASYNCPROC lpResultCallBack,ULONG_PTR dwData);
1872
1873 typedef struct {
1874 UINT cbSize;
1875 HDESK hdesk;
1876 HWND hwnd;
1877 LUID luid;
1878 } BSMINFO,*PBSMINFO;
1879
1880 #ifdef UNICODE
1881 #define BroadcastSystemMessageEx BroadcastSystemMessageExW
1882 #define BroadcastSystemMessage BroadcastSystemMessageW
1883 #else
1884 #define BroadcastSystemMessageEx BroadcastSystemMessageExA
1885 #define BroadcastSystemMessage BroadcastSystemMessageA
1886 #endif
1887
1888 WINUSERAPI long WINAPI BroadcastSystemMessageExA(DWORD flags,LPDWORD lpInfo,UINT Msg,WPARAM wParam,LPARAM lParam,PBSMINFO pbsmInfo);
1889 WINUSERAPI long WINAPI BroadcastSystemMessageExW(DWORD flags,LPDWORD lpInfo,UINT Msg,WPARAM wParam,LPARAM lParam,PBSMINFO pbsmInfo);
1890 WINUSERAPI long WINAPI BroadcastSystemMessageA(DWORD flags,LPDWORD lpInfo,UINT Msg,WPARAM wParam,LPARAM lParam);
1891 WINUSERAPI long WINAPI BroadcastSystemMessageW(DWORD flags,LPDWORD lpInfo,UINT Msg,WPARAM wParam,LPARAM lParam);
1892
1893 #define BSM_ALLCOMPONENTS 0x00000000
1894 #define BSM_VXDS 0x00000001
1895 #define BSM_NETDRIVER 0x00000002
1896 #define BSM_INSTALLABLEDRIVERS 0x00000004
1897 #define BSM_APPLICATIONS 0x00000008
1898 #define BSM_ALLDESKTOPS 0x00000010
1899
1900 #define BSF_QUERY 0x00000001
1901 #define BSF_IGNORECURRENTTASK 0x00000002
1902 #define BSF_FLUSHDISK 0x00000004
1903 #define BSF_NOHANG 0x00000008
1904 #define BSF_POSTMESSAGE 0x00000010
1905 #define BSF_FORCEIFHUNG 0x00000020
1906 #define BSF_NOTIMEOUTIFNOTHUNG 0x00000040
1907 #define BSF_ALLOWSFW 0x00000080
1908 #define BSF_SENDNOTIFYMESSAGE 0x00000100
1909 #define BSF_RETURNHDESK 0x00000200
1910 #define BSF_LUID 0x00000400
1911
1912 #define BROADCAST_QUERY_DENY 0x424D5144
1913
1914 typedef PVOID HDEVNOTIFY;
1915 typedef HDEVNOTIFY *PHDEVNOTIFY;
1916
1917 #define DEVICE_NOTIFY_WINDOW_HANDLE 0x00000000
1918 #define DEVICE_NOTIFY_SERVICE_HANDLE 0x00000001
1919 #define DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 0x00000004
1920
1921 #ifdef UNICODE
1922 #define RegisterDeviceNotification RegisterDeviceNotificationW
1923 #define PostMessage PostMessageW
1924 #define PostThreadMessage PostThreadMessageW
1925 #define PostAppMessage PostAppMessageW
1926 #define DefWindowProc DefWindowProcW
1927 #define CallWindowProc CallWindowProcW
1928 #define RegisterClass RegisterClassW
1929 #define UnregisterClass UnregisterClassW
1930 #define GetClassInfo GetClassInfoW
1931 #define RegisterClassEx RegisterClassExW
1932 #define GetClassInfoEx GetClassInfoExW
1933 #else
1934 #define RegisterDeviceNotification RegisterDeviceNotificationA
1935 #define PostMessage PostMessageA
1936 #define PostThreadMessage PostThreadMessageA
1937 #define PostAppMessage PostAppMessageA
1938 #define DefWindowProc DefWindowProcA
1939 #define CallWindowProc CallWindowProcA
1940 #define RegisterClass RegisterClassA
1941 #define UnregisterClass UnregisterClassA
1942 #define GetClassInfo GetClassInfoA
1943 #define RegisterClassEx RegisterClassExA
1944 #define GetClassInfoEx GetClassInfoExA
1945 #endif
1946
1947 WINUSERAPI HDEVNOTIFY WINAPI RegisterDeviceNotificationA(HANDLE hRecipient,LPVOID NotificationFilter,DWORD Flags);
1948 WINUSERAPI HDEVNOTIFY WINAPI RegisterDeviceNotificationW(HANDLE hRecipient,LPVOID NotificationFilter,DWORD Flags);
1949 WINUSERAPI WINBOOL WINAPI UnregisterDeviceNotification(HDEVNOTIFY Handle);
1950 WINUSERAPI WINBOOL WINAPI PostMessageA(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
1951 WINUSERAPI WINBOOL WINAPI PostMessageW(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
1952 WINUSERAPI WINBOOL WINAPI PostThreadMessageA(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM lParam);
1953 WINUSERAPI WINBOOL WINAPI PostThreadMessageW(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM lParam);
1954 #define PostAppMessageA(idThread,wMsg,wParam,lParam) PostThreadMessageA((DWORD)idThread,wMsg,wParam,lParam)
1955 #define PostAppMessageW(idThread,wMsg,wParam,lParam) PostThreadMessageW((DWORD)idThread,wMsg,wParam,lParam)
1956
1957 #define HWND_BROADCAST ((HWND)0xffff)
1958 #define HWND_MESSAGE ((HWND)-3)
1959
1960 WINUSERAPI WINBOOL WINAPI AttachThreadInput(DWORD idAttach,DWORD idAttachTo,WINBOOL fAttach);
1961 WINUSERAPI WINBOOL WINAPI ReplyMessage(LRESULT lResult);
1962 WINUSERAPI WINBOOL WINAPI WaitMessage(VOID);
1963 WINUSERAPI DWORD WINAPI WaitForInputIdle(HANDLE hProcess,DWORD dwMilliseconds);
1964 WINUSERAPI LRESULT WINAPI DefWindowProcA(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
1965 WINUSERAPI LRESULT WINAPI DefWindowProcW(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
1966 WINUSERAPI VOID WINAPI PostQuitMessage(int nExitCode);
1967 WINUSERAPI LRESULT WINAPI CallWindowProcA(WNDPROC lpPrevWndFunc,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
1968 WINUSERAPI LRESULT WINAPI CallWindowProcW(WNDPROC lpPrevWndFunc,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
1969 WINUSERAPI WINBOOL WINAPI InSendMessage(VOID);
1970 WINUSERAPI DWORD WINAPI InSendMessageEx(LPVOID lpReserved);
1971
1972 #define ISMEX_NOSEND 0x00000000
1973 #define ISMEX_SEND 0x00000001
1974 #define ISMEX_NOTIFY 0x00000002
1975 #define ISMEX_CALLBACK 0x00000004
1976 #define ISMEX_REPLIED 0x00000008
1977
1978 WINUSERAPI UINT WINAPI GetDoubleClickTime(VOID);
1979 WINUSERAPI WINBOOL WINAPI SetDoubleClickTime(UINT);
1980 WINUSERAPI ATOM WINAPI RegisterClassA(CONST WNDCLASSA *lpWndClass);
1981 WINUSERAPI ATOM WINAPI RegisterClassW(CONST WNDCLASSW *lpWndClass);
1982 WINUSERAPI WINBOOL WINAPI UnregisterClassA(LPCSTR lpClassName,HINSTANCE hInstance);
1983 WINUSERAPI WINBOOL WINAPI UnregisterClassW(LPCWSTR lpClassName,HINSTANCE hInstance);
1984 WINUSERAPI WINBOOL WINAPI GetClassInfoA(HINSTANCE hInstance,LPCSTR lpClassName,LPWNDCLASSA lpWndClass);
1985 WINUSERAPI WINBOOL WINAPI GetClassInfoW(HINSTANCE hInstance,LPCWSTR lpClassName,LPWNDCLASSW lpWndClass);
1986 WINUSERAPI ATOM WINAPI RegisterClassExA(CONST WNDCLASSEXA *);
1987 WINUSERAPI ATOM WINAPI RegisterClassExW(CONST WNDCLASSEXW *);
1988 WINUSERAPI WINBOOL WINAPI GetClassInfoExA(HINSTANCE hInstance,LPCSTR lpszClass,LPWNDCLASSEXA lpwcx);
1989 WINUSERAPI WINBOOL WINAPI GetClassInfoExW(HINSTANCE hInstance,LPCWSTR lpszClass,LPWNDCLASSEXW lpwcx);
1990
1991 #define CW_USEDEFAULT ((int)0x80000000)
1992
1993 #define HWND_DESKTOP ((HWND)0)
1994
1995 typedef BOOLEAN (WINAPI *PREGISTERCLASSNAMEW)(LPCWSTR);
1996
1997 #ifdef UNICODE
1998 #define CreateWindowEx CreateWindowExW
1999 #define CreateWindow CreateWindowW
2000 #else
2001 #define CreateWindowEx CreateWindowExA
2002 #define CreateWindow CreateWindowA
2003 #endif
2004
2005 WINUSERAPI HWND WINAPI CreateWindowExA(DWORD dwExStyle,LPCSTR lpClassName,LPCSTR lpWindowName,DWORD dwStyle,int X,int Y,int nWidth,int nHeight,HWND hWndParent,HMENU hMenu,HINSTANCE hInstance,LPVOID lpParam);
2006 WINUSERAPI HWND WINAPI CreateWindowExW(DWORD dwExStyle,LPCWSTR lpClassName,LPCWSTR lpWindowName,DWORD dwStyle,int X,int Y,int nWidth,int nHeight,HWND hWndParent,HMENU hMenu,HINSTANCE hInstance,LPVOID lpParam);
2007 #define CreateWindowA(lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam) CreateWindowExA(0L,lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam)
2008 #define CreateWindowW(lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam) CreateWindowExW(0L,lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam)
2009 WINUSERAPI WINBOOL WINAPI IsWindow(HWND hWnd);
2010 WINUSERAPI WINBOOL WINAPI IsMenu(HMENU hMenu);
2011 WINUSERAPI WINBOOL WINAPI IsChild(HWND hWndParent,HWND hWnd);
2012 WINUSERAPI WINBOOL WINAPI DestroyWindow(HWND hWnd);
2013 WINUSERAPI WINBOOL WINAPI ShowWindow(HWND hWnd,int nCmdShow);
2014 WINUSERAPI WINBOOL WINAPI AnimateWindow(HWND hWnd,DWORD dwTime,DWORD dwFlags);
2015
2016 #if defined(_WINGDI_) && !defined(NOGDI)
2017 WINUSERAPI WINBOOL WINAPI UpdateLayeredWindow(HWND hWnd,HDC hdcDst,POINT *pptDst,SIZE *psize,HDC hdcSrc,POINT *pptSrc,COLORREF crKey,BLENDFUNCTION *pblend,DWORD dwFlags);
2018
2019 typedef struct tagUPDATELAYEREDWINDOWINFO {
2020 DWORD cbSize;
2021 HDC hdcDst;
2022 POINT CONST *pptDst;
2023 SIZE CONST *psize;
2024 HDC hdcSrc;
2025 POINT CONST *pptSrc;
2026 COLORREF crKey;
2027 BLENDFUNCTION CONST *pblend;
2028 DWORD dwFlags;
2029 RECT CONST *prcDirty;
2030 } UPDATELAYEREDWINDOWINFO,*PUPDATELAYEREDWINDOWINFO;
2031
2032 WINUSERAPI WINBOOL WINAPI UpdateLayeredWindowIndirect(HWND hWnd,UPDATELAYEREDWINDOWINFO CONST *pULWInfo);
2033 WINUSERAPI WINBOOL WINAPI GetLayeredWindowAttributes(HWND hwnd,COLORREF *pcrKey,BYTE *pbAlpha,DWORD *pdwFlags);
2034
2035 #define PW_CLIENTONLY 0x00000001
2036
2037 WINUSERAPI WINBOOL WINAPI PrintWindow(HWND hwnd,HDC hdcBlt,UINT nFlags);
2038 WINUSERAPI WINBOOL WINAPI SetLayeredWindowAttributes(HWND hwnd,COLORREF crKey,BYTE bAlpha,DWORD dwFlags);
2039
2040 #define LWA_COLORKEY 0x00000001
2041 #define LWA_ALPHA 0x00000002
2042
2043 #define ULW_COLORKEY 0x00000001
2044 #define ULW_ALPHA 0x00000002
2045 #define ULW_OPAQUE 0x00000004
2046
2047 #define ULW_EX_NORESIZE 0x00000008
2048
2049 WINUSERAPI WINBOOL WINAPI ShowWindowAsync(HWND hWnd,int nCmdShow);
2050 WINUSERAPI WINBOOL WINAPI FlashWindow(HWND hWnd,WINBOOL bInvert);
2051
2052 typedef struct {
2053 UINT cbSize;
2054 HWND hwnd;
2055 DWORD dwFlags;
2056 UINT uCount;
2057 DWORD dwTimeout;
2058 } FLASHWINFO,*PFLASHWINFO;
2059
2060 WINUSERAPI WINBOOL WINAPI FlashWindowEx(PFLASHWINFO pfwi);
2061
2062 #define FLASHW_STOP 0
2063 #define FLASHW_CAPTION 0x00000001
2064 #define FLASHW_TRAY 0x00000002
2065 #define FLASHW_ALL (FLASHW_CAPTION | FLASHW_TRAY)
2066 #define FLASHW_TIMER 0x00000004
2067 #define FLASHW_TIMERNOFG 0x0000000C
2068
2069 WINUSERAPI WINBOOL WINAPI ShowOwnedPopups(HWND hWnd,WINBOOL fShow);
2070 WINUSERAPI WINBOOL WINAPI OpenIcon(HWND hWnd);
2071 WINUSERAPI WINBOOL WINAPI CloseWindow(HWND hWnd);
2072 WINUSERAPI WINBOOL WINAPI MoveWindow(HWND hWnd,int X,int Y,int nWidth,int nHeight,WINBOOL bRepaint);
2073 WINUSERAPI WINBOOL WINAPI SetWindowPos(HWND hWnd,HWND hWndInsertAfter,int X,int Y,int cx,int cy,UINT uFlags);
2074 WINUSERAPI WINBOOL WINAPI GetWindowPlacement(HWND hWnd,WINDOWPLACEMENT *lpwndpl);
2075 WINUSERAPI WINBOOL WINAPI SetWindowPlacement(HWND hWnd,CONST WINDOWPLACEMENT *lpwndpl);
2076
2077 #ifndef NODEFERWINDOWPOS
2078 WINUSERAPI HDWP WINAPI BeginDeferWindowPos(int nNumWindows);
2079 WINUSERAPI HDWP WINAPI DeferWindowPos(HDWP hWinPosInfo,HWND hWnd,HWND hWndInsertAfter,int x,int y,int cx,int cy,UINT uFlags);
2080 WINUSERAPI WINBOOL WINAPI EndDeferWindowPos(HDWP hWinPosInfo);
2081 #endif
2082
2083 WINUSERAPI WINBOOL WINAPI IsWindowVisible(HWND hWnd);
2084 WINUSERAPI WINBOOL WINAPI IsIconic(HWND hWnd);
2085 WINUSERAPI WINBOOL WINAPI AnyPopup(VOID);
2086 WINUSERAPI WINBOOL WINAPI BringWindowToTop(HWND hWnd);
2087 WINUSERAPI WINBOOL WINAPI IsZoomed(HWND hWnd);
2088
2089 #define SWP_NOSIZE 0x0001
2090 #define SWP_NOMOVE 0x0002
2091 #define SWP_NOZORDER 0x0004
2092 #define SWP_NOREDRAW 0x0008
2093 #define SWP_NOACTIVATE 0x0010
2094 #define SWP_FRAMECHANGED 0x0020
2095 #define SWP_SHOWWINDOW 0x0040
2096 #define SWP_HIDEWINDOW 0x0080
2097 #define SWP_NOCOPYBITS 0x0100
2098 #define SWP_NOOWNERZORDER 0x0200
2099 #define SWP_NOSENDCHANGING 0x0400
2100
2101 #define SWP_DRAWFRAME SWP_FRAMECHANGED
2102 #define SWP_NOREPOSITION SWP_NOOWNERZORDER
2103 #define SWP_DEFERERASE 0x2000
2104 #define SWP_ASYNCWINDOWPOS 0x4000
2105
2106 #define HWND_TOP ((HWND)0)
2107 #define HWND_BOTTOM ((HWND)1)
2108 #define HWND_TOPMOST ((HWND)-1)
2109 #define HWND_NOTOPMOST ((HWND)-2)
2110
2111 #ifndef NOCTLMGR
2112
2113 #include <pshpack2.h>
2114
2115 typedef struct {
2116 DWORD style;
2117 DWORD dwExtendedStyle;
2118 WORD cdit;
2119 short x;
2120 short y;
2121 short cx;
2122 short cy;
2123 } DLGTEMPLATE;
2124
2125 typedef DLGTEMPLATE *LPDLGTEMPLATEA;
2126 typedef DLGTEMPLATE *LPDLGTEMPLATEW;
2127
2128 #ifdef UNICODE
2129 typedef LPDLGTEMPLATEW LPDLGTEMPLATE;
2130 #else
2131 typedef LPDLGTEMPLATEA LPDLGTEMPLATE;
2132 #endif
2133
2134 typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA;
2135 typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW;
2136
2137 #ifdef UNICODE
2138 typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE;
2139 #else
2140 typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE;
2141 #endif
2142
2143 typedef struct {
2144 DWORD style;
2145 DWORD dwExtendedStyle;
2146 short x;
2147 short y;
2148 short cx;
2149 short cy;
2150 WORD id;
2151 } DLGITEMTEMPLATE;
2152
2153 typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA;
2154 typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW;
2155
2156 #ifdef UNICODE
2157 typedef PDLGITEMTEMPLATEW PDLGITEMTEMPLATE;
2158 #else
2159 typedef PDLGITEMTEMPLATEA PDLGITEMTEMPLATE;
2160 #endif
2161
2162 typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
2163 typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
2164
2165 #ifdef UNICODE
2166 typedef LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE;
2167 #else
2168 typedef LPDLGITEMTEMPLATEA LPDLGITEMTEMPLATE;
2169 #endif
2170
2171 #include <poppack.h>
2172
2173 #ifdef UNICODE
2174 #define CreateDialogParam CreateDialogParamW
2175 #define CreateDialogIndirectParam CreateDialogIndirectParamW
2176 #define CreateDialog CreateDialogW
2177 #define CreateDialogIndirect CreateDialogIndirectW
2178 #define DialogBoxParam DialogBoxParamW
2179 #define DialogBoxIndirectParam DialogBoxIndirectParamW
2180 #define DialogBox DialogBoxW
2181 #define DialogBoxIndirect DialogBoxIndirectW
2182 #define SetDlgItemText SetDlgItemTextW
2183 #define GetDlgItemText GetDlgItemTextW
2184 #define SendDlgItemMessage SendDlgItemMessageW
2185 #define DefDlgProc DefDlgProcW
2186 #else
2187 #define CreateDialogParam CreateDialogParamA
2188 #define CreateDialogIndirectParam CreateDialogIndirectParamA
2189 #define CreateDialog CreateDialogA
2190 #define CreateDialogIndirect CreateDialogIndirectA
2191 #define DialogBoxParam DialogBoxParamA
2192 #define DialogBoxIndirectParam DialogBoxIndirectParamA
2193 #define DialogBox DialogBoxA
2194 #define DialogBoxIndirect DialogBoxIndirectA
2195 #define SetDlgItemText SetDlgItemTextA
2196 #define GetDlgItemText GetDlgItemTextA
2197 #define SendDlgItemMessage SendDlgItemMessageA
2198 #define DefDlgProc DefDlgProcA
2199 #endif
2200
2201 WINUSERAPI HWND WINAPI CreateDialogParamA(HINSTANCE hInstance,LPCSTR lpTemplateName,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
2202 WINUSERAPI HWND WINAPI CreateDialogParamW(HINSTANCE hInstance,LPCWSTR lpTemplateName,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
2203 WINUSERAPI HWND WINAPI CreateDialogIndirectParamA(HINSTANCE hInstance,LPCDLGTEMPLATEA lpTemplate,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
2204 WINUSERAPI HWND WINAPI CreateDialogIndirectParamW(HINSTANCE hInstance,LPCDLGTEMPLATEW lpTemplate,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
2205 #define CreateDialogA(hInstance,lpName,hWndParent,lpDialogFunc) CreateDialogParamA(hInstance,lpName,hWndParent,lpDialogFunc,0L)
2206 #define CreateDialogW(hInstance,lpName,hWndParent,lpDialogFunc) CreateDialogParamW(hInstance,lpName,hWndParent,lpDialogFunc,0L)
2207 #define CreateDialogIndirectA(hInstance,lpTemplate,hWndParent,lpDialogFunc) CreateDialogIndirectParamA(hInstance,lpTemplate,hWndParent,lpDialogFunc,0L)
2208 #define CreateDialogIndirectW(hInstance,lpTemplate,hWndParent,lpDialogFunc) CreateDialogIndirectParamW(hInstance,lpTemplate,hWndParent,lpDialogFunc,0L)
2209 WINUSERAPI INT_PTR WINAPI DialogBoxParamA(HINSTANCE hInstance,LPCSTR lpTemplateName,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
2210 WINUSERAPI INT_PTR WINAPI DialogBoxParamW(HINSTANCE hInstance,LPCWSTR lpTemplateName,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
2211 WINUSERAPI INT_PTR WINAPI DialogBoxIndirectParamA(HINSTANCE hInstance,LPCDLGTEMPLATEA hDialogTemplate,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
2212 WINUSERAPI INT_PTR WINAPI DialogBoxIndirectParamW(HINSTANCE hInstance,LPCDLGTEMPLATEW hDialogTemplate,HWND hWndParent,DLGPROC lpDialogFunc,LPARAM dwInitParam);
2213 #define DialogBoxA(hInstance,lpTemplate,hWndParent,lpDialogFunc) DialogBoxParamA(hInstance,lpTemplate,hWndParent,lpDialogFunc,0L)
2214 #define DialogBoxW(hInstance,lpTemplate,hWndParent,lpDialogFunc) DialogBoxParamW(hInstance,lpTemplate,hWndParent,lpDialogFunc,0L)
2215 #define DialogBoxIndirectA(hInstance,lpTemplate,hWndParent,lpDialogFunc) DialogBoxIndirectParamA(hInstance,lpTemplate,hWndParent,lpDialogFunc,0L)
2216 #define DialogBoxIndirectW(hInstance,lpTemplate,hWndParent,lpDialogFunc) DialogBoxIndirectParamW(hInstance,lpTemplate,hWndParent,lpDialogFunc,0L)
2217 WINUSERAPI WINBOOL WINAPI EndDialog(HWND hDlg,INT_PTR nResult);
2218 WINUSERAPI HWND WINAPI GetDlgItem(HWND hDlg,int nIDDlgItem);
2219 WINUSERAPI WINBOOL WINAPI SetDlgItemInt(HWND hDlg,int nIDDlgItem,UINT uValue,WINBOOL bSigned);
2220 WINUSERAPI UINT WINAPI GetDlgItemInt(HWND hDlg,int nIDDlgItem,WINBOOL *lpTranslated,WINBOOL bSigned);
2221 WINUSERAPI WINBOOL WINAPI SetDlgItemTextA(HWND hDlg,int nIDDlgItem,LPCSTR lpString);
2222 WINUSERAPI WINBOOL WINAPI SetDlgItemTextW(HWND hDlg,int nIDDlgItem,LPCWSTR lpString);
2223 WINUSERAPI UINT WINAPI GetDlgItemTextA(HWND hDlg,int nIDDlgItem,LPSTR lpString,int cchMax);
2224 WINUSERAPI UINT WINAPI GetDlgItemTextW(HWND hDlg,int nIDDlgItem,LPWSTR lpString,int cchMax);
2225 WINUSERAPI WINBOOL WINAPI CheckDlgButton(HWND hDlg,int nIDButton,UINT uCheck);
2226 WINUSERAPI WINBOOL WINAPI CheckRadioButton(HWND hDlg,int nIDFirstButton,int nIDLastButton,int nIDCheckButton);
2227 WINUSERAPI UINT WINAPI IsDlgButtonChecked(HWND hDlg,int nIDButton);
2228 WINUSERAPI LRESULT WINAPI SendDlgItemMessageA(HWND hDlg,int nIDDlgItem,UINT Msg,WPARAM wParam,LPARAM lParam);
2229 WINUSERAPI LRESULT WINAPI SendDlgItemMessageW(HWND hDlg,int nIDDlgItem,UINT Msg,WPARAM wParam,LPARAM lParam);
2230 WINUSERAPI HWND WINAPI GetNextDlgGroupItem(HWND hDlg,HWND hCtl,WINBOOL bPrevious);
2231 WINUSERAPI HWND WINAPI GetNextDlgTabItem(HWND hDlg,HWND hCtl,WINBOOL bPrevious);
2232 WINUSERAPI int WINAPI GetDlgCtrlID(HWND hWnd);
2233 WINUSERAPI long WINAPI GetDialogBaseUnits(VOID);
2234 WINUSERAPI LRESULT WINAPI DefDlgProcA(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam);
2235 WINUSERAPI LRESULT WINAPI DefDlgProcW(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam);
2236
2237 #define DLGWINDOWEXTRA 30
2238 #endif
2239
2240 #ifndef NOMSG
2241
2242 #ifdef UNICODE
2243 #define CallMsgFilter CallMsgFilterW
2244 #else
2245 #define CallMsgFilter CallMsgFilterA
2246 #endif
2247
2248 WINUSERAPI WINBOOL WINAPI CallMsgFilterA(LPMSG lpMsg,int nCode);
2249 WINUSERAPI WINBOOL WINAPI CallMsgFilterW(LPMSG lpMsg,int nCode);
2250 #endif
2251
2252 #ifndef NOCLIPBOARD
2253
2254 #ifdef UNICODE
2255 #define RegisterClipboardFormat RegisterClipboardFormatW
2256 #define GetClipboardFormatName GetClipboardFormatNameW
2257 #else
2258 #define RegisterClipboardFormat RegisterClipboardFormatA
2259 #define GetClipboardFormatName GetClipboardFormatNameA
2260 #endif
2261
2262 WINUSERAPI WINBOOL WINAPI OpenClipboard(HWND hWndNewOwner);
2263 WINUSERAPI WINBOOL WINAPI CloseClipboard(VOID);
2264 WINUSERAPI DWORD WINAPI GetClipboardSequenceNumber(VOID);
2265 WINUSERAPI HWND WINAPI GetClipboardOwner(VOID);
2266 WINUSERAPI HWND WINAPI SetClipboardViewer(HWND hWndNewViewer);
2267 WINUSERAPI HWND WINAPI GetClipboardViewer(VOID);
2268 WINUSERAPI WINBOOL WINAPI ChangeClipboardChain(HWND hWndRemove,HWND hWndNewNext);
2269 WINUSERAPI HANDLE WINAPI SetClipboardData(UINT uFormat,HANDLE hMem);
2270 WINUSERAPI HANDLE WINAPI GetClipboardData(UINT uFormat);
2271 WINUSERAPI UINT WINAPI RegisterClipboardFormatA(LPCSTR lpszFormat);
2272 WINUSERAPI UINT WINAPI RegisterClipboardFormatW(LPCWSTR lpszFormat);
2273 WINUSERAPI int WINAPI CountClipboardFormats(VOID);
2274 WINUSERAPI UINT WINAPI EnumClipboardFormats(UINT format);
2275 WINUSERAPI int WINAPI GetClipboardFormatNameA(UINT format,LPSTR lpszFormatName,int cchMaxCount);
2276 WINUSERAPI int WINAPI GetClipboardFormatNameW(UINT format,LPWSTR lpszFormatName,int cchMaxCount);
2277 WINUSERAPI WINBOOL WINAPI EmptyClipboard(VOID);
2278 WINUSERAPI WINBOOL WINAPI IsClipboardFormatAvailable(UINT format);
2279 WINUSERAPI int WINAPI GetPriorityClipboardFormat(UINT *paFormatPriorityList,int cFormats);
2280 WINUSERAPI HWND WINAPI GetOpenClipboardWindow(VOID);
2281 #endif
2282
2283 #ifdef UNICODE
2284 #define CharToOem CharToOemW
2285 #define OemToChar OemToCharW
2286 #define CharToOemBuff CharToOemBuffW
2287 #define OemToCharBuff OemToCharBuffW
2288 #define CharUpper CharUpperW
2289 #define CharUpperBuff CharUpperBuffW
2290 #define CharLower CharLowerW
2291 #define CharLowerBuff CharLowerBuffW
2292 #define CharNext CharNextW
2293 #define CharPrev CharPrevW
2294 #else
2295 #define CharToOem CharToOemA
2296 #define OemToChar OemToCharA
2297 #define CharToOemBuff CharToOemBuffA
2298 #define OemToCharBuff OemToCharBuffA
2299 #define CharUpper CharUpperA
2300 #define CharUpperBuff CharUpperBuffA
2301 #define CharLower CharLowerA
2302 #define CharLowerBuff CharLowerBuffA
2303 #define CharNext CharNextA
2304 #define CharPrev CharPrevA
2305 #endif
2306
2307 WINUSERAPI WINBOOL WINAPI CharToOemA(LPCSTR lpszSrc,LPSTR lpszDst);
2308 WINUSERAPI WINBOOL WINAPI CharToOemW(LPCWSTR lpszSrc,LPSTR lpszDst);
2309 WINUSERAPI WINBOOL WINAPI OemToCharA(LPCSTR lpszSrc,LPSTR lpszDst);
2310 WINUSERAPI WINBOOL WINAPI OemToCharW(LPCSTR lpszSrc,LPWSTR lpszDst);
2311 WINUSERAPI WINBOOL WINAPI CharToOemBuffA(LPCSTR lpszSrc,LPSTR lpszDst,DWORD cchDstLength);
2312 WINUSERAPI WINBOOL WINAPI CharToOemBuffW(LPCWSTR lpszSrc,LPSTR lpszDst,DWORD cchDstLength);
2313 WINUSERAPI WINBOOL WINAPI OemToCharBuffA(LPCSTR lpszSrc,LPSTR lpszDst,DWORD cchDstLength);
2314 WINUSERAPI WINBOOL WINAPI OemToCharBuffW(LPCSTR lpszSrc,LPWSTR lpszDst,DWORD cchDstLength);
2315 WINUSERAPI LPSTR WINAPI CharUpperA(LPSTR lpsz);
2316 WINUSERAPI LPWSTR WINAPI CharUpperW(LPWSTR lpsz);
2317 WINUSERAPI DWORD WINAPI CharUpperBuffA(LPSTR lpsz,DWORD cchLength);
2318 WINUSERAPI DWORD WINAPI CharUpperBuffW(LPWSTR lpsz,DWORD cchLength);
2319 WINUSERAPI LPSTR WINAPI CharLowerA(LPSTR lpsz);
2320 WINUSERAPI LPWSTR WINAPI CharLowerW(LPWSTR lpsz);
2321 WINUSERAPI DWORD WINAPI CharLowerBuffA(LPSTR lpsz,DWORD cchLength);
2322 WINUSERAPI DWORD WINAPI CharLowerBuffW(LPWSTR lpsz,DWORD cchLength);
2323 WINUSERAPI LPSTR WINAPI CharNextA(LPCSTR lpsz);
2324 WINUSERAPI LPWSTR WINAPI CharNextW(LPCWSTR lpsz);
2325 WINUSERAPI LPSTR WINAPI CharPrevA(LPCSTR lpszStart,LPCSTR lpszCurrent);
2326 WINUSERAPI LPWSTR WINAPI CharPrevW(LPCWSTR lpszStart,LPCWSTR lpszCurrent);
2327 WINUSERAPI LPSTR WINAPI CharNextExA(WORD CodePage,LPCSTR lpCurrentChar,DWORD dwFlags);
2328 WINUSERAPI LPSTR WINAPI CharPrevExA(WORD CodePage,LPCSTR lpStart,LPCSTR lpCurrentChar,DWORD dwFlags);
2329
2330 #define AnsiToOem CharToOemA
2331 #define OemToAnsi OemToCharA
2332 #define AnsiToOemBuff CharToOemBuffA
2333 #define OemToAnsiBuff OemToCharBuffA
2334 #define AnsiUpper CharUpperA
2335 #define AnsiUpperBuff CharUpperBuffA
2336 #define AnsiLower CharLowerA
2337 #define AnsiLowerBuff CharLowerBuffA
2338 #define AnsiNext CharNextA
2339 #define AnsiPrev CharPrevA
2340
2341 #ifndef NOLANGUAGE
2342
2343 #ifdef UNICODE
2344 #define IsCharAlpha IsCharAlphaW
2345 #define IsCharAlphaNumeric IsCharAlphaNumericW
2346 #define IsCharUpper IsCharUpperW
2347 #define IsCharLower IsCharLowerW
2348 #else
2349 #define IsCharAlpha IsCharAlphaA
2350 #define IsCharAlphaNumeric IsCharAlphaNumericA
2351 #define IsCharUpper IsCharUpperA
2352 #define IsCharLower IsCharLowerA
2353 #endif
2354
2355 WINUSERAPI WINBOOL WINAPI IsCharAlphaA(CHAR ch);
2356 WINUSERAPI WINBOOL WINAPI IsCharAlphaW(WCHAR ch);
2357 WINUSERAPI WINBOOL WINAPI IsCharAlphaNumericA(CHAR ch);
2358 WINUSERAPI WINBOOL WINAPI IsCharAlphaNumericW(WCHAR ch);
2359 WINUSERAPI WINBOOL WINAPI IsCharUpperA(CHAR ch);
2360 WINUSERAPI WINBOOL WINAPI IsCharUpperW(WCHAR ch);
2361 WINUSERAPI WINBOOL WINAPI IsCharLowerA(CHAR ch);
2362 WINUSERAPI WINBOOL WINAPI IsCharLowerW(WCHAR ch);
2363 #endif
2364
2365 #ifdef UNICODE
2366 #define GetKeyNameText GetKeyNameTextW
2367 #define VkKeyScan VkKeyScanW
2368 #define VkKeyScanEx VkKeyScanExW
2369 #else
2370 #define GetKeyNameText GetKeyNameTextA
2371 #define VkKeyScan VkKeyScanA
2372 #define VkKeyScanEx VkKeyScanExA
2373 #endif
2374
2375 WINUSERAPI HWND WINAPI SetFocus(HWND hWnd);
2376 WINUSERAPI HWND WINAPI GetActiveWindow(VOID);
2377 WINUSERAPI HWND WINAPI GetFocus(VOID);
2378 WINUSERAPI UINT WINAPI GetKBCodePage(VOID);
2379 WINUSERAPI SHORT WINAPI GetKeyState(int nVirtKey);
2380 WINUSERAPI SHORT WINAPI GetAsyncKeyState(int vKey);
2381 WINUSERAPI WINBOOL WINAPI GetKeyboardState(PBYTE lpKeyState);
2382 WINUSERAPI WINBOOL WINAPI SetKeyboardState(LPBYTE lpKeyState);
2383 WINUSERAPI int WINAPI GetKeyNameTextA(LONG lParam,LPSTR lpString,int cchSize);
2384 WINUSERAPI int WINAPI GetKeyNameTextW(LONG lParam,LPWSTR lpString,int cchSize);
2385 WINUSERAPI int WINAPI GetKeyboardType(int nTypeFlag);
2386 WINUSERAPI int WINAPI ToAscii(UINT uVirtKey,UINT uScanCode,CONST BYTE *lpKeyState,LPWORD lpChar,UINT uFlags);
2387 WINUSERAPI int WINAPI ToAsciiEx(UINT uVirtKey,UINT uScanCode,CONST BYTE *lpKeyState,LPWORD lpChar,UINT uFlags,HKL dwhkl);
2388 WINUSERAPI int WINAPI ToUnicode(UINT wVirtKey,UINT wScanCode,CONST BYTE *lpKeyState,LPWSTR pwszBuff,int cchBuff,UINT wFlags);
2389 WINUSERAPI DWORD WINAPI OemKeyScan(WORD wOemChar);
2390 WINUSERAPI SHORT WINAPI VkKeyScanA(CHAR ch);
2391 WINUSERAPI SHORT WINAPI VkKeyScanW(WCHAR ch);
2392 WINUSERAPI SHORT WINAPI VkKeyScanExA(CHAR ch,HKL dwhkl);
2393 WINUSERAPI SHORT WINAPI VkKeyScanExW(WCHAR ch,HKL dwhkl);
2394
2395 #define KEYEVENTF_EXTENDEDKEY 0x0001
2396 #define KEYEVENTF_KEYUP 0x0002
2397 #define KEYEVENTF_UNICODE 0x0004
2398 #define KEYEVENTF_SCANCODE 0x0008
2399
2400 WINUSERAPI VOID WINAPI keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,ULONG_PTR dwExtraInfo);
2401
2402 #define MOUSEEVENTF_MOVE 0x0001
2403 #define MOUSEEVENTF_LEFTDOWN 0x0002
2404 #define MOUSEEVENTF_LEFTUP 0x0004
2405 #define MOUSEEVENTF_RIGHTDOWN 0x0008
2406 #define MOUSEEVENTF_RIGHTUP 0x0010
2407 #define MOUSEEVENTF_MIDDLEDOWN 0x0020
2408 #define MOUSEEVENTF_MIDDLEUP 0x0040
2409 #define MOUSEEVENTF_XDOWN 0x0080
2410 #define MOUSEEVENTF_XUP 0x0100
2411 #define MOUSEEVENTF_WHEEL 0x0800
2412 #define MOUSEEVENTF_VIRTUALDESK 0x4000
2413 #define MOUSEEVENTF_ABSOLUTE 0x8000
2414
2415 WINUSERAPI VOID WINAPI mouse_event(DWORD dwFlags,DWORD dx,DWORD dy,DWORD dwData,ULONG_PTR dwExtraInfo);
2416
2417 typedef struct tagMOUSEINPUT {
2418 LONG dx;
2419 LONG dy;
2420 DWORD mouseData;
2421 DWORD dwFlags;
2422 DWORD time;
2423 ULONG_PTR dwExtraInfo;
2424 } MOUSEINPUT,*PMOUSEINPUT,*LPMOUSEINPUT;
2425
2426 typedef struct tagKEYBDINPUT {
2427 WORD wVk;
2428 WORD wScan;
2429 DWORD dwFlags;
2430 DWORD time;
2431 ULONG_PTR dwExtraInfo;
2432 } KEYBDINPUT,*PKEYBDINPUT,*LPKEYBDINPUT;
2433
2434 typedef struct tagHARDWAREINPUT {
2435 DWORD uMsg;
2436 WORD wParamL;
2437 WORD wParamH;
2438 } HARDWAREINPUT,*PHARDWAREINPUT,*LPHARDWAREINPUT;
2439
2440 #define INPUT_MOUSE 0
2441 #define INPUT_KEYBOARD 1
2442 #define INPUT_HARDWARE 2
2443
2444 typedef struct tagINPUT {
2445 DWORD type;
2446 union {
2447 MOUSEINPUT mi;
2448 KEYBDINPUT ki;
2449 HARDWAREINPUT hi;
2450 };
2451 } INPUT,*PINPUT,*LPINPUT;
2452
2453 WINUSERAPI UINT WINAPI SendInput(UINT cInputs,LPINPUT pInputs,int cbSize);
2454
2455 typedef struct tagLASTINPUTINFO {
2456 UINT cbSize;
2457 DWORD dwTime;
2458 } LASTINPUTINFO,*PLASTINPUTINFO;
2459
2460 #ifdef UNICODE
2461 #define MapVirtualKey MapVirtualKeyW
2462 #define MapVirtualKeyEx MapVirtualKeyExW
2463 #else
2464 #define MapVirtualKey MapVirtualKeyA
2465 #define MapVirtualKeyEx MapVirtualKeyExA
2466 #endif
2467
2468 WINUSERAPI WINBOOL WINAPI GetLastInputInfo(PLASTINPUTINFO plii);
2469 WINUSERAPI UINT WINAPI MapVirtualKeyA(UINT uCode,UINT uMapType);
2470 WINUSERAPI UINT WINAPI MapVirtualKeyW(UINT uCode,UINT uMapType);
2471 WINUSERAPI UINT WINAPI MapVirtualKeyExA(UINT uCode,UINT uMapType,HKL dwhkl);
2472 WINUSERAPI UINT WINAPI MapVirtualKeyExW(UINT uCode,UINT uMapType,HKL dwhkl);
2473 WINUSERAPI WINBOOL WINAPI GetInputState(VOID);
2474 WINUSERAPI DWORD WINAPI GetQueueStatus(UINT flags);
2475 WINUSERAPI HWND WINAPI GetCapture(VOID);
2476 WINUSERAPI HWND WINAPI SetCapture(HWND hWnd);
2477 WINUSERAPI WINBOOL WINAPI ReleaseCapture(VOID);
2478 WINUSERAPI DWORD WINAPI MsgWaitForMultipleObjects(DWORD nCount,CONST HANDLE *pHandles,WINBOOL fWaitAll,DWORD dwMilliseconds,DWORD dwWakeMask);
2479 WINUSERAPI DWORD WINAPI MsgWaitForMultipleObjectsEx(DWORD nCount,CONST HANDLE *pHandles,DWORD dwMilliseconds,DWORD dwWakeMask,DWORD dwFlags);
2480
2481 #define MWMO_WAITALL 0x0001
2482 #define MWMO_ALERTABLE 0x0002
2483 #define MWMO_INPUTAVAILABLE 0x0004
2484
2485 #define QS_KEY 0x0001
2486 #define QS_MOUSEMOVE 0x0002
2487 #define QS_MOUSEBUTTON 0x0004
2488 #define QS_POSTMESSAGE 0x0008
2489 #define QS_TIMER 0x0010
2490 #define QS_PAINT 0x0020
2491 #define QS_SENDMESSAGE 0x0040
2492 #define QS_HOTKEY 0x0080
2493 #define QS_ALLPOSTMESSAGE 0x0100
2494 #define QS_RAWINPUT 0x0400
2495 #define QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON)
2496 #define QS_INPUT (QS_MOUSE | QS_KEY | QS_RAWINPUT)
2497 #define QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY)
2498 #define QS_ALLINPUT (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE)
2499
2500 #define USER_TIMER_MAXIMUM 0x7FFFFFFF
2501 #define USER_TIMER_MINIMUM 0x0000000A
2502
2503 #ifdef UNICODE
2504 #define LoadAccelerators LoadAcceleratorsW
2505 #define CreateAcceleratorTable CreateAcceleratorTableW
2506 #define CopyAcceleratorTable CopyAcceleratorTableW
2507 #else
2508 #define LoadAccelerators LoadAcceleratorsA
2509 #define CreateAcceleratorTable CreateAcceleratorTableA
2510 #define CopyAcceleratorTable CopyAcceleratorTableA
2511 #endif
2512
2513 WINUSERAPI UINT_PTR WINAPI SetTimer(HWND hWnd,UINT_PTR nIDEvent,UINT uElapse,TIMERPROC lpTimerFunc);
2514 WINUSERAPI WINBOOL WINAPI KillTimer(HWND hWnd,UINT_PTR uIDEvent);
2515 WINUSERAPI WINBOOL WINAPI IsWindowUnicode(HWND hWnd);
2516 WINUSERAPI WINBOOL WINAPI EnableWindow(HWND hWnd,WINBOOL bEnable);
2517 WINUSERAPI WINBOOL WINAPI IsWindowEnabled(HWND hWnd);
2518 WINUSERAPI HACCEL WINAPI LoadAcceleratorsA(HINSTANCE hInstance,LPCSTR lpTableName);
2519 WINUSERAPI HACCEL WINAPI LoadAcceleratorsW(HINSTANCE hInstance,LPCWSTR lpTableName);
2520 WINUSERAPI HACCEL WINAPI CreateAcceleratorTableA(LPACCEL paccel,int cAccel);
2521 WINUSERAPI HACCEL WINAPI CreateAcceleratorTableW(LPACCEL paccel,int cAccel);
2522 WINUSERAPI WINBOOL WINAPI DestroyAcceleratorTable(HACCEL hAccel);
2523 WINUSERAPI int WINAPI CopyAcceleratorTableA(HACCEL hAccelSrc,LPACCEL lpAccelDst,int cAccelEntries);
2524 WINUSERAPI int WINAPI CopyAcceleratorTableW(HACCEL hAccelSrc,LPACCEL lpAccelDst,int cAccelEntries);
2525
2526 #ifndef NOMSG
2527
2528 #ifdef UNICODE
2529 #define TranslateAccelerator TranslateAcceleratorW
2530 #else
2531 #define TranslateAccelerator TranslateAcceleratorA
2532 #endif
2533
2534 WINUSERAPI int WINAPI TranslateAcceleratorA(HWND hWnd,HACCEL hAccTable,LPMSG lpMsg);
2535 WINUSERAPI int WINAPI TranslateAcceleratorW(HWND hWnd,HACCEL hAccTable,LPMSG lpMsg);
2536 #endif
2537
2538 #ifndef NOSYSMETRICS
2539
2540 #define SM_CXSCREEN 0
2541 #define SM_CYSCREEN 1
2542 #define SM_CXVSCROLL 2
2543 #define SM_CYHSCROLL 3
2544 #define SM_CYCAPTION 4
2545 #define SM_CXBORDER 5
2546 #define SM_CYBORDER 6
2547 #define SM_CXDLGFRAME 7
2548 #define SM_CYDLGFRAME 8
2549 #define SM_CYVTHUMB 9
2550 #define SM_CXHTHUMB 10
2551 #define SM_CXICON 11
2552 #define SM_CYICON 12
2553 #define SM_CXCURSOR 13
2554 #define SM_CYCURSOR 14
2555 #define SM_CYMENU 15
2556 #define SM_CXFULLSCREEN 16
2557 #define SM_CYFULLSCREEN 17
2558 #define SM_CYKANJIWINDOW 18
2559 #define SM_MOUSEPRESENT 19
2560 #define SM_CYVSCROLL 20
2561 #define SM_CXHSCROLL 21
2562 #define SM_DEBUG 22
2563 #define SM_SWAPBUTTON 23
2564 #define SM_RESERVED1 24
2565 #define SM_RESERVED2 25
2566 #define SM_RESERVED3 26
2567 #define SM_RESERVED4 27
2568 #define SM_CXMIN 28
2569 #define SM_CYMIN 29
2570 #define SM_CXSIZE 30
2571 #define SM_CYSIZE 31
2572 #define SM_CXFRAME 32
2573 #define SM_CYFRAME 33
2574 #define SM_CXMINTRACK 34
2575 #define SM_CYMINTRACK 35
2576 #define SM_CXDOUBLECLK 36
2577 #define SM_CYDOUBLECLK 37
2578 #define SM_CXICONSPACING 38
2579 #define SM_CYICONSPACING 39
2580 #define SM_MENUDROPALIGNMENT 40
2581 #define SM_PENWINDOWS 41
2582 #define SM_DBCSENABLED 42
2583 #define SM_CMOUSEBUTTONS 43
2584
2585 #define SM_CXFIXEDFRAME SM_CXDLGFRAME
2586 #define SM_CYFIXEDFRAME SM_CYDLGFRAME
2587 #define SM_CXSIZEFRAME SM_CXFRAME
2588 #define SM_CYSIZEFRAME SM_CYFRAME
2589
2590 #define SM_SECURE 44
2591 #define SM_CXEDGE 45
2592 #define SM_CYEDGE 46
2593 #define SM_CXMINSPACING 47
2594 #define SM_CYMINSPACING 48
2595 #define SM_CXSMICON 49
2596 #define SM_CYSMICON 50
2597 #define SM_CYSMCAPTION 51
2598 #define SM_CXSMSIZE 52
2599 #define SM_CYSMSIZE 53
2600 #define SM_CXMENUSIZE 54
2601 #define SM_CYMENUSIZE 55
2602 #define SM_ARRANGE 56
2603 #define SM_CXMINIMIZED 57
2604 #define SM_CYMINIMIZED 58
2605 #define SM_CXMAXTRACK 59
2606 #define SM_CYMAXTRACK 60
2607 #define SM_CXMAXIMIZED 61
2608 #define SM_CYMAXIMIZED 62
2609 #define SM_NETWORK 63
2610 #define SM_CLEANBOOT 67
2611 #define SM_CXDRAG 68
2612 #define SM_CYDRAG 69
2613 #define SM_SHOWSOUNDS 70
2614 #define SM_CXMENUCHECK 71
2615 #define SM_CYMENUCHECK 72
2616 #define SM_SLOWMACHINE 73
2617 #define SM_MIDEASTENABLED 74
2618 #define SM_MOUSEWHEELPRESENT 75
2619 #define SM_XVIRTUALSCREEN 76
2620 #define SM_YVIRTUALSCREEN 77
2621 #define SM_CXVIRTUALSCREEN 78
2622 #define SM_CYVIRTUALSCREEN 79
2623 #define SM_CMONITORS 80
2624 #define SM_SAMEDISPLAYFORMAT 81
2625 #define SM_IMMENABLED 82
2626 #define SM_CXFOCUSBORDER 83
2627 #define SM_CYFOCUSBORDER 84
2628 #define SM_TABLETPC 86
2629 #define SM_MEDIACENTER 87
2630 #define SM_STARTER 88
2631 #define SM_SERVERR2 89
2632 #define SM_CMETRICS 90
2633 #define SM_REMOTESESSION 0x1000
2634 #define SM_SHUTTINGDOWN 0x2000
2635 #define SM_REMOTECONTROL 0x2001
2636 #define SM_CARETBLINKINGENABLED 0x2002
2637
2638 WINUSERAPI int WINAPI GetSystemMetrics(int nIndex);
2639 #endif
2640
2641 #ifndef NOMENUS
2642
2643 #ifdef UNICODE
2644 #define LoadMenu LoadMenuW
2645 #define LoadMenuIndirect LoadMenuIndirectW
2646 #define ChangeMenu ChangeMenuW
2647 #define GetMenuString GetMenuStringW
2648 #define InsertMenu InsertMenuW
2649 #define AppendMenu AppendMenuW
2650 #define ModifyMenu ModifyMenuW
2651 #else
2652 #define LoadMenu LoadMenuA
2653 #define LoadMenuIndirect LoadMenuIndirectA
2654 #define ChangeMenu ChangeMenuA
2655 #define GetMenuString GetMenuStringA
2656 #define InsertMenu InsertMenuA
2657 #define AppendMenu AppendMenuA
2658 #define ModifyMenu ModifyMenuA
2659 #endif
2660
2661 WINUSERAPI HMENU WINAPI LoadMenuA(HINSTANCE hInstance,LPCSTR lpMenuName);
2662 WINUSERAPI HMENU WINAPI LoadMenuW(HINSTANCE hInstance,LPCWSTR lpMenuName);
2663 WINUSERAPI HMENU WINAPI LoadMenuIndirectA(CONST MENUTEMPLATEA *lpMenuTemplate);
2664 WINUSERAPI HMENU WINAPI LoadMenuIndirectW(CONST MENUTEMPLATEW *lpMenuTemplate);
2665 WINUSERAPI HMENU WINAPI GetMenu(HWND hWnd);
2666 WINUSERAPI WINBOOL WINAPI SetMenu(HWND hWnd,HMENU hMenu);
2667 WINUSERAPI WINBOOL WINAPI ChangeMenuA(HMENU hMenu,UINT cmd,LPCSTR lpszNewItem,UINT cmdInsert,UINT flags);
2668 WINUSERAPI WINBOOL WINAPI ChangeMenuW(HMENU hMenu,UINT cmd,LPCWSTR lpszNewItem,UINT cmdInsert,UINT flags);
2669 WINUSERAPI WINBOOL WINAPI HiliteMenuItem(HWND hWnd,HMENU hMenu,UINT uIDHiliteItem,UINT uHilite);
2670 WINUSERAPI int WINAPI GetMenuStringA(HMENU hMenu,UINT uIDItem,LPSTR lpString,int cchMax,UINT flags);
2671 WINUSERAPI int WINAPI GetMenuStringW(HMENU hMenu,UINT uIDItem,LPWSTR lpString,int cchMax,UINT flags);
2672 WINUSERAPI UINT WINAPI GetMenuState(HMENU hMenu,UINT uId,UINT uFlags);
2673 WINUSERAPI WINBOOL WINAPI DrawMenuBar(HWND hWnd);
2674
2675 #define PMB_ACTIVE 0x00000001
2676
2677 WINUSERAPI HMENU WINAPI GetSystemMenu(HWND hWnd,WINBOOL bRevert);
2678 WINUSERAPI HMENU WINAPI CreateMenu(VOID);
2679 WINUSERAPI HMENU WINAPI CreatePopupMenu(VOID);
2680 WINUSERAPI WINBOOL WINAPI DestroyMenu(HMENU hMenu);
2681 WINUSERAPI DWORD WINAPI CheckMenuItem(HMENU hMenu,UINT uIDCheckItem,UINT uCheck);
2682 WINUSERAPI WINBOOL WINAPI EnableMenuItem(HMENU hMenu,UINT uIDEnableItem,UINT uEnable);
2683 WINUSERAPI HMENU WINAPI GetSubMenu(HMENU hMenu,int nPos);
2684 WINUSERAPI UINT WINAPI GetMenuItemID(HMENU hMenu,int nPos);
2685 WINUSERAPI int WINAPI GetMenuItemCount(HMENU hMenu);
2686 WINUSERAPI WINBOOL WINAPI InsertMenuA(HMENU hMenu,UINT uPosition,UINT uFlags,UINT_PTR uIDNewItem,LPCSTR lpNewItem);
2687 WINUSERAPI WINBOOL WINAPI InsertMenuW(HMENU hMenu,UINT uPosition,UINT uFlags,UINT_PTR uIDNewItem,LPCWSTR lpNewItem);
2688 WINUSERAPI WINBOOL WINAPI AppendMenuA(HMENU hMenu,UINT uFlags,UINT_PTR uIDNewItem,LPCSTR lpNewItem);
2689 WINUSERAPI WINBOOL WINAPI AppendMenuW(HMENU hMenu,UINT uFlags,UINT_PTR uIDNewItem,LPCWSTR lpNewItem);
2690 WINUSERAPI WINBOOL WINAPI ModifyMenuA(HMENU hMnu,UINT uPosition,UINT uFlags,UINT_PTR uIDNewItem,LPCSTR lpNewItem);
2691 WINUSERAPI WINBOOL WINAPI ModifyMenuW(HMENU hMnu,UINT uPosition,UINT uFlags,UINT_PTR uIDNewItem,LPCWSTR lpNewItem);
2692 WINUSERAPI WINBOOL WINAPI RemoveMenu(HMENU hMenu,UINT uPosition,UINT uFlags);
2693 WINUSERAPI WINBOOL WINAPI DeleteMenu(HMENU hMenu,UINT uPosition,UINT uFlags);
2694 WINUSERAPI WINBOOL WINAPI SetMenuItemBitmaps(HMENU hMenu,UINT uPosition,UINT uFlags,HBITMAP hBitmapUnchecked,HBITMAP hBitmapChecked);
2695 WINUSERAPI LONG WINAPI GetMenuCheckMarkDimensions(VOID);
2696 WINUSERAPI WINBOOL WINAPI TrackPopupMenu(HMENU hMenu,UINT uFlags,int x,int y,int nReserved,HWND hWnd,CONST RECT *prcRect);
2697
2698 #define MNC_IGNORE 0
2699 #define MNC_CLOSE 1
2700 #define MNC_EXECUTE 2
2701 #define MNC_SELECT 3
2702
2703 typedef struct tagTPMPARAMS {
2704 UINT cbSize;
2705 RECT rcExclude;
2706 } TPMPARAMS;
2707
2708 typedef TPMPARAMS *LPTPMPARAMS;
2709
2710 WINUSERAPI WINBOOL WINAPI TrackPopupMenuEx(HMENU,UINT,int,int,HWND,LPTPMPARAMS);
2711
2712 #define MNS_NOCHECK 0x80000000
2713 #define MNS_MODELESS 0x40000000
2714 #define MNS_DRAGDROP 0x20000000
2715 #define MNS_AUTODISMISS 0x10000000
2716 #define MNS_NOTIFYBYPOS 0x08000000
2717 #define MNS_CHECKORBMP 0x04000000
2718
2719 #define MIM_MAXHEIGHT 0x00000001
2720 #define MIM_BACKGROUND 0x00000002
2721 #define MIM_HELPID 0x00000004
2722 #define MIM_MENUDATA 0x00000008
2723 #define MIM_STYLE 0x00000010
2724 #define MIM_APPLYTOSUBMENUS 0x80000000
2725
2726 typedef struct tagMENUINFO {
2727 DWORD cbSize;
2728 DWORD fMask;
2729 DWORD dwStyle;
2730 UINT cyMax;
2731 HBRUSH hbrBack;
2732 DWORD dwContextHelpID;
2733 ULONG_PTR dwMenuData;
2734 } MENUINFO,*LPMENUINFO;
2735
2736 typedef MENUINFO CONST *LPCMENUINFO;
2737
2738 WINUSERAPI WINBOOL WINAPI GetMenuInfo(HMENU,LPMENUINFO);
2739 WINUSERAPI WINBOOL WINAPI SetMenuInfo(HMENU,LPCMENUINFO);
2740 WINUSERAPI WINBOOL WINAPI EndMenu(VOID);
2741
2742 #define MND_CONTINUE 0
2743 #define MND_ENDMENU 1
2744
2745 typedef struct tagMENUGETOBJECTINFO {
2746 DWORD dwFlags;
2747 UINT uPos;
2748 HMENU hmenu;
2749 PVOID riid;
2750 PVOID pvObj;
2751 } MENUGETOBJECTINFO,*PMENUGETOBJECTINFO;
2752
2753 #define MNGOF_TOPGAP 0x00000001
2754 #define MNGOF_BOTTOMGAP 0x00000002
2755
2756 #define MNGO_NOINTERFACE 0x00000000
2757 #define MNGO_NOERROR 0x00000001
2758
2759 #define MIIM_STATE 0x00000001
2760 #define MIIM_ID 0x00000002
2761 #define MIIM_SUBMENU 0x00000004
2762 #define MIIM_CHECKMARKS 0x00000008
2763 #define MIIM_TYPE 0x00000010
2764 #define MIIM_DATA 0x00000020
2765
2766 #define MIIM_STRING 0x00000040
2767 #define MIIM_BITMAP 0x00000080
2768 #define MIIM_FTYPE 0x00000100
2769
2770 #define HBMMENU_CALLBACK ((HBITMAP) -1)
2771 #define HBMMENU_SYSTEM ((HBITMAP) 1)
2772 #define HBMMENU_MBAR_RESTORE ((HBITMAP) 2)
2773 #define HBMMENU_MBAR_MINIMIZE ((HBITMAP) 3)
2774 #define HBMMENU_MBAR_CLOSE ((HBITMAP) 5)
2775 #define HBMMENU_MBAR_CLOSE_D ((HBITMAP) 6)
2776 #define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP) 7)
2777 #define HBMMENU_POPUP_CLOSE ((HBITMAP) 8)
2778 #define HBMMENU_POPUP_RESTORE ((HBITMAP) 9)
2779 #define HBMMENU_POPUP_MAXIMIZE ((HBITMAP) 10)
2780 #define HBMMENU_POPUP_MINIMIZE ((HBITMAP) 11)
2781
2782 typedef struct tagMENUITEMINFOA {
2783 UINT cbSize;
2784 UINT fMask;
2785 UINT fType;
2786 UINT fState;
2787 UINT wID;
2788 HMENU hSubMenu;
2789 HBITMAP hbmpChecked;
2790 HBITMAP hbmpUnchecked;
2791 ULONG_PTR dwItemData;
2792 LPSTR dwTypeData;
2793 UINT cch;
2794 HBITMAP hbmpItem;
2795 } MENUITEMINFOA,*LPMENUITEMINFOA;
2796
2797 typedef struct tagMENUITEMINFOW {
2798 UINT cbSize;
2799 UINT fMask;
2800 UINT fType;
2801 UINT fState;
2802 UINT wID;
2803 HMENU hSubMenu;
2804 HBITMAP hbmpChecked;
2805 HBITMAP hbmpUnchecked;
2806 ULONG_PTR dwItemData;
2807 LPWSTR dwTypeData;
2808 UINT cch;
2809 HBITMAP hbmpItem;
2810 } MENUITEMINFOW,*LPMENUITEMINFOW;
2811
2812 #ifdef UNICODE
2813 typedef MENUITEMINFOW MENUITEMINFO;
2814 typedef LPMENUITEMINFOW LPMENUITEMINFO;
2815 #else
2816 typedef MENUITEMINFOA MENUITEMINFO;
2817 typedef LPMENUITEMINFOA LPMENUITEMINFO;
2818 #endif
2819 typedef MENUITEMINFOA CONST *LPCMENUITEMINFOA;
2820 typedef MENUITEMINFOW CONST *LPCMENUITEMINFOW;
2821 #ifdef UNICODE
2822 typedef LPCMENUITEMINFOW LPCMENUITEMINFO;
2823 #else
2824 typedef LPCMENUITEMINFOA LPCMENUITEMINFO;
2825 #endif
2826
2827 #ifdef UNICODE
2828 #define InsertMenuItem InsertMenuItemW
2829 #define GetMenuItemInfo GetMenuItemInfoW
2830 #define SetMenuItemInfo SetMenuItemInfoW
2831 #else
2832 #define InsertMenuItem InsertMenuItemA
2833 #define GetMenuItemInfo GetMenuItemInfoA
2834 #define SetMenuItemInfo SetMenuItemInfoA
2835 #endif
2836
2837 WINUSERAPI WINBOOL WINAPI InsertMenuItemA(HMENU hmenu,UINT item,WINBOOL fByPosition,LPCMENUITEMINFOA lpmi);
2838 WINUSERAPI WINBOOL WINAPI InsertMenuItemW(HMENU hmenu,UINT item,WINBOOL fByPosition,LPCMENUITEMINFOW lpmi);
2839 WINUSERAPI WINBOOL WINAPI GetMenuItemInfoA(HMENU hmenu,UINT item,WINBOOL fByPosition,LPMENUITEMINFOA lpmii);
2840 WINUSERAPI WINBOOL WINAPI GetMenuItemInfoW(HMENU hmenu,UINT item,WINBOOL fByPosition,LPMENUITEMINFOW lpmii);
2841 WINUSERAPI WINBOOL WINAPI SetMenuItemInfoA(HMENU hmenu,UINT item,WINBOOL fByPositon,LPCMENUITEMINFOA lpmii);
2842 WINUSERAPI WINBOOL WINAPI SetMenuItemInfoW(HMENU hmenu,UINT item,WINBOOL fByPositon,LPCMENUITEMINFOW lpmii);
2843
2844 #define GMDI_USEDISABLED 0x0001L
2845 #define GMDI_GOINTOPOPUPS 0x0002L
2846
2847 WINUSERAPI UINT WINAPI GetMenuDefaultItem(HMENU hMenu,UINT fByPos,UINT gmdiFlags);
2848 WINUSERAPI WINBOOL WINAPI SetMenuDefaultItem(HMENU hMenu,UINT uItem,UINT fByPos);
2849 WINUSERAPI WINBOOL WINAPI GetMenuItemRect(HWND hWnd,HMENU hMenu,UINT uItem,LPRECT lprcItem);
2850 WINUSERAPI int WINAPI MenuItemFromPoint(HWND hWnd,HMENU hMenu,POINT ptScreen);
2851
2852 #define TPM_LEFTBUTTON 0x0000L
2853 #define TPM_RIGHTBUTTON 0x0002L
2854 #define TPM_LEFTALIGN 0x0000L
2855 #define TPM_CENTERALIGN 0x0004L
2856 #define TPM_RIGHTALIGN 0x0008L
2857 #define TPM_TOPALIGN 0x0000L
2858 #define TPM_VCENTERALIGN 0x0010L
2859 #define TPM_BOTTOMALIGN 0x0020L
2860
2861 #define TPM_HORIZONTAL 0x0000L
2862 #define TPM_VERTICAL 0x0040L
2863 #define TPM_NONOTIFY 0x0080L
2864 #define TPM_RETURNCMD 0x0100L
2865 #define TPM_RECURSE 0x0001L
2866 #define TPM_HORPOSANIMATION 0x0400L
2867 #define TPM_HORNEGANIMATION 0x0800L
2868 #define TPM_VERPOSANIMATION 0x1000L
2869 #define TPM_VERNEGANIMATION 0x2000L
2870 #define TPM_NOANIMATION 0x4000L
2871 #define TPM_LAYOUTRTL 0x8000L
2872 #endif
2873
2874 typedef struct tagDROPSTRUCT {
2875 HWND hwndSource;
2876 HWND hwndSink;
2877 DWORD wFmt;
2878 ULONG_PTR dwData;
2879 POINT ptDrop;
2880 DWORD dwControlData;
2881 } DROPSTRUCT,*PDROPSTRUCT,*LPDROPSTRUCT;
2882
2883 #define DOF_EXECUTABLE 0x8001
2884 #define DOF_DOCUMENT 0x8002
2885 #define DOF_DIRECTORY 0x8003
2886 #define DOF_MULTIPLE 0x8004
2887 #define DOF_PROGMAN 0x0001
2888 #define DOF_SHELLDATA 0x0002
2889
2890 #define DO_DROPFILE 0x454C4946L
2891 #define DO_PRINTFILE 0x544E5250L
2892
2893 WINUSERAPI DWORD WINAPI DragObject(HWND hwndParent,HWND hwndFrom,UINT fmt,ULONG_PTR data,HCURSOR hcur);
2894 WINUSERAPI WINBOOL WINAPI DragDetect(HWND hwnd,POINT pt);
2895 WINUSERAPI WINBOOL WINAPI DrawIcon(HDC hDC,int X,int Y,HICON hIcon);
2896
2897 #ifndef NODRAWTEXT
2898
2899 #define DT_TOP 0x00000000
2900 #define DT_LEFT 0x00000000
2901 #define DT_CENTER 0x00000001
2902 #define DT_RIGHT 0x00000002
2903 #define DT_VCENTER 0x00000004
2904 #define DT_BOTTOM 0x00000008
2905 #define DT_WORDBREAK 0x00000010
2906 #define DT_SINGLELINE 0x00000020
2907 #define DT_EXPANDTABS 0x00000040
2908 #define DT_TABSTOP 0x00000080
2909 #define DT_NOCLIP 0x00000100
2910 #define DT_EXTERNALLEADING 0x00000200
2911 #define DT_CALCRECT 0x00000400
2912 #define DT_NOPREFIX 0x00000800
2913 #define DT_INTERNAL 0x00001000
2914
2915 #define DT_EDITCONTROL 0x00002000
2916 #define DT_PATH_ELLIPSIS 0x00004000
2917 #define DT_END_ELLIPSIS 0x00008000
2918 #define DT_MODIFYSTRING 0x00010000
2919 #define DT_RTLREADING 0x00020000
2920 #define DT_WORD_ELLIPSIS 0x00040000
2921 #define DT_NOFULLWIDTHCHARBREAK 0x00080000
2922 #define DT_HIDEPREFIX 0x00100000
2923 #define DT_PREFIXONLY 0x00200000
2924
2925 typedef struct tagDRAWTEXTPARAMS {
2926 UINT cbSize;
2927 int iTabLength;
2928 int iLeftMargin;
2929 int iRightMargin;
2930 UINT uiLengthDrawn;
2931 } DRAWTEXTPARAMS,*LPDRAWTEXTPARAMS;
2932
2933 #ifdef UNICODE
2934 #define DrawText DrawTextW
2935 #define DrawTextEx DrawTextExW
2936 #else
2937 #define DrawText DrawTextA
2938 #define DrawTextEx DrawTextExA
2939 #endif
2940
2941 WINUSERAPI int WINAPI DrawTextA(HDC hdc,LPCSTR lpchText,int cchText,LPRECT lprc,UINT format);
2942 WINUSERAPI int WINAPI DrawTextW(HDC hdc,LPCWSTR lpchText,int cchText,LPRECT lprc,UINT format);
2943 WINUSERAPI int WINAPI DrawTextExA(HDC hdc,LPSTR lpchText,int cchText,LPRECT lprc,UINT format,LPDRAWTEXTPARAMS lpdtp);
2944 WINUSERAPI int WINAPI DrawTextExW(HDC hdc,LPWSTR lpchText,int cchText,LPRECT lprc,UINT format,LPDRAWTEXTPARAMS lpdtp);
2945 #endif
2946
2947 #ifdef UNICODE
2948 #define GrayString GrayStringW
2949 #define DrawState DrawStateW
2950 #define TabbedTextOut TabbedTextOutW
2951 #define GetTabbedTextExtent GetTabbedTextExtentW
2952 #else
2953 #define GrayString GrayStringA
2954 #define DrawState DrawStateA
2955 #define TabbedTextOut TabbedTextOutA
2956 #define GetTabbedTextExtent GetTabbedTextExtentA
2957 #endif
2958
2959 WINUSERAPI WINBOOL WINAPI GrayStringA(HDC hDC,HBRUSH hBrush,GRAYSTRINGPROC lpOutputFunc,LPARAM lpData,int nCount,int X,int Y,int nWidth,int nHeight);
2960 WINUSERAPI WINBOOL WINAPI GrayStringW(HDC hDC,HBRUSH hBrush,GRAYSTRINGPROC lpOutputFunc,LPARAM lpData,int nCount,int X,int Y,int nWidth,int nHeight);
2961
2962 #define DST_COMPLEX 0x0000
2963 #define DST_TEXT 0x0001
2964 #define DST_PREFIXTEXT 0x0002
2965 #define DST_ICON 0x0003
2966 #define DST_BITMAP 0x0004
2967
2968 #define DSS_NORMAL 0x0000
2969 #define DSS_UNION 0x0010
2970 #define DSS_DISABLED 0x0020
2971 #define DSS_MONO 0x0080
2972 #define DSS_HIDEPREFIX 0x0200
2973 #define DSS_PREFIXONLY 0x0400
2974 #define DSS_RIGHT 0x8000
2975
2976 WINUSERAPI WINBOOL WINAPI DrawStateA(HDC hdc,HBRUSH hbrFore,DRAWSTATEPROC qfnCallBack,LPARAM lData,WPARAM wData,int x,int y,int cx,int cy,UINT uFlags);
2977 WINUSERAPI WINBOOL WINAPI DrawStateW(HDC hdc,HBRUSH hbrFore,DRAWSTATEPROC qfnCallBack,LPARAM lData,WPARAM wData,int x,int y,int cx,int cy,UINT uFlags);
2978 WINUSERAPI LONG WINAPI TabbedTextOutA(HDC hdc,int x,int y,LPCSTR lpString,int chCount,int nTabPositions,CONST INT *lpnTabStopPositions,int nTabOrigin);
2979 WINUSERAPI LONG WINAPI TabbedTextOutW(HDC hdc,int x,int y,LPCWSTR lpString,int chCount,int nTabPositions,CONST INT *lpnTabStopPositions,int nTabOrigin);
2980 WINUSERAPI DWORD WINAPI GetTabbedTextExtentA(HDC hdc,LPCSTR lpString,int chCount,int nTabPositions,CONST INT *lpnTabStopPositions);
2981 WINUSERAPI DWORD WINAPI GetTabbedTextExtentW(HDC hdc,LPCWSTR lpString,int chCount,int nTabPositions,CONST INT *lpnTabStopPositions);
2982 WINUSERAPI WINBOOL WINAPI UpdateWindow(HWND hWnd);
2983 WINUSERAPI HWND WINAPI SetActiveWindow(HWND hWnd);
2984 WINUSERAPI HWND WINAPI GetForegroundWindow(VOID);
2985 WINUSERAPI WINBOOL WINAPI PaintDesktop(HDC hdc);
2986 WINUSERAPI VOID WINAPI SwitchToThisWindow(HWND hwnd,WINBOOL fUnknown);
2987 WINUSERAPI WINBOOL WINAPI SetForegroundWindow(HWND hWnd);
2988 WINUSERAPI WINBOOL WINAPI AllowSetForegroundWindow(DWORD dwProcessId);
2989
2990 #define ASFW_ANY ((DWORD)-1)
2991
2992 WINUSERAPI WINBOOL WINAPI LockSetForegroundWindow(UINT uLockCode);
2993
2994 #define LSFW_LOCK 1
2995 #define LSFW_UNLOCK 2
2996
2997 WINUSERAPI HWND WINAPI WindowFromDC(HDC hDC);
2998 WINUSERAPI HDC WINAPI GetDC(HWND hWnd);
2999 WINUSERAPI HDC WINAPI GetDCEx(HWND hWnd,HRGN hrgnClip,DWORD flags);
3000
3001 #define DCX_WINDOW 0x00000001L
3002 #define DCX_CACHE 0x00000002L
3003 #define DCX_NORESETATTRS 0x00000004L
3004 #define DCX_CLIPCHILDREN 0x00000008L
3005 #define DCX_CLIPSIBLINGS 0x00000010L
3006 #define DCX_PARENTCLIP 0x00000020L
3007 #define DCX_EXCLUDERGN 0x00000040L
3008 #define DCX_INTERSECTRGN 0x00000080L
3009 #define DCX_EXCLUDEUPDATE 0x00000100L
3010 #define DCX_INTERSECTUPDATE 0x00000200L
3011 #define DCX_LOCKWINDOWUPDATE 0x00000400L
3012
3013 #define DCX_VALIDATE 0x00200000L
3014
3015 WINUSERAPI HDC WINAPI GetWindowDC(HWND hWnd);
3016 WINUSERAPI int WINAPI ReleaseDC(HWND hWnd,HDC hDC);
3017 WINUSERAPI HDC WINAPI BeginPaint(HWND hWnd,LPPAINTSTRUCT lpPaint);
3018 WINUSERAPI WINBOOL WINAPI EndPaint(HWND hWnd,CONST PAINTSTRUCT *lpPaint);
3019 WINUSERAPI WINBOOL WINAPI GetUpdateRect(HWND hWnd,LPRECT lpRect,WINBOOL bErase);
3020 WINUSERAPI int WINAPI GetUpdateRgn(HWND hWnd,HRGN hRgn,WINBOOL bErase);
3021 WINUSERAPI int WINAPI SetWindowRgn(HWND hWnd,HRGN hRgn,WINBOOL bRedraw);
3022 WINUSERAPI int WINAPI GetWindowRgn(HWND hWnd,HRGN hRgn);
3023 WINUSERAPI int WINAPI GetWindowRgnBox(HWND hWnd,LPRECT lprc);
3024 WINUSERAPI int WINAPI ExcludeUpdateRgn(HDC hDC,HWND hWnd);
3025 WINUSERAPI WINBOOL WINAPI InvalidateRect(HWND hWnd,CONST RECT *lpRect,WINBOOL bErase);
3026 WINUSERAPI WINBOOL WINAPI ValidateRect(HWND hWnd,CONST RECT *lpRect);
3027 WINUSERAPI WINBOOL WINAPI InvalidateRgn(HWND hWnd,HRGN hRgn,WINBOOL bErase);
3028 WINUSERAPI WINBOOL WINAPI ValidateRgn(HWND hWnd,HRGN hRgn);
3029 WINUSERAPI WINBOOL WINAPI RedrawWindow(HWND hWnd,CONST RECT *lprcUpdate,HRGN hrgnUpdate,UINT flags);
3030
3031 #define RDW_INVALIDATE 0x0001
3032 #define RDW_INTERNALPAINT 0x0002
3033 #define RDW_ERASE 0x0004
3034
3035 #define RDW_VALIDATE 0x0008
3036 #define RDW_NOINTERNALPAINT 0x0010
3037 #define RDW_NOERASE 0x0020
3038
3039 #define RDW_NOCHILDREN 0x0040
3040 #define RDW_ALLCHILDREN 0x0080
3041
3042 #define RDW_UPDATENOW 0x0100
3043 #define RDW_ERASENOW 0x0200
3044
3045 #define RDW_FRAME 0x0400
3046 #define RDW_NOFRAME 0x0800
3047
3048 WINUSERAPI WINBOOL WINAPI LockWindowUpdate(HWND hWndLock);
3049 WINUSERAPI WINBOOL WINAPI ScrollWindow(HWND hWnd,int XAmount,int YAmount,CONST RECT *lpRect,CONST RECT *lpClipRect);
3050 WINUSERAPI WINBOOL WINAPI ScrollDC(HDC hDC,int dx,int dy,CONST RECT *lprcScroll,CONST RECT *lprcClip,HRGN hrgnUpdate,LPRECT lprcUpdate);
3051 WINUSERAPI int WINAPI ScrollWindowEx(HWND hWnd,int dx,int dy,CONST RECT *prcScroll,CONST RECT *prcClip,HRGN hrgnUpdate,LPRECT prcUpdate,UINT flags);
3052
3053 #define SW_SCROLLCHILDREN 0x0001
3054 #define SW_INVALIDATE 0x0002
3055 #define SW_ERASE 0x0004
3056 #define SW_SMOOTHSCROLL 0x0010
3057
3058 #ifndef NOSCROLL
3059 WINUSERAPI int WINAPI SetScrollPos(HWND hWnd,int nBar,int nPos,WINBOOL bRedraw);
3060 WINUSERAPI int WINAPI GetScrollPos(HWND hWnd,int nBar);
3061 WINUSERAPI WINBOOL WINAPI SetScrollRange(HWND hWnd,int nBar,int nMinPos,int nMaxPos,WINBOOL bRedraw);
3062 WINUSERAPI WINBOOL WINAPI GetScrollRange(HWND hWnd,int nBar,LPINT lpMinPos,LPINT lpMaxPos);
3063 WINUSERAPI WINBOOL WINAPI ShowScrollBar(HWND hWnd,int wBar,WINBOOL bShow);
3064 WINUSERAPI WINBOOL WINAPI EnableScrollBar(HWND hWnd,UINT wSBflags,UINT wArrows);
3065
3066 #define ESB_ENABLE_BOTH 0x0000
3067 #define ESB_DISABLE_BOTH 0x0003
3068
3069 #define ESB_DISABLE_LEFT 0x0001
3070 #define ESB_DISABLE_RIGHT 0x0002
3071
3072 #define ESB_DISABLE_UP 0x0001
3073 #define ESB_DISABLE_DOWN 0x0002
3074
3075 #define ESB_DISABLE_LTUP ESB_DISABLE_LEFT
3076 #define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT
3077 #endif
3078
3079 #ifdef UNICODE
3080 #define SetProp SetPropW
3081 #define GetProp GetPropW
3082 #define RemoveProp RemovePropW
3083 #define EnumPropsEx EnumPropsExW
3084 #define EnumProps EnumPropsW
3085 #define SetWindowText SetWindowTextW
3086 #define GetWindowText GetWindowTextW
3087 #define GetWindowTextLength GetWindowTextLengthW
3088 #else
3089 #define SetProp SetPropA
3090 #define GetProp GetPropA
3091 #define RemoveProp RemovePropA
3092 #define EnumPropsEx EnumPropsExA
3093 #define EnumProps EnumPropsA
3094 #define SetWindowText SetWindowTextA
3095 #define GetWindowText GetWindowTextA
3096 #define GetWindowTextLength GetWindowTextLengthA
3097 #endif
3098
3099 WINUSERAPI WINBOOL WINAPI SetPropA(HWND hWnd,LPCSTR lpString,HANDLE hData);
3100 WINUSERAPI WINBOOL WINAPI SetPropW(HWND hWnd,LPCWSTR lpString,HANDLE hData);
3101 WINUSERAPI HANDLE WINAPI GetPropA(HWND hWnd,LPCSTR lpString);
3102 WINUSERAPI HANDLE WINAPI GetPropW(HWND hWnd,LPCWSTR lpString);
3103 WINUSERAPI HANDLE WINAPI RemovePropA(HWND hWnd,LPCSTR lpString);
3104 WINUSERAPI HANDLE WINAPI RemovePropW(HWND hWnd,LPCWSTR lpString);
3105 WINUSERAPI int WINAPI EnumPropsExA(HWND hWnd,PROPENUMPROCEXA lpEnumFunc,LPARAM lParam);
3106 WINUSERAPI int WINAPI EnumPropsExW(HWND hWnd,PROPENUMPROCEXW lpEnumFunc,LPARAM lParam);
3107 WINUSERAPI int WINAPI EnumPropsA(HWND hWnd,PROPENUMPROCA lpEnumFunc);
3108 WINUSERAPI int WINAPI EnumPropsW(HWND hWnd,PROPENUMPROCW lpEnumFunc);
3109 WINUSERAPI WINBOOL WINAPI SetWindowTextA(HWND hWnd,LPCSTR lpString);
3110 WINUSERAPI WINBOOL WINAPI SetWindowTextW(HWND hWnd,LPCWSTR lpString);
3111 WINUSERAPI int WINAPI GetWindowTextA(HWND hWnd,LPSTR lpString,int nMaxCount);
3112 WINUSERAPI int WINAPI GetWindowTextW(HWND hWnd,LPWSTR lpString,int nMaxCount);
3113 WINUSERAPI int WINAPI GetWindowTextLengthA(HWND hWnd);
3114 WINUSERAPI int WINAPI GetWindowTextLengthW(HWND hWnd);
3115 WINUSERAPI WINBOOL WINAPI GetClientRect(HWND hWnd,LPRECT lpRect);
3116 WINUSERAPI WINBOOL WINAPI GetWindowRect(HWND hWnd,LPRECT lpRect);
3117 WINUSERAPI WINBOOL WINAPI AdjustWindowRect(LPRECT lpRect,DWORD dwStyle,WINBOOL bMenu);
3118 WINUSERAPI WINBOOL WINAPI AdjustWindowRectEx(LPRECT lpRect,DWORD dwStyle,WINBOOL bMenu,DWORD dwExStyle);
3119
3120 #define HELPINFO_WINDOW 0x0001
3121 #define HELPINFO_MENUITEM 0x0002
3122
3123 typedef struct tagHELPINFO {
3124 UINT cbSize;
3125 int iContextType;
3126 int iCtrlId;
3127 HANDLE hItemHandle;
3128 DWORD_PTR dwContextId;
3129 POINT MousePos;
3130 } HELPINFO,*LPHELPINFO;
3131
3132 WINUSERAPI WINBOOL WINAPI SetWindowContextHelpId(HWND,DWORD);
3133 WINUSERAPI DWORD WINAPI GetWindowContextHelpId(HWND);
3134 WINUSERAPI WINBOOL WINAPI SetMenuContextHelpId(HMENU,DWORD);
3135 WINUSERAPI DWORD WINAPI GetMenuContextHelpId(HMENU);
3136
3137 #ifndef NOMB
3138
3139 #define MB_OK 0x00000000L
3140 #define MB_OKCANCEL 0x00000001L
3141 #define MB_ABORTRETRYIGNORE 0x00000002L
3142 #define MB_YESNOCANCEL 0x00000003L
3143 #define MB_YESNO 0x00000004L
3144 #define MB_RETRYCANCEL 0x00000005L
3145 #define MB_CANCELTRYCONTINUE 0x00000006L
3146 #define MB_ICONHAND 0x00000010L
3147 #define MB_ICONQUESTION 0x00000020L
3148 #define MB_ICONEXCLAMATION 0x00000030L
3149 #define MB_ICONASTERISK 0x00000040L
3150 #define MB_USERICON 0x00000080L
3151 #define MB_ICONWARNING MB_ICONEXCLAMATION
3152 #define MB_ICONERROR MB_ICONHAND
3153 #define MB_ICONINFORMATION MB_ICONASTERISK
3154 #define MB_ICONSTOP MB_ICONHAND
3155 #define MB_DEFBUTTON1 0x00000000L
3156 #define MB_DEFBUTTON2 0x00000100L
3157 #define MB_DEFBUTTON3 0x00000200L
3158 #define MB_DEFBUTTON4 0x00000300L
3159 #define MB_APPLMODAL 0x00000000L
3160 #define MB_SYSTEMMODAL 0x00001000L
3161 #define MB_TASKMODAL 0x00002000L
3162 #define MB_HELP 0x00004000L
3163 #define MB_NOFOCUS 0x00008000L
3164 #define MB_SETFOREGROUND 0x00010000L
3165 #define MB_DEFAULT_DESKTOP_ONLY 0x00020000L
3166 #define MB_TOPMOST 0x00040000L
3167 #define MB_RIGHT 0x00080000L
3168 #define MB_RTLREADING 0x00100000L
3169 #define MB_SERVICE_NOTIFICATION 0x00200000L
3170 #define MB_SERVICE_NOTIFICATION_NT3X 0x00040000L
3171 #define MB_TYPEMASK 0x0000000FL
3172 #define MB_ICONMASK 0x000000F0L
3173 #define MB_DEFMASK 0x00000F00L
3174 #define MB_MODEMASK 0x00003000L
3175 #define MB_MISCMASK 0x0000C000L
3176
3177 #ifdef UNICODE
3178 #define MessageBox MessageBoxW
3179 #define MessageBoxEx MessageBoxExW
3180 #else
3181 #define MessageBox MessageBoxA
3182 #define MessageBoxEx MessageBoxExA
3183 #endif
3184
3185 WINUSERAPI int WINAPI MessageBoxA(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType);
3186 WINUSERAPI int WINAPI MessageBoxW(HWND hWnd,LPCWSTR lpText,LPCWSTR lpCaption,UINT uType);
3187 WINUSERAPI int WINAPI MessageBoxExA(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType,WORD wLanguageId);
3188 WINUSERAPI int WINAPI MessageBoxExW(HWND hWnd,LPCWSTR lpText,LPCWSTR lpCaption,UINT uType,WORD wLanguageId);
3189
3190 typedef VOID (CALLBACK *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);
3191
3192 typedef struct tagMSGBOXPARAMSA {
3193 UINT cbSize;
3194 HWND hwndOwner;
3195 HINSTANCE hInstance;
3196 LPCSTR lpszText;
3197 LPCSTR lpszCaption;
3198 DWORD dwStyle;
3199 LPCSTR lpszIcon;
3200 DWORD_PTR dwContextHelpId;
3201 MSGBOXCALLBACK lpfnMsgBoxCallback;
3202 DWORD dwLanguageId;
3203 } MSGBOXPARAMSA,*PMSGBOXPARAMSA,*LPMSGBOXPARAMSA;
3204
3205 typedef struct tagMSGBOXPARAMSW {
3206 UINT cbSize;
3207 HWND hwndOwner;
3208 HINSTANCE hInstance;
3209 LPCWSTR lpszText;
3210 LPCWSTR lpszCaption;
3211 DWORD dwStyle;
3212 LPCWSTR lpszIcon;
3213 DWORD_PTR dwContextHelpId;
3214 MSGBOXCALLBACK lpfnMsgBoxCallback;
3215 DWORD dwLanguageId;
3216 } MSGBOXPARAMSW,*PMSGBOXPARAMSW,*LPMSGBOXPARAMSW;
3217
3218 #ifdef UNICODE
3219 typedef MSGBOXPARAMSW MSGBOXPARAMS;
3220 typedef PMSGBOXPARAMSW PMSGBOXPARAMS;
3221 typedef LPMSGBOXPARAMSW LPMSGBOXPARAMS;
3222 #else
3223 typedef MSGBOXPARAMSA MSGBOXPARAMS;
3224 typedef PMSGBOXPARAMSA PMSGBOXPARAMS;
3225 typedef LPMSGBOXPARAMSA LPMSGBOXPARAMS;
3226 #endif
3227
3228 #ifdef UNICODE
3229 #define MessageBoxIndirect MessageBoxIndirectW
3230 #else
3231 #define MessageBoxIndirect MessageBoxIndirectA
3232 #endif
3233
3234 WINUSERAPI int WINAPI MessageBoxIndirectA(CONST MSGBOXPARAMSA *lpmbp);
3235 WINUSERAPI int WINAPI MessageBoxIndirectW(CONST MSGBOXPARAMSW *lpmbp);
3236 WINUSERAPI WINBOOL WINAPI MessageBeep(UINT uType);
3237 #endif
3238
3239 WINUSERAPI int WINAPI ShowCursor(WINBOOL bShow);
3240 WINUSERAPI WINBOOL WINAPI SetCursorPos(int X,int Y);
3241 WINUSERAPI HCURSOR WINAPI SetCursor(HCURSOR hCursor);
3242 WINUSERAPI WINBOOL WINAPI GetCursorPos(LPPOINT lpPoint);
3243 WINUSERAPI WINBOOL WINAPI ClipCursor(CONST RECT *lpRect);
3244 WINUSERAPI WINBOOL WINAPI GetClipCursor(LPRECT lpRect);
3245 WINUSERAPI HCURSOR WINAPI GetCursor(VOID);
3246 WINUSERAPI WINBOOL WINAPI CreateCaret(HWND hWnd,HBITMAP hBitmap,int nWidth,int nHeight);
3247 WINUSERAPI UINT WINAPI GetCaretBlinkTime(VOID);
3248 WINUSERAPI WINBOOL WINAPI SetCaretBlinkTime(UINT uMSeconds);
3249 WINUSERAPI WINBOOL WINAPI DestroyCaret(VOID);
3250 WINUSERAPI WINBOOL WINAPI HideCaret(HWND hWnd);
3251 WINUSERAPI WINBOOL WINAPI ShowCaret(HWND hWnd);
3252 WINUSERAPI WINBOOL WINAPI SetCaretPos(int X,int Y);
3253 WINUSERAPI WINBOOL WINAPI GetCaretPos(LPPOINT lpPoint);
3254 WINUSERAPI WINBOOL WINAPI ClientToScreen(HWND hWnd,LPPOINT lpPoint);
3255 WINUSERAPI WINBOOL WINAPI ScreenToClient(HWND hWnd,LPPOINT lpPoint);
3256 WINUSERAPI int WINAPI MapWindowPoints(HWND hWndFrom,HWND hWndTo,LPPOINT lpPoints,UINT cPoints);
3257 WINUSERAPI HWND WINAPI WindowFromPoint(POINT Point);
3258 WINUSERAPI HWND WINAPI ChildWindowFromPoint(HWND hWndParent,POINT Point);
3259
3260 #define CWP_ALL 0x0000
3261 #define CWP_SKIPINVISIBLE 0x0001
3262 #define CWP_SKIPDISABLED 0x0002
3263 #define CWP_SKIPTRANSPARENT 0x0004
3264
3265 WINUSERAPI HWND WINAPI ChildWindowFromPointEx(HWND hwnd,POINT pt,UINT flags);
3266
3267 #ifndef NOCOLOR
3268
3269 #define CTLCOLOR_MSGBOX 0
3270 #define CTLCOLOR_EDIT 1
3271 #define CTLCOLOR_LISTBOX 2
3272 #define CTLCOLOR_BTN 3
3273 #define CTLCOLOR_DLG 4
3274 #define CTLCOLOR_SCROLLBAR 5
3275 #define CTLCOLOR_STATIC 6
3276 #define CTLCOLOR_MAX 7
3277
3278 #define COLOR_SCROLLBAR 0
3279 #define COLOR_BACKGROUND 1
3280 #define COLOR_ACTIVECAPTION 2
3281 #define COLOR_INACTIVECAPTION 3
3282 #define COLOR_MENU 4
3283 #define COLOR_WINDOW 5
3284 #define COLOR_WINDOWFRAME 6
3285 #define COLOR_MENUTEXT 7
3286 #define COLOR_WINDOWTEXT 8
3287 #define COLOR_CAPTIONTEXT 9
3288 #define COLOR_ACTIVEBORDER 10
3289 #define COLOR_INACTIVEBORDER 11
3290 #define COLOR_APPWORKSPACE 12
3291 #define COLOR_HIGHLIGHT 13
3292 #define COLOR_HIGHLIGHTTEXT 14
3293 #define COLOR_BTNFACE 15
3294 #define COLOR_BTNSHADOW 16
3295 #define COLOR_GRAYTEXT 17
3296 #define COLOR_BTNTEXT 18
3297 #define COLOR_INACTIVECAPTIONTEXT 19
3298 #define COLOR_BTNHIGHLIGHT 20
3299
3300 #define COLOR_3DDKSHADOW 21
3301 #define COLOR_3DLIGHT 22
3302 #define COLOR_INFOTEXT 23
3303 #define COLOR_INFOBK 24
3304
3305 #define COLOR_HOTLIGHT 26
3306 #define COLOR_GRADIENTACTIVECAPTION 27
3307 #define COLOR_GRADIENTINACTIVECAPTION 28
3308 #define COLOR_MENUHILIGHT 29
3309 #define COLOR_MENUBAR 30
3310
3311 #define COLOR_DESKTOP COLOR_BACKGROUND
3312 #define COLOR_3DFACE COLOR_BTNFACE
3313 #define COLOR_3DSHADOW COLOR_BTNSHADOW
3314 #define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
3315 #define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
3316 #define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
3317
3318 WINUSERAPI DWORD WINAPI GetSysColor(int nIndex);
3319 WINUSERAPI HBRUSH WINAPI GetSysColorBrush(int nIndex);
3320 WINUSERAPI WINBOOL WINAPI SetSysColors(int cElements,CONST INT *lpaElements,CONST COLORREF *lpaRgbValues);
3321 #endif
3322
3323 WINUSERAPI WINBOOL WINAPI DrawFocusRect(HDC hDC,CONST RECT *lprc);
3324 WINUSERAPI int WINAPI FillRect(HDC hDC,CONST RECT *lprc,HBRUSH hbr);
3325 WINUSERAPI int WINAPI FrameRect(HDC hDC,CONST RECT *lprc,HBRUSH hbr);
3326 WINUSERAPI WINBOOL WINAPI InvertRect(HDC hDC,CONST RECT *lprc);
3327 WINUSERAPI WINBOOL WINAPI SetRect(LPRECT lprc,int xLeft,int yTop,int xRight,int yBottom);
3328 WINUSERAPI WINBOOL WINAPI SetRectEmpty(LPRECT lprc);
3329 WINUSERAPI WINBOOL WINAPI CopyRect(LPRECT lprcDst,CONST RECT *lprcSrc);
3330 WINUSERAPI WINBOOL WINAPI InflateRect(LPRECT lprc,int dx,int dy);
3331 WINUSERAPI WINBOOL WINAPI IntersectRect(LPRECT lprcDst,CONST RECT *lprcSrc1,CONST RECT *lprcSrc2);
3332 WINUSERAPI WINBOOL WINAPI UnionRect(LPRECT lprcDst,CONST RECT *lprcSrc1,CONST RECT *lprcSrc2);
3333 WINUSERAPI WINBOOL WINAPI SubtractRect(LPRECT lprcDst,CONST RECT *lprcSrc1,CONST RECT *lprcSrc2);
3334 WINUSERAPI WINBOOL WINAPI OffsetRect(LPRECT lprc,int dx,int dy);
3335 WINUSERAPI WINBOOL WINAPI IsRectEmpty(CONST RECT *lprc);
3336 WINUSERAPI WINBOOL WINAPI EqualRect(CONST RECT *lprc1,CONST RECT *lprc2);
3337 WINUSERAPI WINBOOL WINAPI PtInRect(CONST RECT *lprc,POINT pt);
3338
3339 #ifndef NOWINOFFSETS
3340
3341 #ifdef UNICODE
3342 #define GetWindowLong GetWindowLongW
3343 #define SetWindowLong SetWindowLongW
3344 #else
3345 #define GetWindowLong GetWindowLongA
3346 #define SetWindowLong SetWindowLongA
3347 #endif
3348
3349 WINUSERAPI WORD WINAPI GetWindowWord(HWND hWnd,int nIndex);
3350 WINUSERAPI WORD WINAPI SetWindowWord(HWND hWnd,int nIndex,WORD wNewWord);
3351 WINUSERAPI LONG WINAPI GetWindowLongA(HWND hWnd,int nIndex);
3352 WINUSERAPI LONG WINAPI GetWindowLongW(HWND hWnd,int nIndex);
3353 WINUSERAPI LONG WINAPI SetWindowLongA(HWND hWnd,int nIndex,LONG dwNewLong);
3354 WINUSERAPI LONG WINAPI SetWindowLongW(HWND hWnd,int nIndex,LONG dwNewLong);
3355
3356 #ifdef _WIN64
3357
3358 #ifdef UNICODE
3359 #define GetWindowLongPtr GetWindowLongPtrW
3360 #define SetWindowLongPtr SetWindowLongPtrW
3361 #else
3362 #define GetWindowLongPtr GetWindowLongPtrA
3363 #define SetWindowLongPtr SetWindowLongPtrA
3364 #endif
3365
3366 WINUSERAPI LONG_PTR WINAPI GetWindowLongPtrA(HWND hWnd,int nIndex);
3367 WINUSERAPI LONG_PTR WINAPI GetWindowLongPtrW(HWND hWnd,int nIndex);
3368 WINUSERAPI LONG_PTR WINAPI SetWindowLongPtrA(HWND hWnd,int nIndex,LONG_PTR dwNewLong);
3369 WINUSERAPI LONG_PTR WINAPI SetWindowLongPtrW(HWND hWnd,int nIndex,LONG_PTR dwNewLong);
3370 #else
3371
3372 #ifdef UNICODE
3373 #define GetWindowLongPtr GetWindowLongPtrW
3374 #define SetWindowLongPtr SetWindowLongPtrW
3375 #else
3376 #define GetWindowLongPtr GetWindowLongPtrA
3377 #define SetWindowLongPtr SetWindowLongPtrA
3378 #endif
3379
3380 #define GetWindowLongPtrA GetWindowLongA
3381 #define GetWindowLongPtrW GetWindowLongW
3382 #define SetWindowLongPtrA SetWindowLongA
3383 #define SetWindowLongPtrW SetWindowLongW
3384 #endif
3385
3386 #ifdef UNICODE
3387 #define GetClassLong GetClassLongW
3388 #define SetClassLong SetClassLongW
3389 #else
3390 #define GetClassLong GetClassLongA
3391 #define SetClassLong SetClassLongA
3392 #endif
3393
3394 WINUSERAPI WORD WINAPI GetClassWord(HWND hWnd,int nIndex);
3395 WINUSERAPI WORD WINAPI SetClassWord(HWND hWnd,int nIndex,WORD wNewWord);
3396 WINUSERAPI DWORD WINAPI GetClassLongA(HWND hWnd,int nIndex);
3397 WINUSERAPI DWORD WINAPI GetClassLongW(HWND hWnd,int nIndex);
3398 WINUSERAPI DWORD WINAPI SetClassLongA(HWND hWnd,int nIndex,LONG dwNewLong);
3399 WINUSERAPI DWORD WINAPI SetClassLongW(HWND hWnd,int nIndex,LONG dwNewLong);
3400
3401 #ifdef _WIN64
3402
3403 #ifdef UNICODE
3404 #define GetClassLongPtr GetClassLongPtrW
3405 #define SetClassLongPtr SetClassLongPtrW
3406 #else
3407 #define GetClassLongPtr GetClassLongPtrA
3408 #define SetClassLongPtr SetClassLongPtrA
3409 #endif
3410
3411 WINUSERAPI ULONG_PTR WINAPI GetClassLongPtrA(HWND hWnd,int nIndex);
3412 WINUSERAPI ULONG_PTR WINAPI GetClassLongPtrW(HWND hWnd,int nIndex);
3413 WINUSERAPI ULONG_PTR WINAPI SetClassLongPtrA(HWND hWnd,int nIndex,LONG_PTR dwNewLong);
3414 WINUSERAPI ULONG_PTR WINAPI SetClassLongPtrW(HWND hWnd,int nIndex,LONG_PTR dwNewLong);
3415 #else
3416 #ifdef UNICODE
3417 #define GetClassLongPtr GetClassLongPtrW
3418 #define SetClassLongPtr SetClassLongPtrW
3419 #else
3420 #define GetClassLongPtr GetClassLongPtrA
3421 #define SetClassLongPtr SetClassLongPtrA
3422 #endif
3423
3424 #define GetClassLongPtrA GetClassLongA
3425 #define GetClassLongPtrW GetClassLongW
3426 #define SetClassLongPtrA SetClassLongA
3427 #define SetClassLongPtrW SetClassLongW
3428 #endif
3429 #endif
3430
3431 #ifdef UNICODE
3432 #define FindWindow FindWindowW
3433 #define FindWindowEx FindWindowExW
3434 #define GetClassName GetClassNameW
3435 #else
3436 #define FindWindow FindWindowA
3437 #define FindWindowEx FindWindowExA
3438 #define GetClassName GetClassNameA
3439 #endif
3440
3441 WINUSERAPI WINBOOL WINAPI GetProcessDefaultLayout(DWORD *pdwDefaultLayout);
3442 WINUSERAPI WINBOOL WINAPI SetProcessDefaultLayout(DWORD dwDefaultLayout);
3443 WINUSERAPI HWND WINAPI GetDesktopWindow(VOID);
3444 WINUSERAPI HWND WINAPI GetParent(HWND hWnd);
3445 WINUSERAPI HWND WINAPI SetParent(HWND hWndChild,HWND hWndNewParent);
3446 WINUSERAPI WINBOOL WINAPI EnumChildWindows(HWND hWndParent,WNDENUMPROC lpEnumFunc,LPARAM lParam);
3447 WINUSERAPI HWND WINAPI FindWindowA(LPCSTR lpClassName,LPCSTR lpWindowName);
3448 WINUSERAPI HWND WINAPI FindWindowW(LPCWSTR lpClassName,LPCWSTR lpWindowName);
3449 WINUSERAPI HWND WINAPI FindWindowExA(HWND hWndParent,HWND hWndChildAfter,LPCSTR lpszClass,LPCSTR lpszWindow);
3450 WINUSERAPI HWND WINAPI FindWindowExW(HWND hWndParent,HWND hWndChildAfter,LPCWSTR lpszClass,LPCWSTR lpszWindow);
3451 WINUSERAPI HWND WINAPI GetShellWindow(VOID);
3452 WINUSERAPI WINBOOL WINAPI RegisterShellHookWindow(HWND hwnd);
3453 WINUSERAPI WINBOOL WINAPI DeregisterShellHookWindow(HWND hwnd);
3454 WINUSERAPI WINBOOL WINAPI EnumWindows(WNDENUMPROC lpEnumFunc,LPARAM lParam);
3455 WINUSERAPI WINBOOL WINAPI EnumThreadWindows(DWORD dwThreadId,WNDENUMPROC lpfn,LPARAM lParam);
3456
3457 #define EnumTaskWindows(hTask,lpfn,lParam) EnumThreadWindows(HandleToUlong(hTask),lpfn,lParam)
3458
3459 WINUSERAPI int WINAPI GetClassNameA(HWND hWnd,LPSTR lpClassName,int nMaxCount);
3460 WINUSERAPI int WINAPI GetClassNameW(HWND hWnd,LPWSTR lpClassName,int nMaxCount);
3461 WINUSERAPI HWND WINAPI GetTopWindow(HWND hWnd);
3462
3463 #define GetNextWindow(hWnd,wCmd) GetWindow(hWnd,wCmd)
3464 #define GetSysModalWindow() (NULL)
3465 #define SetSysModalWindow(hWnd) (NULL)
3466
3467 WINUSERAPI DWORD WINAPI GetWindowThreadProcessId(HWND hWnd,LPDWORD lpdwProcessId);
3468 WINUSERAPI WINBOOL WINAPI IsGUIThread(WINBOOL bConvert);
3469
3470 #define GetWindowTask(hWnd) ((HANDLE)(DWORD_PTR)GetWindowThreadProcessId(hWnd,NULL))
3471
3472 WINUSERAPI HWND WINAPI GetLastActivePopup(HWND hWnd);
3473
3474 #define GW_HWNDFIRST 0
3475 #define GW_HWNDLAST 1
3476 #define GW_HWNDNEXT 2
3477 #define GW_HWNDPREV 3
3478 #define GW_OWNER 4
3479 #define GW_CHILD 5
3480 #define GW_ENABLEDPOPUP 6
3481 #define GW_MAX 6
3482
3483 WINUSERAPI HWND WINAPI GetWindow(HWND hWnd,UINT uCmd);
3484
3485 #ifndef NOWH
3486
3487 #ifdef UNICODE
3488 #define SetWindowsHook SetWindowsHookW
3489 #define SetWindowsHookEx SetWindowsHookExW
3490 #else
3491 #define SetWindowsHook SetWindowsHookA
3492 #define SetWindowsHookEx SetWindowsHookExA
3493 #endif
3494
3495 WINUSERAPI HHOOK WINAPI SetWindowsHookA(int nFilterType,HOOKPROC pfnFilterProc);
3496 WINUSERAPI HHOOK WINAPI SetWindowsHookW(int nFilterType,HOOKPROC pfnFilterProc);
3497 WINUSERAPI WINBOOL WINAPI UnhookWindowsHook(int nCode,HOOKPROC pfnFilterProc);
3498 WINUSERAPI HHOOK WINAPI SetWindowsHookExA(int idHook,HOOKPROC lpfn,HINSTANCE hmod,DWORD dwThreadId);
3499 WINUSERAPI HHOOK WINAPI SetWindowsHookExW(int idHook,HOOKPROC lpfn,HINSTANCE hmod,DWORD dwThreadId);
3500 WINUSERAPI WINBOOL WINAPI UnhookWindowsHookEx(HHOOK hhk);
3501 WINUSERAPI LRESULT WINAPI CallNextHookEx(HHOOK hhk,int nCode,WPARAM wParam,LPARAM lParam);
3502 #define DefHookProc(nCode,wParam,lParam,phhk) CallNextHookEx(*phhk,nCode,wParam,lParam)
3503 #endif
3504
3505 #ifndef NOMENUS
3506
3507 #define MF_INSERT 0x00000000L
3508 #define MF_CHANGE 0x00000080L
3509 #define MF_APPEND 0x00000100L
3510 #define MF_DELETE 0x00000200L
3511 #define MF_REMOVE 0x00001000L
3512 #define MF_BYCOMMAND 0x00000000L
3513 #define MF_BYPOSITION 0x00000400L
3514 #define MF_SEPARATOR 0x00000800L
3515 #define MF_ENABLED 0x00000000L
3516 #define MF_GRAYED 0x00000001L
3517 #define MF_DISABLED 0x00000002L
3518 #define MF_UNCHECKED 0x00000000L
3519 #define MF_CHECKED 0x00000008L
3520 #define MF_USECHECKBITMAPS 0x00000200L
3521 #define MF_STRING 0x00000000L
3522 #define MF_BITMAP 0x00000004L
3523 #define MF_OWNERDRAW 0x00000100L
3524 #define MF_POPUP 0x00000010L
3525 #define MF_MENUBARBREAK 0x00000020L
3526 #define MF_MENUBREAK 0x00000040L
3527 #define MF_UNHILITE 0x00000000L
3528 #define MF_HILITE 0x00000080L
3529 #define MF_DEFAULT 0x00001000L
3530 #define MF_SYSMENU 0x00002000L
3531 #define MF_HELP 0x00004000L
3532 #define MF_RIGHTJUSTIFY 0x00004000L
3533 #define MF_MOUSESELECT 0x00008000L
3534 #define MF_END 0x00000080L
3535
3536 #define MFT_STRING MF_STRING
3537 #define MFT_BITMAP MF_BITMAP
3538 #define MFT_MENUBARBREAK MF_MENUBARBREAK
3539 #define MFT_MENUBREAK MF_MENUBREAK
3540 #define MFT_OWNERDRAW MF_OWNERDRAW
3541 #define MFT_RADIOCHECK 0x00000200L
3542 #define MFT_SEPARATOR MF_SEPARATOR
3543 #define MFT_RIGHTORDER 0x00002000L
3544 #define MFT_RIGHTJUSTIFY MF_RIGHTJUSTIFY
3545
3546 #define MFS_GRAYED 0x00000003L
3547 #define MFS_DISABLED MFS_GRAYED
3548 #define MFS_CHECKED MF_CHECKED
3549 #define MFS_HILITE MF_HILITE
3550 #define MFS_ENABLED MF_ENABLED
3551 #define MFS_UNCHECKED MF_UNCHECKED
3552 #define MFS_UNHILITE MF_UNHILITE
3553 #define MFS_DEFAULT MF_DEFAULT
3554
3555 WINUSERAPI WINBOOL WINAPI CheckMenuRadioItem(HMENU hmenu,UINT first,UINT last,UINT check,UINT flags);
3556
3557 typedef struct {
3558 WORD versionNumber;
3559 WORD offset;
3560 } MENUITEMTEMPLATEHEADER,*PMENUITEMTEMPLATEHEADER;
3561
3562 typedef struct {
3563 WORD mtOption;
3564 WORD mtID;
3565 WCHAR mtString[1];
3566 } MENUITEMTEMPLATE,*PMENUITEMTEMPLATE;
3567 #define MF_END 0x00000080L
3568 #endif
3569
3570 #ifndef NOSYSCOMMANDS
3571
3572 #define SC_SIZE 0xF000
3573 #define SC_MOVE 0xF010
3574 #define SC_MINIMIZE 0xF020
3575 #define SC_MAXIMIZE 0xF030
3576 #define SC_NEXTWINDOW 0xF040
3577 #define SC_PREVWINDOW 0xF050
3578 #define SC_CLOSE 0xF060
3579 #define SC_VSCROLL 0xF070
3580 #define SC_HSCROLL 0xF080
3581 #define SC_MOUSEMENU 0xF090
3582 #define SC_KEYMENU 0xF100
3583 #define SC_ARRANGE 0xF110
3584 #define SC_RESTORE 0xF120
3585 #define SC_TASKLIST 0xF130
3586 #define SC_SCREENSAVE 0xF140
3587 #define SC_HOTKEY 0xF150
3588 #define SC_DEFAULT 0xF160
3589 #define SC_MONITORPOWER 0xF170
3590 #define SC_CONTEXTHELP 0xF180
3591 #define SC_SEPARATOR 0xF00F
3592 #define SC_ICON SC_MINIMIZE
3593 #define SC_ZOOM SC_MAXIMIZE
3594 #endif
3595
3596 #ifdef UNICODE
3597 #define LoadBitmap LoadBitmapW
3598 #define LoadCursor LoadCursorW
3599 #define LoadCursorFromFile LoadCursorFromFileW
3600 #else
3601 #define LoadBitmap LoadBitmapA
3602 #define LoadCursor LoadCursorA
3603 #define LoadCursorFromFile LoadCursorFromFileA
3604 #endif
3605
3606 WINUSERAPI HBITMAP WINAPI LoadBitmapA(HINSTANCE hInstance,LPCSTR lpBitmapName);
3607 WINUSERAPI HBITMAP WINAPI LoadBitmapW(HINSTANCE hInstance,LPCWSTR lpBitmapName);
3608 WINUSERAPI HCURSOR WINAPI LoadCursorA(HINSTANCE hInstance,LPCSTR lpCursorName);
3609 WINUSERAPI HCURSOR WINAPI LoadCursorW(HINSTANCE hInstance,LPCWSTR lpCursorName);
3610 WINUSERAPI HCURSOR WINAPI LoadCursorFromFileA(LPCSTR lpFileName);
3611 WINUSERAPI HCURSOR WINAPI LoadCursorFromFileW(LPCWSTR lpFileName);
3612 WINUSERAPI HCURSOR WINAPI CreateCursor(HINSTANCE hInst,int xHotSpot,int yHotSpot,int nWidth,int nHeight,CONST VOID *pvANDPlane,CONST VOID *pvXORPlane);
3613 WINUSERAPI WINBOOL WINAPI DestroyCursor(HCURSOR hCursor);
3614
3615 #define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur)))
3616
3617 #define IDC_ARROW MAKEINTRESOURCE(32512)
3618 #define IDC_IBEAM MAKEINTRESOURCE(32513)
3619 #define IDC_WAIT MAKEINTRESOURCE(32514)
3620 #define IDC_CROSS MAKEINTRESOURCE(32515)
3621 #define IDC_UPARROW MAKEINTRESOURCE(32516)
3622 #define IDC_SIZE MAKEINTRESOURCE(32640)
3623 #define IDC_ICON MAKEINTRESOURCE(32641)
3624 #define IDC_SIZENWSE MAKEINTRESOURCE(32642)
3625 #define IDC_SIZENESW MAKEINTRESOURCE(32643)
3626 #define IDC_SIZEWE MAKEINTRESOURCE(32644)
3627 #define IDC_SIZENS MAKEINTRESOURCE(32645)
3628 #define IDC_SIZEALL MAKEINTRESOURCE(32646)
3629 #define IDC_NO MAKEINTRESOURCE(32648)
3630 #define IDC_HAND MAKEINTRESOURCE(32649)
3631 #define IDC_APPSTARTING MAKEINTRESOURCE(32650)
3632 #define IDC_HELP MAKEINTRESOURCE(32651)
3633
3634 WINUSERAPI WINBOOL WINAPI SetSystemCursor(HCURSOR hcur,DWORD id);
3635
3636 typedef struct _ICONINFO {
3637 WINBOOL fIcon;
3638 DWORD xHotspot;
3639 DWORD yHotspot;
3640 HBITMAP hbmMask;
3641 HBITMAP hbmColor;
3642 } ICONINFO;
3643 typedef ICONINFO *PICONINFO;
3644
3645 #ifdef UNICODE
3646 #define LoadIcon LoadIconW
3647 #define PrivateExtractIcons PrivateExtractIconsW
3648 #else
3649 #define LoadIcon LoadIconA
3650 #define PrivateExtractIcons PrivateExtractIconsA
3651 #endif
3652
3653 WINUSERAPI HICON WINAPI LoadIconA(HINSTANCE hInstance,LPCSTR lpIconName);
3654 WINUSERAPI HICON WINAPI LoadIconW(HINSTANCE hInstance,LPCWSTR lpIconName);
3655 WINUSERAPI UINT WINAPI PrivateExtractIconsA(LPCSTR szFileName,int nIconIndex,int cxIcon,int cyIcon,HICON *phicon,UINT *piconid,UINT nIcons,UINT flags);
3656 WINUSERAPI UINT WINAPI PrivateExtractIconsW(LPCWSTR szFileName,int nIconIndex,int cxIcon,int cyIcon,HICON *phicon,UINT *piconid,UINT nIcons,UINT flags);
3657 WINUSERAPI HICON WINAPI CreateIcon(HINSTANCE hInstance,int nWidth,int nHeight,BYTE cPlanes,BYTE cBitsPixel,CONST BYTE *lpbANDbits,CONST BYTE *lpbXORbits);
3658 WINUSERAPI WINBOOL WINAPI DestroyIcon(HICON hIcon);
3659 WINUSERAPI int WINAPI LookupIconIdFromDirectory(PBYTE presbits,WINBOOL fIcon);
3660 WINUSERAPI int WINAPI LookupIconIdFromDirectoryEx(PBYTE presbits,WINBOOL fIcon,int cxDesired,int cyDesired,UINT Flags);
3661 WINUSERAPI HICON WINAPI CreateIconFromResource(PBYTE presbits,DWORD dwResSize,WINBOOL fIcon,DWORD dwVer);
3662 WINUSERAPI HICON WINAPI CreateIconFromResourceEx(PBYTE presbits,DWORD dwResSize,WINBOOL fIcon,DWORD dwVer,int cxDesired,int cyDesired,UINT Flags);
3663
3664 typedef struct tagCURSORSHAPE {
3665 int xHotSpot;
3666 int yHotSpot;
3667 int cx;
3668 int cy;
3669 int cbWidth;
3670 BYTE Planes;
3671 BYTE BitsPixel;
3672 } CURSORSHAPE,*LPCURSORSHAPE;
3673
3674 #define IMAGE_BITMAP 0
3675 #define IMAGE_ICON 1
3676 #define IMAGE_CURSOR 2
3677 #define IMAGE_ENHMETAFILE 3
3678
3679 #define LR_DEFAULTCOLOR 0x0000
3680 #define LR_MONOCHROME 0x0001
3681 #define LR_COLOR 0x0002
3682 #define LR_COPYRETURNORG 0x0004
3683 #define LR_COPYDELETEORG 0x0008
3684 #define LR_LOADFROMFILE 0x0010
3685 #define LR_LOADTRANSPARENT 0x0020
3686 #define LR_DEFAULTSIZE 0x0040
3687 #define LR_VGACOLOR 0x0080
3688 #define LR_LOADMAP3DCOLORS 0x1000
3689 #define LR_CREATEDIBSECTION 0x2000
3690 #define LR_COPYFROMRESOURCE 0x4000
3691 #define LR_SHARED 0x8000
3692
3693 #ifdef UNICODE
3694 #define LoadImage LoadImageW
3695 #else
3696 #define LoadImage LoadImageA
3697 #endif
3698
3699 WINUSERAPI HANDLE WINAPI LoadImageA(HINSTANCE hInst,LPCSTR name,UINT type,int cx,int cy,UINT fuLoad);
3700 WINUSERAPI HANDLE WINAPI LoadImageW(HINSTANCE hInst,LPCWSTR name,UINT type,int cx,int cy,UINT fuLoad);
3701 WINUSERAPI HANDLE WINAPI CopyImage(HANDLE h,UINT type,int cx,int cy,UINT flags);
3702
3703 #define DI_MASK 0x0001
3704 #define DI_IMAGE 0x0002
3705 #define DI_NORMAL 0x0003
3706 #define DI_COMPAT 0x0004
3707 #define DI_DEFAULTSIZE 0x0008
3708 #define DI_NOMIRROR 0x0010
3709
3710 WINUSERAPI WINBOOL WINAPI DrawIconEx(HDC hdc,int xLeft,int yTop,HICON hIcon,int cxWidth,int cyWidth,UINT istepIfAniCur,HBRUSH hbrFlickerFreeDraw,UINT diFlags);
3711 WINUSERAPI HICON WINAPI CreateIconIndirect(PICONINFO piconinfo);
3712 WINUSERAPI HICON WINAPI CopyIcon(HICON hIcon);
3713 WINUSERAPI WINBOOL WINAPI GetIconInfo(HICON hIcon,PICONINFO piconinfo);
3714
3715 #define RES_ICON 1
3716 #define RES_CURSOR 2
3717
3718 #ifdef OEMRESOURCE
3719
3720 #define OBM_CLOSE 32754
3721 #define OBM_UPARROW 32753
3722 #define OBM_DNARROW 32752
3723 #define OBM_RGARROW 32751
3724 #define OBM_LFARROW 32750
3725 #define OBM_REDUCE 32749
3726 #define OBM_ZOOM 32748
3727 #define OBM_RESTORE 32747
3728 #define OBM_REDUCED 32746
3729 #define OBM_ZOOMD 32745
3730 #define OBM_RESTORED 32744
3731 #define OBM_UPARROWD 32743
3732 #define OBM_DNARROWD 32742
3733 #define OBM_RGARROWD 32741
3734 #define OBM_LFARROWD 32740
3735 #define OBM_MNARROW 32739
3736 #define OBM_COMBO 32738
3737 #define OBM_UPARROWI 32737
3738 #define OBM_DNARROWI 32736
3739 #define OBM_RGARROWI 32735
3740 #define OBM_LFARROWI 32734
3741
3742 #define OBM_OLD_CLOSE 32767
3743 #define OBM_SIZE 32766
3744 #define OBM_OLD_UPARROW 32765
3745 #define OBM_OLD_DNARROW 32764
3746 #define OBM_OLD_RGARROW 32763
3747 #define OBM_OLD_LFARROW 32762
3748 #define OBM_BTSIZE 32761
3749 #define OBM_CHECK 32760
3750 #define OBM_CHECKBOXES 32759
3751 #define OBM_BTNCORNERS 32758
3752 #define OBM_OLD_REDUCE 32757
3753 #define OBM_OLD_ZOOM 32756
3754 #define OBM_OLD_RESTORE 32755
3755
3756 #define OCR_NORMAL 32512
3757 #define OCR_IBEAM 32513
3758 #define OCR_WAIT 32514
3759 #define OCR_CROSS 32515
3760 #define OCR_UP 32516
3761 #define OCR_SIZE 32640
3762 #define OCR_ICON 32641
3763 #define OCR_SIZENWSE 32642
3764 #define OCR_SIZENESW 32643
3765 #define OCR_SIZEWE 32644
3766 #define OCR_SIZENS 32645
3767 #define OCR_SIZEALL 32646
3768 #define OCR_ICOCUR 32647
3769 #define OCR_NO 32648
3770 #define OCR_HAND 32649
3771 #define OCR_APPSTARTING 32650
3772
3773 #define OIC_SAMPLE 32512
3774 #define OIC_HAND 32513
3775 #define OIC_QUES 32514
3776 #define OIC_BANG 32515
3777 #define OIC_NOTE 32516
3778 #define OIC_WINLOGO 32517
3779 #define OIC_WARNING OIC_BANG
3780 #define OIC_ERROR OIC_HAND
3781 #define OIC_INFORMATION OIC_NOTE
3782 #endif
3783
3784 #define ORD_LANGDRIVER 1
3785
3786 #ifndef NOICONS
3787
3788 #ifdef RC_INVOKED
3789 #define IDI_APPLICATION 32512
3790 #define IDI_HAND 32513
3791 #define IDI_QUESTION 32514
3792 #define IDI_EXCLAMATION 32515
3793 #define IDI_ASTERISK 32516
3794 #define IDI_WINLOGO 32517
3795 #else
3796 #define IDI_APPLICATION MAKEINTRESOURCE(32512)
3797 #define IDI_HAND MAKEINTRESOURCE(32513)
3798 #define IDI_QUESTION MAKEINTRESOURCE(32514)
3799 #define IDI_EXCLAMATION MAKEINTRESOURCE(32515)
3800 #define IDI_ASTERISK MAKEINTRESOURCE(32516)
3801 #define IDI_WINLOGO MAKEINTRESOURCE(32517)
3802 #endif
3803
3804 #define IDI_WARNING IDI_EXCLAMATION
3805 #define IDI_ERROR IDI_HAND
3806 #define IDI_INFORMATION IDI_ASTERISK
3807 #endif
3808
3809 #ifdef UNICODE
3810 #define LoadString LoadStringW
3811 #else
3812 #define LoadString LoadStringA
3813 #endif
3814
3815 WINUSERAPI int WINAPI LoadStringA(HINSTANCE hInstance,UINT uID,LPSTR lpBuffer,int cchBufferMax);
3816 WINUSERAPI int WINAPI LoadStringW(HINSTANCE hInstance,UINT uID,LPWSTR lpBuffer,int cchBufferMax);
3817
3818 #define IDOK 1
3819 #define IDCANCEL 2
3820 #define IDABORT 3
3821 #define IDRETRY 4
3822 #define IDIGNORE 5
3823 #define IDYES 6
3824 #define IDNO 7
3825 #define IDCLOSE 8
3826 #define IDHELP 9
3827 #define IDTRYAGAIN 10
3828 #define IDCONTINUE 11
3829
3830 #ifndef IDTIMEOUT
3831 #define IDTIMEOUT 32000
3832 #endif
3833
3834 #ifndef NOCTLMGR
3835
3836 #ifndef NOWINSTYLES
3837 #define ES_LEFT 0x0000L
3838 #define ES_CENTER 0x0001L
3839 #define ES_RIGHT 0x0002L
3840 #define ES_MULTILINE 0x0004L
3841 #define ES_UPPERCASE 0x0008L
3842 #define ES_LOWERCASE 0x0010L
3843 #define ES_PASSWORD 0x0020L
3844 #define ES_AUTOVSCROLL 0x0040L
3845 #define ES_AUTOHSCROLL 0x0080L
3846 #define ES_NOHIDESEL 0x0100L
3847 #define ES_OEMCONVERT 0x0400L
3848 #define ES_READONLY 0x0800L
3849 #define ES_WANTRETURN 0x1000L
3850 #define ES_NUMBER 0x2000L
3851 #endif
3852
3853 #define EN_SETFOCUS 0x0100
3854 #define EN_KILLFOCUS 0x0200
3855 #define EN_CHANGE 0x0300
3856 #define EN_UPDATE 0x0400
3857 #define EN_ERRSPACE 0x0500
3858 #define EN_MAXTEXT 0x0501
3859 #define EN_HSCROLL 0x0601
3860 #define EN_VSCROLL 0x0602
3861 #define EN_ALIGN_LTR_EC 0x0700
3862 #define EN_ALIGN_RTL_EC 0x0701
3863
3864 #define EC_LEFTMARGIN 0x0001
3865 #define EC_RIGHTMARGIN 0x0002
3866 #define EC_USEFONTINFO 0xffff
3867
3868 #define EMSIS_COMPOSITIONSTRING 0x0001
3869
3870 #define EIMES_GETCOMPSTRATONCE 0x0001
3871 #define EIMES_CANCELCOMPSTRINFOCUS 0x0002
3872 #define EIMES_COMPLETECOMPSTRKILLFOCUS 0x0004
3873
3874 #ifndef NOWINMESSAGES
3875
3876 #define EM_GETSEL 0x00B0
3877 #define EM_SETSEL 0x00B1
3878 #define EM_GETRECT 0x00B2
3879 #define EM_SETRECT 0x00B3
3880 #define EM_SETRECTNP 0x00B4
3881 #define EM_SCROLL 0x00B5
3882 #define EM_LINESCROLL 0x00B6
3883 #define EM_SCROLLCARET 0x00B7
3884 #define EM_GETMODIFY 0x00B8
3885 #define EM_SETMODIFY 0x00B9
3886 #define EM_GETLINECOUNT 0x00BA
3887 #define EM_LINEINDEX 0x00BB
3888 #define EM_SETHANDLE 0x00BC
3889 #define EM_GETHANDLE 0x00BD
3890 #define EM_GETTHUMB 0x00BE
3891 #define EM_LINELENGTH 0x00C1
3892 #define EM_REPLACESEL 0x00C2
3893 #define EM_GETLINE 0x00C4
3894 #define EM_LIMITTEXT 0x00C5
3895 #define EM_CANUNDO 0x00C6
3896 #define EM_UNDO 0x00C7
3897 #define EM_FMTLINES 0x00C8
3898 #define EM_LINEFROMCHAR 0x00C9
3899 #define EM_SETTABSTOPS 0x00CB
3900 #define EM_SETPASSWORDCHAR 0x00CC
3901 #define EM_EMPTYUNDOBUFFER 0x00CD
3902 #define EM_GETFIRSTVISIBLELINE 0x00CE
3903 #define EM_SETREADONLY 0x00CF
3904 #define EM_SETWORDBREAKPROC 0x00D0
3905 #define EM_GETWORDBREAKPROC 0x00D1
3906 #define EM_GETPASSWORDCHAR 0x00D2
3907 #define EM_SETMARGINS 0x00D3
3908 #define EM_GETMARGINS 0x00D4
3909 #define EM_SETLIMITTEXT EM_LIMITTEXT
3910 #define EM_GETLIMITTEXT 0x00D5
3911 #define EM_POSFROMCHAR 0x00D6
3912 #define EM_CHARFROMPOS 0x00D7
3913 #define EM_SETIMESTATUS 0x00D8
3914 #define EM_GETIMESTATUS 0x00D9
3915 #endif
3916
3917 #define WB_LEFT 0
3918 #define WB_RIGHT 1
3919 #define WB_ISDELIMITER 2
3920
3921 #define BS_PUSHBUTTON 0x00000000L
3922 #define BS_DEFPUSHBUTTON 0x00000001L
3923 #define BS_CHECKBOX 0x00000002L
3924 #define BS_AUTOCHECKBOX 0x00000003L
3925 #define BS_RADIOBUTTON 0x00000004L
3926 #define BS_3STATE 0x00000005L
3927 #define BS_AUTO3STATE 0x00000006L
3928 #define BS_GROUPBOX 0x00000007L
3929 #define BS_USERBUTTON 0x00000008L
3930 #define BS_AUTORADIOBUTTON 0x00000009L
3931 #define BS_PUSHBOX 0x0000000AL
3932 #define BS_OWNERDRAW 0x0000000BL
3933 #define BS_TYPEMASK 0x0000000FL
3934 #define BS_LEFTTEXT 0x00000020L
3935 #define BS_TEXT 0x00000000L
3936 #define BS_ICON 0x00000040L
3937 #define BS_BITMAP 0x00000080L
3938 #define BS_LEFT 0x00000100L
3939 #define BS_RIGHT 0x00000200L
3940 #define BS_CENTER 0x00000300L
3941 #define BS_TOP 0x00000400L
3942 #define BS_BOTTOM 0x00000800L
3943 #define BS_VCENTER 0x00000C00L
3944 #define BS_PUSHLIKE 0x00001000L
3945 #define BS_MULTILINE 0x00002000L
3946 #define BS_NOTIFY 0x00004000L
3947 #define BS_FLAT 0x00008000L
3948 #define BS_RIGHTBUTTON BS_LEFTTEXT
3949
3950 #define BN_CLICKED 0
3951 #define BN_PAINT 1
3952 #define BN_HILITE 2
3953 #define BN_UNHILITE 3
3954 #define BN_DISABLE 4
3955 #define BN_DOUBLECLICKED 5
3956 #define BN_PUSHED BN_HILITE
3957 #define BN_UNPUSHED BN_UNHILITE
3958 #define BN_DBLCLK BN_DOUBLECLICKED
3959 #define BN_SETFOCUS 6
3960 #define BN_KILLFOCUS 7
3961
3962 #define BM_GETCHECK 0x00F0
3963 #define BM_SETCHECK 0x00F1
3964 #define BM_GETSTATE 0x00F2
3965 #define BM_SETSTATE 0x00F3
3966 #define BM_SETSTYLE 0x00F4
3967 #define BM_CLICK 0x00F5
3968 #define BM_GETIMAGE 0x00F6
3969 #define BM_SETIMAGE 0x00F7
3970
3971 #define BST_UNCHECKED 0x0000
3972 #define BST_CHECKED 0x0001
3973 #define BST_INDETERMINATE 0x0002
3974 #define BST_PUSHED 0x0004
3975 #define BST_FOCUS 0x0008
3976
3977 #define SS_LEFT 0x00000000L
3978 #define SS_CENTER 0x00000001L
3979 #define SS_RIGHT 0x00000002L
3980 #define SS_ICON 0x00000003L
3981 #define SS_BLACKRECT 0x00000004L
3982 #define SS_GRAYRECT 0x00000005L
3983 #define SS_WHITERECT 0x00000006L
3984 #define SS_BLACKFRAME 0x00000007L
3985 #define SS_GRAYFRAME 0x00000008L
3986 #define SS_WHITEFRAME 0x00000009L
3987 #define SS_USERITEM 0x0000000AL
3988 #define SS_SIMPLE 0x0000000BL
3989 #define SS_LEFTNOWORDWRAP 0x0000000CL
3990 #define SS_OWNERDRAW 0x0000000DL
3991 #define SS_BITMAP 0x0000000EL
3992 #define SS_ENHMETAFILE 0x0000000FL
3993 #define SS_ETCHEDHORZ 0x00000010L
3994 #define SS_ETCHEDVERT 0x00000011L
3995 #define SS_ETCHEDFRAME 0x00000012L
3996 #define SS_TYPEMASK 0x0000001FL
3997 #define SS_REALSIZECONTROL 0x00000040L
3998 #define SS_NOPREFIX 0x00000080L
3999 #define SS_NOTIFY 0x00000100L
4000 #define SS_CENTERIMAGE 0x00000200L
4001 #define SS_RIGHTJUST 0x00000400L
4002 #define SS_REALSIZEIMAGE 0x00000800L
4003 #define SS_SUNKEN 0x00001000L
4004 #define SS_EDITCONTROL 0x00002000L
4005 #define SS_ENDELLIPSIS 0x00004000L
4006 #define SS_PATHELLIPSIS 0x00008000L
4007 #define SS_WORDELLIPSIS 0x0000C000L
4008 #define SS_ELLIPSISMASK 0x0000C000L
4009
4010 #ifndef NOWINMESSAGES
4011
4012 #define STM_SETICON 0x0170
4013 #define STM_GETICON 0x0171
4014 #define STM_SETIMAGE 0x0172
4015 #define STM_GETIMAGE 0x0173
4016 #define STN_CLICKED 0
4017 #define STN_DBLCLK 1
4018 #define STN_ENABLE 2
4019 #define STN_DISABLE 3
4020 #define STM_MSGMAX 0x0174
4021 #endif
4022
4023 #define WC_DIALOG (MAKEINTATOM(0x8002))
4024
4025 #define DWL_MSGRESULT 0
4026 #define DWL_DLGPROC 4
4027 #define DWL_USER 8
4028
4029 #ifdef _WIN64
4030
4031 #undef DWL_MSGRESULT
4032 #undef DWL_DLGPROC
4033 #undef DWL_USER
4034 #endif
4035
4036 #define DWLP_MSGRESULT 0
4037 #define DWLP_DLGPROC DWLP_MSGRESULT + sizeof(LRESULT)
4038 #define DWLP_USER DWLP_DLGPROC + sizeof(DLGPROC)
4039
4040 #ifndef NOMSG
4041
4042 #ifdef UNICODE
4043 #define IsDialogMessage IsDialogMessageW
4044 #else
4045 #define IsDialogMessage IsDialogMessageA
4046 #endif
4047
4048 WINUSERAPI WINBOOL WINAPI IsDialogMessageA(HWND hDlg,LPMSG lpMsg);
4049 WINUSERAPI WINBOOL WINAPI IsDialogMessageW(HWND hDlg,LPMSG lpMsg);
4050 #endif
4051
4052 #ifdef UNICODE
4053 #define DlgDirList DlgDirListW
4054 #define DlgDirSelectEx DlgDirSelectExW
4055 #define DlgDirListComboBox DlgDirListComboBoxW
4056 #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW
4057 #else
4058 #define DlgDirList DlgDirListA
4059 #define DlgDirSelectEx DlgDirSelectExA
4060 #define DlgDirListComboBox DlgDirListComboBoxA
4061 #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA
4062 #endif
4063
4064 WINUSERAPI WINBOOL WINAPI MapDialogRect(HWND hDlg,LPRECT lpRect);
4065 WINUSERAPI int WINAPI DlgDirListA(HWND hDlg,LPSTR lpPathSpec,int nIDListBox,int nIDStaticPath,UINT uFileType);
4066 WINUSERAPI int WINAPI DlgDirListW(HWND hDlg,LPWSTR lpPathSpec,int nIDListBox,int nIDStaticPath,UINT uFileType);
4067
4068 #define DDL_READWRITE 0x0000
4069 #define DDL_READONLY 0x0001
4070 #define DDL_HIDDEN 0x0002
4071 #define DDL_SYSTEM 0x0004
4072 #define DDL_DIRECTORY 0x0010
4073 #define DDL_ARCHIVE 0x0020
4074
4075 #define DDL_POSTMSGS 0x2000
4076 #define DDL_DRIVES 0x4000
4077 #define DDL_EXCLUSIVE 0x8000
4078
4079 WINUSERAPI WINBOOL WINAPI DlgDirSelectExA(HWND hwndDlg,LPSTR lpString,int chCount,int idListBox);
4080 WINUSERAPI WINBOOL WINAPI DlgDirSelectExW(HWND hwndDlg,LPWSTR lpString,int chCount,int idListBox);
4081 WINUSERAPI int WINAPI DlgDirListComboBoxA(HWND hDlg,LPSTR lpPathSpec,int nIDComboBox,int nIDStaticPath,UINT uFiletype);
4082 WINUSERAPI int WINAPI DlgDirListComboBoxW(HWND hDlg,LPWSTR lpPathSpec,int nIDComboBox,int nIDStaticPath,UINT uFiletype);
4083 WINUSERAPI WINBOOL WINAPI DlgDirSelectComboBoxExA(HWND hwndDlg,LPSTR lpString,int cchOut,int idComboBox);
4084 WINUSERAPI WINBOOL WINAPI DlgDirSelectComboBoxExW(HWND hwndDlg,LPWSTR lpString,int cchOut,int idComboBox);
4085
4086 #define DS_ABSALIGN 0x01L
4087 #define DS_SYSMODAL 0x02L
4088 #define DS_LOCALEDIT 0x20L
4089 #define DS_SETFONT 0x40L
4090 #define DS_MODALFRAME 0x80L
4091 #define DS_NOIDLEMSG 0x100L
4092 #define DS_SETFOREGROUND 0x200L
4093
4094 #define DS_3DLOOK 0x0004L
4095 #define DS_FIXEDSYS 0x0008L
4096 #define DS_NOFAILCREATE 0x0010L
4097 #define DS_CONTROL 0x0400L
4098 #define DS_CENTER 0x0800L
4099 #define DS_CENTERMOUSE 0x1000L
4100 #define DS_CONTEXTHELP 0x2000L
4101
4102 #define DS_SHELLFONT (DS_SETFONT | DS_FIXEDSYS)
4103
4104 #if(_WIN32_WCE >= 0x0500)
4105 #define DS_USEPIXELS 0x8000L
4106 #endif
4107
4108 #define DM_GETDEFID (WM_USER+0)
4109 #define DM_SETDEFID (WM_USER+1)
4110 #define DM_REPOSITION (WM_USER+2)
4111
4112 #define DC_HASDEFID 0x534B
4113
4114 #define DLGC_WANTARROWS 0x0001
4115 #define DLGC_WANTTAB 0x0002
4116 #define DLGC_WANTALLKEYS 0x0004
4117 #define DLGC_WANTMESSAGE 0x0004
4118 #define DLGC_HASSETSEL 0x0008
4119 #define DLGC_DEFPUSHBUTTON 0x0010
4120 #define DLGC_UNDEFPUSHBUTTON 0x0020
4121 #define DLGC_RADIOBUTTON 0x0040
4122 #define DLGC_WANTCHARS 0x0080
4123 #define DLGC_STATIC 0x0100
4124 #define DLGC_BUTTON 0x2000
4125
4126 #define LB_CTLCODE 0L
4127
4128 #define LB_OKAY 0
4129 #define LB_ERR (-1)
4130 #define LB_ERRSPACE (-2)
4131
4132 #define LBN_ERRSPACE (-2)
4133 #define LBN_SELCHANGE 1
4134 #define LBN_DBLCLK 2
4135 #define LBN_SELCANCEL 3
4136 #define LBN_SETFOCUS 4
4137 #define LBN_KILLFOCUS 5
4138
4139 #ifndef NOWINMESSAGES
4140
4141 #define LB_ADDSTRING 0x0180
4142 #define LB_INSERTSTRING 0x0181
4143 #define LB_DELETESTRING 0x0182
4144 #define LB_SELITEMRANGEEX 0x0183
4145 #define LB_RESETCONTENT 0x0184
4146 #define LB_SETSEL 0x0185
4147 #define LB_SETCURSEL 0x0186
4148 #define LB_GETSEL 0x0187
4149 #define LB_GETCURSEL 0x0188
4150 #define LB_GETTEXT 0x0189
4151 #define LB_GETTEXTLEN 0x018A
4152 #define LB_GETCOUNT 0x018B
4153 #define LB_SELECTSTRING 0x018C
4154 #define LB_DIR 0x018D
4155 #define LB_GETTOPINDEX 0x018E
4156 #define LB_FINDSTRING 0x018F
4157 #define LB_GETSELCOUNT 0x0190
4158 #define LB_GETSELITEMS 0x0191
4159 #define LB_SETTABSTOPS 0x0192
4160 #define LB_GETHORIZONTALEXTENT 0x0193
4161 #define LB_SETHORIZONTALEXTENT 0x0194
4162 #define LB_SETCOLUMNWIDTH 0x0195
4163 #define LB_ADDFILE 0x0196
4164 #define LB_SETTOPINDEX 0x0197
4165 #define LB_GETITEMRECT 0x0198
4166 #define LB_GETITEMDATA 0x0199
4167 #define LB_SETITEMDATA 0x019A
4168 #define LB_SELITEMRANGE 0x019B
4169 #define LB_SETANCHORINDEX 0x019C
4170 #define LB_GETANCHORINDEX 0x019D
4171 #define LB_SETCARETINDEX 0x019E
4172 #define LB_GETCARETINDEX 0x019F
4173 #define LB_SETITEMHEIGHT 0x01A0
4174 #define LB_GETITEMHEIGHT 0x01A1
4175 #define LB_FINDSTRINGEXACT 0x01A2
4176 #define LB_SETLOCALE 0x01A5
4177 #define LB_GETLOCALE 0x01A6
4178 #define LB_SETCOUNT 0x01A7
4179 #define LB_INITSTORAGE 0x01A8
4180 #define LB_ITEMFROMPOINT 0x01A9
4181 #if(_WIN32_WCE >= 0x0400)
4182 #define LB_MULTIPLEADDSTRING 0x01B1
4183 #endif
4184 #define LB_GETLISTBOXINFO 0x01B2
4185 #define LB_MSGMAX 0x01B3
4186 #endif
4187
4188 #ifndef NOWINSTYLES
4189
4190 #define LBS_NOTIFY 0x0001L
4191 #define LBS_SORT 0x0002L
4192 #define LBS_NOREDRAW 0x0004L
4193 #define LBS_MULTIPLESEL 0x0008L
4194 #define LBS_OWNERDRAWFIXED 0x0010L
4195 #define LBS_OWNERDRAWVARIABLE 0x0020L
4196 #define LBS_HASSTRINGS 0x0040L
4197 #define LBS_USETABSTOPS 0x0080L
4198 #define LBS_NOINTEGRALHEIGHT 0x0100L
4199 #define LBS_MULTICOLUMN 0x0200L
4200 #define LBS_WANTKEYBOARDINPUT 0x0400L
4201 #define LBS_EXTENDEDSEL 0x0800L
4202 #define LBS_DISABLENOSCROLL 0x1000L
4203 #define LBS_NODATA 0x2000L
4204 #define LBS_NOSEL 0x4000L
4205 #define LBS_COMBOBOX 0x8000L
4206
4207 #define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
4208 #endif
4209
4210 #define CB_OKAY 0
4211 #define CB_ERR (-1)
4212 #define CB_ERRSPACE (-2)
4213
4214 #define CBN_ERRSPACE (-1)
4215 #define CBN_SELCHANGE 1
4216 #define CBN_DBLCLK 2
4217 #define CBN_SETFOCUS 3
4218 #define CBN_KILLFOCUS 4
4219 #define CBN_EDITCHANGE 5
4220 #define CBN_EDITUPDATE 6
4221 #define CBN_DROPDOWN 7
4222 #define CBN_CLOSEUP 8
4223 #define CBN_SELENDOK 9
4224 #define CBN_SELENDCANCEL 10
4225
4226 #ifndef NOWINSTYLES
4227
4228 #define CBS_SIMPLE 0x0001L
4229 #define CBS_DROPDOWN 0x0002L
4230 #define CBS_DROPDOWNLIST 0x0003L
4231 #define CBS_OWNERDRAWFIXED 0x0010L
4232 #define CBS_OWNERDRAWVARIABLE 0x0020L
4233 #define CBS_AUTOHSCROLL 0x0040L
4234 #define CBS_OEMCONVERT 0x0080L
4235 #define CBS_SORT 0x0100L
4236 #define CBS_HASSTRINGS 0x0200L
4237 #define CBS_NOINTEGRALHEIGHT 0x0400L
4238 #define CBS_DISABLENOSCROLL 0x0800L
4239 #define CBS_UPPERCASE 0x2000L
4240 #define CBS_LOWERCASE 0x4000L
4241 #endif
4242
4243 #ifndef NOWINMESSAGES
4244 #define CB_GETEDITSEL 0x0140
4245 #define CB_LIMITTEXT 0x0141
4246 #define CB_SETEDITSEL 0x0142
4247 #define CB_ADDSTRING 0x0143
4248 #define CB_DELETESTRING 0x0144
4249 #define CB_DIR 0x0145
4250 #define CB_GETCOUNT 0x0146
4251 #define CB_GETCURSEL 0x0147
4252 #define CB_GETLBTEXT 0x0148
4253 #define CB_GETLBTEXTLEN 0x0149
4254 #define CB_INSERTSTRING 0x014A
4255 #define CB_RESETCONTENT 0x014B
4256 #define CB_FINDSTRING 0x014C
4257 #define CB_SELECTSTRING 0x014D
4258 #define CB_SETCURSEL 0x014E
4259 #define CB_SHOWDROPDOWN 0x014F
4260 #define CB_GETITEMDATA 0x0150
4261 #define CB_SETITEMDATA 0x0151
4262 #define CB_GETDROPPEDCONTROLRECT 0x0152
4263 #define CB_SETITEMHEIGHT 0x0153
4264 #define CB_GETITEMHEIGHT 0x0154
4265 #define CB_SETEXTENDEDUI 0x0155
4266 #define CB_GETEXTENDEDUI 0x0156
4267 #define CB_GETDROPPEDSTATE 0x0157
4268 #define CB_FINDSTRINGEXACT 0x0158
4269 #define CB_SETLOCALE 0x0159
4270 #define CB_GETLOCALE 0x015A
4271 #define CB_GETTOPINDEX 0x015b
4272 #define CB_SETTOPINDEX 0x015c
4273 #define CB_GETHORIZONTALEXTENT 0x015d
4274 #define CB_SETHORIZONTALEXTENT 0x015e
4275 #define CB_GETDROPPEDWIDTH 0x015f
4276 #define CB_SETDROPPEDWIDTH 0x0160
4277 #define CB_INITSTORAGE 0x0161
4278 #if(_WIN32_WCE >= 0x0400)
4279 #define CB_MULTIPLEADDSTRING 0x0163
4280 #endif
4281 #define CB_GETCOMBOBOXINFO 0x0164
4282 #define CB_MSGMAX 0x0165
4283 #endif
4284
4285 #ifndef NOWINSTYLES
4286
4287 #define SBS_HORZ 0x0000L
4288 #define SBS_VERT 0x0001L
4289 #define SBS_TOPALIGN 0x0002L
4290 #define SBS_LEFTALIGN 0x0002L
4291 #define SBS_BOTTOMALIGN 0x0004L
4292 #define SBS_RIGHTALIGN 0x0004L
4293 #define SBS_SIZEBOXTOPLEFTALIGN 0x0002L
4294 #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
4295 #define SBS_SIZEBOX 0x0008L
4296 #define SBS_SIZEGRIP 0x0010L
4297 #endif
4298
4299 #ifndef NOWINMESSAGES
4300 #define SBM_SETPOS 0x00E0
4301 #define SBM_GETPOS 0x00E1
4302 #define SBM_SETRANGE 0x00E2
4303 #define SBM_SETRANGEREDRAW 0x00E6
4304 #define SBM_GETRANGE 0x00E3
4305 #define SBM_ENABLE_ARROWS 0x00E4
4306 #define SBM_SETSCROLLINFO 0x00E9
4307 #define SBM_GETSCROLLINFO 0x00EA
4308 #define SBM_GETSCROLLBARINFO 0x00EB
4309
4310 #define SIF_RANGE 0x0001
4311 #define SIF_PAGE 0x0002
4312 #define SIF_POS 0x0004
4313 #define SIF_DISABLENOSCROLL 0x0008
4314 #define SIF_TRACKPOS 0x0010
4315 #define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)
4316
4317 typedef struct tagSCROLLINFO {
4318 UINT cbSize;
4319 UINT fMask;
4320 int nMin;
4321 int nMax;
4322 UINT nPage;
4323 int nPos;
4324 int nTrackPos;
4325 } SCROLLINFO,*LPSCROLLINFO;
4326 typedef SCROLLINFO CONST *LPCSCROLLINFO;
4327
4328 WINUSERAPI int WINAPI SetScrollInfo(HWND hwnd,int nBar,LPCSCROLLINFO lpsi,WINBOOL redraw);
4329 WINUSERAPI WINBOOL WINAPI GetScrollInfo(HWND hwnd,int nBar,LPSCROLLINFO lpsi);
4330 #endif
4331 #endif
4332
4333 #ifndef NOMDI
4334
4335 #define MDIS_ALLCHILDSTYLES 0x0001
4336
4337 #define MDITILE_VERTICAL 0x0000
4338 #define MDITILE_HORIZONTAL 0x0001
4339 #define MDITILE_SKIPDISABLED 0x0002
4340 #define MDITILE_ZORDER 0x0004
4341
4342 typedef struct tagMDICREATESTRUCTA {
4343 LPCSTR szClass;
4344 LPCSTR szTitle;
4345 HANDLE hOwner;
4346 int x;
4347 int y;
4348 int cx;
4349 int cy;
4350 DWORD style;
4351 LPARAM lParam;
4352 } MDICREATESTRUCTA,*LPMDICREATESTRUCTA;
4353
4354 typedef struct tagMDICREATESTRUCTW {
4355 LPCWSTR szClass;
4356 LPCWSTR szTitle;
4357 HANDLE hOwner;
4358 int x;
4359 int y;
4360 int cx;
4361 int cy;
4362 DWORD style;
4363 LPARAM lParam;
4364 } MDICREATESTRUCTW,*LPMDICREATESTRUCTW;
4365
4366 #ifdef UNICODE
4367 typedef MDICREATESTRUCTW MDICREATESTRUCT;
4368 typedef LPMDICREATESTRUCTW LPMDICREATESTRUCT;
4369 #else
4370 typedef MDICREATESTRUCTA MDICREATESTRUCT;
4371 typedef LPMDICREATESTRUCTA LPMDICREATESTRUCT;
4372 #endif
4373
4374 typedef struct tagCLIENTCREATESTRUCT {
4375 HANDLE hWindowMenu;
4376 UINT idFirstChild;
4377 } CLIENTCREATESTRUCT,*LPCLIENTCREATESTRUCT;
4378
4379 #ifdef UNICODE
4380 #define DefFrameProc DefFrameProcW
4381 #define DefMDIChildProc DefMDIChildProcW
4382 #define CreateMDIWindow CreateMDIWindowW
4383 #else
4384 #define DefFrameProc DefFrameProcA
4385 #define DefMDIChildProc DefMDIChildProcA
4386 #define CreateMDIWindow CreateMDIWindowA
4387 #endif
4388
4389 WINUSERAPI LRESULT WINAPI DefFrameProcA(HWND hWnd,HWND hWndMDIClient,UINT uMsg,WPARAM wParam,LPARAM lParam);
4390 WINUSERAPI LRESULT WINAPI DefFrameProcW(HWND hWnd,HWND hWndMDIClient,UINT uMsg,WPARAM wParam,LPARAM lParam);
4391 WINUSERAPI LRESULT WINAPI DefMDIChildProcA(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
4392 WINUSERAPI LRESULT WINAPI DefMDIChildProcW(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
4393
4394 #ifndef NOMSG
4395 WINUSERAPI WINBOOL WINAPI TranslateMDISysAccel(HWND hWndClient,LPMSG lpMsg);
4396 #endif
4397
4398 WINUSERAPI UINT WINAPI ArrangeIconicWindows(HWND hWnd);
4399 WINUSERAPI HWND WINAPI CreateMDIWindowA(LPCSTR lpClassName,LPCSTR lpWindowName,DWORD dwStyle,int X,int Y,int nWidth,int nHeight,HWND hWndParent,HINSTANCE hInstance,LPARAM lParam);
4400 WINUSERAPI HWND WINAPI CreateMDIWindowW(LPCWSTR lpClassName,LPCWSTR lpWindowName,DWORD dwStyle,int X,int Y,int nWidth,int nHeight,HWND hWndParent,HINSTANCE hInstance,LPARAM lParam);
4401 WINUSERAPI WORD WINAPI TileWindows(HWND hwndParent,UINT wHow,CONST RECT *lpRect,UINT cKids,const HWND *lpKids);
4402 WINUSERAPI WORD WINAPI CascadeWindows(HWND hwndParent,UINT wHow,CONST RECT *lpRect,UINT cKids,const HWND *lpKids);
4403 #endif
4404 #endif
4405
4406 #ifndef NOHELP
4407
4408 typedef DWORD HELPPOLY;
4409 typedef struct tagMULTIKEYHELPA {
4410 DWORD mkSize;
4411 CHAR mkKeylist;
4412 CHAR szKeyphrase[1];
4413 } MULTIKEYHELPA,*PMULTIKEYHELPA,*LPMULTIKEYHELPA;
4414
4415 typedef struct tagMULTIKEYHELPW {
4416 DWORD mkSize;
4417 WCHAR mkKeylist;
4418 WCHAR szKeyphrase[1];
4419 } MULTIKEYHELPW,*PMULTIKEYHELPW,*LPMULTIKEYHELPW;
4420
4421 #ifdef UNICODE
4422 typedef MULTIKEYHELPW MULTIKEYHELP;
4423 typedef PMULTIKEYHELPW PMULTIKEYHELP;
4424 typedef LPMULTIKEYHELPW LPMULTIKEYHELP;
4425 #else
4426 typedef MULTIKEYHELPA MULTIKEYHELP;
4427 typedef PMULTIKEYHELPA PMULTIKEYHELP;
4428 typedef LPMULTIKEYHELPA LPMULTIKEYHELP;
4429 #endif
4430
4431 typedef struct tagHELPWININFOA {
4432 int wStructSize;
4433 int x;
4434 int y;
4435 int dx;
4436 int dy;
4437 int wMax;
4438 CHAR rgchMember[2];
4439 } HELPWININFOA,*PHELPWININFOA,*LPHELPWININFOA;
4440
4441 typedef struct tagHELPWININFOW {
4442 int wStructSize;
4443 int x;
4444 int y;
4445 int dx;
4446 int dy;
4447 int wMax;
4448 WCHAR rgchMember[2];
4449 } HELPWININFOW,*PHELPWININFOW,*LPHELPWININFOW;
4450
4451 #ifdef UNICODE
4452 typedef HELPWININFOW HELPWININFO;
4453 typedef PHELPWININFOW PHELPWININFO;
4454 typedef LPHELPWININFOW LPHELPWININFO;
4455 #else
4456 typedef HELPWININFOA HELPWININFO;
4457 typedef PHELPWININFOA PHELPWININFO;
4458 typedef LPHELPWININFOA LPHELPWININFO;
4459 #endif
4460
4461 #define HELP_CONTEXT 0x0001L
4462 #define HELP_QUIT 0x0002L
4463 #define HELP_INDEX 0x0003L
4464 #define HELP_CONTENTS 0x0003L
4465 #define HELP_HELPONHELP 0x0004L
4466 #define HELP_SETINDEX 0x0005L
4467 #define HELP_SETCONTENTS 0x0005L
4468 #define HELP_CONTEXTPOPUP 0x0008L
4469 #define HELP_FORCEFILE 0x0009L
4470 #define HELP_KEY 0x0101L
4471 #define HELP_COMMAND 0x0102L
4472 #define HELP_PARTIALKEY 0x0105L
4473 #define HELP_MULTIKEY 0x0201L
4474 #define HELP_SETWINPOS 0x0203L
4475 #define HELP_CONTEXTMENU 0x000a
4476 #define HELP_FINDER 0x000b
4477 #define HELP_WM_HELP 0x000c
4478 #define HELP_SETPOPUP_POS 0x000d
4479
4480 #define HELP_TCARD 0x8000
4481 #define HELP_TCARD_DATA 0x0010
4482 #define HELP_TCARD_OTHER_CALLER 0x0011
4483
4484 #define IDH_NO_HELP 28440
4485 #define IDH_MISSING_CONTEXT 28441
4486 #define IDH_GENERIC_HELP_BUTTON 28442
4487 #define IDH_OK 28443
4488 #define IDH_CANCEL 28444
4489 #define IDH_HELP 28445
4490
4491 #ifdef UNICODE
4492 #define WinHelp WinHelpW
4493 #else
4494 #define WinHelp WinHelpA
4495 #endif
4496
4497 WINUSERAPI WINBOOL WINAPI WinHelpA(HWND hWndMain,LPCSTR lpszHelp,UINT uCommand,ULONG_PTR dwData);
4498 WINUSERAPI WINBOOL WINAPI WinHelpW(HWND hWndMain,LPCWSTR lpszHelp,UINT uCommand,ULONG_PTR dwData);
4499 #endif
4500
4501 #define GR_GDIOBJECTS 0
4502 #define GR_USEROBJECTS 1
4503
4504 WINUSERAPI DWORD WINAPI GetGuiResources(HANDLE hProcess,DWORD uiFlags);
4505
4506 #ifndef NOSYSPARAMSINFO
4507
4508 #define SPI_GETBEEP 0x0001
4509 #define SPI_SETBEEP 0x0002
4510 #define SPI_GETMOUSE 0x0003
4511 #define SPI_SETMOUSE 0x0004
4512 #define SPI_GETBORDER 0x0005
4513 #define SPI_SETBORDER 0x0006
4514 #define SPI_GETKEYBOARDSPEED 0x000A
4515 #define SPI_SETKEYBOARDSPEED 0x000B
4516 #define SPI_LANGDRIVER 0x000C
4517 #define SPI_ICONHORIZONTALSPACING 0x000D
4518 #define SPI_GETSCREENSAVETIMEOUT 0x000E
4519 #define SPI_SETSCREENSAVETIMEOUT 0x000F
4520 #define SPI_GETSCREENSAVEACTIVE 0x0010
4521 #define SPI_SETSCREENSAVEACTIVE 0x0011
4522 #define SPI_GETGRIDGRANULARITY 0x0012
4523 #define SPI_SETGRIDGRANULARITY 0x0013
4524 #define SPI_SETDESKWALLPAPER 0x0014
4525 #define SPI_SETDESKPATTERN 0x0015
4526 #define SPI_GETKEYBOARDDELAY 0x0016
4527 #define SPI_SETKEYBOARDDELAY 0x0017
4528 #define SPI_ICONVERTICALSPACING 0x0018
4529 #define SPI_GETICONTITLEWRAP 0x0019
4530 #define SPI_SETICONTITLEWRAP 0x001A
4531 #define SPI_GETMENUDROPALIGNMENT 0x001B
4532 #define SPI_SETMENUDROPALIGNMENT 0x001C
4533 #define SPI_SETDOUBLECLKWIDTH 0x001D
4534 #define SPI_SETDOUBLECLKHEIGHT 0x001E
4535 #define SPI_GETICONTITLELOGFONT 0x001F
4536 #define SPI_SETDOUBLECLICKTIME 0x0020
4537 #define SPI_SETMOUSEBUTTONSWAP 0x0021
4538 #define SPI_SETICONTITLELOGFONT 0x0022
4539 #define SPI_GETFASTTASKSWITCH 0x0023
4540 #define SPI_SETFASTTASKSWITCH 0x0024
4541 #define SPI_SETDRAGFULLWINDOWS 0x0025
4542 #define SPI_GETDRAGFULLWINDOWS 0x0026
4543 #define SPI_GETNONCLIENTMETRICS 0x0029
4544 #define SPI_SETNONCLIENTMETRICS 0x002A
4545 #define SPI_GETMINIMIZEDMETRICS 0x002B
4546 #define SPI_SETMINIMIZEDMETRICS 0x002C
4547 #define SPI_GETICONMETRICS 0x002D
4548 #define SPI_SETICONMETRICS 0x002E
4549 #define SPI_SETWORKAREA 0x002F
4550 #define SPI_GETWORKAREA 0x0030
4551 #define SPI_SETPENWINDOWS 0x0031
4552
4553 #define SPI_GETHIGHCONTRAST 0x0042
4554 #define SPI_SETHIGHCONTRAST 0x0043
4555 #define SPI_GETKEYBOARDPREF 0x0044
4556 #define SPI_SETKEYBOARDPREF 0x0045
4557 #define SPI_GETSCREENREADER 0x0046
4558 #define SPI_SETSCREENREADER 0x0047
4559 #define SPI_GETANIMATION 0x0048
4560 #define SPI_SETANIMATION 0x0049
4561 #define SPI_GETFONTSMOOTHING 0x004A
4562 #define SPI_SETFONTSMOOTHING 0x004B
4563 #define SPI_SETDRAGWIDTH 0x004C
4564 #define SPI_SETDRAGHEIGHT 0x004D
4565 #define SPI_SETHANDHELD 0x004E
4566 #define SPI_GETLOWPOWERTIMEOUT 0x004F
4567 #define SPI_GETPOWEROFFTIMEOUT 0x0050
4568 #define SPI_SETLOWPOWERTIMEOUT 0x0051
4569 #define SPI_SETPOWEROFFTIMEOUT 0x0052
4570 #define SPI_GETLOWPOWERACTIVE 0x0053
4571 #define SPI_GETPOWEROFFACTIVE 0x0054
4572 #define SPI_SETLOWPOWERACTIVE 0x0055
4573 #define SPI_SETPOWEROFFACTIVE 0x0056
4574 #define SPI_SETCURSORS 0x0057
4575 #define SPI_SETICONS 0x0058
4576 #define SPI_GETDEFAULTINPUTLANG 0x0059
4577 #define SPI_SETDEFAULTINPUTLANG 0x005A
4578 #define SPI_SETLANGTOGGLE 0x005B
4579 #define SPI_GETWINDOWSEXTENSION 0x005C
4580 #define SPI_SETMOUSETRAILS 0x005D
4581 #define SPI_GETMOUSETRAILS 0x005E
4582 #define SPI_SETSCREENSAVERRUNNING 0x0061
4583 #define SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING
4584 #define SPI_GETFILTERKEYS 0x0032
4585 #define SPI_SETFILTERKEYS 0x0033
4586 #define SPI_GETTOGGLEKEYS 0x0034
4587 #define SPI_SETTOGGLEKEYS 0x0035
4588 #define SPI_GETMOUSEKEYS 0x0036
4589 #define SPI_SETMOUSEKEYS 0x0037
4590 #define SPI_GETSHOWSOUNDS 0x0038
4591 #define SPI_SETSHOWSOUNDS 0x0039
4592 #define SPI_GETSTICKYKEYS 0x003A
4593 #define SPI_SETSTICKYKEYS 0x003B
4594 #define SPI_GETACCESSTIMEOUT 0x003C
4595 #define SPI_SETACCESSTIMEOUT 0x003D
4596 #define SPI_GETSERIALKEYS 0x003E
4597 #define SPI_SETSERIALKEYS 0x003F
4598 #define SPI_GETSOUNDSENTRY 0x0040
4599 #define SPI_SETSOUNDSENTRY 0x0041
4600 #define SPI_GETSNAPTODEFBUTTON 0x005F
4601 #define SPI_SETSNAPTODEFBUTTON 0x0060
4602 #define SPI_GETMOUSEHOVERWIDTH 0x0062
4603 #define SPI_SETMOUSEHOVERWIDTH 0x0063
4604 #define SPI_GETMOUSEHOVERHEIGHT 0x0064
4605 #define SPI_SETMOUSEHOVERHEIGHT 0x0065
4606 #define SPI_GETMOUSEHOVERTIME 0x0066
4607 #define SPI_SETMOUSEHOVERTIME 0x0067
4608 #define SPI_GETWHEELSCROLLLINES 0x0068
4609 #define SPI_SETWHEELSCROLLLINES 0x0069
4610 #define SPI_GETMENUSHOWDELAY 0x006A
4611 #define SPI_SETMENUSHOWDELAY 0x006B
4612 #define SPI_GETSHOWIMEUI 0x006E
4613 #define SPI_SETSHOWIMEUI 0x006F
4614 #define SPI_GETMOUSESPEED 0x0070
4615 #define SPI_SETMOUSESPEED 0x0071
4616 #define SPI_GETSCREENSAVERRUNNING 0x0072
4617 #define SPI_GETDESKWALLPAPER 0x0073
4618
4619 #define SPI_GETACTIVEWINDOWTRACKING 0x1000
4620 #define SPI_SETACTIVEWINDOWTRACKING 0x1001
4621 #define SPI_GETMENUANIMATION 0x1002
4622 #define SPI_SETMENUANIMATION 0x1003
4623 #define SPI_GETCOMBOBOXANIMATION 0x1004
4624 #define SPI_SETCOMBOBOXANIMATION 0x1005
4625 #define SPI_GETLISTBOXSMOOTHSCROLLING 0x1006
4626 #define SPI_SETLISTBOXSMOOTHSCROLLING 0x1007
4627 #define SPI_GETGRADIENTCAPTIONS 0x1008
4628 #define SPI_SETGRADIENTCAPTIONS 0x1009
4629 #define SPI_GETKEYBOARDCUES 0x100A
4630 #define SPI_SETKEYBOARDCUES 0x100B
4631 #define SPI_GETMENUUNDERLINES SPI_GETKEYBOARDCUES
4632 #define SPI_SETMENUUNDERLINES SPI_SETKEYBOARDCUES
4633 #define SPI_GETACTIVEWNDTRKZORDER 0x100C
4634 #define SPI_SETACTIVEWNDTRKZORDER 0x100D
4635 #define SPI_GETHOTTRACKING 0x100E
4636 #define SPI_SETHOTTRACKING 0x100F
4637 #define SPI_GETMENUFADE 0x1012
4638 #define SPI_SETMENUFADE 0x1013
4639 #define SPI_GETSELECTIONFADE 0x1014
4640 #define SPI_SETSELECTIONFADE 0x1015
4641 #define SPI_GETTOOLTIPANIMATION 0x1016
4642 #define SPI_SETTOOLTIPANIMATION 0x1017
4643 #define SPI_GETTOOLTIPFADE 0x1018
4644 #define SPI_SETTOOLTIPFADE 0x1019
4645 #define SPI_GETCURSORSHADOW 0x101A
4646 #define SPI_SETCURSORSHADOW 0x101B
4647 #define SPI_GETMOUSESONAR 0x101C
4648 #define SPI_SETMOUSESONAR 0x101D
4649 #define SPI_GETMOUSECLICKLOCK 0x101E
4650 #define SPI_SETMOUSECLICKLOCK 0x101F
4651 #define SPI_GETMOUSEVANISH 0x1020
4652 #define SPI_SETMOUSEVANISH 0x1021
4653 #define SPI_GETFLATMENU 0x1022
4654 #define SPI_SETFLATMENU 0x1023
4655 #define SPI_GETDROPSHADOW 0x1024
4656 #define SPI_SETDROPSHADOW 0x1025
4657 #define SPI_GETBLOCKSENDINPUTRESETS 0x1026
4658 #define SPI_SETBLOCKSENDINPUTRESETS 0x1027
4659 #define SPI_GETUIEFFECTS 0x103E
4660 #define SPI_SETUIEFFECTS 0x103F
4661 #define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000
4662 #define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001
4663 #define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002
4664 #define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003
4665 #define SPI_GETFOREGROUNDFLASHCOUNT 0x2004
4666 #define SPI_SETFOREGROUNDFLASHCOUNT 0x2005
4667 #define SPI_GETCARETWIDTH 0x2006
4668 #define SPI_SETCARETWIDTH 0x2007
4669 #define SPI_GETMOUSECLICKLOCKTIME 0x2008
4670 #define SPI_SETMOUSECLICKLOCKTIME 0x2009
4671 #define SPI_GETFONTSMOOTHINGTYPE 0x200A
4672 #define SPI_SETFONTSMOOTHINGTYPE 0x200B
4673
4674 #define FE_FONTSMOOTHINGSTANDARD 0x0001
4675 #define FE_FONTSMOOTHINGCLEARTYPE 0x0002
4676 #define FE_FONTSMOOTHINGDOCKING 0x8000
4677
4678 #define SPI_GETFONTSMOOTHINGCONTRAST 0x200C
4679 #define SPI_SETFONTSMOOTHINGCONTRAST 0x200D
4680 #define SPI_GETFOCUSBORDERWIDTH 0x200E
4681 #define SPI_SETFOCUSBORDERWIDTH 0x200F
4682 #define SPI_GETFOCUSBORDERHEIGHT 0x2010
4683 #define SPI_SETFOCUSBORDERHEIGHT 0x2011
4684 #define SPI_GETFONTSMOOTHINGORIENTATION 0x2012
4685 #define SPI_SETFONTSMOOTHINGORIENTATION 0x2013
4686
4687 #define FE_FONTSMOOTHINGORIENTATIONBGR 0x0000
4688 #define FE_FONTSMOOTHINGORIENTATIONRGB 0x0001
4689
4690 #define SPIF_UPDATEINIFILE 0x0001
4691 #define SPIF_SENDWININICHANGE 0x0002
4692 #define SPIF_SENDCHANGE SPIF_SENDWININICHANGE
4693
4694 #define METRICS_USEDEFAULT -1
4695 #ifdef _WINGDI_
4696 #ifndef NOGDI
4697 typedef struct tagNONCLIENTMETRICSA {
4698 UINT cbSize;
4699 int iBorderWidth;
4700 int iScrollWidth;
4701 int iScrollHeight;
4702 int iCaptionWidth;
4703 int iCaptionHeight;
4704 LOGFONTA lfCaptionFont;
4705 int iSmCaptionWidth;
4706 int iSmCaptionHeight;
4707 LOGFONTA lfSmCaptionFont;
4708 int iMenuWidth;
4709 int iMenuHeight;
4710 LOGFONTA lfMenuFont;
4711 LOGFONTA lfStatusFont;
4712 LOGFONTA lfMessageFont;
4713 } NONCLIENTMETRICSA,*PNONCLIENTMETRICSA,*LPNONCLIENTMETRICSA;
4714
4715 typedef struct tagNONCLIENTMETRICSW {
4716 UINT cbSize;
4717 int iBorderWidth;
4718 int iScrollWidth;
4719 int iScrollHeight;
4720 int iCaptionWidth;
4721 int iCaptionHeight;
4722 LOGFONTW lfCaptionFont;
4723 int iSmCaptionWidth;
4724 int iSmCaptionHeight;
4725 LOGFONTW lfSmCaptionFont;
4726 int iMenuWidth;
4727 int iMenuHeight;
4728 LOGFONTW lfMenuFont;
4729 LOGFONTW lfStatusFont;
4730 LOGFONTW lfMessageFont;
4731 } NONCLIENTMETRICSW,*PNONCLIENTMETRICSW,*LPNONCLIENTMETRICSW;
4732
4733 #ifdef UNICODE
4734 typedef NONCLIENTMETRICSW NONCLIENTMETRICS;
4735 typedef PNONCLIENTMETRICSW PNONCLIENTMETRICS;
4736 typedef LPNONCLIENTMETRICSW LPNONCLIENTMETRICS;
4737 #else
4738 typedef NONCLIENTMETRICSA NONCLIENTMETRICS;
4739 typedef PNONCLIENTMETRICSA PNONCLIENTMETRICS;
4740 typedef LPNONCLIENTMETRICSA LPNONCLIENTMETRICS;
4741 #endif
4742 #endif
4743 #endif
4744
4745 #define ARW_BOTTOMLEFT 0x0000L
4746 #define ARW_BOTTOMRIGHT 0x0001L
4747 #define ARW_TOPLEFT 0x0002L
4748 #define ARW_TOPRIGHT 0x0003L
4749 #define ARW_STARTMASK 0x0003L
4750 #define ARW_STARTRIGHT 0x0001L
4751 #define ARW_STARTTOP 0x0002L
4752
4753 #define ARW_LEFT 0x0000L
4754 #define ARW_RIGHT 0x0000L
4755 #define ARW_UP 0x0004L
4756 #define ARW_DOWN 0x0004L
4757 #define ARW_HIDE 0x0008L
4758
4759 typedef struct tagMINIMIZEDMETRICS {
4760 UINT cbSize;
4761 int iWidth;
4762 int iHorzGap;
4763 int iVertGap;
4764 int iArrange;
4765 } MINIMIZEDMETRICS,*PMINIMIZEDMETRICS,*LPMINIMIZEDMETRICS;
4766
4767 #ifdef _WINGDI_
4768 #ifndef NOGDI
4769 typedef struct tagICONMETRICSA {
4770 UINT cbSize;
4771 int iHorzSpacing;
4772 int iVertSpacing;
4773 int iTitleWrap;
4774 LOGFONTA lfFont;
4775 } ICONMETRICSA,*PICONMETRICSA,*LPICONMETRICSA;
4776
4777 typedef struct tagICONMETRICSW {
4778 UINT cbSize;
4779 int iHorzSpacing;
4780 int iVertSpacing;
4781 int iTitleWrap;
4782 LOGFONTW lfFont;
4783 } ICONMETRICSW,*PICONMETRICSW,*LPICONMETRICSW;
4784
4785 #ifdef UNICODE
4786 typedef ICONMETRICSW ICONMETRICS;
4787 typedef PICONMETRICSW PICONMETRICS;
4788 typedef LPICONMETRICSW LPICONMETRICS;
4789 #else
4790 typedef ICONMETRICSA ICONMETRICS;
4791 typedef PICONMETRICSA PICONMETRICS;
4792 typedef LPICONMETRICSA LPICONMETRICS;
4793 #endif
4794 #endif
4795 #endif
4796
4797 typedef struct tagANIMATIONINFO {
4798 UINT cbSize;
4799 int iMinAnimate;
4800 } ANIMATIONINFO,*LPANIMATIONINFO;
4801
4802 typedef struct tagSERIALKEYSA {
4803 UINT cbSize;
4804 DWORD dwFlags;
4805 LPSTR lpszActivePort;
4806 LPSTR lpszPort;
4807 UINT iBaudRate;
4808 UINT iPortState;
4809 UINT iActive;
4810 } SERIALKEYSA,*LPSERIALKEYSA;
4811
4812 typedef struct tagSERIALKEYSW {
4813 UINT cbSize;
4814 DWORD dwFlags;
4815 LPWSTR lpszActivePort;
4816 LPWSTR lpszPort;
4817 UINT iBaudRate;
4818 UINT iPortState;
4819 UINT iActive;
4820 } SERIALKEYSW,*LPSERIALKEYSW;
4821
4822 #ifdef UNICODE
4823 typedef SERIALKEYSW SERIALKEYS;
4824 typedef LPSERIALKEYSW LPSERIALKEYS;
4825 #else
4826 typedef SERIALKEYSA SERIALKEYS;
4827 typedef LPSERIALKEYSA LPSERIALKEYS;
4828 #endif
4829
4830 #define SERKF_SERIALKEYSON 0x00000001
4831 #define SERKF_AVAILABLE 0x00000002
4832 #define SERKF_INDICATOR 0x00000004
4833
4834 typedef struct tagHIGHCONTRASTA {
4835 UINT cbSize;
4836 DWORD dwFlags;
4837 LPSTR lpszDefaultScheme;
4838 } HIGHCONTRASTA,*LPHIGHCONTRASTA;
4839
4840 typedef struct tagHIGHCONTRASTW {
4841 UINT cbSize;
4842 DWORD dwFlags;
4843 LPWSTR lpszDefaultScheme;
4844 } HIGHCONTRASTW,*LPHIGHCONTRASTW;
4845
4846 #ifdef UNICODE
4847 typedef HIGHCONTRASTW HIGHCONTRAST;
4848 typedef LPHIGHCONTRASTW LPHIGHCONTRAST;
4849 #else
4850 typedef HIGHCONTRASTA HIGHCONTRAST;
4851 typedef LPHIGHCONTRASTA LPHIGHCONTRAST;
4852 #endif
4853
4854 #define HCF_HIGHCONTRASTON 0x00000001
4855 #define HCF_AVAILABLE 0x00000002
4856 #define HCF_HOTKEYACTIVE 0x00000004
4857 #define HCF_CONFIRMHOTKEY 0x00000008
4858 #define HCF_HOTKEYSOUND 0x00000010
4859 #define HCF_INDICATOR 0x00000020
4860 #define HCF_HOTKEYAVAILABLE 0x00000040
4861 #define HCF_LOGONDESKTOP 0x00000100
4862 #define HCF_DEFAULTDESKTOP 0x00000200
4863
4864 #define CDS_UPDATEREGISTRY 0x00000001
4865 #define CDS_TEST 0x00000002
4866 #define CDS_FULLSCREEN 0x00000004
4867 #define CDS_GLOBAL 0x00000008
4868 #define CDS_SET_PRIMARY 0x00000010
4869 #define CDS_VIDEOPARAMETERS 0x00000020
4870 #define CDS_RESET 0x40000000
4871 #define CDS_NORESET 0x10000000
4872
4873 //gr #include <tvout.h>
4874
4875 #define DISP_CHANGE_SUCCESSFUL 0
4876 #define DISP_CHANGE_RESTART 1
4877 #define DISP_CHANGE_FAILED -1
4878 #define DISP_CHANGE_BADMODE -2
4879 #define DISP_CHANGE_NOTUPDATED -3
4880 #define DISP_CHANGE_BADFLAGS -4
4881 #define DISP_CHANGE_BADPARAM -5
4882 #define DISP_CHANGE_BADDUALVIEW -6
4883
4884 #ifdef _WINGDI_
4885 #ifndef NOGDI
4886
4887 #ifdef UNICODE
4888 #define ChangeDisplaySettings ChangeDisplaySettingsW
4889 #define ChangeDisplaySettingsEx ChangeDisplaySettingsExW
4890 #define EnumDisplaySettings EnumDisplaySettingsW
4891 #define EnumDisplaySettingsEx EnumDisplaySettingsExW
4892 #define EnumDisplayDevices EnumDisplayDevicesW
4893 #else
4894 #define ChangeDisplaySettings ChangeDisplaySettingsA
4895 #define ChangeDisplaySettingsEx ChangeDisplaySettingsExA
4896 #define EnumDisplaySettings EnumDisplaySettingsA
4897 #define EnumDisplaySettingsEx EnumDisplaySettingsExA
4898 #define EnumDisplayDevices EnumDisplayDevicesA
4899 #endif
4900
4901 WINUSERAPI LONG WINAPI ChangeDisplaySettingsA(LPDEVMODEA lpDevMode,DWORD dwFlags);
4902 WINUSERAPI LONG WINAPI ChangeDisplaySettingsW(LPDEVMODEW lpDevMode,DWORD dwFlags);
4903 WINUSERAPI LONG WINAPI ChangeDisplaySettingsExA(LPCSTR lpszDeviceName,LPDEVMODEA lpDevMode,HWND hwnd,DWORD dwflags,LPVOID lParam);
4904 WINUSERAPI LONG WINAPI ChangeDisplaySettingsExW(LPCWSTR lpszDeviceName,LPDEVMODEW lpDevMode,HWND hwnd,DWORD dwflags,LPVOID lParam);
4905
4906 #define ENUM_CURRENT_SETTINGS ((DWORD)-1)
4907 #define ENUM_REGISTRY_SETTINGS ((DWORD)-2)
4908
4909 WINUSERAPI WINBOOL WINAPI EnumDisplaySettingsA(LPCSTR lpszDeviceName,DWORD iModeNum,LPDEVMODEA lpDevMode);
4910 WINUSERAPI WINBOOL WINAPI EnumDisplaySettingsW(LPCWSTR lpszDeviceName,DWORD iModeNum,LPDEVMODEW lpDevMode);
4911 WINUSERAPI WINBOOL WINAPI EnumDisplaySettingsExA(LPCSTR lpszDeviceName,DWORD iModeNum,LPDEVMODEA lpDevMode,DWORD dwFlags);
4912 WINUSERAPI WINBOOL WINAPI EnumDisplaySettingsExW(LPCWSTR lpszDeviceName,DWORD iModeNum,LPDEVMODEW lpDevMode,DWORD dwFlags);
4913
4914 #define EDS_RAWMODE 0x00000002
4915
4916 WINUSERAPI WINBOOL WINAPI EnumDisplayDevicesA(LPCSTR lpDevice,DWORD iDevNum,PDISPLAY_DEVICEA lpDisplayDevice,DWORD dwFlags);
4917 WINUSERAPI WINBOOL WINAPI EnumDisplayDevicesW(LPCWSTR lpDevice,DWORD iDevNum,PDISPLAY_DEVICEW lpDisplayDevice,DWORD dwFlags);
4918 #endif
4919 #endif
4920
4921 #ifdef UNICODE
4922 #define SystemParametersInfo SystemParametersInfoW
4923 #else
4924 #define SystemParametersInfo SystemParametersInfoA
4925 #endif
4926
4927 WINUSERAPI WINBOOL WINAPI SystemParametersInfoA(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinIni);
4928 WINUSERAPI WINBOOL WINAPI SystemParametersInfoW(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinIni);
4929 #endif
4930
4931 typedef struct tagFILTERKEYS {
4932 UINT cbSize;
4933 DWORD dwFlags;
4934 DWORD iWaitMSec;
4935 DWORD iDelayMSec;
4936 DWORD iRepeatMSec;
4937 DWORD iBounceMSec;
4938 } FILTERKEYS,*LPFILTERKEYS;
4939
4940 #define FKF_FILTERKEYSON 0x00000001
4941 #define FKF_AVAILABLE 0x00000002
4942 #define FKF_HOTKEYACTIVE 0x00000004
4943 #define FKF_CONFIRMHOTKEY 0x00000008
4944 #define FKF_HOTKEYSOUND 0x00000010
4945 #define FKF_INDICATOR 0x00000020
4946 #define FKF_CLICKON 0x00000040
4947
4948 typedef struct tagSTICKYKEYS {
4949 UINT cbSize;
4950 DWORD dwFlags;
4951 } STICKYKEYS,*LPSTICKYKEYS;
4952
4953 #define SKF_STICKYKEYSON 0x00000001
4954 #define SKF_AVAILABLE 0x00000002
4955 #define SKF_HOTKEYACTIVE 0x00000004
4956 #define SKF_CONFIRMHOTKEY 0x00000008
4957 #define SKF_HOTKEYSOUND 0x00000010
4958 #define SKF_INDICATOR 0x00000020
4959 #define SKF_AUDIBLEFEEDBACK 0x00000040
4960 #define SKF_TRISTATE 0x00000080
4961 #define SKF_TWOKEYSOFF 0x00000100
4962 #define SKF_LALTLATCHED 0x10000000
4963 #define SKF_LCTLLATCHED 0x04000000
4964 #define SKF_LSHIFTLATCHED 0x01000000
4965 #define SKF_RALTLATCHED 0x20000000
4966 #define SKF_RCTLLATCHED 0x08000000
4967 #define SKF_RSHIFTLATCHED 0x02000000
4968 #define SKF_LWINLATCHED 0x40000000
4969 #define SKF_RWINLATCHED 0x80000000
4970 #define SKF_LALTLOCKED 0x00100000
4971 #define SKF_LCTLLOCKED 0x00040000
4972 #define SKF_LSHIFTLOCKED 0x00010000
4973 #define SKF_RALTLOCKED 0x00200000
4974 #define SKF_RCTLLOCKED 0x00080000
4975 #define SKF_RSHIFTLOCKED 0x00020000
4976 #define SKF_LWINLOCKED 0x00400000
4977 #define SKF_RWINLOCKED 0x00800000
4978
4979 typedef struct tagMOUSEKEYS {
4980 UINT cbSize;
4981 DWORD dwFlags;
4982 DWORD iMaxSpeed;
4983 DWORD iTimeToMaxSpeed;
4984 DWORD iCtrlSpeed;
4985 DWORD dwReserved1;
4986 DWORD dwReserved2;
4987 } MOUSEKEYS,*LPMOUSEKEYS;
4988
4989 #define MKF_MOUSEKEYSON 0x00000001
4990 #define MKF_AVAILABLE 0x00000002
4991 #define MKF_HOTKEYACTIVE 0x00000004
4992 #define MKF_CONFIRMHOTKEY 0x00000008
4993 #define MKF_HOTKEYSOUND 0x00000010
4994 #define MKF_INDICATOR 0x00000020
4995 #define MKF_MODIFIERS 0x00000040
4996 #define MKF_REPLACENUMBERS 0x00000080
4997 #define MKF_LEFTBUTTONSEL 0x10000000
4998 #define MKF_RIGHTBUTTONSEL 0x20000000
4999 #define MKF_LEFTBUTTONDOWN 0x01000000
5000 #define MKF_RIGHTBUTTONDOWN 0x02000000
5001 #define MKF_MOUSEMODE 0x80000000
5002
5003 typedef struct tagACCESSTIMEOUT {
5004 UINT cbSize;
5005 DWORD dwFlags;
5006 DWORD iTimeOutMSec;
5007 } ACCESSTIMEOUT,*LPACCESSTIMEOUT;
5008
5009 #define ATF_TIMEOUTON 0x00000001
5010 #define ATF_ONOFFFEEDBACK 0x00000002
5011
5012 #define SSGF_NONE 0
5013 #define SSGF_DISPLAY 3
5014
5015 #define SSTF_NONE 0
5016 #define SSTF_CHARS 1
5017 #define SSTF_BORDER 2
5018 #define SSTF_DISPLAY 3
5019
5020 #define SSWF_NONE 0
5021 #define SSWF_TITLE 1
5022 #define SSWF_WINDOW 2
5023 #define SSWF_DISPLAY 3
5024 #define SSWF_CUSTOM 4
5025
5026 typedef struct tagSOUNDSENTRYA {
5027 UINT cbSize;
5028 DWORD dwFlags;
5029 DWORD iFSTextEffect;
5030 DWORD iFSTextEffectMSec;
5031 DWORD iFSTextEffectColorBits;
5032 DWORD iFSGrafEffect;
5033 DWORD iFSGrafEffectMSec;
5034 DWORD iFSGrafEffectColor;
5035 DWORD iWindowsEffect;
5036 DWORD iWindowsEffectMSec;
5037 LPSTR lpszWindowsEffectDLL;
5038 DWORD iWindowsEffectOrdinal;
5039 } SOUNDSENTRYA,*LPSOUNDSENTRYA;
5040
5041 typedef struct tagSOUNDSENTRYW {
5042 UINT cbSize;
5043 DWORD dwFlags;
5044 DWORD iFSTextEffect;
5045 DWORD iFSTextEffectMSec;
5046 DWORD iFSTextEffectColorBits;
5047 DWORD iFSGrafEffect;
5048 DWORD iFSGrafEffectMSec;
5049 DWORD iFSGrafEffectColor;
5050 DWORD iWindowsEffect;
5051 DWORD iWindowsEffectMSec;
5052 LPWSTR lpszWindowsEffectDLL;
5053 DWORD iWindowsEffectOrdinal;
5054 } SOUNDSENTRYW,*LPSOUNDSENTRYW;
5055
5056 #ifdef UNICODE
5057 typedef SOUNDSENTRYW SOUNDSENTRY;
5058 typedef LPSOUNDSENTRYW LPSOUNDSENTRY;
5059 #else
5060 typedef SOUNDSENTRYA SOUNDSENTRY;
5061 typedef LPSOUNDSENTRYA LPSOUNDSENTRY;
5062 #endif
5063
5064 #define SSF_SOUNDSENTRYON 0x00000001
5065 #define SSF_AVAILABLE 0x00000002
5066 #define SSF_INDICATOR 0x00000004
5067
5068 typedef struct tagTOGGLEKEYS {
5069 UINT cbSize;
5070 DWORD dwFlags;
5071 } TOGGLEKEYS,*LPTOGGLEKEYS;
5072
5073 #define TKF_TOGGLEKEYSON 0x00000001
5074 #define TKF_AVAILABLE 0x00000002
5075 #define TKF_HOTKEYACTIVE 0x00000004
5076 #define TKF_CONFIRMHOTKEY 0x00000008
5077 #define TKF_HOTKEYSOUND 0x00000010
5078 #define TKF_INDICATOR 0x00000020
5079
5080 WINUSERAPI VOID WINAPI SetDebugErrorLevel(DWORD dwLevel);
5081
5082 #define SLE_ERROR 0x00000001
5083 #define SLE_MINORERROR 0x00000002
5084 #define SLE_WARNING 0x00000003
5085
5086 WINUSERAPI VOID WINAPI SetLastErrorEx(DWORD dwErrCode,DWORD dwType);
5087 WINUSERAPI int WINAPI InternalGetWindowText(HWND hWnd,LPWSTR pString,int cchMaxCount);
5088
5089 #ifdef WINNT
5090 WINUSERAPI WINBOOL WINAPI EndTask(HWND hWnd,WINBOOL fShutDown,WINBOOL fForce);
5091 #endif
5092
5093 #define MONITOR_DEFAULTTONULL 0x00000000
5094 #define MONITOR_DEFAULTTOPRIMARY 0x00000001
5095 #define MONITOR_DEFAULTTONEAREST 0x00000002
5096
5097 WINUSERAPI HMONITOR WINAPI MonitorFromPoint(POINT pt,DWORD dwFlags);
5098 WINUSERAPI HMONITOR WINAPI MonitorFromRect(LPCRECT lprc,DWORD dwFlags);
5099 WINUSERAPI HMONITOR WINAPI MonitorFromWindow(HWND hwnd,DWORD dwFlags);
5100
5101 #define MONITORINFOF_PRIMARY 0x00000001
5102
5103 #ifndef CCHDEVICENAME
5104 #define CCHDEVICENAME 32
5105 #endif
5106
5107 typedef struct tagMONITORINFO {
5108 DWORD cbSize;
5109 RECT rcMonitor;
5110 RECT rcWork;
5111 DWORD dwFlags;
5112 } MONITORINFO,*LPMONITORINFO;
5113
5114 #ifdef __cplusplus
5115 typedef struct tagMONITORINFOEXA : public tagMONITORINFO {
5116 CHAR szDevice[CCHDEVICENAME];
5117 } MONITORINFOEXA,*LPMONITORINFOEXA;
5118
5119 typedef struct tagMONITORINFOEXW : public tagMONITORINFO {
5120 WCHAR szDevice[CCHDEVICENAME];
5121 } MONITORINFOEXW,*LPMONITORINFOEXW;
5122
5123 #ifdef UNICODE
5124 typedef MONITORINFOEXW MONITORINFOEX;
5125 typedef LPMONITORINFOEXW LPMONITORINFOEX;
5126 #else
5127 typedef MONITORINFOEXA MONITORINFOEX;
5128 typedef LPMONITORINFOEXA LPMONITORINFOEX;
5129 #endif
5130 #else
5131 typedef struct tagMONITORINFOEXA {
5132 MONITORINFO mi;
5133 CHAR szDevice[CCHDEVICENAME];
5134 } MONITORINFOEXA,*LPMONITORINFOEXA;
5135
5136 typedef struct tagMONITORINFOEXW {
5137 MONITORINFO mi;
5138 WCHAR szDevice[CCHDEVICENAME];
5139 } MONITORINFOEXW,*LPMONITORINFOEXW;
5140 #ifdef UNICODE
5141 typedef MONITORINFOEXW MONITORINFOEX;
5142 typedef LPMONITORINFOEXW LPMONITORINFOEX;
5143 #else
5144 typedef MONITORINFOEXA MONITORINFOEX;
5145 typedef LPMONITORINFOEXA LPMONITORINFOEX;
5146 #endif
5147 #endif
5148
5149 #ifdef UNICODE
5150 #define GetMonitorInfo GetMonitorInfoW
5151 #else
5152 #define GetMonitorInfo GetMonitorInfoA
5153 #endif
5154
5155 WINUSERAPI WINBOOL WINAPI GetMonitorInfoA(HMONITOR hMonitor,LPMONITORINFO lpmi);
5156 WINUSERAPI WINBOOL WINAPI GetMonitorInfoW(HMONITOR hMonitor,LPMONITORINFO lpmi);
5157
5158 typedef WINBOOL (CALLBACK *MONITORENUMPROC)(HMONITOR,HDC,LPRECT,LPARAM);
5159
5160 WINUSERAPI WINBOOL WINAPI EnumDisplayMonitors(HDC hdc,LPCRECT lprcClip,MONITORENUMPROC lpfnEnum,LPARAM dwData);
5161
5162 #ifndef NOWINABLE
5163 WINUSERAPI VOID WINAPI NotifyWinEvent(DWORD event,HWND hwnd,LONG idObject,LONG idChild);
5164
5165 typedef VOID (CALLBACK *WINEVENTPROC)(HWINEVENTHOOK hWinEventHook,DWORD event,HWND hwnd,LONG idObject,LONG idChild,DWORD idEventThread,DWORD dwmsEventTime);
5166
5167 WINUSERAPI HWINEVENTHOOK WINAPI SetWinEventHook(DWORD eventMin,DWORD eventMax,HMODULE hmodWinEventProc,WINEVENTPROC pfnWinEventProc,DWORD idProcess,DWORD idThread,DWORD dwFlags);
5168 WINUSERAPI WINBOOL WINAPI IsWinEventHookInstalled(DWORD event);
5169
5170 #define WINEVENT_OUTOFCONTEXT 0x0000
5171 #define WINEVENT_SKIPOWNTHREAD 0x0001
5172 #define WINEVENT_SKIPOWNPROCESS 0x0002
5173 #define WINEVENT_INCONTEXT 0x0004
5174
5175 WINUSERAPI WINBOOL WINAPI UnhookWinEvent(HWINEVENTHOOK hWinEventHook);
5176
5177 #define CHILDID_SELF 0
5178 #define INDEXID_OBJECT 0
5179 #define INDEXID_CONTAINER 0
5180
5181 #define OBJID_WINDOW ((LONG)0x00000000)
5182 #define OBJID_SYSMENU ((LONG)0xFFFFFFFF)
5183 #define OBJID_TITLEBAR ((LONG)0xFFFFFFFE)
5184 #define OBJID_MENU ((LONG)0xFFFFFFFD)
5185 #define OBJID_CLIENT ((LONG)0xFFFFFFFC)
5186 #define OBJID_VSCROLL ((LONG)0xFFFFFFFB)
5187 #define OBJID_HSCROLL ((LONG)0xFFFFFFFA)
5188 #define OBJID_SIZEGRIP ((LONG)0xFFFFFFF9)
5189 #define OBJID_CARET ((LONG)0xFFFFFFF8)
5190 #define OBJID_CURSOR ((LONG)0xFFFFFFF7)
5191 #define OBJID_ALERT ((LONG)0xFFFFFFF6)
5192 #define OBJID_SOUND ((LONG)0xFFFFFFF5)
5193 #define OBJID_QUERYCLASSNAMEIDX ((LONG)0xFFFFFFF4)
5194 #define OBJID_NATIVEOM ((LONG)0xFFFFFFF0)
5195
5196 #define EVENT_MIN 0x00000001
5197 #define EVENT_MAX 0x7FFFFFFF
5198
5199 #define EVENT_SYSTEM_SOUND 0x0001
5200 #define EVENT_SYSTEM_ALERT 0x0002
5201 #define EVENT_SYSTEM_FOREGROUND 0x0003
5202 #define EVENT_SYSTEM_MENUSTART 0x0004
5203 #define EVENT_SYSTEM_MENUEND 0x0005
5204 #define EVENT_SYSTEM_MENUPOPUPSTART 0x0006
5205 #define EVENT_SYSTEM_MENUPOPUPEND 0x0007
5206 #define EVENT_SYSTEM_CAPTURESTART 0x0008
5207 #define EVENT_SYSTEM_CAPTUREEND 0x0009
5208 #define EVENT_SYSTEM_MOVESIZESTART 0x000A
5209 #define EVENT_SYSTEM_MOVESIZEEND 0x000B
5210 #define EVENT_SYSTEM_CONTEXTHELPSTART 0x000C
5211 #define EVENT_SYSTEM_CONTEXTHELPEND 0x000D
5212 #define EVENT_SYSTEM_DRAGDROPSTART 0x000E
5213 #define EVENT_SYSTEM_DRAGDROPEND 0x000F
5214 #define EVENT_SYSTEM_DIALOGSTART 0x0010
5215 #define EVENT_SYSTEM_DIALOGEND 0x0011
5216 #define EVENT_SYSTEM_SCROLLINGSTART 0x0012
5217 #define EVENT_SYSTEM_SCROLLINGEND 0x0013
5218 #define EVENT_SYSTEM_SWITCHSTART 0x0014
5219 #define EVENT_SYSTEM_SWITCHEND 0x0015
5220 #define EVENT_SYSTEM_MINIMIZESTART 0x0016
5221 #define EVENT_SYSTEM_MINIMIZEEND 0x0017
5222
5223 #define EVENT_CONSOLE_CARET 0x4001
5224 #define EVENT_CONSOLE_UPDATE_REGION 0x4002
5225 #define EVENT_CONSOLE_UPDATE_SIMPLE 0x4003
5226 #define EVENT_CONSOLE_UPDATE_SCROLL 0x4004
5227 #define EVENT_CONSOLE_LAYOUT 0x4005
5228 #define EVENT_CONSOLE_START_APPLICATION 0x4006
5229 #define EVENT_CONSOLE_END_APPLICATION 0x4007
5230
5231 #define CONSOLE_APPLICATION_16BIT 0x0001
5232
5233 #define CONSOLE_CARET_SELECTION 0x0001
5234 #define CONSOLE_CARET_VISIBLE 0x0002
5235
5236 #define EVENT_OBJECT_CREATE 0x8000
5237 #define EVENT_OBJECT_DESTROY 0x8001
5238 #define EVENT_OBJECT_SHOW 0x8002
5239 #define EVENT_OBJECT_HIDE 0x8003
5240 #define EVENT_OBJECT_REORDER 0x8004
5241
5242 #define EVENT_OBJECT_FOCUS 0x8005
5243 #define EVENT_OBJECT_SELECTION 0x8006
5244 #define EVENT_OBJECT_SELECTIONADD 0x8007
5245 #define EVENT_OBJECT_SELECTIONREMOVE 0x8008
5246 #define EVENT_OBJECT_SELECTIONWITHIN 0x8009
5247
5248 #define EVENT_OBJECT_STATECHANGE 0x800A
5249
5250 #define EVENT_OBJECT_LOCATIONCHANGE 0x800B
5251
5252 #define EVENT_OBJECT_NAMECHANGE 0x800C
5253 #define EVENT_OBJECT_DESCRIPTIONCHANGE 0x800D
5254 #define EVENT_OBJECT_VALUECHANGE 0x800E
5255 #define EVENT_OBJECT_PARENTCHANGE 0x800F
5256 #define EVENT_OBJECT_HELPCHANGE 0x8010
5257 #define EVENT_OBJECT_DEFACTIONCHANGE 0x8011
5258 #define EVENT_OBJECT_ACCELERATORCHANGE 0x8012
5259
5260 #define SOUND_SYSTEM_STARTUP 1
5261 #define SOUND_SYSTEM_SHUTDOWN 2
5262 #define SOUND_SYSTEM_BEEP 3
5263 #define SOUND_SYSTEM_ERROR 4
5264 #define SOUND_SYSTEM_QUESTION 5
5265 #define SOUND_SYSTEM_WARNING 6
5266 #define SOUND_SYSTEM_INFORMATION 7
5267 #define SOUND_SYSTEM_MAXIMIZE 8
5268 #define SOUND_SYSTEM_MINIMIZE 9
5269 #define SOUND_SYSTEM_RESTOREUP 10
5270 #define SOUND_SYSTEM_RESTOREDOWN 11
5271 #define SOUND_SYSTEM_APPSTART 12
5272 #define SOUND_SYSTEM_FAULT 13
5273 #define SOUND_SYSTEM_APPEND 14
5274 #define SOUND_SYSTEM_MENUCOMMAND 15
5275 #define SOUND_SYSTEM_MENUPOPUP 16
5276 #define CSOUND_SYSTEM 16
5277
5278 #define ALERT_SYSTEM_INFORMATIONAL 1
5279 #define ALERT_SYSTEM_WARNING 2
5280 #define ALERT_SYSTEM_ERROR 3
5281 #define ALERT_SYSTEM_QUERY 4
5282 #define ALERT_SYSTEM_CRITICAL 5
5283 #define CALERT_SYSTEM 6
5284
5285 typedef struct tagGUITHREADINFO {
5286 DWORD cbSize;
5287 DWORD flags;
5288 HWND hwndActive;
5289 HWND hwndFocus;
5290 HWND hwndCapture;
5291 HWND hwndMenuOwner;
5292 HWND hwndMoveSize;
5293 HWND hwndCaret;
5294 RECT rcCaret;
5295 } GUITHREADINFO,*PGUITHREADINFO,*LPGUITHREADINFO;
5296
5297 #define GUI_CARETBLINKING 0x00000001
5298 #define GUI_INMOVESIZE 0x00000002
5299 #define GUI_INMENUMODE 0x00000004
5300 #define GUI_SYSTEMMENUMODE 0x00000008
5301 #define GUI_POPUPMENUMODE 0x00000010
5302 #define GUI_16BITTASK 0x00000020
5303
5304 #ifdef UNICODE
5305 #define GetWindowModuleFileName GetWindowModuleFileNameW
5306 #else
5307 #define GetWindowModuleFileName GetWindowModuleFileNameA
5308 #endif
5309
5310 WINUSERAPI WINBOOL WINAPI GetGUIThreadInfo(DWORD idThread,PGUITHREADINFO pgui);
5311 WINUSERAPI UINT WINAPI GetWindowModuleFileNameA(HWND hwnd,LPSTR pszFileName,UINT cchFileNameMax);
5312 WINUSERAPI UINT WINAPI GetWindowModuleFileNameW(HWND hwnd,LPWSTR pszFileName,UINT cchFileNameMax);
5313
5314 #ifndef NO_STATE_FLAGS
5315 #define STATE_SYSTEM_UNAVAILABLE 0x00000001
5316 #define STATE_SYSTEM_SELECTED 0x00000002
5317 #define STATE_SYSTEM_FOCUSED 0x00000004
5318 #define STATE_SYSTEM_PRESSED 0x00000008
5319 #define STATE_SYSTEM_CHECKED 0x00000010
5320 #define STATE_SYSTEM_MIXED 0x00000020
5321 #define STATE_SYSTEM_INDETERMINATE STATE_SYSTEM_MIXED
5322 #define STATE_SYSTEM_READONLY 0x00000040
5323 #define STATE_SYSTEM_HOTTRACKED 0x00000080
5324 #define STATE_SYSTEM_DEFAULT 0x00000100
5325 #define STATE_SYSTEM_EXPANDED 0x00000200
5326 #define STATE_SYSTEM_COLLAPSED 0x00000400
5327 #define STATE_SYSTEM_BUSY 0x00000800
5328 #define STATE_SYSTEM_FLOATING 0x00001000
5329 #define STATE_SYSTEM_MARQUEED 0x00002000
5330 #define STATE_SYSTEM_ANIMATED 0x00004000
5331 #define STATE_SYSTEM_INVISIBLE 0x00008000
5332 #define STATE_SYSTEM_OFFSCREEN 0x00010000
5333 #define STATE_SYSTEM_SIZEABLE 0x00020000
5334 #define STATE_SYSTEM_MOVEABLE 0x00040000
5335 #define STATE_SYSTEM_SELFVOICING 0x00080000
5336 #define STATE_SYSTEM_FOCUSABLE 0x00100000
5337 #define STATE_SYSTEM_SELECTABLE 0x00200000
5338 #define STATE_SYSTEM_LINKED 0x00400000
5339 #define STATE_SYSTEM_TRAVERSED 0x00800000
5340 #define STATE_SYSTEM_MULTISELECTABLE 0x01000000
5341 #define STATE_SYSTEM_EXTSELECTABLE 0x02000000
5342 #define STATE_SYSTEM_ALERT_LOW 0x04000000
5343 #define STATE_SYSTEM_ALERT_MEDIUM 0x08000000
5344 #define STATE_SYSTEM_ALERT_HIGH 0x10000000
5345 #define STATE_SYSTEM_PROTECTED 0x20000000
5346 #define STATE_SYSTEM_VALID 0x3FFFFFFF
5347 #endif
5348
5349 #define CCHILDREN_TITLEBAR 5
5350 #define CCHILDREN_SCROLLBAR 5
5351
5352 typedef struct tagCURSORINFO {
5353 DWORD cbSize;
5354 DWORD flags;
5355 HCURSOR hCursor;
5356 POINT ptScreenPos;
5357 } CURSORINFO,*PCURSORINFO,*LPCURSORINFO;
5358
5359 #define CURSOR_SHOWING 0x00000001
5360
5361 WINUSERAPI WINBOOL WINAPI GetCursorInfo(PCURSORINFO pci);
5362
5363 typedef struct tagWINDOWINFO {
5364 DWORD cbSize;
5365 RECT rcWindow;
5366 RECT rcClient;
5367 DWORD dwStyle;
5368 DWORD dwExStyle;
5369 DWORD dwWindowStatus;
5370 UINT cxWindowBorders;
5371 UINT cyWindowBorders;
5372 ATOM atomWindowType;
5373 WORD wCreatorVersion;
5374 } WINDOWINFO,*PWINDOWINFO,*LPWINDOWINFO;
5375
5376 #define WS_ACTIVECAPTION 0x0001
5377
5378 WINUSERAPI WINBOOL WINAPI GetWindowInfo(HWND hwnd,PWINDOWINFO pwi);
5379
5380 typedef struct tagTITLEBARINFO {
5381 DWORD cbSize;
5382 RECT rcTitleBar;
5383 DWORD rgstate[CCHILDREN_TITLEBAR + 1];
5384 } TITLEBARINFO,*PTITLEBARINFO,*LPTITLEBARINFO;
5385
5386 WINUSERAPI WINBOOL WINAPI GetTitleBarInfo(HWND hwnd,PTITLEBARINFO pti);
5387
5388 typedef struct tagMENUBARINFO {
5389 DWORD cbSize;
5390 RECT rcBar;
5391 HMENU hMenu;
5392 HWND hwndMenu;
5393 WINBOOL fBarFocused:1;
5394 WINBOOL fFocused:1;
5395 } MENUBARINFO,*PMENUBARINFO,*LPMENUBARINFO;
5396
5397 WINUSERAPI WINBOOL WINAPI GetMenuBarInfo(HWND hwnd,LONG idObject,LONG idItem,PMENUBARINFO pmbi);
5398
5399 typedef struct tagSCROLLBARINFO {
5400 DWORD cbSize;
5401 RECT rcScrollBar;
5402 int dxyLineButton;
5403 int xyThumbTop;
5404 int xyThumbBottom;
5405 int reserved;
5406 DWORD rgstate[CCHILDREN_SCROLLBAR + 1];
5407 } SCROLLBARINFO,*PSCROLLBARINFO,*LPSCROLLBARINFO;
5408
5409 WINUSERAPI WINBOOL WINAPI GetScrollBarInfo(HWND hwnd,LONG idObject,PSCROLLBARINFO psbi);
5410
5411 typedef struct tagCOMBOBOXINFO {
5412 DWORD cbSize;
5413 RECT rcItem;
5414 RECT rcButton;
5415 DWORD stateButton;
5416 HWND hwndCombo;
5417 HWND hwndItem;
5418 HWND hwndList;
5419 } COMBOBOXINFO,*PCOMBOBOXINFO,*LPCOMBOBOXINFO;
5420
5421 WINUSERAPI WINBOOL WINAPI GetComboBoxInfo(HWND hwndCombo,PCOMBOBOXINFO pcbi);
5422
5423 #define GA_PARENT 1
5424 #define GA_ROOT 2
5425 #define GA_ROOTOWNER 3
5426
5427 WINUSERAPI HWND WINAPI GetAncestor(HWND hwnd,UINT gaFlags);
5428 WINUSERAPI HWND WINAPI RealChildWindowFromPoint(HWND hwndParent,POINT ptParentClientCoords);
5429 WINUSERAPI UINT WINAPI RealGetWindowClassA(HWND hwnd,LPSTR ptszClassName,UINT cchClassNameMax);
5430 WINUSERAPI UINT WINAPI RealGetWindowClassW(HWND hwnd,LPWSTR ptszClassName,UINT cchClassNameMax);
5431 #ifdef UNICODE
5432 #define RealGetWindowClass RealGetWindowClassW
5433 #else
5434 #define RealGetWindowClass RealGetWindowClassA
5435 #endif
5436
5437 typedef struct tagALTTABINFO {
5438 DWORD cbSize;
5439 int cItems;
5440 int cColumns;
5441 int cRows;
5442 int iColFocus;
5443 int iRowFocus;
5444 int cxItem;
5445 int cyItem;
5446 POINT ptStart;
5447 } ALTTABINFO,*PALTTABINFO,*LPALTTABINFO;
5448
5449 #ifdef UNICODE
5450 #define GetAltTabInfo GetAltTabInfoW
5451 #else
5452 #define GetAltTabInfo GetAltTabInfoA
5453 #endif
5454
5455 WINUSERAPI WINBOOL WINAPI GetAltTabInfoA(HWND hwnd,int iItem,PALTTABINFO pati,LPSTR pszItemText,UINT cchItemText);
5456 WINUSERAPI WINBOOL WINAPI GetAltTabInfoW(HWND hwnd,int iItem,PALTTABINFO pati,LPWSTR pszItemText,UINT cchItemText);
5457 WINUSERAPI DWORD WINAPI GetListBoxInfo(HWND hwnd);
5458 #endif
5459
5460 WINUSERAPI WINBOOL WINAPI LockWorkStation(VOID);
5461 WINUSERAPI WINBOOL WINAPI UserHandleGrantAccess(HANDLE hUserHandle,HANDLE hJob,WINBOOL bGrant);
5462
5463 DECLARE_HANDLE(HRAWINPUT);
5464
5465 #define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff)
5466
5467 #define RIM_INPUT 0
5468 #define RIM_INPUTSINK 1
5469
5470 typedef struct tagRAWINPUTHEADER {
5471 DWORD dwType;
5472 DWORD dwSize;
5473 HANDLE hDevice;
5474 WPARAM wParam;
5475 } RAWINPUTHEADER,*PRAWINPUTHEADER,*LPRAWINPUTHEADER;
5476
5477 #define RIM_TYPEMOUSE 0
5478 #define RIM_TYPEKEYBOARD 1
5479 #define RIM_TYPEHID 2
5480
5481 typedef struct tagRAWMOUSE {
5482 USHORT usFlags;
5483 union {
5484 ULONG ulButtons;
5485 struct {
5486 USHORT usButtonFlags;
5487 USHORT usButtonData;
5488 };
5489 };
5490 ULONG ulRawButtons;
5491 LONG lLastX;
5492 LONG lLastY;
5493 ULONG ulExtraInformation;
5494 } RAWMOUSE,*PRAWMOUSE,*LPRAWMOUSE;
5495
5496 #define RI_MOUSE_LEFT_BUTTON_DOWN 0x0001
5497 #define RI_MOUSE_LEFT_BUTTON_UP 0x0002
5498 #define RI_MOUSE_RIGHT_BUTTON_DOWN 0x0004
5499 #define RI_MOUSE_RIGHT_BUTTON_UP 0x0008
5500 #define RI_MOUSE_MIDDLE_BUTTON_DOWN 0x0010
5501 #define RI_MOUSE_MIDDLE_BUTTON_UP 0x0020
5502
5503 #define RI_MOUSE_BUTTON_1_DOWN RI_MOUSE_LEFT_BUTTON_DOWN
5504 #define RI_MOUSE_BUTTON_1_UP RI_MOUSE_LEFT_BUTTON_UP
5505 #define RI_MOUSE_BUTTON_2_DOWN RI_MOUSE_RIGHT_BUTTON_DOWN
5506 #define RI_MOUSE_BUTTON_2_UP RI_MOUSE_RIGHT_BUTTON_UP
5507 #define RI_MOUSE_BUTTON_3_DOWN RI_MOUSE_MIDDLE_BUTTON_DOWN
5508 #define RI_MOUSE_BUTTON_3_UP RI_MOUSE_MIDDLE_BUTTON_UP
5509
5510 #define RI_MOUSE_BUTTON_4_DOWN 0x0040
5511 #define RI_MOUSE_BUTTON_4_UP 0x0080
5512 #define RI_MOUSE_BUTTON_5_DOWN 0x0100
5513 #define RI_MOUSE_BUTTON_5_UP 0x0200
5514
5515 #define RI_MOUSE_WHEEL 0x0400
5516
5517 #define MOUSE_MOVE_RELATIVE 0
5518 #define MOUSE_MOVE_ABSOLUTE 1
5519 #define MOUSE_VIRTUAL_DESKTOP 0x02
5520 #define MOUSE_ATTRIBUTES_CHANGED 0x04
5521
5522 typedef struct tagRAWKEYBOARD {
5523 USHORT MakeCode;
5524 USHORT Flags;
5525 USHORT Reserved;
5526 USHORT VKey;
5527 UINT Message;
5528 ULONG ExtraInformation;
5529 } RAWKEYBOARD,*PRAWKEYBOARD,*LPRAWKEYBOARD;
5530
5531 #define KEYBOARD_OVERRUN_MAKE_CODE 0xFF
5532
5533 #define RI_KEY_MAKE 0
5534 #define RI_KEY_BREAK 1
5535 #define RI_KEY_E0 2
5536 #define RI_KEY_E1 4
5537 #define RI_KEY_TERMSRV_SET_LED 8
5538 #define RI_KEY_TERMSRV_SHADOW 0x10
5539
5540 typedef struct tagRAWHID {
5541 DWORD dwSizeHid;
5542 DWORD dwCount;
5543 BYTE bRawData[1];
5544 } RAWHID,*PRAWHID,*LPRAWHID;
5545
5546 typedef struct tagRAWINPUT {
5547 RAWINPUTHEADER header;
5548 union {
5549 RAWMOUSE mouse;
5550 RAWKEYBOARD keyboard;
5551 RAWHID hid;
5552 } data;
5553 } RAWINPUT,*PRAWINPUT,*LPRAWINPUT;
5554
5555 #ifdef _WIN64
5556 #define RAWINPUT_ALIGN(x) (((x) + sizeof(QWORD) - 1) & ~(sizeof(QWORD) - 1))
5557 #else
5558 #define RAWINPUT_ALIGN(x) (((x) + sizeof(DWORD) - 1) & ~(sizeof(DWORD) - 1))
5559 #endif
5560
5561 #define NEXTRAWINPUTBLOCK(ptr) ((PRAWINPUT)RAWINPUT_ALIGN((ULONG_PTR)((PBYTE)(ptr) + (ptr)->header.dwSize)))
5562
5563 #define RID_INPUT 0x10000003
5564 #define RID_HEADER 0x10000005
5565
5566 WINUSERAPI UINT WINAPI GetRawInputData(HRAWINPUT hRawInput,UINT uiCommand,LPVOID pData,PUINT pcbSize,UINT cbSizeHeader);
5567
5568 #define RIDI_PREPARSEDDATA 0x20000005
5569 #define RIDI_DEVICENAME 0x20000007
5570 #define RIDI_DEVICEINFO 0x2000000b
5571
5572 typedef struct tagRID_DEVICE_INFO_MOUSE {
5573 DWORD dwId;
5574 DWORD dwNumberOfButtons;
5575 DWORD dwSampleRate;
5576 } RID_DEVICE_INFO_MOUSE,*PRID_DEVICE_INFO_MOUSE;
5577
5578 typedef struct tagRID_DEVICE_INFO_KEYBOARD {
5579 DWORD dwType;
5580 DWORD dwSubType;
5581 DWORD dwKeyboardMode;
5582 DWORD dwNumberOfFunctionKeys;
5583 DWORD dwNumberOfIndicators;
5584 DWORD dwNumberOfKeysTotal;
5585 } RID_DEVICE_INFO_KEYBOARD,*PRID_DEVICE_INFO_KEYBOARD;
5586
5587 typedef struct tagRID_DEVICE_INFO_HID {
5588 DWORD dwVendorId;
5589 DWORD dwProductId;
5590 DWORD dwVersionNumber;
5591 USHORT usUsagePage;
5592 USHORT usUsage;
5593 } RID_DEVICE_INFO_HID,*PRID_DEVICE_INFO_HID;
5594
5595 typedef struct tagRID_DEVICE_INFO {
5596 DWORD cbSize;
5597 DWORD dwType;
5598 union {
5599 RID_DEVICE_INFO_MOUSE mouse;
5600 RID_DEVICE_INFO_KEYBOARD keyboard;
5601 RID_DEVICE_INFO_HID hid;
5602 };
5603 } RID_DEVICE_INFO,*PRID_DEVICE_INFO,*LPRID_DEVICE_INFO;
5604
5605 #ifdef UNICODE
5606 #define GetRawInputDeviceInfo GetRawInputDeviceInfoW
5607 #else
5608 #define GetRawInputDeviceInfo GetRawInputDeviceInfoA
5609 #endif
5610
5611 WINUSERAPI UINT WINAPI GetRawInputDeviceInfoA(HANDLE hDevice,UINT uiCommand,LPVOID pData,PUINT pcbSize);
5612 WINUSERAPI UINT WINAPI GetRawInputDeviceInfoW(HANDLE hDevice,UINT uiCommand,LPVOID pData,PUINT pcbSize);
5613 WINUSERAPI UINT WINAPI GetRawInputBuffer(PRAWINPUT pData,PUINT pcbSize,UINT cbSizeHeader);
5614
5615 typedef struct tagRAWINPUTDEVICE {
5616 USHORT usUsagePage;
5617 USHORT usUsage;
5618 DWORD dwFlags;
5619 HWND hwndTarget;
5620 } RAWINPUTDEVICE,*PRAWINPUTDEVICE,*LPRAWINPUTDEVICE;
5621
5622 typedef CONST RAWINPUTDEVICE *PCRAWINPUTDEVICE;
5623
5624 #define RIDEV_REMOVE 0x00000001
5625 #define RIDEV_EXCLUDE 0x00000010
5626 #define RIDEV_PAGEONLY 0x00000020
5627 #define RIDEV_NOLEGACY 0x00000030
5628 #define RIDEV_INPUTSINK 0x00000100
5629 #define RIDEV_CAPTUREMOUSE 0x00000200
5630 #define RIDEV_NOHOTKEYS 0x00000200
5631 #define RIDEV_APPKEYS 0x00000400
5632 #define RIDEV_EXMODEMASK 0x000000F0
5633 #define RIDEV_EXMODE(mode) ((mode) & RIDEV_EXMODEMASK)
5634
5635 WINUSERAPI WINBOOL WINAPI RegisterRawInputDevices(PCRAWINPUTDEVICE pRawInputDevices,UINT uiNumDevices,UINT cbSize);
5636 WINUSERAPI UINT WINAPI GetRegisteredRawInputDevices(PRAWINPUTDEVICE pRawInputDevices,PUINT puiNumDevices,UINT cbSize);
5637
5638 typedef struct tagRAWINPUTDEVICELIST {
5639 HANDLE hDevice;
5640 DWORD dwType;
5641 } RAWINPUTDEVICELIST,*PRAWINPUTDEVICELIST;
5642
5643 WINUSERAPI UINT WINAPI GetRawInputDeviceList(PRAWINPUTDEVICELIST pRawInputDeviceList,PUINT puiNumDevices,UINT cbSize);
5644 WINUSERAPI LRESULT WINAPI DefRawInputProc(PRAWINPUT *paRawInput,INT nInput,UINT cbSizeHeader);
5645
5646 #endif /* NOUSER */
5647
5648 #ifdef __cplusplus
5649 }
5650 #endif
5651 #endif