Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6429 siemargl 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 
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 
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 
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
#include 
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