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