|
|
1.1 ! root 1: /*++ BUILD Version: 0003 // Increment this if a change has global effects ! 2: ! 3: Copyright (c) 1985-91, Microsoft Corporation ! 4: ! 5: Module Name: ! 6: ! 7: winuser.h ! 8: ! 9: Abstract: ! 10: ! 11: Procedure declarations, constant definitions and macros for the User ! 12: component. ! 13: ! 14: --*/ ! 15: ! 16: #ifndef _WINUSER_ ! 17: #define _WINUSER_ ! 18: ! 19: #ifndef NOUSER ! 20: ! 21: typedef HWND HWNDFF; ! 22: typedef HWND HWNDVERBATIM; ! 23: typedef HANDLE HACCEL; ! 24: typedef HANDLE HWPI; ! 25: typedef PVOID LPMONO1BITS; ! 26: typedef PVOID LPMONO2BITS; ! 27: typedef PVOID LPCOLORBITS; ! 28: typedef PWORD LPPRIORITYLIST; ! 29: typedef PVOID LPMENUTEMPLATEA; ! 30: typedef PVOID LPMENUTEMPLATEW; ! 31: #ifdef UNICODE ! 32: #define LPMENUTEMPLATE LPMENUTEMPLATEW ! 33: #else ! 34: #define LPMENUTEMPLATE LPMENUTEMPLATEA ! 35: #endif // UNICODE ! 36: typedef PVOID LPTABS; ! 37: typedef PVOID LPSYSCOLOR; ! 38: typedef PVOID LPCOLORVALUES; ! 39: typedef PVOID LPDLGTEMPLATESTUBA; ! 40: typedef PVOID LPDLGTEMPLATESTUBW; ! 41: #ifdef UNICODE ! 42: #define LPDLGTEMPLATESTUB LPDLGTEMPLATESTUBW ! 43: #else ! 44: #define LPDLGTEMPLATESTUB LPDLGTEMPLATESTUBA ! 45: #endif // UNICODE ! 46: typedef LPSTR LPSTRNULL; ! 47: typedef LPWSTR LPWSTRNULL; ! 48: #ifdef UNICODE ! 49: #define LPTSTRNULL LPWSTRNULL ! 50: #else ! 51: #define LPTSTRNULL LPSTRNULL ! 52: #endif // UNICODE ! 53: typedef LPSTR LPSTRID; ! 54: typedef LPWSTR LPWSTRID; ! 55: #ifdef UNICODE ! 56: #define LPTSTRID LPWSTRID ! 57: #else ! 58: #define LPTSTRID LPSTRID ! 59: #endif // UNICODE ! 60: typedef LPSTR LPSTR2; ! 61: typedef LPWSTR LPWSTR2; ! 62: #ifdef UNICODE ! 63: #define LPTSTR2 LPWSTR2 ! 64: #else ! 65: #define LPTSTR2 LPSTR2 ! 66: #endif // UNICODE ! 67: typedef LPSTR OUTLPSTR; ! 68: typedef LPWSTR OUTLPWSTR; ! 69: #ifdef UNICODE ! 70: #define OUTLPTSTR OUTLPWSTR ! 71: #else ! 72: #define OUTLPTSTR OUTLPSTR ! 73: #endif // UNICODE ! 74: typedef HWND HWNDIA; ! 75: typedef DWORD GSPOLY; ! 76: typedef LPSTR CHNGMENUPOLY; ! 77: typedef LPSTR MENUPOLYA; ! 78: typedef LPWSTR MENUPOLYW; ! 79: #ifdef UNICODE ! 80: #define MENUPOLY MENUPOLYW ! 81: #else ! 82: #define MENUPOLY MENUPOLYA ! 83: #endif // UNICODE ! 84: typedef PVOID LPKEYSTATE; ! 85: typedef PVOID OUTLPKEYSTATE; ! 86: #ifdef THANKS ! 87: typedef PUSHORT OUTP2CHARS; ! 88: #else ! 89: typedef PVOID OUTP2CHARS; ! 90: #endif ! 91: ! 92: typedef LONG (APIENTRY *WNDPROC)(HWND, UINT, DWORD, LONG); ! 93: ! 94: #define MAKEINTRESOURCE(i) (LPSTR)((DWORD)((WORD)(i))) ! 95: ! 96: #ifndef NORESOURCE ! 97: ! 98: /* Predefined Resource Types */ ! 99: #define RT_CURSOR MAKEINTRESOURCE(1) ! 100: #define RT_BITMAP MAKEINTRESOURCE(2) ! 101: #define RT_ICON MAKEINTRESOURCE(3) ! 102: #define RT_MENU MAKEINTRESOURCE(4) ! 103: #define RT_DIALOG MAKEINTRESOURCE(5) ! 104: #define RT_STRING MAKEINTRESOURCE(6) ! 105: #define RT_FONTDIR MAKEINTRESOURCE(7) ! 106: #define RT_FONT MAKEINTRESOURCE(8) ! 107: #define RT_ACCELERATOR MAKEINTRESOURCE(9) ! 108: #define RT_RCDATA MAKEINTRESOURCE(10) ! 109: #define RT_MESSAGETABLE MAKEINTRESOURCE(11) ! 110: ! 111: #define DIFFERENCE 11 ! 112: ! 113: /* NOTE: if any new resource types are introduced above this point, then the ! 114: ** value of DIFFERENCE must be changed. ! 115: ** (RT_GROUP_CURSOR - RT_CURSOR) must always be equal to DIFFERENCE ! 116: ** (RT_GROUP_ICON - RT_ICON) must always be equal to DIFFERENCE ! 117: */ ! 118: #define RT_GROUP_CURSOR MAKEINTRESOURCE((DWORD)RT_CURSOR + DIFFERENCE) ! 119: /* The value RT_BITMAP+DIFFERENCE (13) is intentionally unused */ ! 120: #define RT_GROUP_ICON MAKEINTRESOURCE((DWORD)RT_ICON + DIFFERENCE) ! 121: /* The value 15 is unused/obsolete */ ! 122: #define RT_VERSION MAKEINTRESOURCE(16) ! 123: ! 124: #endif /* NORESOURCE */ ! 125: ! 126: int APIENTRY wvsprintf(LPSTR, LPSTR, LPSTR); ! 127: int cdecl wsprintf(LPSTR, LPSTR, ...); ! 128: ! 129: #ifndef NOSCROLL ! 130: ! 131: /* Scroll Bar Constants */ ! 132: #define SB_HORZ 0 ! 133: #define SB_VERT 1 ! 134: #define SB_CTL 2 ! 135: #define SB_BOTH 3 ! 136: ! 137: /* Scroll Bar Commands */ ! 138: #define SB_LINEUP 0 ! 139: #define SB_LINEDOWN 1 ! 140: #define SB_PAGEUP 2 ! 141: #define SB_PAGEDOWN 3 ! 142: #define SB_THUMBPOSITION 4 ! 143: #define SB_THUMBTRACK 5 ! 144: #define SB_TOP 6 ! 145: #define SB_BOTTOM 7 ! 146: #define SB_ENDSCROLL 8 ! 147: ! 148: #endif /* NOSCROLL */ ! 149: ! 150: #ifndef NOSHOWWINDOW ! 151: ! 152: /* ShowWindow() Commands */ ! 153: #define SW_HIDE 0 ! 154: #define SW_SHOWNORMAL 1 ! 155: #define SW_NORMAL 1 ! 156: #define SW_SHOWMINIMIZED 2 ! 157: #define SW_SHOWMAXIMIZED 3 ! 158: #define SW_MAXIMIZE 3 ! 159: #define SW_SHOWNOACTIVATE 4 ! 160: #define SW_SHOW 5 ! 161: #define SW_MINIMIZE 6 ! 162: #define SW_SHOWMINNOACTIVE 7 ! 163: #define SW_SHOWNA 8 ! 164: #define SW_RESTORE 9 ! 165: #define SW_SHOWDEFAULT 10 ! 166: ! 167: /* Old ShowWindow() Commands */ ! 168: #define HIDE_WINDOW 0 ! 169: #define SHOW_OPENWINDOW 1 ! 170: #define SHOW_ICONWINDOW 2 ! 171: #define SHOW_FULLSCREEN 3 ! 172: #define SHOW_OPENNOACTIVATE 4 ! 173: ! 174: /* Identifiers for the WM_SHOWWINDOW message */ ! 175: #define SW_PARENTCLOSING 1 ! 176: #define SW_OTHERZOOM 2 ! 177: #define SW_PARENTOPENING 3 ! 178: #define SW_OTHERUNZOOM 4 ! 179: ! 180: #endif /* NOSHOWWINDOW */ ! 181: ! 182: #ifndef NOVIRTUALKEYCODES ! 183: ! 184: /* Virtual Keys, Standard Set */ ! 185: #define VK_LBUTTON 0x01 ! 186: #define VK_RBUTTON 0x02 ! 187: #define VK_CANCEL 0x03 ! 188: #define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */ ! 189: ! 190: #define VK_BACK 0x08 ! 191: #define VK_TAB 0x09 ! 192: ! 193: #define VK_CLEAR 0x0C ! 194: #define VK_RETURN 0x0D ! 195: ! 196: #define VK_SHIFT 0x10 ! 197: #define VK_CONTROL 0x11 ! 198: #define VK_MENU 0x12 ! 199: #define VK_PAUSE 0x13 ! 200: #define VK_CAPITAL 0x14 ! 201: ! 202: #define VK_ESCAPE 0x1B ! 203: ! 204: #define VK_SPACE 0x20 ! 205: #define VK_PRIOR 0x21 ! 206: #define VK_NEXT 0x22 ! 207: #define VK_END 0x23 ! 208: #define VK_HOME 0x24 ! 209: #define VK_LEFT 0x25 ! 210: #define VK_UP 0x26 ! 211: #define VK_RIGHT 0x27 ! 212: #define VK_DOWN 0x28 ! 213: #define VK_SELECT 0x29 ! 214: #define VK_PRINT 0x2A ! 215: #define VK_EXECUTE 0x2B ! 216: #define VK_SNAPSHOT 0x2C ! 217: /* #define VK_COPY 0x2C not used by keyboards. */ ! 218: #define VK_INSERT 0x2D ! 219: #define VK_DELETE 0x2E ! 220: #define VK_HELP 0x2F ! 221: ! 222: /* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */ ! 223: /* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */ ! 224: ! 225: #define VK_NUMPAD0 0x60 ! 226: #define VK_NUMPAD1 0x61 ! 227: #define VK_NUMPAD2 0x62 ! 228: #define VK_NUMPAD3 0x63 ! 229: #define VK_NUMPAD4 0x64 ! 230: #define VK_NUMPAD5 0x65 ! 231: #define VK_NUMPAD6 0x66 ! 232: #define VK_NUMPAD7 0x67 ! 233: #define VK_NUMPAD8 0x68 ! 234: #define VK_NUMPAD9 0x69 ! 235: #define VK_MULTIPLY 0x6A ! 236: #define VK_ADD 0x6B ! 237: #define VK_SEPARATOR 0x6C ! 238: #define VK_SUBTRACT 0x6D ! 239: #define VK_DECIMAL 0x6E ! 240: #define VK_DIVIDE 0x6F ! 241: #define VK_F1 0x70 ! 242: #define VK_F2 0x71 ! 243: #define VK_F3 0x72 ! 244: #define VK_F4 0x73 ! 245: #define VK_F5 0x74 ! 246: #define VK_F6 0x75 ! 247: #define VK_F7 0x76 ! 248: #define VK_F8 0x77 ! 249: #define VK_F9 0x78 ! 250: #define VK_F10 0x79 ! 251: #define VK_F11 0x7A ! 252: #define VK_F12 0x7B ! 253: #define VK_F13 0x7C ! 254: #define VK_F14 0x7D ! 255: #define VK_F15 0x7E ! 256: #define VK_F16 0x7F ! 257: #define VK_F17 0x80 ! 258: #define VK_F18 0x81 ! 259: #define VK_F19 0x82 ! 260: #define VK_F20 0x83 ! 261: #define VK_F21 0x84 ! 262: #define VK_F22 0x85 ! 263: #define VK_F23 0x86 ! 264: #define VK_F24 0x87 ! 265: ! 266: #define VK_NUMLOCK 0x90 ! 267: ! 268: /* ! 269: * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys. ! 270: * Used only as parameters to GetAsyncKeyState() and GetKeyState(). ! 271: * No other API or message will distinguish left and right keys in this way. ! 272: */ ! 273: #define VK_LSHIFT 0xA0 ! 274: #define VK_RSHIFT 0xA1 ! 275: #define VK_LCONTROL 0xA2 ! 276: #define VK_RCONTROL 0xA3 ! 277: #define VK_LMENU 0xA4 ! 278: #define VK_RMENU 0xA5 ! 279: ! 280: #define VK_ATTN 0xF6 ! 281: #define VK_CRSEL 0xF7 ! 282: #define VK_EXSEL 0xF8 ! 283: #define VK_EREOF 0xF9 ! 284: #define VK_PLAY 0xFA ! 285: #define VK_ZOOM 0xFB ! 286: #define VK_NONAME 0xFC ! 287: #define VK_PA1 0xFD ! 288: #define VK_OEM_CLEAR 0xFE ! 289: ! 290: #endif /* NOVIRTUALKEYCODES */ ! 291: ! 292: #ifndef NOWH ! 293: ! 294: /* SetWindowsHook() codes */ ! 295: #define WH_MSGFILTER (-1) ! 296: #define WH_JOURNALRECORD 0 ! 297: #define WH_JOURNALPLAYBACK 1 ! 298: #define WH_KEYBOARD 2 ! 299: #define WH_GETMESSAGE 3 ! 300: #define WH_CALLWNDPROC 4 ! 301: #define WH_CBT 5 ! 302: #define WH_SYSMSGFILTER 6 ! 303: #define WH_MOUSE 7 ! 304: #define WH_HARDWARE 8 ! 305: #define WH_DEBUG 9 ! 306: ! 307: ! 308: /* Hook Codes */ ! 309: #define HC_LPLPFNNEXT (-2) ! 310: #define HC_LPFNNEXT (-1) ! 311: #define HC_ACTION 0 ! 312: #define HC_GETNEXT 1 ! 313: #define HC_SKIP 2 ! 314: #define HC_NOREM 3 ! 315: #define HC_NOREMOVE 3 ! 316: #define HC_SYSMODALON 4 ! 317: #define HC_SYSMODALOFF 5 ! 318: ! 319: /* CBT Hook Codes */ ! 320: #define HCBT_MOVESIZE 0 ! 321: #define HCBT_MINMAX 1 ! 322: #define HCBT_QS 2 ! 323: #define HCBT_CREATEWND 3 ! 324: #define HCBT_DESTROYWND 4 ! 325: #define HCBT_ACTIVATE 5 ! 326: #define HCBT_CLICKSKIPPED 6 ! 327: #define HCBT_KEYSKIPPED 7 ! 328: #define HCBT_SYSCOMMAND 8 ! 329: #define HCBT_SETFOCUS 9 ! 330: ! 331: /* ! 332: * HCBT_CREATEWND parameters pointed to by lParam ! 333: */ ! 334: typedef struct tagCBT_CREATEWNDA ! 335: { ! 336: struct tagCREATESTRUCTA *lpcs; ! 337: HWND hwndInsertAfter; ! 338: } CBT_CREATEWNDA, *LPCBT_CREATEWNDA; ! 339: /* ! 340: * HCBT_CREATEWND parameters pointed to by lParam ! 341: */ ! 342: typedef struct tagCBT_CREATEWNDW ! 343: { ! 344: struct tagCREATESTRUCTW *lpcs; ! 345: HWND hwndInsertAfter; ! 346: } CBT_CREATEWNDW, *LPCBT_CREATEWNDW; ! 347: #ifdef UNICODE ! 348: #define CBT_CREATEWND CBT_CREATEWNDW ! 349: #define LPCBT_CREATEWND LPCBT_CREATEWNDW ! 350: #else ! 351: #define CBT_CREATEWND CBT_CREATEWNDA ! 352: #define LPCBT_CREATEWND LPCBT_CREATEWNDA ! 353: #endif // UNICODE ! 354: ! 355: /* WH_MSGFILTER Filter Proc Codes */ ! 356: #define MSGF_DIALOGBOX 0 ! 357: #define MSGF_MESSAGEBOX 1 ! 358: #define MSGF_MENU 2 ! 359: #define MSGF_MOVE 3 ! 360: #define MSGF_SIZE 4 ! 361: #define MSGF_SCROLLBAR 5 ! 362: #define MSGF_NEXTWINDOW 6 ! 363: ! 364: /* Window Manager Hook Codes */ ! 365: #define WC_INIT 1 ! 366: #define WC_SWP 2 ! 367: #define WC_DEFWINDOWPROC 3 ! 368: #define WC_MINMAX 4 ! 369: #define WC_MOVE 5 ! 370: #define WC_SIZE 6 ! 371: #define WC_DRAWCAPTION 7 ! 372: ! 373: /* Message Structure used in Journaling */ ! 374: typedef struct tagEVENTMSG { ! 375: DWORD message; ! 376: DWORD paramL; ! 377: DWORD paramH; ! 378: DWORD time; ! 379: } EVENTMSG, *PEVENTMSGMSG, NEAR *NPEVENTMSGMSG, FAR *LPEVENTMSGMSG; ! 380: ! 381: typedef struct tagEVENTMSG *PEVENTMSG, NEAR *NPEVENTMSG, FAR *LPEVENTMSG; ! 382: ! 383: /* Message structure used by WH_CALLWNDPROC */ ! 384: typedef struct tagCWPSTRUCT { ! 385: LONG lParam; ! 386: DWORD wParam; ! 387: DWORD message; ! 388: HWND hwnd; ! 389: } CWPSTRUCT, *PCWPSTRUCT, NEAR *NPCWPSTRUCT, FAR *LPCWPSTRUCT; ! 390: ! 391: /* Structure used by WH_DEBUG */ ! 392: typedef struct tagDEBUGHOOKSTRUCT { ! 393: DWORD idThread; ! 394: DWORD reserved; ! 395: DWORD lParam; ! 396: DWORD wParam; ! 397: int nCode; ! 398: } DEBUGHOOKSTRUCT, *PDEBUGHOOKSTRUCT, NEAR *NPDEBUGHOOKSTRUCT, ! 399: FAR *LPDEBUGHOOKSTRUCT; ! 400: ! 401: typedef struct tagMOUSEHOOKSTRUCT { ! 402: POINT point; ! 403: HWND hWnd; ! 404: DWORD wHitTestCode; ! 405: DWORD dwExtraInfo; ! 406: } MOUSEHOOKSTRUCT, FAR *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT; ! 407: #endif /* NOWH */ ! 408: ! 409: #ifndef NODESKTOP ! 410: ! 411: /* ! 412: * Desktop-specific access flags ! 413: */ ! 414: #define DESKTOP_ENUMWINDOWS 0x0001L ! 415: #define DESKTOP_CREATEWINDOW 0x0002L ! 416: #define DESKTOP_CREATEMENU 0x0004L ! 417: #define DESKTOP_HOOKCONTROL 0x0008L ! 418: #define DESKTOP_JOURNALRECORD 0x0010L ! 419: #define DESKTOP_JOURNALPLAYBACK 0x0020L ! 420: #define DESKTOP_ENUMERATE 0x0040L ! 421: ! 422: /* ! 423: * Desktop flags ! 424: */ ! 425: #define DESKF_SAVEBITS 0x0001L ! 426: #define DESKF_TEXTMODE 0x0002L ! 427: ! 428: typedef struct _DESKATTRS { ! 429: DWORD cb; ! 430: DWORD cx; ! 431: DWORD cy; ! 432: DWORD cBitsPixel; ! 433: DWORD dwFlags; ! 434: } DESKATTRS, *PDESKATTRS, NEAR *NPDESKATTRS, FAR *LPDESKATTRS; ! 435: ! 436: BOOL ! 437: APIENTRY CRITICAL XXX ! 438: CreateDesktopA( ! 439: IN LPSTR, ! 440: IN LPSTR, ! 441: IN LPDESKATTRS ! 442: ); ! 443: BOOL ! 444: APIENTRY CRITICAL XXX ! 445: CreateDesktopW( ! 446: IN LPWSTR, ! 447: IN LPWSTR, ! 448: IN LPDESKATTRS ! 449: ); ! 450: #ifdef UNICODE ! 451: #define CreateDesktop CreateDesktopW ! 452: #else ! 453: #define CreateDesktop CreateDesktopA ! 454: #endif // !UNICODE ! 455: ! 456: HDESK ! 457: APIENTRY CRITICAL XXX ! 458: OpenDesktopA( ! 459: IN LPSTR, ! 460: IN DWORD ! 461: ); ! 462: HDESK ! 463: APIENTRY CRITICAL XXX ! 464: OpenDesktopW( ! 465: IN LPWSTR, ! 466: IN DWORD ! 467: ); ! 468: #ifdef UNICODE ! 469: #define OpenDesktop OpenDesktopW ! 470: #else ! 471: #define OpenDesktop OpenDesktopA ! 472: #endif // !UNICODE ! 473: ! 474: BOOL APIENTRY CRITICAL XXX SwitchDesktop(IN HDESK); ! 475: BOOL APIENTRY CRITICAL SetThreadDesktop(IN HDESK); ! 476: HDESK APIENTRY CRITICAL GetThreadDesktop(IN DWORD); ! 477: HDESK APIENTRY CRITICAL GetInputDesktop(VOID); ! 478: BOOL APIENTRY CRITICAL XXX CloseDesktop(IN HDESK); ! 479: ! 480: BOOL ! 481: APIENTRY CRITICAL XXX ! 482: EnumDesktopsA( ! 483: IN FARPROC, ! 484: IN LONG ! 485: ); ! 486: BOOL ! 487: APIENTRY CRITICAL XXX ! 488: EnumDesktopsW( ! 489: IN FARPROC, ! 490: IN LONG ! 491: ); ! 492: #ifdef UNICODE ! 493: #define EnumDesktops EnumDesktopsW ! 494: #else ! 495: #define EnumDesktops EnumDesktopsA ! 496: #endif // !UNICODE ! 497: ! 498: UINT ! 499: APIENTRY CRITICAL ! 500: GetDesktopAttrsA( ! 501: IN HDESK, ! 502: NEXTCOUNT IN OUT OUTLPSTR, ! 503: IN UINT, ! 504: OUT LPDESKATTRS OPTIONAL ! 505: ); ! 506: UINT ! 507: APIENTRY CRITICAL ! 508: GetDesktopAttrsW( ! 509: IN HDESK, ! 510: NEXTCOUNT IN OUT OUTLPWSTR, ! 511: IN UINT, ! 512: OUT LPDESKATTRS OPTIONAL ! 513: ); ! 514: #ifdef UNICODE ! 515: #define GetDesktopAttrs GetDesktopAttrsW ! 516: #else ! 517: #define GetDesktopAttrs GetDesktopAttrsA ! 518: #endif // !UNICODE ! 519: ! 520: UINT ! 521: APIENTRY CRITICAL ! 522: GetDesktopTypesA( ! 523: IN LPSTR, ! 524: NEXTCOUNT OUT LPDESKATTRS OPTIONAL, ! 525: IN UINT ! 526: ); ! 527: UINT ! 528: APIENTRY CRITICAL ! 529: GetDesktopTypesW( ! 530: IN LPWSTR, ! 531: NEXTCOUNT OUT LPDESKATTRS OPTIONAL, ! 532: IN UINT ! 533: ); ! 534: #ifdef UNICODE ! 535: #define GetDesktopTypes GetDesktopTypesW ! 536: #else ! 537: #define GetDesktopTypes GetDesktopTypesA ! 538: #endif // !UNICODE ! 539: ! 540: BOOL ! 541: APIENTRY CRITICAL XXX ! 542: EnumDisplayDevicesA( ! 543: IN FARPROC, ! 544: IN LONG ! 545: ); ! 546: BOOL ! 547: APIENTRY CRITICAL XXX ! 548: EnumDisplayDevicesW( ! 549: IN FARPROC, ! 550: IN LONG ! 551: ); ! 552: #ifdef UNICODE ! 553: #define EnumDisplayDevices EnumDisplayDevicesW ! 554: #else ! 555: #define EnumDisplayDevices EnumDisplayDevicesA ! 556: #endif // !UNICODE ! 557: ! 558: #endif /* NODESKTOP */ ! 559: ! 560: #ifndef NOWINDOWSTATION ! 561: ! 562: /* ! 563: * Windowstation-specific access flags ! 564: */ ! 565: #define WINSTA_ENUMDESKTOPS 0x0001L ! 566: #define WINSTA_READATTRIBUTES 0x0002L ! 567: #define WINSTA_ACCESSCLIPBOARD 0x0004L ! 568: #define WINSTA_CREATEDESKTOP 0x0008L ! 569: #define WINSTA_WRITEATTRIBUTES 0x0010L ! 570: #define WINSTA_ACCESSGLOBALATOMS 0x0020L ! 571: #define WINSTA_EXITWINDOWS 0x0040L ! 572: #define WINSTA_ENUMERATE 0x0100L ! 573: #define WINSTA_READSCREEN 0x0200L ! 574: ! 575: typedef struct _WINSTAATTRS { ! 576: DWORD cb; ! 577: } WINSTAATTRS, *PWINSTAATTRS, NEAR *NPWINSTAATTRS, FAR *LPWINSTAATTRS; ! 578: ! 579: HWINSTA ! 580: APIENTRY CRITICAL ! 581: OpenWindowStationA( ! 582: IN LPSTR, ! 583: IN DWORD ! 584: ); ! 585: HWINSTA ! 586: APIENTRY CRITICAL ! 587: OpenWindowStationW( ! 588: IN LPWSTR, ! 589: IN DWORD ! 590: ); ! 591: #ifdef UNICODE ! 592: #define OpenWindowStation OpenWindowStationW ! 593: #else ! 594: #define OpenWindowStation OpenWindowStationA ! 595: #endif // !UNICODE ! 596: ! 597: BOOL APIENTRY CRITICAL SetProcessWindowStation(IN HWINSTA); ! 598: HWINSTA APIENTRY CRITICAL GetProcessWindowStation(VOID); ! 599: BOOL APIENTRY CRITICAL CloseWindowStation(IN HWINSTA); ! 600: BOOL APIENTRY CRITICAL XXX EnumWindowStations(IN FARPROC, IN LONG); ! 601: ! 602: UINT ! 603: APIENTRY CRITICAL ! 604: GetWindowStationAttrsA( ! 605: IN HWINSTA, ! 606: NEXTCOUNT IN OUT OUTLPSTR, ! 607: IN UINT, ! 608: OUT LPWINSTAATTRS ! 609: ); ! 610: UINT ! 611: APIENTRY CRITICAL ! 612: GetWindowStationAttrsW( ! 613: IN HWINSTA, ! 614: NEXTCOUNT IN OUT OUTLPWSTR, ! 615: IN UINT, ! 616: OUT LPWINSTAATTRS ! 617: ); ! 618: #ifdef UNICODE ! 619: #define GetWindowStationAttrs GetWindowStationAttrsW ! 620: #else ! 621: #define GetWindowStationAttrs GetWindowStationAttrsA ! 622: #endif // !UNICODE ! 623: ! 624: #endif /* NOWINDOWSTATION */ ! 625: ! 626: #ifndef NOSECURITY ! 627: ! 628: /* ! 629: * window-specific access flags ! 630: */ ! 631: #define WIN_ACCESSWINDOW 0x0001L ! 632: #define WIN_ENUMERATE 0x0002L ! 633: ! 634: /* ! 635: * menu-specific access flags ! 636: */ ! 637: #define MENU_ACCESSMENU 0x0001L ! 638: ! 639: BOOL APIENTRY CRITICAL SetObjectSecurity(IN HANDLE, IN PSECURITY_INFORMATION, ! 640: IN PSECURITY_DESCRIPTOR); ! 641: BOOL APIENTRY CRITICAL GetObjectSecurity(IN HANDLE, IN PSECURITY_INFORMATION, ! 642: NEXTCOUNT OUT PSECURITY_DESCRIPTOR, IN DWORD, OUT LPDWORD); ! 643: ! 644: #endif /* NOSECURITY */ ! 645: ! 646: typedef struct tagWNDCLASSA { ! 647: DWORD style; ! 648: WNDPROC lpfnWndProc; ! 649: int cbClsExtra; ! 650: int cbWndExtra; ! 651: HANDLE hInstance; ! 652: HICON hIcon; ! 653: HCURSOR hCursor; ! 654: HBRUSH hbrBackground; ! 655: LPSTRID lpszMenuName; ! 656: LPSTRID lpszClassName; ! 657: } WNDCLASSA, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA; ! 658: typedef struct tagWNDCLASSW { ! 659: DWORD style; ! 660: WNDPROC lpfnWndProc; ! 661: int cbClsExtra; ! 662: int cbWndExtra; ! 663: HANDLE hInstance; ! 664: HICON hIcon; ! 665: HCURSOR hCursor; ! 666: HBRUSH hbrBackground; ! 667: LPWSTRID lpszMenuName; ! 668: LPWSTRID lpszClassName; ! 669: } WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW; ! 670: #ifdef UNICODE ! 671: #define WNDCLASS WNDCLASSW ! 672: #define PWNDCLASS PWNDCLASSW ! 673: #define NPWNDCLASS NPWNDCLASSW ! 674: #define LPWNDCLASS LPWNDCLASSW ! 675: #else ! 676: #define WNDCLASS WNDCLASSA ! 677: #define PWNDCLASS PWNDCLASSA ! 678: #define NPWNDCLASS NPWNDCLASSA ! 679: #define LPWNDCLASS LPWNDCLASSA ! 680: #endif // UNICODE ! 681: ! 682: #ifndef NOMSG ! 683: ! 684: /* Message structure */ ! 685: typedef struct tagMSG { ! 686: HWND hwnd; ! 687: DWORD message; ! 688: DWORD wParam; ! 689: LONG lParam; ! 690: DWORD time; ! 691: POINT pt; ! 692: } MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG; ! 693: ! 694: #define POINTSTOPOINT(pt,pts) {(pt).x = (SHORT)LOWORD(pts); \ ! 695: (pt).y = (SHORT)HIWORD(pts);} ! 696: #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y))) ! 697: ! 698: ! 699: #endif /* NOMSG */ ! 700: ! 701: #ifndef NOWINOFFSETS ! 702: ! 703: /* Window field offsets for GetWindowLong() and GetWindowWord() */ ! 704: #define GWL_WNDPROC (-4) ! 705: #define GWL_HINSTANCE (-6) ! 706: #define GWL_HWNDPARENT (-8) ! 707: #define GWL_STYLE (-16) ! 708: #define GWL_EXSTYLE (-20) ! 709: #define GWL_USERDATA (-21) ! 710: #define GWL_ID (-12) ! 711: ! 712: /* Class field offsets for GetClassLong() and GetClassWord() */ ! 713: #define GCL_MENUNAME (-8) ! 714: #define GCL_HBRBACKGROUND (-10) ! 715: #define GCL_HCURSOR (-12) ! 716: #define GCL_HICON (-14) ! 717: #define GCL_HMODULE (-16) ! 718: #define GCL_CBWNDEXTRA (-18) ! 719: #define GCL_CBCLSEXTRA (-20) ! 720: #define GCL_WNDPROC (-24) ! 721: #define GCL_STYLE (-26) ! 722: ! 723: #endif /* NOWINOFFSETS */ ! 724: ! 725: #ifndef NOWINMESSAGES ! 726: ! 727: /* Window Messages */ ! 728: #define WM_NULL 0x0000 ! 729: #define WM_CREATE 0x0001 ! 730: #define WM_DESTROY 0x0002 ! 731: #define WM_MOVE 0x0003 ! 732: #define WM_SIZE 0x0005 ! 733: #define WM_ACTIVATE 0x0006 ! 734: #define WM_SETFOCUS 0x0007 ! 735: #define WM_KILLFOCUS 0x0008 ! 736: #define WM_ENABLE 0x000A ! 737: #define WM_SETREDRAW 0x000B ! 738: #define WM_SETTEXT 0x000C ! 739: #define WM_GETTEXT 0x000D ! 740: #define WM_GETTEXTLENGTH 0x000E ! 741: #define WM_PAINT 0x000F ! 742: #define WM_CLOSE 0x0010 ! 743: #define WM_QUERYENDSESSION 0x0011 ! 744: #define WM_QUIT 0x0012 ! 745: #define WM_QUERYOPEN 0x0013 ! 746: #define WM_ERASEBKGND 0x0014 ! 747: #define WM_SYSCOLORCHANGE 0x0015 ! 748: #define WM_ENDSESSION 0x0016 ! 749: #define WM_SHOWWINDOW 0x0018 ! 750: #define WM_WININICHANGE 0x001A ! 751: #define WM_DEVMODECHANGE 0x001B ! 752: #define WM_ACTIVATEAPP 0x001C ! 753: #define WM_FONTCHANGE 0x001D ! 754: #define WM_TIMECHANGE 0x001E ! 755: #define WM_CANCELMODE 0x001F ! 756: #define WM_SETCURSOR 0x0020 ! 757: #define WM_MOUSEACTIVATE 0x0021 ! 758: #define WM_CHILDACTIVATE 0x0022 ! 759: #define WM_QUEUESYNC 0x0023 ! 760: #define WM_GETMINMAXINFO 0x0024 ! 761: #define WM_PAINTICON 0x0026 ! 762: #define WM_ICONERASEBKGND 0x0027 ! 763: #define WM_NEXTDLGCTL 0x0028 ! 764: #define WM_SPOOLERSTATUS 0x002A ! 765: #define WM_DRAWITEM 0x002B ! 766: #define WM_MEASUREITEM 0x002C ! 767: #define WM_DELETEITEM 0x002D ! 768: #define WM_VKEYTOITEM 0x002E ! 769: #define WM_CHARTOITEM 0x002F ! 770: #define WM_SETFONT 0x0030 ! 771: #define WM_GETFONT 0x0031 ! 772: ! 773: ! 774: #define WM_QUERYDRAGICON 0x0037 ! 775: ! 776: #define WM_COMPAREITEM 0x0039 ! 777: #define WM_COMPACTING 0x0041 ! 778: ! 779: #define WM_OTHERWINDOWCREATED 0x0042 ! 780: #define WM_OTHERWINDOWDESTROYED 0x0043 ! 781: #define WM_COMMNOTIFY 0x0044 ! 782: #define WM_HOTKEYEVENT 0x0045 ! 783: #define WM_WINDOWPOSCHANGING 0x0046 ! 784: #define WM_WINDOWPOSCHANGED 0x0047 ! 785: #define WM_POWER 0x0048 ! 786: ! 787: #define WM_NCCREATE 0x0081 ! 788: #define WM_NCDESTROY 0x0082 ! 789: #define WM_NCCALCSIZE 0x0083 ! 790: #define WM_NCHITTEST 0x0084 ! 791: #define WM_NCPAINT 0x0085 ! 792: #define WM_NCACTIVATE 0x0086 ! 793: #define WM_GETDLGCODE 0x0087 ! 794: #define WM_NCMOUSEMOVE 0x00A0 ! 795: #define WM_NCLBUTTONDOWN 0x00A1 ! 796: #define WM_NCLBUTTONUP 0x00A2 ! 797: #define WM_NCLBUTTONDBLCLK 0x00A3 ! 798: #define WM_NCRBUTTONDOWN 0x00A4 ! 799: #define WM_NCRBUTTONUP 0x00A5 ! 800: #define WM_NCRBUTTONDBLCLK 0x00A6 ! 801: #define WM_NCMBUTTONDOWN 0x00A7 ! 802: #define WM_NCMBUTTONUP 0x00A8 ! 803: #define WM_NCMBUTTONDBLCLK 0x00A9 ! 804: ! 805: #define WM_KEYFIRST 0x0100 ! 806: #define WM_KEYDOWN 0x0100 ! 807: #define WM_KEYUP 0x0101 ! 808: #define WM_CHAR 0x0102 ! 809: #define WM_DEADCHAR 0x0103 ! 810: #define WM_SYSKEYDOWN 0x0104 ! 811: #define WM_SYSKEYUP 0x0105 ! 812: #define WM_SYSCHAR 0x0106 ! 813: #define WM_SYSDEADCHAR 0x0107 ! 814: #define WM_KEYLAST 0x0108 ! 815: ! 816: #define WM_INITDIALOG 0x0110 ! 817: #define WM_COMMAND 0x0111 ! 818: #define WM_SYSCOMMAND 0x0112 ! 819: #define WM_TIMER 0x0113 ! 820: #define WM_HSCROLL 0x0114 ! 821: #define WM_VSCROLL 0x0115 ! 822: #define WM_INITMENU 0x0116 ! 823: #define WM_INITMENUPOPUP 0x0117 ! 824: #define WM_MENUSELECT 0x011F ! 825: #define WM_MENUCHAR 0x0120 ! 826: #define WM_ENTERIDLE 0x0121 ! 827: ! 828: #define WM_CTLCOLORMSGBOX 0x0132 ! 829: #define WM_CTLCOLOREDIT 0x0133 ! 830: #define WM_CTLCOLORLISTBOX 0x0134 ! 831: #define WM_CTLCOLORBTN 0x0135 ! 832: #define WM_CTLCOLORDLG 0x0136 ! 833: #define WM_CTLCOLORSCROLLBAR 0x0137 ! 834: #define WM_CTLCOLORSTATIC 0x0138 ! 835: ! 836: #define WM_MOUSEFIRST 0x0200 ! 837: #define WM_MOUSEMOVE 0x0200 ! 838: #define WM_LBUTTONDOWN 0x0201 ! 839: #define WM_LBUTTONUP 0x0202 ! 840: #define WM_LBUTTONDBLCLK 0x0203 ! 841: #define WM_RBUTTONDOWN 0x0204 ! 842: #define WM_RBUTTONUP 0x0205 ! 843: #define WM_RBUTTONDBLCLK 0x0206 ! 844: #define WM_MBUTTONDOWN 0x0207 ! 845: #define WM_MBUTTONUP 0x0208 ! 846: #define WM_MBUTTONDBLCLK 0x0209 ! 847: #define WM_MOUSELAST 0x0209 ! 848: ! 849: #define WM_PARENTNOTIFY 0x0210 ! 850: #define WM_MDICREATE 0x0220 ! 851: #define WM_MDIDESTROY 0x0221 ! 852: #define WM_MDIACTIVATE 0x0222 ! 853: #define WM_MDIRESTORE 0x0223 ! 854: #define WM_MDINEXT 0x0224 ! 855: #define WM_MDIMAXIMIZE 0x0225 ! 856: #define WM_MDITILE 0x0226 ! 857: #define WM_MDICASCADE 0x0227 ! 858: #define WM_MDIICONARRANGE 0x0228 ! 859: #define WM_MDIGETACTIVE 0x0229 ! 860: #define WM_MDISETMENU 0x0230 ! 861: #define WM_DROPFILES 0x0233 ! 862: ! 863: #define WM_CUT 0x0300 ! 864: #define WM_COPY 0x0301 ! 865: #define WM_PASTE 0x0302 ! 866: #define WM_CLEAR 0x0303 ! 867: #define WM_UNDO 0x0304 ! 868: #define WM_RENDERFORMAT 0x0305 ! 869: #define WM_RENDERALLFORMATS 0x0306 ! 870: #define WM_DESTROYCLIPBOARD 0x0307 ! 871: #define WM_DRAWCLIPBOARD 0x0308 ! 872: #define WM_PAINTCLIPBOARD 0x0309 ! 873: #define WM_VSCROLLCLIPBOARD 0x030A ! 874: #define WM_SIZECLIPBOARD 0x030B ! 875: #define WM_ASKCBFORMATNAME 0x030C ! 876: #define WM_CHANGECBCHAIN 0x030D ! 877: #define WM_HSCROLLCLIPBOARD 0x030E ! 878: #define WM_QUERYNEWPALETTE 0x030F ! 879: #define WM_PALETTEISCHANGING 0x0310 ! 880: #define WM_PALETTECHANGED 0x0311 ! 881: #define WM_HOTKEY 0x0312 ! 882: #define WM_SETFOREGROUND 0x0313 ! 883: ! 884: /* NOTE: All Message Numbers below 0x0400 are RESERVED. */ ! 885: ! 886: /* Private Window Messages Start Here: */ ! 887: #define WM_USER 0x0400 ! 888: ! 889: #ifndef NONCMESSAGES ! 890: ! 891: /* WM_SYNCTASK Commands */ ! 892: #define ST_BEGINSWP 0 ! 893: #define ST_ENDSWP 1 ! 894: ! 895: /* WinWhere() Area Codes */ ! 896: #define HTERROR (-2) ! 897: #define HTTRANSPARENT (-1) ! 898: #define HTNOWHERE 0 ! 899: #define HTCLIENT 1 ! 900: #define HTCAPTION 2 ! 901: #define HTSYSMENU 3 ! 902: #define HTGROWBOX 4 ! 903: #define HTSIZE HTGROWBOX ! 904: #define HTMENU 5 ! 905: #define HTHSCROLL 6 ! 906: #define HTVSCROLL 7 ! 907: #define HTREDUCE 8 ! 908: #define HTZOOM 9 ! 909: #define HTLEFT 10 ! 910: #define HTRIGHT 11 ! 911: #define HTTOP 12 ! 912: #define HTTOPLEFT 13 ! 913: #define HTTOPRIGHT 14 ! 914: #define HTBOTTOM 15 ! 915: #define HTBOTTOMLEFT 16 ! 916: #define HTBOTTOMRIGHT 17 ! 917: #define HTSIZEFIRST HTLEFT ! 918: #define HTSIZELAST HTBOTTOMRIGHT ! 919: ! 920: #endif /* NONCMESSAGES */ ! 921: ! 922: /* WM_MOUSEACTIVATE Return Codes */ ! 923: #define MA_ACTIVATE 1 ! 924: #define MA_ACTIVATEANDEAT 2 ! 925: #define MA_NOACTIVATE 3 ! 926: #define MA_NOACTIVATEANDEAT 4 ! 927: ! 928: UINT ! 929: APIENTRY ! 930: RegisterWindowMessageA( ! 931: IN LPSTR lpString ! 932: ); ! 933: UINT ! 934: APIENTRY ! 935: RegisterWindowMessageW( ! 936: IN LPWSTR lpString ! 937: ); ! 938: #ifdef UNICODE ! 939: #define RegisterWindowMessage RegisterWindowMessageW ! 940: #else ! 941: #define RegisterWindowMessage RegisterWindowMessageA ! 942: #endif // !UNICODE ! 943: ! 944: /* WM_SIZE message wParam values */ ! 945: #define SIZENORMAL 0 ! 946: #define SIZEICONIC 1 ! 947: #define SIZEFULLSCREEN 2 ! 948: #define SIZEZOOMSHOW 3 ! 949: #define SIZEZOOMHIDE 4 ! 950: ! 951: /* WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam */ ! 952: typedef struct tagWINDOWPOS { ! 953: HWND hwnd; ! 954: HWND hwndInsertAfter; ! 955: int x; ! 956: int y; ! 957: int cx; ! 958: int cy; ! 959: DWORD flags; ! 960: } WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS; ! 961: ! 962: /* WM_NCCALCSIZE parameter structure */ ! 963: typedef struct tagNCCALCSIZE_PARAMS { ! 964: RECT rgrc[3]; ! 965: PWINDOWPOS lppos; ! 966: } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS; ! 967: ! 968: /* WM_NCCALCSIZE "window valid rect" return values */ ! 969: #define WVR_ALIGNTOP 0x0010 ! 970: #define WVR_ALIGNLEFT 0x0020 ! 971: #define WVR_ALIGNBOTTOM 0x0040 ! 972: #define WVR_ALIGNRIGHT 0x0080 ! 973: #define WVR_HREDRAW 0x0100 ! 974: #define WVR_VREDRAW 0x0200 ! 975: #define WVR_REDRAW (WVR_HREDRAW | WVR_VREDRAW) ! 976: #define WVR_VALIDRECTS 0x0400 ! 977: ! 978: #define WVR_MINVALID WVR_ALIGNTOP /* ;Internal */ ! 979: #define WVR_MAXVALID WVR_VALIDRECTS /* ;Internal */ ! 980: ! 981: #ifndef NOKEYSTATES ! 982: ! 983: /* Key State Masks for Mouse Messages */ ! 984: #define MK_LBUTTON 0x0001 ! 985: #define MK_RBUTTON 0x0002 ! 986: #define MK_SHIFT 0x0004 ! 987: #define MK_CONTROL 0x0008 ! 988: #define MK_MBUTTON 0x0010 ! 989: ! 990: #endif /* NOKEYSTATES */ ! 991: ! 992: #endif /* NOWINMESSAGES */ ! 993: ! 994: #ifndef NOWINSTYLES ! 995: ! 996: /* Window Styles */ ! 997: #define WS_OVERLAPPED 0x00000000L ! 998: #define WS_POPUP 0x80000000L ! 999: #define WS_CHILD 0x40000000L ! 1000: #define WS_MINIMIZE 0x20000000L ! 1001: #define WS_VISIBLE 0x10000000L ! 1002: #define WS_DISABLED 0x08000000L ! 1003: #define WS_CLIPSIBLINGS 0x04000000L ! 1004: #define WS_CLIPCHILDREN 0x02000000L ! 1005: #define WS_MAXIMIZE 0x01000000L ! 1006: #define WS_CAPTION 0x00C00000L /* WS_BORDER | WS_DLGFRAME */ ! 1007: #define WS_BORDER 0x00800000L ! 1008: #define WS_DLGFRAME 0x00400000L ! 1009: #define WS_VSCROLL 0x00200000L ! 1010: #define WS_HSCROLL 0x00100000L ! 1011: #define WS_SYSMENU 0x00080000L ! 1012: #define WS_THICKFRAME 0x00040000L ! 1013: #define WS_GROUP 0x00020000L ! 1014: #define WS_TABSTOP 0x00010000L ! 1015: ! 1016: #define WS_MINIMIZEBOX 0x00020000L ! 1017: #define WS_MAXIMIZEBOX 0x00010000L ! 1018: ! 1019: #define WS_TILED WS_OVERLAPPED ! 1020: #define WS_ICONIC WS_MINIMIZE ! 1021: #define WS_SIZEBOX WS_THICKFRAME ! 1022: ! 1023: /* Common Window Styles */ ! 1024: #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX) ! 1025: #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU) ! 1026: #define WS_CHILDWINDOW (WS_CHILD) ! 1027: ! 1028: #define WS_TILEDWINDOW (WS_OVERLAPPEDWINDOW) ! 1029: ! 1030: /* Extended Window Styles */ ! 1031: #define WS_EX_DLGMODALFRAME 0x00000001L ! 1032: #define WS_EX_NOPARENTNOTIFY 0x00000004L ! 1033: #define WS_EX_TOPMOST 0x00000008L ! 1034: #define WS_EX_ACCEPTFILES 0x00000010L ! 1035: #define WS_EX_TRANSPARENT 0x00000020L ! 1036: #define WS_EX_ALLEXSTYLES (WS_EX_TRANSPARENT | WS_EX_DLGMODALFRAME | WS_EX_DRAGOBJECT | WS_EX_NOPARENTNOTIFY | WS_EX_TOPMOST | WS_EX_ACCEPTFILES) /* ;Internal */ ! 1037: ! 1038: /* Class styles */ ! 1039: #define CS_VREDRAW 0x0001 ! 1040: #define CS_HREDRAW 0x0002 ! 1041: #define CS_KEYCVTWINDOW 0x0004 ! 1042: #define CS_DBLCLKS 0x0008 ! 1043: /* 0x0010 - reserved (see user\server\usersrv.h) */ ! 1044: #define CS_OWNDC 0x0020 ! 1045: #define CS_CLASSDC 0x0040 ! 1046: #define CS_PARENTDC 0x0080 ! 1047: #define CS_NOKEYCVT 0x0100 ! 1048: #define CS_NOCLOSE 0x0200 ! 1049: #define CS_SAVEBITS 0x0800 ! 1050: #define CS_BYTEALIGNCLIENT 0x1000 ! 1051: #define CS_BYTEALIGNWINDOW 0x2000 ! 1052: #define CS_GLOBALCLASS 0x4000 /* Global window class */ ! 1053: ! 1054: #endif /* NOWINSTYLES */ ! 1055: ! 1056: #ifndef NOCLIPBOARD ! 1057: ! 1058: /* Predefined Clipboard Formats */ ! 1059: #define CF_TEXT 1 ! 1060: #define CF_BITMAP 2 ! 1061: #define CF_METAFILEPICT 3 ! 1062: #define CF_SYLK 4 ! 1063: #define CF_DIF 5 ! 1064: #define CF_TIFF 6 ! 1065: #define CF_OEMTEXT 7 ! 1066: #define CF_DIB 8 ! 1067: #define CF_PALETTE 9 ! 1068: #define CF_UNICODETEXT 10 ! 1069: ! 1070: #define CF_OWNERDISPLAY 0x0080 ! 1071: #define CF_DSPTEXT 0x0081 ! 1072: #define CF_DSPBITMAP 0x0082 ! 1073: #define CF_DSPMETAFILEPICT 0x0083 ! 1074: ! 1075: /* "Private" formats don't get GlobalFree()'d */ ! 1076: #define CF_PRIVATEFIRST 0x0200 ! 1077: #define CF_PRIVATELAST 0x02FF ! 1078: ! 1079: /* "GDIOBJ" formats do get DeleteObject()'d */ ! 1080: #define CF_GDIOBJFIRST 0x0300 ! 1081: #define CF_GDIOBJLAST 0x03FF ! 1082: ! 1083: #endif /* NOCLIPBOARD */ ! 1084: ! 1085: /* ! 1086: * Defines for the fVirt field of the Accelerator table structure. ! 1087: */ ! 1088: #define FVIRTKEY TRUE /* Assumed to be == TRUE */ ! 1089: #define FNOINVERT 0x02 ! 1090: #define FSHIFT 0x04 ! 1091: #define FCONTROL 0x08 ! 1092: #define FALT 0x10 ! 1093: ! 1094: typedef struct tagACCEL { ! 1095: BYTE fVirt; /* Also called the flags field */ ! 1096: WORD key; ! 1097: WORD cmd; ! 1098: } ACCEL, *LPACCEL; ! 1099: ! 1100: typedef struct tagPAINTSTRUCT { ! 1101: HDC hdc; ! 1102: BOOL fErase; ! 1103: RECT rcPaint; ! 1104: BOOL fRestore; ! 1105: BOOL fIncUpdate; ! 1106: BYTE rgbReserved[32]; ! 1107: } PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT; ! 1108: ! 1109: typedef struct tagCREATESTRUCTA { ! 1110: LPVOID lpCreateParams; ! 1111: HANDLE hInstance; ! 1112: HANDLE hMenu; ! 1113: HWND hwndParent; ! 1114: int cy; ! 1115: int cx; ! 1116: int y; ! 1117: int x; ! 1118: LONG style; ! 1119: LPSTRNULL lpszName; ! 1120: LPSTRID lpszClass; ! 1121: DWORD dwExStyle; ! 1122: } CREATESTRUCTA, *LPCREATESTRUCTA; ! 1123: typedef struct tagCREATESTRUCTW { ! 1124: LPVOID lpCreateParams; ! 1125: HANDLE hInstance; ! 1126: HANDLE hMenu; ! 1127: HWND hwndParent; ! 1128: int cy; ! 1129: int cx; ! 1130: int y; ! 1131: int x; ! 1132: LONG style; ! 1133: LPWSTRNULL lpszName; ! 1134: LPWSTRID lpszClass; ! 1135: DWORD dwExStyle; ! 1136: } CREATESTRUCTW, *LPCREATESTRUCTW; ! 1137: #ifdef UNICODE ! 1138: #define CREATESTRUCT CREATESTRUCTW ! 1139: #define LPCREATESTRUCT LPCREATESTRUCTW ! 1140: #else ! 1141: #define CREATESTRUCT CREATESTRUCTA ! 1142: #define LPCREATESTRUCT LPCREATESTRUCTA ! 1143: #endif // UNICODE ! 1144: ! 1145: ! 1146: /* Owner draw control types */ ! 1147: #define ODT_MENU 1 ! 1148: #define ODT_LISTBOX 2 ! 1149: #define ODT_COMBOBOX 3 ! 1150: #define ODT_BUTTON 4 ! 1151: ! 1152: /* Owner draw actions */ ! 1153: #define ODA_DRAWENTIRE 0x0001 ! 1154: #define ODA_SELECT 0x0002 ! 1155: #define ODA_FOCUS 0x0004 ! 1156: ! 1157: /* Owner draw state */ ! 1158: #define ODS_SELECTED 0x0001 ! 1159: #define ODS_GRAYED 0x0002 ! 1160: #define ODS_DISABLED 0x0004 ! 1161: #define ODS_CHECKED 0x0008 ! 1162: #define ODS_FOCUS 0x0010 ! 1163: ! 1164: /* MEASUREITEMSTRUCT for ownerdraw */ ! 1165: typedef struct tagMEASUREITEMSTRUCT { ! 1166: DWORD CtlType; ! 1167: DWORD CtlID; ! 1168: DWORD itemID; ! 1169: DWORD itemWidth; ! 1170: DWORD itemHeight; ! 1171: DWORD itemData; ! 1172: } MEASUREITEMSTRUCT, NEAR *PMEASUREITEMSTRUCT, FAR *LPMEASUREITEMSTRUCT; ! 1173: ! 1174: ! 1175: /* DRAWITEMSTRUCT for ownerdraw */ ! 1176: typedef struct tagDRAWITEMSTRUCT { ! 1177: DWORD CtlType; ! 1178: DWORD CtlID; ! 1179: DWORD itemID; ! 1180: DWORD itemAction; ! 1181: DWORD itemState; ! 1182: HWND hwndItem; ! 1183: HDC hDC; ! 1184: RECT rcItem; ! 1185: DWORD itemData; ! 1186: } DRAWITEMSTRUCT, NEAR *PDRAWITEMSTRUCT, FAR *LPDRAWITEMSTRUCT; ! 1187: ! 1188: /* DELETEITEMSTRUCT for ownerdraw */ ! 1189: typedef struct tagDELETEITEMSTRUCT { ! 1190: DWORD CtlType; ! 1191: DWORD CtlID; ! 1192: DWORD itemID; ! 1193: HWND hwndItem; ! 1194: DWORD itemData; ! 1195: } DELETEITEMSTRUCT, NEAR *PDELETEITEMSTRUCT, FAR *LPDELETEITEMSTRUCT; ! 1196: ! 1197: /* COMPAREITEMSTUCT for ownerdraw sorting */ ! 1198: typedef struct tagCOMPAREITEMSTRUCT { ! 1199: DWORD CtlType; ! 1200: DWORD CtlID; ! 1201: HWND hwndItem; ! 1202: DWORD itemID1; ! 1203: DWORD itemData1; ! 1204: DWORD itemID2; ! 1205: DWORD itemData2; ! 1206: } COMPAREITEMSTRUCT, NEAR *PCOMPAREITEMSTRUCT, FAR *LPCOMPAREITEMSTRUCT; ! 1207: ! 1208: #ifndef NOMSG ! 1209: ! 1210: /* Message Function Templates */ ! 1211: BOOL APIENTRY CRITICAL XXX GetMessage(OUT LPMSG lpMsg, ! 1212: IN HWNDVERBATIM hWnd OPTIONAL, IN UINT wMsgFilterMin, ! 1213: IN UINT wMsgFilterMax); ! 1214: BOOL APIENTRY CRITICAL TranslateMessage(IN LPMSG lpMsg); ! 1215: LONG APIENTRY CRITICAL XXX DispatchMessage(IN LPMSG lpMsg); ! 1216: BOOL APIENTRY CRITICAL XXX PeekMessage(OUT LPMSG lpMsg, ! 1217: IN HWNDVERBATIM hWnd OPTIONAL, IN UINT wMsgFilterMin, ! 1218: IN UINT wMsgFilterMax, IN UINT wRemoveMsg); ! 1219: ! 1220: /* PeekMessage() Options */ ! 1221: #define PM_NOREMOVE 0x0000 ! 1222: #define PM_REMOVE 0x0001 ! 1223: #define PM_NOYIELD 0x0002 ! 1224: ! 1225: #endif /* NOMSG */ ! 1226: ! 1227: BOOL APIENTRY CRITICAL RegisterHotKey(IN HWND hwnd OPTIONAL, IN int id, ! 1228: IN UINT fsModifiers, IN UINT vk); ! 1229: BOOL APIENTRY CRITICAL UnregisterHotKey(IN HWND hwnd OPTIONAL, IN int id); ! 1230: ! 1231: #define MOD_ALT 0x0001 ! 1232: #define MOD_CONTROL 0x0002 ! 1233: #define MOD_SHIFT 0x0004 ! 1234: ! 1235: #define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */ ! 1236: #define IDHOT_SNAPDESKTOP (-2) /* PRINTSCRN */ ! 1237: ! 1238: #ifdef WIN_INTERNAL ! 1239: #ifndef LSTRING ! 1240: #define NOLSTRING ! 1241: #endif ! 1242: #ifndef LFILEIO ! 1243: #define NOLFILEIO ! 1244: #endif ! 1245: #endif ! 1246: ! 1247: ! 1248: BOOL APIENTRY CRITICAL ExitWindows(IN DWORD dwReserved, IN UINT wReturnCode); ! 1249: ! 1250: BOOL APIENTRY CRITICAL SwapMouseButton(IN BOOL); ! 1251: DWORD APIENTRY CRITICAL GetMessagePos(void); ! 1252: LONG APIENTRY CRITICAL GetMessageTime(void); ! 1253: LONG APIENTRY CRITICAL GetMessageExtraInfo(void); ! 1254: ! 1255: LONG APIENTRY CRITICAL XXX SendMessageA(IN HWNDFF hWnd, IN UINT wMsg, ! 1256: IN DWORD wParam, IN LONG lParam); ! 1257: LONG APIENTRY CRITICAL XXX SendMessageW(IN HWNDFF hWnd, IN UINT wMsg, ! 1258: IN DWORD wParam, IN LONG lParam); ! 1259: #ifdef UNICODE ! 1260: #define SendMessage SendMessageW ! 1261: #else ! 1262: #define SendMessage SendMessageA ! 1263: #endif // !UNICODE ! 1264: BOOL APIENTRY CRITICAL XXX SendNotifyMessage(IN HWND hwnd, IN UINT wMsg, ! 1265: IN DWORD wParam, IN LONG lParam); ! 1266: BOOL APIENTRY CRITICAL PostMessage(IN HWNDFF hWnd, IN UINT wMsg, ! 1267: IN DWORD wParam, IN LONG lParam); ! 1268: BOOL APIENTRY CRITICAL PostThreadMessage(IN DWORD idThread, IN UINT wMsg, ! 1269: IN DWORD wParam, IN LONG lParam); ! 1270: #define PostAppMessage(idThread, wMsg, wParam, lParam)\ ! 1271: PostThreadMessage((DWORD)idThread, wMsg, wParam, lParam) ! 1272: BOOL APIENTRY CRITICAL ReplyMessage(IN LONG); ! 1273: BOOL APIENTRY CRITICAL XXX WaitMessage(void); ! 1274: DWORD APIENTRY WaitForInputIdle(HANDLE hProcess, DWORD dwMilliseconds); ! 1275: LONG APIENTRY CRITICAL XXX DefWindowProcA(IN HWND hWnd, IN UINT wMsg, ! 1276: IN DWORD wParam, IN LONG lParam); ! 1277: LONG APIENTRY CRITICAL XXX DefWindowProcW(IN HWND hWnd, IN UINT wMsg, ! 1278: IN DWORD wParam, IN LONG lParam); ! 1279: #ifdef UNICODE ! 1280: #define DefWindowProc DefWindowProcW ! 1281: #else ! 1282: #define DefWindowProc DefWindowProcA ! 1283: #endif // !UNICODE ! 1284: BOOL APIENTRY CRITICAL PostQuitMessage(IN int nExitCode); ! 1285: LONG APIENTRY CRITICAL XXX CallWindowProcA(IN WNDPROC lpPrevWndFunc, ! 1286: IN HWND hWnd, IN UINT wMsg, IN DWORD wParam, IN LONG lParam); ! 1287: LONG APIENTRY CRITICAL XXX CallWindowProcW(IN WNDPROC lpPrevWndFunc, ! 1288: IN HWND hWnd, IN UINT wMsg, IN DWORD wParam, IN LONG lParam); ! 1289: #ifdef UNICODE ! 1290: #define CallWindowProc CallWindowProcW ! 1291: #else ! 1292: #define CallWindowProc CallWindowProcA ! 1293: #endif // !UNICODE ! 1294: BOOL APIENTRY CRITICAL InSendMessage(void); ! 1295: ! 1296: UINT APIENTRY CRITICAL GetDoubleClickTime(void); ! 1297: BOOL APIENTRY CRITICAL SetDoubleClickTime(IN UINT); ! 1298: ! 1299: BOOL ! 1300: APIENTRY CRITICAL ! 1301: RegisterClassA( ! 1302: IN LPWNDCLASSA lpWndClass ! 1303: ); ! 1304: BOOL ! 1305: APIENTRY CRITICAL ! 1306: RegisterClassW( ! 1307: IN LPWNDCLASSW lpWndClass ! 1308: ); ! 1309: #ifdef UNICODE ! 1310: #define RegisterClass RegisterClassW ! 1311: #else ! 1312: #define RegisterClass RegisterClassA ! 1313: #endif // !UNICODE ! 1314: ! 1315: BOOL ! 1316: APIENTRY CRITICAL ! 1317: UnregisterClassA( ! 1318: IN LPSTRID lpClassName, ! 1319: IN HANDLE hInstance ! 1320: ); ! 1321: BOOL ! 1322: APIENTRY CRITICAL ! 1323: UnregisterClassW( ! 1324: IN LPWSTRID lpClassName, ! 1325: IN HANDLE hInstance ! 1326: ); ! 1327: #ifdef UNICODE ! 1328: #define UnregisterClass UnregisterClassW ! 1329: #else ! 1330: #define UnregisterClass UnregisterClassA ! 1331: #endif // !UNICODE ! 1332: ! 1333: BOOL ! 1334: APIENTRY CRITICAL ! 1335: GetClassInfoA( ! 1336: IN HANDLE hInstance OPTIONAL, ! 1337: IN LPSTRID lpClassName, ! 1338: OUT LPWNDCLASSA lpWndClass ! 1339: ); ! 1340: BOOL ! 1341: APIENTRY CRITICAL ! 1342: GetClassInfoW( ! 1343: IN HANDLE hInstance OPTIONAL, ! 1344: IN LPWSTRID lpClassName, ! 1345: OUT LPWNDCLASSW lpWndClass ! 1346: ); ! 1347: #ifdef UNICODE ! 1348: #define GetClassInfo GetClassInfoW ! 1349: #else ! 1350: #define GetClassInfo GetClassInfoA ! 1351: #endif // !UNICODE ! 1352: ! 1353: #define CW_USEDEFAULT ((int)0x80000000) ! 1354: ! 1355: HWND ! 1356: APIENTRY CRITICAL XXX ! 1357: CreateWindowExA( ! 1358: IN DWORD dwExStyle, ! 1359: IN LPSTRID lpClassName, ! 1360: IN LPSTRID lpWindowName, ! 1361: IN DWORD dwStyle, ! 1362: IN int X, ! 1363: IN int Y, ! 1364: IN int nWidth, ! 1365: IN int nHeight, ! 1366: IN HWND hWndParent OPTIONAL, ! 1367: IN HMENU hMenu, ! 1368: IN HANDLE hInstance, ! 1369: IN LPVOID lpParam OPTIONAL ! 1370: ); ! 1371: HWND ! 1372: APIENTRY CRITICAL XXX ! 1373: CreateWindowExW( ! 1374: IN DWORD dwExStyle, ! 1375: IN LPWSTRID lpClassName, ! 1376: IN LPWSTRID lpWindowName, ! 1377: IN DWORD dwStyle, ! 1378: IN int X, ! 1379: IN int Y, ! 1380: IN int nWidth, ! 1381: IN int nHeight, ! 1382: IN HWND hWndParent OPTIONAL, ! 1383: IN HMENU hMenu, ! 1384: IN HANDLE hInstance, ! 1385: IN LPVOID lpParam OPTIONAL ! 1386: ); ! 1387: #ifdef UNICODE ! 1388: #define CreateWindowEx CreateWindowExW ! 1389: #else ! 1390: #define CreateWindowEx CreateWindowExA ! 1391: #endif // !UNICODE ! 1392: ! 1393: #define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,\ ! 1394: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)\ ! 1395: CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,\ ! 1396: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam) ! 1397: #define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\ ! 1398: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)\ ! 1399: CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,\ ! 1400: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam) ! 1401: #ifdef UNICODE ! 1402: #define CreateWindow CreateWindowW ! 1403: #else ! 1404: #define CreateWindow CreateWindowA ! 1405: #endif // !UNICODE ! 1406: ! 1407: BOOL APIENTRY CRITICAL IsWindow(IN HWNDVERBATIM hWnd); ! 1408: BOOL APIENTRY CRITICAL IsChild(IN HWND hWndParent, IN HWND hWnd); ! 1409: BOOL APIENTRY CRITICAL XXX DestroyWindow(IN HWND hWnd); ! 1410: ! 1411: BOOL APIENTRY CRITICAL XXX ShowWindow(IN HWND hWnd, IN int nCmdShow); ! 1412: BOOL APIENTRY CRITICAL XXX FlashWindow(IN HWND hWnd, IN BOOL bInvert); ! 1413: BOOL APIENTRY CRITICAL XXX ShowOwnedPopups(IN HWND hWnd, IN BOOL fShow); ! 1414: ! 1415: BOOL APIENTRY CRITICAL XXX OpenIcon(IN HWND hWnd); ! 1416: BOOL APIENTRY CRITICAL XXX CloseWindow(IN HWND hWnd); ! 1417: BOOL APIENTRY CRITICAL XXX MoveWindow(IN HWND hWnd, IN int X, IN int Y, IN int nWidth, IN int nHeight, IN BOOL bRepaint); ! 1418: BOOL APIENTRY CRITICAL XXX SetWindowPos(IN HWND hWnd, IN HWNDIA hWndInsertAfter OPTIONAL, IN int X, IN int Y, IN int cx, IN int cy, IN UINT wFlags); ! 1419: ! 1420: #ifndef NODEFERWINDOWPOS ! 1421: ! 1422: HWPI APIENTRY CRITICAL BeginDeferWindowPos(IN int nNumWindows); ! 1423: HWPI APIENTRY CRITICAL DeferWindowPos(IN HWPI hWinPosInfo, IN HWND hWnd, IN HWNDIA hWndInsertAfter OPTIONAL, IN int x, IN int y, IN int cx, IN int cy, IN UINT wFlags); ! 1424: BOOL APIENTRY CRITICAL XXX EndDeferWindowPos(IN HWPI hWinPosInfo); ! 1425: ! 1426: #endif /* NODEFERWINDOWPOS */ ! 1427: ! 1428: BOOL APIENTRY CRITICAL IsWindowVisible(IN HWND hWnd); ! 1429: BOOL APIENTRY CRITICAL IsIconic(IN HWND hWnd); ! 1430: BOOL APIENTRY CRITICAL AnyPopup(void); ! 1431: BOOL APIENTRY CRITICAL XXX BringWindowToTop(IN HWND hWnd); ! 1432: BOOL APIENTRY CRITICAL IsZoomed(IN HWND hWnd); ! 1433: ! 1434: /* SetWindowPos Flags */ ! 1435: #define SWP_NOSIZE 0x0001 ! 1436: #define SWP_NOMOVE 0x0002 ! 1437: #define SWP_NOZORDER 0x0004 ! 1438: #define SWP_NOREDRAW 0x0008 ! 1439: #define SWP_NOACTIVATE 0x0010 ! 1440: #define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */ ! 1441: #define SWP_SHOWWINDOW 0x0040 ! 1442: #define SWP_HIDEWINDOW 0x0080 ! 1443: #define SWP_NOCOPYBITS 0x0100 ! 1444: #define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */ ! 1445: ! 1446: #define SWP_DRAWFRAME SWP_FRAMECHANGED ! 1447: #define SWP_NOREPOSITION SWP_NOOWNERZORDER ! 1448: ! 1449: #define SWP_NOCLIENTSIZE 0x0800 /* Client didn't resize */ /* ;Internal */ ! 1450: #define SWP_NOCLIENTMOVE 0x1000 /* Client didn't move */ /* ;Internal */ ! 1451: #define SWP_NOSENDCHANGING 0x0400 /* Don't send WM_WINDOWPOSCHANGING */ /* ;Internal */ ! 1452: #define SWP_DEFERDRAWING 0x2000 /* Don't do any drawing or erasing */ /* ;Internal */ ! 1453: /* ;Internal */ ! 1454: #define SWP_CHANGEMASK (SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | /* ;Internal */ \ ! 1455: SWP_FRAMECHANGED | /* ;Internal */ \ ! 1456: SWP_SHOWWINDOW | SWP_HIDEWINDOW | /* ;Internal */ \ ! 1457: SWP_NOCLIENTSIZE | SWP_NOCLIENTMOVE) /* ;Internal */ ! 1458: /* ;Internal */ ! 1459: #define SWP_NOCHANGE (SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | /* ;Internal */ \ ! 1460: SWP_NOCLIENTSIZE | SWP_NOCLIENTMOVE) /* ;Internal */ ! 1461: ! 1462: #ifndef NOCTLMGR ! 1463: ! 1464: HWND ! 1465: APIENTRY CRITICAL ! 1466: CreateDialogParamA( ! 1467: IN HANDLE hInstance, ! 1468: IN LPSTRID lpTemplateName, ! 1469: IN HWND hWndParent OPTIONAL, ! 1470: IN WNDPROC lpDialogFunc, ! 1471: IN LONG dwInitParam ! 1472: ); ! 1473: HWND ! 1474: APIENTRY CRITICAL ! 1475: CreateDialogParamW( ! 1476: IN HANDLE hInstance, ! 1477: IN LPWSTRID lpTemplateName, ! 1478: IN HWND hWndParent OPTIONAL, ! 1479: IN WNDPROC lpDialogFunc, ! 1480: IN LONG dwInitParam ! 1481: ); ! 1482: #ifdef UNICODE ! 1483: #define CreateDialogParam CreateDialogParamW ! 1484: #else ! 1485: #define CreateDialogParam CreateDialogParamA ! 1486: #endif // !UNICODE ! 1487: ! 1488: HWND ! 1489: APIENTRY CRITICAL ! 1490: CreateDialogIndirectParamA( ! 1491: IN HANDLE hInstance, ! 1492: IN LPDLGTEMPLATESTUBA lpTemplate, ! 1493: IN HWND hWndParent OPTIONAL, ! 1494: IN WNDPROC lpDialogFunc, ! 1495: IN LONG dwInitParam ! 1496: ); ! 1497: HWND ! 1498: APIENTRY CRITICAL ! 1499: CreateDialogIndirectParamW( ! 1500: IN HANDLE hInstance, ! 1501: IN LPDLGTEMPLATESTUBW lpTemplate, ! 1502: IN HWND hWndParent OPTIONAL, ! 1503: IN WNDPROC lpDialogFunc, ! 1504: IN LONG dwInitParam ! 1505: ); ! 1506: #ifdef UNICODE ! 1507: #define CreateDialogIndirectParam CreateDialogIndirectParamW ! 1508: #else ! 1509: #define CreateDialogIndirectParam CreateDialogIndirectParamA ! 1510: #endif // !UNICODE ! 1511: ! 1512: #define CreateDialogA(hInstance, lpName, hwndParent, lpDialogFunc) \ ! 1513: CreateDialogParamA(hInstance, lpName, hwndParent, lpDialogFunc, 0L) ! 1514: #define CreateDialogW(hInstance, lpName, hwndParent, lpDialogFunc) \ ! 1515: CreateDialogParamW(hInstance, lpName, hwndParent, lpDialogFunc, 0L) ! 1516: #ifdef UNICODE ! 1517: #define CreateDialog CreateDialogW ! 1518: #else ! 1519: #define CreateDialog CreateDialogA ! 1520: #endif // !UNICODE ! 1521: ! 1522: #define CreateDialogIndirectA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1523: CreateDialogIndirectParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1524: #define CreateDialogIndirectW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1525: CreateDialogIndirectParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1526: #ifdef UNICODE ! 1527: #define CreateDialogIndirect CreateDialogIndirectW ! 1528: #else ! 1529: #define CreateDialogIndirect CreateDialogIndirectA ! 1530: #endif // !UNICODE ! 1531: ! 1532: int ! 1533: APIENTRY CRITICAL ! 1534: DialogBoxParamA( ! 1535: IN HANDLE hInstance, ! 1536: IN LPSTRID lpTemplateName, ! 1537: IN HWND hWndParent OPTIONAL, ! 1538: IN WNDPROC lpDialogFunc, ! 1539: IN LONG dwInitParam ! 1540: ); ! 1541: int ! 1542: APIENTRY CRITICAL ! 1543: DialogBoxParamW( ! 1544: IN HANDLE hInstance, ! 1545: IN LPWSTRID lpTemplateName, ! 1546: IN HWND hWndParent OPTIONAL, ! 1547: IN WNDPROC lpDialogFunc, ! 1548: IN LONG dwInitParam ! 1549: ); ! 1550: #ifdef UNICODE ! 1551: #define DialogBoxParam DialogBoxParamW ! 1552: #else ! 1553: #define DialogBoxParam DialogBoxParamA ! 1554: #endif // !UNICODE ! 1555: ! 1556: int ! 1557: APIENTRY CRITICAL ! 1558: DialogBoxIndirectParamA( ! 1559: IN HANDLE hInstance, ! 1560: IN LPDLGTEMPLATESTUBA hDialogTemplate, ! 1561: IN HWND hWndParent OPTIONAL, ! 1562: IN WNDPROC lpDialogFunc, ! 1563: IN LONG dwInitParam ! 1564: ); ! 1565: int ! 1566: APIENTRY CRITICAL ! 1567: DialogBoxIndirectParamW( ! 1568: IN HANDLE hInstance, ! 1569: IN LPDLGTEMPLATESTUBW hDialogTemplate, ! 1570: IN HWND hWndParent OPTIONAL, ! 1571: IN WNDPROC lpDialogFunc, ! 1572: IN LONG dwInitParam ! 1573: ); ! 1574: #ifdef UNICODE ! 1575: #define DialogBoxIndirectParam DialogBoxIndirectParamW ! 1576: #else ! 1577: #define DialogBoxIndirectParam DialogBoxIndirectParamA ! 1578: #endif // !UNICODE ! 1579: ! 1580: #define DialogBoxA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1581: DialogBoxParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1582: #define DialogBoxW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1583: DialogBoxParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1584: #ifdef UNICODE ! 1585: #define DialogBox DialogBoxW ! 1586: #else ! 1587: #define DialogBox DialogBoxA ! 1588: #endif // !UNICODE ! 1589: ! 1590: #define DialogBoxIndirectA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1591: DialogBoxIndirectParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1592: #define DialogBoxIndirectW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1593: DialogBoxIndirectParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1594: #ifdef UNICODE ! 1595: #define DialogBoxIndirect DialogBoxIndirectW ! 1596: #else ! 1597: #define DialogBoxIndirect DialogBoxIndirectA ! 1598: #endif // !UNICODE ! 1599: ! 1600: BOOL APIENTRY CRITICAL XXX EndDialog(IN HWND hDlg, IN int nResult); ! 1601: HWND APIENTRY CRITICAL GetDlgItem(IN HWND hDlg, IN int nIDDlgItem); ! 1602: BOOL APIENTRY CRITICAL XXX SetDlgItemInt(IN HWND hDlg, IN int nIDDlgItem, ! 1603: IN int wValue, IN BOOL bSigned); ! 1604: int APIENTRY CRITICAL XXX GetDlgItemInt(IN HWNDVERBATIM hDlg, IN int nIDDlgItem, ! 1605: OUT BOOL *lpTranslated OPTIONAL, IN BOOL bSigned); ! 1606: ! 1607: BOOL ! 1608: APIENTRY CRITICAL XXX ! 1609: SetDlgItemTextA( ! 1610: IN HWND hDlg, ! 1611: IN int nIDDlgItem, ! 1612: IN LPSTR lpString OPTIONAL ! 1613: ); ! 1614: BOOL ! 1615: APIENTRY CRITICAL XXX ! 1616: SetDlgItemTextW( ! 1617: IN HWND hDlg, ! 1618: IN int nIDDlgItem, ! 1619: IN LPWSTR lpString OPTIONAL ! 1620: ); ! 1621: #ifdef UNICODE ! 1622: #define SetDlgItemText SetDlgItemTextW ! 1623: #else ! 1624: #define SetDlgItemText SetDlgItemTextA ! 1625: #endif // !UNICODE ! 1626: ! 1627: int ! 1628: APIENTRY CRITICAL XXX ! 1629: GetDlgItemTextA( ! 1630: IN HWND hDlg, ! 1631: IN int nIDDlgItem, ! 1632: NEXTCOUNT IN OUT OUTLPSTR lpString, ! 1633: IN int nMaxCount ! 1634: ); ! 1635: int ! 1636: APIENTRY CRITICAL XXX ! 1637: GetDlgItemTextW( ! 1638: IN HWND hDlg, ! 1639: IN int nIDDlgItem, ! 1640: NEXTCOUNT IN OUT OUTLPWSTR lpString, ! 1641: IN int nMaxCount ! 1642: ); ! 1643: #ifdef UNICODE ! 1644: #define GetDlgItemText GetDlgItemTextW ! 1645: #else ! 1646: #define GetDlgItemText GetDlgItemTextA ! 1647: #endif // !UNICODE ! 1648: ! 1649: BOOL APIENTRY CRITICAL XXX CheckDlgButton(IN HWND hDlg, IN int nIDButton, ! 1650: IN UINT wCheck); ! 1651: BOOL APIENTRY CRITICAL XXX CheckRadioButton(IN HWND hDlg, IN int nIDFirstButton, ! 1652: IN int nIDLastButton, IN int nIDCheckButton); ! 1653: UINT APIENTRY CRITICAL XXX IsDlgButtonChecked(IN HWND hDlg, IN int nIDButton); ! 1654: LONG APIENTRY CRITICAL XXX SendDlgItemMessageA(IN HWND hDlg, IN int nIDDlgItem, ! 1655: IN UINT wMsg, IN DWORD wParam, IN LONG lParam); ! 1656: LONG APIENTRY CRITICAL XXX SendDlgItemMessageW(IN HWND hDlg, IN int nIDDlgItem, ! 1657: IN UINT wMsg, IN DWORD wParam, IN LONG lParam); ! 1658: #ifdef UNICODE ! 1659: #define SendDlgItemMessage SendDlgItemMessageW ! 1660: #else ! 1661: #define SendDlgItemMessage SendDlgItemMessageA ! 1662: #endif // !UNICODE ! 1663: HWND APIENTRY CRITICAL GetNextDlgGroupItem(IN HWND hDlg, IN HWND hCtl, ! 1664: IN BOOL bPrevious); ! 1665: HWND APIENTRY CRITICAL GetNextDlgTabItem(IN HWND hDlg, IN HWND hCtl, ! 1666: IN BOOL bPrevious); ! 1667: int APIENTRY CRITICAL GetDlgCtrlID(IN HWND hWnd); ! 1668: long APIENTRY CRITICAL GetDialogBaseUnits(void); ! 1669: LONG APIENTRY CRITICAL XXX DefDlgProcA(IN HWND hDlg, IN UINT wMsg, ! 1670: IN DWORD wParam, IN LONG lParam); ! 1671: LONG APIENTRY CRITICAL XXX DefDlgProcW(IN HWND hDlg, IN UINT wMsg, ! 1672: IN DWORD wParam, IN LONG lParam); ! 1673: #ifdef UNICODE ! 1674: #define DefDlgProc DefDlgProcW ! 1675: #else ! 1676: #define DefDlgProc DefDlgProcA ! 1677: #endif // !UNICODE ! 1678: ! 1679: /* ! 1680: * Window extra byted needed for private dialog classes. ! 1681: */ ! 1682: #define DLGWINDOWEXTRA 30 ! 1683: ! 1684: #endif /* NOCTLMGR */ ! 1685: ! 1686: #ifndef NOMSG ! 1687: BOOL APIENTRY CRITICAL CallMsgFilter(IN LPMSG lpMsg, IN int nCode); ! 1688: #endif ! 1689: ! 1690: #ifndef NOCLIPBOARD ! 1691: ! 1692: /* Clipboard Manager Functions */ ! 1693: BOOL APIENTRY CRITICAL OpenClipboard(IN HWND hWnd); ! 1694: BOOL APIENTRY CRITICAL XXX CloseClipboard(void); ! 1695: HWND APIENTRY CRITICAL GetClipboardOwner(void); ! 1696: HWND APIENTRY CRITICAL XXX SetClipboardViewer(IN HWND OPTIONAL); ! 1697: HWND APIENTRY CRITICAL GetClipboardViewer(void); ! 1698: BOOL APIENTRY CRITICAL XXX ChangeClipboardChain(IN HWND, IN HWND OPTIONAL); ! 1699: HANDLE APIENTRY CRITICAL SetClipboardData(IN UINT wFormat, IN HANDLE hMem); ! 1700: HANDLE APIENTRY CRITICAL XXX GetClipboardData(IN UINT wFormat); ! 1701: ! 1702: UINT ! 1703: APIENTRY CRITICAL ! 1704: RegisterClipboardFormatA( ! 1705: IN LPSTR ! 1706: ); ! 1707: UINT ! 1708: APIENTRY CRITICAL ! 1709: RegisterClipboardFormatW( ! 1710: IN LPWSTR ! 1711: ); ! 1712: #ifdef UNICODE ! 1713: #define RegisterClipboardFormat RegisterClipboardFormatW ! 1714: #else ! 1715: #define RegisterClipboardFormat RegisterClipboardFormatA ! 1716: #endif // !UNICODE ! 1717: ! 1718: int APIENTRY CRITICAL CountClipboardFormats(void); ! 1719: UINT APIENTRY CRITICAL EnumClipboardFormats(IN UINT); ! 1720: ! 1721: int ! 1722: APIENTRY CRITICAL ! 1723: GetClipboardFormatNameA( ! 1724: IN UINT, ! 1725: NEXTCOUNT IN OUT OUTLPSTR, ! 1726: IN int ! 1727: ); ! 1728: int ! 1729: APIENTRY CRITICAL ! 1730: GetClipboardFormatNameW( ! 1731: IN UINT, ! 1732: NEXTCOUNT IN OUT OUTLPWSTR, ! 1733: IN int ! 1734: ); ! 1735: #ifdef UNICODE ! 1736: #define GetClipboardFormatName GetClipboardFormatNameW ! 1737: #else ! 1738: #define GetClipboardFormatName GetClipboardFormatNameA ! 1739: #endif // !UNICODE ! 1740: ! 1741: BOOL APIENTRY CRITICAL XXX EmptyClipboard(void); ! 1742: BOOL APIENTRY CRITICAL IsClipboardFormatAvailable(IN UINT); ! 1743: int APIENTRY CRITICAL GetPriorityClipboardFormat(NEXTCOUNT IN LPPRIORITYLIST, IN int); ! 1744: ! 1745: #endif /* NOCLIPBOARD */ ! 1746: ! 1747: ! 1748: /* Character Translation Routines */ ! 1749: ! 1750: BOOL ! 1751: APIENTRY ! 1752: CharToOemA( ! 1753: IN LPSTR, ! 1754: OUT LPSTR ! 1755: ); ! 1756: BOOL ! 1757: APIENTRY ! 1758: CharToOemW( ! 1759: IN LPWSTR, ! 1760: OUT LPSTR ! 1761: ); ! 1762: #ifdef UNICODE ! 1763: #define CharToOem CharToOemW ! 1764: #else ! 1765: #define CharToOem CharToOemA ! 1766: #endif // !UNICODE ! 1767: ! 1768: BOOL ! 1769: APIENTRY ! 1770: OemToCharA( ! 1771: IN LPSTR, ! 1772: OUT LPSTR ! 1773: ); ! 1774: BOOL ! 1775: APIENTRY ! 1776: OemToCharW( ! 1777: IN LPSTR, ! 1778: OUT LPWSTR ! 1779: ); ! 1780: #ifdef UNICODE ! 1781: #define OemToChar OemToCharW ! 1782: #else ! 1783: #define OemToChar OemToCharA ! 1784: #endif // !UNICODE ! 1785: ! 1786: BOOL ! 1787: APIENTRY ! 1788: CharToOemBuffA( ! 1789: IN LPSTR, ! 1790: OUT LPSTR, ! 1791: IN DWORD ! 1792: ); ! 1793: BOOL ! 1794: APIENTRY ! 1795: CharToOemBuffW( ! 1796: IN LPWSTR, ! 1797: OUT LPSTR, ! 1798: IN DWORD ! 1799: ); ! 1800: #ifdef UNICODE ! 1801: #define CharToOemBuff CharToOemBuffW ! 1802: #else ! 1803: #define CharToOemBuff CharToOemBuffA ! 1804: #endif // !UNICODE ! 1805: ! 1806: BOOL ! 1807: APIENTRY ! 1808: OemToCharBuffA( ! 1809: IN LPSTR, ! 1810: OUT LPSTR, ! 1811: IN DWORD ! 1812: ); ! 1813: BOOL ! 1814: APIENTRY ! 1815: OemToCharBuffW( ! 1816: IN LPSTR, ! 1817: OUT LPWSTR, ! 1818: IN DWORD ! 1819: ); ! 1820: #ifdef UNICODE ! 1821: #define OemToCharBuff OemToCharBuffW ! 1822: #else ! 1823: #define OemToCharBuff OemToCharBuffA ! 1824: #endif // !UNICODE ! 1825: ! 1826: LPSTR ! 1827: APIENTRY ! 1828: CharUpperA( ! 1829: IN LPSTR ! 1830: ); ! 1831: LPWSTR ! 1832: APIENTRY ! 1833: CharUpperW( ! 1834: IN LPWSTR ! 1835: ); ! 1836: #ifdef UNICODE ! 1837: #define CharUpper CharUpperW ! 1838: #else ! 1839: #define CharUpper CharUpperA ! 1840: #endif // !UNICODE ! 1841: ! 1842: DWORD ! 1843: APIENTRY ! 1844: CharUpperBuffA( ! 1845: NEXTCOUNT IN LPSTR, ! 1846: IN DWORD ! 1847: ); ! 1848: DWORD ! 1849: APIENTRY ! 1850: CharUpperBuffW( ! 1851: NEXTCOUNT IN LPWSTR, ! 1852: IN DWORD ! 1853: ); ! 1854: #ifdef UNICODE ! 1855: #define CharUpperBuff CharUpperBuffW ! 1856: #else ! 1857: #define CharUpperBuff CharUpperBuffA ! 1858: #endif // !UNICODE ! 1859: ! 1860: LPSTR ! 1861: APIENTRY ! 1862: CharLowerA( ! 1863: IN LPSTR ! 1864: ); ! 1865: LPWSTR ! 1866: APIENTRY ! 1867: CharLowerW( ! 1868: IN LPWSTR ! 1869: ); ! 1870: #ifdef UNICODE ! 1871: #define CharLower CharLowerW ! 1872: #else ! 1873: #define CharLower CharLowerA ! 1874: #endif // !UNICODE ! 1875: ! 1876: DWORD ! 1877: APIENTRY ! 1878: CharLowerBuffA( ! 1879: NEXTCOUNT IN LPSTR, ! 1880: IN DWORD ! 1881: ); ! 1882: DWORD ! 1883: APIENTRY ! 1884: CharLowerBuffW( ! 1885: NEXTCOUNT IN LPWSTR, ! 1886: IN DWORD ! 1887: ); ! 1888: #ifdef UNICODE ! 1889: #define CharLowerBuff CharLowerBuffW ! 1890: #else ! 1891: #define CharLowerBuff CharLowerBuffA ! 1892: #endif // !UNICODE ! 1893: ! 1894: LPSTR ! 1895: APIENTRY ! 1896: CharNextA( ! 1897: IN LPSTR ! 1898: ); ! 1899: LPWSTR ! 1900: APIENTRY ! 1901: CharNextW( ! 1902: IN LPWSTR ! 1903: ); ! 1904: #ifdef UNICODE ! 1905: #define CharNext CharNextW ! 1906: #else ! 1907: #define CharNext CharNextA ! 1908: #endif // !UNICODE ! 1909: ! 1910: LPSTR ! 1911: APIENTRY ! 1912: CharPrevA( ! 1913: IN LPSTR, ! 1914: IN LPSTR ! 1915: ); ! 1916: LPWSTR ! 1917: APIENTRY ! 1918: CharPrevW( ! 1919: IN LPWSTR, ! 1920: IN LPWSTR ! 1921: ); ! 1922: #ifdef UNICODE ! 1923: #define CharPrev CharPrevW ! 1924: #else ! 1925: #define CharPrev CharPrevA ! 1926: #endif // !UNICODE ! 1927: ! 1928: /* Compatibility defines for character translation routines */ ! 1929: #define AnsiToOem CharToOemA ! 1930: #define OemToAnsi OemToCharA ! 1931: #define AnsiToOemBuff CharToOemBuffA ! 1932: #define OemToAnsiBuff OemToCharBuffA ! 1933: #define AnsiUpper CharUpperA ! 1934: #define AnsiUpperBuff CharUpperBuffA ! 1935: #define AnsiLower CharLowerA ! 1936: #define AnsiLowerBuff CharLowerBuffA ! 1937: #define AnsiNext CharNextA ! 1938: #define AnsiPrev CharPrevA ! 1939: ! 1940: #ifndef NOLANGUAGE ! 1941: /* Language dependent Routines */ ! 1942: ! 1943: BOOL ! 1944: APIENTRY ! 1945: IsCharAlphaA( ! 1946: IN CHAR ! 1947: ); ! 1948: BOOL ! 1949: APIENTRY ! 1950: IsCharAlphaW( ! 1951: IN WCHAR ! 1952: ); ! 1953: #ifdef UNICODE ! 1954: #define IsCharAlpha IsCharAlphaW ! 1955: #else ! 1956: #define IsCharAlpha IsCharAlphaA ! 1957: #endif // !UNICODE ! 1958: ! 1959: BOOL ! 1960: APIENTRY ! 1961: IsCharAlphaNumericA( ! 1962: IN CHAR ! 1963: ); ! 1964: BOOL ! 1965: APIENTRY ! 1966: IsCharAlphaNumericW( ! 1967: IN WCHAR ! 1968: ); ! 1969: #ifdef UNICODE ! 1970: #define IsCharAlphaNumeric IsCharAlphaNumericW ! 1971: #else ! 1972: #define IsCharAlphaNumeric IsCharAlphaNumericA ! 1973: #endif // !UNICODE ! 1974: ! 1975: BOOL ! 1976: APIENTRY ! 1977: IsCharUpperA( ! 1978: IN CHAR ! 1979: ); ! 1980: BOOL ! 1981: APIENTRY ! 1982: IsCharUpperW( ! 1983: IN WCHAR ! 1984: ); ! 1985: #ifdef UNICODE ! 1986: #define IsCharUpper IsCharUpperW ! 1987: #else ! 1988: #define IsCharUpper IsCharUpperA ! 1989: #endif // !UNICODE ! 1990: ! 1991: BOOL ! 1992: APIENTRY ! 1993: IsCharLowerA( ! 1994: IN CHAR ! 1995: ); ! 1996: BOOL ! 1997: APIENTRY ! 1998: IsCharLowerW( ! 1999: IN WCHAR ! 2000: ); ! 2001: #ifdef UNICODE ! 2002: #define IsCharLower IsCharLowerW ! 2003: #else ! 2004: #define IsCharLower IsCharLowerA ! 2005: #endif // !UNICODE ! 2006: ! 2007: #endif ! 2008: ! 2009: HWND APIENTRY CRITICAL XXX SetFocus(IN HWND hWnd OPTIONAL); ! 2010: HWND APIENTRY CRITICAL GetActiveWindow(void); ! 2011: HWND APIENTRY CRITICAL GetFocus(void); ! 2012: SHORT APIENTRY CRITICAL GetKeyState(IN int nVirtKey); ! 2013: SHORT APIENTRY CRITICAL GetAsyncKeyState(IN int vKey); ! 2014: BOOL APIENTRY CRITICAL GetKeyboardState(IN OUT PBYTE lpKeyState); ! 2015: BOOL APIENTRY CRITICAL SetKeyboardState(IN LPBYTE lpKeyState); ! 2016: ! 2017: int ! 2018: APIENTRY ! 2019: GetKeyNameTextA( ! 2020: IN LONG lParam, ! 2021: NEXTCOUNT IN OUT OUTLPSTR lpString, ! 2022: IN int nSize ! 2023: ); ! 2024: int ! 2025: APIENTRY ! 2026: GetKeyNameTextW( ! 2027: IN LONG lParam, ! 2028: NEXTCOUNT IN OUT OUTLPWSTR lpString, ! 2029: IN int nSize ! 2030: ); ! 2031: #ifdef UNICODE ! 2032: #define GetKeyNameText GetKeyNameTextW ! 2033: #else ! 2034: #define GetKeyNameText GetKeyNameTextA ! 2035: #endif // !UNICODE ! 2036: int APIENTRY CRITICAL ToAscii(IN UINT wVirtKey, IN UINT wScanCode, ! 2037: OUT PBYTE lpKeyState, OUT LPWORD lpChar, IN UINT wFlags); ! 2038: ! 2039: SHORT APIENTRY VkKeyScan(IN CHAR cChar); ! 2040: UINT APIENTRY MapVirtualKey(IN UINT wCode, IN UINT wMapType); ! 2041: BOOL APIENTRY EnableHardwareInput(BOOL); ! 2042: BOOL APIENTRY CRITICAL GetInputState(void); ! 2043: DWORD APIENTRY CRITICAL GetQueueStatus(UINT flags); ! 2044: HWND APIENTRY CRITICAL GetCapture(void); ! 2045: HWND APIENTRY CRITICAL SetCapture(IN HWND hWnd OPTIONAL); ! 2046: BOOL APIENTRY CRITICAL ReleaseCapture(void); ! 2047: DWORD APIENTRY CRITICAL XXX MsgWaitForMultipleObjects(IN DWORD nCount, ! 2048: PREVCOUNT IN LPHANDLE pHandles, IN BOOL fWaitAll, ! 2049: IN DWORD dwMilliseconds, IN DWORD dwWakeMask); ! 2050: ! 2051: /* Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects() */ ! 2052: #define QS_KEY 0x01 ! 2053: #define QS_MOUSEMOVE 0x02 ! 2054: #define QS_MOUSEBUTTON 0x04 ! 2055: #define QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON) ! 2056: #define QS_POSTMESSAGE 0x08 ! 2057: #define QS_TIMER 0x10 ! 2058: #define QS_PAINT 0x20 ! 2059: #define QS_SENDMESSAGE 0x40 ! 2060: #define QS_HOTKEY 0x80 ! 2061: #define QS_SETFOREGROUND (QS_HOTKEY | 0x0100) ! 2062: #define QS_INPUT (QS_MOUSE | QS_KEY) ! 2063: #define QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY) ! 2064: ! 2065: ! 2066: UINT APIENTRY GetSysInputMode(void); ! 2067: ! 2068: /* GetSysInputMode return values */ ! 2069: #define IMD_NONE 0 ! 2070: #define IMD_MENU 1 ! 2071: #define IMD_DIALOGBOX 2 ! 2072: #define IMD_NEXTWINDOW 3 ! 2073: #define IMD_SCROLLBAR 4 ! 2074: #define IMD_TITLEBUTTONTRACK 5 ! 2075: #define IMD_MOVESIZETRACK 6 ! 2076: #define IMD_SYSERRDLG 7 ! 2077: #define IMD_DRAGOBJECT 8 ! 2078: #define IMD_DRAGDETECT 9 ! 2079: ! 2080: ! 2081: /* Windows Functions */ ! 2082: UINT APIENTRY CRITICAL SetTimer(IN HWND hwnd OPTIONAL, IN UINT nIDEvent, IN UINT wElapse, IN WNDPROC lpTimerFunc OPTIONAL); ! 2083: BOOL APIENTRY CRITICAL KillTimer(IN HWND hWnd OPTIONAL, IN UINT nIDEvent); ! 2084: ! 2085: BOOL APIENTRY CRITICAL XXX EnableWindow(IN HWND hWnd, IN BOOL bEnable); ! 2086: BOOL APIENTRY CRITICAL IsWindowEnabled(IN HWND hWnd); ! 2087: ! 2088: HANDLE ! 2089: APIENTRY CRITICAL ! 2090: LoadAcceleratorsA( ! 2091: IN HANDLE hInstance, ! 2092: IN LPSTRID lpTableName ! 2093: ); ! 2094: HANDLE ! 2095: APIENTRY CRITICAL ! 2096: LoadAcceleratorsW( ! 2097: IN HANDLE hInstance, ! 2098: IN LPWSTRID lpTableName ! 2099: ); ! 2100: #ifdef UNICODE ! 2101: #define LoadAccelerators LoadAcceleratorsW ! 2102: #else ! 2103: #define LoadAccelerators LoadAcceleratorsA ! 2104: #endif // !UNICODE ! 2105: ! 2106: HACCEL APIENTRY CRITICAL CreateAcceleratorTable(NEXTCOUNT IN LPACCEL, IN int); ! 2107: BOOL APIENTRY CRITICAL DestroyAcceleratorTable(IN HACCEL); ! 2108: int APIENTRY CRITICAL CopyAcceleratorTable(IN HACCEL, NEXTCOUNT OUT LPACCEL OPTIONAL, IN int); ! 2109: ! 2110: #ifndef NOMSG ! 2111: int APIENTRY CRITICAL XXX TranslateAccelerator(IN HWND hWnd, IN HACCEL hAccTable, IN LPMSG lpMsg); ! 2112: #endif ! 2113: ! 2114: #ifndef NOSYSMETRICS ! 2115: ! 2116: /* GetSystemMetrics() codes */ ! 2117: #define SM_CXSCREEN 0 ! 2118: #define SM_CYSCREEN 1 ! 2119: #define SM_CXVSCROLL 2 ! 2120: #define SM_CYHSCROLL 3 ! 2121: #define SM_CYCAPTION 4 ! 2122: #define SM_CXBORDER 5 ! 2123: #define SM_CYBORDER 6 ! 2124: #define SM_CXDLGFRAME 7 ! 2125: #define SM_CYDLGFRAME 8 ! 2126: #define SM_CYVTHUMB 9 ! 2127: #define SM_CXHTHUMB 10 ! 2128: #define SM_CXICON 11 ! 2129: #define SM_CYICON 12 ! 2130: #define SM_CXCURSOR 13 ! 2131: #define SM_CYCURSOR 14 ! 2132: #define SM_CYMENU 15 ! 2133: #define SM_CXFULLSCREEN 16 ! 2134: #define SM_CYFULLSCREEN 17 ! 2135: #define SM_CYKANJIWINDOW 18 ! 2136: #define SM_MOUSEPRESENT 19 ! 2137: #define SM_CYVSCROLL 20 ! 2138: #define SM_CXHSCROLL 21 ! 2139: #define SM_DEBUG 22 ! 2140: #define SM_SWAPBUTTON 23 ! 2141: #define SM_RESERVED1 24 ! 2142: #define SM_RESERVED2 25 ! 2143: #define SM_RESERVED3 26 ! 2144: #define SM_RESERVED4 27 ! 2145: #define SM_CXMIN 28 ! 2146: #define SM_CYMIN 29 ! 2147: #define SM_CXSIZE 30 ! 2148: #define SM_CYSIZE 31 ! 2149: #define SM_CXFRAME 32 ! 2150: #define SM_CYFRAME 33 ! 2151: #define SM_CXMINTRACK 34 ! 2152: #define SM_CYMINTRACK 35 ! 2153: #define SM_CXDOUBLECLK 36 ! 2154: #define SM_CYDOUBLECLK 37 ! 2155: #define SM_CXICONSPACING 38 ! 2156: #define SM_CYICONSPACING 39 ! 2157: #define SM_MENUDROPALIGNMENT 40 ! 2158: #define SM_PENWINDOWS 41 ! 2159: #define SM_CMOUSEBUTTONS 42 ! 2160: #define SM_SECURE 43 ! 2161: ! 2162: #define SM_CMETRICS 44 ! 2163: ! 2164: int APIENTRY CRITICAL GetSystemMetrics(IN int nIndex); ! 2165: ! 2166: #endif /* NOSYSMETRICS */ ! 2167: ! 2168: #ifndef NOMENUS ! 2169: ! 2170: HMENU ! 2171: APIENTRY CRITICAL ! 2172: LoadMenuA( ! 2173: IN HANDLE hInstance, ! 2174: IN LPSTRID lpMenuName ! 2175: ); ! 2176: HMENU ! 2177: APIENTRY CRITICAL ! 2178: LoadMenuW( ! 2179: IN HANDLE hInstance, ! 2180: IN LPWSTRID lpMenuName ! 2181: ); ! 2182: #ifdef UNICODE ! 2183: #define LoadMenu LoadMenuW ! 2184: #else ! 2185: #define LoadMenu LoadMenuA ! 2186: #endif // !UNICODE ! 2187: ! 2188: HMENU ! 2189: APIENTRY CRITICAL ! 2190: LoadMenuIndirectA( ! 2191: IN LPMENUTEMPLATEA lpMenuTemplate ! 2192: ); ! 2193: HMENU ! 2194: APIENTRY CRITICAL ! 2195: LoadMenuIndirectW( ! 2196: IN LPMENUTEMPLATEW lpMenuTemplate ! 2197: ); ! 2198: #ifdef UNICODE ! 2199: #define LoadMenuIndirect LoadMenuIndirectW ! 2200: #else ! 2201: #define LoadMenuIndirect LoadMenuIndirectA ! 2202: #endif // !UNICODE ! 2203: ! 2204: HMENU APIENTRY CRITICAL GetMenu(IN HWND hWnd); ! 2205: BOOL APIENTRY CRITICAL XXX SetMenu(IN HWND hWnd, IN HMENU hMenu OPTIONAL); ! 2206: BOOL APIENTRY CRITICAL ChangeMenu(IN HMENU, IN UINT, IN CHNGMENUPOLY OPTIONAL, IN UINT, IN UINT); ! 2207: BOOL APIENTRY CRITICAL XXX HiliteMenuItem(IN HWND hWnd, IN HMENU hMenu, IN UINT wIDHiliteItem, IN UINT wHilite); ! 2208: ! 2209: int ! 2210: APIENTRY CRITICAL ! 2211: GetMenuStringA( ! 2212: IN HMENU hMenu, ! 2213: IN UINT wIDItem, ! 2214: NEXTCOUNT IN OUT OUTLPSTR lpString, ! 2215: IN int nMaxCount, ! 2216: IN DWORD wFlag ! 2217: ); ! 2218: int ! 2219: APIENTRY CRITICAL ! 2220: GetMenuStringW( ! 2221: IN HMENU hMenu, ! 2222: IN UINT wIDItem, ! 2223: NEXTCOUNT IN OUT OUTLPWSTR lpString, ! 2224: IN int nMaxCount, ! 2225: IN DWORD wFlag ! 2226: ); ! 2227: #ifdef UNICODE ! 2228: #define GetMenuString GetMenuStringW ! 2229: #else ! 2230: #define GetMenuString GetMenuStringA ! 2231: #endif // !UNICODE ! 2232: ! 2233: UINT APIENTRY CRITICAL GetMenuState(IN HMENU hMenu, IN UINT wId, IN UINT wFlags); ! 2234: BOOL APIENTRY CRITICAL XXX DrawMenuBar(IN HWND hWnd); ! 2235: HMENU APIENTRY CRITICAL GetSystemMenu(IN HWND hWnd, IN BOOL bRevert); ! 2236: HMENU APIENTRY CRITICAL CreateMenu(void); ! 2237: HMENU APIENTRY CRITICAL CreatePopupMenu(void); ! 2238: BOOL APIENTRY CRITICAL DestroyMenu(IN HMENU hMenu); ! 2239: BOOL APIENTRY CRITICAL CheckMenuItem(IN HMENU hMenu, IN UINT wIDCheckItem, IN UINT wCheck); ! 2240: BOOL APIENTRY CRITICAL EnableMenuItem(IN HMENU hMenu, IN UINT wIDEnableItem, IN UINT wEnable); ! 2241: HMENU APIENTRY CRITICAL GetSubMenu(IN HMENU hMenu, IN int nPos); ! 2242: UINT APIENTRY CRITICAL GetMenuItemID(IN HMENU hMenu, IN int nPos); ! 2243: UINT APIENTRY CRITICAL GetMenuItemCount(IN HMENU hMenu); ! 2244: ! 2245: BOOL ! 2246: APIENTRY CRITICAL ! 2247: InsertMenuA( ! 2248: IN HMENU hMenu, ! 2249: IN UINT nPosition, ! 2250: IN UINT dwFlags, ! 2251: IN UINT wIDNewItem, ! 2252: IN MENUPOLYA lpNewItem OPTIONAL ! 2253: ); ! 2254: BOOL ! 2255: APIENTRY CRITICAL ! 2256: InsertMenuW( ! 2257: IN HMENU hMenu, ! 2258: IN UINT nPosition, ! 2259: IN UINT dwFlags, ! 2260: IN UINT wIDNewItem, ! 2261: IN MENUPOLYW lpNewItem OPTIONAL ! 2262: ); ! 2263: #ifdef UNICODE ! 2264: #define InsertMenu InsertMenuW ! 2265: #else ! 2266: #define InsertMenu InsertMenuA ! 2267: #endif // !UNICODE ! 2268: ! 2269: BOOL ! 2270: APIENTRY CRITICAL ! 2271: AppendMenuA( ! 2272: IN HMENU hMenu, ! 2273: IN UINT dwFlags, ! 2274: IN UINT wIDNewItem, ! 2275: IN MENUPOLYA lpNewItem OPTIONAL ! 2276: ); ! 2277: BOOL ! 2278: APIENTRY CRITICAL ! 2279: AppendMenuW( ! 2280: IN HMENU hMenu, ! 2281: IN UINT dwFlags, ! 2282: IN UINT wIDNewItem, ! 2283: IN MENUPOLYW lpNewItem OPTIONAL ! 2284: ); ! 2285: #ifdef UNICODE ! 2286: #define AppendMenu AppendMenuW ! 2287: #else ! 2288: #define AppendMenu AppendMenuA ! 2289: #endif // !UNICODE ! 2290: ! 2291: BOOL ! 2292: APIENTRY CRITICAL ! 2293: ModifyMenuA( ! 2294: IN HMENU hMnu, ! 2295: IN UINT nPosition, ! 2296: IN UINT dwFlags, ! 2297: IN UINT wIDNewItem, ! 2298: IN MENUPOLYA lpNewItem OPTIONAL ! 2299: ); ! 2300: BOOL ! 2301: APIENTRY CRITICAL ! 2302: ModifyMenuW( ! 2303: IN HMENU hMnu, ! 2304: IN UINT nPosition, ! 2305: IN UINT dwFlags, ! 2306: IN UINT wIDNewItem, ! 2307: IN MENUPOLYW lpNewItem OPTIONAL ! 2308: ); ! 2309: #ifdef UNICODE ! 2310: #define ModifyMenu ModifyMenuW ! 2311: #else ! 2312: #define ModifyMenu ModifyMenuA ! 2313: #endif // !UNICODE ! 2314: ! 2315: BOOL APIENTRY CRITICAL RemoveMenu(IN HMENU hMenu, IN UINT nPosition, IN UINT dwFlags); ! 2316: BOOL APIENTRY CRITICAL DeleteMenu(IN HMENU hMenu, IN UINT nPosition, IN UINT dwFlags); ! 2317: BOOL APIENTRY CRITICAL SetMenuItemBitmaps(IN HMENU hMenu, IN UINT nPosition, ! 2318: IN DWORD dwFlags, IN HBITMAP hBitmapUnchecked, IN HBITMAP hBitmapChecked); ! 2319: LONG APIENTRY CRITICAL GetMenuCheckMarkDimensions(void); ! 2320: BOOL APIENTRY CRITICAL XXX TrackPopupMenu(IN HMENU hMenu, IN UINT dwFlags, ! 2321: IN int x, IN int y, IN int nReserved, IN HWND hWnd, IN LPVOID lpReserved); ! 2322: ! 2323: /* Flags for TrackPopupMenu */ ! 2324: #define TPM_LEFTBUTTON 0x0000L ! 2325: #define TPM_RIGHTBUTTON 0x0002L ! 2326: #define TPM_LEFTALIGN 0x0000L ! 2327: #define TPM_CENTERALIGN 0x0004L ! 2328: #define TPM_RIGHTALIGN 0x0008L ! 2329: ! 2330: #endif /* NOMENUS */ ! 2331: ! 2332: BOOL APIENTRY CRITICAL DrawIcon(IN HDC, IN int, IN int, IN HICON); ! 2333: ! 2334: int ! 2335: APIENTRY CRITICAL DrawTextA( ! 2336: IN HDC hDC, ! 2337: NEXTCOUNT IN LPSTR2 lpString, ! 2338: IN int nCount, ! 2339: IN OUT LPRECT lpRect, ! 2340: IN UINT wFormat ! 2341: ); ! 2342: int ! 2343: APIENTRY CRITICAL DrawTextW( ! 2344: IN HDC hDC, ! 2345: NEXTCOUNT IN LPWSTR2 lpString, ! 2346: IN int nCount, ! 2347: IN OUT LPRECT lpRect, ! 2348: IN UINT wFormat ! 2349: ); ! 2350: #ifdef UNICODE ! 2351: #define DrawText DrawTextW ! 2352: #else ! 2353: #define DrawText DrawTextA ! 2354: #endif // !UNICODE ! 2355: ! 2356: BOOL APIENTRY GrayString(IN HDC hDC, IN HBRUSH hBrush, IN FARPROC lpOutputFunc, ! 2357: IN GSPOLY lpData, IN int nCount, IN int X, IN int Y, ! 2358: IN int nWidth, IN int nHeight); ! 2359: ! 2360: LONG ! 2361: APIENTRY CRITICAL ! 2362: TabbedTextOutA( ! 2363: IN HDC hDC, ! 2364: IN int X, ! 2365: IN int Y, ! 2366: NEXTCOUNT IN LPSTR2 lpString, ! 2367: IN int nCount, ! 2368: IN int nTabPositions, ! 2369: PREVCOUNT IN LPTABS lpnTabStopPositions, ! 2370: IN int nTabOrigin ! 2371: ); ! 2372: LONG ! 2373: APIENTRY CRITICAL ! 2374: TabbedTextOutW( ! 2375: IN HDC hDC, ! 2376: IN int X, ! 2377: IN int Y, ! 2378: NEXTCOUNT IN LPWSTR2 lpString, ! 2379: IN int nCount, ! 2380: IN int nTabPositions, ! 2381: PREVCOUNT IN LPTABS lpnTabStopPositions, ! 2382: IN int nTabOrigin ! 2383: ); ! 2384: #ifdef UNICODE ! 2385: #define TabbedTextOut TabbedTextOutW ! 2386: #else ! 2387: #define TabbedTextOut TabbedTextOutA ! 2388: #endif // !UNICODE ! 2389: ! 2390: DWORD ! 2391: APIENTRY CRITICAL ! 2392: GetTabbedTextExtentA( ! 2393: IN HDC hDC, ! 2394: NEXTCOUNT IN LPSTR2 lpString, ! 2395: IN int nCount, ! 2396: IN int nTabPositions, ! 2397: PREVCOUNT IN LPTABS lpnTabStopPositions ! 2398: ); ! 2399: DWORD ! 2400: APIENTRY CRITICAL ! 2401: GetTabbedTextExtentW( ! 2402: IN HDC hDC, ! 2403: NEXTCOUNT IN LPWSTR2 lpString, ! 2404: IN int nCount, ! 2405: IN int nTabPositions, ! 2406: PREVCOUNT IN LPTABS lpnTabStopPositions ! 2407: ); ! 2408: #ifdef UNICODE ! 2409: #define GetTabbedTextExtent GetTabbedTextExtentW ! 2410: #else ! 2411: #define GetTabbedTextExtent GetTabbedTextExtentA ! 2412: #endif // !UNICODE ! 2413: ! 2414: BOOL APIENTRY CRITICAL XXX UpdateWindow(IN HWND hWnd); ! 2415: HWND APIENTRY CRITICAL XXX SetActiveWindow(IN HWND hWnd OPTIONAL); ! 2416: ! 2417: BOOL APIENTRY CRITICAL XXX SetForegroundWindow(IN HWND hWnd); ! 2418: ! 2419: HWND APIENTRY CRITICAL WindowFromDC(IN HDC hdc); ! 2420: HDC APIENTRY CRITICAL GetDC(IN HWND hWnd OPTIONAL); ! 2421: HDC APIENTRY GetDCEx(IN HWND hwnd OPTIONAL, IN HRGN hrgnClip, IN DWORD flags); ! 2422: ! 2423: /* GetDCEx() flags */ ! 2424: #define DCX_WINDOW 0x00000001L ! 2425: #define DCX_CACHE 0x00000002L ! 2426: #define DCX_NORESETATTRS 0x00000004L ! 2427: #define DCX_CLIPCHILDREN 0x00000008L ! 2428: #define DCX_CLIPSIBLINGS 0x00000010L ! 2429: #define DCX_PARENTCLIP 0x00000020L ! 2430: ! 2431: #define DCX_EXCLUDERGN 0x00000040L ! 2432: #define DCX_INTERSECTRGN 0x00000080L ! 2433: ! 2434: #define DCX_EXCLUDEUPDATE 0x00000100L ! 2435: #define DCX_INTERSECTUPDATE 0x00000200L ! 2436: ! 2437: #define DCX_LOCKWINDOWUPDATE 0x00000400L ! 2438: ! 2439: #define DCX_INVALID 0x00000800L /* ;Internal */ ! 2440: #define DCX_INUSE 0x00001000L /* ;Internal */ ! 2441: #define DCX_SAVEDRGNINVALID 0x00002000L /* ;Internal */ ! 2442: #define DCX_OWNDC 0x00008000L /* ;Internal */ ! 2443: ! 2444: #define DCX_USESTYLE 0x00010000L ! 2445: #define DCX_NEEDFONT 0x00020000L /* ;Internal */ ! 2446: #define DCX_NODELETERGN 0x00040000L /* ;Internal */ ! 2447: #define DCX_NOCLIPCHILDREN 0x00080000L /* ;Internal */ ! 2448: #define DCX_NORECOMPUTE 0x00100000L ! 2449: #define DCX_VALIDATE 0x00200000L ! 2450: ! 2451: #define DCX_MATCHMASK (DCX_WINDOW | DCX_CACHE | /* ;Internal */ \ ! 2452: DCX_CLIPCHILDREN | DCX_CLIPSIBLINGS | /* ;Internal */ \ ! 2453: DCX_NORESETATTRS | DCX_LOCKWINDOWUPDATE) /* ;Internal */ ! 2454: ! 2455: HDC APIENTRY CRITICAL GetWindowDC(IN HWND hWnd OPTIONAL); ! 2456: int APIENTRY CRITICAL ReleaseDC(IN HWND hWnd OPTIONAL, IN HDC hDC); ! 2457: ! 2458: HDC APIENTRY CRITICAL XXX BeginPaint(IN HWND hWnd, OUT LPPAINTSTRUCT lpPaint); ! 2459: BOOL APIENTRY CRITICAL EndPaint(IN HWND hWnd, IN LPPAINTSTRUCT lpPaint); ! 2460: BOOL APIENTRY CRITICAL XXX GetUpdateRect(IN HWND hWnd, OUT LPRECT lpRect, ! 2461: IN BOOL bErase); ! 2462: int APIENTRY CRITICAL XXX GetUpdateRgn(IN HWND hWnd, IN HRGN hRgn, ! 2463: IN BOOL bErase); ! 2464: ! 2465: int APIENTRY CRITICAL ExcludeUpdateRgn(IN HDC hDC, IN HWND hWnd); ! 2466: ! 2467: BOOL APIENTRY CRITICAL XXX InvalidateRect(IN HWND hWnd OPTIONAL, ! 2468: IN LPRECT lpRect OPTIONAL, IN BOOL bErase); ! 2469: BOOL APIENTRY CRITICAL XXX ValidateRect(IN HWND hWnd OPTIONAL, ! 2470: IN LPRECT lpRect OPTIONAL); ! 2471: ! 2472: BOOL APIENTRY CRITICAL InvalidateRgn(IN HWND hWnd, IN HRGN hRgn OPTIONAL, ! 2473: IN BOOL bErase); ! 2474: BOOL APIENTRY CRITICAL ValidateRgn(IN HWND hWnd, IN HRGN hRgn OPTIONAL); ! 2475: ! 2476: ! 2477: BOOL APIENTRY CRITICAL XXX RedrawWindow(IN HWND hwnd, ! 2478: IN LPRECT lprcUpdate OPTIONAL, IN HRGN hrgnUpdate, IN WORD flags); ! 2479: ! 2480: /* RedrawWindow() flags */ ! 2481: #define RDW_INVALIDATE 0x0001 ! 2482: #define RDW_INTERNALPAINT 0x0002 ! 2483: #define RDW_ERASE 0x0004 ! 2484: ! 2485: #define RDW_VALIDATE 0x0008 ! 2486: #define RDW_NOINTERNALPAINT 0x0010 ! 2487: #define RDW_NOERASE 0x0020 ! 2488: ! 2489: #define RDW_NOCHILDREN 0x0040 ! 2490: #define RDW_ALLCHILDREN 0x0080 ! 2491: ! 2492: #define RDW_UPDATENOW 0x0100 ! 2493: #define RDW_ERASENOW 0x0200 ! 2494: ! 2495: #define RDW_FRAME 0x0400 /* Set WFSENDNCPAINT */ /* ;Internal */ ! 2496: #define RDW_NOFRAME 0x0800 /* Clear WFSENDNCPAINT */ /* ;Internal */ ! 2497: /* ;Internal */ ! 2498: #define RDW_REDRAWWINDOW 0x1000 /* Called from RedrawWindow()*/ /* ;Internal */ ! 2499: #define RDW_SUBTRACTSELF 0x2000 /* Subtract self from hrgn */ /* ;Internal */ ! 2500: /* ;Internal */ ! 2501: #define RDW_COPYRGN 0x4000 /* Copy the passed-in region */ /* ;Internal */ ! 2502: /* ;Internal */ ! 2503: #define RDW_VALIDMASK (RDW_INVALIDATE | RDW_INTERNALPAINT | /* ;Internal */ \ ! 2504: RDW_ERASE | RDW_VALIDATE | /* ;Internal */ \ ! 2505: RDW_NOINTERNALPAINT | RDW_NOERASE | /* ;Internal */ \ ! 2506: RDW_NOCHILDREN | RDW_ALLCHILDREN | /* ;Internal */ \ ! 2507: RDW_UPDATENOW | RDW_ERASENOW | RDW_COPYRGN) /* ;Internal */ ! 2508: ! 2509: /* LockWindowUpdate API */ ! 2510: BOOL APIENTRY CRITICAL LockWindowUpdate(HWND hwndLock); ! 2511: ! 2512: BOOL APIENTRY CRITICAL XXX ScrollWindow(IN HWND hWnd, IN int XAmount, ! 2513: IN int YAmount, IN LPRECT lpRect OPTIONAL, ! 2514: IN LPRECT lpClipRect OPTIONAL); ! 2515: BOOL APIENTRY CRITICAL ScrollDC(IN HDC hDC, IN int dx, IN int dy, ! 2516: IN LPRECT lprcScroll, IN LPRECT lprcClip OPTIONAL, ! 2517: IN HRGN hrgnUpdate OPTIONAL, OUT LPRECT lprcUpdate OPTIONAL); ! 2518: int APIENTRY CRITICAL XXX ScrollWindowEx(IN HWND hwnd, IN int dx, IN int dy, ! 2519: IN LPRECT prcScroll OPTIONAL, IN LPRECT prcClip OPTIONAL, ! 2520: HRGN hrgnUpdate, OUT LPRECT prcUpdate OPTIONAL, IN WORD flags); ! 2521: ! 2522: #define SW_SCROLLCHILDREN 0x0001 /* Scroll children within *lprcScroll. */ ! 2523: #define SW_INVALIDATE 0x0002 /* Invalidate after scrolling */ ! 2524: #define SW_ERASE 0x0004 /* If SW_INVALIDATE, don't send WM_ERASEBACKGROUND */ ! 2525: ! 2526: #define SW_SCROLLWINDOW 0x8000 /* Called from ScrollWindow() */ /* ;Internal */ ! 2527: #define SW_VALIDFLAGS (SW_SCROLLWINDOW | SW_SCROLLCHILDREN | SW_INVALIDATE | SW_ERASE) /* ;Internal */ ! 2528: ! 2529: #ifndef NOSCROLL ! 2530: int APIENTRY CRITICAL XXX SetScrollPos(IN HWND hWnd, IN int nBar, IN int nPos, IN BOOL bRedraw); ! 2531: int APIENTRY CRITICAL XXX GetScrollPos(IN HWND hWnd, IN int nBar); ! 2532: BOOL APIENTRY CRITICAL XXX SetScrollRange(IN HWND hWnd, IN int nBar, IN int nMinPos, IN int nMaxPos, IN BOOL bRedraw); ! 2533: BOOL APIENTRY CRITICAL XXX GetScrollRange(IN HWND hWnd, IN int nBar, OUT LPINT lpMinPos, OUT LPINT lpMaxPos); ! 2534: BOOL APIENTRY CRITICAL XXX ShowScrollBar(IN HWND hWnd, IN UINT wBar, IN BOOL bShow); ! 2535: #endif ! 2536: ! 2537: BOOL ! 2538: APIENTRY CRITICAL ! 2539: SetPropA( ! 2540: IN HWND hWnd, ! 2541: IN LPSTRID lpString, ! 2542: IN HANDLE hData ! 2543: ); ! 2544: BOOL ! 2545: APIENTRY CRITICAL ! 2546: SetPropW( ! 2547: IN HWND hWnd, ! 2548: IN LPWSTRID lpString, ! 2549: IN HANDLE hData ! 2550: ); ! 2551: #ifdef UNICODE ! 2552: #define SetProp SetPropW ! 2553: #else ! 2554: #define SetProp SetPropA ! 2555: #endif // !UNICODE ! 2556: ! 2557: HANDLE ! 2558: APIENTRY CRITICAL ! 2559: GetPropA( ! 2560: IN HWND hWnd, ! 2561: IN LPSTRID lpString ! 2562: ); ! 2563: HANDLE ! 2564: APIENTRY CRITICAL ! 2565: GetPropW( ! 2566: IN HWND hWnd, ! 2567: IN LPWSTRID lpString ! 2568: ); ! 2569: #ifdef UNICODE ! 2570: #define GetProp GetPropW ! 2571: #else ! 2572: #define GetProp GetPropA ! 2573: #endif // !UNICODE ! 2574: ! 2575: HANDLE ! 2576: APIENTRY CRITICAL ! 2577: RemovePropA( ! 2578: IN HWND hWnd, ! 2579: IN LPSTRID lpString ! 2580: ); ! 2581: HANDLE ! 2582: APIENTRY CRITICAL ! 2583: RemovePropW( ! 2584: IN HWND hWnd, ! 2585: IN LPWSTRID lpString ! 2586: ); ! 2587: #ifdef UNICODE ! 2588: #define RemoveProp RemovePropW ! 2589: #else ! 2590: #define RemoveProp RemovePropA ! 2591: #endif // !UNICODE ! 2592: ! 2593: int ! 2594: APIENTRY CRITICAL ! 2595: EnumPropsExA( ! 2596: IN HWND hWnd, ! 2597: IN FARPROC lpEnumFunc, ! 2598: IN DWORD lParam ! 2599: ); ! 2600: int ! 2601: APIENTRY CRITICAL ! 2602: EnumPropsExW( ! 2603: IN HWND hWnd, ! 2604: IN FARPROC lpEnumFunc, ! 2605: IN DWORD lParam ! 2606: ); ! 2607: #ifdef UNICODE ! 2608: #define EnumPropsEx EnumPropsExW ! 2609: #else ! 2610: #define EnumPropsEx EnumPropsExA ! 2611: #endif // !UNICODE ! 2612: ! 2613: int ! 2614: APIENTRY CRITICAL ! 2615: EnumPropsA( ! 2616: IN HWND hWnd, ! 2617: IN FARPROC lpEnumFunc ! 2618: ); ! 2619: int ! 2620: APIENTRY CRITICAL ! 2621: EnumPropsW( ! 2622: IN HWND hWnd, ! 2623: IN FARPROC lpEnumFunc ! 2624: ); ! 2625: #ifdef UNICODE ! 2626: #define EnumProps EnumPropsW ! 2627: #else ! 2628: #define EnumProps EnumPropsA ! 2629: #endif // !UNICODE ! 2630: ! 2631: BOOL ! 2632: APIENTRY CRITICAL XXX ! 2633: SetWindowTextA( ! 2634: IN HWND hWnd, ! 2635: IN LPSTR lpString OPTIONAL ! 2636: ); ! 2637: BOOL ! 2638: APIENTRY CRITICAL XXX ! 2639: SetWindowTextW( ! 2640: IN HWND hWnd, ! 2641: IN LPWSTR lpString OPTIONAL ! 2642: ); ! 2643: #ifdef UNICODE ! 2644: #define SetWindowText SetWindowTextW ! 2645: #else ! 2646: #define SetWindowText SetWindowTextA ! 2647: #endif // !UNICODE ! 2648: ! 2649: int ! 2650: APIENTRY CRITICAL XXX ! 2651: GetWindowTextA( ! 2652: IN HWND hWnd, ! 2653: NEXTCOUNT IN OUT OUTLPSTR lpString, ! 2654: IN int nMaxCount ! 2655: ); ! 2656: int ! 2657: APIENTRY CRITICAL XXX ! 2658: GetWindowTextW( ! 2659: IN HWND hWnd, ! 2660: NEXTCOUNT IN OUT OUTLPWSTR lpString, ! 2661: IN int nMaxCount ! 2662: ); ! 2663: #ifdef UNICODE ! 2664: #define GetWindowText GetWindowTextW ! 2665: #else ! 2666: #define GetWindowText GetWindowTextA ! 2667: #endif // !UNICODE ! 2668: ! 2669: int APIENTRY CRITICAL XXX GetWindowTextLength(IN HWND hWnd); ! 2670: ! 2671: BOOL APIENTRY CRITICAL GetClientRect(IN HWND hWnd, OUT LPRECT lpRect); ! 2672: BOOL APIENTRY CRITICAL GetWindowRect(IN HWND hWnd, OUT LPRECT lpRect); ! 2673: BOOL APIENTRY CRITICAL AdjustWindowRect(IN OUT LPRECT lpRect, IN LONG dwStyle, IN BOOL bMenu); ! 2674: BOOL APIENTRY CRITICAL AdjustWindowRectEx(IN OUT LPRECT lpRect, IN LONG dwStyle, IN BOOL bMenu, IN DWORD dwExStyle); ! 2675: ! 2676: #ifndef NOMB ! 2677: ! 2678: /* MessageBox() Flags */ ! 2679: #define MB_OK 0x0000L ! 2680: #define MB_OKCANCEL 0x0001L ! 2681: #define MB_ABORTRETRYIGNORE 0x0002L ! 2682: #define MB_YESNOCANCEL 0x0003L ! 2683: #define MB_YESNO 0x0004L ! 2684: #define MB_RETRYCANCEL 0x0005L ! 2685: ! 2686: #define MB_ICONHAND 0x0010L ! 2687: #define MB_ICONQUESTION 0x0020L ! 2688: #define MB_ICONEXCLAMATION 0x0030L ! 2689: #define MB_ICONASTERISK 0x0040L ! 2690: ! 2691: #define MB_ICONINFORMATION MB_ICONASTERISK ! 2692: #define MB_ICONSTOP MB_ICONHAND ! 2693: ! 2694: #define MB_DEFBUTTON1 0x0000L ! 2695: #define MB_DEFBUTTON2 0x0100L ! 2696: #define MB_DEFBUTTON3 0x0200L ! 2697: ! 2698: #define MB_APPLMODAL 0x0000L ! 2699: #define MB_SYSTEMMODAL 0x1000L ! 2700: #define MB_TASKMODAL 0x2000L ! 2701: ! 2702: #define MB_NOFOCUS 0x8000L ! 2703: #define MB_SETFOREGROUND 0x10000L ! 2704: ! 2705: #define MB_TYPEMASK 0x000FL ! 2706: #define MB_ICONMASK 0x00F0L ! 2707: #define MB_DEFMASK 0x0F00L ! 2708: #define MB_MODEMASK 0x3000L ! 2709: #define MB_MISCMASK 0xC000L ! 2710: ! 2711: int ! 2712: APIENTRY CRITICAL XXX ! 2713: MessageBoxA( ! 2714: IN HWND hWnd OPTIONAL, ! 2715: IN LPSTR lpText, ! 2716: IN LPSTR lpCaption OPTIONAL, ! 2717: IN UINT wType ! 2718: ); ! 2719: int ! 2720: APIENTRY CRITICAL XXX ! 2721: MessageBoxW( ! 2722: IN HWND hWnd OPTIONAL, ! 2723: IN LPWSTR lpText, ! 2724: IN LPWSTR lpCaption OPTIONAL, ! 2725: IN UINT wType ! 2726: ); ! 2727: #ifdef UNICODE ! 2728: #define MessageBox MessageBoxW ! 2729: #else ! 2730: #define MessageBox MessageBoxA ! 2731: #endif // !UNICODE ! 2732: ! 2733: BOOL APIENTRY CRITICAL MessageBeep(IN UINT wType); ! 2734: ! 2735: #endif /* NOMB */ ! 2736: ! 2737: int APIENTRY CRITICAL ShowCursor(IN BOOL bShow); ! 2738: BOOL APIENTRY CRITICAL SetCursorPos(IN int X, IN int Y); ! 2739: HCURSOR APIENTRY CRITICAL SetCursor(IN HCURSOR hCursor OPTIONAL); ! 2740: BOOL APIENTRY CRITICAL GetCursorPos(OUT LPPOINT lpPoint); ! 2741: BOOL APIENTRY CRITICAL ClipCursor(IN LPRECT lpRect OPTIONAL); ! 2742: BOOL APIENTRY CRITICAL GetClipCursor(OUT LPRECT lpRect); ! 2743: ! 2744: BOOL APIENTRY CRITICAL CreateCaret(IN HWND hWnd, IN HBITMAP hBitmap OPTIONAL, ! 2745: IN int nWidth, IN int nHeight); ! 2746: UINT APIENTRY CRITICAL GetCaretBlinkTime(void); ! 2747: BOOL APIENTRY CRITICAL SetCaretBlinkTime(IN UINT wMSeconds); ! 2748: BOOL APIENTRY CRITICAL DestroyCaret(void); ! 2749: BOOL APIENTRY CRITICAL HideCaret(IN HWND hWnd OPTIONAL); ! 2750: BOOL APIENTRY CRITICAL ShowCaret(IN HWND hWnd OPTIONAL); ! 2751: BOOL APIENTRY CRITICAL SetCaretPos(IN int X, IN int Y); ! 2752: BOOL APIENTRY CRITICAL GetCaretPos(OUT LPPOINT lpPoint); ! 2753: ! 2754: BOOL APIENTRY CRITICAL ClientToScreen(IN HWND hWnd, IN OUT LPPOINT lpPoint); ! 2755: BOOL APIENTRY CRITICAL ScreenToClient(IN HWND hWnd, IN OUT LPPOINT lpPoint); ! 2756: HWND APIENTRY CRITICAL XXX WindowFromPoint(IN POINT Point); ! 2757: HWND APIENTRY CRITICAL ChildWindowFromPoint(IN HWND hWndParent, IN POINT Point); ! 2758: ! 2759: #ifndef NOCOLOR ! 2760: ! 2761: /* Color Types */ ! 2762: #define CTLCOLOR_MSGBOX 0 ! 2763: #define CTLCOLOR_EDIT 1 ! 2764: #define CTLCOLOR_LISTBOX 2 ! 2765: #define CTLCOLOR_BTN 3 ! 2766: #define CTLCOLOR_DLG 4 ! 2767: #define CTLCOLOR_SCROLLBAR 5 ! 2768: #define CTLCOLOR_STATIC 6 ! 2769: #define CTLCOLOR_MAX 8 /* three bits max */ ! 2770: ! 2771: #define COLOR_SCROLLBAR 0 ! 2772: #define COLOR_BACKGROUND 1 ! 2773: #define COLOR_ACTIVECAPTION 2 ! 2774: #define COLOR_INACTIVECAPTION 3 ! 2775: #define COLOR_MENU 4 ! 2776: #define COLOR_WINDOW 5 ! 2777: #define COLOR_WINDOWFRAME 6 ! 2778: #define COLOR_MENUTEXT 7 ! 2779: #define COLOR_WINDOWTEXT 8 ! 2780: #define COLOR_CAPTIONTEXT 9 ! 2781: #define COLOR_ACTIVEBORDER 10 ! 2782: #define COLOR_INACTIVEBORDER 11 ! 2783: #define COLOR_APPWORKSPACE 12 ! 2784: #define COLOR_HIGHLIGHT 13 ! 2785: #define COLOR_HIGHLIGHTTEXT 14 ! 2786: #define COLOR_BTNFACE 15 ! 2787: #define COLOR_BTNSHADOW 16 ! 2788: #define COLOR_GRAYTEXT 17 ! 2789: #define COLOR_BTNTEXT 18 ! 2790: #define COLOR_INACTIVECAPTIONTEXT 19 ! 2791: #define COLOR_BTNHIGHLIGHT 20 ! 2792: #define COLOR_ENDCOLORS COLOR_BTNHIGHLIGHT ! 2793: ! 2794: DWORD APIENTRY CRITICAL GetSysColor(IN int nIndex); ! 2795: BOOL APIENTRY CRITICAL XXX SetSysColors(IN int, IN LPSYSCOLOR, IN LPCOLORVALUES); ! 2796: ! 2797: #endif /* NOCOLOR */ ! 2798: ! 2799: BOOL APIENTRY CRITICAL DrawFocusRect(HDC, LPRECT); ! 2800: int APIENTRY CRITICAL FillRect(HDC hdc, LPRECT lprc, HBRUSH hbr); ! 2801: int APIENTRY CRITICAL FrameRect(IN HDC hdc, IN LPRECT lprc, IN HBRUSH hbr); ! 2802: BOOL APIENTRY CRITICAL InvertRect(HDC, LPRECT); ! 2803: BOOL APIENTRY SetRect(LPRECT, int, int, int, int); ! 2804: BOOL APIENTRY SetRectEmpty(LPRECT); ! 2805: int APIENTRY CopyRect(LPRECT, LPRECT); ! 2806: BOOL APIENTRY InflateRect(LPRECT, int, int); ! 2807: int APIENTRY IntersectRect(LPRECT, LPRECT, LPRECT); ! 2808: BOOL APIENTRY UnionRect(LPRECT, LPRECT, LPRECT); ! 2809: BOOL APIENTRY OffsetRect(LPRECT, int, int); ! 2810: BOOL APIENTRY IsRectEmpty(LPRECT); ! 2811: BOOL APIENTRY EqualRect(LPRECT, LPRECT); ! 2812: BOOL APIENTRY PtInRect(LPRECT, POINT); ! 2813: DWORD APIENTRY CRITICAL GetCurrentTime(void); ! 2814: ! 2815: #ifndef NOWINOFFSETS ! 2816: ! 2817: WORD APIENTRY CRITICAL GetWindowWord(IN HWND hWnd, IN int nIndex); ! 2818: WORD APIENTRY CRITICAL SetWindowWord(IN HWND hWnd, IN int nIndex, IN WORD wNewWord); ! 2819: LONG APIENTRY CRITICAL GetWindowLong(IN HWND hWnd, IN int nIndex); ! 2820: LONG APIENTRY CRITICAL SetWindowLong(IN HWND hWnd, IN int nIndex, IN LONG dwNewLong); ! 2821: WORD APIENTRY CRITICAL GetClassWord(IN HWND hWnd, IN int nIndex); ! 2822: WORD APIENTRY CRITICAL SetClassWord(IN HWND hWnd, IN int nIndex, IN WORD wNewWord); ! 2823: DWORD APIENTRY CRITICAL GetClassLong(IN HWND hWnd, IN int nIndex); ! 2824: DWORD APIENTRY CRITICAL SetClassLong(IN HWND hWnd, IN int nIndex, IN LONG dwNewLong); ! 2825: HWND APIENTRY CRITICAL GetDesktopWindow(void); ! 2826: BOOL APIENTRY CRITICAL SetDeskWallpaper(IN LPSTR lpString OPTIONAL); ! 2827: ! 2828: #endif /* NOWINOFFSETS */ ! 2829: ! 2830: HWND APIENTRY CRITICAL GetParent(IN HWND hWnd); ! 2831: HWND APIENTRY CRITICAL XXX SetParent(IN HWND hWndChild, IN HWND hWndNewParent OPTIONAL); ! 2832: BOOL APIENTRY CRITICAL XXX EnumChildWindows(IN HWND hWndParent, IN FARPROC lpEnumFunc, IN LONG lParam); ! 2833: ! 2834: HWND ! 2835: APIENTRY CRITICAL XXX ! 2836: FindWindowA( ! 2837: IN LPSTRID lpClassName OPTIONAL, ! 2838: IN LPSTR lpWindowName OPTIONAL ! 2839: ); ! 2840: HWND ! 2841: APIENTRY CRITICAL XXX ! 2842: FindWindowW( ! 2843: IN LPWSTRID lpClassName OPTIONAL, ! 2844: IN LPWSTR lpWindowName OPTIONAL ! 2845: ); ! 2846: #ifdef UNICODE ! 2847: #define FindWindow FindWindowW ! 2848: #else ! 2849: #define FindWindow FindWindowA ! 2850: #endif // !UNICODE ! 2851: ! 2852: BOOL APIENTRY CRITICAL XXX EnumWindows(IN FARPROC lpEnumFunc, IN LONG lParam); ! 2853: BOOL APIENTRY CRITICAL XXX EnumThreadWindows(IN DWORD dwThreadId, IN FARPROC lpfn, IN LONG lParam); ! 2854: #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows((DWORD)hTask, lpfn, lParam) ! 2855: ! 2856: int ! 2857: APIENTRY CRITICAL ! 2858: GetClassNameA( ! 2859: IN HWND hWnd, ! 2860: NEXTCOUNT IN OUT OUTLPSTR lpClassName, ! 2861: IN int nMaxCount ! 2862: ); ! 2863: int ! 2864: APIENTRY CRITICAL ! 2865: GetClassNameW( ! 2866: IN HWND hWnd, ! 2867: NEXTCOUNT IN OUT OUTLPWSTR lpClassName, ! 2868: IN int nMaxCount ! 2869: ); ! 2870: #ifdef UNICODE ! 2871: #define GetClassName GetClassNameW ! 2872: #else ! 2873: #define GetClassName GetClassNameA ! 2874: #endif // !UNICODE ! 2875: ! 2876: HWND APIENTRY CRITICAL GetTopWindow(IN HWND hWnd); ! 2877: #define GetNextWindow(hwnd, wCmd) GetWindow(hwnd, wCmd) ! 2878: #define GetSysModalWindow() (NULL) ! 2879: #define SetSysModalWindow(hwnd) (NULL) ! 2880: DWORD APIENTRY CRITICAL GetWindowThreadProcessId(IN HWND hWnd, ! 2881: IN LPDWORD lpdwProcessId OPTIONAL); ! 2882: #define GetWindowTask(hwnd)\ ! 2883: ((HANDLE)GetWindowThreadProcessId(hwnd, NULL)) ! 2884: ! 2885: HWND APIENTRY CRITICAL GetLastActivePopup(IN HWND hWnd); ! 2886: ! 2887: /* GetWindow() Constants */ ! 2888: #define GW_HWNDFIRST 0 ! 2889: #define GW_HWNDLAST 1 ! 2890: #define GW_HWNDNEXT 2 ! 2891: #define GW_HWNDPREV 3 ! 2892: #define GW_OWNER 4 ! 2893: #define GW_CHILD 5 ! 2894: ! 2895: HWND APIENTRY CRITICAL GetWindow(IN HWND hWnd, IN UINT wCmd); ! 2896: ! 2897: #ifndef NOWH ! 2898: ! 2899: PROC ! 2900: APIENTRY CRITICAL ! 2901: SetWindowsHookA( ! 2902: IN int nFilterType, ! 2903: IN PROC pfnFilterProc ! 2904: ); ! 2905: PROC ! 2906: APIENTRY CRITICAL ! 2907: SetWindowsHookW( ! 2908: IN int nFilterType, ! 2909: IN PROC pfnFilterProc ! 2910: ); ! 2911: #ifdef UNICODE ! 2912: #define SetWindowsHook SetWindowsHookW ! 2913: #else ! 2914: #define SetWindowsHook SetWindowsHookA ! 2915: #endif // !UNICODE ! 2916: ! 2917: BOOL APIENTRY CRITICAL UnhookWindowsHook(IN int nCode, IN PROC pfnFilterProc); ! 2918: ! 2919: HHOOK ! 2920: APIENTRY CRITICAL ! 2921: SetWindowsHookExA( ! 2922: IN HANDLE hmod, ! 2923: IN DWORD dwThreadId, ! 2924: IN int nFilterType, ! 2925: IN PROC pfnFilterProc ! 2926: ); ! 2927: HHOOK ! 2928: APIENTRY CRITICAL ! 2929: SetWindowsHookExW( ! 2930: IN HANDLE hmod, ! 2931: IN DWORD dwThreadId, ! 2932: IN int nFilterType, ! 2933: IN PROC pfnFilterProc ! 2934: ); ! 2935: #ifdef UNICODE ! 2936: #define SetWindowsHookEx SetWindowsHookExW ! 2937: #else ! 2938: #define SetWindowsHookEx SetWindowsHookExA ! 2939: #endif // !UNICODE ! 2940: ! 2941: BOOL APIENTRY CRITICAL UnhookWindowsHookEx(IN HHOOK hhk); ! 2942: DWORD APIENTRY CRITICAL XXX CallNextHookProc(IN int nCode, IN DWORD wParam, ! 2943: IN LONG lParam); ! 2944: ! 2945: /* ! 2946: * Macros for source-level compatibility with old functions. ! 2947: */ ! 2948: #define DefHookProc(nCode, wParam, lParam, ppfnNextHook)\ ! 2949: CallNextHookProc(nCode, wParam, lParam) ! 2950: #endif ! 2951: ! 2952: #ifndef NOMENUS ! 2953: ! 2954: /* Menu flags for Add/Check/EnableMenuItem() */ ! 2955: #define MF_INSERT 0x00000000L ! 2956: #define MF_CHANGE 0x00000080L ! 2957: #define MF_APPEND 0x00000100L ! 2958: #define MF_DELETE 0x00000200L ! 2959: #define MF_REMOVE 0x00001000L ! 2960: ! 2961: #define MF_BYCOMMAND 0x00000000L ! 2962: #define MF_BYPOSITION 0x00000400L ! 2963: ! 2964: ! 2965: #define MF_SEPARATOR 0x00000800L ! 2966: ! 2967: #define MF_ENABLED 0x00000000L ! 2968: #define MF_GRAYED 0x00000001L ! 2969: #define MF_DISABLED 0x00000002L ! 2970: ! 2971: #define MF_UNCHECKED 0x00000000L ! 2972: #define MF_CHECKED 0x00000008L ! 2973: #define MF_USECHECKBITMAPS 0x00000200L ! 2974: ! 2975: #define MF_STRING 0x00000000L ! 2976: #define MF_BITMAP 0x00000004L ! 2977: #define MF_OWNERDRAW 0x00000100L ! 2978: ! 2979: #define MF_POPUP 0x00000010L ! 2980: #define MF_MENUBARBREAK 0x00000020L ! 2981: #define MF_MENUBREAK 0x00000040L ! 2982: ! 2983: #define MF_UNHILITE 0x00000000L ! 2984: #define MF_HILITE 0x00000080L ! 2985: ! 2986: #define MF_SYSMENU 0x00002000L ! 2987: #define MF_HELP 0x00004000L ! 2988: #define MF_MOUSESELECT 0x00008000L ! 2989: ! 2990: /* Menu item resource format */ ! 2991: typedef struct { ! 2992: WORD versionNumber; ! 2993: WORD offset; ! 2994: } MENUITEMTEMPLATEHEADER; ! 2995: ! 2996: typedef struct { ! 2997: WORD mtOption; ! 2998: WORD mtID; ! 2999: char mtString[1]; ! 3000: } MENUITEMTEMPLATE; ! 3001: ! 3002: #define MF_END 0x00000080L ! 3003: ! 3004: #endif /* NOMENUS */ ! 3005: ! 3006: #ifndef NOSYSCOMMANDS ! 3007: ! 3008: /* System Menu Command Values */ ! 3009: #define SC_SIZE 0xF000 ! 3010: #define SC_MOVE 0xF010 ! 3011: #define SC_MINIMIZE 0xF020 ! 3012: #define SC_MAXIMIZE 0xF030 ! 3013: #define SC_NEXTWINDOW 0xF040 ! 3014: #define SC_PREVWINDOW 0xF050 ! 3015: #define SC_CLOSE 0xF060 ! 3016: #define SC_VSCROLL 0xF070 ! 3017: #define SC_HSCROLL 0xF080 ! 3018: #define SC_MOUSEMENU 0xF090 ! 3019: #define SC_KEYMENU 0xF100 ! 3020: #define SC_ARRANGE 0xF110 ! 3021: #define SC_RESTORE 0xF120 ! 3022: #define SC_TASKLIST 0xF130 ! 3023: #define SC_SCREENSAVE 0xF140 ! 3024: #define SC_HOTKEY 0xF150 ! 3025: ! 3026: #define SC_ICON SC_MINIMIZE ! 3027: #define SC_ZOOM SC_MAXIMIZE ! 3028: ! 3029: #endif /* NOSYSCOMMANDS */ ! 3030: ! 3031: /* Resource Loading Routines */ ! 3032: ! 3033: HBITMAP ! 3034: APIENTRY ! 3035: LoadBitmapA( ! 3036: IN HANDLE hInstance, ! 3037: IN LPSTRID lpBitmapName ! 3038: ); ! 3039: HBITMAP ! 3040: APIENTRY ! 3041: LoadBitmapW( ! 3042: IN HANDLE hInstance, ! 3043: IN LPWSTRID lpBitmapName ! 3044: ); ! 3045: #ifdef UNICODE ! 3046: #define LoadBitmap LoadBitmapW ! 3047: #else ! 3048: #define LoadBitmap LoadBitmapA ! 3049: #endif // !UNICODE ! 3050: ! 3051: HCURSOR ! 3052: APIENTRY CRITICAL ! 3053: LoadCursorA( ! 3054: IN HANDLE hInstance, ! 3055: IN LPSTRID lpCursorName ! 3056: ); ! 3057: HCURSOR ! 3058: APIENTRY CRITICAL ! 3059: LoadCursorW( ! 3060: IN HANDLE hInstance, ! 3061: IN LPWSTRID lpCursorName ! 3062: ); ! 3063: #ifdef UNICODE ! 3064: #define LoadCursor LoadCursorW ! 3065: #else ! 3066: #define LoadCursor LoadCursorA ! 3067: #endif // !UNICODE ! 3068: ! 3069: HCURSOR APIENTRY CRITICAL CreateCursor(IN HANDLE, IN int, IN int, IN int, IN int, ! 3070: IN LPMONO1BITS, IN LPMONO2BITS); ! 3071: HCURSOR APIENTRY CRITICAL CreateDIBCursor(NEXTCOUNT IN LPSTR lpCursorRes, ! 3072: IN DWORD cb, IN UINT xHotspot, IN UINT yHotspot); ! 3073: BOOL APIENTRY CRITICAL DestroyCursor(IN HCURSOR); ! 3074: ! 3075: /* Standard Cursor IDs */ ! 3076: #define IDC_ARROW MAKEINTRESOURCE(32512) ! 3077: #define IDC_IBEAM MAKEINTRESOURCE(32513) ! 3078: #define IDC_WAIT MAKEINTRESOURCE(32514) ! 3079: #define IDC_CROSS MAKEINTRESOURCE(32515) ! 3080: #define IDC_UPARROW MAKEINTRESOURCE(32516) ! 3081: #define IDC_SIZE MAKEINTRESOURCE(32640) ! 3082: #define IDC_ICON MAKEINTRESOURCE(32641) ! 3083: #define IDC_SIZENWSE MAKEINTRESOURCE(32642) ! 3084: #define IDC_SIZENESW MAKEINTRESOURCE(32643) ! 3085: #define IDC_SIZEWE MAKEINTRESOURCE(32644) ! 3086: #define IDC_SIZENS MAKEINTRESOURCE(32645) ! 3087: #define IDC_SIZEALL MAKEINTRESOURCE(32646) ! 3088: #define IDC_NO MAKEINTRESOURCE(32648) ! 3089: ! 3090: typedef struct _ICONINFO { ! 3091: BOOL fIcon; ! 3092: DWORD xHotspot; ! 3093: DWORD yHotspot; ! 3094: HBITMAP hbmMask; ! 3095: HBITMAP hbmColor; ! 3096: } ICONINFO; ! 3097: typedef ICONINFO *PICONINFO; ! 3098: ! 3099: HICON ! 3100: APIENTRY CRITICAL ! 3101: LoadIconA( ! 3102: IN HANDLE hInstance, ! 3103: IN LPSTRID lpIconName ! 3104: ); ! 3105: HICON ! 3106: APIENTRY CRITICAL ! 3107: LoadIconW( ! 3108: IN HANDLE hInstance, ! 3109: IN LPWSTRID lpIconName ! 3110: ); ! 3111: #ifdef UNICODE ! 3112: #define LoadIcon LoadIconW ! 3113: #else ! 3114: #define LoadIcon LoadIconA ! 3115: #endif // !UNICODE ! 3116: ! 3117: HICON APIENTRY CRITICAL CreateIcon(IN HANDLE, IN int, IN int, IN BYTE, IN BYTE, IN LPBYTE, IN LPBYTE); ! 3118: BOOL APIENTRY CRITICAL DestroyIcon(IN HICON); ! 3119: int APIENTRY LookupIconIdFromDirectory(IN PBYTE presbits, IN BOOL fIcon); ! 3120: HICON APIENTRY CreateIconFromResource(PBYTE presbits, DWORD dwResSize, ! 3121: BOOL fIcon, DWORD dwVer); ! 3122: HICON APIENTRY CreateIconIndirect(IN PICONINFO piconinfo); ! 3123: BOOL APIENTRY GetIconInfo(IN HICON hIcon, OUT PICONINFO piconinfo); ! 3124: ! 3125: #ifdef OEMRESOURCE ! 3126: ! 3127: /* OEM Resource Ordinal Numbers */ ! 3128: #define OBM_CLOSE 32754 ! 3129: #define OBM_UPARROW 32753 ! 3130: #define OBM_DNARROW 32752 ! 3131: #define OBM_RGARROW 32751 ! 3132: #define OBM_LFARROW 32750 ! 3133: #define OBM_REDUCE 32749 ! 3134: #define OBM_ZOOM 32748 ! 3135: #define OBM_RESTORE 32747 ! 3136: #define OBM_REDUCED 32746 ! 3137: #define OBM_ZOOMD 32745 ! 3138: #define OBM_RESTORED 32744 ! 3139: #define OBM_UPARROWD 32743 ! 3140: #define OBM_DNARROWD 32742 ! 3141: #define OBM_RGARROWD 32741 ! 3142: #define OBM_LFARROWD 32740 ! 3143: #define OBM_MNARROW 32739 ! 3144: #define OBM_COMBO 32738 ! 3145: #define OBM_UPARROWI 32737 ! 3146: #define OBM_DNARROWI 32736 ! 3147: #define OBM_RGARROWI 32735 ! 3148: #define OBM_LFARROWI 32734 ! 3149: ! 3150: #define OBM_OLD_CLOSE 32767 ! 3151: #define OBM_SIZE 32766 ! 3152: #define OBM_OLD_UPARROW 32765 ! 3153: #define OBM_OLD_DNARROW 32764 ! 3154: #define OBM_OLD_RGARROW 32763 ! 3155: #define OBM_OLD_LFARROW 32762 ! 3156: #define OBM_BTSIZE 32761 ! 3157: #define OBM_CHECK 32760 ! 3158: #define OBM_CHECKBOXES 32759 ! 3159: #define OBM_BTNCORNERS 32758 ! 3160: #define OBM_OLD_REDUCE 32757 ! 3161: #define OBM_OLD_ZOOM 32756 ! 3162: #define OBM_OLD_RESTORE 32755 ! 3163: ! 3164: #define OCR_NORMAL 32512 ! 3165: #define OCR_IBEAM 32513 ! 3166: #define OCR_WAIT 32514 ! 3167: #define OCR_CROSS 32515 ! 3168: #define OCR_UP 32516 ! 3169: #define OCR_SIZE 32640 ! 3170: #define OCR_ICON 32641 ! 3171: #define OCR_SIZENWSE 32642 ! 3172: #define OCR_SIZENESW 32643 ! 3173: #define OCR_SIZEWE 32644 ! 3174: #define OCR_SIZENS 32645 ! 3175: #define OCR_SIZEALL 32646 ! 3176: #define OCR_ICOCUR 32647 ! 3177: #define OCR_NO 32648 ! 3178: ! 3179: #define OIC_SAMPLE 32512 ! 3180: #define OIC_HAND 32513 ! 3181: #define OIC_QUES 32514 ! 3182: #define OIC_BANG 32515 ! 3183: #define OIC_NOTE 32516 ! 3184: ! 3185: #endif /* OEMRESOURCE */ ! 3186: ! 3187: #define ORD_LANGDRIVER 1 /* The ordinal number for the entry point of ! 3188: ** language drivers. ! 3189: */ ! 3190: ! 3191: #ifndef NOICONS ! 3192: ! 3193: /* Standard Icon IDs */ ! 3194: #define IDI_APPLICATION MAKEINTRESOURCE(32512) ! 3195: #define IDI_HAND MAKEINTRESOURCE(32513) ! 3196: #define IDI_QUESTION MAKEINTRESOURCE(32514) ! 3197: #define IDI_EXCLAMATION MAKEINTRESOURCE(32515) ! 3198: #define IDI_ASTERISK MAKEINTRESOURCE(32516) ! 3199: ! 3200: #endif /* NOICONS */ ! 3201: ! 3202: int ! 3203: APIENTRY ! 3204: LoadStringA( ! 3205: IN HANDLE hInstance, ! 3206: IN UINT wID, ! 3207: NEXTCOUNT IN OUT OUTLPSTR lpBuffer, ! 3208: IN int nBufferMax ! 3209: ); ! 3210: int ! 3211: APIENTRY ! 3212: LoadStringW( ! 3213: IN HANDLE hInstance, ! 3214: IN UINT wID, ! 3215: NEXTCOUNT IN OUT OUTLPWSTR lpBuffer, ! 3216: IN int nBufferMax ! 3217: ); ! 3218: #ifdef UNICODE ! 3219: #define LoadString LoadStringW ! 3220: #else ! 3221: #define LoadString LoadStringA ! 3222: #endif // !UNICODE ! 3223: ! 3224: #ifndef NOKANJI ! 3225: ! 3226: #define CP_HWND 0 ! 3227: #define CP_OPEN 1 ! 3228: #define CP_DIRECT 2 ! 3229: ! 3230: /* VK from the keyboard driver */ ! 3231: #define VK_KANA 0x15 ! 3232: #define VK_ROMAJI 0x16 ! 3233: #define VK_ZENKAKU 0x17 ! 3234: #define VK_HIRAGANA 0x18 ! 3235: #define VK_KANJI 0x19 ! 3236: ! 3237: /* VK to send to Applications */ ! 3238: #define VK_CONVERT 0x1C ! 3239: #define VK_NONCONVERT 0x1D ! 3240: #define VK_ACCEPT 0x1E ! 3241: #define VK_MODECHANGE 0x1F ! 3242: ! 3243: /* Conversion function numbers */ ! 3244: #define KNJ_START 0x01 ! 3245: #define KNJ_END 0x02 ! 3246: #define KNJ_QUERY 0x03 ! 3247: ! 3248: #define KNJ_LEARN_MODE 0x10 ! 3249: #define KNJ_GETMODE 0x11 ! 3250: #define KNJ_SETMODE 0x12 ! 3251: ! 3252: #define KNJ_CODECONVERT 0x20 ! 3253: #define KNJ_CONVERT 0x21 ! 3254: #define KNJ_NEXT 0x22 ! 3255: #define KNJ_PREVIOUS 0x23 ! 3256: #define KNJ_ACCEPT 0x24 ! 3257: ! 3258: #define KNJ_LEARN 0x30 ! 3259: #define KNJ_REGISTER 0x31 ! 3260: #define KNJ_REMOVE 0x32 ! 3261: #define KNJ_CHANGE_UDIC 0x33 ! 3262: ! 3263: /* NOTE: DEFAULT = 0 ! 3264: * JIS1 = 1 ! 3265: * JIS2 = 2 ! 3266: * SJIS2 = 3 ! 3267: * JIS1KATAKANA = 4 ! 3268: * SJIS2HIRAGANA = 5 ! 3269: * SJIS2KATAKANA = 6 ! 3270: * OEM = F ! 3271: */ ! 3272: ! 3273: #define KNJ_JIS1toJIS1KATAKANA 0x14 ! 3274: #define KNJ_JIS1toSJIS2 0x13 ! 3275: #define KNJ_JIS1toSJIS2HIRAGANA 0x15 ! 3276: #define KNJ_JIS1toSJIS2KATAKANA 0x16 ! 3277: #define KNJ_JIS1toDEFAULT 0x10 ! 3278: #define KNJ_JIS1toSJIS2OEM 0x1F ! 3279: #define KNJ_JIS2toSJIS2 0x23 ! 3280: #define KNJ_SJIS2toJIS2 0x32 ! 3281: ! 3282: #define KNJ_MD_ALPHA 0x01 ! 3283: #define KNJ_MD_HIRAGANA 0x02 ! 3284: #define KNJ_MD_HALF 0x04 ! 3285: #define KNJ_MD_JIS 0x08 ! 3286: #define KNJ_MD_SPECIAL 0x10 ! 3287: ! 3288: #define KNJ_CVT_NEXT 0x01 ! 3289: #define KNJ_CVT_PREV 0x02 ! 3290: #define KNJ_CVT_KATAKANA 0x03 ! 3291: #define KNJ_CVT_HIRAGANA 0x04 ! 3292: #define KNJ_CVT_JIS1 0x05 ! 3293: #define KNJ_CVT_SJIS2 0x06 ! 3294: #define KNJ_CVT_DEFAULT 0x07 ! 3295: #define KNJ_CVT_TYPED 0x08 ! 3296: ! 3297: typedef struct { ! 3298: int fnc; ! 3299: int wParam; ! 3300: LPSTR lpSource; ! 3301: LPSTR lpDest; ! 3302: int wCount; ! 3303: LPSTRNULL lpReserved1; ! 3304: LPSTRNULL lpReserved2; ! 3305: } KANJISTRUCT, FAR *LPKANJISTRUCT; ! 3306: ! 3307: int APIENTRY ConvertRequest(HWND, LPKANJISTRUCT); ! 3308: BOOL APIENTRY SetConvertParams(int, int); ! 3309: VOID APIENTRY SetConvertHook(BOOL); ! 3310: ! 3311: #endif ! 3312: ! 3313: /* Key Conversion Window */ ! 3314: BOOL APIENTRY IsTwoByteCharPrefix(char); ! 3315: ! 3316: /* Dialog Box Command IDs */ ! 3317: #define IDOK 1 ! 3318: #define IDCANCEL 2 ! 3319: #define IDABORT 3 ! 3320: #define IDRETRY 4 ! 3321: #define IDIGNORE 5 ! 3322: #define IDYES 6 ! 3323: #define IDNO 7 ! 3324: ! 3325: #ifndef NOCTLMGR ! 3326: ! 3327: /* Control Manager Structures and Definitions */ ! 3328: ! 3329: #ifndef NOWINSTYLES ! 3330: ! 3331: /* Edit Control Styles */ ! 3332: #define ES_LEFT 0x0000L ! 3333: #define ES_CENTER 0x0001L ! 3334: #define ES_RIGHT 0x0002L ! 3335: #define ES_MULTILINE 0x0004L ! 3336: #define ES_UPPERCASE 0x0008L ! 3337: #define ES_LOWERCASE 0x0010L ! 3338: #define ES_PASSWORD 0x0020L ! 3339: #define ES_AUTOVSCROLL 0x0040L ! 3340: #define ES_AUTOHSCROLL 0x0080L ! 3341: #define ES_NOHIDESEL 0x0100L ! 3342: #define ES_OEMCONVERT 0x0400L ! 3343: #define ES_READONLY 0x0800L ! 3344: ! 3345: ! 3346: #endif /* NOWINSTYLES */ ! 3347: ! 3348: /* Edit Control Notification Codes */ ! 3349: #define EN_SETFOCUS 0x0100 ! 3350: #define EN_KILLFOCUS 0x0200 ! 3351: #define EN_CHANGE 0x0300 ! 3352: #define EN_UPDATE 0x0400 ! 3353: #define EN_ERRSPACE 0x0500 ! 3354: #define EN_MAXTEXT 0x0501 ! 3355: #define EN_HSCROLL 0x0601 ! 3356: #define EN_VSCROLL 0x0602 ! 3357: ! 3358: #ifndef NOWINMESSAGES ! 3359: ! 3360: /* Edit Control Messages */ ! 3361: #define EM_GETSEL 0x00B0 ! 3362: #define EM_SETSEL 0x00B1 ! 3363: #define EM_GETRECT 0x00B2 ! 3364: #define EM_SETRECT 0x00B3 ! 3365: #define EM_SETRECTNP 0x00B4 ! 3366: #define EM_SCROLL 0x00B5 ! 3367: #define EM_LINESCROLL 0x00B6 ! 3368: #define EM_GETMODIFY 0x00B8 ! 3369: #define EM_SETMODIFY 0x00B9 ! 3370: #define EM_GETLINECOUNT 0x00BA ! 3371: #define EM_LINEINDEX 0x00BB ! 3372: #define EM_SETHANDLE 0x00BC ! 3373: #define EM_GETHANDLE 0x00BD ! 3374: #define EM_GETTHUMB 0x00BE ! 3375: #define EM_LINELENGTH 0x00C1 ! 3376: #define EM_REPLACESEL 0x00C2 ! 3377: #define EM_SETFONT 0x00C3 ! 3378: #define EM_GETLINE 0x00C4 ! 3379: #define EM_LIMITTEXT 0x00C5 ! 3380: #define EM_CANUNDO 0x00C6 ! 3381: #define EM_UNDO 0x00C7 ! 3382: #define EM_FMTLINES 0x00C8 ! 3383: #define EM_LINEFROMCHAR 0x00C9 ! 3384: #define EM_SETWORDBREAK 0x00CA ! 3385: #define EM_SETTABSTOPS 0x00CB ! 3386: #define EM_SETPASSWORDCHAR 0x00CC ! 3387: #define EM_EMPTYUNDOBUFFER 0x00CD ! 3388: #define EM_GETFIRSTVISIBLE 0x00CE ! 3389: #define EM_SETREADONLY 0x00CF ! 3390: #define EM_MSGMAX 0x00D0 ! 3391: ! 3392: #endif /* NOWINMESSAGES */ ! 3393: ! 3394: /* Button Control Styles */ ! 3395: #define BS_PUSHBUTTON 0x00L ! 3396: #define BS_DEFPUSHBUTTON 0x01L ! 3397: #define BS_CHECKBOX 0x02L ! 3398: #define BS_AUTOCHECKBOX 0x03L ! 3399: #define BS_RADIOBUTTON 0x04L ! 3400: #define BS_3STATE 0x05L ! 3401: #define BS_AUTO3STATE 0x06L ! 3402: #define BS_GROUPBOX 0x07L ! 3403: #define BS_USERBUTTON 0x08L ! 3404: #define BS_AUTORADIOBUTTON 0x09L ! 3405: #define BS_PUSHBOX 0x0AL ! 3406: #define BS_OWNERDRAW 0x0BL ! 3407: #define BS_LEFTTEXT 0x20L ! 3408: ! 3409: ! 3410: /* User Button Notification Codes */ ! 3411: #define BN_CLICKED 0 ! 3412: #define BN_PAINT 1 ! 3413: #define BN_HILITE 2 ! 3414: #define BN_UNHILITE 3 ! 3415: #define BN_DISABLE 4 ! 3416: #define BN_DOUBLECLICKED 5 ! 3417: ! 3418: /* Button Control Messages */ ! 3419: #define BM_GETCHECK 0x00F0 ! 3420: #define BM_SETCHECK 0x00F1 ! 3421: #define BM_GETSTATE 0x00F2 ! 3422: #define BM_SETSTATE 0x00F3 ! 3423: #define BM_SETSTYLE 0x00F4 ! 3424: ! 3425: /* Static Control Constants */ ! 3426: #define SS_LEFT 0x00L ! 3427: #define SS_CENTER 0x01L ! 3428: #define SS_RIGHT 0x02L ! 3429: #define SS_ICON 0x03L ! 3430: #define SS_BLACKRECT 0x04L ! 3431: #define SS_GRAYRECT 0x05L ! 3432: #define SS_WHITERECT 0x06L ! 3433: #define SS_BLACKFRAME 0x07L ! 3434: #define SS_GRAYFRAME 0x08L ! 3435: #define SS_WHITEFRAME 0x09L ! 3436: #define SS_USERITEM 0x0AL ! 3437: #define SS_SIMPLE 0x0BL ! 3438: #define SS_LEFTNOWORDWRAP 0x0CL ! 3439: #define SS_NOPREFIX 0x80L /* Don't do "&" character translation */ ! 3440: ! 3441: #ifndef NOWINMESSAGES ! 3442: /* Static Control Mesages */ ! 3443: #define STM_SETICON 0x0D0 ! 3444: #define STM_GETICON 0x0D1 ! 3445: #define STM_MSGMAX 0x0D2 ! 3446: #endif /* NOWINMESSAGES */ ! 3447: /* Dialog Manager Routines */ ! 3448: ! 3449: #ifndef NOMSG ! 3450: BOOL APIENTRY CRITICAL XXX IsDialogMessage(IN HWND hDlg, IN LPMSG lpMsg); ! 3451: #endif ! 3452: ! 3453: BOOL APIENTRY CRITICAL MapDialogRect(IN HWND hDlg, IN OUT LPRECT lpRect); ! 3454: ! 3455: int ! 3456: APIENTRY CRITICAL XXX ! 3457: DlgDirListA( ! 3458: IN HWND hDlg, ! 3459: IN OUT LPSTR lpPathSpec, ! 3460: IN int nIDListBox, ! 3461: IN int nIDStaticPath, ! 3462: IN UINT wFileType ! 3463: ); ! 3464: int ! 3465: APIENTRY CRITICAL XXX ! 3466: DlgDirListW( ! 3467: IN HWND hDlg, ! 3468: IN OUT LPWSTR lpPathSpec, ! 3469: IN int nIDListBox, ! 3470: IN int nIDStaticPath, ! 3471: IN UINT wFileType ! 3472: ); ! 3473: #ifdef UNICODE ! 3474: #define DlgDirList DlgDirListW ! 3475: #else ! 3476: #define DlgDirList DlgDirListA ! 3477: #endif // !UNICODE ! 3478: ! 3479: BOOL ! 3480: APIENTRY CRITICAL XXX ! 3481: DlgDirSelectExA( ! 3482: IN HWND hDlg, ! 3483: NEXTCOUNT IN OUT OUTLPSTR lpString, ! 3484: IN int nCount, ! 3485: IN int nIDListBox ! 3486: ); ! 3487: BOOL ! 3488: APIENTRY CRITICAL XXX ! 3489: DlgDirSelectExW( ! 3490: IN HWND hDlg, ! 3491: NEXTCOUNT IN OUT OUTLPWSTR lpString, ! 3492: IN int nCount, ! 3493: IN int nIDListBox ! 3494: ); ! 3495: #ifdef UNICODE ! 3496: #define DlgDirSelectEx DlgDirSelectExW ! 3497: #else ! 3498: #define DlgDirSelectEx DlgDirSelectExA ! 3499: #endif // !UNICODE ! 3500: ! 3501: int ! 3502: APIENTRY CRITICAL XXX ! 3503: DlgDirListComboBoxA( ! 3504: IN HWND hDlg, ! 3505: IN OUT LPSTR lpPathSpec, ! 3506: IN int nIDComboBox, ! 3507: IN int nIDStaticPath, ! 3508: IN UINT wFiletype ! 3509: ); ! 3510: int ! 3511: APIENTRY CRITICAL XXX ! 3512: DlgDirListComboBoxW( ! 3513: IN HWND hDlg, ! 3514: IN OUT LPWSTR lpPathSpec, ! 3515: IN int nIDComboBox, ! 3516: IN int nIDStaticPath, ! 3517: IN UINT wFiletype ! 3518: ); ! 3519: #ifdef UNICODE ! 3520: #define DlgDirListComboBox DlgDirListComboBoxW ! 3521: #else ! 3522: #define DlgDirListComboBox DlgDirListComboBoxA ! 3523: #endif // !UNICODE ! 3524: ! 3525: BOOL ! 3526: APIENTRY CRITICAL XXX ! 3527: DlgDirSelectComboBoxExA( ! 3528: IN HWND hDlg, ! 3529: NEXTCOUNT IN OUT OUTLPSTR lpString, ! 3530: IN int nCount, ! 3531: IN int nIDComboBox ! 3532: ); ! 3533: BOOL ! 3534: APIENTRY CRITICAL XXX ! 3535: DlgDirSelectComboBoxExW( ! 3536: IN HWND hDlg, ! 3537: NEXTCOUNT IN OUT OUTLPWSTR lpString, ! 3538: IN int nCount, ! 3539: IN int nIDComboBox ! 3540: ); ! 3541: #ifdef UNICODE ! 3542: #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW ! 3543: #else ! 3544: #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA ! 3545: #endif // !UNICODE ! 3546: ! 3547: ! 3548: /* Dialog Styles */ ! 3549: #define DS_ABSALIGN 0x01L ! 3550: #define DS_SYSMODAL 0x02L ! 3551: #define DS_LOCALEDIT 0x20L /* Edit items get Local storage. */ ! 3552: #define DS_SETFONT 0x40L /* User specified font for Dlg controls */ ! 3553: #define DS_MODALFRAME 0x80L /* Can be combined with WS_CAPTION */ ! 3554: #define DS_NOIDLEMSG 0x100L /* WM_ENTERIDLE message will not be sent */ ! 3555: #define DS_SETFOREGROUND 0x200L ! 3556: ! 3557: #define DM_GETDEFID (WM_USER+0) ! 3558: #define DM_SETDEFID (WM_USER+1) ! 3559: #define DC_HASDEFID 0x534B ! 3560: ! 3561: /* Dialog Codes */ ! 3562: #define DLGC_WANTARROWS 0x0001 /* Control wants arrow keys */ ! 3563: #define DLGC_WANTTAB 0x0002 /* Control wants tab keys */ ! 3564: #define DLGC_WANTALLKEYS 0x0004 /* Control wants all keys */ ! 3565: #define DLGC_WANTMESSAGE 0x0004 /* Pass message to control */ ! 3566: #define DLGC_HASSETSEL 0x0008 /* Understands EM_SETSEL message */ ! 3567: #define DLGC_DEFPUSHBUTTON 0x0010 /* Default pushbutton */ ! 3568: #define DLGC_UNDEFPUSHBUTTON 0x0020 /* Non-default pushbutton */ ! 3569: #define DLGC_RADIOBUTTON 0x0040 /* Radio button */ ! 3570: #define DLGC_WANTCHARS 0x0080 /* Want WM_CHAR messages */ ! 3571: #define DLGC_STATIC 0x0100 /* Static item: don't include */ ! 3572: #define DLGC_BUTTON 0x2000 /* Button item: can be checked */ ! 3573: ! 3574: #define LB_CTLCODE 0L ! 3575: ! 3576: /* Listbox Return Values */ ! 3577: #define LB_OKAY 0 ! 3578: #define LB_ERR (-1) ! 3579: #define LB_ERRSPACE (-2) ! 3580: ! 3581: /* ! 3582: ** The idStaticPath parameter to DlgDirList can have the following values ! 3583: ** ORed if the list box should show other details of the files along with ! 3584: ** the name of the files; ! 3585: */ ! 3586: /* all other details also will be returned */ ! 3587: ! 3588: ! 3589: /* Listbox Notification Codes */ ! 3590: #define LBN_ERRSPACE (-2) ! 3591: #define LBN_SELCHANGE 1 ! 3592: #define LBN_DBLCLK 2 ! 3593: #define LBN_SELCANCEL 3 ! 3594: #define LBN_SETFOCUS 4 ! 3595: #define LBN_KILLFOCUS 5 ! 3596: ! 3597: ! 3598: ! 3599: #ifndef NOWINMESSAGES ! 3600: ! 3601: /* Listbox messages */ ! 3602: #define LB_ADDSTRING 0x0180 ! 3603: #define LB_INSERTSTRING 0x0181 ! 3604: #define LB_DELETESTRING 0x0182 ! 3605: #define LB_RESETCONTENT 0x0184 ! 3606: #define LB_SETSEL 0x0185 ! 3607: #define LB_SETCURSEL 0x0186 ! 3608: #define LB_GETSEL 0x0187 ! 3609: #define LB_GETCURSEL 0x0188 ! 3610: #define LB_GETTEXT 0x0189 ! 3611: #define LB_GETTEXTLEN 0x018A ! 3612: #define LB_GETCOUNT 0x018B ! 3613: #define LB_SELECTSTRING 0x018C ! 3614: #define LB_DIR 0x018D ! 3615: #define LB_GETTOPINDEX 0x018E ! 3616: #define LB_FINDSTRING 0x018F ! 3617: #define LB_GETSELCOUNT 0x0190 ! 3618: #define LB_GETSELITEMS 0x0191 ! 3619: #define LB_SETTABSTOPS 0x0192 ! 3620: #define LB_GETHORIZONTALEXTENT 0x0193 ! 3621: #define LB_SETHORIZONTALEXTENT 0x0194 ! 3622: #define LB_SETCOLUMNWIDTH 0x0195 ! 3623: #define LB_SETTOPINDEX 0x0197 ! 3624: #define LB_GETITEMRECT 0x0198 ! 3625: #define LB_GETITEMDATA 0x0199 ! 3626: #define LB_SETITEMDATA 0x019A ! 3627: #define LB_SELITEMRANGE 0x019B ! 3628: #define LB_SETITEMHEIGHT 0x01A0 ! 3629: #define LB_GETITEMHEIGHT 0x01A1 ! 3630: #define LB_MSGMAX 0x01A2 ! 3631: ! 3632: #endif /* NOWINMESSAGES */ ! 3633: ! 3634: #ifndef NOWINSTYLES ! 3635: ! 3636: /* Listbox Styles */ ! 3637: #define LBS_NOTIFY 0x0001L ! 3638: #define LBS_SORT 0x0002L ! 3639: #define LBS_NOREDRAW 0x0004L ! 3640: #define LBS_MULTIPLESEL 0x0008L ! 3641: #define LBS_OWNERDRAWFIXED 0x0010L ! 3642: #define LBS_OWNERDRAWVARIABLE 0x0020L ! 3643: #define LBS_HASSTRINGS 0x0040L ! 3644: #define LBS_USETABSTOPS 0x0080L ! 3645: #define LBS_NOINTEGRALHEIGHT 0x0100L ! 3646: #define LBS_MULTICOLUMN 0x0200L ! 3647: #define LBS_WANTKEYBOARDINPUT 0x0400L ! 3648: #define LBS_EXTENDEDSEL 0x0800L ! 3649: #define LBS_DISABLENOSCROLL 0x1000L ! 3650: #define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER) ! 3651: ! 3652: #endif /* NOWINSTYLES */ ! 3653: ! 3654: ! 3655: /* Combo Box return Values */ ! 3656: #define CB_OKAY 0 ! 3657: #define CB_ERR (-1) ! 3658: #define CB_ERRSPACE (-2) ! 3659: ! 3660: ! 3661: /* Combo Box Notification Codes */ ! 3662: #define CBN_ERRSPACE (-1) ! 3663: #define CBN_SELCHANGE 1 ! 3664: #define CBN_DBLCLK 2 ! 3665: #define CBN_SETFOCUS 3 ! 3666: #define CBN_KILLFOCUS 4 ! 3667: #define CBN_EDITCHANGE 5 ! 3668: #define CBN_EDITUPDATE 6 ! 3669: #define CBN_DROPDOWN 7 ! 3670: #define CBN_CLOSEUP 8 ! 3671: ! 3672: /* Combo Box styles */ ! 3673: #ifndef NOWINSTYLES ! 3674: #define CBS_SIMPLE 0x0001L ! 3675: #define CBS_DROPDOWN 0x0002L ! 3676: #define CBS_DROPDOWNLIST 0x0003L ! 3677: #define CBS_OWNERDRAWFIXED 0x0010L ! 3678: #define CBS_OWNERDRAWVARIABLE 0x0020L ! 3679: #define CBS_AUTOHSCROLL 0x0040L ! 3680: #define CBS_OEMCONVERT 0x0080L ! 3681: #define CBS_SORT 0x0100L ! 3682: #define CBS_HASSTRINGS 0x0200L ! 3683: #define CBS_NOINTEGRALHEIGHT 0x0400L ! 3684: #define CBS_DISABLENOSCROLL 0x0800L ! 3685: #endif /* NOWINSTYLES */ ! 3686: ! 3687: ! 3688: /* Combo Box messages */ ! 3689: #ifndef NOWINMESSAGES ! 3690: #define CB_GETEDITSEL 0x0140 ! 3691: #define CB_LIMITTEXT 0x0141 ! 3692: #define CB_SETEDITSEL 0x0142 ! 3693: #define CB_ADDSTRING 0x0143 ! 3694: #define CB_DELETESTRING 0x0144 ! 3695: #define CB_DIR 0x0145 ! 3696: #define CB_GETCOUNT 0x0146 ! 3697: #define CB_GETCURSEL 0x0147 ! 3698: #define CB_GETLBTEXT 0x0148 ! 3699: #define CB_GETLBTEXTLEN 0x0149 ! 3700: #define CB_INSERTSTRING 0x014A ! 3701: #define CB_RESETCONTENT 0x014B ! 3702: #define CB_FINDSTRING 0x014C ! 3703: #define CB_SELECTSTRING 0x014D ! 3704: #define CB_SETCURSEL 0x014E ! 3705: #define CB_SHOWDROPDOWN 0x014F ! 3706: #define CB_GETITEMDATA 0x0150 ! 3707: #define CB_SETITEMDATA 0x0151 ! 3708: #define CB_GETDROPPEDCONTROLRECT 0x0152 ! 3709: #define CB_SETITEMHEIGHT 0x0153 ! 3710: #define CB_GETITEMHEIGHT 0x0154 ! 3711: #define CB_SETEXTENDEDUI 0x0155 ! 3712: #define CB_GETEXTENDEDUI 0x0156 ! 3713: #define CB_GETDROPPEDSTATE 0x0157 ! 3714: #define CB_MSGMAX 0x0158 ! 3715: #endif /* NOWINMESSAGES */ ! 3716: ! 3717: ! 3718: ! 3719: #ifndef NOWINSTYLES ! 3720: ! 3721: /* Scroll Bar Styles */ ! 3722: #define SBS_HORZ 0x0000L ! 3723: #define SBS_VERT 0x0001L ! 3724: #define SBS_TOPALIGN 0x0002L ! 3725: #define SBS_LEFTALIGN 0x0002L ! 3726: #define SBS_BOTTOMALIGN 0x0004L ! 3727: #define SBS_RIGHTALIGN 0x0004L ! 3728: #define SBS_SIZEBOXTOPLEFTALIGN 0x0002L ! 3729: #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L ! 3730: #define SBS_SIZEBOX 0x0008L ! 3731: #endif /* NOWINSTYLES */ ! 3732: ! 3733: /* Scroll bar messages */ ! 3734: #ifndef NOWINMESSAGES ! 3735: #define SBM_SETPOS 0x00E0 ! 3736: #define SBM_GETPOS 0x00E1 ! 3737: #define SBM_SETRANGE 0x00E2 ! 3738: #define SBM_GETRANGE 0x00E3 ! 3739: #define SBM_ENABLE_ARROWS 0x00E4 ! 3740: #endif ! 3741: #endif /* NOCTLMGR */ ! 3742: ! 3743: #ifndef NOMDI ! 3744: ! 3745: /* MDI client style bits */ ! 3746: #define MDIS_ALLCHILDSTYLES 0x0001 ! 3747: ! 3748: /* wParam Flags for WM_MDITILE and WM_MDICASCADE messages. */ ! 3749: #define MDITILE_VERTICAL 0x0000 ! 3750: #define MDITILE_HORIZONTAL 0x0001 ! 3751: #define MDITILE_SKIPDISABLED 0x0002 ! 3752: ! 3753: typedef struct tagMDICREATESTRUCTA { ! 3754: LPSTRID szClass; ! 3755: LPSTRNULL szTitle; ! 3756: HANDLE hOwner; ! 3757: int x; ! 3758: int y; ! 3759: int cx; ! 3760: int cy; ! 3761: LONG style; ! 3762: LONG lParam; /* app-defined stuff */ ! 3763: } MDICREATESTRUCTA, *LPMDICREATESTRUCTA; ! 3764: typedef struct tagMDICREATESTRUCTW { ! 3765: LPWSTRID szClass; ! 3766: LPWSTRNULL szTitle; ! 3767: HANDLE hOwner; ! 3768: int x; ! 3769: int y; ! 3770: int cx; ! 3771: int cy; ! 3772: LONG style; ! 3773: LONG lParam; /* app-defined stuff */ ! 3774: } MDICREATESTRUCTW, *LPMDICREATESTRUCTW; ! 3775: #ifdef UNICODE ! 3776: #define MDICREATESTRUCT MDICREATESTRUCTW ! 3777: #define LPMDICREATESTRUCT LPMDICREATESTRUCTW ! 3778: #else ! 3779: #define MDICREATESTRUCT MDICREATESTRUCTA ! 3780: #define LPMDICREATESTRUCT LPMDICREATESTRUCTA ! 3781: #endif // UNICODE ! 3782: ! 3783: typedef struct tagCLIENTCREATESTRUCT { ! 3784: HANDLE hWindowMenu; ! 3785: UINT idFirstChild; ! 3786: } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT; ! 3787: ! 3788: LONG APIENTRY CRITICAL XXX DefFrameProcA(IN HWND hWnd, IN HWND hWndMDIClient OPTIONAL, IN UINT wMsg, IN DWORD wParam, IN LONG lParam); ! 3789: LONG APIENTRY CRITICAL XXX DefFrameProcW(IN HWND hWnd, IN HWND hWndMDIClient OPTIONAL, IN UINT wMsg, IN DWORD wParam, IN LONG lParam); ! 3790: #ifdef UNICODE ! 3791: #define DefFrameProc DefFrameProcW ! 3792: #else ! 3793: #define DefFrameProc DefFrameProcA ! 3794: #endif // !UNICODE ! 3795: LONG APIENTRY CRITICAL XXX DefMDIChildProcA(IN HWND hWnd, IN UINT wMsg, IN DWORD wParam, IN LONG lParam); ! 3796: LONG APIENTRY CRITICAL XXX DefMDIChildProcW(IN HWND hWnd, IN UINT wMsg, IN DWORD wParam, IN LONG lParam); ! 3797: #ifdef UNICODE ! 3798: #define DefMDIChildProc DefMDIChildProcW ! 3799: #else ! 3800: #define DefMDIChildProc DefMDIChildProcA ! 3801: #endif // !UNICODE ! 3802: ! 3803: #ifndef NOMSG ! 3804: BOOL APIENTRY CRITICAL XXX TranslateMDISysAccel(IN HWND hWndClient, IN LPMSG lpMsg); ! 3805: #endif ! 3806: ! 3807: UINT APIENTRY CRITICAL XXX ArrangeIconicWindows(IN HWND hWnd); ! 3808: ! 3809: #endif /* NOMDI */ ! 3810: ! 3811: #endif /* NOUSER */ ! 3812: ! 3813: #ifndef NOHELP ! 3814: ! 3815: /* Help engine section. */ ! 3816: ! 3817: typedef DWORD HELPPOLY; ! 3818: typedef struct tagMULTIKEYHELP { ! 3819: DWORD mkSize; ! 3820: BYTE mkKeylist; ! 3821: BYTE szKeyphrase[1]; ! 3822: } MULTIKEYHELP; ! 3823: ! 3824: // ! 3825: // Commands to pass WinHelp() ! 3826: // ! 3827: ! 3828: #define HELP_CONTEXT 0x0001L /* Display topic in ulTopic */ ! 3829: #define HELP_QUIT 0x0002L /* Terminate help */ ! 3830: #define HELP_INDEX 0x0003L /* Display index */ ! 3831: #define HELP_HELPONHELP 0x0004L /* Display help on using help */ ! 3832: #define HELP_SETINDEX 0x0005L /* Set the current Index for multi index help */ ! 3833: #define HELP_KEY 0x0101L /* Display topic for keyword in offabData */ ! 3834: #define HELP_MULTIKEY 0x0201L ! 3835: ! 3836: BOOL ! 3837: APIENTRY CRITICAL XXX ! 3838: WinHelpA( ! 3839: IN HWND hwndMain, ! 3840: IN LPSTR lpszHelp, ! 3841: IN DWORD dwCommand, ! 3842: IN HELPPOLY dwData ! 3843: ); ! 3844: BOOL ! 3845: APIENTRY CRITICAL XXX ! 3846: WinHelpW( ! 3847: IN HWND hwndMain, ! 3848: IN LPWSTR lpszHelp, ! 3849: IN DWORD dwCommand, ! 3850: IN HELPPOLY dwData ! 3851: ); ! 3852: #ifdef UNICODE ! 3853: #define WinHelp WinHelpW ! 3854: #else ! 3855: #define WinHelp WinHelpA ! 3856: #endif // !UNICODE ! 3857: ! 3858: #endif /* NOHELP */ ! 3859: ! 3860: #ifndef NOPROFILER ! 3861: ! 3862: /* function declarations for profiler routines contained in Windows libraries */ ! 3863: int APIENTRY ProfInsChk(void); ! 3864: void APIENTRY ProfSetup(int,int); ! 3865: void APIENTRY ProfSampRate(int,int); ! 3866: void APIENTRY ProfStart(void); ! 3867: void APIENTRY ProfStop(void); ! 3868: void APIENTRY ProfClear(void); ! 3869: void APIENTRY ProfFlush(void); ! 3870: void APIENTRY ProfFinish(void); ! 3871: ! 3872: #endif /* NOPROFILER */ ! 3873: ! 3874: #ifndef NOSYSPARAMSINFO ! 3875: /* Parameter for SystemParametersInfo() */ ! 3876: ! 3877: #define SPI_GETBEEP 1 ! 3878: #define SPI_SETBEEP 2 ! 3879: #define SPI_GETMOUSE 3 ! 3880: #define SPI_SETMOUSE 4 ! 3881: #define SPI_GETBORDER 5 ! 3882: #define SPI_SETBORDER 6 ! 3883: #define SPI_TIMEOUTS 7 ! 3884: #define SPI_KANJIMENU 8 /*; Internal */ ! 3885: #define SPI_GETKEYBOARDSPEED 10 ! 3886: #define SPI_SETKEYBOARDSPEED 11 ! 3887: #define SPI_LANGDRIVER 12 ! 3888: #define SPI_ICONHORIZONTALSPACING 13 ! 3889: #define SPI_GETSCREENSAVETIMEOUT 14 ! 3890: #define SPI_SETSCREENSAVETIMEOUT 15 ! 3891: #define SPI_GETSCREENSAVEACTIVE 16 ! 3892: #define SPI_SETSCREENSAVEACTIVE 17 ! 3893: #define SPI_GETGRIDGRANULARITY 18 ! 3894: #define SPI_SETGRIDGRANULARITY 19 ! 3895: #define SPI_SETDESKWALLPAPER 20 ! 3896: #define SPI_SETDESKPATTERN 21 ! 3897: #define SPI_GETKEYBOARDDELAY 22 ! 3898: #define SPI_SETKEYBOARDDELAY 23 ! 3899: #define SPI_ICONVERTICALSPACING 24 ! 3900: #define SPI_GETICONTITLEWRAP 25 ! 3901: #define SPI_SETICONTITLEWRAP 26 ! 3902: #define SPI_GETMENUDROPALIGNMENT 27 ! 3903: #define SPI_SETMENUDROPALIGNMENT 28 ! 3904: #define SPI_SETDOUBLECLKWIDTH 29 ! 3905: #define SPI_SETDOUBLECLKHEIGHT 30 ! 3906: #define SPI_GETICONTITLELOGFONT 31 ! 3907: #define SPI_SETDOUBLECLICKTIME 32 ! 3908: #define SPI_SETMOUSEBUTTONSWAP 33 ! 3909: ! 3910: ! 3911: BOOL CRITICAL XXX SystemParametersInfo(UINT, UINT, LONG, UINT); ! 3912: ! 3913: /* Flags */ ! 3914: #define SPIF_UPDATEINIFILE 0x0001 ! 3915: #define SPIF_SENDWININICHANGE 0x0002 ! 3916: ! 3917: #endif /* NOSYSPARAMSINFO */ ! 3918: ! 3919: #endif // _WINUSER_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.