Annotation of mstools/h/winuser.h, revision 1.1.1.2

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

unix.superglobalmegacorp.com

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