|
|
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 HANDLE HDWP; ! 22: typedef PVOID LPMENUTEMPLATEA; ! 23: typedef PVOID LPMENUTEMPLATEW; ! 24: #ifdef UNICODE ! 25: #define LPMENUTEMPLATE LPMENUTEMPLATEW ! 26: #else ! 27: #define LPMENUTEMPLATE LPMENUTEMPLATEA ! 28: #endif // UNICODE ! 29: ! 30: typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM); ! 31: #ifdef STRICT ! 32: typedef BOOL (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM); ! 33: typedef VOID (CALLBACK* TIMERPROC)(HWND, UINT, UINT, DWORD); ! 34: typedef BOOL (CALLBACK* GRAYSTRINGPROC)(HDC, LPARAM, int); ! 35: typedef BOOL (CALLBACK* PROPENUMPROC)(HWND, LPCSTR, HANDLE); ! 36: typedef BOOL (CALLBACK* PROPENUMPROCEX)(HWND, LPTSTR, HANDLE, DWORD); ! 37: typedef BOOL (CALLBACK* WNDENUMPROC)(HWND, LPARAM); ! 38: typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam); ! 39: typedef int (CALLBACK* EDITWORDBREAKPROC)(LPSTR lpch, int ichCurrent, int cch, int code); ! 40: #else ! 41: typedef FARPROC DLGPROC; ! 42: typedef FARPROC TIMERPROC; ! 43: typedef FARPROC GRAYSTRINGPROC; ! 44: typedef FARPROC PROPENUMPROC; ! 45: typedef FARPROC WNDENUMPROC; ! 46: typedef FARPROC HOOKPROC; ! 47: typedef FARPROC EDITWORDBREAKPROC; ! 48: #endif ! 49: ! 50: #define MAKEINTRESOURCE(i) (LPTSTR)((DWORD)((WORD)(i))) ! 51: ! 52: #ifndef NORESOURCE ! 53: ! 54: /* Predefined Resource Types */ ! 55: #define RT_CURSOR MAKEINTRESOURCE(1) ! 56: #define RT_BITMAP MAKEINTRESOURCE(2) ! 57: #define RT_ICON MAKEINTRESOURCE(3) ! 58: #define RT_MENU MAKEINTRESOURCE(4) ! 59: #define RT_DIALOG MAKEINTRESOURCE(5) ! 60: #define RT_STRING MAKEINTRESOURCE(6) ! 61: #define RT_FONTDIR MAKEINTRESOURCE(7) ! 62: #define RT_FONT MAKEINTRESOURCE(8) ! 63: #define RT_ACCELERATOR MAKEINTRESOURCE(9) ! 64: #define RT_RCDATA MAKEINTRESOURCE(10) ! 65: #define RT_MESSAGETABLE MAKEINTRESOURCE(11) ! 66: ! 67: #define DIFFERENCE 11 ! 68: ! 69: /* NOTE: if any new resource types are introduced above this point, then the ! 70: ** value of DIFFERENCE must be changed. ! 71: ** (RT_GROUP_CURSOR - RT_CURSOR) must always be equal to DIFFERENCE ! 72: ** (RT_GROUP_ICON - RT_ICON) must always be equal to DIFFERENCE ! 73: */ ! 74: #define RT_GROUP_CURSOR MAKEINTRESOURCE((DWORD)RT_CURSOR + DIFFERENCE) ! 75: /* The value RT_BITMAP+DIFFERENCE (13) is intentionally unused */ ! 76: #define RT_GROUP_ICON MAKEINTRESOURCE((DWORD)RT_ICON + DIFFERENCE) ! 77: /* The value 15 is unused/obsolete */ ! 78: #define RT_VERSION MAKEINTRESOURCE(16) ! 79: #define RT_DLGINCLUDE MAKEINTRESOURCE(17) ! 80: ! 81: #endif /* NORESOURCE */ ! 82: ! 83: int WINAPI wvsprintfA(LPSTR, LPCSTR, CONST VOID *); ! 84: int WINAPI wvsprintfW(LPWSTR, LPCSTR, CONST VOID *); ! 85: #ifdef UNICODE ! 86: #define wvsprintf wvsprintfW ! 87: #else ! 88: #define wvsprintf wvsprintfA ! 89: #endif // !UNICODE ! 90: ! 91: int WINAPI wsprintfA(LPSTR, LPCSTR, ...); ! 92: int WINAPI wsprintfW(LPWSTR, LPCSTR, ...); ! 93: #ifdef UNICODE ! 94: #define wsprintf wsprintfW ! 95: #else ! 96: #define wsprintf wsprintfA ! 97: #endif // !UNICODE ! 98: ! 99: #ifndef NOSCROLL ! 100: ! 101: /* Scroll Bar Constants */ ! 102: #define SB_HORZ 0 ! 103: #define SB_VERT 1 ! 104: #define SB_CTL 2 ! 105: #define SB_BOTH 3 ! 106: #define SB_MAX 3 ! 107: ! 108: /* Scroll Bar Commands */ ! 109: #define SB_LINEUP 0 ! 110: #define SB_LINEDOWN 1 ! 111: #define SB_PAGEUP 2 ! 112: #define SB_PAGEDOWN 3 ! 113: #define SB_THUMBPOSITION 4 ! 114: #define SB_THUMBTRACK 5 ! 115: #define SB_TOP 6 ! 116: #define SB_BOTTOM 7 ! 117: #define SB_ENDSCROLL 8 ! 118: #define SB_CMD_MAX 8 ! 119: ! 120: #endif /* NOSCROLL */ ! 121: ! 122: #ifndef NOSHOWWINDOW ! 123: ! 124: /* ShowWindow() Commands */ ! 125: #define SW_HIDE 0 ! 126: #define SW_SHOWNORMAL 1 ! 127: #define SW_NORMAL 1 ! 128: #define SW_SHOWMINIMIZED 2 ! 129: #define SW_SHOWMAXIMIZED 3 ! 130: #define SW_MAXIMIZE 3 ! 131: #define SW_SHOWNOACTIVATE 4 ! 132: #define SW_SHOW 5 ! 133: #define SW_MINIMIZE 6 ! 134: #define SW_SHOWMINNOACTIVE 7 ! 135: #define SW_SHOWNA 8 ! 136: #define SW_RESTORE 9 ! 137: #define SW_SHOWDEFAULT 10 ! 138: #define SW_MAX 10 ! 139: ! 140: /* Old ShowWindow() Commands */ ! 141: #define HIDE_WINDOW 0 ! 142: #define SHOW_OPENWINDOW 1 ! 143: #define SHOW_ICONWINDOW 2 ! 144: #define SHOW_FULLSCREEN 3 ! 145: #define SHOW_OPENNOACTIVATE 4 ! 146: ! 147: /* Identifiers for the WM_SHOWWINDOW message */ ! 148: #define SW_PARENTCLOSING 1 ! 149: #define SW_OTHERZOOM 2 ! 150: #define SW_PARENTOPENING 3 ! 151: #define SW_OTHERUNZOOM 4 ! 152: ! 153: #endif /* NOSHOWWINDOW */ ! 154: ! 155: #ifndef NOVIRTUALKEYCODES ! 156: ! 157: /* Virtual Keys, Standard Set */ ! 158: #define VK_LBUTTON 0x01 ! 159: #define VK_RBUTTON 0x02 ! 160: #define VK_CANCEL 0x03 ! 161: #define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */ ! 162: ! 163: #define VK_BACK 0x08 ! 164: #define VK_TAB 0x09 ! 165: ! 166: #define VK_CLEAR 0x0C ! 167: #define VK_RETURN 0x0D ! 168: ! 169: #define VK_SHIFT 0x10 ! 170: #define VK_CONTROL 0x11 ! 171: #define VK_MENU 0x12 ! 172: #define VK_PAUSE 0x13 ! 173: #define VK_CAPITAL 0x14 ! 174: ! 175: #define VK_ESCAPE 0x1B ! 176: ! 177: #define VK_SPACE 0x20 ! 178: #define VK_PRIOR 0x21 ! 179: #define VK_NEXT 0x22 ! 180: #define VK_END 0x23 ! 181: #define VK_HOME 0x24 ! 182: #define VK_LEFT 0x25 ! 183: #define VK_UP 0x26 ! 184: #define VK_RIGHT 0x27 ! 185: #define VK_DOWN 0x28 ! 186: #define VK_SELECT 0x29 ! 187: #define VK_PRINT 0x2A ! 188: #define VK_EXECUTE 0x2B ! 189: #define VK_SNAPSHOT 0x2C ! 190: /* #define VK_COPY 0x2C not used by keyboards. */ ! 191: #define VK_INSERT 0x2D ! 192: #define VK_DELETE 0x2E ! 193: #define VK_HELP 0x2F ! 194: ! 195: /* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */ ! 196: /* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */ ! 197: ! 198: #define VK_NUMPAD0 0x60 ! 199: #define VK_NUMPAD1 0x61 ! 200: #define VK_NUMPAD2 0x62 ! 201: #define VK_NUMPAD3 0x63 ! 202: #define VK_NUMPAD4 0x64 ! 203: #define VK_NUMPAD5 0x65 ! 204: #define VK_NUMPAD6 0x66 ! 205: #define VK_NUMPAD7 0x67 ! 206: #define VK_NUMPAD8 0x68 ! 207: #define VK_NUMPAD9 0x69 ! 208: #define VK_MULTIPLY 0x6A ! 209: #define VK_ADD 0x6B ! 210: #define VK_SEPARATOR 0x6C ! 211: #define VK_SUBTRACT 0x6D ! 212: #define VK_DECIMAL 0x6E ! 213: #define VK_DIVIDE 0x6F ! 214: #define VK_F1 0x70 ! 215: #define VK_F2 0x71 ! 216: #define VK_F3 0x72 ! 217: #define VK_F4 0x73 ! 218: #define VK_F5 0x74 ! 219: #define VK_F6 0x75 ! 220: #define VK_F7 0x76 ! 221: #define VK_F8 0x77 ! 222: #define VK_F9 0x78 ! 223: #define VK_F10 0x79 ! 224: #define VK_F11 0x7A ! 225: #define VK_F12 0x7B ! 226: #define VK_F13 0x7C ! 227: #define VK_F14 0x7D ! 228: #define VK_F15 0x7E ! 229: #define VK_F16 0x7F ! 230: #define VK_F17 0x80 ! 231: #define VK_F18 0x81 ! 232: #define VK_F19 0x82 ! 233: #define VK_F20 0x83 ! 234: #define VK_F21 0x84 ! 235: #define VK_F22 0x85 ! 236: #define VK_F23 0x86 ! 237: #define VK_F24 0x87 ! 238: ! 239: #define VK_NUMLOCK 0x90 ! 240: #define VK_SCROLL 0x91 ! 241: ! 242: /* ! 243: * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys. ! 244: * Used only as parameters to GetAsyncKeyState() and GetKeyState(). ! 245: * No other API or message will distinguish left and right keys in this way. ! 246: */ ! 247: #define VK_LSHIFT 0xA0 ! 248: #define VK_RSHIFT 0xA1 ! 249: #define VK_LCONTROL 0xA2 ! 250: #define VK_RCONTROL 0xA3 ! 251: #define VK_LMENU 0xA4 ! 252: #define VK_RMENU 0xA5 ! 253: ! 254: #define VK_ATTN 0xF6 ! 255: #define VK_CRSEL 0xF7 ! 256: #define VK_EXSEL 0xF8 ! 257: #define VK_EREOF 0xF9 ! 258: #define VK_PLAY 0xFA ! 259: #define VK_ZOOM 0xFB ! 260: #define VK_NONAME 0xFC ! 261: #define VK_PA1 0xFD ! 262: #define VK_OEM_CLEAR 0xFE ! 263: ! 264: #endif /* NOVIRTUALKEYCODES */ ! 265: ! 266: #ifndef NOWH ! 267: ! 268: /* SetWindowsHook() codes */ ! 269: #define WH_MIN (-1) ! 270: #define WH_MSGFILTER (-1) ! 271: #define WH_JOURNALRECORD 0 ! 272: #define WH_JOURNALPLAYBACK 1 ! 273: #define WH_KEYBOARD 2 ! 274: #define WH_GETMESSAGE 3 ! 275: #define WH_CALLWNDPROC 4 ! 276: #define WH_CBT 5 ! 277: #define WH_SYSMSGFILTER 6 ! 278: #define WH_MOUSE 7 ! 279: #define WH_HARDWARE 8 ! 280: #define WH_DEBUG 9 ! 281: #define WH_SHELL 10 ! 282: #define WH_MAX 10 ! 283: ! 284: ! 285: /* Obsolete hook codes (NO LONGER SUPPORTED) */ ! 286: #define HC_GETLPLPFN (-3) ! 287: #define HC_LPLPFNNEXT (-2) ! 288: #define HC_LPFNNEXT (-1) ! 289: ! 290: /* Hook Codes */ ! 291: #define HC_ACTION 0 ! 292: #define HC_GETNEXT 1 ! 293: #define HC_SKIP 2 ! 294: #define HC_NOREMOVE 3 ! 295: #define HC_NOREM HC_NOREMOVE ! 296: #define HC_SYSMODALON 4 ! 297: #define HC_SYSMODALOFF 5 ! 298: ! 299: /* CBT Hook Codes */ ! 300: #define HCBT_MOVESIZE 0 ! 301: #define HCBT_MINMAX 1 ! 302: #define HCBT_QS 2 ! 303: #define HCBT_CREATEWND 3 ! 304: #define HCBT_DESTROYWND 4 ! 305: #define HCBT_ACTIVATE 5 ! 306: #define HCBT_CLICKSKIPPED 6 ! 307: #define HCBT_KEYSKIPPED 7 ! 308: #define HCBT_SYSCOMMAND 8 ! 309: #define HCBT_SETFOCUS 9 ! 310: ! 311: /* ! 312: * HCBT_CREATEWND parameters pointed to by lParam ! 313: */ ! 314: typedef struct tagCBT_CREATEWNDA ! 315: { ! 316: struct tagCREATESTRUCTA *lpcs; ! 317: HWND hwndInsertAfter; ! 318: } CBT_CREATEWNDA, *LPCBT_CREATEWNDA; ! 319: /* ! 320: * HCBT_CREATEWND parameters pointed to by lParam ! 321: */ ! 322: typedef struct tagCBT_CREATEWNDW ! 323: { ! 324: struct tagCREATESTRUCTW *lpcs; ! 325: HWND hwndInsertAfter; ! 326: } CBT_CREATEWNDW, *LPCBT_CREATEWNDW; ! 327: #ifdef UNICODE ! 328: #define CBT_CREATEWND CBT_CREATEWNDW ! 329: #define LPCBT_CREATEWND LPCBT_CREATEWNDW ! 330: #else ! 331: #define CBT_CREATEWND CBT_CREATEWNDA ! 332: #define LPCBT_CREATEWND LPCBT_CREATEWNDA ! 333: #endif // UNICODE ! 334: ! 335: /* ! 336: * HCBT_ACTIVATE structure pointed to by lParam ! 337: */ ! 338: typedef struct tagCBTACTIVATESTRUCT ! 339: { ! 340: BOOL fMouse; ! 341: HWND hWndActive; ! 342: } CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT; ! 343: ! 344: /* WH_MSGFILTER Filter Proc Codes */ ! 345: #define MSGF_DIALOGBOX 0 ! 346: #define MSGF_MESSAGEBOX 1 ! 347: #define MSGF_MENU 2 ! 348: #define MSGF_MOVE 3 ! 349: #define MSGF_SIZE 4 ! 350: #define MSGF_SCROLLBAR 5 ! 351: #define MSGF_NEXTWINDOW 6 ! 352: #define MSGF_MAINLOOP 8 ! 353: #define MSGF_MAX 8 ! 354: #define MSGF_USER 4096 ! 355: ! 356: /* Shell support */ ! 357: #define HSHELL_WINDOWCREATED 1 ! 358: #define HSHELL_WINDOWDESTROYED 2 ! 359: #define HSHELL_ACTIVATESHELLWINDOW 3 ! 360: ! 361: /* Window Manager Hook Codes */ ! 362: #define WC_INIT 1 ! 363: #define WC_SWP 2 ! 364: #define WC_DEFWINDOWPROC 3 ! 365: #define WC_MINMAX 4 ! 366: #define WC_MOVE 5 ! 367: #define WC_SIZE 6 ! 368: #define WC_DRAWCAPTION 7 ! 369: ! 370: /* Message Structure used in Journaling */ ! 371: typedef struct tagEVENTMSG { ! 372: UINT message; ! 373: UINT paramL; ! 374: UINT paramH; ! 375: DWORD time; ! 376: HWND hwnd; ! 377: } EVENTMSG, *PEVENTMSGMSG, NEAR *NPEVENTMSGMSG, FAR *LPEVENTMSGMSG; ! 378: ! 379: typedef struct tagEVENTMSG *PEVENTMSG, NEAR *NPEVENTMSG, FAR *LPEVENTMSG; ! 380: ! 381: /* Message structure used by WH_CALLWNDPROC */ ! 382: typedef struct tagCWPSTRUCT { ! 383: LPARAM lParam; ! 384: WPARAM wParam; ! 385: DWORD message; ! 386: HWND hwnd; ! 387: } CWPSTRUCT, *PCWPSTRUCT, NEAR *NPCWPSTRUCT, FAR *LPCWPSTRUCT; ! 388: ! 389: /* Structure used by WH_DEBUG */ ! 390: typedef struct tagDEBUGHOOKINFO ! 391: { ! 392: DWORD idThread; ! 393: LPARAM reserved; ! 394: LPARAM lParam; ! 395: WPARAM wParam; ! 396: int code; ! 397: } DEBUGHOOKINFO, *PDEBUGHOOKINFO, NEAR *NPDEBUGHOOKINFO, FAR* LPDEBUGHOOKINFO; ! 398: ! 399: typedef struct tagMOUSEHOOKSTRUCT { ! 400: POINT pt; ! 401: HWND hwnd; ! 402: UINT wHitTestCode; ! 403: DWORD dwExtraInfo; ! 404: } MOUSEHOOKSTRUCT, FAR *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT; ! 405: #endif /* NOWH */ ! 406: ! 407: /* ! 408: * Keyboard Layout API ! 409: */ ! 410: #define HKL_PREV 0 ! 411: #define HKL_NEXT 1 ! 412: ! 413: #define KLF_ACTIVATE 0x1 ! 414: #define KLF_SUBSTITUTE_OK 0x2 ! 415: #define KLF_UNLOADPREVIOUS 0x4 ! 416: #define KLF_REORDER 0x8 ! 417: ! 418: /* ! 419: * Size of KeyboardLayoutName (number of characters), including nul terminator ! 420: */ ! 421: #define KL_NAMELENGTH 9 ! 422: ! 423: HKL LoadKeyboardLayoutA(LPCSTR pwszKLID, UINT Flags); ! 424: HKL LoadKeyboardLayoutW(LPCWSTR pwszKLID, UINT Flags); ! 425: #ifdef UNICODE ! 426: #define LoadKeyboardLayout LoadKeyboardLayoutW ! 427: #else ! 428: #define LoadKeyboardLayout LoadKeyboardLayoutA ! 429: #endif // !UNICODE ! 430: BOOL ActivateKeyboardLayout(HKL hkl, UINT Flags); ! 431: BOOL UnloadKeyboardLayout(HKL hkl); ! 432: BOOL GetKeyboardLayoutNameA(LPSTR pwszKLID); ! 433: BOOL GetKeyboardLayoutNameW(LPWSTR pwszKLID); ! 434: #ifdef UNICODE ! 435: #define GetKeyboardLayoutName GetKeyboardLayoutNameW ! 436: #else ! 437: #define GetKeyboardLayoutName GetKeyboardLayoutNameA ! 438: #endif // !UNICODE ! 439: ! 440: #ifndef NODESKTOP ! 441: /* ! 442: * Desktop-specific access flags ! 443: */ ! 444: #define DESKTOP_ENUMWINDOWS 0x0001L ! 445: #define DESKTOP_CREATEWINDOW 0x0002L ! 446: #define DESKTOP_CREATEMENU 0x0004L ! 447: #define DESKTOP_HOOKCONTROL 0x0008L ! 448: #define DESKTOP_JOURNALRECORD 0x0010L ! 449: #define DESKTOP_JOURNALPLAYBACK 0x0020L ! 450: #define DESKTOP_ENUMERATE 0x0040L ! 451: ! 452: HDESK ! 453: WINAPI ! 454: GetThreadDesktop( ! 455: DWORD); ! 456: ! 457: #endif /* NODESKTOP */ ! 458: ! 459: #ifndef NOWINDOWSTATION ! 460: /* ! 461: * Windowstation-specific access flags ! 462: */ ! 463: #define WINSTA_ENUMDESKTOPS 0x0001L ! 464: #define WINSTA_READATTRIBUTES 0x0002L ! 465: #define WINSTA_ACCESSCLIPBOARD 0x0004L ! 466: #define WINSTA_CREATEDESKTOP 0x0008L ! 467: #define WINSTA_WRITEATTRIBUTES 0x0010L ! 468: #define WINSTA_ACCESSGLOBALATOMS 0x0020L ! 469: #define WINSTA_EXITWINDOWS 0x0040L ! 470: #define WINSTA_ENUMERATE 0x0100L ! 471: #define WINSTA_READSCREEN 0x0200L ! 472: ! 473: HWINSTA ! 474: WINAPI ! 475: GetProcessWindowStation( ! 476: VOID); ! 477: #endif /* NOWINDOWSTATION */ ! 478: ! 479: #ifndef NOSECURITY ! 480: /* ! 481: * window-specific access flags ! 482: */ ! 483: #define WIN_ACCESSWINDOW 0x0001L ! 484: #define WIN_ENUMERATE 0x0002L ! 485: ! 486: /* ! 487: * menu-specific access flags ! 488: */ ! 489: #define MENU_ACCESSMENU 0x0001L ! 490: ! 491: BOOL ! 492: WINAPI ! 493: SetUserObjectSecurity( ! 494: HANDLE, ! 495: PSECURITY_INFORMATION, ! 496: PSECURITY_DESCRIPTOR); ! 497: ! 498: BOOL ! 499: WINAPI ! 500: GetUserObjectSecurity( ! 501: HANDLE, ! 502: PSECURITY_INFORMATION, ! 503: PSECURITY_DESCRIPTOR, ! 504: DWORD, ! 505: LPDWORD); ! 506: ! 507: #endif /* NOSECURITY */ ! 508: ! 509: typedef struct tagWNDCLASSA { ! 510: UINT style; ! 511: WNDPROC lpfnWndProc; ! 512: int cbClsExtra; ! 513: int cbWndExtra; ! 514: HINSTANCE hInstance; ! 515: HICON hIcon; ! 516: HCURSOR hCursor; ! 517: HBRUSH hbrBackground; ! 518: LPCSTR lpszMenuName; ! 519: LPCSTR lpszClassName; ! 520: } WNDCLASSA, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA; ! 521: typedef struct tagWNDCLASSW { ! 522: UINT style; ! 523: WNDPROC lpfnWndProc; ! 524: int cbClsExtra; ! 525: int cbWndExtra; ! 526: HINSTANCE hInstance; ! 527: HICON hIcon; ! 528: HCURSOR hCursor; ! 529: HBRUSH hbrBackground; ! 530: LPCWSTR lpszMenuName; ! 531: LPCWSTR lpszClassName; ! 532: } WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW; ! 533: #ifdef UNICODE ! 534: #define WNDCLASS WNDCLASSW ! 535: #define PWNDCLASS PWNDCLASSW ! 536: #define NPWNDCLASS NPWNDCLASSW ! 537: #define LPWNDCLASS LPWNDCLASSW ! 538: #else ! 539: #define WNDCLASS WNDCLASSA ! 540: #define PWNDCLASS PWNDCLASSA ! 541: #define NPWNDCLASS NPWNDCLASSA ! 542: #define LPWNDCLASS LPWNDCLASSA ! 543: #endif // UNICODE ! 544: ! 545: #ifndef NOMSG ! 546: ! 547: /* Message structure */ ! 548: typedef struct tagMSG { ! 549: HWND hwnd; ! 550: UINT message; ! 551: WPARAM wParam; ! 552: LPARAM lParam; ! 553: DWORD time; ! 554: POINT pt; ! 555: } MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG; ! 556: ! 557: #define POINTSTOPOINT(pt,pts) {(pt).x = (SHORT)LOWORD(pts); \ ! 558: (pt).y = (SHORT)HIWORD(pts);} ! 559: #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y))) ! 560: ! 561: ! 562: #endif /* NOMSG */ ! 563: ! 564: #ifndef NOWINOFFSETS ! 565: ! 566: /* Window field offsets for GetWindowLong() */ ! 567: #define GWL_WNDPROC (-4) ! 568: #define GWL_HINSTANCE (-6) ! 569: #define GWL_HWNDPARENT (-8) ! 570: #define GWL_STYLE (-16) ! 571: #define GWL_EXSTYLE (-20) ! 572: #define GWL_USERDATA (-21) ! 573: #define GWL_ID (-12) ! 574: ! 575: /* Class field offsets for GetClassLong() */ ! 576: #define GCL_MENUNAME (-8) ! 577: #define GCL_HBRBACKGROUND (-10) ! 578: #define GCL_HCURSOR (-12) ! 579: #define GCL_HICON (-14) ! 580: #define GCL_HMODULE (-16) ! 581: #define GCL_CBWNDEXTRA (-18) ! 582: #define GCL_CBCLSEXTRA (-20) ! 583: #define GCL_WNDPROC (-24) ! 584: #define GCL_STYLE (-26) ! 585: //!!!define GCW_ATOM (-32) ! 586: ! 587: #endif /* NOWINOFFSETS */ ! 588: ! 589: #ifndef NOWINMESSAGES ! 590: ! 591: /* Window Messages */ ! 592: #define WM_NULL 0x0000 ! 593: #define WM_CREATE 0x0001 ! 594: #define WM_DESTROY 0x0002 ! 595: #define WM_MOVE 0x0003 ! 596: #define WM_SIZE 0x0005 ! 597: #define WM_ACTIVATE 0x0006 ! 598: #define WM_SETFOCUS 0x0007 ! 599: #define WM_KILLFOCUS 0x0008 ! 600: #define WM_ENABLE 0x000A ! 601: #define WM_SETREDRAW 0x000B ! 602: #define WM_SETTEXT 0x000C ! 603: #define WM_GETTEXT 0x000D ! 604: #define WM_GETTEXTLENGTH 0x000E ! 605: #define WM_PAINT 0x000F ! 606: #define WM_CLOSE 0x0010 ! 607: #define WM_QUERYENDSESSION 0x0011 ! 608: #define WM_QUIT 0x0012 ! 609: #define WM_QUERYOPEN 0x0013 ! 610: #define WM_ERASEBKGND 0x0014 ! 611: #define WM_SYSCOLORCHANGE 0x0015 ! 612: #define WM_ENDSESSION 0x0016 ! 613: #define WM_SHOWWINDOW 0x0018 ! 614: #define WM_WININICHANGE 0x001A ! 615: #define WM_DEVMODECHANGE 0x001B ! 616: #define WM_ACTIVATEAPP 0x001C ! 617: #define WM_FONTCHANGE 0x001D ! 618: #define WM_TIMECHANGE 0x001E ! 619: #define WM_CANCELMODE 0x001F ! 620: #define WM_SETCURSOR 0x0020 ! 621: #define WM_MOUSEACTIVATE 0x0021 ! 622: #define WM_CHILDACTIVATE 0x0022 ! 623: #define WM_QUEUESYNC 0x0023 ! 624: ! 625: /* ! 626: * Struct pointed to by WM_GETMINMAXINFO lParam ! 627: */ ! 628: typedef struct tagMINMAXINFO { ! 629: POINT ptReserved; ! 630: POINT ptMaxSize; ! 631: POINT ptMaxPosition; ! 632: POINT ptMinTrackSize; ! 633: POINT ptMaxTrackSize; ! 634: } MINMAXINFO, *PMINMAXINFO; ! 635: #define WM_GETMINMAXINFO 0x0024 ! 636: ! 637: ! 638: #define WM_PAINTICON 0x0026 ! 639: #define WM_ICONERASEBKGND 0x0027 ! 640: #define WM_NEXTDLGCTL 0x0028 ! 641: #define WM_SPOOLERSTATUS 0x002A ! 642: #define WM_DRAWITEM 0x002B ! 643: #define WM_MEASUREITEM 0x002C ! 644: #define WM_DELETEITEM 0x002D ! 645: #define WM_VKEYTOITEM 0x002E ! 646: #define WM_CHARTOITEM 0x002F ! 647: #define WM_SETFONT 0x0030 ! 648: #define WM_GETFONT 0x0031 ! 649: #define WM_SETHOTKEY 0x0032 ! 650: #define WM_GETHOTKEY 0x0033 ! 651: #define WM_QUERYDRAGICON 0x0037 ! 652: ! 653: #define WM_COMPAREITEM 0x0039 ! 654: #define WM_FULLSCREEN 0x003A ! 655: ! 656: #define WM_COMPACTING 0x0041 ! 657: #define WM_OTHERWINDOWCREATED 0x0042 ! 658: #define WM_OTHERWINDOWDESTROYED 0x0043 ! 659: #define WM_COMMNOTIFY 0x0044 ! 660: #define WM_HOTKEYEVENT 0x0045 ! 661: #define WM_WINDOWPOSCHANGING 0x0046 ! 662: #define WM_WINDOWPOSCHANGED 0x0047 ! 663: #define WM_POWER 0x0048 ! 664: ! 665: #define WM_NCCREATE 0x0081 ! 666: #define WM_NCDESTROY 0x0082 ! 667: #define WM_NCCALCSIZE 0x0083 ! 668: #define WM_NCHITTEST 0x0084 ! 669: #define WM_NCPAINT 0x0085 ! 670: #define WM_NCACTIVATE 0x0086 ! 671: #define WM_GETDLGCODE 0x0087 ! 672: #define WM_NCMOUSEMOVE 0x00A0 ! 673: #define WM_NCLBUTTONDOWN 0x00A1 ! 674: #define WM_NCLBUTTONUP 0x00A2 ! 675: #define WM_NCLBUTTONDBLCLK 0x00A3 ! 676: #define WM_NCRBUTTONDOWN 0x00A4 ! 677: #define WM_NCRBUTTONUP 0x00A5 ! 678: #define WM_NCRBUTTONDBLCLK 0x00A6 ! 679: #define WM_NCMBUTTONDOWN 0x00A7 ! 680: #define WM_NCMBUTTONUP 0x00A8 ! 681: #define WM_NCMBUTTONDBLCLK 0x00A9 ! 682: ! 683: #define WM_KEYFIRST 0x0100 ! 684: #define WM_KEYDOWN 0x0100 ! 685: #define WM_KEYUP 0x0101 ! 686: #define WM_CHAR 0x0102 ! 687: #define WM_DEADCHAR 0x0103 ! 688: #define WM_SYSKEYDOWN 0x0104 ! 689: #define WM_SYSKEYUP 0x0105 ! 690: #define WM_SYSCHAR 0x0106 ! 691: #define WM_SYSDEADCHAR 0x0107 ! 692: #define WM_KEYLAST 0x0108 ! 693: ! 694: #define WM_INITDIALOG 0x0110 ! 695: #define WM_COMMAND 0x0111 ! 696: #define WM_SYSCOMMAND 0x0112 ! 697: #define WM_TIMER 0x0113 ! 698: #define WM_HSCROLL 0x0114 ! 699: #define WM_VSCROLL 0x0115 ! 700: #define WM_INITMENU 0x0116 ! 701: #define WM_INITMENUPOPUP 0x0117 ! 702: #define WM_MENUSELECT 0x011F ! 703: #define WM_MENUCHAR 0x0120 ! 704: #define WM_ENTERIDLE 0x0121 ! 705: ! 706: #define WM_CTLCOLORMSGBOX 0x0132 ! 707: #define WM_CTLCOLOREDIT 0x0133 ! 708: #define WM_CTLCOLORLISTBOX 0x0134 ! 709: #define WM_CTLCOLORBTN 0x0135 ! 710: #define WM_CTLCOLORDLG 0x0136 ! 711: #define WM_CTLCOLORSCROLLBAR 0x0137 ! 712: #define WM_CTLCOLORSTATIC 0x0138 ! 713: ! 714: #define WM_MOUSEFIRST 0x0200 ! 715: #define WM_MOUSEMOVE 0x0200 ! 716: #define WM_LBUTTONDOWN 0x0201 ! 717: #define WM_LBUTTONUP 0x0202 ! 718: #define WM_LBUTTONDBLCLK 0x0203 ! 719: #define WM_RBUTTONDOWN 0x0204 ! 720: #define WM_RBUTTONUP 0x0205 ! 721: #define WM_RBUTTONDBLCLK 0x0206 ! 722: #define WM_MBUTTONDOWN 0x0207 ! 723: #define WM_MBUTTONUP 0x0208 ! 724: #define WM_MBUTTONDBLCLK 0x0209 ! 725: #define WM_MOUSELAST 0x0209 ! 726: ! 727: #define WM_PARENTNOTIFY 0x0210 ! 728: #define WM_MDICREATE 0x0220 ! 729: #define WM_MDIDESTROY 0x0221 ! 730: #define WM_MDIACTIVATE 0x0222 ! 731: #define WM_MDIRESTORE 0x0223 ! 732: #define WM_MDINEXT 0x0224 ! 733: #define WM_MDIMAXIMIZE 0x0225 ! 734: #define WM_MDITILE 0x0226 ! 735: #define WM_MDICASCADE 0x0227 ! 736: #define WM_MDIICONARRANGE 0x0228 ! 737: #define WM_MDIGETACTIVE 0x0229 ! 738: #define WM_MDISETMENU 0x0230 ! 739: #define WM_DROPFILES 0x0233 ! 740: #define WM_MDIREFRESHMENU 0x0234 ! 741: ! 742: #define WM_CUT 0x0300 ! 743: #define WM_COPY 0x0301 ! 744: #define WM_PASTE 0x0302 ! 745: #define WM_CLEAR 0x0303 ! 746: #define WM_UNDO 0x0304 ! 747: #define WM_RENDERFORMAT 0x0305 ! 748: #define WM_RENDERALLFORMATS 0x0306 ! 749: #define WM_DESTROYCLIPBOARD 0x0307 ! 750: #define WM_DRAWCLIPBOARD 0x0308 ! 751: #define WM_PAINTCLIPBOARD 0x0309 ! 752: #define WM_VSCROLLCLIPBOARD 0x030A ! 753: #define WM_SIZECLIPBOARD 0x030B ! 754: #define WM_ASKCBFORMATNAME 0x030C ! 755: #define WM_CHANGECBCHAIN 0x030D ! 756: #define WM_HSCROLLCLIPBOARD 0x030E ! 757: #define WM_QUERYNEWPALETTE 0x030F ! 758: #define WM_PALETTEISCHANGING 0x0310 ! 759: #define WM_PALETTECHANGED 0x0311 ! 760: #define WM_HOTKEY 0x0312 ! 761: ! 762: /* PenWindows specific messages */ ! 763: #define WM_PENWINFIRST 0x0380 ! 764: #define WM_PENWINLAST 0x038F ! 765: ! 766: #define WM_MM_RESERVED_FIRST 0x03A0 ! 767: #define WM_MM_RESERVED_LAST 0x03DF ! 768: ! 769: /* NOTE: All Message Numbers below 0x0400 are RESERVED. */ ! 770: ! 771: /* Private Window Messages Start Here: */ ! 772: #define WM_USER 0x0400 ! 773: ! 774: #ifndef NONCMESSAGES ! 775: ! 776: /* WM_SYNCTASK Commands */ ! 777: #define ST_BEGINSWP 0 ! 778: #define ST_ENDSWP 1 ! 779: ! 780: /* WinWhere() Area Codes */ ! 781: #define HTERROR (-2) ! 782: #define HTTRANSPARENT (-1) ! 783: #define HTNOWHERE 0 ! 784: #define HTCLIENT 1 ! 785: #define HTCAPTION 2 ! 786: #define HTSYSMENU 3 ! 787: #define HTGROWBOX 4 ! 788: #define HTSIZE HTGROWBOX ! 789: #define HTMENU 5 ! 790: #define HTHSCROLL 6 ! 791: #define HTVSCROLL 7 ! 792: #define HTMINBUTTON 8 ! 793: #define HTMAXBUTTON 9 ! 794: #define HTLEFT 10 ! 795: #define HTRIGHT 11 ! 796: #define HTTOP 12 ! 797: #define HTTOPLEFT 13 ! 798: #define HTTOPRIGHT 14 ! 799: #define HTBOTTOM 15 ! 800: #define HTBOTTOMLEFT 16 ! 801: #define HTBOTTOMRIGHT 17 ! 802: #define HTBORDER 18 ! 803: #define HTREDUCE HTMINBUTTON ! 804: #define HTZOOM HTMAXBUTTON ! 805: #define HTSIZEFIRST HTLEFT ! 806: #define HTSIZELAST HTBOTTOMRIGHT ! 807: ! 808: #endif /* NONCMESSAGES */ ! 809: ! 810: /* WM_MOUSEACTIVATE Return Codes */ ! 811: #define MA_ACTIVATE 1 ! 812: #define MA_ACTIVATEANDEAT 2 ! 813: #define MA_NOACTIVATE 3 ! 814: #define MA_NOACTIVATEANDEAT 4 ! 815: ! 816: UINT ! 817: WINAPI ! 818: RegisterWindowMessageA( ! 819: LPCSTR lpString); ! 820: UINT ! 821: WINAPI ! 822: RegisterWindowMessageW( ! 823: LPCWSTR lpString); ! 824: #ifdef UNICODE ! 825: #define RegisterWindowMessage RegisterWindowMessageW ! 826: #else ! 827: #define RegisterWindowMessage RegisterWindowMessageA ! 828: #endif // !UNICODE ! 829: ! 830: /* WM_SIZE message wParam values */ ! 831: #define SIZE_RESTORED 0 ! 832: #define SIZE_MINIMIZED 1 ! 833: #define SIZE_MAXIMIZED 2 ! 834: #define SIZE_MAXSHOW 3 ! 835: #define SIZE_MAXHIDE 4 ! 836: ! 837: /* Obsolete constant names */ ! 838: #define SIZENORMAL SIZE_RESTORED ! 839: #define SIZEICONIC SIZE_MINIMIZED ! 840: #define SIZEFULLSCREEN SIZE_MAXIMIZED ! 841: #define SIZEZOOMSHOW SIZE_MAXSHOW ! 842: #define SIZEZOOMHIDE SIZE_MAXHIDE ! 843: ! 844: /* WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam */ ! 845: typedef struct tagWINDOWPOS { ! 846: HWND hwnd; ! 847: HWND hwndInsertAfter; ! 848: int x; ! 849: int y; ! 850: int cx; ! 851: int cy; ! 852: UINT flags; ! 853: } WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS; ! 854: ! 855: /* WM_NCCALCSIZE parameter structure */ ! 856: typedef struct tagNCCALCSIZE_PARAMS { ! 857: RECT rgrc[3]; ! 858: PWINDOWPOS lppos; ! 859: } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS; ! 860: ! 861: /* WM_NCCALCSIZE "window valid rect" return values */ ! 862: #define WVR_ALIGNTOP 0x0010 ! 863: #define WVR_ALIGNLEFT 0x0020 ! 864: #define WVR_ALIGNBOTTOM 0x0040 ! 865: #define WVR_ALIGNRIGHT 0x0080 ! 866: #define WVR_HREDRAW 0x0100 ! 867: #define WVR_VREDRAW 0x0200 ! 868: #define WVR_REDRAW (WVR_HREDRAW | WVR_VREDRAW) ! 869: #define WVR_VALIDRECTS 0x0400 ! 870: ! 871: ! 872: #ifndef NOKEYSTATES ! 873: ! 874: /* Key State Masks for Mouse Messages */ ! 875: #define MK_LBUTTON 0x0001 ! 876: #define MK_RBUTTON 0x0002 ! 877: #define MK_SHIFT 0x0004 ! 878: #define MK_CONTROL 0x0008 ! 879: #define MK_MBUTTON 0x0010 ! 880: ! 881: #endif /* NOKEYSTATES */ ! 882: ! 883: #endif /* NOWINMESSAGES */ ! 884: ! 885: #ifndef NOWINSTYLES ! 886: ! 887: /* Window Styles */ ! 888: #define WS_OVERLAPPED 0x00000000L ! 889: #define WS_POPUP 0x80000000L ! 890: #define WS_CHILD 0x40000000L ! 891: #define WS_MINIMIZE 0x20000000L ! 892: #define WS_VISIBLE 0x10000000L ! 893: #define WS_DISABLED 0x08000000L ! 894: #define WS_CLIPSIBLINGS 0x04000000L ! 895: #define WS_CLIPCHILDREN 0x02000000L ! 896: #define WS_MAXIMIZE 0x01000000L ! 897: #define WS_CAPTION 0x00C00000L /* WS_BORDER | WS_DLGFRAME */ ! 898: #define WS_BORDER 0x00800000L ! 899: #define WS_DLGFRAME 0x00400000L ! 900: #define WS_VSCROLL 0x00200000L ! 901: #define WS_HSCROLL 0x00100000L ! 902: #define WS_SYSMENU 0x00080000L ! 903: #define WS_THICKFRAME 0x00040000L ! 904: #define WS_GROUP 0x00020000L ! 905: #define WS_TABSTOP 0x00010000L ! 906: ! 907: #define WS_MINIMIZEBOX 0x00020000L ! 908: #define WS_MAXIMIZEBOX 0x00010000L ! 909: ! 910: #define WS_TILED WS_OVERLAPPED ! 911: #define WS_ICONIC WS_MINIMIZE ! 912: #define WS_SIZEBOX WS_THICKFRAME ! 913: #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW ! 914: ! 915: /* Common Window Styles */ ! 916: #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX) ! 917: #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU) ! 918: #define WS_CHILDWINDOW (WS_CHILD) ! 919: ! 920: /* Extended Window Styles */ ! 921: #define WS_EX_DLGMODALFRAME 0x00000001L ! 922: #define WS_EX_NOPARENTNOTIFY 0x00000004L ! 923: #define WS_EX_TOPMOST 0x00000008L ! 924: #define WS_EX_ACCEPTFILES 0x00000010L ! 925: #define WS_EX_TRANSPARENT 0x00000020L ! 926: ! 927: /* Class styles */ ! 928: #define CS_VREDRAW 0x0001 ! 929: #define CS_HREDRAW 0x0002 ! 930: #define CS_KEYCVTWINDOW 0x0004 ! 931: #define CS_DBLCLKS 0x0008 ! 932: /* 0x0010 - reserved (see user\server\usersrv.h) */ ! 933: #define CS_OWNDC 0x0020 ! 934: #define CS_CLASSDC 0x0040 ! 935: #define CS_PARENTDC 0x0080 ! 936: #define CS_NOKEYCVT 0x0100 ! 937: #define CS_NOCLOSE 0x0200 ! 938: #define CS_SAVEBITS 0x0800 ! 939: #define CS_BYTEALIGNCLIENT 0x1000 ! 940: #define CS_BYTEALIGNWINDOW 0x2000 ! 941: #define CS_GLOBALCLASS 0x4000 /* Global window class */ ! 942: ! 943: #endif /* NOWINSTYLES */ ! 944: ! 945: #ifndef NOCLIPBOARD ! 946: ! 947: /* Predefined Clipboard Formats */ ! 948: #define CF_TEXT 1 ! 949: #define CF_BITMAP 2 ! 950: #define CF_METAFILEPICT 3 ! 951: #define CF_SYLK 4 ! 952: #define CF_DIF 5 ! 953: #define CF_TIFF 6 ! 954: #define CF_OEMTEXT 7 ! 955: #define CF_DIB 8 ! 956: #define CF_PALETTE 9 ! 957: #define CF_PENDATA 10 ! 958: #define CF_RIFF 11 ! 959: #define CF_WAVE 12 ! 960: #define CF_UNICODETEXT 13 ! 961: #define CF_ENHMETAFILE 14 ! 962: ! 963: #define CF_OWNERDISPLAY 0x0080 ! 964: #define CF_DSPTEXT 0x0081 ! 965: #define CF_DSPBITMAP 0x0082 ! 966: #define CF_DSPMETAFILEPICT 0x0083 ! 967: #define CF_DSPENHMETAFILE 0x008E ! 968: ! 969: /* "Private" formats don't get GlobalFree()'d */ ! 970: #define CF_PRIVATEFIRST 0x0200 ! 971: #define CF_PRIVATELAST 0x02FF ! 972: ! 973: /* "GDIOBJ" formats do get DeleteObject()'d */ ! 974: #define CF_GDIOBJFIRST 0x0300 ! 975: #define CF_GDIOBJLAST 0x03FF ! 976: ! 977: #endif /* NOCLIPBOARD */ ! 978: ! 979: /* ! 980: * Defines for the fVirt field of the Accelerator table structure. ! 981: */ ! 982: #define FVIRTKEY TRUE /* Assumed to be == TRUE */ ! 983: #define FNOINVERT 0x02 ! 984: #define FSHIFT 0x04 ! 985: #define FCONTROL 0x08 ! 986: #define FALT 0x10 ! 987: ! 988: typedef struct tagACCEL { ! 989: BYTE fVirt; /* Also called the flags field */ ! 990: WORD key; ! 991: WORD cmd; ! 992: } ACCEL, *LPACCEL; ! 993: ! 994: typedef struct tagPAINTSTRUCT { ! 995: HDC hdc; ! 996: BOOL fErase; ! 997: RECT rcPaint; ! 998: BOOL fRestore; ! 999: BOOL fIncUpdate; ! 1000: BYTE rgbReserved[32]; ! 1001: } PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT; ! 1002: ! 1003: typedef struct tagCREATESTRUCTA { ! 1004: LPVOID lpCreateParams; ! 1005: HINSTANCE hInstance; ! 1006: HMENU hMenu; ! 1007: HWND hwndParent; ! 1008: int cy; ! 1009: int cx; ! 1010: int y; ! 1011: int x; ! 1012: LONG style; ! 1013: LPCSTR lpszName; ! 1014: LPCSTR lpszClass; ! 1015: DWORD dwExStyle; ! 1016: } CREATESTRUCTA, *LPCREATESTRUCTA; ! 1017: typedef struct tagCREATESTRUCTW { ! 1018: LPVOID lpCreateParams; ! 1019: HINSTANCE hInstance; ! 1020: HMENU hMenu; ! 1021: HWND hwndParent; ! 1022: int cy; ! 1023: int cx; ! 1024: int y; ! 1025: int x; ! 1026: LONG style; ! 1027: LPCWSTR lpszName; ! 1028: LPCWSTR lpszClass; ! 1029: DWORD dwExStyle; ! 1030: } CREATESTRUCTW, *LPCREATESTRUCTW; ! 1031: #ifdef UNICODE ! 1032: #define CREATESTRUCT CREATESTRUCTW ! 1033: #define LPCREATESTRUCT LPCREATESTRUCTW ! 1034: #else ! 1035: #define CREATESTRUCT CREATESTRUCTA ! 1036: #define LPCREATESTRUCT LPCREATESTRUCTA ! 1037: #endif // UNICODE ! 1038: ! 1039: typedef struct tagWINDOWPLACEMENT { ! 1040: UINT length; ! 1041: UINT flags; ! 1042: UINT showCmd; ! 1043: POINT ptMinPosition; ! 1044: POINT ptMaxPosition; ! 1045: RECT rcNormalPosition; ! 1046: } WINDOWPLACEMENT; ! 1047: typedef WINDOWPLACEMENT *PWINDOWPLACEMENT; ! 1048: ! 1049: #define WPF_SETMINPOSITION 0x0001 ! 1050: #define WPF_RESTORETOMAXIMIZED 0x0002 ! 1051: ! 1052: /* Owner draw control types */ ! 1053: #define ODT_MENU 1 ! 1054: #define ODT_LISTBOX 2 ! 1055: #define ODT_COMBOBOX 3 ! 1056: #define ODT_BUTTON 4 ! 1057: ! 1058: /* Owner draw actions */ ! 1059: #define ODA_DRAWENTIRE 0x0001 ! 1060: #define ODA_SELECT 0x0002 ! 1061: #define ODA_FOCUS 0x0004 ! 1062: ! 1063: /* Owner draw state */ ! 1064: #define ODS_SELECTED 0x0001 ! 1065: #define ODS_GRAYED 0x0002 ! 1066: #define ODS_DISABLED 0x0004 ! 1067: #define ODS_CHECKED 0x0008 ! 1068: #define ODS_FOCUS 0x0010 ! 1069: ! 1070: /* MEASUREITEMSTRUCT for ownerdraw */ ! 1071: typedef struct tagMEASUREITEMSTRUCT { ! 1072: UINT CtlType; ! 1073: UINT CtlID; ! 1074: UINT itemID; ! 1075: UINT itemWidth; ! 1076: UINT itemHeight; ! 1077: DWORD itemData; ! 1078: } MEASUREITEMSTRUCT, NEAR *PMEASUREITEMSTRUCT, FAR *LPMEASUREITEMSTRUCT; ! 1079: ! 1080: ! 1081: /* DRAWITEMSTRUCT for ownerdraw */ ! 1082: typedef struct tagDRAWITEMSTRUCT { ! 1083: UINT CtlType; ! 1084: UINT CtlID; ! 1085: UINT itemID; ! 1086: UINT itemAction; ! 1087: UINT itemState; ! 1088: HWND hwndItem; ! 1089: HDC hDC; ! 1090: RECT rcItem; ! 1091: DWORD itemData; ! 1092: } DRAWITEMSTRUCT, NEAR *PDRAWITEMSTRUCT, FAR *LPDRAWITEMSTRUCT; ! 1093: ! 1094: /* DELETEITEMSTRUCT for ownerdraw */ ! 1095: typedef struct tagDELETEITEMSTRUCT { ! 1096: UINT CtlType; ! 1097: UINT CtlID; ! 1098: UINT itemID; ! 1099: HWND hwndItem; ! 1100: UINT itemData; ! 1101: } DELETEITEMSTRUCT, NEAR *PDELETEITEMSTRUCT, FAR *LPDELETEITEMSTRUCT; ! 1102: ! 1103: /* COMPAREITEMSTUCT for ownerdraw sorting */ ! 1104: typedef struct tagCOMPAREITEMSTRUCT { ! 1105: UINT CtlType; ! 1106: UINT CtlID; ! 1107: HWND hwndItem; ! 1108: UINT itemID1; ! 1109: DWORD itemData1; ! 1110: UINT itemID2; ! 1111: DWORD itemData2; ! 1112: DWORD dwLocaleId; ! 1113: } COMPAREITEMSTRUCT, NEAR *PCOMPAREITEMSTRUCT, FAR *LPCOMPAREITEMSTRUCT; ! 1114: ! 1115: #ifndef NOMSG ! 1116: ! 1117: /* Message Function Templates */ ! 1118: BOOL ! 1119: WINAPI ! 1120: GetMessageA( ! 1121: LPMSG lpMsg, ! 1122: HWND hWnd , ! 1123: UINT wMsgFilterMin, ! 1124: UINT wMsgFilterMax); ! 1125: /* Message Function Templates */ ! 1126: BOOL ! 1127: WINAPI ! 1128: GetMessageW( ! 1129: LPMSG lpMsg, ! 1130: HWND hWnd , ! 1131: UINT wMsgFilterMin, ! 1132: UINT wMsgFilterMax); ! 1133: #ifdef UNICODE ! 1134: #define GetMessage GetMessageW ! 1135: #else ! 1136: #define GetMessage GetMessageA ! 1137: #endif // !UNICODE ! 1138: ! 1139: BOOL ! 1140: WINAPI ! 1141: TranslateMessage( ! 1142: CONST MSG *lpMsg); ! 1143: ! 1144: LONG ! 1145: WINAPI ! 1146: DispatchMessageA( ! 1147: CONST MSG *lpMsg); ! 1148: LONG ! 1149: WINAPI ! 1150: DispatchMessageW( ! 1151: CONST MSG *lpMsg); ! 1152: #ifdef UNICODE ! 1153: #define DispatchMessage DispatchMessageW ! 1154: #else ! 1155: #define DispatchMessage DispatchMessageA ! 1156: #endif // !UNICODE ! 1157: ! 1158: BOOL ! 1159: WINAPI ! 1160: PeekMessageA( ! 1161: LPMSG lpMsg, ! 1162: HWND hWnd , ! 1163: UINT wMsgFilterMin, ! 1164: UINT wMsgFilterMax, ! 1165: UINT wRemoveMsg); ! 1166: BOOL ! 1167: WINAPI ! 1168: PeekMessageW( ! 1169: LPMSG lpMsg, ! 1170: HWND hWnd , ! 1171: UINT wMsgFilterMin, ! 1172: UINT wMsgFilterMax, ! 1173: UINT wRemoveMsg); ! 1174: #ifdef UNICODE ! 1175: #define PeekMessage PeekMessageW ! 1176: #else ! 1177: #define PeekMessage PeekMessageA ! 1178: #endif // !UNICODE ! 1179: ! 1180: /* PeekMessage() Options */ ! 1181: #define PM_NOREMOVE 0x0000 ! 1182: #define PM_REMOVE 0x0001 ! 1183: #define PM_NOYIELD 0x0002 ! 1184: ! 1185: #endif /* NOMSG */ ! 1186: ! 1187: BOOL ! 1188: WINAPI ! 1189: RegisterHotKey( ! 1190: HWND hwnd , ! 1191: int id, ! 1192: UINT fsModifiers, ! 1193: UINT vk); ! 1194: ! 1195: BOOL ! 1196: WINAPI ! 1197: UnregisterHotKey( ! 1198: HWND hwnd, ! 1199: int id); ! 1200: ! 1201: #define MOD_ALT 0x0001 ! 1202: #define MOD_CONTROL 0x0002 ! 1203: #define MOD_SHIFT 0x0004 ! 1204: ! 1205: #define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */ ! 1206: #define IDHOT_SNAPDESKTOP (-2) /* PRINTSCRN */ ! 1207: ! 1208: #ifdef WIN_INTERNAL ! 1209: #ifndef LSTRING ! 1210: #define NOLSTRING ! 1211: #endif ! 1212: #ifndef LFILEIO ! 1213: #define NOLFILEIO ! 1214: #endif ! 1215: #endif ! 1216: ! 1217: ! 1218: #define EWX_LOGOFF 0 ! 1219: #define EWX_SHUTDOWN 1 ! 1220: #define EWX_REBOOT 2 ! 1221: #define EWX_FORCE 4 ! 1222: ! 1223: ! 1224: #define ExitWindows(dwReserved, Code) ExitWindowsEx(EWX_LOGOFF, (-1)) ! 1225: ! 1226: BOOL ! 1227: WINAPI ! 1228: ExitWindowsEx( ! 1229: UINT uFlags, ! 1230: DWORD ForceTimeout); ! 1231: ! 1232: BOOL ! 1233: WINAPI ! 1234: SwapMouseButton( ! 1235: BOOL); ! 1236: ! 1237: DWORD ! 1238: WINAPI ! 1239: GetMessagePos( ! 1240: VOID); ! 1241: ! 1242: LONG ! 1243: WINAPI ! 1244: GetMessageTime( ! 1245: VOID); ! 1246: ! 1247: LONG ! 1248: WINAPI ! 1249: GetMessageExtraInfo( ! 1250: VOID); ! 1251: ! 1252: LRESULT ! 1253: WINAPI ! 1254: SendMessageA( ! 1255: HWND hWnd, ! 1256: UINT Msg, ! 1257: WPARAM wParam, ! 1258: LPARAM lParam); ! 1259: LRESULT ! 1260: WINAPI ! 1261: SendMessageW( ! 1262: HWND hWnd, ! 1263: UINT Msg, ! 1264: WPARAM wParam, ! 1265: LPARAM lParam); ! 1266: #ifdef UNICODE ! 1267: #define SendMessage SendMessageW ! 1268: #else ! 1269: #define SendMessage SendMessageA ! 1270: #endif // !UNICODE ! 1271: ! 1272: BOOL ! 1273: WINAPI ! 1274: SendNotifyMessageA( ! 1275: HWND hwnd, ! 1276: UINT Msg, ! 1277: WPARAM wParam, ! 1278: LPARAM lParam); ! 1279: BOOL ! 1280: WINAPI ! 1281: SendNotifyMessageW( ! 1282: HWND hwnd, ! 1283: UINT Msg, ! 1284: WPARAM wParam, ! 1285: LPARAM lParam); ! 1286: #ifdef UNICODE ! 1287: #define SendNotifyMessage SendNotifyMessageW ! 1288: #else ! 1289: #define SendNotifyMessage SendNotifyMessageA ! 1290: #endif // !UNICODE ! 1291: ! 1292: BOOL ! 1293: WINAPI ! 1294: PostMessageA( ! 1295: HWND hWnd, ! 1296: UINT Msg, ! 1297: WPARAM wParam, ! 1298: LPARAM lParam); ! 1299: BOOL ! 1300: WINAPI ! 1301: PostMessageW( ! 1302: HWND hWnd, ! 1303: UINT Msg, ! 1304: WPARAM wParam, ! 1305: LPARAM lParam); ! 1306: #ifdef UNICODE ! 1307: #define PostMessage PostMessageW ! 1308: #else ! 1309: #define PostMessage PostMessageA ! 1310: #endif // !UNICODE ! 1311: ! 1312: BOOL ! 1313: WINAPI ! 1314: PostThreadMessageA( ! 1315: DWORD idThread, ! 1316: UINT Msg, ! 1317: WPARAM wParam, ! 1318: LPARAM lParam); ! 1319: BOOL ! 1320: WINAPI ! 1321: PostThreadMessageW( ! 1322: DWORD idThread, ! 1323: UINT Msg, ! 1324: WPARAM wParam, ! 1325: LPARAM lParam); ! 1326: #ifdef UNICODE ! 1327: #define PostThreadMessage PostThreadMessageW ! 1328: #else ! 1329: #define PostThreadMessage PostThreadMessageA ! 1330: #endif // !UNICODE ! 1331: ! 1332: #define PostAppMessageA(idThread, wMsg, wParam, lParam)\ ! 1333: PostThreadMessageA((DWORD)idThread, wMsg, wParam, lParam) ! 1334: #define PostAppMessageW(idThread, wMsg, wParam, lParam)\ ! 1335: PostThreadMessageW((DWORD)idThread, wMsg, wParam, lParam) ! 1336: #ifdef UNICODE ! 1337: #define PostAppMessage PostAppMessageW ! 1338: #else ! 1339: #define PostAppMessage PostAppMessageA ! 1340: #endif // !UNICODE ! 1341: ! 1342: /* Special HWND value for use with PostMessage() and SendMessage() */ ! 1343: #define HWND_BROADCAST ((HWND)0xffff) ! 1344: ! 1345: BOOL ! 1346: WINAPI ! 1347: AttachThreadInput( ! 1348: DWORD idAttach, ! 1349: DWORD idAttachTo, ! 1350: BOOL fAttach); ! 1351: ! 1352: ! 1353: BOOL ! 1354: WINAPI ! 1355: ReplyMessage( ! 1356: LRESULT); ! 1357: ! 1358: BOOL ! 1359: WINAPI ! 1360: WaitMessage( ! 1361: VOID); ! 1362: ! 1363: DWORD ! 1364: WINAPI ! 1365: WaitForInputIdle( ! 1366: HANDLE hProcess, ! 1367: DWORD dwMilliseconds); ! 1368: ! 1369: LRESULT ! 1370: WINAPI ! 1371: DefWindowProcA( ! 1372: HWND hWnd, ! 1373: UINT Msg, ! 1374: WPARAM wParam, ! 1375: LPARAM lParam); ! 1376: LRESULT ! 1377: WINAPI ! 1378: DefWindowProcW( ! 1379: HWND hWnd, ! 1380: UINT Msg, ! 1381: WPARAM wParam, ! 1382: LPARAM lParam); ! 1383: #ifdef UNICODE ! 1384: #define DefWindowProc DefWindowProcW ! 1385: #else ! 1386: #define DefWindowProc DefWindowProcA ! 1387: #endif // !UNICODE ! 1388: ! 1389: VOID ! 1390: WINAPI ! 1391: PostQuitMessage( ! 1392: int nExitCode); ! 1393: ! 1394: #ifdef STRICT ! 1395: LRESULT ! 1396: WINAPI ! 1397: CallWindowProcA( ! 1398: WNDPROC lpPrevWndFunc, ! 1399: HWND hWnd, ! 1400: UINT Msg, ! 1401: WPARAM wParam, ! 1402: LPARAM lParam); ! 1403: LRESULT ! 1404: WINAPI ! 1405: CallWindowProcW( ! 1406: WNDPROC lpPrevWndFunc, ! 1407: HWND hWnd, ! 1408: UINT Msg, ! 1409: WPARAM wParam, ! 1410: LPARAM lParam); ! 1411: #else ! 1412: LRESULT ! 1413: WINAPI ! 1414: CallWindowProcA( ! 1415: FARPROC lpPrevWndFunc, ! 1416: HWND hWnd, ! 1417: UINT Msg, ! 1418: WPARAM wParam, ! 1419: LPARAM lParam); ! 1420: LRESULT ! 1421: WINAPI ! 1422: CallWindowProcW( ! 1423: FARPROC lpPrevWndFunc, ! 1424: HWND hWnd, ! 1425: UINT Msg, ! 1426: WPARAM wParam, ! 1427: LPARAM lParam); ! 1428: #endif ! 1429: #ifdef UNICODE ! 1430: #define CallWindowProc CallWindowProcW ! 1431: #else ! 1432: #define CallWindowProc CallWindowProcA ! 1433: #endif // !UNICODE ! 1434: ! 1435: BOOL ! 1436: WINAPI ! 1437: InSendMessage( ! 1438: VOID); ! 1439: ! 1440: UINT ! 1441: WINAPI ! 1442: GetDoubleClickTime( ! 1443: VOID); ! 1444: ! 1445: BOOL ! 1446: WINAPI ! 1447: SetDoubleClickTime( ! 1448: UINT); ! 1449: ! 1450: ATOM ! 1451: WINAPI ! 1452: RegisterClassA( ! 1453: LPWNDCLASSA lpWndClass); ! 1454: ATOM ! 1455: WINAPI ! 1456: RegisterClassW( ! 1457: LPWNDCLASSW lpWndClass); ! 1458: #ifdef UNICODE ! 1459: #define RegisterClass RegisterClassW ! 1460: #else ! 1461: #define RegisterClass RegisterClassA ! 1462: #endif // !UNICODE ! 1463: ! 1464: BOOL ! 1465: WINAPI ! 1466: UnregisterClassA( ! 1467: LPCSTR lpClassName, ! 1468: HINSTANCE hInstance); ! 1469: BOOL ! 1470: WINAPI ! 1471: UnregisterClassW( ! 1472: LPCWSTR lpClassName, ! 1473: HINSTANCE hInstance); ! 1474: #ifdef UNICODE ! 1475: #define UnregisterClass UnregisterClassW ! 1476: #else ! 1477: #define UnregisterClass UnregisterClassA ! 1478: #endif // !UNICODE ! 1479: ! 1480: BOOL ! 1481: WINAPI ! 1482: GetClassInfoA( ! 1483: HINSTANCE hInstance , ! 1484: LPCSTR lpClassName, ! 1485: LPWNDCLASSA lpWndClass); ! 1486: BOOL ! 1487: WINAPI ! 1488: GetClassInfoW( ! 1489: HINSTANCE hInstance , ! 1490: LPCWSTR lpClassName, ! 1491: LPWNDCLASSW lpWndClass); ! 1492: #ifdef UNICODE ! 1493: #define GetClassInfo GetClassInfoW ! 1494: #else ! 1495: #define GetClassInfo GetClassInfoA ! 1496: #endif // !UNICODE ! 1497: ! 1498: #define CW_USEDEFAULT ((int)0x80000000) ! 1499: ! 1500: /* Special value for CreateWindow, et al. */ ! 1501: #define HWND_DESKTOP ((HWND)0) ! 1502: ! 1503: HWND ! 1504: WINAPI ! 1505: CreateWindowExA( ! 1506: DWORD dwExStyle, ! 1507: LPCSTR lpClassName, ! 1508: LPCSTR lpWindowName, ! 1509: DWORD dwStyle, ! 1510: int X, ! 1511: int Y, ! 1512: int nWidth, ! 1513: int nHeight, ! 1514: HWND hWndParent , ! 1515: HMENU hMenu, ! 1516: HINSTANCE hInstance, ! 1517: LPVOID lpParam); ! 1518: HWND ! 1519: WINAPI ! 1520: CreateWindowExW( ! 1521: DWORD dwExStyle, ! 1522: LPCWSTR lpClassName, ! 1523: LPCWSTR lpWindowName, ! 1524: DWORD dwStyle, ! 1525: int X, ! 1526: int Y, ! 1527: int nWidth, ! 1528: int nHeight, ! 1529: HWND hWndParent , ! 1530: HMENU hMenu, ! 1531: HINSTANCE hInstance, ! 1532: LPVOID lpParam); ! 1533: #ifdef UNICODE ! 1534: #define CreateWindowEx CreateWindowExW ! 1535: #else ! 1536: #define CreateWindowEx CreateWindowExA ! 1537: #endif // !UNICODE ! 1538: ! 1539: #define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,\ ! 1540: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)\ ! 1541: CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,\ ! 1542: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam) ! 1543: #define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\ ! 1544: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)\ ! 1545: CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,\ ! 1546: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam) ! 1547: #ifdef UNICODE ! 1548: #define CreateWindow CreateWindowW ! 1549: #else ! 1550: #define CreateWindow CreateWindowA ! 1551: #endif // !UNICODE ! 1552: ! 1553: BOOL ! 1554: WINAPI ! 1555: IsWindow( ! 1556: HWND hWnd); ! 1557: ! 1558: BOOL ! 1559: WINAPI ! 1560: IsChild( ! 1561: HWND hWndParent, ! 1562: HWND hWnd); ! 1563: ! 1564: BOOL ! 1565: WINAPI ! 1566: DestroyWindow( ! 1567: HWND hWnd); ! 1568: ! 1569: BOOL ! 1570: WINAPI ! 1571: ShowWindow( ! 1572: HWND hWnd, ! 1573: int nCmdShow); ! 1574: ! 1575: BOOL ! 1576: WINAPI ! 1577: FlashWindow( ! 1578: HWND hWnd, ! 1579: BOOL bInvert); ! 1580: ! 1581: BOOL ! 1582: WINAPI ! 1583: ShowOwnedPopups( ! 1584: HWND hWnd, ! 1585: BOOL fShow); ! 1586: ! 1587: BOOL ! 1588: WINAPI ! 1589: OpenIcon( ! 1590: HWND hWnd); ! 1591: ! 1592: BOOL ! 1593: WINAPI ! 1594: CloseWindow( ! 1595: HWND hWnd); ! 1596: ! 1597: BOOL ! 1598: WINAPI ! 1599: MoveWindow( ! 1600: HWND hWnd, ! 1601: int X, ! 1602: int Y, ! 1603: int nWidth, ! 1604: int nHeight, ! 1605: BOOL bRepaint); ! 1606: ! 1607: BOOL ! 1608: WINAPI ! 1609: SetWindowPos( ! 1610: HWND hWnd, ! 1611: HWND hWndInsertAfter , ! 1612: int X, ! 1613: int Y, ! 1614: int cx, ! 1615: int cy, ! 1616: UINT uFlags); ! 1617: ! 1618: BOOL ! 1619: WINAPI ! 1620: GetWindowPlacement( ! 1621: HWND hwnd, ! 1622: WINDOWPLACEMENT *lpwndpl); ! 1623: ! 1624: BOOL ! 1625: WINAPI ! 1626: SetWindowPlacement( ! 1627: HWND hwnd, ! 1628: CONST WINDOWPLACEMENT *lpwndpl); ! 1629: ! 1630: ! 1631: #ifndef NODEFERWINDOWPOS ! 1632: ! 1633: HDWP ! 1634: WINAPI ! 1635: BeginDeferWindowPos( ! 1636: int nNumWindows); ! 1637: ! 1638: HDWP ! 1639: WINAPI ! 1640: DeferWindowPos( ! 1641: HDWP hWinPosInfo, ! 1642: HWND hWnd, ! 1643: HWND hWndInsertAfter , ! 1644: int x, ! 1645: int y, ! 1646: int cx, ! 1647: int cy, ! 1648: UINT uFlags); ! 1649: ! 1650: BOOL ! 1651: WINAPI ! 1652: EndDeferWindowPos( ! 1653: HDWP hWinPosInfo); ! 1654: ! 1655: #endif /* NODEFERWINDOWPOS */ ! 1656: ! 1657: BOOL ! 1658: WINAPI ! 1659: IsWindowVisible( ! 1660: HWND hWnd); ! 1661: ! 1662: BOOL ! 1663: WINAPI ! 1664: IsIconic( ! 1665: HWND hWnd); ! 1666: ! 1667: BOOL ! 1668: WINAPI ! 1669: AnyPopup( ! 1670: VOID); ! 1671: ! 1672: BOOL ! 1673: WINAPI ! 1674: BringWindowToTop( ! 1675: HWND hWnd); ! 1676: ! 1677: BOOL ! 1678: WINAPI ! 1679: IsZoomed( ! 1680: HWND hWnd); ! 1681: ! 1682: /* SetWindowPos Flags */ ! 1683: #define SWP_NOSIZE 0x0001 ! 1684: #define SWP_NOMOVE 0x0002 ! 1685: #define SWP_NOZORDER 0x0004 ! 1686: #define SWP_NOREDRAW 0x0008 ! 1687: #define SWP_NOACTIVATE 0x0010 ! 1688: #define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */ ! 1689: #define SWP_SHOWWINDOW 0x0040 ! 1690: #define SWP_HIDEWINDOW 0x0080 ! 1691: #define SWP_NOCOPYBITS 0x0100 ! 1692: #define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */ ! 1693: ! 1694: #define SWP_DRAWFRAME SWP_FRAMECHANGED ! 1695: #define SWP_NOREPOSITION SWP_NOOWNERZORDER ! 1696: ! 1697: ! 1698: #define HWND_TOP ((HWND)0) ! 1699: #define HWND_BOTTOM ((HWND)1) ! 1700: #define HWND_TOPMOST ((HWND)-1) ! 1701: #define HWND_NOTOPMOST ((HWND)-2) ! 1702: ! 1703: #ifndef NOCTLMGR ! 1704: ! 1705: #ifndef RC_INVOKED // RC can't handle #pragmas ! 1706: ! 1707: /* ! 1708: * WARNING: ! 1709: * The following structures must NOT be DWORD padded because they are ! 1710: * followed by strings, etc that do not have to be DWORD aligned. ! 1711: */ ! 1712: #pragma pack(2) ! 1713: ! 1714: typedef struct { ! 1715: DWORD style; ! 1716: DWORD dwExtendedStyle; ! 1717: WORD cdit; ! 1718: WORD x; ! 1719: WORD y; ! 1720: WORD cx; ! 1721: WORD cy; ! 1722: } DLGTEMPLATE; ! 1723: typedef DLGTEMPLATE *LPDLGTEMPLATEA; ! 1724: typedef DLGTEMPLATE *LPDLGTEMPLATEW; ! 1725: #ifdef UNICODE ! 1726: #define LPDLGTEMPLATE LPDLGTEMPLATEW ! 1727: #else ! 1728: #define LPDLGTEMPLATE LPDLGTEMPLATEA ! 1729: #endif // UNICODE ! 1730: typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA; ! 1731: typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW; ! 1732: #ifdef UNICODE ! 1733: #define LPCDLGTEMPLATE LPCDLGTEMPLATEW ! 1734: #else ! 1735: #define LPCDLGTEMPLATE LPCDLGTEMPLATEA ! 1736: #endif // UNICODE ! 1737: ! 1738: /* ! 1739: * Dialog item template (dit) ! 1740: */ ! 1741: typedef struct { ! 1742: DWORD style; ! 1743: DWORD dwExtendedStyle; ! 1744: WORD x; ! 1745: WORD y; ! 1746: WORD cx; ! 1747: WORD cy; ! 1748: WORD id; ! 1749: } DLGITEMTEMPLATE; ! 1750: typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA; ! 1751: typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW; ! 1752: #ifdef UNICODE ! 1753: #define PDLGITEMTEMPLATE PDLGITEMTEMPLATEW ! 1754: #else ! 1755: #define PDLGITEMTEMPLATE PDLGITEMTEMPLATEA ! 1756: #endif // UNICODE ! 1757: typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA; ! 1758: typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW; ! 1759: #ifdef UNICODE ! 1760: #define LPDLGITEMTEMPLATE LPDLGITEMTEMPLATEW ! 1761: #else ! 1762: #define LPDLGITEMTEMPLATE LPDLGITEMTEMPLATEA ! 1763: #endif // UNICODE ! 1764: ! 1765: #pragma pack() // Resume normal packing ! 1766: #endif // !RC_INVOKED ! 1767: ! 1768: HWND ! 1769: WINAPI ! 1770: CreateDialogParamA( ! 1771: HINSTANCE hInstance, ! 1772: LPCSTR lpTemplateName, ! 1773: HWND hWndParent , ! 1774: DLGPROC lpDialogFunc, ! 1775: LPARAM dwInitParam); ! 1776: HWND ! 1777: WINAPI ! 1778: CreateDialogParamW( ! 1779: HINSTANCE hInstance, ! 1780: LPCWSTR lpTemplateName, ! 1781: HWND hWndParent , ! 1782: DLGPROC lpDialogFunc, ! 1783: LPARAM dwInitParam); ! 1784: #ifdef UNICODE ! 1785: #define CreateDialogParam CreateDialogParamW ! 1786: #else ! 1787: #define CreateDialogParam CreateDialogParamA ! 1788: #endif // !UNICODE ! 1789: ! 1790: HWND ! 1791: WINAPI ! 1792: CreateDialogIndirectParamA( ! 1793: HINSTANCE hInstance, ! 1794: LPCDLGTEMPLATEA lpTemplate, ! 1795: HWND hwndParent, ! 1796: DLGPROC lpDialogFunc, ! 1797: LPARAM dwInitParam); ! 1798: HWND ! 1799: WINAPI ! 1800: CreateDialogIndirectParamW( ! 1801: HINSTANCE hInstance, ! 1802: LPCDLGTEMPLATEW lpTemplate, ! 1803: HWND hwndParent, ! 1804: DLGPROC lpDialogFunc, ! 1805: LPARAM dwInitParam); ! 1806: #ifdef UNICODE ! 1807: #define CreateDialogIndirectParam CreateDialogIndirectParamW ! 1808: #else ! 1809: #define CreateDialogIndirectParam CreateDialogIndirectParamA ! 1810: #endif // !UNICODE ! 1811: ! 1812: #define CreateDialogA(hInstance, lpName, hwndParent, lpDialogFunc) \ ! 1813: CreateDialogParamA(hInstance, lpName, hwndParent, lpDialogFunc, 0L) ! 1814: #define CreateDialogW(hInstance, lpName, hwndParent, lpDialogFunc) \ ! 1815: CreateDialogParamW(hInstance, lpName, hwndParent, lpDialogFunc, 0L) ! 1816: #ifdef UNICODE ! 1817: #define CreateDialog CreateDialogW ! 1818: #else ! 1819: #define CreateDialog CreateDialogA ! 1820: #endif // !UNICODE ! 1821: ! 1822: #define CreateDialogIndirectA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1823: CreateDialogIndirectParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1824: #define CreateDialogIndirectW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1825: CreateDialogIndirectParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1826: #ifdef UNICODE ! 1827: #define CreateDialogIndirect CreateDialogIndirectW ! 1828: #else ! 1829: #define CreateDialogIndirect CreateDialogIndirectA ! 1830: #endif // !UNICODE ! 1831: ! 1832: int ! 1833: WINAPI ! 1834: DialogBoxParamA( ! 1835: HINSTANCE hInstance, ! 1836: LPCSTR lpTemplateName, ! 1837: HWND hWndParent , ! 1838: DLGPROC lpDialogFunc, ! 1839: LPARAM dwInitParam); ! 1840: int ! 1841: WINAPI ! 1842: DialogBoxParamW( ! 1843: HINSTANCE hInstance, ! 1844: LPCWSTR lpTemplateName, ! 1845: HWND hWndParent , ! 1846: DLGPROC lpDialogFunc, ! 1847: LPARAM dwInitParam); ! 1848: #ifdef UNICODE ! 1849: #define DialogBoxParam DialogBoxParamW ! 1850: #else ! 1851: #define DialogBoxParam DialogBoxParamA ! 1852: #endif // !UNICODE ! 1853: ! 1854: int ! 1855: WINAPI ! 1856: DialogBoxIndirectParamA( ! 1857: HINSTANCE hInstance, ! 1858: LPDLGTEMPLATEA hDialogTemplate, ! 1859: HWND hWndParent , ! 1860: DLGPROC lpDialogFunc, ! 1861: LPARAM dwInitParam); ! 1862: int ! 1863: WINAPI ! 1864: DialogBoxIndirectParamW( ! 1865: HINSTANCE hInstance, ! 1866: LPDLGTEMPLATEW hDialogTemplate, ! 1867: HWND hWndParent , ! 1868: DLGPROC lpDialogFunc, ! 1869: LPARAM dwInitParam); ! 1870: #ifdef UNICODE ! 1871: #define DialogBoxIndirectParam DialogBoxIndirectParamW ! 1872: #else ! 1873: #define DialogBoxIndirectParam DialogBoxIndirectParamA ! 1874: #endif // !UNICODE ! 1875: ! 1876: #define DialogBoxA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1877: DialogBoxParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1878: #define DialogBoxW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1879: DialogBoxParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1880: #ifdef UNICODE ! 1881: #define DialogBox DialogBoxW ! 1882: #else ! 1883: #define DialogBox DialogBoxA ! 1884: #endif // !UNICODE ! 1885: ! 1886: #define DialogBoxIndirectA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1887: DialogBoxIndirectParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1888: #define DialogBoxIndirectW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1889: DialogBoxIndirectParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1890: #ifdef UNICODE ! 1891: #define DialogBoxIndirect DialogBoxIndirectW ! 1892: #else ! 1893: #define DialogBoxIndirect DialogBoxIndirectA ! 1894: #endif // !UNICODE ! 1895: ! 1896: BOOL ! 1897: WINAPI ! 1898: EndDialog( ! 1899: HWND hDlg, ! 1900: int nResult); ! 1901: ! 1902: HWND ! 1903: WINAPI ! 1904: GetDlgItem( ! 1905: HWND hDlg, ! 1906: int nIDDlgItem); ! 1907: ! 1908: BOOL ! 1909: WINAPI ! 1910: SetDlgItemInt( ! 1911: HWND hDlg, ! 1912: int nIDDlgItem, ! 1913: UINT uValue, ! 1914: BOOL bSigned); ! 1915: ! 1916: UINT ! 1917: WINAPI ! 1918: GetDlgItemInt( ! 1919: HWND hDlg, ! 1920: int nIDDlgItem, ! 1921: BOOL *lpTranslated, ! 1922: BOOL bSigned); ! 1923: ! 1924: BOOL ! 1925: WINAPI ! 1926: SetDlgItemTextA( ! 1927: HWND hDlg, ! 1928: int nIDDlgItem, ! 1929: LPCSTR lpString); ! 1930: BOOL ! 1931: WINAPI ! 1932: SetDlgItemTextW( ! 1933: HWND hDlg, ! 1934: int nIDDlgItem, ! 1935: LPCWSTR lpString); ! 1936: #ifdef UNICODE ! 1937: #define SetDlgItemText SetDlgItemTextW ! 1938: #else ! 1939: #define SetDlgItemText SetDlgItemTextA ! 1940: #endif // !UNICODE ! 1941: ! 1942: UINT ! 1943: WINAPI ! 1944: GetDlgItemTextA( ! 1945: HWND hDlg, ! 1946: int nIDDlgItem, ! 1947: LPSTR lpString, ! 1948: int nMaxCount); ! 1949: UINT ! 1950: WINAPI ! 1951: GetDlgItemTextW( ! 1952: HWND hDlg, ! 1953: int nIDDlgItem, ! 1954: LPWSTR lpString, ! 1955: int nMaxCount); ! 1956: #ifdef UNICODE ! 1957: #define GetDlgItemText GetDlgItemTextW ! 1958: #else ! 1959: #define GetDlgItemText GetDlgItemTextA ! 1960: #endif // !UNICODE ! 1961: ! 1962: BOOL ! 1963: WINAPI ! 1964: CheckDlgButton( ! 1965: HWND hDlg, ! 1966: int nIDButton, ! 1967: UINT uCheck); ! 1968: ! 1969: BOOL ! 1970: WINAPI ! 1971: CheckRadioButton( ! 1972: HWND hDlg, ! 1973: int nIDFirstButton, ! 1974: int nIDLastButton, ! 1975: int nIDCheckButton); ! 1976: ! 1977: UINT ! 1978: WINAPI ! 1979: IsDlgButtonChecked( ! 1980: HWND hDlg, ! 1981: int nIDButton); ! 1982: ! 1983: LONG ! 1984: WINAPI ! 1985: SendDlgItemMessageA( ! 1986: HWND hDlg, ! 1987: int nIDDlgItem, ! 1988: UINT Msg, ! 1989: WPARAM wParam, ! 1990: LPARAM lParam); ! 1991: LONG ! 1992: WINAPI ! 1993: SendDlgItemMessageW( ! 1994: HWND hDlg, ! 1995: int nIDDlgItem, ! 1996: UINT Msg, ! 1997: WPARAM wParam, ! 1998: LPARAM lParam); ! 1999: #ifdef UNICODE ! 2000: #define SendDlgItemMessage SendDlgItemMessageW ! 2001: #else ! 2002: #define SendDlgItemMessage SendDlgItemMessageA ! 2003: #endif // !UNICODE ! 2004: ! 2005: HWND ! 2006: WINAPI ! 2007: GetNextDlgGroupItem( ! 2008: HWND hDlg, ! 2009: HWND hCtl, ! 2010: BOOL bPrevious); ! 2011: ! 2012: HWND ! 2013: WINAPI ! 2014: GetNextDlgTabItem( ! 2015: HWND hDlg, ! 2016: HWND hCtl, ! 2017: BOOL bPrevious); ! 2018: ! 2019: int ! 2020: WINAPI ! 2021: GetDlgCtrlID( ! 2022: HWND hWnd); ! 2023: ! 2024: long ! 2025: WINAPI ! 2026: GetDialogBaseUnits(VOID); ! 2027: ! 2028: LRESULT ! 2029: WINAPI ! 2030: DefDlgProcA( ! 2031: HWND hDlg, ! 2032: UINT Msg, ! 2033: WPARAM wParam, ! 2034: LPARAM lParam); ! 2035: LRESULT ! 2036: WINAPI ! 2037: DefDlgProcW( ! 2038: HWND hDlg, ! 2039: UINT Msg, ! 2040: WPARAM wParam, ! 2041: LPARAM lParam); ! 2042: #ifdef UNICODE ! 2043: #define DefDlgProc DefDlgProcW ! 2044: #else ! 2045: #define DefDlgProc DefDlgProcA ! 2046: #endif // !UNICODE ! 2047: ! 2048: /* ! 2049: * Window extra byted needed for private dialog classes. ! 2050: */ ! 2051: #define DLGWINDOWEXTRA 30 ! 2052: ! 2053: #endif /* NOCTLMGR */ ! 2054: ! 2055: #ifndef NOMSG ! 2056: BOOL ! 2057: WINAPI ! 2058: CallMsgFilter( ! 2059: LPMSG lpMsg, ! 2060: int nCode); ! 2061: #endif ! 2062: ! 2063: #ifndef NOCLIPBOARD ! 2064: ! 2065: /* Clipboard Manager Functions */ ! 2066: BOOL ! 2067: WINAPI ! 2068: OpenClipboard( ! 2069: HWND hWnd); ! 2070: ! 2071: BOOL ! 2072: WINAPI ! 2073: CloseClipboard( ! 2074: VOID); ! 2075: ! 2076: HWND ! 2077: WINAPI ! 2078: GetClipboardOwner( ! 2079: VOID); ! 2080: ! 2081: HWND ! 2082: WINAPI ! 2083: SetClipboardViewer( ! 2084: HWND ); ! 2085: ! 2086: HWND ! 2087: WINAPI ! 2088: GetClipboardViewer(VOID); ! 2089: ! 2090: BOOL ! 2091: WINAPI ! 2092: ChangeClipboardChain( ! 2093: HWND, ! 2094: HWND); ! 2095: ! 2096: HANDLE ! 2097: WINAPI ! 2098: SetClipboardData( ! 2099: UINT uFormat, ! 2100: HANDLE hMem); ! 2101: ! 2102: HANDLE ! 2103: WINAPI ! 2104: GetClipboardData( ! 2105: UINT uFormat); ! 2106: ! 2107: UINT ! 2108: WINAPI ! 2109: RegisterClipboardFormatA( ! 2110: LPCSTR); ! 2111: UINT ! 2112: WINAPI ! 2113: RegisterClipboardFormatW( ! 2114: LPCWSTR); ! 2115: #ifdef UNICODE ! 2116: #define RegisterClipboardFormat RegisterClipboardFormatW ! 2117: #else ! 2118: #define RegisterClipboardFormat RegisterClipboardFormatA ! 2119: #endif // !UNICODE ! 2120: ! 2121: int ! 2122: WINAPI ! 2123: CountClipboardFormats( ! 2124: VOID); ! 2125: ! 2126: UINT ! 2127: WINAPI ! 2128: EnumClipboardFormats( ! 2129: UINT); ! 2130: ! 2131: int ! 2132: WINAPI ! 2133: GetClipboardFormatNameA( ! 2134: UINT, ! 2135: LPSTR, ! 2136: int); ! 2137: int ! 2138: WINAPI ! 2139: GetClipboardFormatNameW( ! 2140: UINT, ! 2141: LPWSTR, ! 2142: int); ! 2143: #ifdef UNICODE ! 2144: #define GetClipboardFormatName GetClipboardFormatNameW ! 2145: #else ! 2146: #define GetClipboardFormatName GetClipboardFormatNameA ! 2147: #endif // !UNICODE ! 2148: ! 2149: BOOL ! 2150: WINAPI ! 2151: EmptyClipboard( ! 2152: VOID); ! 2153: ! 2154: BOOL ! 2155: WINAPI ! 2156: IsClipboardFormatAvailable( ! 2157: UINT); ! 2158: ! 2159: int ! 2160: WINAPI ! 2161: GetPriorityClipboardFormat( ! 2162: UINT *, ! 2163: int); ! 2164: ! 2165: HWND ! 2166: WINAPI ! 2167: GetOpenClipboardWindow( ! 2168: VOID); ! 2169: ! 2170: #endif /* NOCLIPBOARD */ ! 2171: ! 2172: /* Character Translation Routines */ ! 2173: ! 2174: BOOL ! 2175: WINAPI ! 2176: CharToOemA( ! 2177: LPCSTR, ! 2178: LPSTR); ! 2179: BOOL ! 2180: WINAPI ! 2181: CharToOemW( ! 2182: LPCWSTR, ! 2183: LPSTR); ! 2184: #ifdef UNICODE ! 2185: #define CharToOem CharToOemW ! 2186: #else ! 2187: #define CharToOem CharToOemA ! 2188: #endif // !UNICODE ! 2189: ! 2190: BOOL ! 2191: WINAPI ! 2192: OemToCharA( ! 2193: LPCSTR, ! 2194: LPSTR); ! 2195: BOOL ! 2196: WINAPI ! 2197: OemToCharW( ! 2198: LPCSTR, ! 2199: LPWSTR); ! 2200: #ifdef UNICODE ! 2201: #define OemToChar OemToCharW ! 2202: #else ! 2203: #define OemToChar OemToCharA ! 2204: #endif // !UNICODE ! 2205: ! 2206: BOOL ! 2207: WINAPI ! 2208: CharToOemBuffA( ! 2209: LPCSTR, ! 2210: LPSTR, ! 2211: DWORD); ! 2212: BOOL ! 2213: WINAPI ! 2214: CharToOemBuffW( ! 2215: LPCWSTR, ! 2216: LPSTR, ! 2217: DWORD); ! 2218: #ifdef UNICODE ! 2219: #define CharToOemBuff CharToOemBuffW ! 2220: #else ! 2221: #define CharToOemBuff CharToOemBuffA ! 2222: #endif // !UNICODE ! 2223: ! 2224: BOOL ! 2225: WINAPI ! 2226: OemToCharBuffA( ! 2227: LPCSTR, ! 2228: LPSTR, ! 2229: DWORD); ! 2230: BOOL ! 2231: WINAPI ! 2232: OemToCharBuffW( ! 2233: LPCSTR, ! 2234: LPWSTR, ! 2235: DWORD); ! 2236: #ifdef UNICODE ! 2237: #define OemToCharBuff OemToCharBuffW ! 2238: #else ! 2239: #define OemToCharBuff OemToCharBuffA ! 2240: #endif // !UNICODE ! 2241: ! 2242: LPSTR ! 2243: WINAPI ! 2244: CharUpperA( ! 2245: LPSTR); ! 2246: LPWSTR ! 2247: WINAPI ! 2248: CharUpperW( ! 2249: LPWSTR); ! 2250: #ifdef UNICODE ! 2251: #define CharUpper CharUpperW ! 2252: #else ! 2253: #define CharUpper CharUpperA ! 2254: #endif // !UNICODE ! 2255: ! 2256: DWORD ! 2257: WINAPI ! 2258: CharUpperBuffA( ! 2259: LPSTR, ! 2260: DWORD); ! 2261: DWORD ! 2262: WINAPI ! 2263: CharUpperBuffW( ! 2264: LPWSTR, ! 2265: DWORD); ! 2266: #ifdef UNICODE ! 2267: #define CharUpperBuff CharUpperBuffW ! 2268: #else ! 2269: #define CharUpperBuff CharUpperBuffA ! 2270: #endif // !UNICODE ! 2271: ! 2272: LPSTR ! 2273: WINAPI ! 2274: CharLowerA( ! 2275: LPSTR); ! 2276: LPWSTR ! 2277: WINAPI ! 2278: CharLowerW( ! 2279: LPWSTR); ! 2280: #ifdef UNICODE ! 2281: #define CharLower CharLowerW ! 2282: #else ! 2283: #define CharLower CharLowerA ! 2284: #endif // !UNICODE ! 2285: ! 2286: DWORD ! 2287: WINAPI ! 2288: CharLowerBuffA( ! 2289: LPSTR, ! 2290: DWORD); ! 2291: DWORD ! 2292: WINAPI ! 2293: CharLowerBuffW( ! 2294: LPWSTR, ! 2295: DWORD); ! 2296: #ifdef UNICODE ! 2297: #define CharLowerBuff CharLowerBuffW ! 2298: #else ! 2299: #define CharLowerBuff CharLowerBuffA ! 2300: #endif // !UNICODE ! 2301: ! 2302: LPSTR ! 2303: WINAPI ! 2304: CharNextA( ! 2305: LPCSTR); ! 2306: LPWSTR ! 2307: WINAPI ! 2308: CharNextW( ! 2309: LPCWSTR); ! 2310: #ifdef UNICODE ! 2311: #define CharNext CharNextW ! 2312: #else ! 2313: #define CharNext CharNextA ! 2314: #endif // !UNICODE ! 2315: ! 2316: LPSTR ! 2317: WINAPI ! 2318: CharPrevA( ! 2319: LPCSTR, ! 2320: LPCSTR); ! 2321: LPWSTR ! 2322: WINAPI ! 2323: CharPrevW( ! 2324: LPCWSTR, ! 2325: LPCWSTR); ! 2326: #ifdef UNICODE ! 2327: #define CharPrev CharPrevW ! 2328: #else ! 2329: #define CharPrev CharPrevA ! 2330: #endif // !UNICODE ! 2331: ! 2332: /* Compatibility defines for character translation routines */ ! 2333: #define AnsiToOem CharToOemA ! 2334: #define OemToAnsi OemToCharA ! 2335: #define AnsiToOemBuff CharToOemBuffA ! 2336: #define OemToAnsiBuff OemToCharBuffA ! 2337: #define AnsiUpper CharUpperA ! 2338: #define AnsiUpperBuff CharUpperBuffA ! 2339: #define AnsiLower CharLowerA ! 2340: #define AnsiLowerBuff CharLowerBuffA ! 2341: #define AnsiNext CharNextA ! 2342: #define AnsiPrev CharPrevA ! 2343: ! 2344: #ifndef NOLANGUAGE ! 2345: /* Language dependent Routines */ ! 2346: ! 2347: BOOL ! 2348: WINAPI ! 2349: IsCharAlphaA( ! 2350: CHAR); ! 2351: BOOL ! 2352: WINAPI ! 2353: IsCharAlphaW( ! 2354: WCHAR); ! 2355: #ifdef UNICODE ! 2356: #define IsCharAlpha IsCharAlphaW ! 2357: #else ! 2358: #define IsCharAlpha IsCharAlphaA ! 2359: #endif // !UNICODE ! 2360: ! 2361: BOOL ! 2362: WINAPI ! 2363: IsCharAlphaNumericA( ! 2364: CHAR); ! 2365: BOOL ! 2366: WINAPI ! 2367: IsCharAlphaNumericW( ! 2368: WCHAR); ! 2369: #ifdef UNICODE ! 2370: #define IsCharAlphaNumeric IsCharAlphaNumericW ! 2371: #else ! 2372: #define IsCharAlphaNumeric IsCharAlphaNumericA ! 2373: #endif // !UNICODE ! 2374: ! 2375: BOOL ! 2376: WINAPI ! 2377: IsCharUpperA( ! 2378: CHAR); ! 2379: BOOL ! 2380: WINAPI ! 2381: IsCharUpperW( ! 2382: WCHAR); ! 2383: #ifdef UNICODE ! 2384: #define IsCharUpper IsCharUpperW ! 2385: #else ! 2386: #define IsCharUpper IsCharUpperA ! 2387: #endif // !UNICODE ! 2388: ! 2389: BOOL ! 2390: WINAPI ! 2391: IsCharLowerA( ! 2392: CHAR); ! 2393: BOOL ! 2394: WINAPI ! 2395: IsCharLowerW( ! 2396: WCHAR); ! 2397: #ifdef UNICODE ! 2398: #define IsCharLower IsCharLowerW ! 2399: #else ! 2400: #define IsCharLower IsCharLowerA ! 2401: #endif // !UNICODE ! 2402: ! 2403: #endif ! 2404: ! 2405: HWND ! 2406: WINAPI ! 2407: SetFocus( ! 2408: HWND hWnd); ! 2409: ! 2410: HWND ! 2411: WINAPI ! 2412: GetActiveWindow( ! 2413: VOID); ! 2414: ! 2415: HWND ! 2416: WINAPI ! 2417: GetFocus( ! 2418: VOID); ! 2419: ! 2420: UINT ! 2421: WINAPI ! 2422: GetKBCodePage( ! 2423: VOID); ! 2424: ! 2425: SHORT ! 2426: WINAPI ! 2427: GetKeyState( ! 2428: int nVirtKey); ! 2429: ! 2430: SHORT ! 2431: WINAPI ! 2432: GetAsyncKeyState( ! 2433: int vKey); ! 2434: ! 2435: BOOL ! 2436: WINAPI ! 2437: GetKeyboardState( ! 2438: PBYTE lpKeyState); ! 2439: ! 2440: BOOL ! 2441: WINAPI ! 2442: SetKeyboardState( ! 2443: LPBYTE lpKeyState); ! 2444: ! 2445: int ! 2446: WINAPI ! 2447: GetKeyNameTextA( ! 2448: LONG lParam, ! 2449: LPSTR lpString, ! 2450: int nSize ! 2451: ); ! 2452: int ! 2453: WINAPI ! 2454: GetKeyNameTextW( ! 2455: LONG lParam, ! 2456: LPWSTR lpString, ! 2457: int nSize ! 2458: ); ! 2459: #ifdef UNICODE ! 2460: #define GetKeyNameText GetKeyNameTextW ! 2461: #else ! 2462: #define GetKeyNameText GetKeyNameTextA ! 2463: #endif // !UNICODE ! 2464: ! 2465: int ! 2466: WINAPI ! 2467: GetKeyboardType( ! 2468: int nTypeFlag); ! 2469: ! 2470: int ! 2471: WINAPI ! 2472: ToAscii( ! 2473: UINT uVirtKey, ! 2474: UINT uScanCode, ! 2475: PBYTE lpKeyState, ! 2476: LPWORD lpChar, ! 2477: UINT uFlags); ! 2478: ! 2479: int ! 2480: WINAPI ! 2481: ToUnicode( ! 2482: UINT wVirtKey, ! 2483: UINT wScanCode, ! 2484: PBYTE lpKeyState, ! 2485: LPDWORD lpChar, ! 2486: UINT wFlags); ! 2487: ! 2488: SHORT ! 2489: WINAPI ! 2490: VkKeyScanA( ! 2491: CHAR cChar); ! 2492: SHORT ! 2493: WINAPI ! 2494: VkKeyScanW( ! 2495: WCHAR cChar); ! 2496: #ifdef UNICODE ! 2497: #define VkKeyScan VkKeyScanW ! 2498: #else ! 2499: #define VkKeyScan VkKeyScanA ! 2500: #endif // !UNICODE ! 2501: ! 2502: UINT ! 2503: WINAPI ! 2504: MapVirtualKey( ! 2505: UINT uCode, ! 2506: UINT uMapType); ! 2507: ! 2508: BOOL ! 2509: WINAPI ! 2510: GetInputState( ! 2511: VOID); ! 2512: ! 2513: DWORD ! 2514: WINAPI ! 2515: GetQueueStatus( ! 2516: UINT flags); ! 2517: ! 2518: HWND ! 2519: WINAPI ! 2520: GetCapture(VOID); ! 2521: ! 2522: HWND ! 2523: WINAPI ! 2524: SetCapture( ! 2525: HWND hWnd); ! 2526: ! 2527: BOOL ! 2528: WINAPI ! 2529: ReleaseCapture( ! 2530: VOID); ! 2531: ! 2532: DWORD ! 2533: WINAPI ! 2534: MsgWaitForMultipleObjects( ! 2535: DWORD nCount, ! 2536: LPHANDLE pHandles, ! 2537: BOOL fWaitAll, ! 2538: DWORD dwMilliseconds, ! 2539: DWORD dwWakeMask); ! 2540: ! 2541: /* Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects() */ ! 2542: #define QS_KEY 0x01 ! 2543: #define QS_MOUSEMOVE 0x02 ! 2544: #define QS_MOUSEBUTTON 0x04 ! 2545: #define QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON) ! 2546: #define QS_POSTMESSAGE 0x08 ! 2547: #define QS_TIMER 0x10 ! 2548: #define QS_PAINT 0x20 ! 2549: #define QS_SENDMESSAGE 0x40 ! 2550: #define QS_HOTKEY 0x80 ! 2551: #define QS_INPUT (QS_MOUSE | QS_KEY) ! 2552: #define QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY) ! 2553: ! 2554: ! 2555: UINT ! 2556: WINAPI ! 2557: GetSysInputMode( ! 2558: VOID); ! 2559: ! 2560: /* GetSysInputMode return values */ ! 2561: #define IMD_NONE 0 ! 2562: #define IMD_MENU 1 ! 2563: #define IMD_DIALOGBOX 2 ! 2564: #define IMD_NEXTWINDOW 3 ! 2565: #define IMD_SCROLLBAR 4 ! 2566: #define IMD_TITLEBUTTONTRACK 5 ! 2567: #define IMD_MOVESIZETRACK 6 ! 2568: #define IMD_SYSERRDLG 7 ! 2569: #define IMD_DRAGOBJECT 8 ! 2570: #define IMD_DRAGDETECT 9 ! 2571: ! 2572: ! 2573: /* Windows Functions */ ! 2574: UINT ! 2575: WINAPI ! 2576: SetTimer( ! 2577: HWND hwnd , ! 2578: UINT nIDEvent, ! 2579: UINT uElapse, ! 2580: TIMERPROC lpTimerFunc); ! 2581: ! 2582: BOOL ! 2583: WINAPI ! 2584: KillTimer( ! 2585: HWND hWnd, ! 2586: UINT uIDEvent); ! 2587: ! 2588: BOOL ! 2589: WINAPI ! 2590: IsWindowUnicode( ! 2591: HWND hWnd); ! 2592: ! 2593: BOOL ! 2594: WINAPI ! 2595: EnableWindow( ! 2596: HWND hWnd, ! 2597: BOOL bEnable); ! 2598: ! 2599: BOOL ! 2600: WINAPI ! 2601: IsWindowEnabled( ! 2602: HWND hWnd); ! 2603: ! 2604: HACCEL ! 2605: WINAPI ! 2606: LoadAcceleratorsA( ! 2607: HINSTANCE hInstance, ! 2608: LPCSTR lpTableName); ! 2609: HACCEL ! 2610: WINAPI ! 2611: LoadAcceleratorsW( ! 2612: HINSTANCE hInstance, ! 2613: LPCWSTR lpTableName); ! 2614: #ifdef UNICODE ! 2615: #define LoadAccelerators LoadAcceleratorsW ! 2616: #else ! 2617: #define LoadAccelerators LoadAcceleratorsA ! 2618: #endif // !UNICODE ! 2619: ! 2620: HACCEL ! 2621: WINAPI ! 2622: CreateAcceleratorTable( ! 2623: LPACCEL, int); ! 2624: ! 2625: BOOL ! 2626: WINAPI ! 2627: DestroyAcceleratorTable( ! 2628: HACCEL); ! 2629: ! 2630: int ! 2631: WINAPI ! 2632: CopyAcceleratorTable( ! 2633: HACCEL, ! 2634: LPACCEL , ! 2635: int); ! 2636: ! 2637: #ifndef NOMSG ! 2638: int ! 2639: WINAPI ! 2640: TranslateAccelerator( ! 2641: HWND hWnd, ! 2642: HACCEL hAccTable, ! 2643: LPMSG lpMsg); ! 2644: #endif ! 2645: ! 2646: #ifndef NOSYSMETRICS ! 2647: ! 2648: /* GetSystemMetrics() codes */ ! 2649: #define SM_CXSCREEN 0 ! 2650: #define SM_CYSCREEN 1 ! 2651: #define SM_CXVSCROLL 2 ! 2652: #define SM_CYHSCROLL 3 ! 2653: #define SM_CYCAPTION 4 ! 2654: #define SM_CXBORDER 5 ! 2655: #define SM_CYBORDER 6 ! 2656: #define SM_CXDLGFRAME 7 ! 2657: #define SM_CYDLGFRAME 8 ! 2658: #define SM_CYVTHUMB 9 ! 2659: #define SM_CXHTHUMB 10 ! 2660: #define SM_CXICON 11 ! 2661: #define SM_CYICON 12 ! 2662: #define SM_CXCURSOR 13 ! 2663: #define SM_CYCURSOR 14 ! 2664: #define SM_CYMENU 15 ! 2665: #define SM_CXFULLSCREEN 16 ! 2666: #define SM_CYFULLSCREEN 17 ! 2667: #define SM_CYKANJIWINDOW 18 ! 2668: #define SM_MOUSEPRESENT 19 ! 2669: #define SM_CYVSCROLL 20 ! 2670: #define SM_CXHSCROLL 21 ! 2671: #define SM_DEBUG 22 ! 2672: #define SM_SWAPBUTTON 23 ! 2673: #define SM_RESERVED1 24 ! 2674: #define SM_RESERVED2 25 ! 2675: #define SM_RESERVED3 26 ! 2676: #define SM_RESERVED4 27 ! 2677: #define SM_CXMIN 28 ! 2678: #define SM_CYMIN 29 ! 2679: #define SM_CXSIZE 30 ! 2680: #define SM_CYSIZE 31 ! 2681: #define SM_CXFRAME 32 ! 2682: #define SM_CYFRAME 33 ! 2683: #define SM_CXMINTRACK 34 ! 2684: #define SM_CYMINTRACK 35 ! 2685: #define SM_CXDOUBLECLK 36 ! 2686: #define SM_CYDOUBLECLK 37 ! 2687: #define SM_CXICONSPACING 38 ! 2688: #define SM_CYICONSPACING 39 ! 2689: #define SM_MENUDROPALIGNMENT 40 ! 2690: #define SM_PENWINDOWS 41 ! 2691: #define SM_DBCSENABLED 42 ! 2692: #define SM_CMOUSEBUTTONS 43 ! 2693: #define SM_MAX 43 ! 2694: #define SM_CMETRICS 44 ! 2695: ! 2696: int ! 2697: WINAPI ! 2698: GetSystemMetrics( ! 2699: int nIndex); ! 2700: ! 2701: #endif /* NOSYSMETRICS */ ! 2702: ! 2703: #ifndef NOMENUS ! 2704: ! 2705: HMENU ! 2706: WINAPI ! 2707: LoadMenuA( ! 2708: HINSTANCE hInstance, ! 2709: LPCSTR lpMenuName); ! 2710: HMENU ! 2711: WINAPI ! 2712: LoadMenuW( ! 2713: HINSTANCE hInstance, ! 2714: LPCWSTR lpMenuName); ! 2715: #ifdef UNICODE ! 2716: #define LoadMenu LoadMenuW ! 2717: #else ! 2718: #define LoadMenu LoadMenuA ! 2719: #endif // !UNICODE ! 2720: ! 2721: HMENU ! 2722: WINAPI ! 2723: LoadMenuIndirectA( ! 2724: LPMENUTEMPLATEA lpMenuTemplate); ! 2725: HMENU ! 2726: WINAPI ! 2727: LoadMenuIndirectW( ! 2728: LPMENUTEMPLATEW lpMenuTemplate); ! 2729: #ifdef UNICODE ! 2730: #define LoadMenuIndirect LoadMenuIndirectW ! 2731: #else ! 2732: #define LoadMenuIndirect LoadMenuIndirectA ! 2733: #endif // !UNICODE ! 2734: ! 2735: HMENU ! 2736: WINAPI ! 2737: GetMenu( ! 2738: HWND hWnd); ! 2739: ! 2740: BOOL ! 2741: WINAPI ! 2742: SetMenu( ! 2743: HWND hWnd, ! 2744: HMENU hMenu); ! 2745: ! 2746: BOOL ! 2747: WINAPI ! 2748: ChangeMenuA( ! 2749: HMENU, ! 2750: UINT, ! 2751: LPCTSTR, ! 2752: UINT, ! 2753: UINT); ! 2754: BOOL ! 2755: WINAPI ! 2756: ChangeMenuW( ! 2757: HMENU, ! 2758: UINT, ! 2759: LPCTSTR, ! 2760: UINT, ! 2761: UINT); ! 2762: #ifdef UNICODE ! 2763: #define ChangeMenu ChangeMenuW ! 2764: #else ! 2765: #define ChangeMenu ChangeMenuA ! 2766: #endif // !UNICODE ! 2767: ! 2768: BOOL ! 2769: WINAPI ! 2770: HiliteMenuItem( ! 2771: HWND hWnd, ! 2772: HMENU hMenu, ! 2773: UINT uIDHiliteItem, ! 2774: UINT uHilite); ! 2775: ! 2776: int ! 2777: WINAPI ! 2778: GetMenuStringA( ! 2779: HMENU hMenu, ! 2780: UINT uIDItem, ! 2781: LPSTR lpString, ! 2782: int nMaxCount, ! 2783: UINT uFlag); ! 2784: int ! 2785: WINAPI ! 2786: GetMenuStringW( ! 2787: HMENU hMenu, ! 2788: UINT uIDItem, ! 2789: LPWSTR lpString, ! 2790: int nMaxCount, ! 2791: UINT uFlag); ! 2792: #ifdef UNICODE ! 2793: #define GetMenuString GetMenuStringW ! 2794: #else ! 2795: #define GetMenuString GetMenuStringA ! 2796: #endif // !UNICODE ! 2797: ! 2798: UINT ! 2799: WINAPI ! 2800: GetMenuState( ! 2801: HMENU hMenu, ! 2802: UINT uId, ! 2803: UINT uFlags); ! 2804: ! 2805: BOOL ! 2806: WINAPI ! 2807: DrawMenuBar( ! 2808: HWND hWnd); ! 2809: ! 2810: HMENU ! 2811: WINAPI ! 2812: GetSystemMenu( ! 2813: HWND hWnd, ! 2814: BOOL bRevert); ! 2815: ! 2816: HMENU ! 2817: WINAPI ! 2818: CreateMenu( ! 2819: VOID); ! 2820: ! 2821: HMENU ! 2822: WINAPI ! 2823: CreatePopupMenu( ! 2824: VOID); ! 2825: ! 2826: BOOL ! 2827: WINAPI ! 2828: DestroyMenu( ! 2829: HMENU hMenu); ! 2830: ! 2831: DWORD ! 2832: WINAPI ! 2833: CheckMenuItem( ! 2834: HMENU hMenu, ! 2835: UINT uIDCheckItem, ! 2836: UINT uCheck); ! 2837: ! 2838: BOOL ! 2839: WINAPI ! 2840: EnableMenuItem( ! 2841: HMENU hMenu, ! 2842: UINT uIDEnableItem, ! 2843: UINT uEnable); ! 2844: ! 2845: HMENU ! 2846: WINAPI ! 2847: GetSubMenu( ! 2848: HMENU hMenu, ! 2849: int nPos); ! 2850: ! 2851: UINT ! 2852: WINAPI ! 2853: GetMenuItemID( ! 2854: HMENU hMenu, ! 2855: int nPos); ! 2856: ! 2857: int ! 2858: WINAPI ! 2859: GetMenuItemCount( ! 2860: HMENU hMenu); ! 2861: ! 2862: BOOL ! 2863: WINAPI ! 2864: InsertMenuA( ! 2865: HMENU hMenu, ! 2866: UINT uPosition, ! 2867: UINT uFlags, ! 2868: UINT uIDNewItem, ! 2869: LPCSTR lpNewItem ! 2870: ); ! 2871: BOOL ! 2872: WINAPI ! 2873: InsertMenuW( ! 2874: HMENU hMenu, ! 2875: UINT uPosition, ! 2876: UINT uFlags, ! 2877: UINT uIDNewItem, ! 2878: LPCWSTR lpNewItem ! 2879: ); ! 2880: #ifdef UNICODE ! 2881: #define InsertMenu InsertMenuW ! 2882: #else ! 2883: #define InsertMenu InsertMenuA ! 2884: #endif // !UNICODE ! 2885: ! 2886: BOOL ! 2887: WINAPI ! 2888: AppendMenuA( ! 2889: HMENU hMenu, ! 2890: UINT uFlags, ! 2891: UINT uIDNewItem, ! 2892: LPCSTR lpNewItem ! 2893: ); ! 2894: BOOL ! 2895: WINAPI ! 2896: AppendMenuW( ! 2897: HMENU hMenu, ! 2898: UINT uFlags, ! 2899: UINT uIDNewItem, ! 2900: LPCWSTR lpNewItem ! 2901: ); ! 2902: #ifdef UNICODE ! 2903: #define AppendMenu AppendMenuW ! 2904: #else ! 2905: #define AppendMenu AppendMenuA ! 2906: #endif // !UNICODE ! 2907: ! 2908: BOOL ! 2909: WINAPI ! 2910: ModifyMenuA( ! 2911: HMENU hMnu, ! 2912: UINT uPosition, ! 2913: UINT uFlags, ! 2914: UINT uIDNewItem, ! 2915: LPCSTR lpNewItem ! 2916: ); ! 2917: BOOL ! 2918: WINAPI ! 2919: ModifyMenuW( ! 2920: HMENU hMnu, ! 2921: UINT uPosition, ! 2922: UINT uFlags, ! 2923: UINT uIDNewItem, ! 2924: LPCWSTR lpNewItem ! 2925: ); ! 2926: #ifdef UNICODE ! 2927: #define ModifyMenu ModifyMenuW ! 2928: #else ! 2929: #define ModifyMenu ModifyMenuA ! 2930: #endif // !UNICODE ! 2931: ! 2932: BOOL ! 2933: WINAPI RemoveMenu( ! 2934: HMENU hMenu, ! 2935: UINT uPosition, ! 2936: UINT uFlags); ! 2937: ! 2938: BOOL ! 2939: WINAPI ! 2940: DeleteMenu( ! 2941: HMENU hMenu, ! 2942: UINT uPosition, ! 2943: UINT uFlags); ! 2944: ! 2945: BOOL ! 2946: WINAPI ! 2947: SetMenuItemBitmaps( ! 2948: HMENU hMenu, ! 2949: UINT uPosition, ! 2950: UINT uFlags, ! 2951: HBITMAP hBitmapUnchecked, ! 2952: HBITMAP hBitmapChecked); ! 2953: ! 2954: LONG ! 2955: WINAPI ! 2956: GetMenuCheckMarkDimensions( ! 2957: VOID); ! 2958: ! 2959: BOOL ! 2960: WINAPI ! 2961: TrackPopupMenu( ! 2962: HMENU hMenu, ! 2963: UINT uFlags, ! 2964: int x, ! 2965: int y, ! 2966: int nReserved, ! 2967: HWND hWnd, ! 2968: CONST RECT *prcRect); ! 2969: ! 2970: /* Flags for TrackPopupMenu */ ! 2971: #define TPM_LEFTBUTTON 0x0000L ! 2972: #define TPM_RIGHTBUTTON 0x0002L ! 2973: #define TPM_LEFTALIGN 0x0000L ! 2974: #define TPM_CENTERALIGN 0x0004L ! 2975: #define TPM_RIGHTALIGN 0x0008L ! 2976: ! 2977: #endif /* NOMENUS */ ! 2978: ! 2979: BOOL ! 2980: WINAPI ! 2981: DrawIcon( ! 2982: HDC, ! 2983: int, ! 2984: int, ! 2985: HICON); ! 2986: ! 2987: #ifndef NODRAWTEXT ! 2988: ! 2989: /* DrawText() Format Flags */ ! 2990: #define DT_TOP 0x0000 ! 2991: #define DT_LEFT 0x0000 ! 2992: #define DT_CENTER 0x0001 ! 2993: #define DT_RIGHT 0x0002 ! 2994: #define DT_VCENTER 0x0004 ! 2995: #define DT_BOTTOM 0x0008 ! 2996: #define DT_WORDBREAK 0x0010 ! 2997: #define DT_SINGLELINE 0x0020 ! 2998: #define DT_EXPANDTABS 0x0040 ! 2999: #define DT_TABSTOP 0x0080 ! 3000: #define DT_NOCLIP 0x0100 ! 3001: #define DT_EXTERNALLEADING 0x0200 ! 3002: #define DT_CALCRECT 0x0400 ! 3003: #define DT_NOPREFIX 0x0800 ! 3004: #define DT_INTERNAL 0x1000 ! 3005: ! 3006: #endif /* NODRAWTEXT */ ! 3007: ! 3008: int ! 3009: WINAPI DrawTextA( ! 3010: HDC hDC, ! 3011: LPCSTR lpString, ! 3012: int nCount, ! 3013: LPRECT lpRect, ! 3014: UINT uFormat); ! 3015: int ! 3016: WINAPI DrawTextW( ! 3017: HDC hDC, ! 3018: LPCWSTR lpString, ! 3019: int nCount, ! 3020: LPRECT lpRect, ! 3021: UINT uFormat); ! 3022: #ifdef UNICODE ! 3023: #define DrawText DrawTextW ! 3024: #else ! 3025: #define DrawText DrawTextA ! 3026: #endif // !UNICODE ! 3027: ! 3028: BOOL ! 3029: WINAPI ! 3030: GrayStringA( ! 3031: HDC hDC, ! 3032: HBRUSH hBrush, ! 3033: GRAYSTRINGPROC lpOutputFunc, ! 3034: LPARAM lpData, ! 3035: int nCount, ! 3036: int X, ! 3037: int Y, ! 3038: int nWidth, ! 3039: int nHeight); ! 3040: BOOL ! 3041: WINAPI ! 3042: GrayStringW( ! 3043: HDC hDC, ! 3044: HBRUSH hBrush, ! 3045: GRAYSTRINGPROC lpOutputFunc, ! 3046: LPARAM lpData, ! 3047: int nCount, ! 3048: int X, ! 3049: int Y, ! 3050: int nWidth, ! 3051: int nHeight); ! 3052: #ifdef UNICODE ! 3053: #define GrayString GrayStringW ! 3054: #else ! 3055: #define GrayString GrayStringA ! 3056: #endif // !UNICODE ! 3057: ! 3058: LONG ! 3059: WINAPI ! 3060: TabbedTextOutA( ! 3061: HDC hDC, ! 3062: int X, ! 3063: int Y, ! 3064: LPCSTR lpString, ! 3065: int nCount, ! 3066: int nTabPositions, ! 3067: LPINT lpnTabStopPositions, ! 3068: int nTabOrigin); ! 3069: LONG ! 3070: WINAPI ! 3071: TabbedTextOutW( ! 3072: HDC hDC, ! 3073: int X, ! 3074: int Y, ! 3075: LPCWSTR lpString, ! 3076: int nCount, ! 3077: int nTabPositions, ! 3078: LPINT lpnTabStopPositions, ! 3079: int nTabOrigin); ! 3080: #ifdef UNICODE ! 3081: #define TabbedTextOut TabbedTextOutW ! 3082: #else ! 3083: #define TabbedTextOut TabbedTextOutA ! 3084: #endif // !UNICODE ! 3085: ! 3086: DWORD ! 3087: WINAPI ! 3088: GetTabbedTextExtentA( ! 3089: HDC hDC, ! 3090: LPCSTR lpString, ! 3091: int nCount, ! 3092: int nTabPositions, ! 3093: LPINT lpnTabStopPositions); ! 3094: DWORD ! 3095: WINAPI ! 3096: GetTabbedTextExtentW( ! 3097: HDC hDC, ! 3098: LPCWSTR lpString, ! 3099: int nCount, ! 3100: int nTabPositions, ! 3101: LPINT lpnTabStopPositions); ! 3102: #ifdef UNICODE ! 3103: #define GetTabbedTextExtent GetTabbedTextExtentW ! 3104: #else ! 3105: #define GetTabbedTextExtent GetTabbedTextExtentA ! 3106: #endif // !UNICODE ! 3107: ! 3108: BOOL ! 3109: WINAPI ! 3110: UpdateWindow( ! 3111: HWND hWnd); ! 3112: ! 3113: HWND ! 3114: WINAPI ! 3115: SetActiveWindow( ! 3116: HWND hWnd ); ! 3117: ! 3118: HWND ! 3119: WINAPI ! 3120: GetForegroundWindow( ! 3121: VOID); ! 3122: ! 3123: BOOL ! 3124: WINAPI ! 3125: SetForegroundWindow( ! 3126: HWND hWnd); ! 3127: ! 3128: HWND ! 3129: WINAPI ! 3130: WindowFromDC( ! 3131: HDC hdc); ! 3132: ! 3133: HDC ! 3134: WINAPI ! 3135: GetDC( ! 3136: HWND hWnd ); ! 3137: ! 3138: HDC ! 3139: WINAPI ! 3140: GetDCEx( ! 3141: HWND hwnd , ! 3142: HRGN hrgnClip, ! 3143: DWORD flags); ! 3144: ! 3145: /* GetDCEx() flags */ ! 3146: #define DCX_WINDOW 0x00000001L ! 3147: #define DCX_CACHE 0x00000002L ! 3148: #define DCX_NORESETATTRS 0x00000004L ! 3149: #define DCX_CLIPCHILDREN 0x00000008L ! 3150: #define DCX_CLIPSIBLINGS 0x00000010L ! 3151: #define DCX_PARENTCLIP 0x00000020L ! 3152: ! 3153: #define DCX_EXCLUDERGN 0x00000040L ! 3154: #define DCX_INTERSECTRGN 0x00000080L ! 3155: ! 3156: #define DCX_EXCLUDEUPDATE 0x00000100L ! 3157: #define DCX_INTERSECTUPDATE 0x00000200L ! 3158: ! 3159: #define DCX_LOCKWINDOWUPDATE 0x00000400L ! 3160: ! 3161: ! 3162: #define DCX_USESTYLE 0x00010000L ! 3163: #define DCX_NORECOMPUTE 0x00100000L ! 3164: #define DCX_VALIDATE 0x00200000L ! 3165: ! 3166: ! 3167: HDC ! 3168: WINAPI ! 3169: GetWindowDC( ! 3170: HWND hWnd ); ! 3171: ! 3172: int ! 3173: WINAPI ! 3174: ReleaseDC( ! 3175: HWND hWnd, ! 3176: HDC hDC); ! 3177: ! 3178: HDC ! 3179: WINAPI ! 3180: BeginPaint( ! 3181: HWND hWnd, ! 3182: LPPAINTSTRUCT lpPaint); ! 3183: ! 3184: BOOL ! 3185: WINAPI ! 3186: EndPaint( ! 3187: HWND hWnd, ! 3188: LPPAINTSTRUCT lpPaint); ! 3189: ! 3190: BOOL ! 3191: WINAPI ! 3192: GetUpdateRect( ! 3193: HWND hWnd, ! 3194: LPRECT lpRect, ! 3195: BOOL bErase); ! 3196: ! 3197: int ! 3198: WINAPI ! 3199: GetUpdateRgn( ! 3200: HWND hWnd, ! 3201: HRGN hRgn, ! 3202: BOOL bErase); ! 3203: ! 3204: int ! 3205: WINAPI ! 3206: ExcludeUpdateRgn( ! 3207: HDC hDC, ! 3208: HWND hWnd); ! 3209: ! 3210: BOOL ! 3211: WINAPI ! 3212: InvalidateRect( ! 3213: HWND hWnd , ! 3214: CONST RECT *lpRect, ! 3215: BOOL bErase); ! 3216: ! 3217: BOOL ! 3218: WINAPI ! 3219: ValidateRect( ! 3220: HWND hWnd , ! 3221: CONST RECT *lpRect); ! 3222: ! 3223: BOOL ! 3224: WINAPI ! 3225: InvalidateRgn( ! 3226: HWND hWnd, ! 3227: HRGN hRgn, ! 3228: BOOL bErase); ! 3229: ! 3230: BOOL ! 3231: WINAPI ! 3232: ValidateRgn( ! 3233: HWND hWnd, ! 3234: HRGN hRgn); ! 3235: ! 3236: ! 3237: BOOL WINAPI RedrawWindow( ! 3238: HWND hwnd, ! 3239: CONST RECT *lprcUpdate, ! 3240: HRGN hrgnUpdate, ! 3241: UINT flags); ! 3242: ! 3243: /* RedrawWindow() flags */ ! 3244: #define RDW_INVALIDATE 0x0001 ! 3245: #define RDW_INTERNALPAINT 0x0002 ! 3246: #define RDW_ERASE 0x0004 ! 3247: ! 3248: #define RDW_VALIDATE 0x0008 ! 3249: #define RDW_NOINTERNALPAINT 0x0010 ! 3250: #define RDW_NOERASE 0x0020 ! 3251: ! 3252: #define RDW_NOCHILDREN 0x0040 ! 3253: #define RDW_ALLCHILDREN 0x0080 ! 3254: ! 3255: #define RDW_UPDATENOW 0x0100 ! 3256: #define RDW_ERASENOW 0x0200 ! 3257: ! 3258: ! 3259: /* LockWindowUpdate API */ ! 3260: BOOL ! 3261: WINAPI ! 3262: LockWindowUpdate( ! 3263: HWND hwndLock); ! 3264: ! 3265: BOOL ! 3266: WINAPI ! 3267: ScrollWindow( ! 3268: HWND hWnd, ! 3269: int XAmount, ! 3270: int YAmount, ! 3271: CONST RECT *lpRect, ! 3272: CONST RECT *lpClipRect); ! 3273: ! 3274: BOOL ! 3275: WINAPI ! 3276: ScrollDC( ! 3277: HDC hDC, ! 3278: int dx, ! 3279: int dy, ! 3280: CONST RECT *lprcScroll, ! 3281: CONST RECT *lprcClip , ! 3282: HRGN hrgnUpdate, ! 3283: LPRECT lprcUpdate); ! 3284: ! 3285: int ! 3286: WINAPI ! 3287: ScrollWindowEx( ! 3288: HWND hwnd, ! 3289: int dx, ! 3290: int dy, ! 3291: CONST RECT *prcScroll, ! 3292: CONST RECT *prcClip , ! 3293: HRGN hrgnUpdate, ! 3294: LPRECT prcUpdate, ! 3295: UINT flags); ! 3296: ! 3297: #define SW_SCROLLCHILDREN 0x0001 /* Scroll children within *lprcScroll. */ ! 3298: #define SW_INVALIDATE 0x0002 /* Invalidate after scrolling */ ! 3299: #define SW_ERASE 0x0004 /* If SW_INVALIDATE, don't send WM_ERASEBACKGROUND */ ! 3300: ! 3301: ! 3302: #ifndef NOSCROLL ! 3303: int ! 3304: WINAPI ! 3305: SetScrollPos( ! 3306: HWND hWnd, ! 3307: int nBar, ! 3308: int nPos, ! 3309: BOOL bRedraw); ! 3310: ! 3311: int ! 3312: WINAPI ! 3313: GetScrollPos( ! 3314: HWND hWnd, ! 3315: int nBar); ! 3316: ! 3317: BOOL ! 3318: WINAPI ! 3319: SetScrollRange( ! 3320: HWND hWnd, ! 3321: int nBar, ! 3322: int nMinPos, ! 3323: int nMaxPos, ! 3324: BOOL bRedraw); ! 3325: ! 3326: BOOL ! 3327: WINAPI ! 3328: GetScrollRange( ! 3329: HWND hWnd, ! 3330: int nBar, ! 3331: LPINT lpMinPos, ! 3332: LPINT lpMaxPos); ! 3333: ! 3334: BOOL ! 3335: WINAPI ! 3336: ShowScrollBar( ! 3337: HWND hWnd, ! 3338: int wBar, ! 3339: BOOL bShow); ! 3340: ! 3341: BOOL ! 3342: WINAPI ! 3343: EnableScrollBar( ! 3344: HWND hwnd, ! 3345: UINT wSBflags, ! 3346: UINT wArrows); ! 3347: #endif ! 3348: ! 3349: BOOL ! 3350: WINAPI ! 3351: SetPropA( ! 3352: HWND hWnd, ! 3353: LPCSTR lpString, ! 3354: HANDLE hData); ! 3355: BOOL ! 3356: WINAPI ! 3357: SetPropW( ! 3358: HWND hWnd, ! 3359: LPCWSTR lpString, ! 3360: HANDLE hData); ! 3361: #ifdef UNICODE ! 3362: #define SetProp SetPropW ! 3363: #else ! 3364: #define SetProp SetPropA ! 3365: #endif // !UNICODE ! 3366: ! 3367: HANDLE ! 3368: WINAPI ! 3369: GetPropA( ! 3370: HWND hWnd, ! 3371: LPCSTR lpString); ! 3372: HANDLE ! 3373: WINAPI ! 3374: GetPropW( ! 3375: HWND hWnd, ! 3376: LPCWSTR lpString); ! 3377: #ifdef UNICODE ! 3378: #define GetProp GetPropW ! 3379: #else ! 3380: #define GetProp GetPropA ! 3381: #endif // !UNICODE ! 3382: ! 3383: HANDLE ! 3384: WINAPI ! 3385: RemovePropA( ! 3386: HWND hWnd, ! 3387: LPCSTR lpString); ! 3388: HANDLE ! 3389: WINAPI ! 3390: RemovePropW( ! 3391: HWND hWnd, ! 3392: LPCWSTR lpString); ! 3393: #ifdef UNICODE ! 3394: #define RemoveProp RemovePropW ! 3395: #else ! 3396: #define RemoveProp RemovePropA ! 3397: #endif // !UNICODE ! 3398: ! 3399: int ! 3400: WINAPI ! 3401: EnumPropsExA( ! 3402: HWND hWnd, ! 3403: PROPENUMPROC lpEnumFunc, ! 3404: LPARAM lParam); ! 3405: int ! 3406: WINAPI ! 3407: EnumPropsExW( ! 3408: HWND hWnd, ! 3409: PROPENUMPROC lpEnumFunc, ! 3410: LPARAM lParam); ! 3411: #ifdef UNICODE ! 3412: #define EnumPropsEx EnumPropsExW ! 3413: #else ! 3414: #define EnumPropsEx EnumPropsExA ! 3415: #endif // !UNICODE ! 3416: ! 3417: int ! 3418: WINAPI ! 3419: EnumPropsA( ! 3420: HWND hWnd, ! 3421: PROPENUMPROC lpEnumFunc); ! 3422: int ! 3423: WINAPI ! 3424: EnumPropsW( ! 3425: HWND hWnd, ! 3426: PROPENUMPROC lpEnumFunc); ! 3427: #ifdef UNICODE ! 3428: #define EnumProps EnumPropsW ! 3429: #else ! 3430: #define EnumProps EnumPropsA ! 3431: #endif // !UNICODE ! 3432: ! 3433: BOOL ! 3434: WINAPI ! 3435: SetWindowTextA( ! 3436: HWND hWnd, ! 3437: LPCSTR lpString); ! 3438: BOOL ! 3439: WINAPI ! 3440: SetWindowTextW( ! 3441: HWND hWnd, ! 3442: LPCWSTR lpString); ! 3443: #ifdef UNICODE ! 3444: #define SetWindowText SetWindowTextW ! 3445: #else ! 3446: #define SetWindowText SetWindowTextA ! 3447: #endif // !UNICODE ! 3448: ! 3449: int ! 3450: WINAPI ! 3451: GetWindowTextA( ! 3452: HWND hWnd, ! 3453: LPSTR lpString, ! 3454: int nMaxCount); ! 3455: int ! 3456: WINAPI ! 3457: GetWindowTextW( ! 3458: HWND hWnd, ! 3459: LPWSTR lpString, ! 3460: int nMaxCount); ! 3461: #ifdef UNICODE ! 3462: #define GetWindowText GetWindowTextW ! 3463: #else ! 3464: #define GetWindowText GetWindowTextA ! 3465: #endif // !UNICODE ! 3466: ! 3467: int ! 3468: WINAPI ! 3469: GetWindowTextLengthA( ! 3470: HWND hWnd); ! 3471: int ! 3472: WINAPI ! 3473: GetWindowTextLengthW( ! 3474: HWND hWnd); ! 3475: #ifdef UNICODE ! 3476: #define GetWindowTextLength GetWindowTextLengthW ! 3477: #else ! 3478: #define GetWindowTextLength GetWindowTextLengthA ! 3479: #endif // !UNICODE ! 3480: ! 3481: BOOL ! 3482: WINAPI ! 3483: GetClientRect( ! 3484: HWND hWnd, ! 3485: LPRECT lpRect); ! 3486: ! 3487: BOOL ! 3488: WINAPI ! 3489: GetWindowRect( ! 3490: HWND hWnd, ! 3491: LPRECT lpRect); ! 3492: ! 3493: BOOL ! 3494: WINAPI ! 3495: AdjustWindowRect( ! 3496: LPRECT lpRect, ! 3497: DWORD dwStyle, ! 3498: BOOL bMenu); ! 3499: ! 3500: BOOL ! 3501: WINAPI ! 3502: AdjustWindowRectEx( ! 3503: LPRECT lpRect, ! 3504: DWORD dwStyle, ! 3505: BOOL bMenu, ! 3506: DWORD dwExStyle); ! 3507: ! 3508: #ifndef NOMB ! 3509: ! 3510: /* MessageBox() Flags */ ! 3511: #define MB_OK 0x0000L ! 3512: #define MB_OKCANCEL 0x0001L ! 3513: #define MB_ABORTRETRYIGNORE 0x0002L ! 3514: #define MB_YESNOCANCEL 0x0003L ! 3515: #define MB_YESNO 0x0004L ! 3516: #define MB_RETRYCANCEL 0x0005L ! 3517: ! 3518: #define MB_ICONHAND 0x0010L ! 3519: #define MB_ICONQUESTION 0x0020L ! 3520: #define MB_ICONEXCLAMATION 0x0030L ! 3521: #define MB_ICONASTERISK 0x0040L ! 3522: ! 3523: #define MB_ICONINFORMATION MB_ICONASTERISK ! 3524: #define MB_ICONSTOP MB_ICONHAND ! 3525: ! 3526: #define MB_DEFBUTTON1 0x0000L ! 3527: #define MB_DEFBUTTON2 0x0100L ! 3528: #define MB_DEFBUTTON3 0x0200L ! 3529: ! 3530: #define MB_APPLMODAL 0x0000L ! 3531: #define MB_SYSTEMMODAL 0x1000L ! 3532: #define MB_TASKMODAL 0x2000L ! 3533: ! 3534: #define MB_NOFOCUS 0x8000L ! 3535: #define MB_SETFOREGROUND 0x10000L ! 3536: ! 3537: #define MB_TYPEMASK 0x000FL ! 3538: #define MB_ICONMASK 0x00F0L ! 3539: #define MB_DEFMASK 0x0F00L ! 3540: #define MB_MODEMASK 0x3000L ! 3541: #define MB_MISCMASK 0xC000L ! 3542: ! 3543: int ! 3544: WINAPI ! 3545: MessageBoxExA( ! 3546: HWND hWnd , ! 3547: LPCSTR lpText, ! 3548: LPCSTR lpCaption , ! 3549: UINT uType, ! 3550: WORD wLanguageId); ! 3551: int ! 3552: WINAPI ! 3553: MessageBoxExW( ! 3554: HWND hWnd , ! 3555: LPCWSTR lpText, ! 3556: LPCWSTR lpCaption , ! 3557: UINT uType, ! 3558: WORD wLanguageId); ! 3559: #ifdef UNICODE ! 3560: #define MessageBoxEx MessageBoxExW ! 3561: #else ! 3562: #define MessageBoxEx MessageBoxExA ! 3563: #endif // !UNICODE ! 3564: ! 3565: #define MessageBoxA(hWnd, lpText, lpCaption, uType) \ ! 3566: MessageBoxExA(hWnd, lpText, lpCaption, uType, 0) ! 3567: #define MessageBoxW(hWnd, lpText, lpCaption, uType) \ ! 3568: MessageBoxExW(hWnd, lpText, lpCaption, uType, 0) ! 3569: #ifdef UNICODE ! 3570: #define MessageBox MessageBoxW ! 3571: #else ! 3572: #define MessageBox MessageBoxA ! 3573: #endif // !UNICODE ! 3574: ! 3575: BOOL ! 3576: WINAPI ! 3577: MessageBeep( ! 3578: UINT uType); ! 3579: ! 3580: #endif /* NOMB */ ! 3581: ! 3582: int ! 3583: WINAPI ! 3584: ShowCursor( ! 3585: BOOL bShow); ! 3586: ! 3587: BOOL ! 3588: WINAPI ! 3589: SetCursorPos( ! 3590: int X, ! 3591: int Y); ! 3592: ! 3593: HCURSOR ! 3594: WINAPI ! 3595: SetCursor( ! 3596: HCURSOR hCursor ); ! 3597: ! 3598: BOOL ! 3599: WINAPI ! 3600: GetCursorPos( ! 3601: LPPOINT lpPoint); ! 3602: ! 3603: BOOL ! 3604: WINAPI ! 3605: ClipCursor( ! 3606: CONST RECT *lpRect ); ! 3607: ! 3608: BOOL ! 3609: WINAPI ! 3610: GetClipCursor( ! 3611: LPRECT lpRect); ! 3612: ! 3613: HCURSOR ! 3614: WINAPI ! 3615: GetCursor( ! 3616: VOID); ! 3617: ! 3618: BOOL ! 3619: WINAPI ! 3620: CreateCaret( ! 3621: HWND hWnd, ! 3622: HBITMAP hBitmap , ! 3623: int nWidth, ! 3624: int nHeight); ! 3625: ! 3626: UINT ! 3627: WINAPI ! 3628: GetCaretBlinkTime( ! 3629: VOID); ! 3630: ! 3631: BOOL ! 3632: WINAPI ! 3633: SetCaretBlinkTime( ! 3634: UINT uMSeconds); ! 3635: ! 3636: BOOL ! 3637: WINAPI ! 3638: DestroyCaret( ! 3639: VOID); ! 3640: ! 3641: BOOL ! 3642: WINAPI ! 3643: HideCaret( ! 3644: HWND hWnd ); ! 3645: ! 3646: BOOL ! 3647: WINAPI ! 3648: ShowCaret( ! 3649: HWND hWnd ); ! 3650: ! 3651: BOOL ! 3652: WINAPI ! 3653: SetCaretPos( ! 3654: int X, ! 3655: int Y); ! 3656: ! 3657: BOOL ! 3658: WINAPI ! 3659: GetCaretPos( ! 3660: LPPOINT lpPoint); ! 3661: ! 3662: BOOL ! 3663: WINAPI ! 3664: ClientToScreen( ! 3665: HWND hWnd, ! 3666: LPPOINT lpPoint); ! 3667: ! 3668: BOOL ! 3669: WINAPI ! 3670: ScreenToClient( ! 3671: HWND hWnd, ! 3672: LPPOINT lpPoint); ! 3673: ! 3674: int ! 3675: WINAPI ! 3676: MapWindowPoints( ! 3677: HWND hWndFrom, ! 3678: HWND hWndTo, ! 3679: LPPOINT lpPoints, ! 3680: UINT cPoints); ! 3681: ! 3682: HWND ! 3683: WINAPI ! 3684: WindowFromPoint( ! 3685: POINT Point); ! 3686: ! 3687: HWND ! 3688: WINAPI ! 3689: ChildWindowFromPoint( ! 3690: HWND hWndParent, ! 3691: POINT Point); ! 3692: ! 3693: #ifndef NOCOLOR ! 3694: ! 3695: /* Color Types */ ! 3696: #define CTLCOLOR_MSGBOX 0 ! 3697: #define CTLCOLOR_EDIT 1 ! 3698: #define CTLCOLOR_LISTBOX 2 ! 3699: #define CTLCOLOR_BTN 3 ! 3700: #define CTLCOLOR_DLG 4 ! 3701: #define CTLCOLOR_SCROLLBAR 5 ! 3702: #define CTLCOLOR_STATIC 6 ! 3703: #define CTLCOLOR_MAX 8 /* three bits max */ ! 3704: ! 3705: #define COLOR_SCROLLBAR 0 ! 3706: #define COLOR_BACKGROUND 1 ! 3707: #define COLOR_ACTIVECAPTION 2 ! 3708: #define COLOR_INACTIVECAPTION 3 ! 3709: #define COLOR_MENU 4 ! 3710: #define COLOR_WINDOW 5 ! 3711: #define COLOR_WINDOWFRAME 6 ! 3712: #define COLOR_MENUTEXT 7 ! 3713: #define COLOR_WINDOWTEXT 8 ! 3714: #define COLOR_CAPTIONTEXT 9 ! 3715: #define COLOR_ACTIVEBORDER 10 ! 3716: #define COLOR_INACTIVEBORDER 11 ! 3717: #define COLOR_APPWORKSPACE 12 ! 3718: #define COLOR_HIGHLIGHT 13 ! 3719: #define COLOR_HIGHLIGHTTEXT 14 ! 3720: #define COLOR_BTNFACE 15 ! 3721: #define COLOR_BTNSHADOW 16 ! 3722: #define COLOR_GRAYTEXT 17 ! 3723: #define COLOR_BTNTEXT 18 ! 3724: #define COLOR_INACTIVECAPTIONTEXT 19 ! 3725: #define COLOR_BTNHIGHLIGHT 20 ! 3726: #define COLOR_ENDCOLORS COLOR_BTNHIGHLIGHT ! 3727: #define COLOR_MAX 20 ! 3728: ! 3729: DWORD ! 3730: WINAPI ! 3731: GetSysColor( ! 3732: int nIndex); ! 3733: ! 3734: BOOL ! 3735: WINAPI ! 3736: SetSysColors( ! 3737: int, ! 3738: CONST INT *, ! 3739: CONST COLORREF *); ! 3740: ! 3741: #endif /* NOCOLOR */ ! 3742: ! 3743: BOOL ! 3744: WINAPI ! 3745: DrawFocusRect( ! 3746: HDC, ! 3747: CONST RECT *); ! 3748: ! 3749: int ! 3750: WINAPI ! 3751: FillRect( ! 3752: HDC hdc, ! 3753: CONST RECT *lprc, ! 3754: HBRUSH hbr); ! 3755: ! 3756: int ! 3757: WINAPI ! 3758: FrameRect( ! 3759: HDC hdc, ! 3760: CONST RECT *lprc, ! 3761: HBRUSH hbr); ! 3762: ! 3763: BOOL ! 3764: WINAPI ! 3765: InvertRect( ! 3766: HDC hdc, ! 3767: CONST RECT *lprc); ! 3768: ! 3769: BOOL ! 3770: WINAPI ! 3771: SetRect( ! 3772: LPRECT, ! 3773: int, ! 3774: int, ! 3775: int, ! 3776: int); ! 3777: ! 3778: BOOL ! 3779: WINAPI ! 3780: SetRectEmpty( ! 3781: LPRECT); ! 3782: ! 3783: int ! 3784: WINAPI ! 3785: CopyRect( ! 3786: LPRECT, ! 3787: CONST RECT *); ! 3788: ! 3789: BOOL ! 3790: WINAPI ! 3791: InflateRect( ! 3792: LPRECT, ! 3793: int, ! 3794: int); ! 3795: ! 3796: int ! 3797: WINAPI ! 3798: IntersectRect( ! 3799: LPRECT, ! 3800: CONST RECT *, ! 3801: CONST RECT *); ! 3802: ! 3803: BOOL ! 3804: WINAPI ! 3805: UnionRect( ! 3806: LPRECT, ! 3807: CONST RECT *, ! 3808: CONST RECT *); ! 3809: ! 3810: BOOL ! 3811: WINAPI ! 3812: OffsetRect( ! 3813: LPRECT, ! 3814: int, ! 3815: int); ! 3816: ! 3817: BOOL ! 3818: WINAPI ! 3819: IsRectEmpty( ! 3820: CONST RECT *lprc); ! 3821: ! 3822: BOOL ! 3823: WINAPI ! 3824: EqualRect( ! 3825: CONST RECT *, ! 3826: CONST RECT *); ! 3827: ! 3828: BOOL ! 3829: WINAPI ! 3830: PtInRect( ! 3831: CONST RECT *, ! 3832: POINT); ! 3833: ! 3834: #ifndef NOWINOFFSETS ! 3835: ! 3836: WORD ! 3837: WINAPI ! 3838: GetWindowWord( ! 3839: HWND hWnd, ! 3840: int nIndex); ! 3841: ! 3842: WORD ! 3843: WINAPI ! 3844: SetWindowWord( ! 3845: HWND hWnd, ! 3846: int nIndex, ! 3847: WORD wNewWord); ! 3848: ! 3849: LONG ! 3850: WINAPI ! 3851: GetWindowLongA( ! 3852: HWND hWnd, ! 3853: int nIndex); ! 3854: LONG ! 3855: WINAPI ! 3856: GetWindowLongW( ! 3857: HWND hWnd, ! 3858: int nIndex); ! 3859: #ifdef UNICODE ! 3860: #define GetWindowLong GetWindowLongW ! 3861: #else ! 3862: #define GetWindowLong GetWindowLongA ! 3863: #endif // !UNICODE ! 3864: ! 3865: LONG ! 3866: WINAPI ! 3867: SetWindowLongA( ! 3868: HWND hWnd, ! 3869: int nIndex, ! 3870: LONG dwNewLong); ! 3871: LONG ! 3872: WINAPI ! 3873: SetWindowLongW( ! 3874: HWND hWnd, ! 3875: int nIndex, ! 3876: LONG dwNewLong); ! 3877: #ifdef UNICODE ! 3878: #define SetWindowLong SetWindowLongW ! 3879: #else ! 3880: #define SetWindowLong SetWindowLongA ! 3881: #endif // !UNICODE ! 3882: ! 3883: WORD ! 3884: WINAPI ! 3885: GetClassWord( ! 3886: HWND hWnd, ! 3887: int nIndex); ! 3888: ! 3889: WORD ! 3890: WINAPI ! 3891: SetClassWord( ! 3892: HWND hWnd, ! 3893: int nIndex, ! 3894: WORD wNewWord); ! 3895: ! 3896: DWORD ! 3897: WINAPI ! 3898: GetClassLongA( ! 3899: HWND hWnd, ! 3900: int nIndex); ! 3901: DWORD ! 3902: WINAPI ! 3903: GetClassLongW( ! 3904: HWND hWnd, ! 3905: int nIndex); ! 3906: #ifdef UNICODE ! 3907: #define GetClassLong GetClassLongW ! 3908: #else ! 3909: #define GetClassLong GetClassLongA ! 3910: #endif // !UNICODE ! 3911: ! 3912: DWORD ! 3913: WINAPI ! 3914: SetClassLongA( ! 3915: HWND hWnd, ! 3916: int nIndex, ! 3917: LONG dwNewLong); ! 3918: DWORD ! 3919: WINAPI ! 3920: SetClassLongW( ! 3921: HWND hWnd, ! 3922: int nIndex, ! 3923: LONG dwNewLong); ! 3924: #ifdef UNICODE ! 3925: #define SetClassLong SetClassLongW ! 3926: #else ! 3927: #define SetClassLong SetClassLongA ! 3928: #endif // !UNICODE ! 3929: ! 3930: HWND ! 3931: WINAPI ! 3932: GetDesktopWindow( ! 3933: VOID); ! 3934: ! 3935: BOOL ! 3936: WINAPI ! 3937: SetDeskWallpaper( ! 3938: LPSTR lpString ); ! 3939: ! 3940: #endif /* NOWINOFFSETS */ ! 3941: ! 3942: HWND ! 3943: WINAPI ! 3944: GetParent( ! 3945: HWND hWnd); ! 3946: ! 3947: HWND ! 3948: WINAPI ! 3949: SetParent( ! 3950: HWND hWndChild, ! 3951: HWND hWndNewParent); ! 3952: ! 3953: BOOL ! 3954: WINAPI ! 3955: EnumChildWindows( ! 3956: HWND hWndParent, ! 3957: WNDENUMPROC lpEnumFunc, ! 3958: LPARAM lParam); ! 3959: ! 3960: HWND ! 3961: WINAPI ! 3962: FindWindowA( ! 3963: LPCSTR lpClassName , ! 3964: LPCSTR lpWindowName); ! 3965: HWND ! 3966: WINAPI ! 3967: FindWindowW( ! 3968: LPCWSTR lpClassName , ! 3969: LPCWSTR lpWindowName); ! 3970: #ifdef UNICODE ! 3971: #define FindWindow FindWindowW ! 3972: #else ! 3973: #define FindWindow FindWindowA ! 3974: #endif // !UNICODE ! 3975: ! 3976: BOOL ! 3977: WINAPI ! 3978: EnumWindows( ! 3979: WNDENUMPROC lpEnumFunc, ! 3980: LPARAM lParam); ! 3981: ! 3982: BOOL ! 3983: WINAPI ! 3984: EnumThreadWindows( ! 3985: DWORD dwThreadId, ! 3986: WNDENUMPROC lpfn, ! 3987: LPARAM lParam); ! 3988: ! 3989: #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows((DWORD)hTask, lpfn, lParam) ! 3990: ! 3991: int ! 3992: WINAPI ! 3993: GetClassNameA( ! 3994: HWND hWnd, ! 3995: LPSTR lpClassName, ! 3996: int nMaxCount); ! 3997: int ! 3998: WINAPI ! 3999: GetClassNameW( ! 4000: HWND hWnd, ! 4001: LPWSTR lpClassName, ! 4002: int nMaxCount); ! 4003: #ifdef UNICODE ! 4004: #define GetClassName GetClassNameW ! 4005: #else ! 4006: #define GetClassName GetClassNameA ! 4007: #endif // !UNICODE ! 4008: ! 4009: HWND ! 4010: WINAPI ! 4011: GetTopWindow( ! 4012: HWND hWnd); ! 4013: ! 4014: #define GetNextWindow(hwnd, wCmd) GetWindow(hwnd, wCmd) ! 4015: #define GetSysModalWindow() (NULL) ! 4016: #define SetSysModalWindow(hwnd) (NULL) ! 4017: ! 4018: DWORD ! 4019: WINAPI ! 4020: GetWindowThreadProcessId( ! 4021: HWND hWnd, ! 4022: LPDWORD lpdwProcessId ); ! 4023: ! 4024: #define GetWindowTask(hwnd)\ ! 4025: ((HANDLE)GetWindowThreadProcessId(hwnd, NULL)) ! 4026: ! 4027: HWND ! 4028: WINAPI ! 4029: GetLastActivePopup( ! 4030: HWND hWnd); ! 4031: ! 4032: /* GetWindow() Constants */ ! 4033: #define GW_HWNDFIRST 0 ! 4034: #define GW_HWNDLAST 1 ! 4035: #define GW_HWNDNEXT 2 ! 4036: #define GW_HWNDPREV 3 ! 4037: #define GW_OWNER 4 ! 4038: #define GW_CHILD 5 ! 4039: #define GW_MAX 5 ! 4040: ! 4041: HWND ! 4042: WINAPI ! 4043: GetWindow( ! 4044: HWND hWnd, ! 4045: UINT uCmd); ! 4046: ! 4047: #ifndef NOWH ! 4048: ! 4049: #ifdef STRICT ! 4050: HHOOK ! 4051: WINAPI ! 4052: SetWindowsHookA( ! 4053: int nFilterType, ! 4054: HOOKPROC pfnFilterProc); ! 4055: HHOOK ! 4056: WINAPI ! 4057: SetWindowsHookW( ! 4058: int nFilterType, ! 4059: HOOKPROC pfnFilterProc); ! 4060: #else ! 4061: HOOKPROC ! 4062: WINAPI ! 4063: SetWindowsHookA( ! 4064: int nFilterType, ! 4065: HOOKPROC pfnFilterProc); ! 4066: HOOKPROC ! 4067: WINAPI ! 4068: SetWindowsHookW( ! 4069: int nFilterType, ! 4070: HOOKPROC pfnFilterProc); ! 4071: #endif ! 4072: #ifdef UNICODE ! 4073: #define SetWindowsHook SetWindowsHookW ! 4074: #else ! 4075: #define SetWindowsHook SetWindowsHookA ! 4076: #endif // !UNICODE ! 4077: ! 4078: BOOL ! 4079: WINAPI ! 4080: UnhookWindowsHook( ! 4081: int nCode, ! 4082: HOOKPROC pfnFilterProc); ! 4083: ! 4084: HHOOK ! 4085: WINAPI ! 4086: SetWindowsHookExA( ! 4087: int idHook, ! 4088: HOOKPROC lpfn, ! 4089: HINSTANCE hmod, ! 4090: DWORD dwThreadId); ! 4091: HHOOK ! 4092: WINAPI ! 4093: SetWindowsHookExW( ! 4094: int idHook, ! 4095: HOOKPROC lpfn, ! 4096: HINSTANCE hmod, ! 4097: DWORD dwThreadId); ! 4098: #ifdef UNICODE ! 4099: #define SetWindowsHookEx SetWindowsHookExW ! 4100: #else ! 4101: #define SetWindowsHookEx SetWindowsHookExA ! 4102: #endif // !UNICODE ! 4103: ! 4104: BOOL ! 4105: WINAPI ! 4106: UnhookWindowsHookEx( ! 4107: HHOOK hhk); ! 4108: ! 4109: LRESULT ! 4110: WINAPI CallNextHookEx( ! 4111: HHOOK hhk, ! 4112: int nCode, ! 4113: WPARAM wParam, ! 4114: LPARAM lParam); ! 4115: ! 4116: /* ! 4117: * Macros for source-level compatibility with old functions. ! 4118: */ ! 4119: #define DefHookProc(nCode, wParam, lParam, phhk)\ ! 4120: CallNextHookEx(*phhk, nCode, wParam, lParam) ! 4121: #endif ! 4122: ! 4123: #ifndef NOMENUS ! 4124: ! 4125: /* Menu flags for Add/Check/EnableMenuItem() */ ! 4126: #define MF_INSERT 0x00000000L ! 4127: #define MF_CHANGE 0x00000080L ! 4128: #define MF_APPEND 0x00000100L ! 4129: #define MF_DELETE 0x00000200L ! 4130: #define MF_REMOVE 0x00001000L ! 4131: ! 4132: #define MF_BYCOMMAND 0x00000000L ! 4133: #define MF_BYPOSITION 0x00000400L ! 4134: ! 4135: ! 4136: #define MF_SEPARATOR 0x00000800L ! 4137: ! 4138: #define MF_ENABLED 0x00000000L ! 4139: #define MF_GRAYED 0x00000001L ! 4140: #define MF_DISABLED 0x00000002L ! 4141: ! 4142: #define MF_UNCHECKED 0x00000000L ! 4143: #define MF_CHECKED 0x00000008L ! 4144: #define MF_USECHECKBITMAPS 0x00000200L ! 4145: ! 4146: #define MF_STRING 0x00000000L ! 4147: #define MF_BITMAP 0x00000004L ! 4148: #define MF_OWNERDRAW 0x00000100L ! 4149: ! 4150: #define MF_POPUP 0x00000010L ! 4151: #define MF_MENUBARBREAK 0x00000020L ! 4152: #define MF_MENUBREAK 0x00000040L ! 4153: ! 4154: #define MF_UNHILITE 0x00000000L ! 4155: #define MF_HILITE 0x00000080L ! 4156: ! 4157: #define MF_SYSMENU 0x00002000L ! 4158: #define MF_HELP 0x00004000L ! 4159: #define MF_MOUSESELECT 0x00008000L ! 4160: ! 4161: /* Menu item resource format */ ! 4162: typedef struct { ! 4163: WORD versionNumber; ! 4164: WORD offset; ! 4165: } MENUITEMTEMPLATEHEADER; ! 4166: ! 4167: typedef struct { ! 4168: WORD mtOption; ! 4169: WORD mtID; ! 4170: char mtString[1]; ! 4171: } MENUITEMTEMPLATE; ! 4172: ! 4173: #define MF_END 0x00000080L ! 4174: ! 4175: #endif /* NOMENUS */ ! 4176: ! 4177: #ifndef NOSYSCOMMANDS ! 4178: ! 4179: /* System Menu Command Values */ ! 4180: #define SC_SIZE 0xF000 ! 4181: #define SC_MOVE 0xF010 ! 4182: #define SC_MINIMIZE 0xF020 ! 4183: #define SC_MAXIMIZE 0xF030 ! 4184: #define SC_NEXTWINDOW 0xF040 ! 4185: #define SC_PREVWINDOW 0xF050 ! 4186: #define SC_CLOSE 0xF060 ! 4187: #define SC_VSCROLL 0xF070 ! 4188: #define SC_HSCROLL 0xF080 ! 4189: #define SC_MOUSEMENU 0xF090 ! 4190: #define SC_KEYMENU 0xF100 ! 4191: #define SC_ARRANGE 0xF110 ! 4192: #define SC_RESTORE 0xF120 ! 4193: #define SC_TASKLIST 0xF130 ! 4194: #define SC_SCREENSAVE 0xF140 ! 4195: #define SC_HOTKEY 0xF150 ! 4196: ! 4197: /* Obsolete names */ ! 4198: #define SC_ICON SC_MINIMIZE ! 4199: #define SC_ZOOM SC_MAXIMIZE ! 4200: ! 4201: #endif /* NOSYSCOMMANDS */ ! 4202: ! 4203: /* Resource Loading Routines */ ! 4204: ! 4205: HBITMAP ! 4206: WINAPI ! 4207: LoadBitmapA( ! 4208: HINSTANCE hInstance, ! 4209: LPCSTR lpBitmapName); ! 4210: HBITMAP ! 4211: WINAPI ! 4212: LoadBitmapW( ! 4213: HINSTANCE hInstance, ! 4214: LPCWSTR lpBitmapName); ! 4215: #ifdef UNICODE ! 4216: #define LoadBitmap LoadBitmapW ! 4217: #else ! 4218: #define LoadBitmap LoadBitmapA ! 4219: #endif // !UNICODE ! 4220: ! 4221: HCURSOR ! 4222: WINAPI ! 4223: LoadCursorA( ! 4224: HINSTANCE hInstance, ! 4225: LPCSTR lpCursorName); ! 4226: HCURSOR ! 4227: WINAPI ! 4228: LoadCursorW( ! 4229: HINSTANCE hInstance, ! 4230: LPCWSTR lpCursorName); ! 4231: #ifdef UNICODE ! 4232: #define LoadCursor LoadCursorW ! 4233: #else ! 4234: #define LoadCursor LoadCursorA ! 4235: #endif // !UNICODE ! 4236: ! 4237: HCURSOR ! 4238: WINAPI ! 4239: CreateCursor( ! 4240: HINSTANCE, ! 4241: int, ! 4242: int, ! 4243: int, ! 4244: int, ! 4245: CONST VOID *, ! 4246: CONST VOID *); ! 4247: ! 4248: BOOL ! 4249: WINAPI ! 4250: DestroyCursor( ! 4251: HCURSOR); ! 4252: ! 4253: #define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur))) ! 4254: ! 4255: /* Standard Cursor IDs */ ! 4256: #define IDC_ARROW MAKEINTRESOURCE(32512) ! 4257: #define IDC_IBEAM MAKEINTRESOURCE(32513) ! 4258: #define IDC_WAIT MAKEINTRESOURCE(32514) ! 4259: #define IDC_CROSS MAKEINTRESOURCE(32515) ! 4260: #define IDC_UPARROW MAKEINTRESOURCE(32516) ! 4261: #define IDC_SIZE MAKEINTRESOURCE(32640) ! 4262: #define IDC_ICON MAKEINTRESOURCE(32641) ! 4263: #define IDC_SIZENWSE MAKEINTRESOURCE(32642) ! 4264: #define IDC_SIZENESW MAKEINTRESOURCE(32643) ! 4265: #define IDC_SIZEWE MAKEINTRESOURCE(32644) ! 4266: #define IDC_SIZENS MAKEINTRESOURCE(32645) ! 4267: #define IDC_SIZEALL MAKEINTRESOURCE(32646) //not in win3.1 ! 4268: #define IDC_NO MAKEINTRESOURCE(32648) //not in win3.1 ! 4269: ! 4270: typedef struct _ICONINFO { ! 4271: BOOL fIcon; ! 4272: DWORD xHotspot; ! 4273: DWORD yHotspot; ! 4274: HBITMAP hbmMask; ! 4275: HBITMAP hbmColor; ! 4276: } ICONINFO; ! 4277: typedef ICONINFO *PICONINFO; ! 4278: ! 4279: HICON ! 4280: WINAPI ! 4281: LoadIconA( ! 4282: HINSTANCE hInstance, ! 4283: LPCSTR lpIconName); ! 4284: HICON ! 4285: WINAPI ! 4286: LoadIconW( ! 4287: HINSTANCE hInstance, ! 4288: LPCWSTR lpIconName); ! 4289: #ifdef UNICODE ! 4290: #define LoadIcon LoadIconW ! 4291: #else ! 4292: #define LoadIcon LoadIconA ! 4293: #endif // !UNICODE ! 4294: ! 4295: HICON ! 4296: WINAPI ! 4297: CreateIcon( ! 4298: HINSTANCE, ! 4299: int, ! 4300: int, ! 4301: BYTE, ! 4302: BYTE, ! 4303: CONST BYTE *, ! 4304: CONST BYTE *); ! 4305: ! 4306: BOOL ! 4307: WINAPI ! 4308: DestroyIcon( ! 4309: HICON); ! 4310: ! 4311: int ! 4312: WINAPI ! 4313: LookupIconIdFromDirectory( ! 4314: PBYTE presbits, ! 4315: BOOL fIcon); ! 4316: ! 4317: HICON ! 4318: WINAPI ! 4319: CreateIconFromResource( ! 4320: PBYTE presbits, ! 4321: DWORD dwResSize, ! 4322: BOOL fIcon, ! 4323: DWORD dwVer); ! 4324: ! 4325: HICON ! 4326: WINAPI ! 4327: CreateIconIndirect( ! 4328: PICONINFO piconinfo); ! 4329: ! 4330: HICON ! 4331: WINAPI ! 4332: CopyIcon( ! 4333: HICON); ! 4334: ! 4335: BOOL ! 4336: WINAPI ! 4337: GetIconInfo( ! 4338: HICON hIcon, ! 4339: PICONINFO piconinfo); ! 4340: ! 4341: #ifdef OEMRESOURCE ! 4342: ! 4343: /* OEM Resource Ordinal Numbers */ ! 4344: #define OBM_CLOSE 32754 ! 4345: #define OBM_UPARROW 32753 ! 4346: #define OBM_DNARROW 32752 ! 4347: #define OBM_RGARROW 32751 ! 4348: #define OBM_LFARROW 32750 ! 4349: #define OBM_REDUCE 32749 ! 4350: #define OBM_ZOOM 32748 ! 4351: #define OBM_RESTORE 32747 ! 4352: #define OBM_REDUCED 32746 ! 4353: #define OBM_ZOOMD 32745 ! 4354: #define OBM_RESTORED 32744 ! 4355: #define OBM_UPARROWD 32743 ! 4356: #define OBM_DNARROWD 32742 ! 4357: #define OBM_RGARROWD 32741 ! 4358: #define OBM_LFARROWD 32740 ! 4359: #define OBM_MNARROW 32739 ! 4360: #define OBM_COMBO 32738 ! 4361: #define OBM_UPARROWI 32737 ! 4362: #define OBM_DNARROWI 32736 ! 4363: #define OBM_RGARROWI 32735 ! 4364: #define OBM_LFARROWI 32734 ! 4365: ! 4366: #define OBM_OLD_CLOSE 32767 ! 4367: #define OBM_SIZE 32766 ! 4368: #define OBM_OLD_UPARROW 32765 ! 4369: #define OBM_OLD_DNARROW 32764 ! 4370: #define OBM_OLD_RGARROW 32763 ! 4371: #define OBM_OLD_LFARROW 32762 ! 4372: #define OBM_BTSIZE 32761 ! 4373: #define OBM_CHECK 32760 ! 4374: #define OBM_CHECKBOXES 32759 ! 4375: #define OBM_BTNCORNERS 32758 ! 4376: #define OBM_OLD_REDUCE 32757 ! 4377: #define OBM_OLD_ZOOM 32756 ! 4378: #define OBM_OLD_RESTORE 32755 ! 4379: ! 4380: #define OCR_NORMAL 32512 ! 4381: #define OCR_IBEAM 32513 ! 4382: #define OCR_WAIT 32514 ! 4383: #define OCR_CROSS 32515 ! 4384: #define OCR_UP 32516 ! 4385: #define OCR_SIZE 32640 ! 4386: #define OCR_ICON 32641 ! 4387: #define OCR_SIZENWSE 32642 ! 4388: #define OCR_SIZENESW 32643 ! 4389: #define OCR_SIZEWE 32644 ! 4390: #define OCR_SIZENS 32645 ! 4391: #define OCR_SIZEALL 32646 ! 4392: #define OCR_ICOCUR 32647 ! 4393: #define OCR_NO 32648 //not in win3.1 ! 4394: ! 4395: #define OIC_SAMPLE 32512 ! 4396: #define OIC_HAND 32513 ! 4397: #define OIC_QUES 32514 ! 4398: #define OIC_BANG 32515 ! 4399: #define OIC_NOTE 32516 ! 4400: ! 4401: #endif /* OEMRESOURCE */ ! 4402: ! 4403: #define ORD_LANGDRIVER 1 /* The ordinal number for the entry point of ! 4404: ** language drivers. ! 4405: */ ! 4406: ! 4407: #ifndef NOICONS ! 4408: ! 4409: /* Standard Icon IDs */ ! 4410: #define IDI_APPLICATION MAKEINTRESOURCE(32512) ! 4411: #define IDI_HAND MAKEINTRESOURCE(32513) ! 4412: #define IDI_QUESTION MAKEINTRESOURCE(32514) ! 4413: #define IDI_EXCLAMATION MAKEINTRESOURCE(32515) ! 4414: #define IDI_ASTERISK MAKEINTRESOURCE(32516) ! 4415: ! 4416: #endif /* NOICONS */ ! 4417: ! 4418: int ! 4419: WINAPI ! 4420: LoadStringA( ! 4421: HINSTANCE hInstance, ! 4422: UINT uID, ! 4423: LPSTR lpBuffer, ! 4424: int nBufferMax); ! 4425: int ! 4426: WINAPI ! 4427: LoadStringW( ! 4428: HINSTANCE hInstance, ! 4429: UINT uID, ! 4430: LPWSTR lpBuffer, ! 4431: int nBufferMax); ! 4432: #ifdef UNICODE ! 4433: #define LoadString LoadStringW ! 4434: #else ! 4435: #define LoadString LoadStringA ! 4436: #endif // !UNICODE ! 4437: ! 4438: /* Dialog Box Command IDs */ ! 4439: #define IDOK 1 ! 4440: #define IDCANCEL 2 ! 4441: #define IDABORT 3 ! 4442: #define IDRETRY 4 ! 4443: #define IDIGNORE 5 ! 4444: #define IDYES 6 ! 4445: #define IDNO 7 ! 4446: ! 4447: #ifndef NOCTLMGR ! 4448: ! 4449: /* Control Manager Structures and Definitions */ ! 4450: ! 4451: #ifndef NOWINSTYLES ! 4452: ! 4453: /* Edit Control Styles */ ! 4454: #define ES_LEFT 0x0000L ! 4455: #define ES_CENTER 0x0001L ! 4456: #define ES_RIGHT 0x0002L ! 4457: #define ES_MULTILINE 0x0004L ! 4458: #define ES_UPPERCASE 0x0008L ! 4459: #define ES_LOWERCASE 0x0010L ! 4460: #define ES_PASSWORD 0x0020L ! 4461: #define ES_AUTOVSCROLL 0x0040L ! 4462: #define ES_AUTOHSCROLL 0x0080L ! 4463: #define ES_NOHIDESEL 0x0100L ! 4464: #define ES_OEMCONVERT 0x0400L ! 4465: #define ES_READONLY 0x0800L ! 4466: #define ES_WANTRETURN 0x1000L ! 4467: ! 4468: ! 4469: #endif /* NOWINSTYLES */ ! 4470: ! 4471: /* Edit Control Notification Codes */ ! 4472: #define EN_SETFOCUS 0x0100 ! 4473: #define EN_KILLFOCUS 0x0200 ! 4474: #define EN_CHANGE 0x0300 ! 4475: #define EN_UPDATE 0x0400 ! 4476: #define EN_ERRSPACE 0x0500 ! 4477: #define EN_MAXTEXT 0x0501 ! 4478: #define EN_HSCROLL 0x0601 ! 4479: #define EN_VSCROLL 0x0602 ! 4480: ! 4481: #ifndef NOWINMESSAGES ! 4482: ! 4483: /* Edit Control Messages */ ! 4484: #define EM_GETSEL 0x00B0 ! 4485: #define EM_SETSEL 0x00B1 ! 4486: #define EM_GETRECT 0x00B2 ! 4487: #define EM_SETRECT 0x00B3 ! 4488: #define EM_SETRECTNP 0x00B4 ! 4489: #define EM_SCROLL 0x00B5 ! 4490: #define EM_LINESCROLL 0x00B6 ! 4491: #define EM_SCROLLCARET 0x00B7 ! 4492: #define EM_GETMODIFY 0x00B8 ! 4493: #define EM_SETMODIFY 0x00B9 ! 4494: #define EM_GETLINECOUNT 0x00BA ! 4495: #define EM_LINEINDEX 0x00BB ! 4496: #define EM_SETHANDLE 0x00BC ! 4497: #define EM_GETHANDLE 0x00BD ! 4498: #define EM_GETTHUMB 0x00BE ! 4499: #define EM_LINELENGTH 0x00C1 ! 4500: #define EM_REPLACESEL 0x00C2 ! 4501: #define EM_SETFONT 0x00C3 ! 4502: #define EM_GETLINE 0x00C4 ! 4503: #define EM_LIMITTEXT 0x00C5 ! 4504: #define EM_CANUNDO 0x00C6 ! 4505: #define EM_UNDO 0x00C7 ! 4506: #define EM_FMTLINES 0x00C8 ! 4507: #define EM_LINEFROMCHAR 0x00C9 ! 4508: #define EM_SETWORDBREAK 0x00CA ! 4509: #define EM_SETTABSTOPS 0x00CB ! 4510: #define EM_SETPASSWORDCHAR 0x00CC ! 4511: #define EM_EMPTYUNDOBUFFER 0x00CD ! 4512: #define EM_GETFIRSTVISIBLELINE 0x00CE ! 4513: #define EM_SETREADONLY 0x00CF ! 4514: #define EM_SETWORDBREAKPROC 0x00D0 ! 4515: #define EM_GETWORDBREAKPROC 0x00D1 ! 4516: #define EM_GETPASSWORDCHAR 0x00D2 ! 4517: #define EM_MSGMAX 0x00D3 ! 4518: ! 4519: #endif /* NOWINMESSAGES */ ! 4520: ! 4521: /* EDITWORDBREAKPROC code values */ ! 4522: #define WB_LEFT 0 ! 4523: #define WB_RIGHT 1 ! 4524: #define WB_ISDELIMITER 2 ! 4525: ! 4526: /* Button Control Styles */ ! 4527: #define BS_PUSHBUTTON 0x00L ! 4528: #define BS_DEFPUSHBUTTON 0x01L ! 4529: #define BS_CHECKBOX 0x02L ! 4530: #define BS_AUTOCHECKBOX 0x03L ! 4531: #define BS_RADIOBUTTON 0x04L ! 4532: #define BS_3STATE 0x05L ! 4533: #define BS_AUTO3STATE 0x06L ! 4534: #define BS_GROUPBOX 0x07L ! 4535: #define BS_USERBUTTON 0x08L ! 4536: #define BS_AUTORADIOBUTTON 0x09L ! 4537: #define BS_PUSHBOX 0x0AL ! 4538: #define BS_OWNERDRAW 0x0BL ! 4539: #define BS_LEFTTEXT 0x20L ! 4540: ! 4541: ! 4542: /* User Button Notification Codes */ ! 4543: #define BN_CLICKED 0 ! 4544: #define BN_PAINT 1 ! 4545: #define BN_HILITE 2 ! 4546: #define BN_UNHILITE 3 ! 4547: #define BN_DISABLE 4 ! 4548: #define BN_DOUBLECLICKED 5 ! 4549: ! 4550: /* Button Control Messages */ ! 4551: #define BM_GETCHECK 0x00F0 ! 4552: #define BM_SETCHECK 0x00F1 ! 4553: #define BM_GETSTATE 0x00F2 ! 4554: #define BM_SETSTATE 0x00F3 ! 4555: #define BM_SETSTYLE 0x00F4 ! 4556: ! 4557: /* Static Control Constants */ ! 4558: #define SS_LEFT 0x00L ! 4559: #define SS_CENTER 0x01L ! 4560: #define SS_RIGHT 0x02L ! 4561: #define SS_ICON 0x03L ! 4562: #define SS_BLACKRECT 0x04L ! 4563: #define SS_GRAYRECT 0x05L ! 4564: #define SS_WHITERECT 0x06L ! 4565: #define SS_BLACKFRAME 0x07L ! 4566: #define SS_GRAYFRAME 0x08L ! 4567: #define SS_WHITEFRAME 0x09L ! 4568: #define SS_USERITEM 0x0AL ! 4569: #define SS_SIMPLE 0x0BL ! 4570: #define SS_LEFTNOWORDWRAP 0x0CL ! 4571: #define SS_NOPREFIX 0x80L /* Don't do "&" character translation */ ! 4572: ! 4573: #ifndef NOWINMESSAGES ! 4574: /* Static Control Mesages */ ! 4575: #define STM_SETICON 0x170 ! 4576: #define STM_GETICON 0x171 ! 4577: #define STM_MSGMAX 0x172 ! 4578: #endif /* NOWINMESSAGES */ ! 4579: /* Dialog Manager Routines */ ! 4580: ! 4581: #ifndef NOMSG ! 4582: BOOL ! 4583: WINAPI ! 4584: IsDialogMessage( ! 4585: HWND hDlg, ! 4586: LPMSG lpMsg); ! 4587: #endif ! 4588: ! 4589: BOOL ! 4590: WINAPI ! 4591: MapDialogRect( ! 4592: HWND hDlg, ! 4593: LPRECT lpRect); ! 4594: ! 4595: int ! 4596: WINAPI ! 4597: DlgDirListA( ! 4598: HWND hDlg, ! 4599: LPSTR lpPathSpec, ! 4600: int nIDListBox, ! 4601: int nIDStaticPath, ! 4602: UINT uFileType); ! 4603: int ! 4604: WINAPI ! 4605: DlgDirListW( ! 4606: HWND hDlg, ! 4607: LPWSTR lpPathSpec, ! 4608: int nIDListBox, ! 4609: int nIDStaticPath, ! 4610: UINT uFileType); ! 4611: #ifdef UNICODE ! 4612: #define DlgDirList DlgDirListW ! 4613: #else ! 4614: #define DlgDirList DlgDirListA ! 4615: #endif // !UNICODE ! 4616: ! 4617: BOOL ! 4618: WINAPI ! 4619: DlgDirSelectExA( ! 4620: HWND hDlg, ! 4621: LPSTR lpString, ! 4622: int nCount, ! 4623: int nIDListBox); ! 4624: BOOL ! 4625: WINAPI ! 4626: DlgDirSelectExW( ! 4627: HWND hDlg, ! 4628: LPWSTR lpString, ! 4629: int nCount, ! 4630: int nIDListBox); ! 4631: #ifdef UNICODE ! 4632: #define DlgDirSelectEx DlgDirSelectExW ! 4633: #else ! 4634: #define DlgDirSelectEx DlgDirSelectExA ! 4635: #endif // !UNICODE ! 4636: ! 4637: int ! 4638: WINAPI ! 4639: DlgDirListComboBoxA( ! 4640: HWND hDlg, ! 4641: LPSTR lpPathSpec, ! 4642: int nIDComboBox, ! 4643: int nIDStaticPath, ! 4644: UINT uFiletype); ! 4645: int ! 4646: WINAPI ! 4647: DlgDirListComboBoxW( ! 4648: HWND hDlg, ! 4649: LPWSTR lpPathSpec, ! 4650: int nIDComboBox, ! 4651: int nIDStaticPath, ! 4652: UINT uFiletype); ! 4653: #ifdef UNICODE ! 4654: #define DlgDirListComboBox DlgDirListComboBoxW ! 4655: #else ! 4656: #define DlgDirListComboBox DlgDirListComboBoxA ! 4657: #endif // !UNICODE ! 4658: ! 4659: BOOL ! 4660: WINAPI ! 4661: DlgDirSelectComboBoxExA( ! 4662: HWND hDlg, ! 4663: LPSTR lpString, ! 4664: int nCount, ! 4665: int nIDComboBox); ! 4666: BOOL ! 4667: WINAPI ! 4668: DlgDirSelectComboBoxExW( ! 4669: HWND hDlg, ! 4670: LPWSTR lpString, ! 4671: int nCount, ! 4672: int nIDComboBox); ! 4673: #ifdef UNICODE ! 4674: #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW ! 4675: #else ! 4676: #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA ! 4677: #endif // !UNICODE ! 4678: ! 4679: ! 4680: /* Dialog Styles */ ! 4681: #define DS_ABSALIGN 0x01L ! 4682: #define DS_SYSMODAL 0x02L ! 4683: #define DS_LOCALEDIT 0x20L /* Edit items get Local storage. */ ! 4684: #define DS_SETFONT 0x40L /* User specified font for Dlg controls */ ! 4685: #define DS_MODALFRAME 0x80L /* Can be combined with WS_CAPTION */ ! 4686: #define DS_NOIDLEMSG 0x100L /* WM_ENTERIDLE message will not be sent */ ! 4687: #define DS_SETFOREGROUND 0x200L //not in win3.1 ! 4688: ! 4689: #define DM_GETDEFID (WM_USER+0) ! 4690: #define DM_SETDEFID (WM_USER+1) ! 4691: #define DC_HASDEFID 0x534B //not in win3.1 ! 4692: ! 4693: /* Dialog Codes */ ! 4694: #define DLGC_WANTARROWS 0x0001 /* Control wants arrow keys */ ! 4695: #define DLGC_WANTTAB 0x0002 /* Control wants tab keys */ ! 4696: #define DLGC_WANTALLKEYS 0x0004 /* Control wants all keys */ ! 4697: #define DLGC_WANTMESSAGE 0x0004 /* Pass message to control */ ! 4698: #define DLGC_HASSETSEL 0x0008 /* Understands EM_SETSEL message */ ! 4699: #define DLGC_DEFPUSHBUTTON 0x0010 /* Default pushbutton */ ! 4700: #define DLGC_UNDEFPUSHBUTTON 0x0020 /* Non-default pushbutton */ ! 4701: #define DLGC_RADIOBUTTON 0x0040 /* Radio button */ ! 4702: #define DLGC_WANTCHARS 0x0080 /* Want WM_CHAR messages */ ! 4703: #define DLGC_STATIC 0x0100 /* Static item: don't include */ ! 4704: #define DLGC_BUTTON 0x2000 /* Button item: can be checked */ ! 4705: ! 4706: #define LB_CTLCODE 0L ! 4707: ! 4708: /* Listbox Return Values */ ! 4709: #define LB_OKAY 0 ! 4710: #define LB_ERR (-1) ! 4711: #define LB_ERRSPACE (-2) ! 4712: ! 4713: /* ! 4714: ** The idStaticPath parameter to DlgDirList can have the following values ! 4715: ** ORed if the list box should show other details of the files along with ! 4716: ** the name of the files; ! 4717: */ ! 4718: /* all other details also will be returned */ ! 4719: ! 4720: ! 4721: /* Listbox Notification Codes */ ! 4722: #define LBN_ERRSPACE (-2) ! 4723: #define LBN_SELCHANGE 1 ! 4724: #define LBN_DBLCLK 2 ! 4725: #define LBN_SELCANCEL 3 ! 4726: #define LBN_SETFOCUS 4 ! 4727: #define LBN_KILLFOCUS 5 ! 4728: ! 4729: ! 4730: ! 4731: #ifndef NOWINMESSAGES ! 4732: ! 4733: /* Listbox messages */ ! 4734: #define LB_ADDSTRING 0x0180 ! 4735: #define LB_INSERTSTRING 0x0181 ! 4736: #define LB_DELETESTRING 0x0182 ! 4737: #define LB_RESETCONTENT 0x0184 ! 4738: #define LB_SETSEL 0x0185 ! 4739: #define LB_SETCURSEL 0x0186 ! 4740: #define LB_GETSEL 0x0187 ! 4741: #define LB_GETCURSEL 0x0188 ! 4742: #define LB_GETTEXT 0x0189 ! 4743: #define LB_GETTEXTLEN 0x018A ! 4744: #define LB_GETCOUNT 0x018B ! 4745: #define LB_SELECTSTRING 0x018C ! 4746: #define LB_DIR 0x018D ! 4747: #define LB_GETTOPINDEX 0x018E ! 4748: #define LB_FINDSTRING 0x018F ! 4749: #define LB_GETSELCOUNT 0x0190 ! 4750: #define LB_GETSELITEMS 0x0191 ! 4751: #define LB_SETTABSTOPS 0x0192 ! 4752: #define LB_GETHORIZONTALEXTENT 0x0193 ! 4753: #define LB_SETHORIZONTALEXTENT 0x0194 ! 4754: #define LB_SETCOLUMNWIDTH 0x0195 ! 4755: #define LB_ADDFILE 0x0196 ! 4756: #define LB_SETTOPINDEX 0x0197 ! 4757: #define LB_GETITEMRECT 0x0198 ! 4758: #define LB_GETITEMDATA 0x0199 ! 4759: #define LB_SETITEMDATA 0x019A ! 4760: #define LB_SELITEMRANGE 0x019B ! 4761: #define LB_SETANCHORINDEX 0x019C ! 4762: #define LB_GETANCHORINDEX 0x019D ! 4763: #define LB_SETCARETINDEX 0x019E ! 4764: #define LB_GETCARETINDEX 0x019F ! 4765: #define LB_SETITEMHEIGHT 0x01A0 ! 4766: #define LB_GETITEMHEIGHT 0x01A1 ! 4767: #define LB_FINDSTRINGEXACT 0x01A2 ! 4768: #define LBCB_CARETON 0x01A3 ! 4769: #define LBCB_CARETOFF 0x01A4 ! 4770: #define LB_SETLOCALE 0x01A5 ! 4771: #define LB_GETLOCALE 0x01A6 ! 4772: #define LB_SETCOUNT 0x01A7 ! 4773: #define LB_MSGMAX 0x01A8 ! 4774: ! 4775: #endif /* NOWINMESSAGES */ ! 4776: ! 4777: #ifndef NOWINSTYLES ! 4778: ! 4779: /* Listbox Styles */ ! 4780: #define LBS_NOTIFY 0x0001L ! 4781: #define LBS_SORT 0x0002L ! 4782: #define LBS_NOREDRAW 0x0004L ! 4783: #define LBS_MULTIPLESEL 0x0008L ! 4784: #define LBS_OWNERDRAWFIXED 0x0010L ! 4785: #define LBS_OWNERDRAWVARIABLE 0x0020L ! 4786: #define LBS_HASSTRINGS 0x0040L ! 4787: #define LBS_USETABSTOPS 0x0080L ! 4788: #define LBS_NOINTEGRALHEIGHT 0x0100L ! 4789: #define LBS_MULTICOLUMN 0x0200L ! 4790: #define LBS_WANTKEYBOARDINPUT 0x0400L ! 4791: #define LBS_EXTENDEDSEL 0x0800L ! 4792: #define LBS_DISABLENOSCROLL 0x1000L ! 4793: #define LBS_NODATA 0x2000L ! 4794: #define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER) ! 4795: ! 4796: #endif /* NOWINSTYLES */ ! 4797: ! 4798: ! 4799: /* Combo Box return Values */ ! 4800: #define CB_OKAY 0 ! 4801: #define CB_ERR (-1) ! 4802: #define CB_ERRSPACE (-2) ! 4803: ! 4804: ! 4805: /* Combo Box Notification Codes */ ! 4806: #define CBN_ERRSPACE (-1) ! 4807: #define CBN_SELCHANGE 1 ! 4808: #define CBN_DBLCLK 2 ! 4809: #define CBN_SETFOCUS 3 ! 4810: #define CBN_KILLFOCUS 4 ! 4811: #define CBN_EDITCHANGE 5 ! 4812: #define CBN_EDITUPDATE 6 ! 4813: #define CBN_DROPDOWN 7 ! 4814: #define CBN_CLOSEUP 8 ! 4815: #define CBN_SELENDOK 9 ! 4816: #define CBN_SELENDCANCEL 10 ! 4817: ! 4818: /* Combo Box styles */ ! 4819: #ifndef NOWINSTYLES ! 4820: #define CBS_SIMPLE 0x0001L ! 4821: #define CBS_DROPDOWN 0x0002L ! 4822: #define CBS_DROPDOWNLIST 0x0003L ! 4823: #define CBS_OWNERDRAWFIXED 0x0010L ! 4824: #define CBS_OWNERDRAWVARIABLE 0x0020L ! 4825: #define CBS_AUTOHSCROLL 0x0040L ! 4826: #define CBS_OEMCONVERT 0x0080L ! 4827: #define CBS_SORT 0x0100L ! 4828: #define CBS_HASSTRINGS 0x0200L ! 4829: #define CBS_NOINTEGRALHEIGHT 0x0400L ! 4830: #define CBS_DISABLENOSCROLL 0x0800L ! 4831: #endif /* NOWINSTYLES */ ! 4832: ! 4833: ! 4834: /* Combo Box messages */ ! 4835: #ifndef NOWINMESSAGES ! 4836: #define CB_GETEDITSEL 0x0140 ! 4837: #define CB_LIMITTEXT 0x0141 ! 4838: #define CB_SETEDITSEL 0x0142 ! 4839: #define CB_ADDSTRING 0x0143 ! 4840: #define CB_DELETESTRING 0x0144 ! 4841: #define CB_DIR 0x0145 ! 4842: #define CB_GETCOUNT 0x0146 ! 4843: #define CB_GETCURSEL 0x0147 ! 4844: #define CB_GETLBTEXT 0x0148 ! 4845: #define CB_GETLBTEXTLEN 0x0149 ! 4846: #define CB_INSERTSTRING 0x014A ! 4847: #define CB_RESETCONTENT 0x014B ! 4848: #define CB_FINDSTRING 0x014C ! 4849: #define CB_SELECTSTRING 0x014D ! 4850: #define CB_SETCURSEL 0x014E ! 4851: #define CB_SHOWDROPDOWN 0x014F ! 4852: #define CB_GETITEMDATA 0x0150 ! 4853: #define CB_SETITEMDATA 0x0151 ! 4854: #define CB_GETDROPPEDCONTROLRECT 0x0152 ! 4855: #define CB_SETITEMHEIGHT 0x0153 ! 4856: #define CB_GETITEMHEIGHT 0x0154 ! 4857: #define CB_SETEXTENDEDUI 0x0155 ! 4858: #define CB_GETEXTENDEDUI 0x0156 ! 4859: #define CB_GETDROPPEDSTATE 0x0157 ! 4860: #define CB_FINDSTRINGEXACT 0x0158 ! 4861: #define CB_SETLOCALE 0x0159 ! 4862: #define CB_GETLOCALE 0x015a ! 4863: #define CB_MSGMAX 0x015b ! 4864: #endif /* NOWINMESSAGES */ ! 4865: ! 4866: ! 4867: ! 4868: #ifndef NOWINSTYLES ! 4869: ! 4870: /* Scroll Bar Styles */ ! 4871: #define SBS_HORZ 0x0000L ! 4872: #define SBS_VERT 0x0001L ! 4873: #define SBS_TOPALIGN 0x0002L ! 4874: #define SBS_LEFTALIGN 0x0002L ! 4875: #define SBS_BOTTOMALIGN 0x0004L ! 4876: #define SBS_RIGHTALIGN 0x0004L ! 4877: #define SBS_SIZEBOXTOPLEFTALIGN 0x0002L ! 4878: #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L ! 4879: #define SBS_SIZEBOX 0x0008L ! 4880: #endif /* NOWINSTYLES */ ! 4881: ! 4882: /* Scroll bar messages */ ! 4883: #ifndef NOWINMESSAGES ! 4884: #define SBM_SETPOS 0x00E0 //not in win3.1 ! 4885: #define SBM_GETPOS 0x00E1 //not in win3.1 ! 4886: #define SBM_SETRANGE 0x00E2 //not in win3.1 ! 4887: #define SBM_GETRANGE 0x00E3 //not in win3.1 ! 4888: #define SBM_ENABLE_ARROWS 0x00E4 //not in win3.1 ! 4889: #endif ! 4890: #endif /* NOCTLMGR */ ! 4891: ! 4892: #ifndef NOMDI ! 4893: ! 4894: /* MDI client style bits */ ! 4895: #define MDIS_ALLCHILDSTYLES 0x0001 ! 4896: ! 4897: /* wParam Flags for WM_MDITILE and WM_MDICASCADE messages. */ ! 4898: #define MDITILE_VERTICAL 0x0000 //not in win3.1 ! 4899: #define MDITILE_HORIZONTAL 0x0001 //not in win3.1 ! 4900: #define MDITILE_SKIPDISABLED 0x0002 //not in win3.1 ! 4901: ! 4902: typedef struct tagMDICREATESTRUCTA { ! 4903: LPCSTR szClass; ! 4904: LPCSTR szTitle; ! 4905: HANDLE hOwner; ! 4906: int x; ! 4907: int y; ! 4908: int cx; ! 4909: int cy; ! 4910: DWORD style; ! 4911: LPARAM lParam; /* app-defined stuff */ ! 4912: } MDICREATESTRUCTA, *LPMDICREATESTRUCTA; ! 4913: typedef struct tagMDICREATESTRUCTW { ! 4914: LPCWSTR szClass; ! 4915: LPCWSTR szTitle; ! 4916: HANDLE hOwner; ! 4917: int x; ! 4918: int y; ! 4919: int cx; ! 4920: int cy; ! 4921: DWORD style; ! 4922: LPARAM lParam; /* app-defined stuff */ ! 4923: } MDICREATESTRUCTW, *LPMDICREATESTRUCTW; ! 4924: #ifdef UNICODE ! 4925: #define MDICREATESTRUCT MDICREATESTRUCTW ! 4926: #define LPMDICREATESTRUCT LPMDICREATESTRUCTW ! 4927: #else ! 4928: #define MDICREATESTRUCT MDICREATESTRUCTA ! 4929: #define LPMDICREATESTRUCT LPMDICREATESTRUCTA ! 4930: #endif // UNICODE ! 4931: ! 4932: typedef struct tagCLIENTCREATESTRUCT { ! 4933: HANDLE hWindowMenu; ! 4934: UINT idFirstChild; ! 4935: } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT; ! 4936: ! 4937: LRESULT ! 4938: WINAPI ! 4939: DefFrameProcA( ! 4940: HWND hWnd, ! 4941: HWND hWndMDIClient , ! 4942: UINT uMsg, ! 4943: WPARAM wParam, ! 4944: LPARAM lParam); ! 4945: LRESULT ! 4946: WINAPI ! 4947: DefFrameProcW( ! 4948: HWND hWnd, ! 4949: HWND hWndMDIClient , ! 4950: UINT uMsg, ! 4951: WPARAM wParam, ! 4952: LPARAM lParam); ! 4953: #ifdef UNICODE ! 4954: #define DefFrameProc DefFrameProcW ! 4955: #else ! 4956: #define DefFrameProc DefFrameProcA ! 4957: #endif // !UNICODE ! 4958: ! 4959: LRESULT ! 4960: WINAPI ! 4961: DefMDIChildProcA( ! 4962: HWND hWnd, ! 4963: UINT uMsg, ! 4964: WPARAM wParam, ! 4965: LPARAM lParam); ! 4966: LRESULT ! 4967: WINAPI ! 4968: DefMDIChildProcW( ! 4969: HWND hWnd, ! 4970: UINT uMsg, ! 4971: WPARAM wParam, ! 4972: LPARAM lParam); ! 4973: #ifdef UNICODE ! 4974: #define DefMDIChildProc DefMDIChildProcW ! 4975: #else ! 4976: #define DefMDIChildProc DefMDIChildProcA ! 4977: #endif // !UNICODE ! 4978: ! 4979: #ifndef NOMSG ! 4980: BOOL ! 4981: WINAPI ! 4982: TranslateMDISysAccel( ! 4983: HWND hWndClient, ! 4984: LPMSG lpMsg); ! 4985: #endif ! 4986: ! 4987: UINT ! 4988: WINAPI ! 4989: ArrangeIconicWindows( ! 4990: HWND hWnd); ! 4991: ! 4992: HWND ! 4993: WINAPI ! 4994: CreateMDIWindowA( ! 4995: LPSTR lpClassName, ! 4996: LPSTR lpWindowName, ! 4997: DWORD dwStyle, ! 4998: int X, ! 4999: int Y, ! 5000: int nWidth, ! 5001: int nHeight, ! 5002: HWND hWndParent, ! 5003: HINSTANCE hInstance, ! 5004: LONG lParam ! 5005: ); ! 5006: HWND ! 5007: WINAPI ! 5008: CreateMDIWindowW( ! 5009: LPWSTR lpClassName, ! 5010: LPWSTR lpWindowName, ! 5011: DWORD dwStyle, ! 5012: int X, ! 5013: int Y, ! 5014: int nWidth, ! 5015: int nHeight, ! 5016: HWND hWndParent, ! 5017: HINSTANCE hInstance, ! 5018: LONG lParam ! 5019: ); ! 5020: #ifdef UNICODE ! 5021: #define CreateMDIWindow CreateMDIWindowW ! 5022: #else ! 5023: #define CreateMDIWindow CreateMDIWindowA ! 5024: #endif // !UNICODE ! 5025: ! 5026: #endif /* NOMDI */ ! 5027: #endif /* NOUSER */ ! 5028: ! 5029: /****** Help support ********************************************************/ ! 5030: ! 5031: #ifndef NOHELP ! 5032: ! 5033: typedef DWORD HELPPOLY; ! 5034: typedef struct tagMULTIKEYHELPA { ! 5035: DWORD mkSize; ! 5036: CHAR mkKeylist; ! 5037: CHAR szKeyphrase[1]; ! 5038: } MULTIKEYHELPA, *PMULTIKEYHELPA, *LPMULTIKEYHELPA; ! 5039: typedef struct tagMULTIKEYHELPW { ! 5040: DWORD mkSize; ! 5041: WCHAR mkKeylist; ! 5042: WCHAR szKeyphrase[1]; ! 5043: } MULTIKEYHELPW, *PMULTIKEYHELPW, *LPMULTIKEYHELPW; ! 5044: #ifdef UNICODE ! 5045: #define MULTIKEYHELP MULTIKEYHELPW ! 5046: #define PMULTIKEYHELP PMULTIKEYHELPW ! 5047: #define LPMULTIKEYHELP LPMULTIKEYHELPW ! 5048: #else ! 5049: #define MULTIKEYHELP MULTIKEYHELPA ! 5050: #define PMULTIKEYHELP PMULTIKEYHELPA ! 5051: #define LPMULTIKEYHELP LPMULTIKEYHELPA ! 5052: #endif // UNICODE ! 5053: ! 5054: typedef struct tagHELPWININFOA { ! 5055: int wStructSize; ! 5056: int x; ! 5057: int y; ! 5058: int dx; ! 5059: int dy; ! 5060: int wMax; ! 5061: CHAR rgchMember[2]; ! 5062: } HELPWININFOA, *PHELPWININFOA, *LPHELPWININFOA; ! 5063: typedef struct tagHELPWININFOW { ! 5064: int wStructSize; ! 5065: int x; ! 5066: int y; ! 5067: int dx; ! 5068: int dy; ! 5069: int wMax; ! 5070: WCHAR rgchMember[2]; ! 5071: } HELPWININFOW, *PHELPWININFOW, *LPHELPWININFOW; ! 5072: #ifdef UNICODE ! 5073: #define HELPWININFO HELPWININFOW ! 5074: #define PHELPWININFO PHELPWININFOW ! 5075: #define LPHELPWININFO LPHELPWININFOW ! 5076: #else ! 5077: #define HELPWININFO HELPWININFOA ! 5078: #define PHELPWININFO PHELPWININFOA ! 5079: #define LPHELPWININFO LPHELPWININFOA ! 5080: #endif // UNICODE ! 5081: ! 5082: // ! 5083: // Commands to pass WinHelp() ! 5084: // ! 5085: ! 5086: #define HELP_CONTEXT 0x0001L /* Display topic in ulTopic */ ! 5087: #define HELP_QUIT 0x0002L /* Terminate help */ ! 5088: #define HELP_INDEX 0x0003L /* Display index */ ! 5089: #define HELP_CONTENTS 0x0003L ! 5090: #define HELP_HELPONHELP 0x0004L /* Display help on using help */ ! 5091: #define HELP_SETINDEX 0x0005L /* Set current Index for multi index help */ ! 5092: #define HELP_SETCONTENTS 0x0005L ! 5093: #define HELP_CONTEXTPOPUP 0x0008L ! 5094: #define HELP_FORCEFILE 0x0009L ! 5095: #define HELP_KEY 0x0101L /* Display topic for keyword in offabData */ ! 5096: #define HELP_COMMAND 0x0102L ! 5097: #define HELP_PARTIALKEY 0x0105L ! 5098: #define HELP_MULTIKEY 0x0201L ! 5099: #define HELP_SETWINPOS 0x0203L ! 5100: ! 5101: ! 5102: BOOL ! 5103: WINAPI ! 5104: WinHelpA( ! 5105: HWND hwndMain, ! 5106: LPCSTR lpszHelp, ! 5107: UINT uCommand, ! 5108: DWORD dwData ! 5109: ); ! 5110: BOOL ! 5111: WINAPI ! 5112: WinHelpW( ! 5113: HWND hwndMain, ! 5114: LPCWSTR lpszHelp, ! 5115: UINT uCommand, ! 5116: DWORD dwData ! 5117: ); ! 5118: #ifdef UNICODE ! 5119: #define WinHelp WinHelpW ! 5120: #else ! 5121: #define WinHelp WinHelpA ! 5122: #endif // !UNICODE ! 5123: ! 5124: #endif /* NOHELP */ ! 5125: ! 5126: #ifndef NOPROFILER ! 5127: ! 5128: /* function declarations for profiler routines contained in Windows libraries */ ! 5129: int ! 5130: WINAPI ! 5131: ProfInsChk( ! 5132: VOID); ! 5133: ! 5134: VOID ! 5135: WINAPI ! 5136: ProfSetup( ! 5137: int, ! 5138: int); ! 5139: ! 5140: VOID ! 5141: WINAPI ! 5142: ProfSampRate( ! 5143: int, ! 5144: int); ! 5145: ! 5146: VOID ! 5147: WINAPI ! 5148: ProfStart( ! 5149: VOID); ! 5150: ! 5151: VOID ! 5152: WINAPI ! 5153: ProfStop( ! 5154: VOID); ! 5155: ! 5156: VOID ! 5157: WINAPI ! 5158: ProfClear( ! 5159: VOID); ! 5160: ! 5161: VOID ! 5162: WINAPI ! 5163: ProfFlush( ! 5164: VOID); ! 5165: ! 5166: VOID ! 5167: WINAPI ! 5168: ProfFinish( ! 5169: VOID); ! 5170: ! 5171: #endif /* NOPROFILER */ ! 5172: ! 5173: #ifndef NOSYSPARAMSINFO ! 5174: /* Parameter for SystemParametersInfo() */ ! 5175: ! 5176: #define SPI_GETBEEP 1 ! 5177: #define SPI_SETBEEP 2 ! 5178: #define SPI_GETMOUSE 3 ! 5179: #define SPI_SETMOUSE 4 ! 5180: #define SPI_GETBORDER 5 ! 5181: #define SPI_SETBORDER 6 ! 5182: #define SPI_TIMEOUTS 7 ! 5183: #define SPI_GETKEYBOARDSPEED 10 ! 5184: #define SPI_SETKEYBOARDSPEED 11 ! 5185: #define SPI_LANGDRIVER 12 ! 5186: #define SPI_ICONHORIZONTALSPACING 13 ! 5187: #define SPI_GETSCREENSAVETIMEOUT 14 ! 5188: #define SPI_SETSCREENSAVETIMEOUT 15 ! 5189: #define SPI_GETSCREENSAVEACTIVE 16 ! 5190: #define SPI_SETSCREENSAVEACTIVE 17 ! 5191: #define SPI_GETGRIDGRANULARITY 18 ! 5192: #define SPI_SETGRIDGRANULARITY 19 ! 5193: #define SPI_SETDESKWALLPAPER 20 ! 5194: #define SPI_SETDESKPATTERN 21 ! 5195: #define SPI_GETKEYBOARDDELAY 22 ! 5196: #define SPI_SETKEYBOARDDELAY 23 ! 5197: #define SPI_ICONVERTICALSPACING 24 ! 5198: #define SPI_GETICONTITLEWRAP 25 ! 5199: #define SPI_SETICONTITLEWRAP 26 ! 5200: #define SPI_GETMENUDROPALIGNMENT 27 ! 5201: #define SPI_SETMENUDROPALIGNMENT 28 ! 5202: #define SPI_SETDOUBLECLKWIDTH 29 ! 5203: #define SPI_SETDOUBLECLKHEIGHT 30 ! 5204: #define SPI_GETICONTITLELOGFONT 31 ! 5205: #define SPI_SETDOUBLECLICKTIME 32 ! 5206: #define SPI_SETMOUSEBUTTONSWAP 33 ! 5207: #define SPI_SETICONTITLELOGFONT 34 ! 5208: #define SPI_GETFASTTASKSWITCH 35 ! 5209: #define SPI_SETFASTTASKSWITCH 36 ! 5210: #define SPI_MAX 36 ! 5211: ! 5212: ! 5213: BOOL ! 5214: WINAPI ! 5215: SystemParametersInfoA( ! 5216: UINT, ! 5217: UINT, ! 5218: PVOID, ! 5219: UINT); ! 5220: BOOL ! 5221: WINAPI ! 5222: SystemParametersInfoW( ! 5223: UINT, ! 5224: UINT, ! 5225: PVOID, ! 5226: UINT); ! 5227: #ifdef UNICODE ! 5228: #define SystemParametersInfo SystemParametersInfoW ! 5229: #else ! 5230: #define SystemParametersInfo SystemParametersInfoA ! 5231: #endif // !UNICODE ! 5232: ! 5233: /* Flags */ ! 5234: #define SPIF_UPDATEINIFILE 0x0001 ! 5235: #define SPIF_SENDWININICHANGE 0x0002 ! 5236: ! 5237: #endif /* NOSYSPARAMSINFO */ ! 5238: #endif // _WINUSER_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.