|
|
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: LRESULT ! 1395: WINAPI ! 1396: CallWindowProcA( ! 1397: WNDPROC lpPrevWndFunc, ! 1398: HWND hWnd, ! 1399: UINT Msg, ! 1400: WPARAM wParam, ! 1401: LPARAM lParam); ! 1402: LRESULT ! 1403: WINAPI ! 1404: CallWindowProcW( ! 1405: WNDPROC lpPrevWndFunc, ! 1406: HWND hWnd, ! 1407: UINT Msg, ! 1408: WPARAM wParam, ! 1409: LPARAM lParam); ! 1410: #ifdef UNICODE ! 1411: #define CallWindowProc CallWindowProcW ! 1412: #else ! 1413: #define CallWindowProc CallWindowProcA ! 1414: #endif // !UNICODE ! 1415: ! 1416: BOOL ! 1417: WINAPI ! 1418: InSendMessage( ! 1419: VOID); ! 1420: ! 1421: UINT ! 1422: WINAPI ! 1423: GetDoubleClickTime( ! 1424: VOID); ! 1425: ! 1426: BOOL ! 1427: WINAPI ! 1428: SetDoubleClickTime( ! 1429: UINT); ! 1430: ! 1431: ATOM ! 1432: WINAPI ! 1433: RegisterClassA( ! 1434: LPWNDCLASSA lpWndClass); ! 1435: ATOM ! 1436: WINAPI ! 1437: RegisterClassW( ! 1438: LPWNDCLASSW lpWndClass); ! 1439: #ifdef UNICODE ! 1440: #define RegisterClass RegisterClassW ! 1441: #else ! 1442: #define RegisterClass RegisterClassA ! 1443: #endif // !UNICODE ! 1444: ! 1445: BOOL ! 1446: WINAPI ! 1447: UnregisterClassA( ! 1448: LPCSTR lpClassName, ! 1449: HINSTANCE hInstance); ! 1450: BOOL ! 1451: WINAPI ! 1452: UnregisterClassW( ! 1453: LPCWSTR lpClassName, ! 1454: HINSTANCE hInstance); ! 1455: #ifdef UNICODE ! 1456: #define UnregisterClass UnregisterClassW ! 1457: #else ! 1458: #define UnregisterClass UnregisterClassA ! 1459: #endif // !UNICODE ! 1460: ! 1461: BOOL ! 1462: WINAPI ! 1463: GetClassInfoA( ! 1464: HINSTANCE hInstance , ! 1465: LPCSTR lpClassName, ! 1466: LPWNDCLASSA lpWndClass); ! 1467: BOOL ! 1468: WINAPI ! 1469: GetClassInfoW( ! 1470: HINSTANCE hInstance , ! 1471: LPCWSTR lpClassName, ! 1472: LPWNDCLASSW lpWndClass); ! 1473: #ifdef UNICODE ! 1474: #define GetClassInfo GetClassInfoW ! 1475: #else ! 1476: #define GetClassInfo GetClassInfoA ! 1477: #endif // !UNICODE ! 1478: ! 1479: #define CW_USEDEFAULT ((int)0x80000000) ! 1480: ! 1481: /* Special value for CreateWindow, et al. */ ! 1482: #define HWND_DESKTOP ((HWND)0) ! 1483: ! 1484: HWND ! 1485: WINAPI ! 1486: CreateWindowExA( ! 1487: DWORD dwExStyle, ! 1488: LPCSTR lpClassName, ! 1489: LPCSTR lpWindowName, ! 1490: DWORD dwStyle, ! 1491: int X, ! 1492: int Y, ! 1493: int nWidth, ! 1494: int nHeight, ! 1495: HWND hWndParent , ! 1496: HMENU hMenu, ! 1497: HINSTANCE hInstance, ! 1498: LPVOID lpParam); ! 1499: HWND ! 1500: WINAPI ! 1501: CreateWindowExW( ! 1502: DWORD dwExStyle, ! 1503: LPCWSTR lpClassName, ! 1504: LPCWSTR lpWindowName, ! 1505: DWORD dwStyle, ! 1506: int X, ! 1507: int Y, ! 1508: int nWidth, ! 1509: int nHeight, ! 1510: HWND hWndParent , ! 1511: HMENU hMenu, ! 1512: HINSTANCE hInstance, ! 1513: LPVOID lpParam); ! 1514: #ifdef UNICODE ! 1515: #define CreateWindowEx CreateWindowExW ! 1516: #else ! 1517: #define CreateWindowEx CreateWindowExA ! 1518: #endif // !UNICODE ! 1519: ! 1520: #define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,\ ! 1521: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)\ ! 1522: CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,\ ! 1523: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam) ! 1524: #define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\ ! 1525: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)\ ! 1526: CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,\ ! 1527: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam) ! 1528: #ifdef UNICODE ! 1529: #define CreateWindow CreateWindowW ! 1530: #else ! 1531: #define CreateWindow CreateWindowA ! 1532: #endif // !UNICODE ! 1533: ! 1534: BOOL ! 1535: WINAPI ! 1536: IsWindow( ! 1537: HWND hWnd); ! 1538: ! 1539: BOOL ! 1540: WINAPI ! 1541: IsChild( ! 1542: HWND hWndParent, ! 1543: HWND hWnd); ! 1544: ! 1545: BOOL ! 1546: WINAPI ! 1547: DestroyWindow( ! 1548: HWND hWnd); ! 1549: ! 1550: BOOL ! 1551: WINAPI ! 1552: ShowWindow( ! 1553: HWND hWnd, ! 1554: int nCmdShow); ! 1555: ! 1556: BOOL ! 1557: WINAPI ! 1558: FlashWindow( ! 1559: HWND hWnd, ! 1560: BOOL bInvert); ! 1561: ! 1562: BOOL ! 1563: WINAPI ! 1564: ShowOwnedPopups( ! 1565: HWND hWnd, ! 1566: BOOL fShow); ! 1567: ! 1568: BOOL ! 1569: WINAPI ! 1570: OpenIcon( ! 1571: HWND hWnd); ! 1572: ! 1573: BOOL ! 1574: WINAPI ! 1575: CloseWindow( ! 1576: HWND hWnd); ! 1577: ! 1578: BOOL ! 1579: WINAPI ! 1580: MoveWindow( ! 1581: HWND hWnd, ! 1582: int X, ! 1583: int Y, ! 1584: int nWidth, ! 1585: int nHeight, ! 1586: BOOL bRepaint); ! 1587: ! 1588: BOOL ! 1589: WINAPI ! 1590: SetWindowPos( ! 1591: HWND hWnd, ! 1592: HWND hWndInsertAfter , ! 1593: int X, ! 1594: int Y, ! 1595: int cx, ! 1596: int cy, ! 1597: UINT uFlags); ! 1598: ! 1599: BOOL ! 1600: WINAPI ! 1601: GetWindowPlacement( ! 1602: HWND hwnd, ! 1603: WINDOWPLACEMENT *lpwndpl); ! 1604: ! 1605: BOOL ! 1606: WINAPI ! 1607: SetWindowPlacement( ! 1608: HWND hwnd, ! 1609: CONST WINDOWPLACEMENT *lpwndpl); ! 1610: ! 1611: ! 1612: #ifndef NODEFERWINDOWPOS ! 1613: ! 1614: HDWP ! 1615: WINAPI ! 1616: BeginDeferWindowPos( ! 1617: int nNumWindows); ! 1618: ! 1619: HDWP ! 1620: WINAPI ! 1621: DeferWindowPos( ! 1622: HDWP hWinPosInfo, ! 1623: HWND hWnd, ! 1624: HWND hWndInsertAfter , ! 1625: int x, ! 1626: int y, ! 1627: int cx, ! 1628: int cy, ! 1629: UINT uFlags); ! 1630: ! 1631: BOOL ! 1632: WINAPI ! 1633: EndDeferWindowPos( ! 1634: HDWP hWinPosInfo); ! 1635: ! 1636: #endif /* NODEFERWINDOWPOS */ ! 1637: ! 1638: BOOL ! 1639: WINAPI ! 1640: IsWindowVisible( ! 1641: HWND hWnd); ! 1642: ! 1643: BOOL ! 1644: WINAPI ! 1645: IsIconic( ! 1646: HWND hWnd); ! 1647: ! 1648: BOOL ! 1649: WINAPI ! 1650: AnyPopup( ! 1651: VOID); ! 1652: ! 1653: BOOL ! 1654: WINAPI ! 1655: BringWindowToTop( ! 1656: HWND hWnd); ! 1657: ! 1658: BOOL ! 1659: WINAPI ! 1660: IsZoomed( ! 1661: HWND hWnd); ! 1662: ! 1663: /* SetWindowPos Flags */ ! 1664: #define SWP_NOSIZE 0x0001 ! 1665: #define SWP_NOMOVE 0x0002 ! 1666: #define SWP_NOZORDER 0x0004 ! 1667: #define SWP_NOREDRAW 0x0008 ! 1668: #define SWP_NOACTIVATE 0x0010 ! 1669: #define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */ ! 1670: #define SWP_SHOWWINDOW 0x0040 ! 1671: #define SWP_HIDEWINDOW 0x0080 ! 1672: #define SWP_NOCOPYBITS 0x0100 ! 1673: #define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */ ! 1674: ! 1675: #define SWP_DRAWFRAME SWP_FRAMECHANGED ! 1676: #define SWP_NOREPOSITION SWP_NOOWNERZORDER ! 1677: ! 1678: ! 1679: #define HWND_TOP ((HWND)0) ! 1680: #define HWND_BOTTOM ((HWND)1) ! 1681: #define HWND_TOPMOST ((HWND)-1) ! 1682: #define HWND_NOTOPMOST ((HWND)-2) ! 1683: ! 1684: #ifndef NOCTLMGR ! 1685: ! 1686: #ifndef RC_INVOKED // RC can't handle #pragmas ! 1687: ! 1688: /* ! 1689: * WARNING: ! 1690: * The following structures must NOT be DWORD padded because they are ! 1691: * followed by strings, etc that do not have to be DWORD aligned. ! 1692: */ ! 1693: #pragma pack(2) ! 1694: ! 1695: typedef struct { ! 1696: DWORD style; ! 1697: DWORD dwExtendedStyle; ! 1698: WORD cdit; ! 1699: WORD x; ! 1700: WORD y; ! 1701: WORD cx; ! 1702: WORD cy; ! 1703: } DLGTEMPLATE; ! 1704: typedef DLGTEMPLATE *LPDLGTEMPLATEA; ! 1705: typedef DLGTEMPLATE *LPDLGTEMPLATEW; ! 1706: #ifdef UNICODE ! 1707: #define LPDLGTEMPLATE LPDLGTEMPLATEW ! 1708: #else ! 1709: #define LPDLGTEMPLATE LPDLGTEMPLATEA ! 1710: #endif // UNICODE ! 1711: typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA; ! 1712: typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW; ! 1713: #ifdef UNICODE ! 1714: #define LPCDLGTEMPLATE LPCDLGTEMPLATEW ! 1715: #else ! 1716: #define LPCDLGTEMPLATE LPCDLGTEMPLATEA ! 1717: #endif // UNICODE ! 1718: ! 1719: /* ! 1720: * Dialog item template (dit) ! 1721: */ ! 1722: typedef struct { ! 1723: DWORD style; ! 1724: DWORD dwExtendedStyle; ! 1725: WORD x; ! 1726: WORD y; ! 1727: WORD cx; ! 1728: WORD cy; ! 1729: WORD id; ! 1730: } DLGITEMTEMPLATE; ! 1731: typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA; ! 1732: typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW; ! 1733: #ifdef UNICODE ! 1734: #define PDLGITEMTEMPLATE PDLGITEMTEMPLATEW ! 1735: #else ! 1736: #define PDLGITEMTEMPLATE PDLGITEMTEMPLATEA ! 1737: #endif // UNICODE ! 1738: typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA; ! 1739: typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW; ! 1740: #ifdef UNICODE ! 1741: #define LPDLGITEMTEMPLATE LPDLGITEMTEMPLATEW ! 1742: #else ! 1743: #define LPDLGITEMTEMPLATE LPDLGITEMTEMPLATEA ! 1744: #endif // UNICODE ! 1745: ! 1746: #pragma pack() // Resume normal packing ! 1747: #endif // !RC_INVOKED ! 1748: ! 1749: HWND ! 1750: WINAPI ! 1751: CreateDialogParamA( ! 1752: HINSTANCE hInstance, ! 1753: LPCSTR lpTemplateName, ! 1754: HWND hWndParent , ! 1755: DLGPROC lpDialogFunc, ! 1756: LPARAM dwInitParam); ! 1757: HWND ! 1758: WINAPI ! 1759: CreateDialogParamW( ! 1760: HINSTANCE hInstance, ! 1761: LPCWSTR lpTemplateName, ! 1762: HWND hWndParent , ! 1763: DLGPROC lpDialogFunc, ! 1764: LPARAM dwInitParam); ! 1765: #ifdef UNICODE ! 1766: #define CreateDialogParam CreateDialogParamW ! 1767: #else ! 1768: #define CreateDialogParam CreateDialogParamA ! 1769: #endif // !UNICODE ! 1770: ! 1771: HWND ! 1772: WINAPI ! 1773: CreateDialogIndirectParamA( ! 1774: HINSTANCE hInstance, ! 1775: LPCDLGTEMPLATEA lpTemplate, ! 1776: HWND hwndParent, ! 1777: DLGPROC lpDialogFunc, ! 1778: LPARAM dwInitParam); ! 1779: HWND ! 1780: WINAPI ! 1781: CreateDialogIndirectParamW( ! 1782: HINSTANCE hInstance, ! 1783: LPCDLGTEMPLATEW lpTemplate, ! 1784: HWND hwndParent, ! 1785: DLGPROC lpDialogFunc, ! 1786: LPARAM dwInitParam); ! 1787: #ifdef UNICODE ! 1788: #define CreateDialogIndirectParam CreateDialogIndirectParamW ! 1789: #else ! 1790: #define CreateDialogIndirectParam CreateDialogIndirectParamA ! 1791: #endif // !UNICODE ! 1792: ! 1793: #define CreateDialogA(hInstance, lpName, hwndParent, lpDialogFunc) \ ! 1794: CreateDialogParamA(hInstance, lpName, hwndParent, lpDialogFunc, 0L) ! 1795: #define CreateDialogW(hInstance, lpName, hwndParent, lpDialogFunc) \ ! 1796: CreateDialogParamW(hInstance, lpName, hwndParent, lpDialogFunc, 0L) ! 1797: #ifdef UNICODE ! 1798: #define CreateDialog CreateDialogW ! 1799: #else ! 1800: #define CreateDialog CreateDialogA ! 1801: #endif // !UNICODE ! 1802: ! 1803: #define CreateDialogIndirectA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1804: CreateDialogIndirectParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1805: #define CreateDialogIndirectW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1806: CreateDialogIndirectParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1807: #ifdef UNICODE ! 1808: #define CreateDialogIndirect CreateDialogIndirectW ! 1809: #else ! 1810: #define CreateDialogIndirect CreateDialogIndirectA ! 1811: #endif // !UNICODE ! 1812: ! 1813: int ! 1814: WINAPI ! 1815: DialogBoxParamA( ! 1816: HINSTANCE hInstance, ! 1817: LPCSTR lpTemplateName, ! 1818: HWND hWndParent , ! 1819: DLGPROC lpDialogFunc, ! 1820: LPARAM dwInitParam); ! 1821: int ! 1822: WINAPI ! 1823: DialogBoxParamW( ! 1824: HINSTANCE hInstance, ! 1825: LPCWSTR lpTemplateName, ! 1826: HWND hWndParent , ! 1827: DLGPROC lpDialogFunc, ! 1828: LPARAM dwInitParam); ! 1829: #ifdef UNICODE ! 1830: #define DialogBoxParam DialogBoxParamW ! 1831: #else ! 1832: #define DialogBoxParam DialogBoxParamA ! 1833: #endif // !UNICODE ! 1834: ! 1835: int ! 1836: WINAPI ! 1837: DialogBoxIndirectParamA( ! 1838: HINSTANCE hInstance, ! 1839: LPDLGTEMPLATEA hDialogTemplate, ! 1840: HWND hWndParent , ! 1841: DLGPROC lpDialogFunc, ! 1842: LPARAM dwInitParam); ! 1843: int ! 1844: WINAPI ! 1845: DialogBoxIndirectParamW( ! 1846: HINSTANCE hInstance, ! 1847: LPDLGTEMPLATEW hDialogTemplate, ! 1848: HWND hWndParent , ! 1849: DLGPROC lpDialogFunc, ! 1850: LPARAM dwInitParam); ! 1851: #ifdef UNICODE ! 1852: #define DialogBoxIndirectParam DialogBoxIndirectParamW ! 1853: #else ! 1854: #define DialogBoxIndirectParam DialogBoxIndirectParamA ! 1855: #endif // !UNICODE ! 1856: ! 1857: #define DialogBoxA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1858: DialogBoxParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1859: #define DialogBoxW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1860: DialogBoxParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1861: #ifdef UNICODE ! 1862: #define DialogBox DialogBoxW ! 1863: #else ! 1864: #define DialogBox DialogBoxA ! 1865: #endif // !UNICODE ! 1866: ! 1867: #define DialogBoxIndirectA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1868: DialogBoxIndirectParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1869: #define DialogBoxIndirectW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \ ! 1870: DialogBoxIndirectParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L) ! 1871: #ifdef UNICODE ! 1872: #define DialogBoxIndirect DialogBoxIndirectW ! 1873: #else ! 1874: #define DialogBoxIndirect DialogBoxIndirectA ! 1875: #endif // !UNICODE ! 1876: ! 1877: BOOL ! 1878: WINAPI ! 1879: EndDialog( ! 1880: HWND hDlg, ! 1881: int nResult); ! 1882: ! 1883: HWND ! 1884: WINAPI ! 1885: GetDlgItem( ! 1886: HWND hDlg, ! 1887: int nIDDlgItem); ! 1888: ! 1889: BOOL ! 1890: WINAPI ! 1891: SetDlgItemInt( ! 1892: HWND hDlg, ! 1893: int nIDDlgItem, ! 1894: UINT uValue, ! 1895: BOOL bSigned); ! 1896: ! 1897: UINT ! 1898: WINAPI ! 1899: GetDlgItemInt( ! 1900: HWND hDlg, ! 1901: int nIDDlgItem, ! 1902: BOOL *lpTranslated, ! 1903: BOOL bSigned); ! 1904: ! 1905: BOOL ! 1906: WINAPI ! 1907: SetDlgItemTextA( ! 1908: HWND hDlg, ! 1909: int nIDDlgItem, ! 1910: LPCSTR lpString); ! 1911: BOOL ! 1912: WINAPI ! 1913: SetDlgItemTextW( ! 1914: HWND hDlg, ! 1915: int nIDDlgItem, ! 1916: LPCWSTR lpString); ! 1917: #ifdef UNICODE ! 1918: #define SetDlgItemText SetDlgItemTextW ! 1919: #else ! 1920: #define SetDlgItemText SetDlgItemTextA ! 1921: #endif // !UNICODE ! 1922: ! 1923: UINT ! 1924: WINAPI ! 1925: GetDlgItemTextA( ! 1926: HWND hDlg, ! 1927: int nIDDlgItem, ! 1928: LPSTR lpString, ! 1929: int nMaxCount); ! 1930: UINT ! 1931: WINAPI ! 1932: GetDlgItemTextW( ! 1933: HWND hDlg, ! 1934: int nIDDlgItem, ! 1935: LPWSTR lpString, ! 1936: int nMaxCount); ! 1937: #ifdef UNICODE ! 1938: #define GetDlgItemText GetDlgItemTextW ! 1939: #else ! 1940: #define GetDlgItemText GetDlgItemTextA ! 1941: #endif // !UNICODE ! 1942: ! 1943: BOOL ! 1944: WINAPI ! 1945: CheckDlgButton( ! 1946: HWND hDlg, ! 1947: int nIDButton, ! 1948: UINT uCheck); ! 1949: ! 1950: BOOL ! 1951: WINAPI ! 1952: CheckRadioButton( ! 1953: HWND hDlg, ! 1954: int nIDFirstButton, ! 1955: int nIDLastButton, ! 1956: int nIDCheckButton); ! 1957: ! 1958: UINT ! 1959: WINAPI ! 1960: IsDlgButtonChecked( ! 1961: HWND hDlg, ! 1962: int nIDButton); ! 1963: ! 1964: LONG ! 1965: WINAPI ! 1966: SendDlgItemMessageA( ! 1967: HWND hDlg, ! 1968: int nIDDlgItem, ! 1969: UINT Msg, ! 1970: WPARAM wParam, ! 1971: LPARAM lParam); ! 1972: LONG ! 1973: WINAPI ! 1974: SendDlgItemMessageW( ! 1975: HWND hDlg, ! 1976: int nIDDlgItem, ! 1977: UINT Msg, ! 1978: WPARAM wParam, ! 1979: LPARAM lParam); ! 1980: #ifdef UNICODE ! 1981: #define SendDlgItemMessage SendDlgItemMessageW ! 1982: #else ! 1983: #define SendDlgItemMessage SendDlgItemMessageA ! 1984: #endif // !UNICODE ! 1985: ! 1986: HWND ! 1987: WINAPI ! 1988: GetNextDlgGroupItem( ! 1989: HWND hDlg, ! 1990: HWND hCtl, ! 1991: BOOL bPrevious); ! 1992: ! 1993: HWND ! 1994: WINAPI ! 1995: GetNextDlgTabItem( ! 1996: HWND hDlg, ! 1997: HWND hCtl, ! 1998: BOOL bPrevious); ! 1999: ! 2000: int ! 2001: WINAPI ! 2002: GetDlgCtrlID( ! 2003: HWND hWnd); ! 2004: ! 2005: long ! 2006: WINAPI ! 2007: GetDialogBaseUnits(VOID); ! 2008: ! 2009: LRESULT ! 2010: WINAPI ! 2011: DefDlgProcA( ! 2012: HWND hDlg, ! 2013: UINT Msg, ! 2014: WPARAM wParam, ! 2015: LPARAM lParam); ! 2016: LRESULT ! 2017: WINAPI ! 2018: DefDlgProcW( ! 2019: HWND hDlg, ! 2020: UINT Msg, ! 2021: WPARAM wParam, ! 2022: LPARAM lParam); ! 2023: #ifdef UNICODE ! 2024: #define DefDlgProc DefDlgProcW ! 2025: #else ! 2026: #define DefDlgProc DefDlgProcA ! 2027: #endif // !UNICODE ! 2028: ! 2029: /* ! 2030: * Window extra byted needed for private dialog classes. ! 2031: */ ! 2032: #define DLGWINDOWEXTRA 30 ! 2033: ! 2034: #endif /* NOCTLMGR */ ! 2035: ! 2036: #ifndef NOMSG ! 2037: BOOL ! 2038: WINAPI ! 2039: CallMsgFilter( ! 2040: LPMSG lpMsg, ! 2041: int nCode); ! 2042: #endif ! 2043: ! 2044: #ifndef NOCLIPBOARD ! 2045: ! 2046: /* Clipboard Manager Functions */ ! 2047: BOOL ! 2048: WINAPI ! 2049: OpenClipboard( ! 2050: HWND hWnd); ! 2051: ! 2052: BOOL ! 2053: WINAPI ! 2054: CloseClipboard( ! 2055: VOID); ! 2056: ! 2057: HWND ! 2058: WINAPI ! 2059: GetClipboardOwner( ! 2060: VOID); ! 2061: ! 2062: HWND ! 2063: WINAPI ! 2064: SetClipboardViewer( ! 2065: HWND ); ! 2066: ! 2067: HWND ! 2068: WINAPI ! 2069: GetClipboardViewer(VOID); ! 2070: ! 2071: BOOL ! 2072: WINAPI ! 2073: ChangeClipboardChain( ! 2074: HWND, ! 2075: HWND); ! 2076: ! 2077: HANDLE ! 2078: WINAPI ! 2079: SetClipboardData( ! 2080: UINT uFormat, ! 2081: HANDLE hMem); ! 2082: ! 2083: HANDLE ! 2084: WINAPI ! 2085: GetClipboardData( ! 2086: UINT uFormat); ! 2087: ! 2088: UINT ! 2089: WINAPI ! 2090: RegisterClipboardFormatA( ! 2091: LPCSTR); ! 2092: UINT ! 2093: WINAPI ! 2094: RegisterClipboardFormatW( ! 2095: LPCWSTR); ! 2096: #ifdef UNICODE ! 2097: #define RegisterClipboardFormat RegisterClipboardFormatW ! 2098: #else ! 2099: #define RegisterClipboardFormat RegisterClipboardFormatA ! 2100: #endif // !UNICODE ! 2101: ! 2102: int ! 2103: WINAPI ! 2104: CountClipboardFormats( ! 2105: VOID); ! 2106: ! 2107: UINT ! 2108: WINAPI ! 2109: EnumClipboardFormats( ! 2110: UINT); ! 2111: ! 2112: int ! 2113: WINAPI ! 2114: GetClipboardFormatNameA( ! 2115: UINT, ! 2116: LPSTR, ! 2117: int); ! 2118: int ! 2119: WINAPI ! 2120: GetClipboardFormatNameW( ! 2121: UINT, ! 2122: LPWSTR, ! 2123: int); ! 2124: #ifdef UNICODE ! 2125: #define GetClipboardFormatName GetClipboardFormatNameW ! 2126: #else ! 2127: #define GetClipboardFormatName GetClipboardFormatNameA ! 2128: #endif // !UNICODE ! 2129: ! 2130: BOOL ! 2131: WINAPI ! 2132: EmptyClipboard( ! 2133: VOID); ! 2134: ! 2135: BOOL ! 2136: WINAPI ! 2137: IsClipboardFormatAvailable( ! 2138: UINT); ! 2139: ! 2140: int ! 2141: WINAPI ! 2142: GetPriorityClipboardFormat( ! 2143: UINT *, ! 2144: int); ! 2145: ! 2146: HWND ! 2147: WINAPI ! 2148: GetOpenClipboardWindow( ! 2149: VOID); ! 2150: ! 2151: #endif /* NOCLIPBOARD */ ! 2152: ! 2153: /* Character Translation Routines */ ! 2154: ! 2155: BOOL ! 2156: WINAPI ! 2157: CharToOemA( ! 2158: LPCSTR, ! 2159: LPSTR); ! 2160: BOOL ! 2161: WINAPI ! 2162: CharToOemW( ! 2163: LPCWSTR, ! 2164: LPSTR); ! 2165: #ifdef UNICODE ! 2166: #define CharToOem CharToOemW ! 2167: #else ! 2168: #define CharToOem CharToOemA ! 2169: #endif // !UNICODE ! 2170: ! 2171: BOOL ! 2172: WINAPI ! 2173: OemToCharA( ! 2174: LPCSTR, ! 2175: LPSTR); ! 2176: BOOL ! 2177: WINAPI ! 2178: OemToCharW( ! 2179: LPCSTR, ! 2180: LPWSTR); ! 2181: #ifdef UNICODE ! 2182: #define OemToChar OemToCharW ! 2183: #else ! 2184: #define OemToChar OemToCharA ! 2185: #endif // !UNICODE ! 2186: ! 2187: BOOL ! 2188: WINAPI ! 2189: CharToOemBuffA( ! 2190: LPCSTR, ! 2191: LPSTR, ! 2192: DWORD); ! 2193: BOOL ! 2194: WINAPI ! 2195: CharToOemBuffW( ! 2196: LPCWSTR, ! 2197: LPSTR, ! 2198: DWORD); ! 2199: #ifdef UNICODE ! 2200: #define CharToOemBuff CharToOemBuffW ! 2201: #else ! 2202: #define CharToOemBuff CharToOemBuffA ! 2203: #endif // !UNICODE ! 2204: ! 2205: BOOL ! 2206: WINAPI ! 2207: OemToCharBuffA( ! 2208: LPCSTR, ! 2209: LPSTR, ! 2210: DWORD); ! 2211: BOOL ! 2212: WINAPI ! 2213: OemToCharBuffW( ! 2214: LPCSTR, ! 2215: LPWSTR, ! 2216: DWORD); ! 2217: #ifdef UNICODE ! 2218: #define OemToCharBuff OemToCharBuffW ! 2219: #else ! 2220: #define OemToCharBuff OemToCharBuffA ! 2221: #endif // !UNICODE ! 2222: ! 2223: LPSTR ! 2224: WINAPI ! 2225: CharUpperA( ! 2226: LPSTR); ! 2227: LPWSTR ! 2228: WINAPI ! 2229: CharUpperW( ! 2230: LPWSTR); ! 2231: #ifdef UNICODE ! 2232: #define CharUpper CharUpperW ! 2233: #else ! 2234: #define CharUpper CharUpperA ! 2235: #endif // !UNICODE ! 2236: ! 2237: DWORD ! 2238: WINAPI ! 2239: CharUpperBuffA( ! 2240: LPSTR, ! 2241: DWORD); ! 2242: DWORD ! 2243: WINAPI ! 2244: CharUpperBuffW( ! 2245: LPWSTR, ! 2246: DWORD); ! 2247: #ifdef UNICODE ! 2248: #define CharUpperBuff CharUpperBuffW ! 2249: #else ! 2250: #define CharUpperBuff CharUpperBuffA ! 2251: #endif // !UNICODE ! 2252: ! 2253: LPSTR ! 2254: WINAPI ! 2255: CharLowerA( ! 2256: LPSTR); ! 2257: LPWSTR ! 2258: WINAPI ! 2259: CharLowerW( ! 2260: LPWSTR); ! 2261: #ifdef UNICODE ! 2262: #define CharLower CharLowerW ! 2263: #else ! 2264: #define CharLower CharLowerA ! 2265: #endif // !UNICODE ! 2266: ! 2267: DWORD ! 2268: WINAPI ! 2269: CharLowerBuffA( ! 2270: LPSTR, ! 2271: DWORD); ! 2272: DWORD ! 2273: WINAPI ! 2274: CharLowerBuffW( ! 2275: LPWSTR, ! 2276: DWORD); ! 2277: #ifdef UNICODE ! 2278: #define CharLowerBuff CharLowerBuffW ! 2279: #else ! 2280: #define CharLowerBuff CharLowerBuffA ! 2281: #endif // !UNICODE ! 2282: ! 2283: LPSTR ! 2284: WINAPI ! 2285: CharNextA( ! 2286: LPCSTR); ! 2287: LPWSTR ! 2288: WINAPI ! 2289: CharNextW( ! 2290: LPCWSTR); ! 2291: #ifdef UNICODE ! 2292: #define CharNext CharNextW ! 2293: #else ! 2294: #define CharNext CharNextA ! 2295: #endif // !UNICODE ! 2296: ! 2297: LPSTR ! 2298: WINAPI ! 2299: CharPrevA( ! 2300: LPCSTR, ! 2301: LPCSTR); ! 2302: LPWSTR ! 2303: WINAPI ! 2304: CharPrevW( ! 2305: LPCWSTR, ! 2306: LPCWSTR); ! 2307: #ifdef UNICODE ! 2308: #define CharPrev CharPrevW ! 2309: #else ! 2310: #define CharPrev CharPrevA ! 2311: #endif // !UNICODE ! 2312: ! 2313: /* Compatibility defines for character translation routines */ ! 2314: #define AnsiToOem CharToOemA ! 2315: #define OemToAnsi OemToCharA ! 2316: #define AnsiToOemBuff CharToOemBuffA ! 2317: #define OemToAnsiBuff OemToCharBuffA ! 2318: #define AnsiUpper CharUpperA ! 2319: #define AnsiUpperBuff CharUpperBuffA ! 2320: #define AnsiLower CharLowerA ! 2321: #define AnsiLowerBuff CharLowerBuffA ! 2322: #define AnsiNext CharNextA ! 2323: #define AnsiPrev CharPrevA ! 2324: ! 2325: #ifndef NOLANGUAGE ! 2326: /* Language dependent Routines */ ! 2327: ! 2328: BOOL ! 2329: WINAPI ! 2330: IsCharAlphaA( ! 2331: CHAR); ! 2332: BOOL ! 2333: WINAPI ! 2334: IsCharAlphaW( ! 2335: WCHAR); ! 2336: #ifdef UNICODE ! 2337: #define IsCharAlpha IsCharAlphaW ! 2338: #else ! 2339: #define IsCharAlpha IsCharAlphaA ! 2340: #endif // !UNICODE ! 2341: ! 2342: BOOL ! 2343: WINAPI ! 2344: IsCharAlphaNumericA( ! 2345: CHAR); ! 2346: BOOL ! 2347: WINAPI ! 2348: IsCharAlphaNumericW( ! 2349: WCHAR); ! 2350: #ifdef UNICODE ! 2351: #define IsCharAlphaNumeric IsCharAlphaNumericW ! 2352: #else ! 2353: #define IsCharAlphaNumeric IsCharAlphaNumericA ! 2354: #endif // !UNICODE ! 2355: ! 2356: BOOL ! 2357: WINAPI ! 2358: IsCharUpperA( ! 2359: CHAR); ! 2360: BOOL ! 2361: WINAPI ! 2362: IsCharUpperW( ! 2363: WCHAR); ! 2364: #ifdef UNICODE ! 2365: #define IsCharUpper IsCharUpperW ! 2366: #else ! 2367: #define IsCharUpper IsCharUpperA ! 2368: #endif // !UNICODE ! 2369: ! 2370: BOOL ! 2371: WINAPI ! 2372: IsCharLowerA( ! 2373: CHAR); ! 2374: BOOL ! 2375: WINAPI ! 2376: IsCharLowerW( ! 2377: WCHAR); ! 2378: #ifdef UNICODE ! 2379: #define IsCharLower IsCharLowerW ! 2380: #else ! 2381: #define IsCharLower IsCharLowerA ! 2382: #endif // !UNICODE ! 2383: ! 2384: #endif ! 2385: ! 2386: HWND ! 2387: WINAPI ! 2388: SetFocus( ! 2389: HWND hWnd); ! 2390: ! 2391: HWND ! 2392: WINAPI ! 2393: GetActiveWindow( ! 2394: VOID); ! 2395: ! 2396: HWND ! 2397: WINAPI ! 2398: GetFocus( ! 2399: VOID); ! 2400: ! 2401: UINT ! 2402: WINAPI ! 2403: GetKBCodePage( ! 2404: VOID); ! 2405: ! 2406: SHORT ! 2407: WINAPI ! 2408: GetKeyState( ! 2409: int nVirtKey); ! 2410: ! 2411: SHORT ! 2412: WINAPI ! 2413: GetAsyncKeyState( ! 2414: int vKey); ! 2415: ! 2416: BOOL ! 2417: WINAPI ! 2418: GetKeyboardState( ! 2419: PBYTE lpKeyState); ! 2420: ! 2421: BOOL ! 2422: WINAPI ! 2423: SetKeyboardState( ! 2424: LPBYTE lpKeyState); ! 2425: ! 2426: int ! 2427: WINAPI ! 2428: GetKeyNameTextA( ! 2429: LONG lParam, ! 2430: LPSTR lpString, ! 2431: int nSize ! 2432: ); ! 2433: int ! 2434: WINAPI ! 2435: GetKeyNameTextW( ! 2436: LONG lParam, ! 2437: LPWSTR lpString, ! 2438: int nSize ! 2439: ); ! 2440: #ifdef UNICODE ! 2441: #define GetKeyNameText GetKeyNameTextW ! 2442: #else ! 2443: #define GetKeyNameText GetKeyNameTextA ! 2444: #endif // !UNICODE ! 2445: ! 2446: int ! 2447: WINAPI ! 2448: GetKeyboardType( ! 2449: int nTypeFlag); ! 2450: ! 2451: int ! 2452: WINAPI ! 2453: ToAscii( ! 2454: UINT uVirtKey, ! 2455: UINT uScanCode, ! 2456: PBYTE lpKeyState, ! 2457: LPWORD lpChar, ! 2458: UINT uFlags); ! 2459: ! 2460: int ! 2461: WINAPI ! 2462: ToUnicode( ! 2463: UINT wVirtKey, ! 2464: UINT wScanCode, ! 2465: PBYTE lpKeyState, ! 2466: LPDWORD lpChar, ! 2467: UINT wFlags); ! 2468: ! 2469: SHORT ! 2470: WINAPI ! 2471: VkKeyScanA( ! 2472: CHAR cChar); ! 2473: SHORT ! 2474: WINAPI ! 2475: VkKeyScanW( ! 2476: WCHAR cChar); ! 2477: #ifdef UNICODE ! 2478: #define VkKeyScan VkKeyScanW ! 2479: #else ! 2480: #define VkKeyScan VkKeyScanA ! 2481: #endif // !UNICODE ! 2482: ! 2483: UINT ! 2484: WINAPI ! 2485: MapVirtualKey( ! 2486: UINT uCode, ! 2487: UINT uMapType); ! 2488: ! 2489: BOOL ! 2490: WINAPI ! 2491: GetInputState( ! 2492: VOID); ! 2493: ! 2494: DWORD ! 2495: WINAPI ! 2496: GetQueueStatus( ! 2497: UINT flags); ! 2498: ! 2499: HWND ! 2500: WINAPI ! 2501: GetCapture(VOID); ! 2502: ! 2503: HWND ! 2504: WINAPI ! 2505: SetCapture( ! 2506: HWND hWnd); ! 2507: ! 2508: BOOL ! 2509: WINAPI ! 2510: ReleaseCapture( ! 2511: VOID); ! 2512: ! 2513: DWORD ! 2514: WINAPI ! 2515: MsgWaitForMultipleObjects( ! 2516: DWORD nCount, ! 2517: LPHANDLE pHandles, ! 2518: BOOL fWaitAll, ! 2519: DWORD dwMilliseconds, ! 2520: DWORD dwWakeMask); ! 2521: ! 2522: /* Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects() */ ! 2523: #define QS_KEY 0x01 ! 2524: #define QS_MOUSEMOVE 0x02 ! 2525: #define QS_MOUSEBUTTON 0x04 ! 2526: #define QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON) ! 2527: #define QS_POSTMESSAGE 0x08 ! 2528: #define QS_TIMER 0x10 ! 2529: #define QS_PAINT 0x20 ! 2530: #define QS_SENDMESSAGE 0x40 ! 2531: #define QS_HOTKEY 0x80 ! 2532: #define QS_INPUT (QS_MOUSE | QS_KEY) ! 2533: #define QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY) ! 2534: ! 2535: ! 2536: UINT ! 2537: WINAPI ! 2538: GetSysInputMode( ! 2539: VOID); ! 2540: ! 2541: /* GetSysInputMode return values */ ! 2542: #define IMD_NONE 0 ! 2543: #define IMD_MENU 1 ! 2544: #define IMD_DIALOGBOX 2 ! 2545: #define IMD_NEXTWINDOW 3 ! 2546: #define IMD_SCROLLBAR 4 ! 2547: #define IMD_TITLEBUTTONTRACK 5 ! 2548: #define IMD_MOVESIZETRACK 6 ! 2549: #define IMD_SYSERRDLG 7 ! 2550: #define IMD_DRAGOBJECT 8 ! 2551: #define IMD_DRAGDETECT 9 ! 2552: ! 2553: ! 2554: /* Windows Functions */ ! 2555: UINT ! 2556: WINAPI ! 2557: SetTimer( ! 2558: HWND hwnd , ! 2559: UINT nIDEvent, ! 2560: UINT uElapse, ! 2561: TIMERPROC lpTimerFunc); ! 2562: ! 2563: BOOL ! 2564: WINAPI ! 2565: KillTimer( ! 2566: HWND hWnd, ! 2567: UINT uIDEvent); ! 2568: ! 2569: BOOL ! 2570: WINAPI ! 2571: IsWindowUnicode( ! 2572: HWND hWnd); ! 2573: ! 2574: BOOL ! 2575: WINAPI ! 2576: EnableWindow( ! 2577: HWND hWnd, ! 2578: BOOL bEnable); ! 2579: ! 2580: BOOL ! 2581: WINAPI ! 2582: IsWindowEnabled( ! 2583: HWND hWnd); ! 2584: ! 2585: HACCEL ! 2586: WINAPI ! 2587: LoadAcceleratorsA( ! 2588: HINSTANCE hInstance, ! 2589: LPCSTR lpTableName); ! 2590: HACCEL ! 2591: WINAPI ! 2592: LoadAcceleratorsW( ! 2593: HINSTANCE hInstance, ! 2594: LPCWSTR lpTableName); ! 2595: #ifdef UNICODE ! 2596: #define LoadAccelerators LoadAcceleratorsW ! 2597: #else ! 2598: #define LoadAccelerators LoadAcceleratorsA ! 2599: #endif // !UNICODE ! 2600: ! 2601: HACCEL ! 2602: WINAPI ! 2603: CreateAcceleratorTable( ! 2604: LPACCEL, int); ! 2605: ! 2606: BOOL ! 2607: WINAPI ! 2608: DestroyAcceleratorTable( ! 2609: HACCEL); ! 2610: ! 2611: int ! 2612: WINAPI ! 2613: CopyAcceleratorTable( ! 2614: HACCEL, ! 2615: LPACCEL , ! 2616: int); ! 2617: ! 2618: #ifndef NOMSG ! 2619: int ! 2620: WINAPI ! 2621: TranslateAccelerator( ! 2622: HWND hWnd, ! 2623: HACCEL hAccTable, ! 2624: LPMSG lpMsg); ! 2625: #endif ! 2626: ! 2627: #ifndef NOSYSMETRICS ! 2628: ! 2629: /* GetSystemMetrics() codes */ ! 2630: #define SM_CXSCREEN 0 ! 2631: #define SM_CYSCREEN 1 ! 2632: #define SM_CXVSCROLL 2 ! 2633: #define SM_CYHSCROLL 3 ! 2634: #define SM_CYCAPTION 4 ! 2635: #define SM_CXBORDER 5 ! 2636: #define SM_CYBORDER 6 ! 2637: #define SM_CXDLGFRAME 7 ! 2638: #define SM_CYDLGFRAME 8 ! 2639: #define SM_CYVTHUMB 9 ! 2640: #define SM_CXHTHUMB 10 ! 2641: #define SM_CXICON 11 ! 2642: #define SM_CYICON 12 ! 2643: #define SM_CXCURSOR 13 ! 2644: #define SM_CYCURSOR 14 ! 2645: #define SM_CYMENU 15 ! 2646: #define SM_CXFULLSCREEN 16 ! 2647: #define SM_CYFULLSCREEN 17 ! 2648: #define SM_CYKANJIWINDOW 18 ! 2649: #define SM_MOUSEPRESENT 19 ! 2650: #define SM_CYVSCROLL 20 ! 2651: #define SM_CXHSCROLL 21 ! 2652: #define SM_DEBUG 22 ! 2653: #define SM_SWAPBUTTON 23 ! 2654: #define SM_RESERVED1 24 ! 2655: #define SM_RESERVED2 25 ! 2656: #define SM_RESERVED3 26 ! 2657: #define SM_RESERVED4 27 ! 2658: #define SM_CXMIN 28 ! 2659: #define SM_CYMIN 29 ! 2660: #define SM_CXSIZE 30 ! 2661: #define SM_CYSIZE 31 ! 2662: #define SM_CXFRAME 32 ! 2663: #define SM_CYFRAME 33 ! 2664: #define SM_CXMINTRACK 34 ! 2665: #define SM_CYMINTRACK 35 ! 2666: #define SM_CXDOUBLECLK 36 ! 2667: #define SM_CYDOUBLECLK 37 ! 2668: #define SM_CXICONSPACING 38 ! 2669: #define SM_CYICONSPACING 39 ! 2670: #define SM_MENUDROPALIGNMENT 40 ! 2671: #define SM_PENWINDOWS 41 ! 2672: #define SM_DBCSENABLED 42 ! 2673: #define SM_CMOUSEBUTTONS 43 ! 2674: #define SM_MAX 43 ! 2675: #define SM_CMETRICS 44 ! 2676: ! 2677: int ! 2678: WINAPI ! 2679: GetSystemMetrics( ! 2680: int nIndex); ! 2681: ! 2682: #endif /* NOSYSMETRICS */ ! 2683: ! 2684: #ifndef NOMENUS ! 2685: ! 2686: HMENU ! 2687: WINAPI ! 2688: LoadMenuA( ! 2689: HINSTANCE hInstance, ! 2690: LPCSTR lpMenuName); ! 2691: HMENU ! 2692: WINAPI ! 2693: LoadMenuW( ! 2694: HINSTANCE hInstance, ! 2695: LPCWSTR lpMenuName); ! 2696: #ifdef UNICODE ! 2697: #define LoadMenu LoadMenuW ! 2698: #else ! 2699: #define LoadMenu LoadMenuA ! 2700: #endif // !UNICODE ! 2701: ! 2702: HMENU ! 2703: WINAPI ! 2704: LoadMenuIndirectA( ! 2705: LPMENUTEMPLATEA lpMenuTemplate); ! 2706: HMENU ! 2707: WINAPI ! 2708: LoadMenuIndirectW( ! 2709: LPMENUTEMPLATEW lpMenuTemplate); ! 2710: #ifdef UNICODE ! 2711: #define LoadMenuIndirect LoadMenuIndirectW ! 2712: #else ! 2713: #define LoadMenuIndirect LoadMenuIndirectA ! 2714: #endif // !UNICODE ! 2715: ! 2716: HMENU ! 2717: WINAPI ! 2718: GetMenu( ! 2719: HWND hWnd); ! 2720: ! 2721: BOOL ! 2722: WINAPI ! 2723: SetMenu( ! 2724: HWND hWnd, ! 2725: HMENU hMenu); ! 2726: ! 2727: BOOL ! 2728: WINAPI ! 2729: ChangeMenuA( ! 2730: HMENU, ! 2731: UINT, ! 2732: LPCTSTR, ! 2733: UINT, ! 2734: UINT); ! 2735: BOOL ! 2736: WINAPI ! 2737: ChangeMenuW( ! 2738: HMENU, ! 2739: UINT, ! 2740: LPCTSTR, ! 2741: UINT, ! 2742: UINT); ! 2743: #ifdef UNICODE ! 2744: #define ChangeMenu ChangeMenuW ! 2745: #else ! 2746: #define ChangeMenu ChangeMenuA ! 2747: #endif // !UNICODE ! 2748: ! 2749: BOOL ! 2750: WINAPI ! 2751: HiliteMenuItem( ! 2752: HWND hWnd, ! 2753: HMENU hMenu, ! 2754: UINT uIDHiliteItem, ! 2755: UINT uHilite); ! 2756: ! 2757: int ! 2758: WINAPI ! 2759: GetMenuStringA( ! 2760: HMENU hMenu, ! 2761: UINT uIDItem, ! 2762: LPSTR lpString, ! 2763: int nMaxCount, ! 2764: UINT uFlag); ! 2765: int ! 2766: WINAPI ! 2767: GetMenuStringW( ! 2768: HMENU hMenu, ! 2769: UINT uIDItem, ! 2770: LPWSTR lpString, ! 2771: int nMaxCount, ! 2772: UINT uFlag); ! 2773: #ifdef UNICODE ! 2774: #define GetMenuString GetMenuStringW ! 2775: #else ! 2776: #define GetMenuString GetMenuStringA ! 2777: #endif // !UNICODE ! 2778: ! 2779: UINT ! 2780: WINAPI ! 2781: GetMenuState( ! 2782: HMENU hMenu, ! 2783: UINT uId, ! 2784: UINT uFlags); ! 2785: ! 2786: BOOL ! 2787: WINAPI ! 2788: DrawMenuBar( ! 2789: HWND hWnd); ! 2790: ! 2791: HMENU ! 2792: WINAPI ! 2793: GetSystemMenu( ! 2794: HWND hWnd, ! 2795: BOOL bRevert); ! 2796: ! 2797: HMENU ! 2798: WINAPI ! 2799: CreateMenu( ! 2800: VOID); ! 2801: ! 2802: HMENU ! 2803: WINAPI ! 2804: CreatePopupMenu( ! 2805: VOID); ! 2806: ! 2807: BOOL ! 2808: WINAPI ! 2809: DestroyMenu( ! 2810: HMENU hMenu); ! 2811: ! 2812: DWORD ! 2813: WINAPI ! 2814: CheckMenuItem( ! 2815: HMENU hMenu, ! 2816: UINT uIDCheckItem, ! 2817: UINT uCheck); ! 2818: ! 2819: BOOL ! 2820: WINAPI ! 2821: EnableMenuItem( ! 2822: HMENU hMenu, ! 2823: UINT uIDEnableItem, ! 2824: UINT uEnable); ! 2825: ! 2826: HMENU ! 2827: WINAPI ! 2828: GetSubMenu( ! 2829: HMENU hMenu, ! 2830: int nPos); ! 2831: ! 2832: UINT ! 2833: WINAPI ! 2834: GetMenuItemID( ! 2835: HMENU hMenu, ! 2836: int nPos); ! 2837: ! 2838: int ! 2839: WINAPI ! 2840: GetMenuItemCount( ! 2841: HMENU hMenu); ! 2842: ! 2843: BOOL ! 2844: WINAPI ! 2845: InsertMenuA( ! 2846: HMENU hMenu, ! 2847: UINT uPosition, ! 2848: UINT uFlags, ! 2849: UINT uIDNewItem, ! 2850: LPCSTR lpNewItem ! 2851: ); ! 2852: BOOL ! 2853: WINAPI ! 2854: InsertMenuW( ! 2855: HMENU hMenu, ! 2856: UINT uPosition, ! 2857: UINT uFlags, ! 2858: UINT uIDNewItem, ! 2859: LPCWSTR lpNewItem ! 2860: ); ! 2861: #ifdef UNICODE ! 2862: #define InsertMenu InsertMenuW ! 2863: #else ! 2864: #define InsertMenu InsertMenuA ! 2865: #endif // !UNICODE ! 2866: ! 2867: BOOL ! 2868: WINAPI ! 2869: AppendMenuA( ! 2870: HMENU hMenu, ! 2871: UINT uFlags, ! 2872: UINT uIDNewItem, ! 2873: LPCSTR lpNewItem ! 2874: ); ! 2875: BOOL ! 2876: WINAPI ! 2877: AppendMenuW( ! 2878: HMENU hMenu, ! 2879: UINT uFlags, ! 2880: UINT uIDNewItem, ! 2881: LPCWSTR lpNewItem ! 2882: ); ! 2883: #ifdef UNICODE ! 2884: #define AppendMenu AppendMenuW ! 2885: #else ! 2886: #define AppendMenu AppendMenuA ! 2887: #endif // !UNICODE ! 2888: ! 2889: BOOL ! 2890: WINAPI ! 2891: ModifyMenuA( ! 2892: HMENU hMnu, ! 2893: UINT uPosition, ! 2894: UINT uFlags, ! 2895: UINT uIDNewItem, ! 2896: LPCSTR lpNewItem ! 2897: ); ! 2898: BOOL ! 2899: WINAPI ! 2900: ModifyMenuW( ! 2901: HMENU hMnu, ! 2902: UINT uPosition, ! 2903: UINT uFlags, ! 2904: UINT uIDNewItem, ! 2905: LPCWSTR lpNewItem ! 2906: ); ! 2907: #ifdef UNICODE ! 2908: #define ModifyMenu ModifyMenuW ! 2909: #else ! 2910: #define ModifyMenu ModifyMenuA ! 2911: #endif // !UNICODE ! 2912: ! 2913: BOOL ! 2914: WINAPI RemoveMenu( ! 2915: HMENU hMenu, ! 2916: UINT uPosition, ! 2917: UINT uFlags); ! 2918: ! 2919: BOOL ! 2920: WINAPI ! 2921: DeleteMenu( ! 2922: HMENU hMenu, ! 2923: UINT uPosition, ! 2924: UINT uFlags); ! 2925: ! 2926: BOOL ! 2927: WINAPI ! 2928: SetMenuItemBitmaps( ! 2929: HMENU hMenu, ! 2930: UINT uPosition, ! 2931: UINT uFlags, ! 2932: HBITMAP hBitmapUnchecked, ! 2933: HBITMAP hBitmapChecked); ! 2934: ! 2935: LONG ! 2936: WINAPI ! 2937: GetMenuCheckMarkDimensions( ! 2938: VOID); ! 2939: ! 2940: BOOL ! 2941: WINAPI ! 2942: TrackPopupMenu( ! 2943: HMENU hMenu, ! 2944: UINT uFlags, ! 2945: int x, ! 2946: int y, ! 2947: int nReserved, ! 2948: HWND hWnd, ! 2949: CONST RECT *prcRect); ! 2950: ! 2951: /* Flags for TrackPopupMenu */ ! 2952: #define TPM_LEFTBUTTON 0x0000L ! 2953: #define TPM_RIGHTBUTTON 0x0002L ! 2954: #define TPM_LEFTALIGN 0x0000L ! 2955: #define TPM_CENTERALIGN 0x0004L ! 2956: #define TPM_RIGHTALIGN 0x0008L ! 2957: ! 2958: #endif /* NOMENUS */ ! 2959: ! 2960: BOOL ! 2961: WINAPI ! 2962: DrawIcon( ! 2963: HDC, ! 2964: int, ! 2965: int, ! 2966: HICON); ! 2967: ! 2968: #ifndef NODRAWTEXT ! 2969: ! 2970: /* DrawText() Format Flags */ ! 2971: #define DT_TOP 0x0000 ! 2972: #define DT_LEFT 0x0000 ! 2973: #define DT_CENTER 0x0001 ! 2974: #define DT_RIGHT 0x0002 ! 2975: #define DT_VCENTER 0x0004 ! 2976: #define DT_BOTTOM 0x0008 ! 2977: #define DT_WORDBREAK 0x0010 ! 2978: #define DT_SINGLELINE 0x0020 ! 2979: #define DT_EXPANDTABS 0x0040 ! 2980: #define DT_TABSTOP 0x0080 ! 2981: #define DT_NOCLIP 0x0100 ! 2982: #define DT_EXTERNALLEADING 0x0200 ! 2983: #define DT_CALCRECT 0x0400 ! 2984: #define DT_NOPREFIX 0x0800 ! 2985: #define DT_INTERNAL 0x1000 ! 2986: ! 2987: #endif /* NODRAWTEXT */ ! 2988: ! 2989: int ! 2990: WINAPI DrawTextA( ! 2991: HDC hDC, ! 2992: LPCSTR lpString, ! 2993: int nCount, ! 2994: LPRECT lpRect, ! 2995: UINT uFormat); ! 2996: int ! 2997: WINAPI DrawTextW( ! 2998: HDC hDC, ! 2999: LPCWSTR lpString, ! 3000: int nCount, ! 3001: LPRECT lpRect, ! 3002: UINT uFormat); ! 3003: #ifdef UNICODE ! 3004: #define DrawText DrawTextW ! 3005: #else ! 3006: #define DrawText DrawTextA ! 3007: #endif // !UNICODE ! 3008: ! 3009: BOOL ! 3010: WINAPI ! 3011: GrayStringA( ! 3012: HDC hDC, ! 3013: HBRUSH hBrush, ! 3014: GRAYSTRINGPROC lpOutputFunc, ! 3015: LPARAM lpData, ! 3016: int nCount, ! 3017: int X, ! 3018: int Y, ! 3019: int nWidth, ! 3020: int nHeight); ! 3021: BOOL ! 3022: WINAPI ! 3023: GrayStringW( ! 3024: HDC hDC, ! 3025: HBRUSH hBrush, ! 3026: GRAYSTRINGPROC lpOutputFunc, ! 3027: LPARAM lpData, ! 3028: int nCount, ! 3029: int X, ! 3030: int Y, ! 3031: int nWidth, ! 3032: int nHeight); ! 3033: #ifdef UNICODE ! 3034: #define GrayString GrayStringW ! 3035: #else ! 3036: #define GrayString GrayStringA ! 3037: #endif // !UNICODE ! 3038: ! 3039: LONG ! 3040: WINAPI ! 3041: TabbedTextOutA( ! 3042: HDC hDC, ! 3043: int X, ! 3044: int Y, ! 3045: LPCSTR lpString, ! 3046: int nCount, ! 3047: int nTabPositions, ! 3048: LPINT lpnTabStopPositions, ! 3049: int nTabOrigin); ! 3050: LONG ! 3051: WINAPI ! 3052: TabbedTextOutW( ! 3053: HDC hDC, ! 3054: int X, ! 3055: int Y, ! 3056: LPCWSTR lpString, ! 3057: int nCount, ! 3058: int nTabPositions, ! 3059: LPINT lpnTabStopPositions, ! 3060: int nTabOrigin); ! 3061: #ifdef UNICODE ! 3062: #define TabbedTextOut TabbedTextOutW ! 3063: #else ! 3064: #define TabbedTextOut TabbedTextOutA ! 3065: #endif // !UNICODE ! 3066: ! 3067: DWORD ! 3068: WINAPI ! 3069: GetTabbedTextExtentA( ! 3070: HDC hDC, ! 3071: LPCSTR lpString, ! 3072: int nCount, ! 3073: int nTabPositions, ! 3074: LPINT lpnTabStopPositions); ! 3075: DWORD ! 3076: WINAPI ! 3077: GetTabbedTextExtentW( ! 3078: HDC hDC, ! 3079: LPCWSTR lpString, ! 3080: int nCount, ! 3081: int nTabPositions, ! 3082: LPINT lpnTabStopPositions); ! 3083: #ifdef UNICODE ! 3084: #define GetTabbedTextExtent GetTabbedTextExtentW ! 3085: #else ! 3086: #define GetTabbedTextExtent GetTabbedTextExtentA ! 3087: #endif // !UNICODE ! 3088: ! 3089: BOOL ! 3090: WINAPI ! 3091: UpdateWindow( ! 3092: HWND hWnd); ! 3093: ! 3094: HWND ! 3095: WINAPI ! 3096: SetActiveWindow( ! 3097: HWND hWnd ); ! 3098: ! 3099: HWND ! 3100: WINAPI ! 3101: GetForegroundWindow( ! 3102: VOID); ! 3103: ! 3104: BOOL ! 3105: WINAPI ! 3106: SetForegroundWindow( ! 3107: HWND hWnd); ! 3108: ! 3109: HWND ! 3110: WINAPI ! 3111: WindowFromDC( ! 3112: HDC hdc); ! 3113: ! 3114: HDC ! 3115: WINAPI ! 3116: GetDC( ! 3117: HWND hWnd ); ! 3118: ! 3119: HDC ! 3120: WINAPI ! 3121: GetDCEx( ! 3122: HWND hwnd , ! 3123: HRGN hrgnClip, ! 3124: DWORD flags); ! 3125: ! 3126: /* GetDCEx() flags */ ! 3127: #define DCX_WINDOW 0x00000001L ! 3128: #define DCX_CACHE 0x00000002L ! 3129: #define DCX_NORESETATTRS 0x00000004L ! 3130: #define DCX_CLIPCHILDREN 0x00000008L ! 3131: #define DCX_CLIPSIBLINGS 0x00000010L ! 3132: #define DCX_PARENTCLIP 0x00000020L ! 3133: ! 3134: #define DCX_EXCLUDERGN 0x00000040L ! 3135: #define DCX_INTERSECTRGN 0x00000080L ! 3136: ! 3137: #define DCX_EXCLUDEUPDATE 0x00000100L ! 3138: #define DCX_INTERSECTUPDATE 0x00000200L ! 3139: ! 3140: #define DCX_LOCKWINDOWUPDATE 0x00000400L ! 3141: ! 3142: ! 3143: #define DCX_USESTYLE 0x00010000L ! 3144: #define DCX_NORECOMPUTE 0x00100000L ! 3145: #define DCX_VALIDATE 0x00200000L ! 3146: ! 3147: ! 3148: HDC ! 3149: WINAPI ! 3150: GetWindowDC( ! 3151: HWND hWnd ); ! 3152: ! 3153: int ! 3154: WINAPI ! 3155: ReleaseDC( ! 3156: HWND hWnd, ! 3157: HDC hDC); ! 3158: ! 3159: HDC ! 3160: WINAPI ! 3161: BeginPaint( ! 3162: HWND hWnd, ! 3163: LPPAINTSTRUCT lpPaint); ! 3164: ! 3165: BOOL ! 3166: WINAPI ! 3167: EndPaint( ! 3168: HWND hWnd, ! 3169: LPPAINTSTRUCT lpPaint); ! 3170: ! 3171: BOOL ! 3172: WINAPI ! 3173: GetUpdateRect( ! 3174: HWND hWnd, ! 3175: LPRECT lpRect, ! 3176: BOOL bErase); ! 3177: ! 3178: int ! 3179: WINAPI ! 3180: GetUpdateRgn( ! 3181: HWND hWnd, ! 3182: HRGN hRgn, ! 3183: BOOL bErase); ! 3184: ! 3185: int ! 3186: WINAPI ! 3187: ExcludeUpdateRgn( ! 3188: HDC hDC, ! 3189: HWND hWnd); ! 3190: ! 3191: BOOL ! 3192: WINAPI ! 3193: InvalidateRect( ! 3194: HWND hWnd , ! 3195: CONST RECT *lpRect, ! 3196: BOOL bErase); ! 3197: ! 3198: BOOL ! 3199: WINAPI ! 3200: ValidateRect( ! 3201: HWND hWnd , ! 3202: CONST RECT *lpRect); ! 3203: ! 3204: BOOL ! 3205: WINAPI ! 3206: InvalidateRgn( ! 3207: HWND hWnd, ! 3208: HRGN hRgn, ! 3209: BOOL bErase); ! 3210: ! 3211: BOOL ! 3212: WINAPI ! 3213: ValidateRgn( ! 3214: HWND hWnd, ! 3215: HRGN hRgn); ! 3216: ! 3217: ! 3218: BOOL WINAPI RedrawWindow( ! 3219: HWND hwnd, ! 3220: CONST RECT *lprcUpdate, ! 3221: HRGN hrgnUpdate, ! 3222: UINT flags); ! 3223: ! 3224: /* RedrawWindow() flags */ ! 3225: #define RDW_INVALIDATE 0x0001 ! 3226: #define RDW_INTERNALPAINT 0x0002 ! 3227: #define RDW_ERASE 0x0004 ! 3228: ! 3229: #define RDW_VALIDATE 0x0008 ! 3230: #define RDW_NOINTERNALPAINT 0x0010 ! 3231: #define RDW_NOERASE 0x0020 ! 3232: ! 3233: #define RDW_NOCHILDREN 0x0040 ! 3234: #define RDW_ALLCHILDREN 0x0080 ! 3235: ! 3236: #define RDW_UPDATENOW 0x0100 ! 3237: #define RDW_ERASENOW 0x0200 ! 3238: ! 3239: ! 3240: /* LockWindowUpdate API */ ! 3241: BOOL ! 3242: WINAPI ! 3243: LockWindowUpdate( ! 3244: HWND hwndLock); ! 3245: ! 3246: BOOL ! 3247: WINAPI ! 3248: ScrollWindow( ! 3249: HWND hWnd, ! 3250: int XAmount, ! 3251: int YAmount, ! 3252: CONST RECT *lpRect, ! 3253: CONST RECT *lpClipRect); ! 3254: ! 3255: BOOL ! 3256: WINAPI ! 3257: ScrollDC( ! 3258: HDC hDC, ! 3259: int dx, ! 3260: int dy, ! 3261: CONST RECT *lprcScroll, ! 3262: CONST RECT *lprcClip , ! 3263: HRGN hrgnUpdate, ! 3264: LPRECT lprcUpdate); ! 3265: ! 3266: int ! 3267: WINAPI ! 3268: ScrollWindowEx( ! 3269: HWND hwnd, ! 3270: int dx, ! 3271: int dy, ! 3272: CONST RECT *prcScroll, ! 3273: CONST RECT *prcClip , ! 3274: HRGN hrgnUpdate, ! 3275: LPRECT prcUpdate, ! 3276: UINT flags); ! 3277: ! 3278: #define SW_SCROLLCHILDREN 0x0001 /* Scroll children within *lprcScroll. */ ! 3279: #define SW_INVALIDATE 0x0002 /* Invalidate after scrolling */ ! 3280: #define SW_ERASE 0x0004 /* If SW_INVALIDATE, don't send WM_ERASEBACKGROUND */ ! 3281: ! 3282: ! 3283: #ifndef NOSCROLL ! 3284: int ! 3285: WINAPI ! 3286: SetScrollPos( ! 3287: HWND hWnd, ! 3288: int nBar, ! 3289: int nPos, ! 3290: BOOL bRedraw); ! 3291: ! 3292: int ! 3293: WINAPI ! 3294: GetScrollPos( ! 3295: HWND hWnd, ! 3296: int nBar); ! 3297: ! 3298: BOOL ! 3299: WINAPI ! 3300: SetScrollRange( ! 3301: HWND hWnd, ! 3302: int nBar, ! 3303: int nMinPos, ! 3304: int nMaxPos, ! 3305: BOOL bRedraw); ! 3306: ! 3307: BOOL ! 3308: WINAPI ! 3309: GetScrollRange( ! 3310: HWND hWnd, ! 3311: int nBar, ! 3312: LPINT lpMinPos, ! 3313: LPINT lpMaxPos); ! 3314: ! 3315: BOOL ! 3316: WINAPI ! 3317: ShowScrollBar( ! 3318: HWND hWnd, ! 3319: int wBar, ! 3320: BOOL bShow); ! 3321: ! 3322: BOOL ! 3323: WINAPI ! 3324: EnableScrollBar( ! 3325: HWND hwnd, ! 3326: UINT wSBflags, ! 3327: UINT wArrows); ! 3328: #endif ! 3329: ! 3330: BOOL ! 3331: WINAPI ! 3332: SetPropA( ! 3333: HWND hWnd, ! 3334: LPCSTR lpString, ! 3335: HANDLE hData); ! 3336: BOOL ! 3337: WINAPI ! 3338: SetPropW( ! 3339: HWND hWnd, ! 3340: LPCWSTR lpString, ! 3341: HANDLE hData); ! 3342: #ifdef UNICODE ! 3343: #define SetProp SetPropW ! 3344: #else ! 3345: #define SetProp SetPropA ! 3346: #endif // !UNICODE ! 3347: ! 3348: HANDLE ! 3349: WINAPI ! 3350: GetPropA( ! 3351: HWND hWnd, ! 3352: LPCSTR lpString); ! 3353: HANDLE ! 3354: WINAPI ! 3355: GetPropW( ! 3356: HWND hWnd, ! 3357: LPCWSTR lpString); ! 3358: #ifdef UNICODE ! 3359: #define GetProp GetPropW ! 3360: #else ! 3361: #define GetProp GetPropA ! 3362: #endif // !UNICODE ! 3363: ! 3364: HANDLE ! 3365: WINAPI ! 3366: RemovePropA( ! 3367: HWND hWnd, ! 3368: LPCSTR lpString); ! 3369: HANDLE ! 3370: WINAPI ! 3371: RemovePropW( ! 3372: HWND hWnd, ! 3373: LPCWSTR lpString); ! 3374: #ifdef UNICODE ! 3375: #define RemoveProp RemovePropW ! 3376: #else ! 3377: #define RemoveProp RemovePropA ! 3378: #endif // !UNICODE ! 3379: ! 3380: int ! 3381: WINAPI ! 3382: EnumPropsExA( ! 3383: HWND hWnd, ! 3384: PROPENUMPROC lpEnumFunc, ! 3385: LPARAM lParam); ! 3386: int ! 3387: WINAPI ! 3388: EnumPropsExW( ! 3389: HWND hWnd, ! 3390: PROPENUMPROC lpEnumFunc, ! 3391: LPARAM lParam); ! 3392: #ifdef UNICODE ! 3393: #define EnumPropsEx EnumPropsExW ! 3394: #else ! 3395: #define EnumPropsEx EnumPropsExA ! 3396: #endif // !UNICODE ! 3397: ! 3398: int ! 3399: WINAPI ! 3400: EnumPropsA( ! 3401: HWND hWnd, ! 3402: PROPENUMPROC lpEnumFunc); ! 3403: int ! 3404: WINAPI ! 3405: EnumPropsW( ! 3406: HWND hWnd, ! 3407: PROPENUMPROC lpEnumFunc); ! 3408: #ifdef UNICODE ! 3409: #define EnumProps EnumPropsW ! 3410: #else ! 3411: #define EnumProps EnumPropsA ! 3412: #endif // !UNICODE ! 3413: ! 3414: BOOL ! 3415: WINAPI ! 3416: SetWindowTextA( ! 3417: HWND hWnd, ! 3418: LPCSTR lpString); ! 3419: BOOL ! 3420: WINAPI ! 3421: SetWindowTextW( ! 3422: HWND hWnd, ! 3423: LPCWSTR lpString); ! 3424: #ifdef UNICODE ! 3425: #define SetWindowText SetWindowTextW ! 3426: #else ! 3427: #define SetWindowText SetWindowTextA ! 3428: #endif // !UNICODE ! 3429: ! 3430: int ! 3431: WINAPI ! 3432: GetWindowTextA( ! 3433: HWND hWnd, ! 3434: LPSTR lpString, ! 3435: int nMaxCount); ! 3436: int ! 3437: WINAPI ! 3438: GetWindowTextW( ! 3439: HWND hWnd, ! 3440: LPWSTR lpString, ! 3441: int nMaxCount); ! 3442: #ifdef UNICODE ! 3443: #define GetWindowText GetWindowTextW ! 3444: #else ! 3445: #define GetWindowText GetWindowTextA ! 3446: #endif // !UNICODE ! 3447: ! 3448: int ! 3449: WINAPI ! 3450: GetWindowTextLengthA( ! 3451: HWND hWnd); ! 3452: int ! 3453: WINAPI ! 3454: GetWindowTextLengthW( ! 3455: HWND hWnd); ! 3456: #ifdef UNICODE ! 3457: #define GetWindowTextLength GetWindowTextLengthW ! 3458: #else ! 3459: #define GetWindowTextLength GetWindowTextLengthA ! 3460: #endif // !UNICODE ! 3461: ! 3462: BOOL ! 3463: WINAPI ! 3464: GetClientRect( ! 3465: HWND hWnd, ! 3466: LPRECT lpRect); ! 3467: ! 3468: BOOL ! 3469: WINAPI ! 3470: GetWindowRect( ! 3471: HWND hWnd, ! 3472: LPRECT lpRect); ! 3473: ! 3474: BOOL ! 3475: WINAPI ! 3476: AdjustWindowRect( ! 3477: LPRECT lpRect, ! 3478: DWORD dwStyle, ! 3479: BOOL bMenu); ! 3480: ! 3481: BOOL ! 3482: WINAPI ! 3483: AdjustWindowRectEx( ! 3484: LPRECT lpRect, ! 3485: DWORD dwStyle, ! 3486: BOOL bMenu, ! 3487: DWORD dwExStyle); ! 3488: ! 3489: #ifndef NOMB ! 3490: ! 3491: /* MessageBox() Flags */ ! 3492: #define MB_OK 0x0000L ! 3493: #define MB_OKCANCEL 0x0001L ! 3494: #define MB_ABORTRETRYIGNORE 0x0002L ! 3495: #define MB_YESNOCANCEL 0x0003L ! 3496: #define MB_YESNO 0x0004L ! 3497: #define MB_RETRYCANCEL 0x0005L ! 3498: ! 3499: #define MB_ICONHAND 0x0010L ! 3500: #define MB_ICONQUESTION 0x0020L ! 3501: #define MB_ICONEXCLAMATION 0x0030L ! 3502: #define MB_ICONASTERISK 0x0040L ! 3503: ! 3504: #define MB_ICONINFORMATION MB_ICONASTERISK ! 3505: #define MB_ICONSTOP MB_ICONHAND ! 3506: ! 3507: #define MB_DEFBUTTON1 0x0000L ! 3508: #define MB_DEFBUTTON2 0x0100L ! 3509: #define MB_DEFBUTTON3 0x0200L ! 3510: ! 3511: #define MB_APPLMODAL 0x0000L ! 3512: #define MB_SYSTEMMODAL 0x1000L ! 3513: #define MB_TASKMODAL 0x2000L ! 3514: ! 3515: #define MB_NOFOCUS 0x8000L ! 3516: #define MB_SETFOREGROUND 0x10000L ! 3517: ! 3518: #define MB_TYPEMASK 0x000FL ! 3519: #define MB_ICONMASK 0x00F0L ! 3520: #define MB_DEFMASK 0x0F00L ! 3521: #define MB_MODEMASK 0x3000L ! 3522: #define MB_MISCMASK 0xC000L ! 3523: ! 3524: int ! 3525: WINAPI ! 3526: MessageBoxExA( ! 3527: HWND hWnd , ! 3528: LPCSTR lpText, ! 3529: LPCSTR lpCaption , ! 3530: UINT uType, ! 3531: WORD wLanguageId); ! 3532: int ! 3533: WINAPI ! 3534: MessageBoxExW( ! 3535: HWND hWnd , ! 3536: LPCWSTR lpText, ! 3537: LPCWSTR lpCaption , ! 3538: UINT uType, ! 3539: WORD wLanguageId); ! 3540: #ifdef UNICODE ! 3541: #define MessageBoxEx MessageBoxExW ! 3542: #else ! 3543: #define MessageBoxEx MessageBoxExA ! 3544: #endif // !UNICODE ! 3545: ! 3546: #define MessageBoxA(hWnd, lpText, lpCaption, uType) \ ! 3547: MessageBoxExA(hWnd, lpText, lpCaption, uType, 0) ! 3548: #define MessageBoxW(hWnd, lpText, lpCaption, uType) \ ! 3549: MessageBoxExW(hWnd, lpText, lpCaption, uType, 0) ! 3550: #ifdef UNICODE ! 3551: #define MessageBox MessageBoxW ! 3552: #else ! 3553: #define MessageBox MessageBoxA ! 3554: #endif // !UNICODE ! 3555: ! 3556: BOOL ! 3557: WINAPI ! 3558: MessageBeep( ! 3559: UINT uType); ! 3560: ! 3561: #endif /* NOMB */ ! 3562: ! 3563: int ! 3564: WINAPI ! 3565: ShowCursor( ! 3566: BOOL bShow); ! 3567: ! 3568: BOOL ! 3569: WINAPI ! 3570: SetCursorPos( ! 3571: int X, ! 3572: int Y); ! 3573: ! 3574: HCURSOR ! 3575: WINAPI ! 3576: SetCursor( ! 3577: HCURSOR hCursor ); ! 3578: ! 3579: BOOL ! 3580: WINAPI ! 3581: GetCursorPos( ! 3582: LPPOINT lpPoint); ! 3583: ! 3584: BOOL ! 3585: WINAPI ! 3586: ClipCursor( ! 3587: CONST RECT *lpRect ); ! 3588: ! 3589: BOOL ! 3590: WINAPI ! 3591: GetClipCursor( ! 3592: LPRECT lpRect); ! 3593: ! 3594: HCURSOR ! 3595: WINAPI ! 3596: GetCursor( ! 3597: VOID); ! 3598: ! 3599: BOOL ! 3600: WINAPI ! 3601: CreateCaret( ! 3602: HWND hWnd, ! 3603: HBITMAP hBitmap , ! 3604: int nWidth, ! 3605: int nHeight); ! 3606: ! 3607: UINT ! 3608: WINAPI ! 3609: GetCaretBlinkTime( ! 3610: VOID); ! 3611: ! 3612: BOOL ! 3613: WINAPI ! 3614: SetCaretBlinkTime( ! 3615: UINT uMSeconds); ! 3616: ! 3617: BOOL ! 3618: WINAPI ! 3619: DestroyCaret( ! 3620: VOID); ! 3621: ! 3622: BOOL ! 3623: WINAPI ! 3624: HideCaret( ! 3625: HWND hWnd ); ! 3626: ! 3627: BOOL ! 3628: WINAPI ! 3629: ShowCaret( ! 3630: HWND hWnd ); ! 3631: ! 3632: BOOL ! 3633: WINAPI ! 3634: SetCaretPos( ! 3635: int X, ! 3636: int Y); ! 3637: ! 3638: BOOL ! 3639: WINAPI ! 3640: GetCaretPos( ! 3641: LPPOINT lpPoint); ! 3642: ! 3643: BOOL ! 3644: WINAPI ! 3645: ClientToScreen( ! 3646: HWND hWnd, ! 3647: LPPOINT lpPoint); ! 3648: ! 3649: BOOL ! 3650: WINAPI ! 3651: ScreenToClient( ! 3652: HWND hWnd, ! 3653: LPPOINT lpPoint); ! 3654: ! 3655: int ! 3656: WINAPI ! 3657: MapWindowPoints( ! 3658: HWND hWndFrom, ! 3659: HWND hWndTo, ! 3660: LPPOINT lpPoints, ! 3661: UINT cPoints); ! 3662: ! 3663: HWND ! 3664: WINAPI ! 3665: WindowFromPoint( ! 3666: POINT Point); ! 3667: ! 3668: HWND ! 3669: WINAPI ! 3670: ChildWindowFromPoint( ! 3671: HWND hWndParent, ! 3672: POINT Point); ! 3673: ! 3674: #ifndef NOCOLOR ! 3675: ! 3676: /* Color Types */ ! 3677: #define CTLCOLOR_MSGBOX 0 ! 3678: #define CTLCOLOR_EDIT 1 ! 3679: #define CTLCOLOR_LISTBOX 2 ! 3680: #define CTLCOLOR_BTN 3 ! 3681: #define CTLCOLOR_DLG 4 ! 3682: #define CTLCOLOR_SCROLLBAR 5 ! 3683: #define CTLCOLOR_STATIC 6 ! 3684: #define CTLCOLOR_MAX 8 /* three bits max */ ! 3685: ! 3686: #define COLOR_SCROLLBAR 0 ! 3687: #define COLOR_BACKGROUND 1 ! 3688: #define COLOR_ACTIVECAPTION 2 ! 3689: #define COLOR_INACTIVECAPTION 3 ! 3690: #define COLOR_MENU 4 ! 3691: #define COLOR_WINDOW 5 ! 3692: #define COLOR_WINDOWFRAME 6 ! 3693: #define COLOR_MENUTEXT 7 ! 3694: #define COLOR_WINDOWTEXT 8 ! 3695: #define COLOR_CAPTIONTEXT 9 ! 3696: #define COLOR_ACTIVEBORDER 10 ! 3697: #define COLOR_INACTIVEBORDER 11 ! 3698: #define COLOR_APPWORKSPACE 12 ! 3699: #define COLOR_HIGHLIGHT 13 ! 3700: #define COLOR_HIGHLIGHTTEXT 14 ! 3701: #define COLOR_BTNFACE 15 ! 3702: #define COLOR_BTNSHADOW 16 ! 3703: #define COLOR_GRAYTEXT 17 ! 3704: #define COLOR_BTNTEXT 18 ! 3705: #define COLOR_INACTIVECAPTIONTEXT 19 ! 3706: #define COLOR_BTNHIGHLIGHT 20 ! 3707: #define COLOR_ENDCOLORS COLOR_BTNHIGHLIGHT ! 3708: #define COLOR_MAX 20 ! 3709: ! 3710: DWORD ! 3711: WINAPI ! 3712: GetSysColor( ! 3713: int nIndex); ! 3714: ! 3715: BOOL ! 3716: WINAPI ! 3717: SetSysColors( ! 3718: int, ! 3719: CONST INT *, ! 3720: CONST COLORREF *); ! 3721: ! 3722: #endif /* NOCOLOR */ ! 3723: ! 3724: BOOL ! 3725: WINAPI ! 3726: DrawFocusRect( ! 3727: HDC, ! 3728: CONST RECT *); ! 3729: ! 3730: int ! 3731: WINAPI ! 3732: FillRect( ! 3733: HDC hdc, ! 3734: CONST RECT *lprc, ! 3735: HBRUSH hbr); ! 3736: ! 3737: int ! 3738: WINAPI ! 3739: FrameRect( ! 3740: HDC hdc, ! 3741: CONST RECT *lprc, ! 3742: HBRUSH hbr); ! 3743: ! 3744: BOOL ! 3745: WINAPI ! 3746: InvertRect( ! 3747: HDC hdc, ! 3748: CONST RECT *lprc); ! 3749: ! 3750: BOOL ! 3751: WINAPI ! 3752: SetRect( ! 3753: LPRECT, ! 3754: int, ! 3755: int, ! 3756: int, ! 3757: int); ! 3758: ! 3759: BOOL ! 3760: WINAPI ! 3761: SetRectEmpty( ! 3762: LPRECT); ! 3763: ! 3764: int ! 3765: WINAPI ! 3766: CopyRect( ! 3767: LPRECT, ! 3768: CONST RECT *); ! 3769: ! 3770: BOOL ! 3771: WINAPI ! 3772: InflateRect( ! 3773: LPRECT, ! 3774: int, ! 3775: int); ! 3776: ! 3777: int ! 3778: WINAPI ! 3779: IntersectRect( ! 3780: LPRECT, ! 3781: CONST RECT *, ! 3782: CONST RECT *); ! 3783: ! 3784: BOOL ! 3785: WINAPI ! 3786: UnionRect( ! 3787: LPRECT, ! 3788: CONST RECT *, ! 3789: CONST RECT *); ! 3790: ! 3791: BOOL ! 3792: WINAPI ! 3793: OffsetRect( ! 3794: LPRECT, ! 3795: int, ! 3796: int); ! 3797: ! 3798: BOOL ! 3799: WINAPI ! 3800: IsRectEmpty( ! 3801: CONST RECT *lprc); ! 3802: ! 3803: BOOL ! 3804: WINAPI ! 3805: EqualRect( ! 3806: CONST RECT *, ! 3807: CONST RECT *); ! 3808: ! 3809: BOOL ! 3810: WINAPI ! 3811: PtInRect( ! 3812: CONST RECT *, ! 3813: POINT); ! 3814: ! 3815: #ifndef NOWINOFFSETS ! 3816: ! 3817: WORD ! 3818: WINAPI ! 3819: GetWindowWord( ! 3820: HWND hWnd, ! 3821: int nIndex); ! 3822: ! 3823: WORD ! 3824: WINAPI ! 3825: SetWindowWord( ! 3826: HWND hWnd, ! 3827: int nIndex, ! 3828: WORD wNewWord); ! 3829: ! 3830: LONG ! 3831: WINAPI ! 3832: GetWindowLongA( ! 3833: HWND hWnd, ! 3834: int nIndex); ! 3835: LONG ! 3836: WINAPI ! 3837: GetWindowLongW( ! 3838: HWND hWnd, ! 3839: int nIndex); ! 3840: #ifdef UNICODE ! 3841: #define GetWindowLong GetWindowLongW ! 3842: #else ! 3843: #define GetWindowLong GetWindowLongA ! 3844: #endif // !UNICODE ! 3845: ! 3846: LONG ! 3847: WINAPI ! 3848: SetWindowLongA( ! 3849: HWND hWnd, ! 3850: int nIndex, ! 3851: LONG dwNewLong); ! 3852: LONG ! 3853: WINAPI ! 3854: SetWindowLongW( ! 3855: HWND hWnd, ! 3856: int nIndex, ! 3857: LONG dwNewLong); ! 3858: #ifdef UNICODE ! 3859: #define SetWindowLong SetWindowLongW ! 3860: #else ! 3861: #define SetWindowLong SetWindowLongA ! 3862: #endif // !UNICODE ! 3863: ! 3864: WORD ! 3865: WINAPI ! 3866: GetClassWord( ! 3867: HWND hWnd, ! 3868: int nIndex); ! 3869: ! 3870: WORD ! 3871: WINAPI ! 3872: SetClassWord( ! 3873: HWND hWnd, ! 3874: int nIndex, ! 3875: WORD wNewWord); ! 3876: ! 3877: DWORD ! 3878: WINAPI ! 3879: GetClassLongA( ! 3880: HWND hWnd, ! 3881: int nIndex); ! 3882: DWORD ! 3883: WINAPI ! 3884: GetClassLongW( ! 3885: HWND hWnd, ! 3886: int nIndex); ! 3887: #ifdef UNICODE ! 3888: #define GetClassLong GetClassLongW ! 3889: #else ! 3890: #define GetClassLong GetClassLongA ! 3891: #endif // !UNICODE ! 3892: ! 3893: DWORD ! 3894: WINAPI ! 3895: SetClassLongA( ! 3896: HWND hWnd, ! 3897: int nIndex, ! 3898: LONG dwNewLong); ! 3899: DWORD ! 3900: WINAPI ! 3901: SetClassLongW( ! 3902: HWND hWnd, ! 3903: int nIndex, ! 3904: LONG dwNewLong); ! 3905: #ifdef UNICODE ! 3906: #define SetClassLong SetClassLongW ! 3907: #else ! 3908: #define SetClassLong SetClassLongA ! 3909: #endif // !UNICODE ! 3910: ! 3911: HWND ! 3912: WINAPI ! 3913: GetDesktopWindow( ! 3914: VOID); ! 3915: ! 3916: BOOL ! 3917: WINAPI ! 3918: SetDeskWallpaper( ! 3919: LPSTR lpString ); ! 3920: ! 3921: #endif /* NOWINOFFSETS */ ! 3922: ! 3923: HWND ! 3924: WINAPI ! 3925: GetParent( ! 3926: HWND hWnd); ! 3927: ! 3928: HWND ! 3929: WINAPI ! 3930: SetParent( ! 3931: HWND hWndChild, ! 3932: HWND hWndNewParent); ! 3933: ! 3934: BOOL ! 3935: WINAPI ! 3936: EnumChildWindows( ! 3937: HWND hWndParent, ! 3938: WNDENUMPROC lpEnumFunc, ! 3939: LPARAM lParam); ! 3940: ! 3941: HWND ! 3942: WINAPI ! 3943: FindWindowA( ! 3944: LPCSTR lpClassName , ! 3945: LPCSTR lpWindowName); ! 3946: HWND ! 3947: WINAPI ! 3948: FindWindowW( ! 3949: LPCWSTR lpClassName , ! 3950: LPCWSTR lpWindowName); ! 3951: #ifdef UNICODE ! 3952: #define FindWindow FindWindowW ! 3953: #else ! 3954: #define FindWindow FindWindowA ! 3955: #endif // !UNICODE ! 3956: ! 3957: BOOL ! 3958: WINAPI ! 3959: EnumWindows( ! 3960: WNDENUMPROC lpEnumFunc, ! 3961: LPARAM lParam); ! 3962: ! 3963: BOOL ! 3964: WINAPI ! 3965: EnumThreadWindows( ! 3966: DWORD dwThreadId, ! 3967: WNDENUMPROC lpfn, ! 3968: LPARAM lParam); ! 3969: ! 3970: #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows((DWORD)hTask, lpfn, lParam) ! 3971: ! 3972: int ! 3973: WINAPI ! 3974: GetClassNameA( ! 3975: HWND hWnd, ! 3976: LPSTR lpClassName, ! 3977: int nMaxCount); ! 3978: int ! 3979: WINAPI ! 3980: GetClassNameW( ! 3981: HWND hWnd, ! 3982: LPWSTR lpClassName, ! 3983: int nMaxCount); ! 3984: #ifdef UNICODE ! 3985: #define GetClassName GetClassNameW ! 3986: #else ! 3987: #define GetClassName GetClassNameA ! 3988: #endif // !UNICODE ! 3989: ! 3990: HWND ! 3991: WINAPI ! 3992: GetTopWindow( ! 3993: HWND hWnd); ! 3994: ! 3995: #define GetNextWindow(hwnd, wCmd) GetWindow(hwnd, wCmd) ! 3996: #define GetSysModalWindow() (NULL) ! 3997: #define SetSysModalWindow(hwnd) (NULL) ! 3998: ! 3999: DWORD ! 4000: WINAPI ! 4001: GetWindowThreadProcessId( ! 4002: HWND hWnd, ! 4003: LPDWORD lpdwProcessId ); ! 4004: ! 4005: #define GetWindowTask(hwnd)\ ! 4006: ((HANDLE)GetWindowThreadProcessId(hwnd, NULL)) ! 4007: ! 4008: HWND ! 4009: WINAPI ! 4010: GetLastActivePopup( ! 4011: HWND hWnd); ! 4012: ! 4013: /* GetWindow() Constants */ ! 4014: #define GW_HWNDFIRST 0 ! 4015: #define GW_HWNDLAST 1 ! 4016: #define GW_HWNDNEXT 2 ! 4017: #define GW_HWNDPREV 3 ! 4018: #define GW_OWNER 4 ! 4019: #define GW_CHILD 5 ! 4020: #define GW_MAX 5 ! 4021: ! 4022: HWND ! 4023: WINAPI ! 4024: GetWindow( ! 4025: HWND hWnd, ! 4026: UINT uCmd); ! 4027: ! 4028: #ifndef NOWH ! 4029: ! 4030: HHOOK ! 4031: WINAPI ! 4032: SetWindowsHookA( ! 4033: int nFilterType, ! 4034: HOOKPROC pfnFilterProc); ! 4035: HHOOK ! 4036: WINAPI ! 4037: SetWindowsHookW( ! 4038: int nFilterType, ! 4039: HOOKPROC pfnFilterProc); ! 4040: #ifdef UNICODE ! 4041: #define SetWindowsHook SetWindowsHookW ! 4042: #else ! 4043: #define SetWindowsHook SetWindowsHookA ! 4044: #endif // !UNICODE ! 4045: ! 4046: BOOL ! 4047: WINAPI ! 4048: UnhookWindowsHook( ! 4049: int nCode, ! 4050: HOOKPROC pfnFilterProc); ! 4051: ! 4052: HHOOK ! 4053: WINAPI ! 4054: SetWindowsHookExA( ! 4055: int idHook, ! 4056: HOOKPROC lpfn, ! 4057: HINSTANCE hmod, ! 4058: DWORD dwThreadId); ! 4059: HHOOK ! 4060: WINAPI ! 4061: SetWindowsHookExW( ! 4062: int idHook, ! 4063: HOOKPROC lpfn, ! 4064: HINSTANCE hmod, ! 4065: DWORD dwThreadId); ! 4066: #ifdef UNICODE ! 4067: #define SetWindowsHookEx SetWindowsHookExW ! 4068: #else ! 4069: #define SetWindowsHookEx SetWindowsHookExA ! 4070: #endif // !UNICODE ! 4071: ! 4072: BOOL ! 4073: WINAPI ! 4074: UnhookWindowsHookEx( ! 4075: HHOOK hhk); ! 4076: ! 4077: LRESULT ! 4078: WINAPI CallNextHookEx( ! 4079: HHOOK hhk, ! 4080: int nCode, ! 4081: WPARAM wParam, ! 4082: LPARAM lParam); ! 4083: ! 4084: /* ! 4085: * Macros for source-level compatibility with old functions. ! 4086: */ ! 4087: #define DefHookProc(nCode, wParam, lParam, phhk)\ ! 4088: CallNextHookEx(*phhk, nCode, wParam, lParam) ! 4089: #endif ! 4090: ! 4091: #ifndef NOMENUS ! 4092: ! 4093: /* Menu flags for Add/Check/EnableMenuItem() */ ! 4094: #define MF_INSERT 0x00000000L ! 4095: #define MF_CHANGE 0x00000080L ! 4096: #define MF_APPEND 0x00000100L ! 4097: #define MF_DELETE 0x00000200L ! 4098: #define MF_REMOVE 0x00001000L ! 4099: ! 4100: #define MF_BYCOMMAND 0x00000000L ! 4101: #define MF_BYPOSITION 0x00000400L ! 4102: ! 4103: ! 4104: #define MF_SEPARATOR 0x00000800L ! 4105: ! 4106: #define MF_ENABLED 0x00000000L ! 4107: #define MF_GRAYED 0x00000001L ! 4108: #define MF_DISABLED 0x00000002L ! 4109: ! 4110: #define MF_UNCHECKED 0x00000000L ! 4111: #define MF_CHECKED 0x00000008L ! 4112: #define MF_USECHECKBITMAPS 0x00000200L ! 4113: ! 4114: #define MF_STRING 0x00000000L ! 4115: #define MF_BITMAP 0x00000004L ! 4116: #define MF_OWNERDRAW 0x00000100L ! 4117: ! 4118: #define MF_POPUP 0x00000010L ! 4119: #define MF_MENUBARBREAK 0x00000020L ! 4120: #define MF_MENUBREAK 0x00000040L ! 4121: ! 4122: #define MF_UNHILITE 0x00000000L ! 4123: #define MF_HILITE 0x00000080L ! 4124: ! 4125: #define MF_SYSMENU 0x00002000L ! 4126: #define MF_HELP 0x00004000L ! 4127: #define MF_MOUSESELECT 0x00008000L ! 4128: ! 4129: /* Menu item resource format */ ! 4130: typedef struct { ! 4131: WORD versionNumber; ! 4132: WORD offset; ! 4133: } MENUITEMTEMPLATEHEADER; ! 4134: ! 4135: typedef struct { ! 4136: WORD mtOption; ! 4137: WORD mtID; ! 4138: char mtString[1]; ! 4139: } MENUITEMTEMPLATE; ! 4140: ! 4141: #define MF_END 0x00000080L ! 4142: ! 4143: #endif /* NOMENUS */ ! 4144: ! 4145: #ifndef NOSYSCOMMANDS ! 4146: ! 4147: /* System Menu Command Values */ ! 4148: #define SC_SIZE 0xF000 ! 4149: #define SC_MOVE 0xF010 ! 4150: #define SC_MINIMIZE 0xF020 ! 4151: #define SC_MAXIMIZE 0xF030 ! 4152: #define SC_NEXTWINDOW 0xF040 ! 4153: #define SC_PREVWINDOW 0xF050 ! 4154: #define SC_CLOSE 0xF060 ! 4155: #define SC_VSCROLL 0xF070 ! 4156: #define SC_HSCROLL 0xF080 ! 4157: #define SC_MOUSEMENU 0xF090 ! 4158: #define SC_KEYMENU 0xF100 ! 4159: #define SC_ARRANGE 0xF110 ! 4160: #define SC_RESTORE 0xF120 ! 4161: #define SC_TASKLIST 0xF130 ! 4162: #define SC_SCREENSAVE 0xF140 ! 4163: #define SC_HOTKEY 0xF150 ! 4164: ! 4165: /* Obsolete names */ ! 4166: #define SC_ICON SC_MINIMIZE ! 4167: #define SC_ZOOM SC_MAXIMIZE ! 4168: ! 4169: #endif /* NOSYSCOMMANDS */ ! 4170: ! 4171: /* Resource Loading Routines */ ! 4172: ! 4173: HBITMAP ! 4174: WINAPI ! 4175: LoadBitmapA( ! 4176: HINSTANCE hInstance, ! 4177: LPCSTR lpBitmapName); ! 4178: HBITMAP ! 4179: WINAPI ! 4180: LoadBitmapW( ! 4181: HINSTANCE hInstance, ! 4182: LPCWSTR lpBitmapName); ! 4183: #ifdef UNICODE ! 4184: #define LoadBitmap LoadBitmapW ! 4185: #else ! 4186: #define LoadBitmap LoadBitmapA ! 4187: #endif // !UNICODE ! 4188: ! 4189: HCURSOR ! 4190: WINAPI ! 4191: LoadCursorA( ! 4192: HINSTANCE hInstance, ! 4193: LPCSTR lpCursorName); ! 4194: HCURSOR ! 4195: WINAPI ! 4196: LoadCursorW( ! 4197: HINSTANCE hInstance, ! 4198: LPCWSTR lpCursorName); ! 4199: #ifdef UNICODE ! 4200: #define LoadCursor LoadCursorW ! 4201: #else ! 4202: #define LoadCursor LoadCursorA ! 4203: #endif // !UNICODE ! 4204: ! 4205: HCURSOR ! 4206: WINAPI ! 4207: CreateCursor( ! 4208: HINSTANCE, ! 4209: int, ! 4210: int, ! 4211: int, ! 4212: int, ! 4213: CONST VOID *, ! 4214: CONST VOID *); ! 4215: ! 4216: BOOL ! 4217: WINAPI ! 4218: DestroyCursor( ! 4219: HCURSOR); ! 4220: ! 4221: #define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur))) ! 4222: ! 4223: /* Standard Cursor IDs */ ! 4224: #define IDC_ARROW MAKEINTRESOURCE(32512) ! 4225: #define IDC_IBEAM MAKEINTRESOURCE(32513) ! 4226: #define IDC_WAIT MAKEINTRESOURCE(32514) ! 4227: #define IDC_CROSS MAKEINTRESOURCE(32515) ! 4228: #define IDC_UPARROW MAKEINTRESOURCE(32516) ! 4229: #define IDC_SIZE MAKEINTRESOURCE(32640) ! 4230: #define IDC_ICON MAKEINTRESOURCE(32641) ! 4231: #define IDC_SIZENWSE MAKEINTRESOURCE(32642) ! 4232: #define IDC_SIZENESW MAKEINTRESOURCE(32643) ! 4233: #define IDC_SIZEWE MAKEINTRESOURCE(32644) ! 4234: #define IDC_SIZENS MAKEINTRESOURCE(32645) ! 4235: #define IDC_SIZEALL MAKEINTRESOURCE(32646) //not in win3.1 ! 4236: #define IDC_NO MAKEINTRESOURCE(32648) //not in win3.1 ! 4237: ! 4238: typedef struct _ICONINFO { ! 4239: BOOL fIcon; ! 4240: DWORD xHotspot; ! 4241: DWORD yHotspot; ! 4242: HBITMAP hbmMask; ! 4243: HBITMAP hbmColor; ! 4244: } ICONINFO; ! 4245: typedef ICONINFO *PICONINFO; ! 4246: ! 4247: HICON ! 4248: WINAPI ! 4249: LoadIconA( ! 4250: HINSTANCE hInstance, ! 4251: LPCSTR lpIconName); ! 4252: HICON ! 4253: WINAPI ! 4254: LoadIconW( ! 4255: HINSTANCE hInstance, ! 4256: LPCWSTR lpIconName); ! 4257: #ifdef UNICODE ! 4258: #define LoadIcon LoadIconW ! 4259: #else ! 4260: #define LoadIcon LoadIconA ! 4261: #endif // !UNICODE ! 4262: ! 4263: HICON ! 4264: WINAPI ! 4265: CreateIcon( ! 4266: HINSTANCE, ! 4267: int, ! 4268: int, ! 4269: BYTE, ! 4270: BYTE, ! 4271: CONST BYTE *, ! 4272: CONST BYTE *); ! 4273: ! 4274: BOOL ! 4275: WINAPI ! 4276: DestroyIcon( ! 4277: HICON); ! 4278: ! 4279: int ! 4280: WINAPI ! 4281: LookupIconIdFromDirectory( ! 4282: PBYTE presbits, ! 4283: BOOL fIcon); ! 4284: ! 4285: HICON ! 4286: WINAPI ! 4287: CreateIconFromResource( ! 4288: PBYTE presbits, ! 4289: DWORD dwResSize, ! 4290: BOOL fIcon, ! 4291: DWORD dwVer); ! 4292: ! 4293: HICON ! 4294: WINAPI ! 4295: CreateIconIndirect( ! 4296: PICONINFO piconinfo); ! 4297: ! 4298: HICON ! 4299: WINAPI ! 4300: CopyIcon( ! 4301: HICON); ! 4302: ! 4303: BOOL ! 4304: WINAPI ! 4305: GetIconInfo( ! 4306: HICON hIcon, ! 4307: PICONINFO piconinfo); ! 4308: ! 4309: #ifdef OEMRESOURCE ! 4310: ! 4311: /* OEM Resource Ordinal Numbers */ ! 4312: #define OBM_CLOSE 32754 ! 4313: #define OBM_UPARROW 32753 ! 4314: #define OBM_DNARROW 32752 ! 4315: #define OBM_RGARROW 32751 ! 4316: #define OBM_LFARROW 32750 ! 4317: #define OBM_REDUCE 32749 ! 4318: #define OBM_ZOOM 32748 ! 4319: #define OBM_RESTORE 32747 ! 4320: #define OBM_REDUCED 32746 ! 4321: #define OBM_ZOOMD 32745 ! 4322: #define OBM_RESTORED 32744 ! 4323: #define OBM_UPARROWD 32743 ! 4324: #define OBM_DNARROWD 32742 ! 4325: #define OBM_RGARROWD 32741 ! 4326: #define OBM_LFARROWD 32740 ! 4327: #define OBM_MNARROW 32739 ! 4328: #define OBM_COMBO 32738 ! 4329: #define OBM_UPARROWI 32737 ! 4330: #define OBM_DNARROWI 32736 ! 4331: #define OBM_RGARROWI 32735 ! 4332: #define OBM_LFARROWI 32734 ! 4333: ! 4334: #define OBM_OLD_CLOSE 32767 ! 4335: #define OBM_SIZE 32766 ! 4336: #define OBM_OLD_UPARROW 32765 ! 4337: #define OBM_OLD_DNARROW 32764 ! 4338: #define OBM_OLD_RGARROW 32763 ! 4339: #define OBM_OLD_LFARROW 32762 ! 4340: #define OBM_BTSIZE 32761 ! 4341: #define OBM_CHECK 32760 ! 4342: #define OBM_CHECKBOXES 32759 ! 4343: #define OBM_BTNCORNERS 32758 ! 4344: #define OBM_OLD_REDUCE 32757 ! 4345: #define OBM_OLD_ZOOM 32756 ! 4346: #define OBM_OLD_RESTORE 32755 ! 4347: ! 4348: #define OCR_NORMAL 32512 ! 4349: #define OCR_IBEAM 32513 ! 4350: #define OCR_WAIT 32514 ! 4351: #define OCR_CROSS 32515 ! 4352: #define OCR_UP 32516 ! 4353: #define OCR_SIZE 32640 ! 4354: #define OCR_ICON 32641 ! 4355: #define OCR_SIZENWSE 32642 ! 4356: #define OCR_SIZENESW 32643 ! 4357: #define OCR_SIZEWE 32644 ! 4358: #define OCR_SIZENS 32645 ! 4359: #define OCR_SIZEALL 32646 ! 4360: #define OCR_ICOCUR 32647 ! 4361: #define OCR_NO 32648 //not in win3.1 ! 4362: ! 4363: #define OIC_SAMPLE 32512 ! 4364: #define OIC_HAND 32513 ! 4365: #define OIC_QUES 32514 ! 4366: #define OIC_BANG 32515 ! 4367: #define OIC_NOTE 32516 ! 4368: ! 4369: #endif /* OEMRESOURCE */ ! 4370: ! 4371: #define ORD_LANGDRIVER 1 /* The ordinal number for the entry point of ! 4372: ** language drivers. ! 4373: */ ! 4374: ! 4375: #ifndef NOICONS ! 4376: ! 4377: /* Standard Icon IDs */ ! 4378: #define IDI_APPLICATION MAKEINTRESOURCE(32512) ! 4379: #define IDI_HAND MAKEINTRESOURCE(32513) ! 4380: #define IDI_QUESTION MAKEINTRESOURCE(32514) ! 4381: #define IDI_EXCLAMATION MAKEINTRESOURCE(32515) ! 4382: #define IDI_ASTERISK MAKEINTRESOURCE(32516) ! 4383: ! 4384: #endif /* NOICONS */ ! 4385: ! 4386: int ! 4387: WINAPI ! 4388: LoadStringA( ! 4389: HINSTANCE hInstance, ! 4390: UINT uID, ! 4391: LPSTR lpBuffer, ! 4392: int nBufferMax); ! 4393: int ! 4394: WINAPI ! 4395: LoadStringW( ! 4396: HINSTANCE hInstance, ! 4397: UINT uID, ! 4398: LPWSTR lpBuffer, ! 4399: int nBufferMax); ! 4400: #ifdef UNICODE ! 4401: #define LoadString LoadStringW ! 4402: #else ! 4403: #define LoadString LoadStringA ! 4404: #endif // !UNICODE ! 4405: ! 4406: /* Dialog Box Command IDs */ ! 4407: #define IDOK 1 ! 4408: #define IDCANCEL 2 ! 4409: #define IDABORT 3 ! 4410: #define IDRETRY 4 ! 4411: #define IDIGNORE 5 ! 4412: #define IDYES 6 ! 4413: #define IDNO 7 ! 4414: ! 4415: #ifndef NOCTLMGR ! 4416: ! 4417: /* Control Manager Structures and Definitions */ ! 4418: ! 4419: #ifndef NOWINSTYLES ! 4420: ! 4421: /* Edit Control Styles */ ! 4422: #define ES_LEFT 0x0000L ! 4423: #define ES_CENTER 0x0001L ! 4424: #define ES_RIGHT 0x0002L ! 4425: #define ES_MULTILINE 0x0004L ! 4426: #define ES_UPPERCASE 0x0008L ! 4427: #define ES_LOWERCASE 0x0010L ! 4428: #define ES_PASSWORD 0x0020L ! 4429: #define ES_AUTOVSCROLL 0x0040L ! 4430: #define ES_AUTOHSCROLL 0x0080L ! 4431: #define ES_NOHIDESEL 0x0100L ! 4432: #define ES_OEMCONVERT 0x0400L ! 4433: #define ES_READONLY 0x0800L ! 4434: #define ES_WANTRETURN 0x1000L ! 4435: ! 4436: ! 4437: #endif /* NOWINSTYLES */ ! 4438: ! 4439: /* Edit Control Notification Codes */ ! 4440: #define EN_SETFOCUS 0x0100 ! 4441: #define EN_KILLFOCUS 0x0200 ! 4442: #define EN_CHANGE 0x0300 ! 4443: #define EN_UPDATE 0x0400 ! 4444: #define EN_ERRSPACE 0x0500 ! 4445: #define EN_MAXTEXT 0x0501 ! 4446: #define EN_HSCROLL 0x0601 ! 4447: #define EN_VSCROLL 0x0602 ! 4448: ! 4449: #ifndef NOWINMESSAGES ! 4450: ! 4451: /* Edit Control Messages */ ! 4452: #define EM_GETSEL 0x00B0 ! 4453: #define EM_SETSEL 0x00B1 ! 4454: #define EM_GETRECT 0x00B2 ! 4455: #define EM_SETRECT 0x00B3 ! 4456: #define EM_SETRECTNP 0x00B4 ! 4457: #define EM_SCROLL 0x00B5 ! 4458: #define EM_LINESCROLL 0x00B6 ! 4459: #define EM_SCROLLCARET 0x00B7 ! 4460: #define EM_GETMODIFY 0x00B8 ! 4461: #define EM_SETMODIFY 0x00B9 ! 4462: #define EM_GETLINECOUNT 0x00BA ! 4463: #define EM_LINEINDEX 0x00BB ! 4464: #define EM_SETHANDLE 0x00BC ! 4465: #define EM_GETHANDLE 0x00BD ! 4466: #define EM_GETTHUMB 0x00BE ! 4467: #define EM_LINELENGTH 0x00C1 ! 4468: #define EM_REPLACESEL 0x00C2 ! 4469: #define EM_SETFONT 0x00C3 ! 4470: #define EM_GETLINE 0x00C4 ! 4471: #define EM_LIMITTEXT 0x00C5 ! 4472: #define EM_CANUNDO 0x00C6 ! 4473: #define EM_UNDO 0x00C7 ! 4474: #define EM_FMTLINES 0x00C8 ! 4475: #define EM_LINEFROMCHAR 0x00C9 ! 4476: #define EM_SETWORDBREAK 0x00CA ! 4477: #define EM_SETTABSTOPS 0x00CB ! 4478: #define EM_SETPASSWORDCHAR 0x00CC ! 4479: #define EM_EMPTYUNDOBUFFER 0x00CD ! 4480: #define EM_GETFIRSTVISIBLELINE 0x00CE ! 4481: #define EM_SETREADONLY 0x00CF ! 4482: #define EM_SETWORDBREAKPROC 0x00D0 ! 4483: #define EM_GETWORDBREAKPROC 0x00D1 ! 4484: #define EM_GETPASSWORDCHAR 0x00D2 ! 4485: #define EM_MSGMAX 0x00D3 ! 4486: ! 4487: #endif /* NOWINMESSAGES */ ! 4488: ! 4489: /* EDITWORDBREAKPROC code values */ ! 4490: #define WB_LEFT 0 ! 4491: #define WB_RIGHT 1 ! 4492: #define WB_ISDELIMITER 2 ! 4493: ! 4494: /* Button Control Styles */ ! 4495: #define BS_PUSHBUTTON 0x00L ! 4496: #define BS_DEFPUSHBUTTON 0x01L ! 4497: #define BS_CHECKBOX 0x02L ! 4498: #define BS_AUTOCHECKBOX 0x03L ! 4499: #define BS_RADIOBUTTON 0x04L ! 4500: #define BS_3STATE 0x05L ! 4501: #define BS_AUTO3STATE 0x06L ! 4502: #define BS_GROUPBOX 0x07L ! 4503: #define BS_USERBUTTON 0x08L ! 4504: #define BS_AUTORADIOBUTTON 0x09L ! 4505: #define BS_PUSHBOX 0x0AL ! 4506: #define BS_OWNERDRAW 0x0BL ! 4507: #define BS_LEFTTEXT 0x20L ! 4508: ! 4509: ! 4510: /* User Button Notification Codes */ ! 4511: #define BN_CLICKED 0 ! 4512: #define BN_PAINT 1 ! 4513: #define BN_HILITE 2 ! 4514: #define BN_UNHILITE 3 ! 4515: #define BN_DISABLE 4 ! 4516: #define BN_DOUBLECLICKED 5 ! 4517: ! 4518: /* Button Control Messages */ ! 4519: #define BM_GETCHECK 0x00F0 ! 4520: #define BM_SETCHECK 0x00F1 ! 4521: #define BM_GETSTATE 0x00F2 ! 4522: #define BM_SETSTATE 0x00F3 ! 4523: #define BM_SETSTYLE 0x00F4 ! 4524: ! 4525: /* Static Control Constants */ ! 4526: #define SS_LEFT 0x00L ! 4527: #define SS_CENTER 0x01L ! 4528: #define SS_RIGHT 0x02L ! 4529: #define SS_ICON 0x03L ! 4530: #define SS_BLACKRECT 0x04L ! 4531: #define SS_GRAYRECT 0x05L ! 4532: #define SS_WHITERECT 0x06L ! 4533: #define SS_BLACKFRAME 0x07L ! 4534: #define SS_GRAYFRAME 0x08L ! 4535: #define SS_WHITEFRAME 0x09L ! 4536: #define SS_USERITEM 0x0AL ! 4537: #define SS_SIMPLE 0x0BL ! 4538: #define SS_LEFTNOWORDWRAP 0x0CL ! 4539: #define SS_NOPREFIX 0x80L /* Don't do "&" character translation */ ! 4540: ! 4541: #ifndef NOWINMESSAGES ! 4542: /* Static Control Mesages */ ! 4543: #define STM_SETICON 0x170 ! 4544: #define STM_GETICON 0x171 ! 4545: #define STM_MSGMAX 0x172 ! 4546: #endif /* NOWINMESSAGES */ ! 4547: /* Dialog Manager Routines */ ! 4548: ! 4549: #ifndef NOMSG ! 4550: BOOL ! 4551: WINAPI ! 4552: IsDialogMessage( ! 4553: HWND hDlg, ! 4554: LPMSG lpMsg); ! 4555: #endif ! 4556: ! 4557: BOOL ! 4558: WINAPI ! 4559: MapDialogRect( ! 4560: HWND hDlg, ! 4561: LPRECT lpRect); ! 4562: ! 4563: int ! 4564: WINAPI ! 4565: DlgDirListA( ! 4566: HWND hDlg, ! 4567: LPSTR lpPathSpec, ! 4568: int nIDListBox, ! 4569: int nIDStaticPath, ! 4570: UINT uFileType); ! 4571: int ! 4572: WINAPI ! 4573: DlgDirListW( ! 4574: HWND hDlg, ! 4575: LPWSTR lpPathSpec, ! 4576: int nIDListBox, ! 4577: int nIDStaticPath, ! 4578: UINT uFileType); ! 4579: #ifdef UNICODE ! 4580: #define DlgDirList DlgDirListW ! 4581: #else ! 4582: #define DlgDirList DlgDirListA ! 4583: #endif // !UNICODE ! 4584: ! 4585: BOOL ! 4586: WINAPI ! 4587: DlgDirSelectExA( ! 4588: HWND hDlg, ! 4589: LPSTR lpString, ! 4590: int nCount, ! 4591: int nIDListBox); ! 4592: BOOL ! 4593: WINAPI ! 4594: DlgDirSelectExW( ! 4595: HWND hDlg, ! 4596: LPWSTR lpString, ! 4597: int nCount, ! 4598: int nIDListBox); ! 4599: #ifdef UNICODE ! 4600: #define DlgDirSelectEx DlgDirSelectExW ! 4601: #else ! 4602: #define DlgDirSelectEx DlgDirSelectExA ! 4603: #endif // !UNICODE ! 4604: ! 4605: int ! 4606: WINAPI ! 4607: DlgDirListComboBoxA( ! 4608: HWND hDlg, ! 4609: LPSTR lpPathSpec, ! 4610: int nIDComboBox, ! 4611: int nIDStaticPath, ! 4612: UINT uFiletype); ! 4613: int ! 4614: WINAPI ! 4615: DlgDirListComboBoxW( ! 4616: HWND hDlg, ! 4617: LPWSTR lpPathSpec, ! 4618: int nIDComboBox, ! 4619: int nIDStaticPath, ! 4620: UINT uFiletype); ! 4621: #ifdef UNICODE ! 4622: #define DlgDirListComboBox DlgDirListComboBoxW ! 4623: #else ! 4624: #define DlgDirListComboBox DlgDirListComboBoxA ! 4625: #endif // !UNICODE ! 4626: ! 4627: BOOL ! 4628: WINAPI ! 4629: DlgDirSelectComboBoxExA( ! 4630: HWND hDlg, ! 4631: LPSTR lpString, ! 4632: int nCount, ! 4633: int nIDComboBox); ! 4634: BOOL ! 4635: WINAPI ! 4636: DlgDirSelectComboBoxExW( ! 4637: HWND hDlg, ! 4638: LPWSTR lpString, ! 4639: int nCount, ! 4640: int nIDComboBox); ! 4641: #ifdef UNICODE ! 4642: #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW ! 4643: #else ! 4644: #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA ! 4645: #endif // !UNICODE ! 4646: ! 4647: ! 4648: /* Dialog Styles */ ! 4649: #define DS_ABSALIGN 0x01L ! 4650: #define DS_SYSMODAL 0x02L ! 4651: #define DS_LOCALEDIT 0x20L /* Edit items get Local storage. */ ! 4652: #define DS_SETFONT 0x40L /* User specified font for Dlg controls */ ! 4653: #define DS_MODALFRAME 0x80L /* Can be combined with WS_CAPTION */ ! 4654: #define DS_NOIDLEMSG 0x100L /* WM_ENTERIDLE message will not be sent */ ! 4655: #define DS_SETFOREGROUND 0x200L //not in win3.1 ! 4656: ! 4657: #define DM_GETDEFID (WM_USER+0) ! 4658: #define DM_SETDEFID (WM_USER+1) ! 4659: #define DC_HASDEFID 0x534B //not in win3.1 ! 4660: ! 4661: /* Dialog Codes */ ! 4662: #define DLGC_WANTARROWS 0x0001 /* Control wants arrow keys */ ! 4663: #define DLGC_WANTTAB 0x0002 /* Control wants tab keys */ ! 4664: #define DLGC_WANTALLKEYS 0x0004 /* Control wants all keys */ ! 4665: #define DLGC_WANTMESSAGE 0x0004 /* Pass message to control */ ! 4666: #define DLGC_HASSETSEL 0x0008 /* Understands EM_SETSEL message */ ! 4667: #define DLGC_DEFPUSHBUTTON 0x0010 /* Default pushbutton */ ! 4668: #define DLGC_UNDEFPUSHBUTTON 0x0020 /* Non-default pushbutton */ ! 4669: #define DLGC_RADIOBUTTON 0x0040 /* Radio button */ ! 4670: #define DLGC_WANTCHARS 0x0080 /* Want WM_CHAR messages */ ! 4671: #define DLGC_STATIC 0x0100 /* Static item: don't include */ ! 4672: #define DLGC_BUTTON 0x2000 /* Button item: can be checked */ ! 4673: ! 4674: #define LB_CTLCODE 0L ! 4675: ! 4676: /* Listbox Return Values */ ! 4677: #define LB_OKAY 0 ! 4678: #define LB_ERR (-1) ! 4679: #define LB_ERRSPACE (-2) ! 4680: ! 4681: /* ! 4682: ** The idStaticPath parameter to DlgDirList can have the following values ! 4683: ** ORed if the list box should show other details of the files along with ! 4684: ** the name of the files; ! 4685: */ ! 4686: /* all other details also will be returned */ ! 4687: ! 4688: ! 4689: /* Listbox Notification Codes */ ! 4690: #define LBN_ERRSPACE (-2) ! 4691: #define LBN_SELCHANGE 1 ! 4692: #define LBN_DBLCLK 2 ! 4693: #define LBN_SELCANCEL 3 ! 4694: #define LBN_SETFOCUS 4 ! 4695: #define LBN_KILLFOCUS 5 ! 4696: ! 4697: ! 4698: ! 4699: #ifndef NOWINMESSAGES ! 4700: ! 4701: /* Listbox messages */ ! 4702: #define LB_ADDSTRING 0x0180 ! 4703: #define LB_INSERTSTRING 0x0181 ! 4704: #define LB_DELETESTRING 0x0182 ! 4705: #define LB_RESETCONTENT 0x0184 ! 4706: #define LB_SETSEL 0x0185 ! 4707: #define LB_SETCURSEL 0x0186 ! 4708: #define LB_GETSEL 0x0187 ! 4709: #define LB_GETCURSEL 0x0188 ! 4710: #define LB_GETTEXT 0x0189 ! 4711: #define LB_GETTEXTLEN 0x018A ! 4712: #define LB_GETCOUNT 0x018B ! 4713: #define LB_SELECTSTRING 0x018C ! 4714: #define LB_DIR 0x018D ! 4715: #define LB_GETTOPINDEX 0x018E ! 4716: #define LB_FINDSTRING 0x018F ! 4717: #define LB_GETSELCOUNT 0x0190 ! 4718: #define LB_GETSELITEMS 0x0191 ! 4719: #define LB_SETTABSTOPS 0x0192 ! 4720: #define LB_GETHORIZONTALEXTENT 0x0193 ! 4721: #define LB_SETHORIZONTALEXTENT 0x0194 ! 4722: #define LB_SETCOLUMNWIDTH 0x0195 ! 4723: #define LB_ADDFILE 0x0196 ! 4724: #define LB_SETTOPINDEX 0x0197 ! 4725: #define LB_GETITEMRECT 0x0198 ! 4726: #define LB_GETITEMDATA 0x0199 ! 4727: #define LB_SETITEMDATA 0x019A ! 4728: #define LB_SELITEMRANGE 0x019B ! 4729: #define LB_SETANCHORINDEX 0x019C ! 4730: #define LB_GETANCHORINDEX 0x019D ! 4731: #define LB_SETCARETINDEX 0x019E ! 4732: #define LB_GETCARETINDEX 0x019F ! 4733: #define LB_SETITEMHEIGHT 0x01A0 ! 4734: #define LB_GETITEMHEIGHT 0x01A1 ! 4735: #define LB_FINDSTRINGEXACT 0x01A2 ! 4736: #define LBCB_CARETON 0x01A3 ! 4737: #define LBCB_CARETOFF 0x01A4 ! 4738: #define LB_SETLOCALE 0x01A5 ! 4739: #define LB_GETLOCALE 0x01A6 ! 4740: #define LB_SETCOUNT 0x01A7 ! 4741: #define LB_MSGMAX 0x01A8 ! 4742: ! 4743: #endif /* NOWINMESSAGES */ ! 4744: ! 4745: #ifndef NOWINSTYLES ! 4746: ! 4747: /* Listbox Styles */ ! 4748: #define LBS_NOTIFY 0x0001L ! 4749: #define LBS_SORT 0x0002L ! 4750: #define LBS_NOREDRAW 0x0004L ! 4751: #define LBS_MULTIPLESEL 0x0008L ! 4752: #define LBS_OWNERDRAWFIXED 0x0010L ! 4753: #define LBS_OWNERDRAWVARIABLE 0x0020L ! 4754: #define LBS_HASSTRINGS 0x0040L ! 4755: #define LBS_USETABSTOPS 0x0080L ! 4756: #define LBS_NOINTEGRALHEIGHT 0x0100L ! 4757: #define LBS_MULTICOLUMN 0x0200L ! 4758: #define LBS_WANTKEYBOARDINPUT 0x0400L ! 4759: #define LBS_EXTENDEDSEL 0x0800L ! 4760: #define LBS_DISABLENOSCROLL 0x1000L ! 4761: #define LBS_NODATA 0x2000L ! 4762: #define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER) ! 4763: ! 4764: #endif /* NOWINSTYLES */ ! 4765: ! 4766: ! 4767: /* Combo Box return Values */ ! 4768: #define CB_OKAY 0 ! 4769: #define CB_ERR (-1) ! 4770: #define CB_ERRSPACE (-2) ! 4771: ! 4772: ! 4773: /* Combo Box Notification Codes */ ! 4774: #define CBN_ERRSPACE (-1) ! 4775: #define CBN_SELCHANGE 1 ! 4776: #define CBN_DBLCLK 2 ! 4777: #define CBN_SETFOCUS 3 ! 4778: #define CBN_KILLFOCUS 4 ! 4779: #define CBN_EDITCHANGE 5 ! 4780: #define CBN_EDITUPDATE 6 ! 4781: #define CBN_DROPDOWN 7 ! 4782: #define CBN_CLOSEUP 8 ! 4783: #define CBN_SELENDOK 9 ! 4784: #define CBN_SELENDCANCEL 10 ! 4785: ! 4786: /* Combo Box styles */ ! 4787: #ifndef NOWINSTYLES ! 4788: #define CBS_SIMPLE 0x0001L ! 4789: #define CBS_DROPDOWN 0x0002L ! 4790: #define CBS_DROPDOWNLIST 0x0003L ! 4791: #define CBS_OWNERDRAWFIXED 0x0010L ! 4792: #define CBS_OWNERDRAWVARIABLE 0x0020L ! 4793: #define CBS_AUTOHSCROLL 0x0040L ! 4794: #define CBS_OEMCONVERT 0x0080L ! 4795: #define CBS_SORT 0x0100L ! 4796: #define CBS_HASSTRINGS 0x0200L ! 4797: #define CBS_NOINTEGRALHEIGHT 0x0400L ! 4798: #define CBS_DISABLENOSCROLL 0x0800L ! 4799: #endif /* NOWINSTYLES */ ! 4800: ! 4801: ! 4802: /* Combo Box messages */ ! 4803: #ifndef NOWINMESSAGES ! 4804: #define CB_GETEDITSEL 0x0140 ! 4805: #define CB_LIMITTEXT 0x0141 ! 4806: #define CB_SETEDITSEL 0x0142 ! 4807: #define CB_ADDSTRING 0x0143 ! 4808: #define CB_DELETESTRING 0x0144 ! 4809: #define CB_DIR 0x0145 ! 4810: #define CB_GETCOUNT 0x0146 ! 4811: #define CB_GETCURSEL 0x0147 ! 4812: #define CB_GETLBTEXT 0x0148 ! 4813: #define CB_GETLBTEXTLEN 0x0149 ! 4814: #define CB_INSERTSTRING 0x014A ! 4815: #define CB_RESETCONTENT 0x014B ! 4816: #define CB_FINDSTRING 0x014C ! 4817: #define CB_SELECTSTRING 0x014D ! 4818: #define CB_SETCURSEL 0x014E ! 4819: #define CB_SHOWDROPDOWN 0x014F ! 4820: #define CB_GETITEMDATA 0x0150 ! 4821: #define CB_SETITEMDATA 0x0151 ! 4822: #define CB_GETDROPPEDCONTROLRECT 0x0152 ! 4823: #define CB_SETITEMHEIGHT 0x0153 ! 4824: #define CB_GETITEMHEIGHT 0x0154 ! 4825: #define CB_SETEXTENDEDUI 0x0155 ! 4826: #define CB_GETEXTENDEDUI 0x0156 ! 4827: #define CB_GETDROPPEDSTATE 0x0157 ! 4828: #define CB_FINDSTRINGEXACT 0x0158 ! 4829: #define CB_SETLOCALE 0x0159 ! 4830: #define CB_GETLOCALE 0x015a ! 4831: #define CB_MSGMAX 0x015b ! 4832: #endif /* NOWINMESSAGES */ ! 4833: ! 4834: ! 4835: ! 4836: #ifndef NOWINSTYLES ! 4837: ! 4838: /* Scroll Bar Styles */ ! 4839: #define SBS_HORZ 0x0000L ! 4840: #define SBS_VERT 0x0001L ! 4841: #define SBS_TOPALIGN 0x0002L ! 4842: #define SBS_LEFTALIGN 0x0002L ! 4843: #define SBS_BOTTOMALIGN 0x0004L ! 4844: #define SBS_RIGHTALIGN 0x0004L ! 4845: #define SBS_SIZEBOXTOPLEFTALIGN 0x0002L ! 4846: #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L ! 4847: #define SBS_SIZEBOX 0x0008L ! 4848: #endif /* NOWINSTYLES */ ! 4849: ! 4850: /* Scroll bar messages */ ! 4851: #ifndef NOWINMESSAGES ! 4852: #define SBM_SETPOS 0x00E0 //not in win3.1 ! 4853: #define SBM_GETPOS 0x00E1 //not in win3.1 ! 4854: #define SBM_SETRANGE 0x00E2 //not in win3.1 ! 4855: #define SBM_GETRANGE 0x00E3 //not in win3.1 ! 4856: #define SBM_ENABLE_ARROWS 0x00E4 //not in win3.1 ! 4857: #endif ! 4858: #endif /* NOCTLMGR */ ! 4859: ! 4860: #ifndef NOMDI ! 4861: ! 4862: /* MDI client style bits */ ! 4863: #define MDIS_ALLCHILDSTYLES 0x0001 ! 4864: ! 4865: /* wParam Flags for WM_MDITILE and WM_MDICASCADE messages. */ ! 4866: #define MDITILE_VERTICAL 0x0000 //not in win3.1 ! 4867: #define MDITILE_HORIZONTAL 0x0001 //not in win3.1 ! 4868: #define MDITILE_SKIPDISABLED 0x0002 //not in win3.1 ! 4869: ! 4870: typedef struct tagMDICREATESTRUCTA { ! 4871: LPCSTR szClass; ! 4872: LPCSTR szTitle; ! 4873: HANDLE hOwner; ! 4874: int x; ! 4875: int y; ! 4876: int cx; ! 4877: int cy; ! 4878: DWORD style; ! 4879: LPARAM lParam; /* app-defined stuff */ ! 4880: } MDICREATESTRUCTA, *LPMDICREATESTRUCTA; ! 4881: typedef struct tagMDICREATESTRUCTW { ! 4882: LPCWSTR szClass; ! 4883: LPCWSTR szTitle; ! 4884: HANDLE hOwner; ! 4885: int x; ! 4886: int y; ! 4887: int cx; ! 4888: int cy; ! 4889: DWORD style; ! 4890: LPARAM lParam; /* app-defined stuff */ ! 4891: } MDICREATESTRUCTW, *LPMDICREATESTRUCTW; ! 4892: #ifdef UNICODE ! 4893: #define MDICREATESTRUCT MDICREATESTRUCTW ! 4894: #define LPMDICREATESTRUCT LPMDICREATESTRUCTW ! 4895: #else ! 4896: #define MDICREATESTRUCT MDICREATESTRUCTA ! 4897: #define LPMDICREATESTRUCT LPMDICREATESTRUCTA ! 4898: #endif // UNICODE ! 4899: ! 4900: typedef struct tagCLIENTCREATESTRUCT { ! 4901: HANDLE hWindowMenu; ! 4902: UINT idFirstChild; ! 4903: } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT; ! 4904: ! 4905: LRESULT ! 4906: WINAPI ! 4907: DefFrameProcA( ! 4908: HWND hWnd, ! 4909: HWND hWndMDIClient , ! 4910: UINT uMsg, ! 4911: WPARAM wParam, ! 4912: LPARAM lParam); ! 4913: LRESULT ! 4914: WINAPI ! 4915: DefFrameProcW( ! 4916: HWND hWnd, ! 4917: HWND hWndMDIClient , ! 4918: UINT uMsg, ! 4919: WPARAM wParam, ! 4920: LPARAM lParam); ! 4921: #ifdef UNICODE ! 4922: #define DefFrameProc DefFrameProcW ! 4923: #else ! 4924: #define DefFrameProc DefFrameProcA ! 4925: #endif // !UNICODE ! 4926: ! 4927: LRESULT ! 4928: WINAPI ! 4929: DefMDIChildProcA( ! 4930: HWND hWnd, ! 4931: UINT uMsg, ! 4932: WPARAM wParam, ! 4933: LPARAM lParam); ! 4934: LRESULT ! 4935: WINAPI ! 4936: DefMDIChildProcW( ! 4937: HWND hWnd, ! 4938: UINT uMsg, ! 4939: WPARAM wParam, ! 4940: LPARAM lParam); ! 4941: #ifdef UNICODE ! 4942: #define DefMDIChildProc DefMDIChildProcW ! 4943: #else ! 4944: #define DefMDIChildProc DefMDIChildProcA ! 4945: #endif // !UNICODE ! 4946: ! 4947: #ifndef NOMSG ! 4948: BOOL ! 4949: WINAPI ! 4950: TranslateMDISysAccel( ! 4951: HWND hWndClient, ! 4952: LPMSG lpMsg); ! 4953: #endif ! 4954: ! 4955: UINT ! 4956: WINAPI ! 4957: ArrangeIconicWindows( ! 4958: HWND hWnd); ! 4959: ! 4960: HWND ! 4961: WINAPI ! 4962: CreateMDIWindowA( ! 4963: LPSTR lpClassName, ! 4964: LPSTR lpWindowName, ! 4965: DWORD dwStyle, ! 4966: int X, ! 4967: int Y, ! 4968: int nWidth, ! 4969: int nHeight, ! 4970: HWND hWndParent, ! 4971: HINSTANCE hInstance, ! 4972: LONG lParam ! 4973: ); ! 4974: HWND ! 4975: WINAPI ! 4976: CreateMDIWindowW( ! 4977: LPWSTR lpClassName, ! 4978: LPWSTR lpWindowName, ! 4979: DWORD dwStyle, ! 4980: int X, ! 4981: int Y, ! 4982: int nWidth, ! 4983: int nHeight, ! 4984: HWND hWndParent, ! 4985: HINSTANCE hInstance, ! 4986: LONG lParam ! 4987: ); ! 4988: #ifdef UNICODE ! 4989: #define CreateMDIWindow CreateMDIWindowW ! 4990: #else ! 4991: #define CreateMDIWindow CreateMDIWindowA ! 4992: #endif // !UNICODE ! 4993: ! 4994: #endif /* NOMDI */ ! 4995: #endif /* NOUSER */ ! 4996: ! 4997: /****** Help support ********************************************************/ ! 4998: ! 4999: #ifndef NOHELP ! 5000: ! 5001: typedef DWORD HELPPOLY; ! 5002: typedef struct tagMULTIKEYHELPA { ! 5003: DWORD mkSize; ! 5004: CHAR mkKeylist; ! 5005: CHAR szKeyphrase[1]; ! 5006: } MULTIKEYHELPA, *PMULTIKEYHELPA, *LPMULTIKEYHELPA; ! 5007: typedef struct tagMULTIKEYHELPW { ! 5008: DWORD mkSize; ! 5009: WCHAR mkKeylist; ! 5010: WCHAR szKeyphrase[1]; ! 5011: } MULTIKEYHELPW, *PMULTIKEYHELPW, *LPMULTIKEYHELPW; ! 5012: #ifdef UNICODE ! 5013: #define MULTIKEYHELP MULTIKEYHELPW ! 5014: #define PMULTIKEYHELP PMULTIKEYHELPW ! 5015: #define LPMULTIKEYHELP LPMULTIKEYHELPW ! 5016: #else ! 5017: #define MULTIKEYHELP MULTIKEYHELPA ! 5018: #define PMULTIKEYHELP PMULTIKEYHELPA ! 5019: #define LPMULTIKEYHELP LPMULTIKEYHELPA ! 5020: #endif // UNICODE ! 5021: ! 5022: typedef struct tagHELPWININFOA { ! 5023: int wStructSize; ! 5024: int x; ! 5025: int y; ! 5026: int dx; ! 5027: int dy; ! 5028: int wMax; ! 5029: CHAR rgchMember[2]; ! 5030: } HELPWININFOA, *PHELPWININFOA, *LPHELPWININFOA; ! 5031: typedef struct tagHELPWININFOW { ! 5032: int wStructSize; ! 5033: int x; ! 5034: int y; ! 5035: int dx; ! 5036: int dy; ! 5037: int wMax; ! 5038: WCHAR rgchMember[2]; ! 5039: } HELPWININFOW, *PHELPWININFOW, *LPHELPWININFOW; ! 5040: #ifdef UNICODE ! 5041: #define HELPWININFO HELPWININFOW ! 5042: #define PHELPWININFO PHELPWININFOW ! 5043: #define LPHELPWININFO LPHELPWININFOW ! 5044: #else ! 5045: #define HELPWININFO HELPWININFOA ! 5046: #define PHELPWININFO PHELPWININFOA ! 5047: #define LPHELPWININFO LPHELPWININFOA ! 5048: #endif // UNICODE ! 5049: ! 5050: // ! 5051: // Commands to pass WinHelp() ! 5052: // ! 5053: ! 5054: #define HELP_CONTEXT 0x0001L /* Display topic in ulTopic */ ! 5055: #define HELP_QUIT 0x0002L /* Terminate help */ ! 5056: #define HELP_INDEX 0x0003L /* Display index */ ! 5057: #define HELP_CONTENTS 0x0003L ! 5058: #define HELP_HELPONHELP 0x0004L /* Display help on using help */ ! 5059: #define HELP_SETINDEX 0x0005L /* Set current Index for multi index help */ ! 5060: #define HELP_SETCONTENTS 0x0005L ! 5061: #define HELP_CONTEXTPOPUP 0x0008L ! 5062: #define HELP_FORCEFILE 0x0009L ! 5063: #define HELP_KEY 0x0101L /* Display topic for keyword in offabData */ ! 5064: #define HELP_COMMAND 0x0102L ! 5065: #define HELP_PARTIALKEY 0x0105L ! 5066: #define HELP_MULTIKEY 0x0201L ! 5067: #define HELP_SETWINPOS 0x0203L ! 5068: ! 5069: ! 5070: BOOL ! 5071: WINAPI ! 5072: WinHelpA( ! 5073: HWND hwndMain, ! 5074: LPCSTR lpszHelp, ! 5075: UINT uCommand, ! 5076: DWORD dwData ! 5077: ); ! 5078: BOOL ! 5079: WINAPI ! 5080: WinHelpW( ! 5081: HWND hwndMain, ! 5082: LPCWSTR lpszHelp, ! 5083: UINT uCommand, ! 5084: DWORD dwData ! 5085: ); ! 5086: #ifdef UNICODE ! 5087: #define WinHelp WinHelpW ! 5088: #else ! 5089: #define WinHelp WinHelpA ! 5090: #endif // !UNICODE ! 5091: ! 5092: #endif /* NOHELP */ ! 5093: ! 5094: #ifndef NOPROFILER ! 5095: ! 5096: /* function declarations for profiler routines contained in Windows libraries */ ! 5097: int ! 5098: WINAPI ! 5099: ProfInsChk( ! 5100: VOID); ! 5101: ! 5102: VOID ! 5103: WINAPI ! 5104: ProfSetup( ! 5105: int, ! 5106: int); ! 5107: ! 5108: VOID ! 5109: WINAPI ! 5110: ProfSampRate( ! 5111: int, ! 5112: int); ! 5113: ! 5114: VOID ! 5115: WINAPI ! 5116: ProfStart( ! 5117: VOID); ! 5118: ! 5119: VOID ! 5120: WINAPI ! 5121: ProfStop( ! 5122: VOID); ! 5123: ! 5124: VOID ! 5125: WINAPI ! 5126: ProfClear( ! 5127: VOID); ! 5128: ! 5129: VOID ! 5130: WINAPI ! 5131: ProfFlush( ! 5132: VOID); ! 5133: ! 5134: VOID ! 5135: WINAPI ! 5136: ProfFinish( ! 5137: VOID); ! 5138: ! 5139: #endif /* NOPROFILER */ ! 5140: ! 5141: #ifndef NOSYSPARAMSINFO ! 5142: /* Parameter for SystemParametersInfo() */ ! 5143: ! 5144: #define SPI_GETBEEP 1 ! 5145: #define SPI_SETBEEP 2 ! 5146: #define SPI_GETMOUSE 3 ! 5147: #define SPI_SETMOUSE 4 ! 5148: #define SPI_GETBORDER 5 ! 5149: #define SPI_SETBORDER 6 ! 5150: #define SPI_TIMEOUTS 7 ! 5151: #define SPI_GETKEYBOARDSPEED 10 ! 5152: #define SPI_SETKEYBOARDSPEED 11 ! 5153: #define SPI_LANGDRIVER 12 ! 5154: #define SPI_ICONHORIZONTALSPACING 13 ! 5155: #define SPI_GETSCREENSAVETIMEOUT 14 ! 5156: #define SPI_SETSCREENSAVETIMEOUT 15 ! 5157: #define SPI_GETSCREENSAVEACTIVE 16 ! 5158: #define SPI_SETSCREENSAVEACTIVE 17 ! 5159: #define SPI_GETGRIDGRANULARITY 18 ! 5160: #define SPI_SETGRIDGRANULARITY 19 ! 5161: #define SPI_SETDESKWALLPAPER 20 ! 5162: #define SPI_SETDESKPATTERN 21 ! 5163: #define SPI_GETKEYBOARDDELAY 22 ! 5164: #define SPI_SETKEYBOARDDELAY 23 ! 5165: #define SPI_ICONVERTICALSPACING 24 ! 5166: #define SPI_GETICONTITLEWRAP 25 ! 5167: #define SPI_SETICONTITLEWRAP 26 ! 5168: #define SPI_GETMENUDROPALIGNMENT 27 ! 5169: #define SPI_SETMENUDROPALIGNMENT 28 ! 5170: #define SPI_SETDOUBLECLKWIDTH 29 ! 5171: #define SPI_SETDOUBLECLKHEIGHT 30 ! 5172: #define SPI_GETICONTITLELOGFONT 31 ! 5173: #define SPI_SETDOUBLECLICKTIME 32 ! 5174: #define SPI_SETMOUSEBUTTONSWAP 33 ! 5175: #define SPI_SETICONTITLELOGFONT 34 ! 5176: #define SPI_GETFASTTASKSWITCH 35 ! 5177: #define SPI_SETFASTTASKSWITCH 36 ! 5178: #define SPI_MAX 36 ! 5179: ! 5180: ! 5181: BOOL ! 5182: WINAPI ! 5183: SystemParametersInfoA( ! 5184: UINT, ! 5185: UINT, ! 5186: PVOID, ! 5187: UINT); ! 5188: BOOL ! 5189: WINAPI ! 5190: SystemParametersInfoW( ! 5191: UINT, ! 5192: UINT, ! 5193: PVOID, ! 5194: UINT); ! 5195: #ifdef UNICODE ! 5196: #define SystemParametersInfo SystemParametersInfoW ! 5197: #else ! 5198: #define SystemParametersInfo SystemParametersInfoA ! 5199: #endif // !UNICODE ! 5200: ! 5201: /* Flags */ ! 5202: #define SPIF_UPDATEINIFILE 0x0001 ! 5203: #define SPIF_SENDWININICHANGE 0x0002 ! 5204: ! 5205: #endif /* NOSYSPARAMSINFO */ ! 5206: #endif // _WINUSER_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.