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

unix.superglobalmegacorp.com

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