Annotation of mstools/h/strict/winuser.h, revision 1.1

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_

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.