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

1.1     ! root        1: /*++ BUILD Version: 0003    // Increment this if a change has global effects
        !             2: 
        !             3: Copyright (c) 1985-91, Microsoft Corporation
        !             4: 
        !             5: Module Name:
        !             6: 
        !             7:     winuser.h
        !             8: 
        !             9: Abstract:
        !            10: 
        !            11:     Procedure declarations, constant definitions and macros for the User
        !            12:     component.
        !            13: 
        !            14: --*/
        !            15: 
        !            16: #ifndef _WINUSER_
        !            17: #define _WINUSER_
        !            18: 
        !            19: #ifndef NOUSER
        !            20: 
        !            21: typedef HWND HWNDFF;
        !            22: typedef HWND HWNDVERBATIM;
        !            23: typedef HANDLE HACCEL;
        !            24: typedef HANDLE HWPI;
        !            25: typedef PVOID LPMONO1BITS;
        !            26: typedef PVOID LPMONO2BITS;
        !            27: typedef PVOID LPCOLORBITS;
        !            28: typedef PWORD LPPRIORITYLIST;
        !            29: typedef PVOID LPMENUTEMPLATEA;
        !            30: typedef PVOID LPMENUTEMPLATEW;
        !            31: #ifdef UNICODE
        !            32: #define LPMENUTEMPLATE LPMENUTEMPLATEW
        !            33: #else
        !            34: #define LPMENUTEMPLATE LPMENUTEMPLATEA
        !            35: #endif // UNICODE
        !            36: typedef PVOID LPTABS;
        !            37: typedef PVOID LPSYSCOLOR;
        !            38: typedef PVOID LPCOLORVALUES;
        !            39: typedef PVOID LPDLGTEMPLATESTUBA;
        !            40: typedef PVOID LPDLGTEMPLATESTUBW;
        !            41: #ifdef UNICODE
        !            42: #define LPDLGTEMPLATESTUB LPDLGTEMPLATESTUBW
        !            43: #else
        !            44: #define LPDLGTEMPLATESTUB LPDLGTEMPLATESTUBA
        !            45: #endif // UNICODE
        !            46: typedef LPSTR   LPSTRNULL;
        !            47: typedef LPWSTR  LPWSTRNULL;
        !            48: #ifdef UNICODE
        !            49: #define LPTSTRNULL LPWSTRNULL
        !            50: #else
        !            51: #define LPTSTRNULL LPSTRNULL
        !            52: #endif // UNICODE
        !            53: typedef LPSTR   LPSTRID;
        !            54: typedef LPWSTR  LPWSTRID;
        !            55: #ifdef UNICODE
        !            56: #define LPTSTRID LPWSTRID
        !            57: #else
        !            58: #define LPTSTRID LPSTRID
        !            59: #endif // UNICODE
        !            60: typedef LPSTR   LPSTR2;
        !            61: typedef LPWSTR  LPWSTR2;
        !            62: #ifdef UNICODE
        !            63: #define LPTSTR2 LPWSTR2
        !            64: #else
        !            65: #define LPTSTR2 LPSTR2
        !            66: #endif // UNICODE
        !            67: typedef LPSTR   OUTLPSTR;
        !            68: typedef LPWSTR  OUTLPWSTR;
        !            69: #ifdef UNICODE
        !            70: #define OUTLPTSTR OUTLPWSTR
        !            71: #else
        !            72: #define OUTLPTSTR OUTLPSTR
        !            73: #endif // UNICODE
        !            74: typedef HWND HWNDIA;
        !            75: typedef DWORD GSPOLY;
        !            76: typedef LPSTR CHNGMENUPOLY;
        !            77: typedef LPSTR   MENUPOLYA;
        !            78: typedef LPWSTR  MENUPOLYW;
        !            79: #ifdef UNICODE
        !            80: #define MENUPOLY MENUPOLYW
        !            81: #else
        !            82: #define MENUPOLY MENUPOLYA
        !            83: #endif // UNICODE
        !            84: typedef PVOID LPKEYSTATE;
        !            85: typedef PVOID OUTLPKEYSTATE;
        !            86: #ifdef THANKS
        !            87: typedef PUSHORT OUTP2CHARS;
        !            88: #else
        !            89: typedef PVOID OUTP2CHARS;
        !            90: #endif
        !            91: 
        !            92: typedef LONG (APIENTRY *WNDPROC)(HWND, UINT, DWORD, LONG);
        !            93: 
        !            94: #define MAKEINTRESOURCE(i)  (LPSTR)((DWORD)((WORD)(i)))
        !            95: 
        !            96: #ifndef NORESOURCE
        !            97: 
        !            98: /* Predefined Resource Types */
        !            99: #define RT_CURSOR           MAKEINTRESOURCE(1)
        !           100: #define RT_BITMAP           MAKEINTRESOURCE(2)
        !           101: #define RT_ICON             MAKEINTRESOURCE(3)
        !           102: #define RT_MENU             MAKEINTRESOURCE(4)
        !           103: #define RT_DIALOG           MAKEINTRESOURCE(5)
        !           104: #define RT_STRING           MAKEINTRESOURCE(6)
        !           105: #define RT_FONTDIR          MAKEINTRESOURCE(7)
        !           106: #define RT_FONT             MAKEINTRESOURCE(8)
        !           107: #define RT_ACCELERATOR      MAKEINTRESOURCE(9)
        !           108: #define RT_RCDATA           MAKEINTRESOURCE(10)
        !           109: #define RT_MESSAGETABLE     MAKEINTRESOURCE(11)
        !           110: 
        !           111: #define DIFFERENCE  11
        !           112: 
        !           113: /* NOTE: if any new resource types are introduced above this point, then the
        !           114: ** value of DIFFERENCE must be changed.
        !           115: ** (RT_GROUP_CURSOR - RT_CURSOR) must always be equal to DIFFERENCE
        !           116: ** (RT_GROUP_ICON - RT_ICON) must always be equal to DIFFERENCE
        !           117: */
        !           118: #define RT_GROUP_CURSOR     MAKEINTRESOURCE((DWORD)RT_CURSOR + DIFFERENCE)
        !           119: /* The value RT_BITMAP+DIFFERENCE (13) is intentionally unused */
        !           120: #define RT_GROUP_ICON       MAKEINTRESOURCE((DWORD)RT_ICON + DIFFERENCE)
        !           121: /* The value 15 is unused/obsolete */
        !           122: #define RT_VERSION          MAKEINTRESOURCE(16)
        !           123: 
        !           124: #endif /* NORESOURCE */
        !           125: 
        !           126: int APIENTRY wvsprintf(LPSTR, LPSTR, LPSTR);
        !           127: int cdecl wsprintf(LPSTR, LPSTR, ...);
        !           128: 
        !           129: #ifndef NOSCROLL
        !           130: 
        !           131: /* Scroll Bar Constants */
        !           132: #define SB_HORZ             0
        !           133: #define SB_VERT             1
        !           134: #define SB_CTL              2
        !           135: #define SB_BOTH             3
        !           136: 
        !           137: /* Scroll Bar Commands */
        !           138: #define SB_LINEUP           0
        !           139: #define SB_LINEDOWN         1
        !           140: #define SB_PAGEUP           2
        !           141: #define SB_PAGEDOWN         3
        !           142: #define SB_THUMBPOSITION    4
        !           143: #define SB_THUMBTRACK       5
        !           144: #define SB_TOP              6
        !           145: #define SB_BOTTOM           7
        !           146: #define SB_ENDSCROLL        8
        !           147: 
        !           148: #endif /* NOSCROLL */
        !           149: 
        !           150: #ifndef NOSHOWWINDOW
        !           151: 
        !           152: /* ShowWindow() Commands */
        !           153: #define SW_HIDE             0
        !           154: #define SW_SHOWNORMAL       1
        !           155: #define SW_NORMAL           1
        !           156: #define SW_SHOWMINIMIZED    2
        !           157: #define SW_SHOWMAXIMIZED    3
        !           158: #define SW_MAXIMIZE         3
        !           159: #define SW_SHOWNOACTIVATE   4
        !           160: #define SW_SHOW             5
        !           161: #define SW_MINIMIZE         6
        !           162: #define SW_SHOWMINNOACTIVE  7
        !           163: #define SW_SHOWNA           8
        !           164: #define SW_RESTORE          9
        !           165: #define SW_SHOWDEFAULT      10
        !           166: 
        !           167: /* Old ShowWindow() Commands */
        !           168: #define HIDE_WINDOW         0
        !           169: #define SHOW_OPENWINDOW     1
        !           170: #define SHOW_ICONWINDOW     2
        !           171: #define SHOW_FULLSCREEN     3
        !           172: #define SHOW_OPENNOACTIVATE 4
        !           173: 
        !           174: /* Identifiers for the WM_SHOWWINDOW message */
        !           175: #define SW_PARENTCLOSING    1
        !           176: #define SW_OTHERZOOM        2
        !           177: #define SW_PARENTOPENING    3
        !           178: #define SW_OTHERUNZOOM      4
        !           179: 
        !           180: #endif /* NOSHOWWINDOW */
        !           181: 
        !           182: #ifndef NOVIRTUALKEYCODES
        !           183: 
        !           184: /* Virtual Keys, Standard Set */
        !           185: #define VK_LBUTTON        0x01
        !           186: #define VK_RBUTTON        0x02
        !           187: #define VK_CANCEL         0x03
        !           188: #define VK_MBUTTON        0x04    /* NOT contiguous with L & RBUTTON */
        !           189: 
        !           190: #define VK_BACK           0x08
        !           191: #define VK_TAB            0x09
        !           192: 
        !           193: #define VK_CLEAR          0x0C
        !           194: #define VK_RETURN         0x0D
        !           195: 
        !           196: #define VK_SHIFT          0x10
        !           197: #define VK_CONTROL        0x11
        !           198: #define VK_MENU           0x12
        !           199: #define VK_PAUSE          0x13
        !           200: #define VK_CAPITAL        0x14
        !           201: 
        !           202: #define VK_ESCAPE         0x1B
        !           203: 
        !           204: #define VK_SPACE          0x20
        !           205: #define VK_PRIOR          0x21
        !           206: #define VK_NEXT           0x22
        !           207: #define VK_END            0x23
        !           208: #define VK_HOME           0x24
        !           209: #define VK_LEFT           0x25
        !           210: #define VK_UP             0x26
        !           211: #define VK_RIGHT          0x27
        !           212: #define VK_DOWN           0x28
        !           213: #define VK_SELECT         0x29
        !           214: #define VK_PRINT          0x2A
        !           215: #define VK_EXECUTE        0x2B
        !           216: #define VK_SNAPSHOT       0x2C
        !           217: /* #define VK_COPY        0x2C not used by keyboards. */
        !           218: #define VK_INSERT         0x2D
        !           219: #define VK_DELETE         0x2E
        !           220: #define VK_HELP           0x2F
        !           221: 
        !           222: /* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */
        !           223: /* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */
        !           224: 
        !           225: #define VK_NUMPAD0        0x60
        !           226: #define VK_NUMPAD1        0x61
        !           227: #define VK_NUMPAD2        0x62
        !           228: #define VK_NUMPAD3        0x63
        !           229: #define VK_NUMPAD4        0x64
        !           230: #define VK_NUMPAD5        0x65
        !           231: #define VK_NUMPAD6        0x66
        !           232: #define VK_NUMPAD7        0x67
        !           233: #define VK_NUMPAD8        0x68
        !           234: #define VK_NUMPAD9        0x69
        !           235: #define VK_MULTIPLY       0x6A
        !           236: #define VK_ADD            0x6B
        !           237: #define VK_SEPARATOR      0x6C
        !           238: #define VK_SUBTRACT       0x6D
        !           239: #define VK_DECIMAL        0x6E
        !           240: #define VK_DIVIDE         0x6F
        !           241: #define VK_F1             0x70
        !           242: #define VK_F2             0x71
        !           243: #define VK_F3             0x72
        !           244: #define VK_F4             0x73
        !           245: #define VK_F5             0x74
        !           246: #define VK_F6             0x75
        !           247: #define VK_F7             0x76
        !           248: #define VK_F8             0x77
        !           249: #define VK_F9             0x78
        !           250: #define VK_F10            0x79
        !           251: #define VK_F11            0x7A
        !           252: #define VK_F12            0x7B
        !           253: #define VK_F13            0x7C
        !           254: #define VK_F14            0x7D
        !           255: #define VK_F15            0x7E
        !           256: #define VK_F16            0x7F
        !           257: #define VK_F17            0x80
        !           258: #define VK_F18            0x81
        !           259: #define VK_F19            0x82
        !           260: #define VK_F20            0x83
        !           261: #define VK_F21            0x84
        !           262: #define VK_F22            0x85
        !           263: #define VK_F23            0x86
        !           264: #define VK_F24            0x87
        !           265: 
        !           266: #define VK_NUMLOCK        0x90
        !           267: 
        !           268: /*
        !           269:  * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
        !           270:  * Used only as parameters to GetAsyncKeyState() and GetKeyState().
        !           271:  * No other API or message will distinguish left and right keys in this way.
        !           272:  */
        !           273: #define VK_LSHIFT         0xA0
        !           274: #define VK_RSHIFT         0xA1
        !           275: #define VK_LCONTROL       0xA2
        !           276: #define VK_RCONTROL       0xA3
        !           277: #define VK_LMENU          0xA4
        !           278: #define VK_RMENU          0xA5
        !           279: 
        !           280: #define VK_ATTN           0xF6
        !           281: #define VK_CRSEL          0xF7
        !           282: #define VK_EXSEL          0xF8
        !           283: #define VK_EREOF          0xF9
        !           284: #define VK_PLAY           0xFA
        !           285: #define VK_ZOOM           0xFB
        !           286: #define VK_NONAME         0xFC
        !           287: #define VK_PA1            0xFD
        !           288: #define VK_OEM_CLEAR      0xFE
        !           289: 
        !           290: #endif /* NOVIRTUALKEYCODES */
        !           291: 
        !           292: #ifndef NOWH
        !           293: 
        !           294: /* SetWindowsHook() codes */
        !           295: #define WH_MSGFILTER        (-1)
        !           296: #define WH_JOURNALRECORD    0
        !           297: #define WH_JOURNALPLAYBACK  1
        !           298: #define WH_KEYBOARD         2
        !           299: #define WH_GETMESSAGE       3
        !           300: #define WH_CALLWNDPROC      4
        !           301: #define WH_CBT              5
        !           302: #define WH_SYSMSGFILTER     6
        !           303: #define WH_MOUSE            7
        !           304: #define WH_HARDWARE         8
        !           305: #define WH_DEBUG            9
        !           306: 
        !           307: 
        !           308: /* Hook Codes */
        !           309: #define HC_LPLPFNNEXT       (-2)
        !           310: #define HC_LPFNNEXT         (-1)
        !           311: #define HC_ACTION           0
        !           312: #define HC_GETNEXT          1
        !           313: #define HC_SKIP             2
        !           314: #define HC_NOREM            3
        !           315: #define HC_NOREMOVE         3
        !           316: #define HC_SYSMODALON       4
        !           317: #define HC_SYSMODALOFF      5
        !           318: 
        !           319: /* CBT Hook Codes */
        !           320: #define HCBT_MOVESIZE       0
        !           321: #define HCBT_MINMAX         1
        !           322: #define HCBT_QS             2
        !           323: #define HCBT_CREATEWND      3
        !           324: #define HCBT_DESTROYWND     4
        !           325: #define HCBT_ACTIVATE       5
        !           326: #define HCBT_CLICKSKIPPED   6
        !           327: #define HCBT_KEYSKIPPED     7
        !           328: #define HCBT_SYSCOMMAND     8
        !           329: #define HCBT_SETFOCUS       9
        !           330: 
        !           331: /*
        !           332:  * HCBT_CREATEWND parameters pointed to by lParam
        !           333:  */
        !           334: typedef struct tagCBT_CREATEWNDA
        !           335: {
        !           336:     struct tagCREATESTRUCTA *lpcs;
        !           337:     HWND           hwndInsertAfter;
        !           338: } CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
        !           339: /*
        !           340:  * HCBT_CREATEWND parameters pointed to by lParam
        !           341:  */
        !           342: typedef struct tagCBT_CREATEWNDW
        !           343: {
        !           344:     struct tagCREATESTRUCTW *lpcs;
        !           345:     HWND           hwndInsertAfter;
        !           346: } CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
        !           347: #ifdef UNICODE
        !           348: #define CBT_CREATEWND CBT_CREATEWNDW
        !           349: #define LPCBT_CREATEWND LPCBT_CREATEWNDW
        !           350: #else
        !           351: #define CBT_CREATEWND CBT_CREATEWNDA
        !           352: #define LPCBT_CREATEWND LPCBT_CREATEWNDA
        !           353: #endif // UNICODE
        !           354: 
        !           355: /* WH_MSGFILTER Filter Proc Codes */
        !           356: #define MSGF_DIALOGBOX      0
        !           357: #define MSGF_MESSAGEBOX     1
        !           358: #define MSGF_MENU           2
        !           359: #define MSGF_MOVE           3
        !           360: #define MSGF_SIZE           4
        !           361: #define MSGF_SCROLLBAR      5
        !           362: #define MSGF_NEXTWINDOW     6
        !           363: 
        !           364: /* Window Manager Hook Codes */
        !           365: #define WC_INIT             1
        !           366: #define WC_SWP              2
        !           367: #define WC_DEFWINDOWPROC    3
        !           368: #define WC_MINMAX           4
        !           369: #define WC_MOVE             5
        !           370: #define WC_SIZE             6
        !           371: #define WC_DRAWCAPTION      7
        !           372: 
        !           373: /* Message Structure used in Journaling */
        !           374: typedef struct tagEVENTMSG {
        !           375:     DWORD    message;
        !           376:     DWORD    paramL;
        !           377:     DWORD    paramH;
        !           378:     DWORD   time;
        !           379: } EVENTMSG, *PEVENTMSGMSG, NEAR *NPEVENTMSGMSG, FAR *LPEVENTMSGMSG;
        !           380: 
        !           381: typedef struct tagEVENTMSG *PEVENTMSG, NEAR *NPEVENTMSG, FAR *LPEVENTMSG;
        !           382: 
        !           383: /* Message structure used by WH_CALLWNDPROC */
        !           384: typedef struct tagCWPSTRUCT {
        !           385:     LONG    lParam;
        !           386:     DWORD   wParam;
        !           387:     DWORD    message;
        !           388:     HWND    hwnd;
        !           389: } CWPSTRUCT, *PCWPSTRUCT, NEAR *NPCWPSTRUCT, FAR *LPCWPSTRUCT;
        !           390: 
        !           391: /* Structure used by WH_DEBUG */
        !           392: typedef struct tagDEBUGHOOKSTRUCT {
        !           393:     DWORD   idThread;
        !           394:     DWORD   reserved;
        !           395:     DWORD   lParam;
        !           396:     DWORD   wParam;
        !           397:     int     nCode;
        !           398: } DEBUGHOOKSTRUCT, *PDEBUGHOOKSTRUCT, NEAR *NPDEBUGHOOKSTRUCT,
        !           399:         FAR *LPDEBUGHOOKSTRUCT;
        !           400: 
        !           401: typedef struct tagMOUSEHOOKSTRUCT {
        !           402:     POINT   point;
        !           403:     HWND    hWnd;
        !           404:     DWORD    wHitTestCode;
        !           405:     DWORD   dwExtraInfo;
        !           406: } MOUSEHOOKSTRUCT, FAR *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT;
        !           407: #endif /* NOWH */
        !           408: 
        !           409: #ifndef NODESKTOP
        !           410: 
        !           411: /*
        !           412:  * Desktop-specific access flags
        !           413:  */
        !           414: #define DESKTOP_ENUMWINDOWS         0x0001L
        !           415: #define DESKTOP_CREATEWINDOW        0x0002L
        !           416: #define DESKTOP_CREATEMENU          0x0004L
        !           417: #define DESKTOP_HOOKCONTROL         0x0008L
        !           418: #define DESKTOP_JOURNALRECORD       0x0010L
        !           419: #define DESKTOP_JOURNALPLAYBACK     0x0020L
        !           420: #define DESKTOP_ENUMERATE           0x0040L
        !           421: 
        !           422: /*
        !           423:  * Desktop flags
        !           424:  */
        !           425: #define DESKF_SAVEBITS              0x0001L
        !           426: #define DESKF_TEXTMODE              0x0002L
        !           427: 
        !           428: typedef struct _DESKATTRS {
        !           429:     DWORD cb;
        !           430:     DWORD cx;
        !           431:     DWORD cy;
        !           432:     DWORD cBitsPixel;
        !           433:     DWORD dwFlags;
        !           434: } DESKATTRS, *PDESKATTRS, NEAR *NPDESKATTRS, FAR *LPDESKATTRS;
        !           435: 
        !           436: BOOL
        !           437: APIENTRY CRITICAL XXX
        !           438: CreateDesktopA(
        !           439:     IN LPSTR,
        !           440:     IN LPSTR,
        !           441:     IN LPDESKATTRS
        !           442:     );
        !           443: BOOL
        !           444: APIENTRY CRITICAL XXX
        !           445: CreateDesktopW(
        !           446:     IN LPWSTR,
        !           447:     IN LPWSTR,
        !           448:     IN LPDESKATTRS
        !           449:     );
        !           450: #ifdef UNICODE
        !           451: #define CreateDesktop CreateDesktopW
        !           452: #else
        !           453: #define CreateDesktop CreateDesktopA
        !           454: #endif // !UNICODE
        !           455: 
        !           456: HDESK
        !           457: APIENTRY CRITICAL XXX
        !           458: OpenDesktopA(
        !           459:     IN LPSTR,
        !           460:     IN DWORD
        !           461:     );
        !           462: HDESK
        !           463: APIENTRY CRITICAL XXX
        !           464: OpenDesktopW(
        !           465:     IN LPWSTR,
        !           466:     IN DWORD
        !           467:     );
        !           468: #ifdef UNICODE
        !           469: #define OpenDesktop OpenDesktopW
        !           470: #else
        !           471: #define OpenDesktop OpenDesktopA
        !           472: #endif // !UNICODE
        !           473: 
        !           474: BOOL APIENTRY CRITICAL XXX SwitchDesktop(IN HDESK);
        !           475: BOOL APIENTRY CRITICAL SetThreadDesktop(IN HDESK);
        !           476: HDESK APIENTRY CRITICAL GetThreadDesktop(IN DWORD);
        !           477: HDESK APIENTRY CRITICAL GetInputDesktop(VOID);
        !           478: BOOL APIENTRY CRITICAL XXX CloseDesktop(IN HDESK);
        !           479: 
        !           480: BOOL
        !           481: APIENTRY CRITICAL XXX
        !           482: EnumDesktopsA(
        !           483:     IN FARPROC,
        !           484:     IN LONG
        !           485:     );
        !           486: BOOL
        !           487: APIENTRY CRITICAL XXX
        !           488: EnumDesktopsW(
        !           489:     IN FARPROC,
        !           490:     IN LONG
        !           491:     );
        !           492: #ifdef UNICODE
        !           493: #define EnumDesktops EnumDesktopsW
        !           494: #else
        !           495: #define EnumDesktops EnumDesktopsA
        !           496: #endif // !UNICODE
        !           497: 
        !           498: UINT
        !           499: APIENTRY CRITICAL
        !           500: GetDesktopAttrsA(
        !           501:     IN HDESK,
        !           502:     NEXTCOUNT IN OUT OUTLPSTR,
        !           503:     IN UINT,
        !           504:     OUT LPDESKATTRS OPTIONAL
        !           505:     );
        !           506: UINT
        !           507: APIENTRY CRITICAL
        !           508: GetDesktopAttrsW(
        !           509:     IN HDESK,
        !           510:     NEXTCOUNT IN OUT OUTLPWSTR,
        !           511:     IN UINT,
        !           512:     OUT LPDESKATTRS OPTIONAL
        !           513:     );
        !           514: #ifdef UNICODE
        !           515: #define GetDesktopAttrs GetDesktopAttrsW
        !           516: #else
        !           517: #define GetDesktopAttrs GetDesktopAttrsA
        !           518: #endif // !UNICODE
        !           519: 
        !           520: UINT
        !           521: APIENTRY CRITICAL
        !           522: GetDesktopTypesA(
        !           523:     IN LPSTR,
        !           524:     NEXTCOUNT OUT LPDESKATTRS OPTIONAL,
        !           525:     IN UINT
        !           526:     );
        !           527: UINT
        !           528: APIENTRY CRITICAL
        !           529: GetDesktopTypesW(
        !           530:     IN LPWSTR,
        !           531:     NEXTCOUNT OUT LPDESKATTRS OPTIONAL,
        !           532:     IN UINT
        !           533:     );
        !           534: #ifdef UNICODE
        !           535: #define GetDesktopTypes GetDesktopTypesW
        !           536: #else
        !           537: #define GetDesktopTypes GetDesktopTypesA
        !           538: #endif // !UNICODE
        !           539: 
        !           540: BOOL
        !           541: APIENTRY CRITICAL XXX
        !           542: EnumDisplayDevicesA(
        !           543:     IN FARPROC,
        !           544:     IN LONG
        !           545:     );
        !           546: BOOL
        !           547: APIENTRY CRITICAL XXX
        !           548: EnumDisplayDevicesW(
        !           549:     IN FARPROC,
        !           550:     IN LONG
        !           551:     );
        !           552: #ifdef UNICODE
        !           553: #define EnumDisplayDevices EnumDisplayDevicesW
        !           554: #else
        !           555: #define EnumDisplayDevices EnumDisplayDevicesA
        !           556: #endif // !UNICODE
        !           557: 
        !           558: #endif  /* NODESKTOP */
        !           559: 
        !           560: #ifndef NOWINDOWSTATION
        !           561: 
        !           562: /*
        !           563:  * Windowstation-specific access flags
        !           564:  */
        !           565: #define WINSTA_ENUMDESKTOPS         0x0001L
        !           566: #define WINSTA_READATTRIBUTES       0x0002L
        !           567: #define WINSTA_ACCESSCLIPBOARD      0x0004L
        !           568: #define WINSTA_CREATEDESKTOP        0x0008L
        !           569: #define WINSTA_WRITEATTRIBUTES      0x0010L
        !           570: #define WINSTA_ACCESSGLOBALATOMS    0x0020L
        !           571: #define WINSTA_EXITWINDOWS          0x0040L
        !           572: #define WINSTA_ENUMERATE            0x0100L
        !           573: #define WINSTA_READSCREEN           0x0200L
        !           574: 
        !           575: typedef struct _WINSTAATTRS {
        !           576:     DWORD cb;
        !           577: } WINSTAATTRS, *PWINSTAATTRS, NEAR *NPWINSTAATTRS, FAR *LPWINSTAATTRS;
        !           578: 
        !           579: HWINSTA
        !           580: APIENTRY CRITICAL
        !           581: OpenWindowStationA(
        !           582:     IN LPSTR,
        !           583:     IN DWORD
        !           584:     );
        !           585: HWINSTA
        !           586: APIENTRY CRITICAL
        !           587: OpenWindowStationW(
        !           588:     IN LPWSTR,
        !           589:     IN DWORD
        !           590:     );
        !           591: #ifdef UNICODE
        !           592: #define OpenWindowStation OpenWindowStationW
        !           593: #else
        !           594: #define OpenWindowStation OpenWindowStationA
        !           595: #endif // !UNICODE
        !           596: 
        !           597: BOOL APIENTRY CRITICAL SetProcessWindowStation(IN HWINSTA);
        !           598: HWINSTA APIENTRY CRITICAL GetProcessWindowStation(VOID);
        !           599: BOOL APIENTRY CRITICAL CloseWindowStation(IN HWINSTA);
        !           600: BOOL APIENTRY CRITICAL XXX EnumWindowStations(IN FARPROC, IN LONG);
        !           601: 
        !           602: UINT
        !           603: APIENTRY CRITICAL
        !           604: GetWindowStationAttrsA(
        !           605:     IN HWINSTA,
        !           606:     NEXTCOUNT IN OUT OUTLPSTR,
        !           607:     IN UINT,
        !           608:     OUT LPWINSTAATTRS
        !           609:     );
        !           610: UINT
        !           611: APIENTRY CRITICAL
        !           612: GetWindowStationAttrsW(
        !           613:     IN HWINSTA,
        !           614:     NEXTCOUNT IN OUT OUTLPWSTR,
        !           615:     IN UINT,
        !           616:     OUT LPWINSTAATTRS
        !           617:     );
        !           618: #ifdef UNICODE
        !           619: #define GetWindowStationAttrs GetWindowStationAttrsW
        !           620: #else
        !           621: #define GetWindowStationAttrs GetWindowStationAttrsA
        !           622: #endif // !UNICODE
        !           623: 
        !           624: #endif  /* NOWINDOWSTATION */
        !           625: 
        !           626: #ifndef NOSECURITY
        !           627: 
        !           628: /*
        !           629:  * window-specific access flags
        !           630:  */
        !           631: #define WIN_ACCESSWINDOW            0x0001L
        !           632: #define WIN_ENUMERATE               0x0002L
        !           633: 
        !           634: /*
        !           635:  * menu-specific access flags
        !           636:  */
        !           637: #define MENU_ACCESSMENU             0x0001L
        !           638: 
        !           639: BOOL APIENTRY CRITICAL SetObjectSecurity(IN HANDLE, IN PSECURITY_INFORMATION,
        !           640:         IN PSECURITY_DESCRIPTOR);
        !           641: BOOL APIENTRY CRITICAL GetObjectSecurity(IN HANDLE, IN PSECURITY_INFORMATION,
        !           642:         NEXTCOUNT OUT PSECURITY_DESCRIPTOR, IN DWORD, OUT LPDWORD);
        !           643: 
        !           644: #endif  /* NOSECURITY */
        !           645: 
        !           646: typedef struct tagWNDCLASSA {
        !           647:     DWORD       style;
        !           648:     WNDPROC     lpfnWndProc;
        !           649:     int         cbClsExtra;
        !           650:     int         cbWndExtra;
        !           651:     HANDLE      hInstance;
        !           652:     HICON       hIcon;
        !           653:     HCURSOR     hCursor;
        !           654:     HBRUSH      hbrBackground;
        !           655:     LPSTRID      lpszMenuName;
        !           656:     LPSTRID      lpszClassName;
        !           657: } WNDCLASSA, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA;
        !           658: typedef struct tagWNDCLASSW {
        !           659:     DWORD       style;
        !           660:     WNDPROC     lpfnWndProc;
        !           661:     int         cbClsExtra;
        !           662:     int         cbWndExtra;
        !           663:     HANDLE      hInstance;
        !           664:     HICON       hIcon;
        !           665:     HCURSOR     hCursor;
        !           666:     HBRUSH      hbrBackground;
        !           667:     LPWSTRID     lpszMenuName;
        !           668:     LPWSTRID     lpszClassName;
        !           669: } WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW;
        !           670: #ifdef UNICODE
        !           671: #define WNDCLASS WNDCLASSW
        !           672: #define PWNDCLASS PWNDCLASSW
        !           673: #define NPWNDCLASS NPWNDCLASSW
        !           674: #define LPWNDCLASS LPWNDCLASSW
        !           675: #else
        !           676: #define WNDCLASS WNDCLASSA
        !           677: #define PWNDCLASS PWNDCLASSA
        !           678: #define NPWNDCLASS NPWNDCLASSA
        !           679: #define LPWNDCLASS LPWNDCLASSA
        !           680: #endif // UNICODE
        !           681: 
        !           682: #ifndef NOMSG
        !           683: 
        !           684: /* Message structure */
        !           685: typedef struct tagMSG {
        !           686:     HWND        hwnd;
        !           687:     DWORD       message;
        !           688:     DWORD       wParam;
        !           689:     LONG        lParam;
        !           690:     DWORD       time;
        !           691:     POINT       pt;
        !           692: } MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
        !           693: 
        !           694: #define POINTSTOPOINT(pt,pts)  {(pt).x = (SHORT)LOWORD(pts); \
        !           695:                                 (pt).y = (SHORT)HIWORD(pts);}
        !           696: #define POINTTOPOINTS(pt)      (MAKELONG((short)((pt).x), (short)((pt).y)))
        !           697: 
        !           698: 
        !           699: #endif /* NOMSG */
        !           700: 
        !           701: #ifndef NOWINOFFSETS
        !           702: 
        !           703: /* Window field offsets for GetWindowLong() and GetWindowWord() */
        !           704: #define GWL_WNDPROC         (-4)
        !           705: #define GWL_HINSTANCE       (-6)
        !           706: #define GWL_HWNDPARENT      (-8)
        !           707: #define GWL_STYLE           (-16)
        !           708: #define GWL_EXSTYLE         (-20)
        !           709: #define GWL_USERDATA        (-21)
        !           710: #define GWL_ID              (-12)
        !           711: 
        !           712: /* Class field offsets for GetClassLong() and GetClassWord() */
        !           713: #define GCL_MENUNAME        (-8)
        !           714: #define GCL_HBRBACKGROUND   (-10)
        !           715: #define GCL_HCURSOR         (-12)
        !           716: #define GCL_HICON           (-14)
        !           717: #define GCL_HMODULE         (-16)
        !           718: #define GCL_CBWNDEXTRA      (-18)
        !           719: #define GCL_CBCLSEXTRA      (-20)
        !           720: #define GCL_WNDPROC         (-24)
        !           721: #define GCL_STYLE           (-26)
        !           722: 
        !           723: #endif /* NOWINOFFSETS */
        !           724: 
        !           725: #ifndef NOWINMESSAGES
        !           726: 
        !           727: /* Window Messages */
        !           728: #define WM_NULL             0x0000
        !           729: #define WM_CREATE           0x0001
        !           730: #define WM_DESTROY          0x0002
        !           731: #define WM_MOVE             0x0003
        !           732: #define WM_SIZE             0x0005
        !           733: #define WM_ACTIVATE         0x0006
        !           734: #define WM_SETFOCUS         0x0007
        !           735: #define WM_KILLFOCUS        0x0008
        !           736: #define WM_ENABLE           0x000A
        !           737: #define WM_SETREDRAW        0x000B
        !           738: #define WM_SETTEXT          0x000C
        !           739: #define WM_GETTEXT          0x000D
        !           740: #define WM_GETTEXTLENGTH    0x000E
        !           741: #define WM_PAINT            0x000F
        !           742: #define WM_CLOSE            0x0010
        !           743: #define WM_QUERYENDSESSION  0x0011
        !           744: #define WM_QUIT             0x0012
        !           745: #define WM_QUERYOPEN        0x0013
        !           746: #define WM_ERASEBKGND       0x0014
        !           747: #define WM_SYSCOLORCHANGE   0x0015
        !           748: #define WM_ENDSESSION       0x0016
        !           749: #define WM_SHOWWINDOW       0x0018
        !           750: #define WM_WININICHANGE     0x001A
        !           751: #define WM_DEVMODECHANGE    0x001B
        !           752: #define WM_ACTIVATEAPP      0x001C
        !           753: #define WM_FONTCHANGE       0x001D
        !           754: #define WM_TIMECHANGE       0x001E
        !           755: #define WM_CANCELMODE       0x001F
        !           756: #define WM_SETCURSOR        0x0020
        !           757: #define WM_MOUSEACTIVATE    0x0021
        !           758: #define WM_CHILDACTIVATE    0x0022
        !           759: #define WM_QUEUESYNC        0x0023
        !           760: #define WM_GETMINMAXINFO    0x0024
        !           761: #define WM_PAINTICON        0x0026
        !           762: #define WM_ICONERASEBKGND   0x0027
        !           763: #define WM_NEXTDLGCTL       0x0028
        !           764: #define WM_SPOOLERSTATUS    0x002A
        !           765: #define WM_DRAWITEM         0x002B
        !           766: #define WM_MEASUREITEM      0x002C
        !           767: #define WM_DELETEITEM       0x002D
        !           768: #define WM_VKEYTOITEM       0x002E
        !           769: #define WM_CHARTOITEM       0x002F
        !           770: #define WM_SETFONT          0x0030
        !           771: #define WM_GETFONT          0x0031
        !           772: 
        !           773: 
        !           774: #define WM_QUERYDRAGICON    0x0037
        !           775: 
        !           776: #define WM_COMPAREITEM      0x0039
        !           777: #define WM_COMPACTING       0x0041
        !           778: 
        !           779: #define WM_OTHERWINDOWCREATED   0x0042
        !           780: #define WM_OTHERWINDOWDESTROYED 0x0043
        !           781: #define WM_COMMNOTIFY           0x0044
        !           782: #define WM_HOTKEYEVENT          0x0045
        !           783: #define WM_WINDOWPOSCHANGING    0x0046
        !           784: #define WM_WINDOWPOSCHANGED     0x0047
        !           785: #define WM_POWER                0x0048
        !           786: 
        !           787: #define WM_NCCREATE         0x0081
        !           788: #define WM_NCDESTROY        0x0082
        !           789: #define WM_NCCALCSIZE       0x0083
        !           790: #define WM_NCHITTEST        0x0084
        !           791: #define WM_NCPAINT          0x0085
        !           792: #define WM_NCACTIVATE       0x0086
        !           793: #define WM_GETDLGCODE       0x0087
        !           794: #define WM_NCMOUSEMOVE      0x00A0
        !           795: #define WM_NCLBUTTONDOWN    0x00A1
        !           796: #define WM_NCLBUTTONUP      0x00A2
        !           797: #define WM_NCLBUTTONDBLCLK  0x00A3
        !           798: #define WM_NCRBUTTONDOWN    0x00A4
        !           799: #define WM_NCRBUTTONUP      0x00A5
        !           800: #define WM_NCRBUTTONDBLCLK  0x00A6
        !           801: #define WM_NCMBUTTONDOWN    0x00A7
        !           802: #define WM_NCMBUTTONUP      0x00A8
        !           803: #define WM_NCMBUTTONDBLCLK  0x00A9
        !           804: 
        !           805: #define WM_KEYFIRST         0x0100
        !           806: #define WM_KEYDOWN          0x0100
        !           807: #define WM_KEYUP            0x0101
        !           808: #define WM_CHAR             0x0102
        !           809: #define WM_DEADCHAR         0x0103
        !           810: #define WM_SYSKEYDOWN       0x0104
        !           811: #define WM_SYSKEYUP         0x0105
        !           812: #define WM_SYSCHAR          0x0106
        !           813: #define WM_SYSDEADCHAR      0x0107
        !           814: #define WM_KEYLAST          0x0108
        !           815: 
        !           816: #define WM_INITDIALOG       0x0110
        !           817: #define WM_COMMAND          0x0111
        !           818: #define WM_SYSCOMMAND       0x0112
        !           819: #define WM_TIMER            0x0113
        !           820: #define WM_HSCROLL          0x0114
        !           821: #define WM_VSCROLL          0x0115
        !           822: #define WM_INITMENU         0x0116
        !           823: #define WM_INITMENUPOPUP    0x0117
        !           824: #define WM_MENUSELECT       0x011F
        !           825: #define WM_MENUCHAR         0x0120
        !           826: #define WM_ENTERIDLE        0x0121
        !           827: 
        !           828: #define WM_CTLCOLORMSGBOX       0x0132
        !           829: #define WM_CTLCOLOREDIT         0x0133
        !           830: #define WM_CTLCOLORLISTBOX      0x0134
        !           831: #define WM_CTLCOLORBTN          0x0135
        !           832: #define WM_CTLCOLORDLG          0x0136
        !           833: #define WM_CTLCOLORSCROLLBAR    0x0137
        !           834: #define WM_CTLCOLORSTATIC       0x0138
        !           835: 
        !           836: #define WM_MOUSEFIRST       0x0200
        !           837: #define WM_MOUSEMOVE        0x0200
        !           838: #define WM_LBUTTONDOWN      0x0201
        !           839: #define WM_LBUTTONUP        0x0202
        !           840: #define WM_LBUTTONDBLCLK    0x0203
        !           841: #define WM_RBUTTONDOWN      0x0204
        !           842: #define WM_RBUTTONUP        0x0205
        !           843: #define WM_RBUTTONDBLCLK    0x0206
        !           844: #define WM_MBUTTONDOWN      0x0207
        !           845: #define WM_MBUTTONUP        0x0208
        !           846: #define WM_MBUTTONDBLCLK    0x0209
        !           847: #define WM_MOUSELAST        0x0209
        !           848: 
        !           849: #define WM_PARENTNOTIFY     0x0210
        !           850: #define WM_MDICREATE        0x0220
        !           851: #define WM_MDIDESTROY       0x0221
        !           852: #define WM_MDIACTIVATE      0x0222
        !           853: #define WM_MDIRESTORE       0x0223
        !           854: #define WM_MDINEXT          0x0224
        !           855: #define WM_MDIMAXIMIZE      0x0225
        !           856: #define WM_MDITILE          0x0226
        !           857: #define WM_MDICASCADE       0x0227
        !           858: #define WM_MDIICONARRANGE   0x0228
        !           859: #define WM_MDIGETACTIVE     0x0229
        !           860: #define WM_MDISETMENU       0x0230
        !           861: #define WM_DROPFILES        0x0233
        !           862: 
        !           863: #define WM_CUT              0x0300
        !           864: #define WM_COPY             0x0301
        !           865: #define WM_PASTE            0x0302
        !           866: #define WM_CLEAR            0x0303
        !           867: #define WM_UNDO             0x0304
        !           868: #define WM_RENDERFORMAT     0x0305
        !           869: #define WM_RENDERALLFORMATS 0x0306
        !           870: #define WM_DESTROYCLIPBOARD 0x0307
        !           871: #define WM_DRAWCLIPBOARD    0x0308
        !           872: #define WM_PAINTCLIPBOARD   0x0309
        !           873: #define WM_VSCROLLCLIPBOARD 0x030A
        !           874: #define WM_SIZECLIPBOARD    0x030B
        !           875: #define WM_ASKCBFORMATNAME  0x030C
        !           876: #define WM_CHANGECBCHAIN    0x030D
        !           877: #define WM_HSCROLLCLIPBOARD 0x030E
        !           878: #define WM_QUERYNEWPALETTE  0x030F
        !           879: #define WM_PALETTEISCHANGING 0x0310
        !           880: #define WM_PALETTECHANGED   0x0311
        !           881: #define WM_HOTKEY           0x0312
        !           882: #define WM_SETFOREGROUND    0x0313
        !           883: 
        !           884: /* NOTE: All Message Numbers below 0x0400 are RESERVED. */
        !           885: 
        !           886: /* Private Window Messages Start Here: */
        !           887: #define WM_USER             0x0400
        !           888: 
        !           889: #ifndef NONCMESSAGES
        !           890: 
        !           891: /* WM_SYNCTASK Commands */
        !           892: #define ST_BEGINSWP         0
        !           893: #define ST_ENDSWP           1
        !           894: 
        !           895: /* WinWhere() Area Codes */
        !           896: #define HTERROR             (-2)
        !           897: #define HTTRANSPARENT       (-1)
        !           898: #define HTNOWHERE           0
        !           899: #define HTCLIENT            1
        !           900: #define HTCAPTION           2
        !           901: #define HTSYSMENU           3
        !           902: #define HTGROWBOX           4
        !           903: #define HTSIZE              HTGROWBOX
        !           904: #define HTMENU              5
        !           905: #define HTHSCROLL           6
        !           906: #define HTVSCROLL           7
        !           907: #define HTREDUCE            8
        !           908: #define HTZOOM              9
        !           909: #define HTLEFT              10
        !           910: #define HTRIGHT             11
        !           911: #define HTTOP               12
        !           912: #define HTTOPLEFT           13
        !           913: #define HTTOPRIGHT          14
        !           914: #define HTBOTTOM            15
        !           915: #define HTBOTTOMLEFT        16
        !           916: #define HTBOTTOMRIGHT       17
        !           917: #define HTSIZEFIRST         HTLEFT
        !           918: #define HTSIZELAST          HTBOTTOMRIGHT
        !           919: 
        !           920: #endif /* NONCMESSAGES */
        !           921: 
        !           922: /* WM_MOUSEACTIVATE Return Codes */
        !           923: #define MA_ACTIVATE         1
        !           924: #define MA_ACTIVATEANDEAT   2
        !           925: #define MA_NOACTIVATE       3
        !           926: #define MA_NOACTIVATEANDEAT 4
        !           927: 
        !           928: UINT
        !           929: APIENTRY
        !           930: RegisterWindowMessageA(
        !           931:     IN LPSTR lpString
        !           932:     );
        !           933: UINT
        !           934: APIENTRY
        !           935: RegisterWindowMessageW(
        !           936:     IN LPWSTR lpString
        !           937:     );
        !           938: #ifdef UNICODE
        !           939: #define RegisterWindowMessage RegisterWindowMessageW
        !           940: #else
        !           941: #define RegisterWindowMessage RegisterWindowMessageA
        !           942: #endif // !UNICODE
        !           943: 
        !           944: /* WM_SIZE message wParam values */
        !           945: #define SIZENORMAL          0
        !           946: #define SIZEICONIC          1
        !           947: #define SIZEFULLSCREEN      2
        !           948: #define SIZEZOOMSHOW        3
        !           949: #define SIZEZOOMHIDE        4
        !           950: 
        !           951: /* WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam */
        !           952: typedef struct tagWINDOWPOS {
        !           953:     HWND    hwnd;
        !           954:     HWND    hwndInsertAfter;
        !           955:     int     x;
        !           956:     int     y;
        !           957:     int     cx;
        !           958:     int     cy;
        !           959:     DWORD   flags;
        !           960: } WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS;
        !           961: 
        !           962: /* WM_NCCALCSIZE parameter structure */
        !           963: typedef struct tagNCCALCSIZE_PARAMS {
        !           964:     RECT       rgrc[3];
        !           965:     PWINDOWPOS lppos;
        !           966: } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
        !           967: 
        !           968: /* WM_NCCALCSIZE "window valid rect" return values */
        !           969: #define WVR_ALIGNTOP        0x0010
        !           970: #define WVR_ALIGNLEFT       0x0020
        !           971: #define WVR_ALIGNBOTTOM     0x0040
        !           972: #define WVR_ALIGNRIGHT      0x0080
        !           973: #define WVR_HREDRAW         0x0100
        !           974: #define WVR_VREDRAW         0x0200
        !           975: #define WVR_REDRAW          (WVR_HREDRAW | WVR_VREDRAW)
        !           976: #define WVR_VALIDRECTS      0x0400
        !           977: 
        !           978: #define WVR_MINVALID        WVR_ALIGNTOP        /* ;Internal */
        !           979: #define WVR_MAXVALID        WVR_VALIDRECTS      /* ;Internal */
        !           980: 
        !           981: #ifndef NOKEYSTATES
        !           982: 
        !           983: /* Key State Masks for Mouse Messages */
        !           984: #define MK_LBUTTON          0x0001
        !           985: #define MK_RBUTTON          0x0002
        !           986: #define MK_SHIFT            0x0004
        !           987: #define MK_CONTROL          0x0008
        !           988: #define MK_MBUTTON          0x0010
        !           989: 
        !           990: #endif /* NOKEYSTATES */
        !           991: 
        !           992: #endif /* NOWINMESSAGES */
        !           993: 
        !           994: #ifndef NOWINSTYLES
        !           995: 
        !           996: /* Window Styles */
        !           997: #define WS_OVERLAPPED       0x00000000L
        !           998: #define WS_POPUP            0x80000000L
        !           999: #define WS_CHILD            0x40000000L
        !          1000: #define WS_MINIMIZE         0x20000000L
        !          1001: #define WS_VISIBLE          0x10000000L
        !          1002: #define WS_DISABLED         0x08000000L
        !          1003: #define WS_CLIPSIBLINGS     0x04000000L
        !          1004: #define WS_CLIPCHILDREN     0x02000000L
        !          1005: #define WS_MAXIMIZE         0x01000000L
        !          1006: #define WS_CAPTION          0x00C00000L     /* WS_BORDER | WS_DLGFRAME  */
        !          1007: #define WS_BORDER           0x00800000L
        !          1008: #define WS_DLGFRAME         0x00400000L
        !          1009: #define WS_VSCROLL          0x00200000L
        !          1010: #define WS_HSCROLL          0x00100000L
        !          1011: #define WS_SYSMENU          0x00080000L
        !          1012: #define WS_THICKFRAME       0x00040000L
        !          1013: #define WS_GROUP            0x00020000L
        !          1014: #define WS_TABSTOP          0x00010000L
        !          1015: 
        !          1016: #define WS_MINIMIZEBOX      0x00020000L
        !          1017: #define WS_MAXIMIZEBOX      0x00010000L
        !          1018: 
        !          1019: #define WS_TILED            WS_OVERLAPPED
        !          1020: #define WS_ICONIC           WS_MINIMIZE
        !          1021: #define WS_SIZEBOX          WS_THICKFRAME
        !          1022: 
        !          1023: /* Common Window Styles */
        !          1024: #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
        !          1025: #define WS_POPUPWINDOW      (WS_POPUP | WS_BORDER | WS_SYSMENU)
        !          1026: #define WS_CHILDWINDOW      (WS_CHILD)
        !          1027: 
        !          1028: #define WS_TILEDWINDOW      (WS_OVERLAPPEDWINDOW)
        !          1029: 
        !          1030: /* Extended Window Styles */
        !          1031: #define WS_EX_DLGMODALFRAME  0x00000001L
        !          1032: #define WS_EX_NOPARENTNOTIFY 0x00000004L
        !          1033: #define WS_EX_TOPMOST        0x00000008L
        !          1034: #define WS_EX_ACCEPTFILES    0x00000010L
        !          1035: #define WS_EX_TRANSPARENT    0x00000020L
        !          1036: #define WS_EX_ALLEXSTYLES    (WS_EX_TRANSPARENT | WS_EX_DLGMODALFRAME | WS_EX_DRAGOBJECT | WS_EX_NOPARENTNOTIFY | WS_EX_TOPMOST | WS_EX_ACCEPTFILES) /* ;Internal */
        !          1037: 
        !          1038: /* Class styles */
        !          1039: #define CS_VREDRAW          0x0001
        !          1040: #define CS_HREDRAW          0x0002
        !          1041: #define CS_KEYCVTWINDOW     0x0004
        !          1042: #define CS_DBLCLKS          0x0008
        !          1043:                         /*  0x0010 - reserved (see user\server\usersrv.h) */
        !          1044: #define CS_OWNDC            0x0020
        !          1045: #define CS_CLASSDC          0x0040
        !          1046: #define CS_PARENTDC         0x0080
        !          1047: #define CS_NOKEYCVT         0x0100
        !          1048: #define CS_NOCLOSE          0x0200
        !          1049: #define CS_SAVEBITS         0x0800
        !          1050: #define CS_BYTEALIGNCLIENT  0x1000
        !          1051: #define CS_BYTEALIGNWINDOW  0x2000
        !          1052: #define CS_GLOBALCLASS      0x4000    /* Global window class */
        !          1053: 
        !          1054: #endif /* NOWINSTYLES */
        !          1055: 
        !          1056: #ifndef NOCLIPBOARD
        !          1057: 
        !          1058: /* Predefined Clipboard Formats */
        !          1059: #define CF_TEXT             1
        !          1060: #define CF_BITMAP           2
        !          1061: #define CF_METAFILEPICT     3
        !          1062: #define CF_SYLK             4
        !          1063: #define CF_DIF              5
        !          1064: #define CF_TIFF             6
        !          1065: #define CF_OEMTEXT          7
        !          1066: #define CF_DIB              8
        !          1067: #define CF_PALETTE          9
        !          1068: #define CF_UNICODETEXT      10
        !          1069: 
        !          1070: #define CF_OWNERDISPLAY     0x0080
        !          1071: #define CF_DSPTEXT          0x0081
        !          1072: #define CF_DSPBITMAP        0x0082
        !          1073: #define CF_DSPMETAFILEPICT  0x0083
        !          1074: 
        !          1075: /* "Private" formats don't get GlobalFree()'d */
        !          1076: #define CF_PRIVATEFIRST     0x0200
        !          1077: #define CF_PRIVATELAST      0x02FF
        !          1078: 
        !          1079: /* "GDIOBJ" formats do get DeleteObject()'d */
        !          1080: #define CF_GDIOBJFIRST      0x0300
        !          1081: #define CF_GDIOBJLAST       0x03FF
        !          1082: 
        !          1083: #endif /* NOCLIPBOARD */
        !          1084: 
        !          1085: /*
        !          1086:  * Defines for the fVirt field of the Accelerator table structure.
        !          1087:  */
        !          1088: #define FVIRTKEY  TRUE          /* Assumed to be == TRUE */
        !          1089: #define FNOINVERT 0x02
        !          1090: #define FSHIFT    0x04
        !          1091: #define FCONTROL  0x08
        !          1092: #define FALT      0x10
        !          1093: 
        !          1094: typedef struct tagACCEL {
        !          1095:     BYTE   fVirt;               /* Also called the flags field */
        !          1096:     WORD   key;
        !          1097:     WORD   cmd;
        !          1098: } ACCEL, *LPACCEL;
        !          1099: 
        !          1100: typedef struct tagPAINTSTRUCT {
        !          1101:     HDC         hdc;
        !          1102:     BOOL        fErase;
        !          1103:     RECT        rcPaint;
        !          1104:     BOOL        fRestore;
        !          1105:     BOOL        fIncUpdate;
        !          1106:     BYTE        rgbReserved[32];
        !          1107: } PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT;
        !          1108: 
        !          1109: typedef struct tagCREATESTRUCTA {
        !          1110:     LPVOID      lpCreateParams;
        !          1111:     HANDLE      hInstance;
        !          1112:     HANDLE      hMenu;
        !          1113:     HWND        hwndParent;
        !          1114:     int         cy;
        !          1115:     int         cx;
        !          1116:     int         y;
        !          1117:     int         x;
        !          1118:     LONG        style;
        !          1119:     LPSTRNULL    lpszName;
        !          1120:     LPSTRID      lpszClass;
        !          1121:     DWORD       dwExStyle;
        !          1122: } CREATESTRUCTA, *LPCREATESTRUCTA;
        !          1123: typedef struct tagCREATESTRUCTW {
        !          1124:     LPVOID      lpCreateParams;
        !          1125:     HANDLE      hInstance;
        !          1126:     HANDLE      hMenu;
        !          1127:     HWND        hwndParent;
        !          1128:     int         cy;
        !          1129:     int         cx;
        !          1130:     int         y;
        !          1131:     int         x;
        !          1132:     LONG        style;
        !          1133:     LPWSTRNULL   lpszName;
        !          1134:     LPWSTRID     lpszClass;
        !          1135:     DWORD       dwExStyle;
        !          1136: } CREATESTRUCTW, *LPCREATESTRUCTW;
        !          1137: #ifdef UNICODE
        !          1138: #define CREATESTRUCT CREATESTRUCTW
        !          1139: #define LPCREATESTRUCT LPCREATESTRUCTW
        !          1140: #else
        !          1141: #define CREATESTRUCT CREATESTRUCTA
        !          1142: #define LPCREATESTRUCT LPCREATESTRUCTA
        !          1143: #endif // UNICODE
        !          1144: 
        !          1145: 
        !          1146: /* Owner draw control types */
        !          1147: #define ODT_MENU        1
        !          1148: #define ODT_LISTBOX     2
        !          1149: #define ODT_COMBOBOX    3
        !          1150: #define ODT_BUTTON      4
        !          1151: 
        !          1152: /* Owner draw actions */
        !          1153: #define ODA_DRAWENTIRE  0x0001
        !          1154: #define ODA_SELECT      0x0002
        !          1155: #define ODA_FOCUS       0x0004
        !          1156: 
        !          1157: /* Owner draw state */
        !          1158: #define ODS_SELECTED    0x0001
        !          1159: #define ODS_GRAYED      0x0002
        !          1160: #define ODS_DISABLED    0x0004
        !          1161: #define ODS_CHECKED     0x0008
        !          1162: #define ODS_FOCUS       0x0010
        !          1163: 
        !          1164: /* MEASUREITEMSTRUCT for ownerdraw */
        !          1165: typedef struct tagMEASUREITEMSTRUCT {
        !          1166:     DWORD       CtlType;
        !          1167:     DWORD       CtlID;
        !          1168:     DWORD       itemID;
        !          1169:     DWORD       itemWidth;
        !          1170:     DWORD       itemHeight;
        !          1171:     DWORD       itemData;
        !          1172: } MEASUREITEMSTRUCT, NEAR *PMEASUREITEMSTRUCT, FAR *LPMEASUREITEMSTRUCT;
        !          1173: 
        !          1174: 
        !          1175: /* DRAWITEMSTRUCT for ownerdraw */
        !          1176: typedef struct tagDRAWITEMSTRUCT {
        !          1177:     DWORD       CtlType;
        !          1178:     DWORD       CtlID;
        !          1179:     DWORD       itemID;
        !          1180:     DWORD       itemAction;
        !          1181:     DWORD       itemState;
        !          1182:     HWND        hwndItem;
        !          1183:     HDC         hDC;
        !          1184:     RECT        rcItem;
        !          1185:     DWORD       itemData;
        !          1186: } DRAWITEMSTRUCT, NEAR *PDRAWITEMSTRUCT, FAR *LPDRAWITEMSTRUCT;
        !          1187: 
        !          1188: /* DELETEITEMSTRUCT for ownerdraw */
        !          1189: typedef struct tagDELETEITEMSTRUCT {
        !          1190:     DWORD      CtlType;
        !          1191:     DWORD      CtlID;
        !          1192:     DWORD      itemID;
        !          1193:     HWND       hwndItem;
        !          1194:     DWORD      itemData;
        !          1195: } DELETEITEMSTRUCT, NEAR *PDELETEITEMSTRUCT, FAR *LPDELETEITEMSTRUCT;
        !          1196: 
        !          1197: /* COMPAREITEMSTUCT for ownerdraw sorting */
        !          1198: typedef struct tagCOMPAREITEMSTRUCT {
        !          1199:     DWORD       CtlType;
        !          1200:     DWORD       CtlID;
        !          1201:     HWND        hwndItem;
        !          1202:     DWORD       itemID1;
        !          1203:     DWORD       itemData1;
        !          1204:     DWORD       itemID2;
        !          1205:     DWORD       itemData2;
        !          1206: } COMPAREITEMSTRUCT, NEAR *PCOMPAREITEMSTRUCT, FAR *LPCOMPAREITEMSTRUCT;
        !          1207: 
        !          1208: #ifndef NOMSG
        !          1209: 
        !          1210: /* Message Function Templates */
        !          1211: BOOL APIENTRY CRITICAL XXX GetMessage(OUT LPMSG lpMsg,
        !          1212:         IN HWNDVERBATIM hWnd OPTIONAL, IN UINT wMsgFilterMin,
        !          1213:         IN UINT wMsgFilterMax);
        !          1214: BOOL APIENTRY CRITICAL TranslateMessage(IN LPMSG lpMsg);
        !          1215: LONG APIENTRY CRITICAL XXX DispatchMessage(IN LPMSG lpMsg);
        !          1216: BOOL APIENTRY CRITICAL XXX PeekMessage(OUT LPMSG lpMsg,
        !          1217:         IN HWNDVERBATIM hWnd OPTIONAL, IN UINT wMsgFilterMin,
        !          1218:         IN UINT wMsgFilterMax, IN UINT wRemoveMsg);
        !          1219: 
        !          1220: /* PeekMessage() Options */
        !          1221: #define PM_NOREMOVE         0x0000
        !          1222: #define PM_REMOVE           0x0001
        !          1223: #define PM_NOYIELD          0x0002
        !          1224: 
        !          1225: #endif /* NOMSG */
        !          1226: 
        !          1227: BOOL APIENTRY CRITICAL RegisterHotKey(IN HWND hwnd OPTIONAL, IN int id,
        !          1228:         IN UINT fsModifiers, IN UINT vk);
        !          1229: BOOL APIENTRY CRITICAL UnregisterHotKey(IN HWND hwnd OPTIONAL, IN int id);
        !          1230: 
        !          1231: #define MOD_ALT         0x0001
        !          1232: #define MOD_CONTROL     0x0002
        !          1233: #define MOD_SHIFT       0x0004
        !          1234: 
        !          1235: #define IDHOT_SNAPWINDOW        (-1)    /* SHIFT-PRINTSCRN  */
        !          1236: #define IDHOT_SNAPDESKTOP       (-2)    /* PRINTSCRN        */
        !          1237: 
        !          1238: #ifdef WIN_INTERNAL
        !          1239:     #ifndef LSTRING
        !          1240:     #define NOLSTRING
        !          1241:     #endif
        !          1242:     #ifndef LFILEIO
        !          1243:     #define NOLFILEIO
        !          1244:     #endif
        !          1245: #endif
        !          1246: 
        !          1247: 
        !          1248: BOOL  APIENTRY CRITICAL ExitWindows(IN DWORD dwReserved, IN UINT wReturnCode);
        !          1249: 
        !          1250: BOOL  APIENTRY CRITICAL SwapMouseButton(IN BOOL);
        !          1251: DWORD APIENTRY CRITICAL GetMessagePos(void);
        !          1252: LONG  APIENTRY CRITICAL GetMessageTime(void);
        !          1253: LONG  APIENTRY CRITICAL GetMessageExtraInfo(void);
        !          1254: 
        !          1255: LONG  APIENTRY CRITICAL XXX SendMessageA(IN HWNDFF hWnd, IN UINT wMsg,
        !          1256:         IN DWORD wParam, IN LONG lParam);
        !          1257: LONG  APIENTRY CRITICAL XXX SendMessageW(IN HWNDFF hWnd, IN UINT wMsg,
        !          1258:         IN DWORD wParam, IN LONG lParam);
        !          1259: #ifdef UNICODE
        !          1260: #define SendMessage SendMessageW
        !          1261: #else
        !          1262: #define SendMessage SendMessageA
        !          1263: #endif // !UNICODE
        !          1264: BOOL  APIENTRY CRITICAL XXX SendNotifyMessage(IN HWND hwnd, IN UINT wMsg,
        !          1265:         IN DWORD wParam, IN LONG lParam);
        !          1266: BOOL  APIENTRY CRITICAL PostMessage(IN HWNDFF hWnd, IN UINT wMsg,
        !          1267:         IN DWORD wParam, IN LONG lParam);
        !          1268: BOOL  APIENTRY CRITICAL PostThreadMessage(IN DWORD idThread, IN UINT wMsg,
        !          1269:         IN DWORD wParam, IN LONG lParam);
        !          1270: #define PostAppMessage(idThread, wMsg, wParam, lParam)\
        !          1271:         PostThreadMessage((DWORD)idThread, wMsg, wParam, lParam)
        !          1272: BOOL  APIENTRY CRITICAL ReplyMessage(IN LONG);
        !          1273: BOOL  APIENTRY CRITICAL XXX WaitMessage(void);
        !          1274: DWORD APIENTRY WaitForInputIdle(HANDLE hProcess, DWORD dwMilliseconds);
        !          1275: LONG  APIENTRY CRITICAL XXX DefWindowProcA(IN HWND hWnd, IN UINT wMsg,
        !          1276:         IN DWORD wParam, IN LONG lParam);
        !          1277: LONG  APIENTRY CRITICAL XXX DefWindowProcW(IN HWND hWnd, IN UINT wMsg,
        !          1278:         IN DWORD wParam, IN LONG lParam);
        !          1279: #ifdef UNICODE
        !          1280: #define DefWindowProc DefWindowProcW
        !          1281: #else
        !          1282: #define DefWindowProc DefWindowProcA
        !          1283: #endif // !UNICODE
        !          1284: BOOL  APIENTRY CRITICAL PostQuitMessage(IN int nExitCode);
        !          1285: LONG  APIENTRY CRITICAL XXX CallWindowProcA(IN WNDPROC lpPrevWndFunc,
        !          1286:         IN HWND hWnd, IN UINT wMsg, IN DWORD wParam, IN LONG lParam);
        !          1287: LONG  APIENTRY CRITICAL XXX CallWindowProcW(IN WNDPROC lpPrevWndFunc,
        !          1288:         IN HWND hWnd, IN UINT wMsg, IN DWORD wParam, IN LONG lParam);
        !          1289: #ifdef UNICODE
        !          1290: #define CallWindowProc CallWindowProcW
        !          1291: #else
        !          1292: #define CallWindowProc CallWindowProcA
        !          1293: #endif // !UNICODE
        !          1294: BOOL  APIENTRY CRITICAL InSendMessage(void);
        !          1295: 
        !          1296: UINT APIENTRY CRITICAL GetDoubleClickTime(void);
        !          1297: BOOL  APIENTRY CRITICAL SetDoubleClickTime(IN UINT);
        !          1298: 
        !          1299: BOOL
        !          1300: APIENTRY CRITICAL
        !          1301: RegisterClassA(
        !          1302:     IN LPWNDCLASSA lpWndClass
        !          1303:     );
        !          1304: BOOL
        !          1305: APIENTRY CRITICAL
        !          1306: RegisterClassW(
        !          1307:     IN LPWNDCLASSW lpWndClass
        !          1308:     );
        !          1309: #ifdef UNICODE
        !          1310: #define RegisterClass RegisterClassW
        !          1311: #else
        !          1312: #define RegisterClass RegisterClassA
        !          1313: #endif // !UNICODE
        !          1314: 
        !          1315: BOOL
        !          1316: APIENTRY CRITICAL
        !          1317: UnregisterClassA(
        !          1318:     IN LPSTRID lpClassName,
        !          1319:     IN HANDLE hInstance
        !          1320:     );
        !          1321: BOOL
        !          1322: APIENTRY CRITICAL
        !          1323: UnregisterClassW(
        !          1324:     IN LPWSTRID lpClassName,
        !          1325:     IN HANDLE hInstance
        !          1326:     );
        !          1327: #ifdef UNICODE
        !          1328: #define UnregisterClass UnregisterClassW
        !          1329: #else
        !          1330: #define UnregisterClass UnregisterClassA
        !          1331: #endif // !UNICODE
        !          1332: 
        !          1333: BOOL
        !          1334: APIENTRY CRITICAL
        !          1335: GetClassInfoA(
        !          1336:     IN HANDLE hInstance OPTIONAL,
        !          1337:     IN LPSTRID lpClassName,
        !          1338:     OUT LPWNDCLASSA lpWndClass
        !          1339:     );
        !          1340: BOOL
        !          1341: APIENTRY CRITICAL
        !          1342: GetClassInfoW(
        !          1343:     IN HANDLE hInstance OPTIONAL,
        !          1344:     IN LPWSTRID lpClassName,
        !          1345:     OUT LPWNDCLASSW lpWndClass
        !          1346:     );
        !          1347: #ifdef UNICODE
        !          1348: #define GetClassInfo GetClassInfoW
        !          1349: #else
        !          1350: #define GetClassInfo GetClassInfoA
        !          1351: #endif // !UNICODE
        !          1352: 
        !          1353: #define CW_USEDEFAULT       ((int)0x80000000)
        !          1354: 
        !          1355: HWND
        !          1356: APIENTRY CRITICAL XXX
        !          1357: CreateWindowExA(
        !          1358:     IN DWORD dwExStyle,
        !          1359:     IN LPSTRID lpClassName,
        !          1360:     IN LPSTRID lpWindowName,
        !          1361:     IN DWORD dwStyle,
        !          1362:     IN int X,
        !          1363:     IN int Y,
        !          1364:     IN int nWidth,
        !          1365:     IN int nHeight,
        !          1366:     IN HWND hWndParent OPTIONAL,
        !          1367:     IN HMENU hMenu,
        !          1368:     IN HANDLE hInstance,
        !          1369:     IN LPVOID lpParam OPTIONAL
        !          1370:     );
        !          1371: HWND
        !          1372: APIENTRY CRITICAL XXX
        !          1373: CreateWindowExW(
        !          1374:     IN DWORD dwExStyle,
        !          1375:     IN LPWSTRID lpClassName,
        !          1376:     IN LPWSTRID lpWindowName,
        !          1377:     IN DWORD dwStyle,
        !          1378:     IN int X,
        !          1379:     IN int Y,
        !          1380:     IN int nWidth,
        !          1381:     IN int nHeight,
        !          1382:     IN HWND hWndParent OPTIONAL,
        !          1383:     IN HMENU hMenu,
        !          1384:     IN HANDLE hInstance,
        !          1385:     IN LPVOID lpParam OPTIONAL
        !          1386:     );
        !          1387: #ifdef UNICODE
        !          1388: #define CreateWindowEx CreateWindowExW
        !          1389: #else
        !          1390: #define CreateWindowEx CreateWindowExA
        !          1391: #endif // !UNICODE
        !          1392: 
        !          1393: #define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,\
        !          1394: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)\
        !          1395: CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,\
        !          1396: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)
        !          1397: #define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\
        !          1398: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)\
        !          1399: CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,\
        !          1400: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)
        !          1401: #ifdef UNICODE
        !          1402: #define CreateWindow CreateWindowW
        !          1403: #else
        !          1404: #define CreateWindow CreateWindowA
        !          1405: #endif // !UNICODE
        !          1406: 
        !          1407: BOOL APIENTRY CRITICAL IsWindow(IN HWNDVERBATIM hWnd);
        !          1408: BOOL APIENTRY CRITICAL IsChild(IN HWND hWndParent, IN HWND hWnd);
        !          1409: BOOL APIENTRY CRITICAL XXX DestroyWindow(IN HWND hWnd);
        !          1410: 
        !          1411: BOOL APIENTRY CRITICAL XXX ShowWindow(IN HWND hWnd, IN int nCmdShow);
        !          1412: BOOL APIENTRY CRITICAL XXX FlashWindow(IN HWND hWnd, IN BOOL bInvert);
        !          1413: BOOL APIENTRY CRITICAL XXX ShowOwnedPopups(IN HWND hWnd, IN BOOL fShow);
        !          1414: 
        !          1415: BOOL APIENTRY CRITICAL XXX OpenIcon(IN HWND hWnd);
        !          1416: BOOL APIENTRY CRITICAL XXX CloseWindow(IN HWND hWnd);
        !          1417: BOOL APIENTRY CRITICAL XXX MoveWindow(IN HWND hWnd, IN int X, IN int Y, IN int nWidth, IN int nHeight, IN BOOL bRepaint);
        !          1418: BOOL APIENTRY CRITICAL XXX SetWindowPos(IN HWND hWnd, IN HWNDIA hWndInsertAfter OPTIONAL, IN int X, IN int Y, IN int cx, IN int cy, IN UINT wFlags);
        !          1419: 
        !          1420: #ifndef NODEFERWINDOWPOS
        !          1421: 
        !          1422: HWPI APIENTRY CRITICAL BeginDeferWindowPos(IN int nNumWindows);
        !          1423: HWPI APIENTRY CRITICAL DeferWindowPos(IN HWPI hWinPosInfo, IN HWND hWnd, IN HWNDIA hWndInsertAfter OPTIONAL, IN int x, IN int y, IN int cx, IN int cy, IN UINT wFlags);
        !          1424: BOOL APIENTRY CRITICAL XXX EndDeferWindowPos(IN HWPI hWinPosInfo);
        !          1425: 
        !          1426: #endif /* NODEFERWINDOWPOS */
        !          1427: 
        !          1428: BOOL APIENTRY CRITICAL IsWindowVisible(IN HWND hWnd);
        !          1429: BOOL APIENTRY CRITICAL IsIconic(IN HWND hWnd);
        !          1430: BOOL APIENTRY CRITICAL AnyPopup(void);
        !          1431: BOOL APIENTRY CRITICAL XXX BringWindowToTop(IN HWND hWnd);
        !          1432: BOOL APIENTRY CRITICAL IsZoomed(IN HWND hWnd);
        !          1433: 
        !          1434: /* SetWindowPos Flags */
        !          1435: #define SWP_NOSIZE          0x0001
        !          1436: #define SWP_NOMOVE          0x0002
        !          1437: #define SWP_NOZORDER        0x0004
        !          1438: #define SWP_NOREDRAW        0x0008
        !          1439: #define SWP_NOACTIVATE      0x0010
        !          1440: #define SWP_FRAMECHANGED    0x0020  /* The frame changed: send WM_NCCALCSIZE */
        !          1441: #define SWP_SHOWWINDOW      0x0040
        !          1442: #define SWP_HIDEWINDOW      0x0080
        !          1443: #define SWP_NOCOPYBITS      0x0100
        !          1444: #define SWP_NOOWNERZORDER   0x0200  /* Don't do owner Z ordering */
        !          1445: 
        !          1446: #define SWP_DRAWFRAME       SWP_FRAMECHANGED
        !          1447: #define SWP_NOREPOSITION    SWP_NOOWNERZORDER
        !          1448: 
        !          1449: #define SWP_NOCLIENTSIZE    0x0800  /* Client didn't resize */  /* ;Internal */
        !          1450: #define SWP_NOCLIENTMOVE    0x1000  /* Client didn't move   */  /* ;Internal */
        !          1451: #define SWP_NOSENDCHANGING  0x0400  /* Don't send WM_WINDOWPOSCHANGING */ /* ;Internal */
        !          1452: #define SWP_DEFERDRAWING    0x2000  /* Don't do any drawing or erasing */ /* ;Internal */
        !          1453:                                                                       /* ;Internal */
        !          1454: #define SWP_CHANGEMASK      (SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | /* ;Internal */ \
        !          1455:                             SWP_FRAMECHANGED |                        /* ;Internal */ \
        !          1456:                             SWP_SHOWWINDOW | SWP_HIDEWINDOW |         /* ;Internal */ \
        !          1457:                             SWP_NOCLIENTSIZE | SWP_NOCLIENTMOVE)      /* ;Internal */
        !          1458:                                                                       /* ;Internal */
        !          1459: #define SWP_NOCHANGE        (SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | /* ;Internal */ \
        !          1460:                             SWP_NOCLIENTSIZE | SWP_NOCLIENTMOVE)      /* ;Internal */
        !          1461: 
        !          1462: #ifndef NOCTLMGR
        !          1463: 
        !          1464: HWND
        !          1465: APIENTRY CRITICAL
        !          1466: CreateDialogParamA(
        !          1467:     IN HANDLE hInstance,
        !          1468:     IN LPSTRID lpTemplateName,
        !          1469:     IN HWND hWndParent OPTIONAL,
        !          1470:     IN WNDPROC lpDialogFunc,
        !          1471:     IN LONG dwInitParam
        !          1472:     );
        !          1473: HWND
        !          1474: APIENTRY CRITICAL
        !          1475: CreateDialogParamW(
        !          1476:     IN HANDLE hInstance,
        !          1477:     IN LPWSTRID lpTemplateName,
        !          1478:     IN HWND hWndParent OPTIONAL,
        !          1479:     IN WNDPROC lpDialogFunc,
        !          1480:     IN LONG dwInitParam
        !          1481:     );
        !          1482: #ifdef UNICODE
        !          1483: #define CreateDialogParam CreateDialogParamW
        !          1484: #else
        !          1485: #define CreateDialogParam CreateDialogParamA
        !          1486: #endif // !UNICODE
        !          1487: 
        !          1488: HWND
        !          1489: APIENTRY CRITICAL
        !          1490: CreateDialogIndirectParamA(
        !          1491:     IN HANDLE hInstance,
        !          1492:     IN LPDLGTEMPLATESTUBA lpTemplate,
        !          1493:     IN HWND hWndParent OPTIONAL,
        !          1494:     IN WNDPROC lpDialogFunc,
        !          1495:     IN LONG dwInitParam
        !          1496:     );
        !          1497: HWND
        !          1498: APIENTRY CRITICAL
        !          1499: CreateDialogIndirectParamW(
        !          1500:     IN HANDLE hInstance,
        !          1501:     IN LPDLGTEMPLATESTUBW lpTemplate,
        !          1502:     IN HWND hWndParent OPTIONAL,
        !          1503:     IN WNDPROC lpDialogFunc,
        !          1504:     IN LONG dwInitParam
        !          1505:     );
        !          1506: #ifdef UNICODE
        !          1507: #define CreateDialogIndirectParam CreateDialogIndirectParamW
        !          1508: #else
        !          1509: #define CreateDialogIndirectParam CreateDialogIndirectParamA
        !          1510: #endif // !UNICODE
        !          1511: 
        !          1512: #define CreateDialogA(hInstance, lpName, hwndParent, lpDialogFunc) \
        !          1513: CreateDialogParamA(hInstance, lpName, hwndParent, lpDialogFunc, 0L)
        !          1514: #define CreateDialogW(hInstance, lpName, hwndParent, lpDialogFunc) \
        !          1515: CreateDialogParamW(hInstance, lpName, hwndParent, lpDialogFunc, 0L)
        !          1516: #ifdef UNICODE
        !          1517: #define CreateDialog CreateDialogW
        !          1518: #else
        !          1519: #define CreateDialog CreateDialogA
        !          1520: #endif // !UNICODE
        !          1521: 
        !          1522: #define CreateDialogIndirectA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
        !          1523: CreateDialogIndirectParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
        !          1524: #define CreateDialogIndirectW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
        !          1525: CreateDialogIndirectParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
        !          1526: #ifdef UNICODE
        !          1527: #define CreateDialogIndirect CreateDialogIndirectW
        !          1528: #else
        !          1529: #define CreateDialogIndirect CreateDialogIndirectA
        !          1530: #endif // !UNICODE
        !          1531: 
        !          1532: int
        !          1533: APIENTRY CRITICAL
        !          1534: DialogBoxParamA(
        !          1535:     IN HANDLE hInstance,
        !          1536:     IN LPSTRID lpTemplateName,
        !          1537:     IN HWND hWndParent OPTIONAL,
        !          1538:     IN WNDPROC lpDialogFunc,
        !          1539:     IN LONG dwInitParam
        !          1540:     );
        !          1541: int
        !          1542: APIENTRY CRITICAL
        !          1543: DialogBoxParamW(
        !          1544:     IN HANDLE hInstance,
        !          1545:     IN LPWSTRID lpTemplateName,
        !          1546:     IN HWND hWndParent OPTIONAL,
        !          1547:     IN WNDPROC lpDialogFunc,
        !          1548:     IN LONG dwInitParam
        !          1549:     );
        !          1550: #ifdef UNICODE
        !          1551: #define DialogBoxParam DialogBoxParamW
        !          1552: #else
        !          1553: #define DialogBoxParam DialogBoxParamA
        !          1554: #endif // !UNICODE
        !          1555: 
        !          1556: int
        !          1557: APIENTRY CRITICAL
        !          1558: DialogBoxIndirectParamA(
        !          1559:     IN HANDLE hInstance,
        !          1560:     IN LPDLGTEMPLATESTUBA hDialogTemplate,
        !          1561:     IN HWND hWndParent OPTIONAL,
        !          1562:     IN WNDPROC lpDialogFunc,
        !          1563:     IN LONG dwInitParam
        !          1564:     );
        !          1565: int
        !          1566: APIENTRY CRITICAL
        !          1567: DialogBoxIndirectParamW(
        !          1568:     IN HANDLE hInstance,
        !          1569:     IN LPDLGTEMPLATESTUBW hDialogTemplate,
        !          1570:     IN HWND hWndParent OPTIONAL,
        !          1571:     IN WNDPROC lpDialogFunc,
        !          1572:     IN LONG dwInitParam
        !          1573:     );
        !          1574: #ifdef UNICODE
        !          1575: #define DialogBoxIndirectParam DialogBoxIndirectParamW
        !          1576: #else
        !          1577: #define DialogBoxIndirectParam DialogBoxIndirectParamA
        !          1578: #endif // !UNICODE
        !          1579: 
        !          1580: #define DialogBoxA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
        !          1581: DialogBoxParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
        !          1582: #define DialogBoxW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
        !          1583: DialogBoxParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
        !          1584: #ifdef UNICODE
        !          1585: #define DialogBox DialogBoxW
        !          1586: #else
        !          1587: #define DialogBox DialogBoxA
        !          1588: #endif // !UNICODE
        !          1589: 
        !          1590: #define DialogBoxIndirectA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
        !          1591: DialogBoxIndirectParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
        !          1592: #define DialogBoxIndirectW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
        !          1593: DialogBoxIndirectParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
        !          1594: #ifdef UNICODE
        !          1595: #define DialogBoxIndirect DialogBoxIndirectW
        !          1596: #else
        !          1597: #define DialogBoxIndirect DialogBoxIndirectA
        !          1598: #endif // !UNICODE
        !          1599: 
        !          1600: BOOL APIENTRY CRITICAL XXX EndDialog(IN HWND hDlg, IN int nResult);
        !          1601: HWND APIENTRY CRITICAL GetDlgItem(IN HWND hDlg, IN int nIDDlgItem);
        !          1602: BOOL APIENTRY CRITICAL XXX SetDlgItemInt(IN HWND hDlg, IN int nIDDlgItem,
        !          1603:         IN int wValue, IN BOOL bSigned);
        !          1604: int  APIENTRY CRITICAL XXX GetDlgItemInt(IN HWNDVERBATIM hDlg, IN int nIDDlgItem,
        !          1605:         OUT BOOL *lpTranslated OPTIONAL, IN BOOL bSigned);
        !          1606: 
        !          1607: BOOL
        !          1608: APIENTRY CRITICAL XXX
        !          1609: SetDlgItemTextA(
        !          1610:     IN HWND hDlg,
        !          1611:     IN int nIDDlgItem,
        !          1612:     IN LPSTR lpString OPTIONAL
        !          1613:     );
        !          1614: BOOL
        !          1615: APIENTRY CRITICAL XXX
        !          1616: SetDlgItemTextW(
        !          1617:     IN HWND hDlg,
        !          1618:     IN int nIDDlgItem,
        !          1619:     IN LPWSTR lpString OPTIONAL
        !          1620:     );
        !          1621: #ifdef UNICODE
        !          1622: #define SetDlgItemText SetDlgItemTextW
        !          1623: #else
        !          1624: #define SetDlgItemText SetDlgItemTextA
        !          1625: #endif // !UNICODE
        !          1626: 
        !          1627: int
        !          1628: APIENTRY CRITICAL XXX
        !          1629: GetDlgItemTextA(
        !          1630:     IN HWND hDlg,
        !          1631:     IN int nIDDlgItem,
        !          1632:     NEXTCOUNT IN OUT OUTLPSTR lpString,
        !          1633:     IN int nMaxCount
        !          1634:     );
        !          1635: int
        !          1636: APIENTRY CRITICAL XXX
        !          1637: GetDlgItemTextW(
        !          1638:     IN HWND hDlg,
        !          1639:     IN int nIDDlgItem,
        !          1640:     NEXTCOUNT IN OUT OUTLPWSTR lpString,
        !          1641:     IN int nMaxCount
        !          1642:     );
        !          1643: #ifdef UNICODE
        !          1644: #define GetDlgItemText GetDlgItemTextW
        !          1645: #else
        !          1646: #define GetDlgItemText GetDlgItemTextA
        !          1647: #endif // !UNICODE
        !          1648: 
        !          1649: BOOL APIENTRY CRITICAL XXX CheckDlgButton(IN HWND hDlg, IN int nIDButton,
        !          1650:         IN UINT wCheck);
        !          1651: BOOL APIENTRY CRITICAL XXX CheckRadioButton(IN HWND hDlg, IN int nIDFirstButton,
        !          1652:         IN int nIDLastButton, IN int nIDCheckButton);
        !          1653: UINT APIENTRY CRITICAL XXX IsDlgButtonChecked(IN HWND hDlg, IN int nIDButton);
        !          1654: LONG APIENTRY CRITICAL XXX SendDlgItemMessageA(IN HWND hDlg, IN int nIDDlgItem,
        !          1655:         IN UINT wMsg, IN DWORD wParam, IN LONG lParam);
        !          1656: LONG APIENTRY CRITICAL XXX SendDlgItemMessageW(IN HWND hDlg, IN int nIDDlgItem,
        !          1657:         IN UINT wMsg, IN DWORD wParam, IN LONG lParam);
        !          1658: #ifdef UNICODE
        !          1659: #define SendDlgItemMessage SendDlgItemMessageW
        !          1660: #else
        !          1661: #define SendDlgItemMessage SendDlgItemMessageA
        !          1662: #endif // !UNICODE
        !          1663: HWND APIENTRY CRITICAL GetNextDlgGroupItem(IN HWND hDlg, IN HWND hCtl,
        !          1664:         IN BOOL bPrevious);
        !          1665: HWND APIENTRY CRITICAL GetNextDlgTabItem(IN HWND hDlg, IN HWND hCtl,
        !          1666:         IN BOOL bPrevious);
        !          1667: int  APIENTRY CRITICAL GetDlgCtrlID(IN HWND hWnd);
        !          1668: long APIENTRY CRITICAL GetDialogBaseUnits(void);
        !          1669: LONG APIENTRY CRITICAL XXX DefDlgProcA(IN HWND hDlg, IN UINT wMsg,
        !          1670:         IN DWORD wParam, IN LONG lParam);
        !          1671: LONG APIENTRY CRITICAL XXX DefDlgProcW(IN HWND hDlg, IN UINT wMsg,
        !          1672:         IN DWORD wParam, IN LONG lParam);
        !          1673: #ifdef UNICODE
        !          1674: #define DefDlgProc DefDlgProcW
        !          1675: #else
        !          1676: #define DefDlgProc DefDlgProcA
        !          1677: #endif // !UNICODE
        !          1678: 
        !          1679: /*
        !          1680:  * Window extra byted needed for private dialog classes.
        !          1681:  */
        !          1682: #define DLGWINDOWEXTRA 30
        !          1683: 
        !          1684: #endif /* NOCTLMGR */
        !          1685: 
        !          1686: #ifndef NOMSG
        !          1687: BOOL APIENTRY CRITICAL CallMsgFilter(IN LPMSG lpMsg, IN int nCode);
        !          1688: #endif
        !          1689: 
        !          1690: #ifndef NOCLIPBOARD
        !          1691: 
        !          1692: /* Clipboard Manager Functions */
        !          1693: BOOL   APIENTRY CRITICAL OpenClipboard(IN HWND hWnd);
        !          1694: BOOL   APIENTRY CRITICAL XXX CloseClipboard(void);
        !          1695: HWND   APIENTRY CRITICAL GetClipboardOwner(void);
        !          1696: HWND   APIENTRY CRITICAL XXX SetClipboardViewer(IN HWND OPTIONAL);
        !          1697: HWND   APIENTRY CRITICAL GetClipboardViewer(void);
        !          1698: BOOL   APIENTRY CRITICAL XXX ChangeClipboardChain(IN HWND, IN HWND OPTIONAL);
        !          1699: HANDLE APIENTRY CRITICAL SetClipboardData(IN UINT wFormat, IN HANDLE hMem);
        !          1700: HANDLE APIENTRY CRITICAL XXX GetClipboardData(IN UINT wFormat);
        !          1701: 
        !          1702: UINT
        !          1703: APIENTRY CRITICAL
        !          1704: RegisterClipboardFormatA(
        !          1705:     IN LPSTR
        !          1706:     );
        !          1707: UINT
        !          1708: APIENTRY CRITICAL
        !          1709: RegisterClipboardFormatW(
        !          1710:     IN LPWSTR
        !          1711:     );
        !          1712: #ifdef UNICODE
        !          1713: #define RegisterClipboardFormat RegisterClipboardFormatW
        !          1714: #else
        !          1715: #define RegisterClipboardFormat RegisterClipboardFormatA
        !          1716: #endif // !UNICODE
        !          1717: 
        !          1718: int    APIENTRY CRITICAL CountClipboardFormats(void);
        !          1719: UINT APIENTRY CRITICAL EnumClipboardFormats(IN UINT);
        !          1720: 
        !          1721: int
        !          1722: APIENTRY CRITICAL
        !          1723: GetClipboardFormatNameA(
        !          1724:     IN UINT,
        !          1725:     NEXTCOUNT IN OUT OUTLPSTR,
        !          1726:     IN int
        !          1727:     );
        !          1728: int
        !          1729: APIENTRY CRITICAL
        !          1730: GetClipboardFormatNameW(
        !          1731:     IN UINT,
        !          1732:     NEXTCOUNT IN OUT OUTLPWSTR,
        !          1733:     IN int
        !          1734:     );
        !          1735: #ifdef UNICODE
        !          1736: #define GetClipboardFormatName GetClipboardFormatNameW
        !          1737: #else
        !          1738: #define GetClipboardFormatName GetClipboardFormatNameA
        !          1739: #endif // !UNICODE
        !          1740: 
        !          1741: BOOL   APIENTRY CRITICAL XXX EmptyClipboard(void);
        !          1742: BOOL   APIENTRY CRITICAL IsClipboardFormatAvailable(IN UINT);
        !          1743: int    APIENTRY CRITICAL GetPriorityClipboardFormat(NEXTCOUNT IN LPPRIORITYLIST, IN int);
        !          1744: 
        !          1745: #endif /* NOCLIPBOARD */
        !          1746: 
        !          1747: 
        !          1748: /* Character Translation Routines */
        !          1749: 
        !          1750: BOOL
        !          1751: APIENTRY
        !          1752: CharToOemA(
        !          1753:     IN LPSTR,
        !          1754:     OUT LPSTR
        !          1755:     );
        !          1756: BOOL
        !          1757: APIENTRY
        !          1758: CharToOemW(
        !          1759:     IN LPWSTR,
        !          1760:     OUT LPSTR
        !          1761:     );
        !          1762: #ifdef UNICODE
        !          1763: #define CharToOem CharToOemW
        !          1764: #else
        !          1765: #define CharToOem CharToOemA
        !          1766: #endif // !UNICODE
        !          1767: 
        !          1768: BOOL
        !          1769: APIENTRY
        !          1770: OemToCharA(
        !          1771:     IN LPSTR,
        !          1772:     OUT LPSTR
        !          1773:     );
        !          1774: BOOL
        !          1775: APIENTRY
        !          1776: OemToCharW(
        !          1777:     IN LPSTR,
        !          1778:     OUT LPWSTR
        !          1779:     );
        !          1780: #ifdef UNICODE
        !          1781: #define OemToChar OemToCharW
        !          1782: #else
        !          1783: #define OemToChar OemToCharA
        !          1784: #endif // !UNICODE
        !          1785: 
        !          1786: BOOL
        !          1787: APIENTRY
        !          1788: CharToOemBuffA(
        !          1789:     IN LPSTR,
        !          1790:     OUT LPSTR,
        !          1791:     IN DWORD
        !          1792:     );
        !          1793: BOOL
        !          1794: APIENTRY
        !          1795: CharToOemBuffW(
        !          1796:     IN LPWSTR,
        !          1797:     OUT LPSTR,
        !          1798:     IN DWORD
        !          1799:     );
        !          1800: #ifdef UNICODE
        !          1801: #define CharToOemBuff CharToOemBuffW
        !          1802: #else
        !          1803: #define CharToOemBuff CharToOemBuffA
        !          1804: #endif // !UNICODE
        !          1805: 
        !          1806: BOOL
        !          1807: APIENTRY
        !          1808: OemToCharBuffA(
        !          1809:     IN LPSTR,
        !          1810:     OUT LPSTR,
        !          1811:     IN DWORD
        !          1812:     );
        !          1813: BOOL
        !          1814: APIENTRY
        !          1815: OemToCharBuffW(
        !          1816:     IN LPSTR,
        !          1817:     OUT LPWSTR,
        !          1818:     IN DWORD
        !          1819:     );
        !          1820: #ifdef UNICODE
        !          1821: #define OemToCharBuff OemToCharBuffW
        !          1822: #else
        !          1823: #define OemToCharBuff OemToCharBuffA
        !          1824: #endif // !UNICODE
        !          1825: 
        !          1826: LPSTR
        !          1827: APIENTRY
        !          1828: CharUpperA(
        !          1829:     IN LPSTR
        !          1830:     );
        !          1831: LPWSTR
        !          1832: APIENTRY
        !          1833: CharUpperW(
        !          1834:     IN LPWSTR
        !          1835:     );
        !          1836: #ifdef UNICODE
        !          1837: #define CharUpper CharUpperW
        !          1838: #else
        !          1839: #define CharUpper CharUpperA
        !          1840: #endif // !UNICODE
        !          1841: 
        !          1842: DWORD
        !          1843: APIENTRY
        !          1844: CharUpperBuffA(
        !          1845:     NEXTCOUNT IN LPSTR,
        !          1846:     IN DWORD
        !          1847:     );
        !          1848: DWORD
        !          1849: APIENTRY
        !          1850: CharUpperBuffW(
        !          1851:     NEXTCOUNT IN LPWSTR,
        !          1852:     IN DWORD
        !          1853:     );
        !          1854: #ifdef UNICODE
        !          1855: #define CharUpperBuff CharUpperBuffW
        !          1856: #else
        !          1857: #define CharUpperBuff CharUpperBuffA
        !          1858: #endif // !UNICODE
        !          1859: 
        !          1860: LPSTR
        !          1861: APIENTRY
        !          1862: CharLowerA(
        !          1863:     IN LPSTR
        !          1864:     );
        !          1865: LPWSTR
        !          1866: APIENTRY
        !          1867: CharLowerW(
        !          1868:     IN LPWSTR
        !          1869:     );
        !          1870: #ifdef UNICODE
        !          1871: #define CharLower CharLowerW
        !          1872: #else
        !          1873: #define CharLower CharLowerA
        !          1874: #endif // !UNICODE
        !          1875: 
        !          1876: DWORD
        !          1877: APIENTRY
        !          1878: CharLowerBuffA(
        !          1879:     NEXTCOUNT IN LPSTR,
        !          1880:     IN DWORD
        !          1881:     );
        !          1882: DWORD
        !          1883: APIENTRY
        !          1884: CharLowerBuffW(
        !          1885:     NEXTCOUNT IN LPWSTR,
        !          1886:     IN DWORD
        !          1887:     );
        !          1888: #ifdef UNICODE
        !          1889: #define CharLowerBuff CharLowerBuffW
        !          1890: #else
        !          1891: #define CharLowerBuff CharLowerBuffA
        !          1892: #endif // !UNICODE
        !          1893: 
        !          1894: LPSTR
        !          1895: APIENTRY
        !          1896: CharNextA(
        !          1897:     IN LPSTR
        !          1898:     );
        !          1899: LPWSTR
        !          1900: APIENTRY
        !          1901: CharNextW(
        !          1902:     IN LPWSTR
        !          1903:     );
        !          1904: #ifdef UNICODE
        !          1905: #define CharNext CharNextW
        !          1906: #else
        !          1907: #define CharNext CharNextA
        !          1908: #endif // !UNICODE
        !          1909: 
        !          1910: LPSTR
        !          1911: APIENTRY
        !          1912: CharPrevA(
        !          1913:     IN LPSTR,
        !          1914:     IN LPSTR
        !          1915:     );
        !          1916: LPWSTR
        !          1917: APIENTRY
        !          1918: CharPrevW(
        !          1919:     IN LPWSTR,
        !          1920:     IN LPWSTR
        !          1921:     );
        !          1922: #ifdef UNICODE
        !          1923: #define CharPrev CharPrevW
        !          1924: #else
        !          1925: #define CharPrev CharPrevA
        !          1926: #endif // !UNICODE
        !          1927: 
        !          1928: /* Compatibility defines for character translation routines */
        !          1929: #define AnsiToOem CharToOemA
        !          1930: #define OemToAnsi OemToCharA
        !          1931: #define AnsiToOemBuff CharToOemBuffA
        !          1932: #define OemToAnsiBuff OemToCharBuffA
        !          1933: #define AnsiUpper CharUpperA
        !          1934: #define AnsiUpperBuff CharUpperBuffA
        !          1935: #define AnsiLower CharLowerA
        !          1936: #define AnsiLowerBuff CharLowerBuffA
        !          1937: #define AnsiNext CharNextA
        !          1938: #define AnsiPrev CharPrevA
        !          1939: 
        !          1940: #ifndef  NOLANGUAGE
        !          1941: /* Language dependent Routines */
        !          1942: 
        !          1943: BOOL
        !          1944: APIENTRY
        !          1945: IsCharAlphaA(
        !          1946:     IN CHAR
        !          1947:     );
        !          1948: BOOL
        !          1949: APIENTRY
        !          1950: IsCharAlphaW(
        !          1951:     IN WCHAR
        !          1952:     );
        !          1953: #ifdef UNICODE
        !          1954: #define IsCharAlpha IsCharAlphaW
        !          1955: #else
        !          1956: #define IsCharAlpha IsCharAlphaA
        !          1957: #endif // !UNICODE
        !          1958: 
        !          1959: BOOL
        !          1960: APIENTRY
        !          1961: IsCharAlphaNumericA(
        !          1962:     IN CHAR
        !          1963:     );
        !          1964: BOOL
        !          1965: APIENTRY
        !          1966: IsCharAlphaNumericW(
        !          1967:     IN WCHAR
        !          1968:     );
        !          1969: #ifdef UNICODE
        !          1970: #define IsCharAlphaNumeric IsCharAlphaNumericW
        !          1971: #else
        !          1972: #define IsCharAlphaNumeric IsCharAlphaNumericA
        !          1973: #endif // !UNICODE
        !          1974: 
        !          1975: BOOL
        !          1976: APIENTRY
        !          1977: IsCharUpperA(
        !          1978:     IN CHAR
        !          1979:     );
        !          1980: BOOL
        !          1981: APIENTRY
        !          1982: IsCharUpperW(
        !          1983:     IN WCHAR
        !          1984:     );
        !          1985: #ifdef UNICODE
        !          1986: #define IsCharUpper IsCharUpperW
        !          1987: #else
        !          1988: #define IsCharUpper IsCharUpperA
        !          1989: #endif // !UNICODE
        !          1990: 
        !          1991: BOOL
        !          1992: APIENTRY
        !          1993: IsCharLowerA(
        !          1994:     IN CHAR
        !          1995:     );
        !          1996: BOOL
        !          1997: APIENTRY
        !          1998: IsCharLowerW(
        !          1999:     IN WCHAR
        !          2000:     );
        !          2001: #ifdef UNICODE
        !          2002: #define IsCharLower IsCharLowerW
        !          2003: #else
        !          2004: #define IsCharLower IsCharLowerA
        !          2005: #endif // !UNICODE
        !          2006: 
        !          2007: #endif
        !          2008: 
        !          2009: HWND APIENTRY CRITICAL XXX SetFocus(IN HWND hWnd OPTIONAL);
        !          2010: HWND APIENTRY CRITICAL GetActiveWindow(void);
        !          2011: HWND APIENTRY CRITICAL GetFocus(void);
        !          2012: SHORT APIENTRY CRITICAL GetKeyState(IN int nVirtKey);
        !          2013: SHORT APIENTRY CRITICAL GetAsyncKeyState(IN int vKey);
        !          2014: BOOL APIENTRY CRITICAL GetKeyboardState(IN OUT PBYTE lpKeyState);
        !          2015: BOOL APIENTRY CRITICAL SetKeyboardState(IN LPBYTE lpKeyState);
        !          2016: 
        !          2017: int
        !          2018: APIENTRY
        !          2019: GetKeyNameTextA(
        !          2020:     IN LONG lParam,
        !          2021:     NEXTCOUNT IN OUT OUTLPSTR lpString,
        !          2022:     IN int nSize
        !          2023:     );
        !          2024: int
        !          2025: APIENTRY
        !          2026: GetKeyNameTextW(
        !          2027:     IN LONG lParam,
        !          2028:     NEXTCOUNT IN OUT OUTLPWSTR lpString,
        !          2029:     IN int nSize
        !          2030:     );
        !          2031: #ifdef UNICODE
        !          2032: #define GetKeyNameText GetKeyNameTextW
        !          2033: #else
        !          2034: #define GetKeyNameText GetKeyNameTextA
        !          2035: #endif // !UNICODE
        !          2036: int APIENTRY CRITICAL ToAscii(IN UINT wVirtKey, IN UINT wScanCode,
        !          2037:         OUT PBYTE lpKeyState, OUT LPWORD lpChar, IN UINT wFlags);
        !          2038: 
        !          2039: SHORT APIENTRY VkKeyScan(IN CHAR cChar);
        !          2040: UINT APIENTRY MapVirtualKey(IN UINT wCode, IN UINT wMapType);
        !          2041: BOOL APIENTRY EnableHardwareInput(BOOL);
        !          2042: BOOL APIENTRY CRITICAL GetInputState(void);
        !          2043: DWORD APIENTRY CRITICAL GetQueueStatus(UINT flags);
        !          2044: HWND APIENTRY CRITICAL GetCapture(void);
        !          2045: HWND APIENTRY CRITICAL SetCapture(IN HWND hWnd OPTIONAL);
        !          2046: BOOL APIENTRY CRITICAL ReleaseCapture(void);
        !          2047: DWORD APIENTRY CRITICAL XXX MsgWaitForMultipleObjects(IN DWORD nCount,
        !          2048:         PREVCOUNT IN LPHANDLE pHandles, IN BOOL fWaitAll,
        !          2049:         IN DWORD dwMilliseconds, IN DWORD dwWakeMask);
        !          2050: 
        !          2051: /* Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects() */
        !          2052: #define QS_KEY           0x01
        !          2053: #define QS_MOUSEMOVE     0x02
        !          2054: #define QS_MOUSEBUTTON   0x04
        !          2055: #define QS_MOUSE         (QS_MOUSEMOVE | QS_MOUSEBUTTON)
        !          2056: #define QS_POSTMESSAGE   0x08
        !          2057: #define QS_TIMER         0x10
        !          2058: #define QS_PAINT         0x20
        !          2059: #define QS_SENDMESSAGE   0x40
        !          2060: #define QS_HOTKEY        0x80
        !          2061: #define QS_SETFOREGROUND (QS_HOTKEY | 0x0100)
        !          2062: #define QS_INPUT         (QS_MOUSE | QS_KEY)
        !          2063: #define QS_ALLEVENTS     (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY)
        !          2064: 
        !          2065: 
        !          2066: UINT APIENTRY GetSysInputMode(void);
        !          2067: 
        !          2068: /* GetSysInputMode return values */
        !          2069: #define IMD_NONE                0
        !          2070: #define IMD_MENU                1
        !          2071: #define IMD_DIALOGBOX           2
        !          2072: #define IMD_NEXTWINDOW          3
        !          2073: #define IMD_SCROLLBAR           4
        !          2074: #define IMD_TITLEBUTTONTRACK    5
        !          2075: #define IMD_MOVESIZETRACK       6
        !          2076: #define IMD_SYSERRDLG           7
        !          2077: #define IMD_DRAGOBJECT          8
        !          2078: #define IMD_DRAGDETECT          9
        !          2079: 
        !          2080: 
        !          2081: /* Windows Functions */
        !          2082: UINT APIENTRY CRITICAL SetTimer(IN HWND hwnd OPTIONAL, IN UINT nIDEvent, IN UINT wElapse, IN WNDPROC lpTimerFunc OPTIONAL);
        !          2083: BOOL APIENTRY CRITICAL KillTimer(IN HWND hWnd OPTIONAL, IN UINT nIDEvent);
        !          2084: 
        !          2085: BOOL APIENTRY CRITICAL XXX EnableWindow(IN HWND hWnd, IN BOOL bEnable);
        !          2086: BOOL APIENTRY CRITICAL IsWindowEnabled(IN HWND hWnd);
        !          2087: 
        !          2088: HANDLE
        !          2089: APIENTRY CRITICAL
        !          2090: LoadAcceleratorsA(
        !          2091:     IN HANDLE hInstance,
        !          2092:     IN LPSTRID lpTableName
        !          2093:     );
        !          2094: HANDLE
        !          2095: APIENTRY CRITICAL
        !          2096: LoadAcceleratorsW(
        !          2097:     IN HANDLE hInstance,
        !          2098:     IN LPWSTRID lpTableName
        !          2099:     );
        !          2100: #ifdef UNICODE
        !          2101: #define LoadAccelerators LoadAcceleratorsW
        !          2102: #else
        !          2103: #define LoadAccelerators LoadAcceleratorsA
        !          2104: #endif // !UNICODE
        !          2105: 
        !          2106: HACCEL APIENTRY CRITICAL CreateAcceleratorTable(NEXTCOUNT IN LPACCEL, IN int);
        !          2107: BOOL   APIENTRY CRITICAL DestroyAcceleratorTable(IN HACCEL);
        !          2108: int    APIENTRY CRITICAL CopyAcceleratorTable(IN HACCEL, NEXTCOUNT OUT LPACCEL OPTIONAL, IN int);
        !          2109: 
        !          2110: #ifndef NOMSG
        !          2111: int  APIENTRY CRITICAL XXX TranslateAccelerator(IN HWND hWnd, IN HACCEL hAccTable, IN LPMSG lpMsg);
        !          2112: #endif
        !          2113: 
        !          2114: #ifndef NOSYSMETRICS
        !          2115: 
        !          2116: /* GetSystemMetrics() codes */
        !          2117: #define SM_CXSCREEN         0
        !          2118: #define SM_CYSCREEN         1
        !          2119: #define SM_CXVSCROLL        2
        !          2120: #define SM_CYHSCROLL        3
        !          2121: #define SM_CYCAPTION        4
        !          2122: #define SM_CXBORDER         5
        !          2123: #define SM_CYBORDER         6
        !          2124: #define SM_CXDLGFRAME       7
        !          2125: #define SM_CYDLGFRAME       8
        !          2126: #define SM_CYVTHUMB         9
        !          2127: #define SM_CXHTHUMB         10
        !          2128: #define SM_CXICON           11
        !          2129: #define SM_CYICON           12
        !          2130: #define SM_CXCURSOR         13
        !          2131: #define SM_CYCURSOR         14
        !          2132: #define SM_CYMENU           15
        !          2133: #define SM_CXFULLSCREEN     16
        !          2134: #define SM_CYFULLSCREEN     17
        !          2135: #define SM_CYKANJIWINDOW    18
        !          2136: #define SM_MOUSEPRESENT     19
        !          2137: #define SM_CYVSCROLL        20
        !          2138: #define SM_CXHSCROLL        21
        !          2139: #define SM_DEBUG            22
        !          2140: #define SM_SWAPBUTTON       23
        !          2141: #define SM_RESERVED1        24
        !          2142: #define SM_RESERVED2        25
        !          2143: #define SM_RESERVED3        26
        !          2144: #define SM_RESERVED4        27
        !          2145: #define SM_CXMIN            28
        !          2146: #define SM_CYMIN            29
        !          2147: #define SM_CXSIZE           30
        !          2148: #define SM_CYSIZE           31
        !          2149: #define SM_CXFRAME          32
        !          2150: #define SM_CYFRAME          33
        !          2151: #define SM_CXMINTRACK       34
        !          2152: #define SM_CYMINTRACK       35
        !          2153: #define SM_CXDOUBLECLK       36
        !          2154: #define SM_CYDOUBLECLK       37
        !          2155: #define SM_CXICONSPACING     38
        !          2156: #define SM_CYICONSPACING     39
        !          2157: #define SM_MENUDROPALIGNMENT 40
        !          2158: #define SM_PENWINDOWS        41
        !          2159: #define SM_CMOUSEBUTTONS     42
        !          2160: #define SM_SECURE            43
        !          2161: 
        !          2162: #define SM_CMETRICS          44
        !          2163: 
        !          2164: int APIENTRY CRITICAL GetSystemMetrics(IN int nIndex);
        !          2165: 
        !          2166: #endif /* NOSYSMETRICS */
        !          2167: 
        !          2168: #ifndef NOMENUS
        !          2169: 
        !          2170: HMENU
        !          2171: APIENTRY CRITICAL
        !          2172: LoadMenuA(
        !          2173:     IN HANDLE hInstance,
        !          2174:     IN LPSTRID lpMenuName
        !          2175:     );
        !          2176: HMENU
        !          2177: APIENTRY CRITICAL
        !          2178: LoadMenuW(
        !          2179:     IN HANDLE hInstance,
        !          2180:     IN LPWSTRID lpMenuName
        !          2181:     );
        !          2182: #ifdef UNICODE
        !          2183: #define LoadMenu LoadMenuW
        !          2184: #else
        !          2185: #define LoadMenu LoadMenuA
        !          2186: #endif // !UNICODE
        !          2187: 
        !          2188: HMENU
        !          2189: APIENTRY CRITICAL
        !          2190: LoadMenuIndirectA(
        !          2191:     IN LPMENUTEMPLATEA lpMenuTemplate
        !          2192:     );
        !          2193: HMENU
        !          2194: APIENTRY CRITICAL
        !          2195: LoadMenuIndirectW(
        !          2196:     IN LPMENUTEMPLATEW lpMenuTemplate
        !          2197:     );
        !          2198: #ifdef UNICODE
        !          2199: #define LoadMenuIndirect LoadMenuIndirectW
        !          2200: #else
        !          2201: #define LoadMenuIndirect LoadMenuIndirectA
        !          2202: #endif // !UNICODE
        !          2203: 
        !          2204: HMENU APIENTRY CRITICAL GetMenu(IN HWND hWnd);
        !          2205: BOOL  APIENTRY CRITICAL XXX SetMenu(IN HWND hWnd, IN HMENU hMenu OPTIONAL);
        !          2206: BOOL  APIENTRY CRITICAL ChangeMenu(IN HMENU, IN UINT, IN CHNGMENUPOLY OPTIONAL, IN UINT, IN UINT);
        !          2207: BOOL  APIENTRY CRITICAL XXX HiliteMenuItem(IN HWND hWnd, IN HMENU hMenu, IN UINT wIDHiliteItem, IN UINT wHilite);
        !          2208: 
        !          2209: int
        !          2210: APIENTRY CRITICAL
        !          2211: GetMenuStringA(
        !          2212:     IN HMENU hMenu,
        !          2213:     IN UINT wIDItem,
        !          2214:     NEXTCOUNT IN OUT OUTLPSTR lpString,
        !          2215:     IN int nMaxCount,
        !          2216:     IN DWORD wFlag
        !          2217:     );
        !          2218: int
        !          2219: APIENTRY CRITICAL
        !          2220: GetMenuStringW(
        !          2221:     IN HMENU hMenu,
        !          2222:     IN UINT wIDItem,
        !          2223:     NEXTCOUNT IN OUT OUTLPWSTR lpString,
        !          2224:     IN int nMaxCount,
        !          2225:     IN DWORD wFlag
        !          2226:     );
        !          2227: #ifdef UNICODE
        !          2228: #define GetMenuString GetMenuStringW
        !          2229: #else
        !          2230: #define GetMenuString GetMenuStringA
        !          2231: #endif // !UNICODE
        !          2232: 
        !          2233: UINT APIENTRY CRITICAL GetMenuState(IN HMENU hMenu, IN UINT wId, IN UINT wFlags);
        !          2234: BOOL  APIENTRY CRITICAL XXX DrawMenuBar(IN HWND hWnd);
        !          2235: HMENU APIENTRY CRITICAL GetSystemMenu(IN HWND hWnd, IN BOOL bRevert);
        !          2236: HMENU APIENTRY CRITICAL CreateMenu(void);
        !          2237: HMENU APIENTRY CRITICAL CreatePopupMenu(void);
        !          2238: BOOL  APIENTRY CRITICAL DestroyMenu(IN HMENU hMenu);
        !          2239: BOOL  APIENTRY CRITICAL CheckMenuItem(IN HMENU hMenu, IN UINT wIDCheckItem, IN UINT wCheck);
        !          2240: BOOL  APIENTRY CRITICAL EnableMenuItem(IN HMENU hMenu, IN UINT wIDEnableItem, IN UINT wEnable);
        !          2241: HMENU APIENTRY CRITICAL GetSubMenu(IN HMENU hMenu, IN int nPos);
        !          2242: UINT APIENTRY CRITICAL GetMenuItemID(IN HMENU hMenu, IN int nPos);
        !          2243: UINT APIENTRY CRITICAL GetMenuItemCount(IN HMENU hMenu);
        !          2244: 
        !          2245: BOOL
        !          2246: APIENTRY CRITICAL
        !          2247: InsertMenuA(
        !          2248:     IN HMENU hMenu,
        !          2249:     IN UINT nPosition,
        !          2250:     IN UINT dwFlags,
        !          2251:     IN UINT wIDNewItem,
        !          2252:     IN MENUPOLYA lpNewItem OPTIONAL
        !          2253:     );
        !          2254: BOOL
        !          2255: APIENTRY CRITICAL
        !          2256: InsertMenuW(
        !          2257:     IN HMENU hMenu,
        !          2258:     IN UINT nPosition,
        !          2259:     IN UINT dwFlags,
        !          2260:     IN UINT wIDNewItem,
        !          2261:     IN MENUPOLYW lpNewItem OPTIONAL
        !          2262:     );
        !          2263: #ifdef UNICODE
        !          2264: #define InsertMenu InsertMenuW
        !          2265: #else
        !          2266: #define InsertMenu InsertMenuA
        !          2267: #endif // !UNICODE
        !          2268: 
        !          2269: BOOL
        !          2270: APIENTRY CRITICAL
        !          2271: AppendMenuA(
        !          2272:     IN HMENU hMenu,
        !          2273:     IN UINT dwFlags,
        !          2274:     IN UINT wIDNewItem,
        !          2275:     IN MENUPOLYA lpNewItem OPTIONAL
        !          2276:     );
        !          2277: BOOL
        !          2278: APIENTRY CRITICAL
        !          2279: AppendMenuW(
        !          2280:     IN HMENU hMenu,
        !          2281:     IN UINT dwFlags,
        !          2282:     IN UINT wIDNewItem,
        !          2283:     IN MENUPOLYW lpNewItem OPTIONAL
        !          2284:     );
        !          2285: #ifdef UNICODE
        !          2286: #define AppendMenu AppendMenuW
        !          2287: #else
        !          2288: #define AppendMenu AppendMenuA
        !          2289: #endif // !UNICODE
        !          2290: 
        !          2291: BOOL
        !          2292: APIENTRY CRITICAL
        !          2293: ModifyMenuA(
        !          2294:     IN HMENU hMnu,
        !          2295:     IN UINT nPosition,
        !          2296:     IN UINT dwFlags,
        !          2297:     IN UINT wIDNewItem,
        !          2298:     IN MENUPOLYA lpNewItem OPTIONAL
        !          2299:     );
        !          2300: BOOL
        !          2301: APIENTRY CRITICAL
        !          2302: ModifyMenuW(
        !          2303:     IN HMENU hMnu,
        !          2304:     IN UINT nPosition,
        !          2305:     IN UINT dwFlags,
        !          2306:     IN UINT wIDNewItem,
        !          2307:     IN MENUPOLYW lpNewItem OPTIONAL
        !          2308:     );
        !          2309: #ifdef UNICODE
        !          2310: #define ModifyMenu ModifyMenuW
        !          2311: #else
        !          2312: #define ModifyMenu ModifyMenuA
        !          2313: #endif // !UNICODE
        !          2314: 
        !          2315: BOOL  APIENTRY CRITICAL RemoveMenu(IN HMENU hMenu, IN UINT nPosition, IN UINT dwFlags);
        !          2316: BOOL  APIENTRY CRITICAL DeleteMenu(IN HMENU hMenu, IN UINT nPosition, IN UINT dwFlags);
        !          2317: BOOL  APIENTRY CRITICAL SetMenuItemBitmaps(IN HMENU hMenu, IN UINT nPosition,
        !          2318:         IN DWORD dwFlags, IN HBITMAP hBitmapUnchecked, IN HBITMAP hBitmapChecked);
        !          2319: LONG  APIENTRY CRITICAL GetMenuCheckMarkDimensions(void);
        !          2320: BOOL  APIENTRY CRITICAL XXX TrackPopupMenu(IN HMENU hMenu, IN UINT dwFlags,
        !          2321:         IN int x, IN int y, IN int nReserved, IN HWND hWnd, IN LPVOID lpReserved);
        !          2322: 
        !          2323: /* Flags for TrackPopupMenu */
        !          2324: #define TPM_LEFTBUTTON  0x0000L
        !          2325: #define TPM_RIGHTBUTTON 0x0002L
        !          2326: #define TPM_LEFTALIGN   0x0000L
        !          2327: #define TPM_CENTERALIGN 0x0004L
        !          2328: #define TPM_RIGHTALIGN  0x0008L
        !          2329: 
        !          2330: #endif /* NOMENUS */
        !          2331: 
        !          2332: BOOL APIENTRY CRITICAL DrawIcon(IN HDC, IN int, IN int, IN HICON);
        !          2333: 
        !          2334: int
        !          2335: APIENTRY CRITICAL DrawTextA(
        !          2336:     IN HDC hDC,
        !          2337:     NEXTCOUNT IN LPSTR2 lpString,
        !          2338:     IN int nCount,
        !          2339:     IN OUT LPRECT lpRect,
        !          2340:     IN UINT wFormat
        !          2341:     );
        !          2342: int
        !          2343: APIENTRY CRITICAL DrawTextW(
        !          2344:     IN HDC hDC,
        !          2345:     NEXTCOUNT IN LPWSTR2 lpString,
        !          2346:     IN int nCount,
        !          2347:     IN OUT LPRECT lpRect,
        !          2348:     IN UINT wFormat
        !          2349:     );
        !          2350: #ifdef UNICODE
        !          2351: #define DrawText DrawTextW
        !          2352: #else
        !          2353: #define DrawText DrawTextA
        !          2354: #endif // !UNICODE
        !          2355: 
        !          2356: BOOL APIENTRY GrayString(IN HDC hDC, IN HBRUSH hBrush, IN FARPROC lpOutputFunc,
        !          2357:         IN GSPOLY lpData, IN int nCount, IN int X, IN int Y,
        !          2358:         IN int nWidth, IN int nHeight);
        !          2359: 
        !          2360: LONG
        !          2361: APIENTRY CRITICAL
        !          2362: TabbedTextOutA(
        !          2363:     IN HDC hDC,
        !          2364:     IN int X,
        !          2365:     IN int Y,
        !          2366:     NEXTCOUNT IN LPSTR2 lpString,
        !          2367:     IN int nCount,
        !          2368:     IN int nTabPositions,
        !          2369:     PREVCOUNT IN LPTABS lpnTabStopPositions,
        !          2370:     IN int nTabOrigin
        !          2371:     );
        !          2372: LONG
        !          2373: APIENTRY CRITICAL
        !          2374: TabbedTextOutW(
        !          2375:     IN HDC hDC,
        !          2376:     IN int X,
        !          2377:     IN int Y,
        !          2378:     NEXTCOUNT IN LPWSTR2 lpString,
        !          2379:     IN int nCount,
        !          2380:     IN int nTabPositions,
        !          2381:     PREVCOUNT IN LPTABS lpnTabStopPositions,
        !          2382:     IN int nTabOrigin
        !          2383:     );
        !          2384: #ifdef UNICODE
        !          2385: #define TabbedTextOut TabbedTextOutW
        !          2386: #else
        !          2387: #define TabbedTextOut TabbedTextOutA
        !          2388: #endif // !UNICODE
        !          2389: 
        !          2390: DWORD
        !          2391: APIENTRY CRITICAL
        !          2392: GetTabbedTextExtentA(
        !          2393:     IN HDC hDC,
        !          2394:     NEXTCOUNT IN LPSTR2 lpString,
        !          2395:     IN int nCount,
        !          2396:     IN int nTabPositions,
        !          2397:     PREVCOUNT IN LPTABS lpnTabStopPositions
        !          2398:     );
        !          2399: DWORD
        !          2400: APIENTRY CRITICAL
        !          2401: GetTabbedTextExtentW(
        !          2402:     IN HDC hDC,
        !          2403:     NEXTCOUNT IN LPWSTR2 lpString,
        !          2404:     IN int nCount,
        !          2405:     IN int nTabPositions,
        !          2406:     PREVCOUNT IN LPTABS lpnTabStopPositions
        !          2407:     );
        !          2408: #ifdef UNICODE
        !          2409: #define GetTabbedTextExtent GetTabbedTextExtentW
        !          2410: #else
        !          2411: #define GetTabbedTextExtent GetTabbedTextExtentA
        !          2412: #endif // !UNICODE
        !          2413: 
        !          2414: BOOL APIENTRY CRITICAL XXX UpdateWindow(IN HWND hWnd);
        !          2415: HWND APIENTRY CRITICAL XXX SetActiveWindow(IN HWND hWnd OPTIONAL);
        !          2416: 
        !          2417: BOOL APIENTRY CRITICAL XXX SetForegroundWindow(IN HWND hWnd);
        !          2418: 
        !          2419: HWND APIENTRY CRITICAL WindowFromDC(IN HDC hdc);
        !          2420: HDC APIENTRY CRITICAL GetDC(IN HWND hWnd OPTIONAL);
        !          2421: HDC APIENTRY GetDCEx(IN HWND hwnd OPTIONAL, IN HRGN hrgnClip, IN DWORD flags);
        !          2422: 
        !          2423: /* GetDCEx() flags */
        !          2424: #define DCX_WINDOW          0x00000001L
        !          2425: #define DCX_CACHE           0x00000002L
        !          2426: #define DCX_NORESETATTRS    0x00000004L
        !          2427: #define DCX_CLIPCHILDREN    0x00000008L
        !          2428: #define DCX_CLIPSIBLINGS    0x00000010L
        !          2429: #define DCX_PARENTCLIP      0x00000020L
        !          2430: 
        !          2431: #define DCX_EXCLUDERGN      0x00000040L
        !          2432: #define DCX_INTERSECTRGN    0x00000080L
        !          2433: 
        !          2434: #define DCX_EXCLUDEUPDATE   0x00000100L
        !          2435: #define DCX_INTERSECTUPDATE 0x00000200L
        !          2436: 
        !          2437: #define DCX_LOCKWINDOWUPDATE 0x00000400L
        !          2438: 
        !          2439: #define DCX_INVALID         0x00000800L /* ;Internal */
        !          2440: #define DCX_INUSE           0x00001000L /* ;Internal */
        !          2441: #define DCX_SAVEDRGNINVALID 0x00002000L /* ;Internal */
        !          2442: #define DCX_OWNDC           0x00008000L /* ;Internal */
        !          2443: 
        !          2444: #define DCX_USESTYLE        0x00010000L
        !          2445: #define DCX_NEEDFONT        0x00020000L /* ;Internal */
        !          2446: #define DCX_NODELETERGN     0x00040000L /* ;Internal */
        !          2447: #define DCX_NOCLIPCHILDREN  0x00080000L /* ;Internal */
        !          2448: #define DCX_NORECOMPUTE     0x00100000L
        !          2449: #define DCX_VALIDATE        0x00200000L
        !          2450: 
        !          2451: #define DCX_MATCHMASK (DCX_WINDOW | DCX_CACHE |                /* ;Internal */ \
        !          2452:                       DCX_CLIPCHILDREN | DCX_CLIPSIBLINGS |    /* ;Internal */ \
        !          2453:                       DCX_NORESETATTRS | DCX_LOCKWINDOWUPDATE) /* ;Internal */
        !          2454: 
        !          2455: HDC APIENTRY CRITICAL GetWindowDC(IN HWND hWnd OPTIONAL);
        !          2456: int APIENTRY CRITICAL ReleaseDC(IN HWND hWnd OPTIONAL, IN HDC hDC);
        !          2457: 
        !          2458: HDC  APIENTRY CRITICAL XXX BeginPaint(IN HWND hWnd, OUT LPPAINTSTRUCT lpPaint);
        !          2459: BOOL APIENTRY CRITICAL EndPaint(IN HWND hWnd, IN LPPAINTSTRUCT lpPaint);
        !          2460: BOOL APIENTRY CRITICAL XXX GetUpdateRect(IN HWND hWnd, OUT LPRECT lpRect,
        !          2461:         IN BOOL bErase);
        !          2462: int  APIENTRY CRITICAL XXX GetUpdateRgn(IN HWND hWnd, IN HRGN hRgn,
        !          2463:         IN BOOL bErase);
        !          2464: 
        !          2465: int  APIENTRY CRITICAL ExcludeUpdateRgn(IN HDC hDC, IN HWND hWnd);
        !          2466: 
        !          2467: BOOL APIENTRY CRITICAL XXX InvalidateRect(IN HWND hWnd OPTIONAL,
        !          2468:         IN LPRECT lpRect OPTIONAL, IN BOOL bErase);
        !          2469: BOOL APIENTRY CRITICAL XXX ValidateRect(IN HWND hWnd OPTIONAL,
        !          2470:         IN LPRECT lpRect OPTIONAL);
        !          2471: 
        !          2472: BOOL APIENTRY CRITICAL InvalidateRgn(IN HWND hWnd, IN HRGN hRgn OPTIONAL,
        !          2473:         IN BOOL bErase);
        !          2474: BOOL APIENTRY CRITICAL ValidateRgn(IN HWND hWnd, IN HRGN hRgn OPTIONAL);
        !          2475: 
        !          2476: 
        !          2477: BOOL APIENTRY CRITICAL XXX RedrawWindow(IN HWND hwnd,
        !          2478:         IN LPRECT lprcUpdate OPTIONAL, IN HRGN hrgnUpdate, IN WORD flags);
        !          2479: 
        !          2480: /* RedrawWindow() flags */
        !          2481: #define RDW_INVALIDATE          0x0001
        !          2482: #define RDW_INTERNALPAINT       0x0002
        !          2483: #define RDW_ERASE               0x0004
        !          2484: 
        !          2485: #define RDW_VALIDATE            0x0008
        !          2486: #define RDW_NOINTERNALPAINT     0x0010
        !          2487: #define RDW_NOERASE             0x0020
        !          2488: 
        !          2489: #define RDW_NOCHILDREN          0x0040
        !          2490: #define RDW_ALLCHILDREN         0x0080
        !          2491: 
        !          2492: #define RDW_UPDATENOW           0x0100
        !          2493: #define RDW_ERASENOW            0x0200
        !          2494: 
        !          2495: #define RDW_FRAME               0x0400  /* Set WFSENDNCPAINT   */       /* ;Internal */
        !          2496: #define RDW_NOFRAME             0x0800  /* Clear WFSENDNCPAINT */       /* ;Internal */
        !          2497:                                                                         /* ;Internal */
        !          2498: #define RDW_REDRAWWINDOW        0x1000  /* Called from RedrawWindow()*/ /* ;Internal */
        !          2499: #define RDW_SUBTRACTSELF        0x2000  /* Subtract self from hrgn   */ /* ;Internal */
        !          2500:                                                                         /* ;Internal */
        !          2501: #define RDW_COPYRGN             0x4000  /* Copy the passed-in region */ /* ;Internal */
        !          2502:                                                                         /* ;Internal */
        !          2503: #define RDW_VALIDMASK           (RDW_INVALIDATE | RDW_INTERNALPAINT |   /* ;Internal */ \
        !          2504:                                 RDW_ERASE | RDW_VALIDATE |              /* ;Internal */ \
        !          2505:                                 RDW_NOINTERNALPAINT | RDW_NOERASE |     /* ;Internal */ \
        !          2506:                                 RDW_NOCHILDREN | RDW_ALLCHILDREN |      /* ;Internal */ \
        !          2507:                                 RDW_UPDATENOW | RDW_ERASENOW | RDW_COPYRGN) /* ;Internal */
        !          2508: 
        !          2509: /* LockWindowUpdate API */
        !          2510: BOOL APIENTRY CRITICAL LockWindowUpdate(HWND hwndLock);
        !          2511: 
        !          2512: BOOL APIENTRY CRITICAL XXX ScrollWindow(IN HWND hWnd, IN int XAmount,
        !          2513:         IN int YAmount, IN LPRECT lpRect OPTIONAL,
        !          2514:         IN LPRECT lpClipRect OPTIONAL);
        !          2515: BOOL APIENTRY CRITICAL ScrollDC(IN HDC hDC, IN int dx, IN int dy,
        !          2516:         IN LPRECT lprcScroll, IN LPRECT lprcClip OPTIONAL,
        !          2517:         IN HRGN hrgnUpdate OPTIONAL, OUT LPRECT lprcUpdate OPTIONAL);
        !          2518: int APIENTRY CRITICAL XXX ScrollWindowEx(IN HWND hwnd, IN int dx, IN int dy,
        !          2519:         IN LPRECT prcScroll OPTIONAL, IN LPRECT prcClip OPTIONAL,
        !          2520:         HRGN hrgnUpdate, OUT LPRECT prcUpdate OPTIONAL, IN WORD flags);
        !          2521: 
        !          2522: #define SW_SCROLLCHILDREN   0x0001  /* Scroll children within *lprcScroll. */
        !          2523: #define SW_INVALIDATE       0x0002  /* Invalidate after scrolling */
        !          2524: #define SW_ERASE            0x0004  /* If SW_INVALIDATE, don't send WM_ERASEBACKGROUND */
        !          2525: 
        !          2526: #define SW_SCROLLWINDOW     0x8000  /* Called from ScrollWindow() */  /* ;Internal */
        !          2527: #define SW_VALIDFLAGS       (SW_SCROLLWINDOW | SW_SCROLLCHILDREN | SW_INVALIDATE | SW_ERASE) /* ;Internal */
        !          2528: 
        !          2529: #ifndef NOSCROLL
        !          2530: int  APIENTRY CRITICAL XXX SetScrollPos(IN HWND hWnd, IN int nBar, IN int nPos, IN BOOL bRedraw);
        !          2531: int  APIENTRY CRITICAL XXX GetScrollPos(IN HWND hWnd, IN int nBar);
        !          2532: BOOL APIENTRY CRITICAL XXX SetScrollRange(IN HWND hWnd, IN int nBar, IN int nMinPos, IN int nMaxPos, IN BOOL bRedraw);
        !          2533: BOOL APIENTRY CRITICAL XXX GetScrollRange(IN HWND hWnd, IN int nBar, OUT LPINT lpMinPos, OUT LPINT lpMaxPos);
        !          2534: BOOL APIENTRY CRITICAL XXX ShowScrollBar(IN HWND hWnd, IN UINT wBar, IN BOOL bShow);
        !          2535: #endif
        !          2536: 
        !          2537: BOOL
        !          2538: APIENTRY CRITICAL
        !          2539: SetPropA(
        !          2540:     IN HWND hWnd,
        !          2541:     IN LPSTRID lpString,
        !          2542:     IN HANDLE hData
        !          2543:     );
        !          2544: BOOL
        !          2545: APIENTRY CRITICAL
        !          2546: SetPropW(
        !          2547:     IN HWND hWnd,
        !          2548:     IN LPWSTRID lpString,
        !          2549:     IN HANDLE hData
        !          2550:     );
        !          2551: #ifdef UNICODE
        !          2552: #define SetProp SetPropW
        !          2553: #else
        !          2554: #define SetProp SetPropA
        !          2555: #endif // !UNICODE
        !          2556: 
        !          2557: HANDLE
        !          2558: APIENTRY CRITICAL
        !          2559: GetPropA(
        !          2560:     IN HWND hWnd,
        !          2561:     IN LPSTRID lpString
        !          2562:     );
        !          2563: HANDLE
        !          2564: APIENTRY CRITICAL
        !          2565: GetPropW(
        !          2566:     IN HWND hWnd,
        !          2567:     IN LPWSTRID lpString
        !          2568:     );
        !          2569: #ifdef UNICODE
        !          2570: #define GetProp GetPropW
        !          2571: #else
        !          2572: #define GetProp GetPropA
        !          2573: #endif // !UNICODE
        !          2574: 
        !          2575: HANDLE
        !          2576: APIENTRY CRITICAL
        !          2577: RemovePropA(
        !          2578:     IN HWND hWnd,
        !          2579:     IN LPSTRID lpString
        !          2580:     );
        !          2581: HANDLE
        !          2582: APIENTRY CRITICAL
        !          2583: RemovePropW(
        !          2584:     IN HWND hWnd,
        !          2585:     IN LPWSTRID lpString
        !          2586:     );
        !          2587: #ifdef UNICODE
        !          2588: #define RemoveProp RemovePropW
        !          2589: #else
        !          2590: #define RemoveProp RemovePropA
        !          2591: #endif // !UNICODE
        !          2592: 
        !          2593: int
        !          2594: APIENTRY CRITICAL
        !          2595: EnumPropsExA(
        !          2596:     IN HWND hWnd,
        !          2597:     IN FARPROC lpEnumFunc,
        !          2598:     IN DWORD lParam
        !          2599:     );
        !          2600: int
        !          2601: APIENTRY CRITICAL
        !          2602: EnumPropsExW(
        !          2603:     IN HWND hWnd,
        !          2604:     IN FARPROC lpEnumFunc,
        !          2605:     IN DWORD lParam
        !          2606:     );
        !          2607: #ifdef UNICODE
        !          2608: #define EnumPropsEx EnumPropsExW
        !          2609: #else
        !          2610: #define EnumPropsEx EnumPropsExA
        !          2611: #endif // !UNICODE
        !          2612: 
        !          2613: int
        !          2614: APIENTRY CRITICAL
        !          2615: EnumPropsA(
        !          2616:     IN HWND hWnd,
        !          2617:     IN FARPROC lpEnumFunc
        !          2618:     );
        !          2619: int
        !          2620: APIENTRY CRITICAL
        !          2621: EnumPropsW(
        !          2622:     IN HWND hWnd,
        !          2623:     IN FARPROC lpEnumFunc
        !          2624:     );
        !          2625: #ifdef UNICODE
        !          2626: #define EnumProps EnumPropsW
        !          2627: #else
        !          2628: #define EnumProps EnumPropsA
        !          2629: #endif // !UNICODE
        !          2630: 
        !          2631: BOOL
        !          2632: APIENTRY CRITICAL XXX
        !          2633: SetWindowTextA(
        !          2634:     IN HWND hWnd,
        !          2635:     IN LPSTR lpString OPTIONAL
        !          2636:     );
        !          2637: BOOL
        !          2638: APIENTRY CRITICAL XXX
        !          2639: SetWindowTextW(
        !          2640:     IN HWND hWnd,
        !          2641:     IN LPWSTR lpString OPTIONAL
        !          2642:     );
        !          2643: #ifdef UNICODE
        !          2644: #define SetWindowText SetWindowTextW
        !          2645: #else
        !          2646: #define SetWindowText SetWindowTextA
        !          2647: #endif // !UNICODE
        !          2648: 
        !          2649: int
        !          2650: APIENTRY CRITICAL XXX
        !          2651: GetWindowTextA(
        !          2652:     IN HWND hWnd,
        !          2653:     NEXTCOUNT IN OUT OUTLPSTR lpString,
        !          2654:     IN int nMaxCount
        !          2655:     );
        !          2656: int
        !          2657: APIENTRY CRITICAL XXX
        !          2658: GetWindowTextW(
        !          2659:     IN HWND hWnd,
        !          2660:     NEXTCOUNT IN OUT OUTLPWSTR lpString,
        !          2661:     IN int nMaxCount
        !          2662:     );
        !          2663: #ifdef UNICODE
        !          2664: #define GetWindowText GetWindowTextW
        !          2665: #else
        !          2666: #define GetWindowText GetWindowTextA
        !          2667: #endif // !UNICODE
        !          2668: 
        !          2669: int    APIENTRY CRITICAL XXX GetWindowTextLength(IN HWND hWnd);
        !          2670: 
        !          2671: BOOL APIENTRY CRITICAL GetClientRect(IN HWND hWnd, OUT LPRECT lpRect);
        !          2672: BOOL APIENTRY CRITICAL GetWindowRect(IN HWND hWnd, OUT LPRECT lpRect);
        !          2673: BOOL APIENTRY CRITICAL AdjustWindowRect(IN OUT LPRECT lpRect, IN LONG dwStyle, IN BOOL bMenu);
        !          2674: BOOL APIENTRY CRITICAL AdjustWindowRectEx(IN OUT LPRECT lpRect, IN LONG dwStyle, IN BOOL bMenu, IN DWORD dwExStyle);
        !          2675: 
        !          2676: #ifndef NOMB
        !          2677: 
        !          2678: /* MessageBox() Flags */
        !          2679: #define MB_OK               0x0000L
        !          2680: #define MB_OKCANCEL         0x0001L
        !          2681: #define MB_ABORTRETRYIGNORE 0x0002L
        !          2682: #define MB_YESNOCANCEL      0x0003L
        !          2683: #define MB_YESNO            0x0004L
        !          2684: #define MB_RETRYCANCEL      0x0005L
        !          2685: 
        !          2686: #define MB_ICONHAND         0x0010L
        !          2687: #define MB_ICONQUESTION     0x0020L
        !          2688: #define MB_ICONEXCLAMATION  0x0030L
        !          2689: #define MB_ICONASTERISK     0x0040L
        !          2690: 
        !          2691: #define MB_ICONINFORMATION  MB_ICONASTERISK
        !          2692: #define MB_ICONSTOP         MB_ICONHAND
        !          2693: 
        !          2694: #define MB_DEFBUTTON1       0x0000L
        !          2695: #define MB_DEFBUTTON2       0x0100L
        !          2696: #define MB_DEFBUTTON3       0x0200L
        !          2697: 
        !          2698: #define MB_APPLMODAL        0x0000L
        !          2699: #define MB_SYSTEMMODAL      0x1000L
        !          2700: #define MB_TASKMODAL        0x2000L
        !          2701: 
        !          2702: #define MB_NOFOCUS          0x8000L
        !          2703: #define MB_SETFOREGROUND   0x10000L
        !          2704: 
        !          2705: #define MB_TYPEMASK         0x000FL
        !          2706: #define MB_ICONMASK         0x00F0L
        !          2707: #define MB_DEFMASK          0x0F00L
        !          2708: #define MB_MODEMASK         0x3000L
        !          2709: #define MB_MISCMASK         0xC000L
        !          2710: 
        !          2711: int
        !          2712: APIENTRY CRITICAL XXX
        !          2713: MessageBoxA(
        !          2714:     IN HWND hWnd OPTIONAL,
        !          2715:     IN LPSTR lpText,
        !          2716:     IN LPSTR lpCaption OPTIONAL,
        !          2717:     IN UINT wType
        !          2718:     );
        !          2719: int
        !          2720: APIENTRY CRITICAL XXX
        !          2721: MessageBoxW(
        !          2722:     IN HWND hWnd OPTIONAL,
        !          2723:     IN LPWSTR lpText,
        !          2724:     IN LPWSTR lpCaption OPTIONAL,
        !          2725:     IN UINT wType
        !          2726:     );
        !          2727: #ifdef UNICODE
        !          2728: #define MessageBox MessageBoxW
        !          2729: #else
        !          2730: #define MessageBox MessageBoxA
        !          2731: #endif // !UNICODE
        !          2732: 
        !          2733: BOOL APIENTRY CRITICAL MessageBeep(IN UINT wType);
        !          2734: 
        !          2735: #endif /* NOMB */
        !          2736: 
        !          2737: int     APIENTRY CRITICAL ShowCursor(IN BOOL bShow);
        !          2738: BOOL    APIENTRY CRITICAL SetCursorPos(IN int X, IN int Y);
        !          2739: HCURSOR APIENTRY CRITICAL SetCursor(IN HCURSOR hCursor OPTIONAL);
        !          2740: BOOL    APIENTRY CRITICAL GetCursorPos(OUT LPPOINT lpPoint);
        !          2741: BOOL    APIENTRY CRITICAL ClipCursor(IN LPRECT lpRect OPTIONAL);
        !          2742: BOOL    APIENTRY CRITICAL GetClipCursor(OUT LPRECT lpRect);
        !          2743: 
        !          2744: BOOL APIENTRY CRITICAL CreateCaret(IN HWND hWnd, IN HBITMAP hBitmap OPTIONAL,
        !          2745:         IN int nWidth, IN int nHeight);
        !          2746: UINT APIENTRY CRITICAL GetCaretBlinkTime(void);
        !          2747: BOOL APIENTRY CRITICAL SetCaretBlinkTime(IN UINT wMSeconds);
        !          2748: BOOL APIENTRY CRITICAL DestroyCaret(void);
        !          2749: BOOL APIENTRY CRITICAL HideCaret(IN HWND hWnd OPTIONAL);
        !          2750: BOOL APIENTRY CRITICAL ShowCaret(IN HWND hWnd OPTIONAL);
        !          2751: BOOL APIENTRY CRITICAL SetCaretPos(IN int X, IN int Y);
        !          2752: BOOL APIENTRY CRITICAL GetCaretPos(OUT LPPOINT lpPoint);
        !          2753: 
        !          2754: BOOL APIENTRY CRITICAL ClientToScreen(IN HWND hWnd, IN OUT LPPOINT lpPoint);
        !          2755: BOOL APIENTRY CRITICAL ScreenToClient(IN HWND hWnd, IN OUT LPPOINT lpPoint);
        !          2756: HWND APIENTRY CRITICAL XXX WindowFromPoint(IN POINT Point);
        !          2757: HWND APIENTRY CRITICAL ChildWindowFromPoint(IN HWND hWndParent, IN POINT Point);
        !          2758: 
        !          2759: #ifndef NOCOLOR
        !          2760: 
        !          2761: /* Color Types */
        !          2762: #define CTLCOLOR_MSGBOX         0
        !          2763: #define CTLCOLOR_EDIT           1
        !          2764: #define CTLCOLOR_LISTBOX        2
        !          2765: #define CTLCOLOR_BTN            3
        !          2766: #define CTLCOLOR_DLG            4
        !          2767: #define CTLCOLOR_SCROLLBAR      5
        !          2768: #define CTLCOLOR_STATIC         6
        !          2769: #define CTLCOLOR_MAX            8     /* three bits max */
        !          2770: 
        !          2771: #define COLOR_SCROLLBAR         0
        !          2772: #define COLOR_BACKGROUND        1
        !          2773: #define COLOR_ACTIVECAPTION     2
        !          2774: #define COLOR_INACTIVECAPTION   3
        !          2775: #define COLOR_MENU              4
        !          2776: #define COLOR_WINDOW            5
        !          2777: #define COLOR_WINDOWFRAME       6
        !          2778: #define COLOR_MENUTEXT          7
        !          2779: #define COLOR_WINDOWTEXT        8
        !          2780: #define COLOR_CAPTIONTEXT       9
        !          2781: #define COLOR_ACTIVEBORDER      10
        !          2782: #define COLOR_INACTIVEBORDER    11
        !          2783: #define COLOR_APPWORKSPACE      12
        !          2784: #define COLOR_HIGHLIGHT         13
        !          2785: #define COLOR_HIGHLIGHTTEXT     14
        !          2786: #define COLOR_BTNFACE           15
        !          2787: #define COLOR_BTNSHADOW         16
        !          2788: #define COLOR_GRAYTEXT          17
        !          2789: #define COLOR_BTNTEXT           18
        !          2790: #define COLOR_INACTIVECAPTIONTEXT 19
        !          2791: #define COLOR_BTNHIGHLIGHT      20
        !          2792: #define COLOR_ENDCOLORS         COLOR_BTNHIGHLIGHT
        !          2793: 
        !          2794: DWORD APIENTRY CRITICAL GetSysColor(IN int nIndex);
        !          2795: BOOL  APIENTRY CRITICAL XXX SetSysColors(IN int, IN LPSYSCOLOR, IN LPCOLORVALUES);
        !          2796: 
        !          2797: #endif /* NOCOLOR */
        !          2798: 
        !          2799: BOOL APIENTRY CRITICAL DrawFocusRect(HDC, LPRECT);
        !          2800: int  APIENTRY CRITICAL FillRect(HDC hdc, LPRECT lprc, HBRUSH hbr);
        !          2801: int  APIENTRY CRITICAL FrameRect(IN HDC hdc, IN LPRECT lprc, IN HBRUSH hbr);
        !          2802: BOOL APIENTRY CRITICAL InvertRect(HDC, LPRECT);
        !          2803: BOOL APIENTRY SetRect(LPRECT, int, int, int, int);
        !          2804: BOOL APIENTRY SetRectEmpty(LPRECT);
        !          2805: int  APIENTRY CopyRect(LPRECT, LPRECT);
        !          2806: BOOL APIENTRY InflateRect(LPRECT, int, int);
        !          2807: int  APIENTRY IntersectRect(LPRECT, LPRECT, LPRECT);
        !          2808: BOOL APIENTRY UnionRect(LPRECT, LPRECT, LPRECT);
        !          2809: BOOL APIENTRY OffsetRect(LPRECT, int, int);
        !          2810: BOOL APIENTRY IsRectEmpty(LPRECT);
        !          2811: BOOL APIENTRY EqualRect(LPRECT, LPRECT);
        !          2812: BOOL APIENTRY PtInRect(LPRECT, POINT);
        !          2813: DWORD APIENTRY CRITICAL GetCurrentTime(void);
        !          2814: 
        !          2815: #ifndef NOWINOFFSETS
        !          2816: 
        !          2817: WORD APIENTRY CRITICAL GetWindowWord(IN HWND hWnd, IN int nIndex);
        !          2818: WORD APIENTRY CRITICAL SetWindowWord(IN HWND hWnd, IN int nIndex, IN WORD wNewWord);
        !          2819: LONG  APIENTRY CRITICAL GetWindowLong(IN HWND hWnd, IN int nIndex);
        !          2820: LONG  APIENTRY CRITICAL SetWindowLong(IN HWND hWnd, IN int nIndex, IN LONG dwNewLong);
        !          2821: WORD APIENTRY CRITICAL GetClassWord(IN HWND hWnd, IN int nIndex);
        !          2822: WORD APIENTRY CRITICAL SetClassWord(IN HWND hWnd, IN int nIndex, IN WORD wNewWord);
        !          2823: DWORD APIENTRY CRITICAL GetClassLong(IN HWND hWnd, IN int nIndex);
        !          2824: DWORD APIENTRY CRITICAL SetClassLong(IN HWND hWnd, IN int nIndex, IN LONG dwNewLong);
        !          2825: HWND APIENTRY CRITICAL GetDesktopWindow(void);
        !          2826: BOOL APIENTRY CRITICAL SetDeskWallpaper(IN LPSTR lpString OPTIONAL);
        !          2827: 
        !          2828: #endif /* NOWINOFFSETS */
        !          2829: 
        !          2830: HWND APIENTRY CRITICAL GetParent(IN HWND hWnd);
        !          2831: HWND APIENTRY CRITICAL XXX SetParent(IN HWND hWndChild, IN HWND hWndNewParent OPTIONAL);
        !          2832: BOOL APIENTRY CRITICAL XXX EnumChildWindows(IN HWND hWndParent, IN FARPROC lpEnumFunc, IN LONG lParam);
        !          2833: 
        !          2834: HWND
        !          2835: APIENTRY CRITICAL XXX
        !          2836: FindWindowA(
        !          2837:     IN LPSTRID lpClassName OPTIONAL,
        !          2838:     IN LPSTR lpWindowName OPTIONAL
        !          2839:     );
        !          2840: HWND
        !          2841: APIENTRY CRITICAL XXX
        !          2842: FindWindowW(
        !          2843:     IN LPWSTRID lpClassName OPTIONAL,
        !          2844:     IN LPWSTR lpWindowName OPTIONAL
        !          2845:     );
        !          2846: #ifdef UNICODE
        !          2847: #define FindWindow FindWindowW
        !          2848: #else
        !          2849: #define FindWindow FindWindowA
        !          2850: #endif // !UNICODE
        !          2851: 
        !          2852: BOOL APIENTRY CRITICAL XXX EnumWindows(IN FARPROC lpEnumFunc, IN LONG lParam);
        !          2853: BOOL APIENTRY CRITICAL XXX EnumThreadWindows(IN DWORD dwThreadId, IN FARPROC lpfn, IN LONG lParam);
        !          2854: #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows((DWORD)hTask, lpfn, lParam)
        !          2855: 
        !          2856: int
        !          2857: APIENTRY CRITICAL
        !          2858: GetClassNameA(
        !          2859:     IN HWND hWnd,
        !          2860:     NEXTCOUNT IN OUT OUTLPSTR lpClassName,
        !          2861:     IN int nMaxCount
        !          2862:     );
        !          2863: int
        !          2864: APIENTRY CRITICAL
        !          2865: GetClassNameW(
        !          2866:     IN HWND hWnd,
        !          2867:     NEXTCOUNT IN OUT OUTLPWSTR lpClassName,
        !          2868:     IN int nMaxCount
        !          2869:     );
        !          2870: #ifdef UNICODE
        !          2871: #define GetClassName GetClassNameW
        !          2872: #else
        !          2873: #define GetClassName GetClassNameA
        !          2874: #endif // !UNICODE
        !          2875: 
        !          2876: HWND APIENTRY CRITICAL GetTopWindow(IN HWND hWnd);
        !          2877: #define GetNextWindow(hwnd, wCmd) GetWindow(hwnd, wCmd)
        !          2878: #define GetSysModalWindow() (NULL)
        !          2879: #define SetSysModalWindow(hwnd) (NULL)
        !          2880: DWORD APIENTRY CRITICAL GetWindowThreadProcessId(IN HWND hWnd,
        !          2881:         IN LPDWORD lpdwProcessId OPTIONAL);
        !          2882: #define GetWindowTask(hwnd)\
        !          2883:         ((HANDLE)GetWindowThreadProcessId(hwnd, NULL))
        !          2884: 
        !          2885: HWND APIENTRY CRITICAL GetLastActivePopup(IN HWND hWnd);
        !          2886: 
        !          2887: /* GetWindow() Constants */
        !          2888: #define GW_HWNDFIRST        0
        !          2889: #define GW_HWNDLAST         1
        !          2890: #define GW_HWNDNEXT         2
        !          2891: #define GW_HWNDPREV         3
        !          2892: #define GW_OWNER            4
        !          2893: #define GW_CHILD            5
        !          2894: 
        !          2895: HWND APIENTRY CRITICAL GetWindow(IN HWND hWnd, IN UINT wCmd);
        !          2896: 
        !          2897: #ifndef NOWH
        !          2898: 
        !          2899: PROC
        !          2900: APIENTRY CRITICAL
        !          2901: SetWindowsHookA(
        !          2902:     IN int nFilterType,
        !          2903:     IN PROC pfnFilterProc
        !          2904:     );
        !          2905: PROC
        !          2906: APIENTRY CRITICAL
        !          2907: SetWindowsHookW(
        !          2908:     IN int nFilterType,
        !          2909:     IN PROC pfnFilterProc
        !          2910:     );
        !          2911: #ifdef UNICODE
        !          2912: #define SetWindowsHook SetWindowsHookW
        !          2913: #else
        !          2914: #define SetWindowsHook SetWindowsHookA
        !          2915: #endif // !UNICODE
        !          2916: 
        !          2917: BOOL  APIENTRY CRITICAL UnhookWindowsHook(IN int nCode, IN PROC pfnFilterProc);
        !          2918: 
        !          2919: HHOOK
        !          2920: APIENTRY CRITICAL
        !          2921: SetWindowsHookExA(
        !          2922:     IN HANDLE hmod,
        !          2923:     IN DWORD dwThreadId,
        !          2924:     IN int nFilterType,
        !          2925:     IN PROC pfnFilterProc
        !          2926:     );
        !          2927: HHOOK
        !          2928: APIENTRY CRITICAL
        !          2929: SetWindowsHookExW(
        !          2930:     IN HANDLE hmod,
        !          2931:     IN DWORD dwThreadId,
        !          2932:     IN int nFilterType,
        !          2933:     IN PROC pfnFilterProc
        !          2934:     );
        !          2935: #ifdef UNICODE
        !          2936: #define SetWindowsHookEx SetWindowsHookExW
        !          2937: #else
        !          2938: #define SetWindowsHookEx SetWindowsHookExA
        !          2939: #endif // !UNICODE
        !          2940: 
        !          2941: BOOL  APIENTRY CRITICAL UnhookWindowsHookEx(IN HHOOK hhk);
        !          2942: DWORD APIENTRY CRITICAL XXX CallNextHookProc(IN int nCode, IN DWORD wParam,
        !          2943:         IN LONG lParam);
        !          2944: 
        !          2945: /*
        !          2946:  * Macros for source-level compatibility with old functions.
        !          2947:  */
        !          2948: #define DefHookProc(nCode, wParam, lParam, ppfnNextHook)\
        !          2949:         CallNextHookProc(nCode, wParam, lParam)
        !          2950: #endif
        !          2951: 
        !          2952: #ifndef NOMENUS
        !          2953: 
        !          2954: /* Menu flags for Add/Check/EnableMenuItem() */
        !          2955: #define MF_INSERT          0x00000000L
        !          2956: #define MF_CHANGE          0x00000080L
        !          2957: #define MF_APPEND          0x00000100L
        !          2958: #define MF_DELETE          0x00000200L
        !          2959: #define MF_REMOVE          0x00001000L
        !          2960: 
        !          2961: #define MF_BYCOMMAND       0x00000000L
        !          2962: #define MF_BYPOSITION      0x00000400L
        !          2963: 
        !          2964: 
        !          2965: #define MF_SEPARATOR       0x00000800L
        !          2966: 
        !          2967: #define MF_ENABLED         0x00000000L
        !          2968: #define MF_GRAYED          0x00000001L
        !          2969: #define MF_DISABLED        0x00000002L
        !          2970: 
        !          2971: #define MF_UNCHECKED       0x00000000L
        !          2972: #define MF_CHECKED         0x00000008L
        !          2973: #define MF_USECHECKBITMAPS 0x00000200L
        !          2974: 
        !          2975: #define MF_STRING          0x00000000L
        !          2976: #define MF_BITMAP          0x00000004L
        !          2977: #define MF_OWNERDRAW       0x00000100L
        !          2978: 
        !          2979: #define MF_POPUP           0x00000010L
        !          2980: #define MF_MENUBARBREAK    0x00000020L
        !          2981: #define MF_MENUBREAK       0x00000040L
        !          2982: 
        !          2983: #define MF_UNHILITE        0x00000000L
        !          2984: #define MF_HILITE          0x00000080L
        !          2985: 
        !          2986: #define MF_SYSMENU         0x00002000L
        !          2987: #define MF_HELP            0x00004000L
        !          2988: #define MF_MOUSESELECT     0x00008000L
        !          2989: 
        !          2990: /* Menu item resource format */
        !          2991: typedef struct {
        !          2992:     WORD versionNumber;
        !          2993:     WORD offset;
        !          2994: } MENUITEMTEMPLATEHEADER;
        !          2995: 
        !          2996: typedef struct {
        !          2997:     WORD mtOption;
        !          2998:     WORD mtID;
        !          2999:     char mtString[1];
        !          3000: } MENUITEMTEMPLATE;
        !          3001: 
        !          3002: #define MF_END             0x00000080L
        !          3003: 
        !          3004: #endif /* NOMENUS */
        !          3005: 
        !          3006: #ifndef NOSYSCOMMANDS
        !          3007: 
        !          3008: /* System Menu Command Values */
        !          3009: #define SC_SIZE         0xF000
        !          3010: #define SC_MOVE         0xF010
        !          3011: #define SC_MINIMIZE     0xF020
        !          3012: #define SC_MAXIMIZE     0xF030
        !          3013: #define SC_NEXTWINDOW   0xF040
        !          3014: #define SC_PREVWINDOW   0xF050
        !          3015: #define SC_CLOSE        0xF060
        !          3016: #define SC_VSCROLL      0xF070
        !          3017: #define SC_HSCROLL      0xF080
        !          3018: #define SC_MOUSEMENU    0xF090
        !          3019: #define SC_KEYMENU      0xF100
        !          3020: #define SC_ARRANGE      0xF110
        !          3021: #define SC_RESTORE      0xF120
        !          3022: #define SC_TASKLIST     0xF130
        !          3023: #define SC_SCREENSAVE   0xF140
        !          3024: #define SC_HOTKEY       0xF150
        !          3025: 
        !          3026: #define SC_ICON         SC_MINIMIZE
        !          3027: #define SC_ZOOM         SC_MAXIMIZE
        !          3028: 
        !          3029: #endif /* NOSYSCOMMANDS */
        !          3030: 
        !          3031: /* Resource Loading Routines */
        !          3032: 
        !          3033: HBITMAP
        !          3034: APIENTRY
        !          3035: LoadBitmapA(
        !          3036:     IN HANDLE hInstance,
        !          3037:     IN LPSTRID lpBitmapName
        !          3038:     );
        !          3039: HBITMAP
        !          3040: APIENTRY
        !          3041: LoadBitmapW(
        !          3042:     IN HANDLE hInstance,
        !          3043:     IN LPWSTRID lpBitmapName
        !          3044:     );
        !          3045: #ifdef UNICODE
        !          3046: #define LoadBitmap LoadBitmapW
        !          3047: #else
        !          3048: #define LoadBitmap LoadBitmapA
        !          3049: #endif // !UNICODE
        !          3050: 
        !          3051: HCURSOR
        !          3052: APIENTRY CRITICAL
        !          3053: LoadCursorA(
        !          3054:     IN HANDLE hInstance,
        !          3055:     IN LPSTRID lpCursorName
        !          3056:     );
        !          3057: HCURSOR
        !          3058: APIENTRY CRITICAL
        !          3059: LoadCursorW(
        !          3060:     IN HANDLE hInstance,
        !          3061:     IN LPWSTRID lpCursorName
        !          3062:     );
        !          3063: #ifdef UNICODE
        !          3064: #define LoadCursor LoadCursorW
        !          3065: #else
        !          3066: #define LoadCursor LoadCursorA
        !          3067: #endif // !UNICODE
        !          3068: 
        !          3069: HCURSOR APIENTRY CRITICAL CreateCursor(IN HANDLE, IN int, IN int, IN int, IN int,
        !          3070:         IN LPMONO1BITS, IN LPMONO2BITS);
        !          3071: HCURSOR APIENTRY CRITICAL CreateDIBCursor(NEXTCOUNT IN LPSTR lpCursorRes,
        !          3072:         IN DWORD cb, IN UINT xHotspot, IN UINT yHotspot);
        !          3073: BOOL    APIENTRY CRITICAL DestroyCursor(IN HCURSOR);
        !          3074: 
        !          3075: /* Standard Cursor IDs */
        !          3076: #define IDC_ARROW           MAKEINTRESOURCE(32512)
        !          3077: #define IDC_IBEAM           MAKEINTRESOURCE(32513)
        !          3078: #define IDC_WAIT            MAKEINTRESOURCE(32514)
        !          3079: #define IDC_CROSS           MAKEINTRESOURCE(32515)
        !          3080: #define IDC_UPARROW         MAKEINTRESOURCE(32516)
        !          3081: #define IDC_SIZE            MAKEINTRESOURCE(32640)
        !          3082: #define IDC_ICON            MAKEINTRESOURCE(32641)
        !          3083: #define IDC_SIZENWSE        MAKEINTRESOURCE(32642)
        !          3084: #define IDC_SIZENESW        MAKEINTRESOURCE(32643)
        !          3085: #define IDC_SIZEWE          MAKEINTRESOURCE(32644)
        !          3086: #define IDC_SIZENS          MAKEINTRESOURCE(32645)
        !          3087: #define IDC_SIZEALL         MAKEINTRESOURCE(32646)
        !          3088: #define IDC_NO              MAKEINTRESOURCE(32648)
        !          3089: 
        !          3090: typedef struct _ICONINFO {
        !          3091:     BOOL    fIcon;
        !          3092:     DWORD   xHotspot;
        !          3093:     DWORD   yHotspot;
        !          3094:     HBITMAP hbmMask;
        !          3095:     HBITMAP hbmColor;
        !          3096: } ICONINFO;
        !          3097: typedef ICONINFO *PICONINFO;
        !          3098: 
        !          3099: HICON
        !          3100: APIENTRY CRITICAL
        !          3101: LoadIconA(
        !          3102:     IN HANDLE hInstance,
        !          3103:     IN LPSTRID lpIconName
        !          3104:     );
        !          3105: HICON
        !          3106: APIENTRY CRITICAL
        !          3107: LoadIconW(
        !          3108:     IN HANDLE hInstance,
        !          3109:     IN LPWSTRID lpIconName
        !          3110:     );
        !          3111: #ifdef UNICODE
        !          3112: #define LoadIcon LoadIconW
        !          3113: #else
        !          3114: #define LoadIcon LoadIconA
        !          3115: #endif // !UNICODE
        !          3116: 
        !          3117: HICON APIENTRY CRITICAL CreateIcon(IN HANDLE, IN int, IN int, IN BYTE, IN BYTE, IN LPBYTE, IN LPBYTE);
        !          3118: BOOL  APIENTRY CRITICAL DestroyIcon(IN HICON);
        !          3119: int   APIENTRY LookupIconIdFromDirectory(IN PBYTE presbits, IN BOOL fIcon);
        !          3120: HICON APIENTRY CreateIconFromResource(PBYTE presbits, DWORD dwResSize,
        !          3121:         BOOL fIcon, DWORD dwVer);
        !          3122: HICON APIENTRY CreateIconIndirect(IN PICONINFO piconinfo);
        !          3123: BOOL  APIENTRY GetIconInfo(IN HICON hIcon, OUT PICONINFO piconinfo);
        !          3124: 
        !          3125: #ifdef OEMRESOURCE
        !          3126: 
        !          3127: /* OEM Resource Ordinal Numbers */
        !          3128: #define OBM_CLOSE           32754
        !          3129: #define OBM_UPARROW         32753
        !          3130: #define OBM_DNARROW         32752
        !          3131: #define OBM_RGARROW         32751
        !          3132: #define OBM_LFARROW         32750
        !          3133: #define OBM_REDUCE          32749
        !          3134: #define OBM_ZOOM            32748
        !          3135: #define OBM_RESTORE         32747
        !          3136: #define OBM_REDUCED         32746
        !          3137: #define OBM_ZOOMD           32745
        !          3138: #define OBM_RESTORED        32744
        !          3139: #define OBM_UPARROWD        32743
        !          3140: #define OBM_DNARROWD        32742
        !          3141: #define OBM_RGARROWD        32741
        !          3142: #define OBM_LFARROWD        32740
        !          3143: #define OBM_MNARROW         32739
        !          3144: #define OBM_COMBO           32738
        !          3145: #define OBM_UPARROWI        32737
        !          3146: #define OBM_DNARROWI        32736
        !          3147: #define OBM_RGARROWI        32735
        !          3148: #define OBM_LFARROWI        32734
        !          3149: 
        !          3150: #define OBM_OLD_CLOSE       32767
        !          3151: #define OBM_SIZE            32766
        !          3152: #define OBM_OLD_UPARROW     32765
        !          3153: #define OBM_OLD_DNARROW     32764
        !          3154: #define OBM_OLD_RGARROW     32763
        !          3155: #define OBM_OLD_LFARROW     32762
        !          3156: #define OBM_BTSIZE          32761
        !          3157: #define OBM_CHECK           32760
        !          3158: #define OBM_CHECKBOXES      32759
        !          3159: #define OBM_BTNCORNERS      32758
        !          3160: #define OBM_OLD_REDUCE      32757
        !          3161: #define OBM_OLD_ZOOM        32756
        !          3162: #define OBM_OLD_RESTORE     32755
        !          3163: 
        !          3164: #define OCR_NORMAL          32512
        !          3165: #define OCR_IBEAM           32513
        !          3166: #define OCR_WAIT            32514
        !          3167: #define OCR_CROSS           32515
        !          3168: #define OCR_UP              32516
        !          3169: #define OCR_SIZE            32640
        !          3170: #define OCR_ICON            32641
        !          3171: #define OCR_SIZENWSE        32642
        !          3172: #define OCR_SIZENESW        32643
        !          3173: #define OCR_SIZEWE          32644
        !          3174: #define OCR_SIZENS          32645
        !          3175: #define OCR_SIZEALL         32646
        !          3176: #define OCR_ICOCUR          32647
        !          3177: #define OCR_NO              32648
        !          3178: 
        !          3179: #define OIC_SAMPLE          32512
        !          3180: #define OIC_HAND            32513
        !          3181: #define OIC_QUES            32514
        !          3182: #define OIC_BANG            32515
        !          3183: #define OIC_NOTE            32516
        !          3184: 
        !          3185: #endif /* OEMRESOURCE */
        !          3186: 
        !          3187: #define ORD_LANGDRIVER    1     /* The ordinal number for the entry point of
        !          3188:                                 ** language drivers.
        !          3189:                                 */
        !          3190: 
        !          3191: #ifndef NOICONS
        !          3192: 
        !          3193: /* Standard Icon IDs */
        !          3194: #define IDI_APPLICATION   MAKEINTRESOURCE(32512)
        !          3195: #define IDI_HAND          MAKEINTRESOURCE(32513)
        !          3196: #define IDI_QUESTION      MAKEINTRESOURCE(32514)
        !          3197: #define IDI_EXCLAMATION   MAKEINTRESOURCE(32515)
        !          3198: #define IDI_ASTERISK      MAKEINTRESOURCE(32516)
        !          3199: 
        !          3200: #endif /* NOICONS */
        !          3201: 
        !          3202: int
        !          3203: APIENTRY
        !          3204: LoadStringA(
        !          3205:     IN HANDLE hInstance,
        !          3206:     IN UINT wID,
        !          3207:     NEXTCOUNT IN OUT OUTLPSTR lpBuffer,
        !          3208:     IN int nBufferMax
        !          3209:     );
        !          3210: int
        !          3211: APIENTRY
        !          3212: LoadStringW(
        !          3213:     IN HANDLE hInstance,
        !          3214:     IN UINT wID,
        !          3215:     NEXTCOUNT IN OUT OUTLPWSTR lpBuffer,
        !          3216:     IN int nBufferMax
        !          3217:     );
        !          3218: #ifdef UNICODE
        !          3219: #define LoadString LoadStringW
        !          3220: #else
        !          3221: #define LoadString LoadStringA
        !          3222: #endif // !UNICODE
        !          3223: 
        !          3224: #ifndef NOKANJI
        !          3225: 
        !          3226: #define CP_HWND           0
        !          3227: #define CP_OPEN           1
        !          3228: #define CP_DIRECT         2
        !          3229: 
        !          3230: /* VK from the keyboard driver */
        !          3231: #define VK_KANA           0x15
        !          3232: #define VK_ROMAJI         0x16
        !          3233: #define VK_ZENKAKU        0x17
        !          3234: #define VK_HIRAGANA       0x18
        !          3235: #define VK_KANJI          0x19
        !          3236: 
        !          3237: /* VK to send to Applications */
        !          3238: #define VK_CONVERT        0x1C
        !          3239: #define VK_NONCONVERT     0x1D
        !          3240: #define VK_ACCEPT         0x1E
        !          3241: #define VK_MODECHANGE     0x1F
        !          3242: 
        !          3243: /* Conversion function numbers */
        !          3244: #define KNJ_START         0x01
        !          3245: #define KNJ_END           0x02
        !          3246: #define KNJ_QUERY         0x03
        !          3247: 
        !          3248: #define KNJ_LEARN_MODE    0x10
        !          3249: #define KNJ_GETMODE       0x11
        !          3250: #define KNJ_SETMODE       0x12
        !          3251: 
        !          3252: #define KNJ_CODECONVERT   0x20
        !          3253: #define KNJ_CONVERT       0x21
        !          3254: #define KNJ_NEXT          0x22
        !          3255: #define KNJ_PREVIOUS      0x23
        !          3256: #define KNJ_ACCEPT        0x24
        !          3257: 
        !          3258: #define KNJ_LEARN         0x30
        !          3259: #define KNJ_REGISTER      0x31
        !          3260: #define KNJ_REMOVE        0x32
        !          3261: #define KNJ_CHANGE_UDIC   0x33
        !          3262: 
        !          3263: /* NOTE: DEFAULT        = 0
        !          3264:  *       JIS1           = 1
        !          3265:  *       JIS2           = 2
        !          3266:  *       SJIS2          = 3
        !          3267:  *       JIS1KATAKANA   = 4
        !          3268:  *       SJIS2HIRAGANA  = 5
        !          3269:  *       SJIS2KATAKANA  = 6
        !          3270:  *       OEM            = F
        !          3271:  */
        !          3272: 
        !          3273: #define KNJ_JIS1toJIS1KATAKANA  0x14
        !          3274: #define KNJ_JIS1toSJIS2         0x13
        !          3275: #define KNJ_JIS1toSJIS2HIRAGANA 0x15
        !          3276: #define KNJ_JIS1toSJIS2KATAKANA 0x16
        !          3277: #define KNJ_JIS1toDEFAULT       0x10
        !          3278: #define KNJ_JIS1toSJIS2OEM      0x1F
        !          3279: #define KNJ_JIS2toSJIS2         0x23
        !          3280: #define KNJ_SJIS2toJIS2         0x32
        !          3281: 
        !          3282: #define KNJ_MD_ALPHA            0x01
        !          3283: #define KNJ_MD_HIRAGANA         0x02
        !          3284: #define KNJ_MD_HALF             0x04
        !          3285: #define KNJ_MD_JIS              0x08
        !          3286: #define KNJ_MD_SPECIAL          0x10
        !          3287: 
        !          3288: #define KNJ_CVT_NEXT            0x01
        !          3289: #define KNJ_CVT_PREV            0x02
        !          3290: #define KNJ_CVT_KATAKANA        0x03
        !          3291: #define KNJ_CVT_HIRAGANA        0x04
        !          3292: #define KNJ_CVT_JIS1            0x05
        !          3293: #define KNJ_CVT_SJIS2           0x06
        !          3294: #define KNJ_CVT_DEFAULT         0x07
        !          3295: #define KNJ_CVT_TYPED           0x08
        !          3296: 
        !          3297: typedef struct {
        !          3298:     int         fnc;
        !          3299:     int         wParam;
        !          3300:     LPSTR       lpSource;
        !          3301:     LPSTR       lpDest;
        !          3302:     int         wCount;
        !          3303:     LPSTRNULL  lpReserved1;
        !          3304:     LPSTRNULL  lpReserved2;
        !          3305: } KANJISTRUCT, FAR *LPKANJISTRUCT;
        !          3306: 
        !          3307: int  APIENTRY ConvertRequest(HWND, LPKANJISTRUCT);
        !          3308: BOOL APIENTRY SetConvertParams(int, int);
        !          3309: VOID APIENTRY SetConvertHook(BOOL);
        !          3310: 
        !          3311: #endif
        !          3312: 
        !          3313: /* Key Conversion Window */
        !          3314: BOOL APIENTRY IsTwoByteCharPrefix(char);
        !          3315: 
        !          3316: /* Dialog Box Command IDs */
        !          3317: #define IDOK                1
        !          3318: #define IDCANCEL            2
        !          3319: #define IDABORT             3
        !          3320: #define IDRETRY             4
        !          3321: #define IDIGNORE            5
        !          3322: #define IDYES               6
        !          3323: #define IDNO                7
        !          3324: 
        !          3325: #ifndef NOCTLMGR
        !          3326: 
        !          3327: /* Control Manager Structures and Definitions */
        !          3328: 
        !          3329: #ifndef NOWINSTYLES
        !          3330: 
        !          3331: /* Edit Control Styles */
        !          3332: #define ES_LEFT             0x0000L
        !          3333: #define ES_CENTER           0x0001L
        !          3334: #define ES_RIGHT            0x0002L
        !          3335: #define ES_MULTILINE        0x0004L
        !          3336: #define ES_UPPERCASE        0x0008L
        !          3337: #define ES_LOWERCASE        0x0010L
        !          3338: #define ES_PASSWORD         0x0020L
        !          3339: #define ES_AUTOVSCROLL      0x0040L
        !          3340: #define ES_AUTOHSCROLL      0x0080L
        !          3341: #define ES_NOHIDESEL        0x0100L
        !          3342: #define ES_OEMCONVERT       0x0400L
        !          3343: #define ES_READONLY         0x0800L
        !          3344: 
        !          3345: 
        !          3346: #endif /* NOWINSTYLES */
        !          3347: 
        !          3348: /* Edit Control Notification Codes */
        !          3349: #define EN_SETFOCUS         0x0100
        !          3350: #define EN_KILLFOCUS        0x0200
        !          3351: #define EN_CHANGE           0x0300
        !          3352: #define EN_UPDATE           0x0400
        !          3353: #define EN_ERRSPACE         0x0500
        !          3354: #define EN_MAXTEXT          0x0501
        !          3355: #define EN_HSCROLL          0x0601
        !          3356: #define EN_VSCROLL          0x0602
        !          3357: 
        !          3358: #ifndef NOWINMESSAGES
        !          3359: 
        !          3360: /* Edit Control Messages */
        !          3361: #define EM_GETSEL           0x00B0
        !          3362: #define EM_SETSEL           0x00B1
        !          3363: #define EM_GETRECT          0x00B2
        !          3364: #define EM_SETRECT          0x00B3
        !          3365: #define EM_SETRECTNP        0x00B4
        !          3366: #define EM_SCROLL           0x00B5
        !          3367: #define EM_LINESCROLL       0x00B6
        !          3368: #define EM_GETMODIFY        0x00B8
        !          3369: #define EM_SETMODIFY        0x00B9
        !          3370: #define EM_GETLINECOUNT     0x00BA
        !          3371: #define EM_LINEINDEX        0x00BB
        !          3372: #define EM_SETHANDLE        0x00BC
        !          3373: #define EM_GETHANDLE        0x00BD
        !          3374: #define EM_GETTHUMB         0x00BE
        !          3375: #define EM_LINELENGTH       0x00C1
        !          3376: #define EM_REPLACESEL       0x00C2
        !          3377: #define EM_SETFONT          0x00C3
        !          3378: #define EM_GETLINE          0x00C4
        !          3379: #define EM_LIMITTEXT        0x00C5
        !          3380: #define EM_CANUNDO          0x00C6
        !          3381: #define EM_UNDO             0x00C7
        !          3382: #define EM_FMTLINES         0x00C8
        !          3383: #define EM_LINEFROMCHAR     0x00C9
        !          3384: #define EM_SETWORDBREAK     0x00CA
        !          3385: #define EM_SETTABSTOPS      0x00CB
        !          3386: #define EM_SETPASSWORDCHAR  0x00CC
        !          3387: #define EM_EMPTYUNDOBUFFER  0x00CD
        !          3388: #define EM_GETFIRSTVISIBLE  0x00CE
        !          3389: #define EM_SETREADONLY      0x00CF
        !          3390: #define EM_MSGMAX           0x00D0
        !          3391: 
        !          3392: #endif /* NOWINMESSAGES */
        !          3393: 
        !          3394: /* Button Control Styles */
        !          3395: #define BS_PUSHBUTTON      0x00L
        !          3396: #define BS_DEFPUSHBUTTON   0x01L
        !          3397: #define BS_CHECKBOX        0x02L
        !          3398: #define BS_AUTOCHECKBOX    0x03L
        !          3399: #define BS_RADIOBUTTON     0x04L
        !          3400: #define BS_3STATE          0x05L
        !          3401: #define BS_AUTO3STATE      0x06L
        !          3402: #define BS_GROUPBOX        0x07L
        !          3403: #define BS_USERBUTTON      0x08L
        !          3404: #define BS_AUTORADIOBUTTON 0x09L
        !          3405: #define BS_PUSHBOX         0x0AL
        !          3406: #define BS_OWNERDRAW       0x0BL
        !          3407: #define BS_LEFTTEXT        0x20L
        !          3408: 
        !          3409: 
        !          3410: /* User Button Notification Codes */
        !          3411: #define BN_CLICKED         0
        !          3412: #define BN_PAINT           1
        !          3413: #define BN_HILITE          2
        !          3414: #define BN_UNHILITE        3
        !          3415: #define BN_DISABLE         4
        !          3416: #define BN_DOUBLECLICKED   5
        !          3417: 
        !          3418: /* Button Control Messages */
        !          3419: #define BM_GETCHECK        0x00F0
        !          3420: #define BM_SETCHECK        0x00F1
        !          3421: #define BM_GETSTATE        0x00F2
        !          3422: #define BM_SETSTATE        0x00F3
        !          3423: #define BM_SETSTYLE        0x00F4
        !          3424: 
        !          3425: /* Static Control Constants */
        !          3426: #define SS_LEFT            0x00L
        !          3427: #define SS_CENTER          0x01L
        !          3428: #define SS_RIGHT           0x02L
        !          3429: #define SS_ICON            0x03L
        !          3430: #define SS_BLACKRECT       0x04L
        !          3431: #define SS_GRAYRECT        0x05L
        !          3432: #define SS_WHITERECT       0x06L
        !          3433: #define SS_BLACKFRAME      0x07L
        !          3434: #define SS_GRAYFRAME       0x08L
        !          3435: #define SS_WHITEFRAME      0x09L
        !          3436: #define SS_USERITEM        0x0AL
        !          3437: #define SS_SIMPLE          0x0BL
        !          3438: #define SS_LEFTNOWORDWRAP  0x0CL
        !          3439: #define SS_NOPREFIX        0x80L    /* Don't do "&" character translation */
        !          3440: 
        !          3441: #ifndef NOWINMESSAGES
        !          3442: /* Static Control Mesages */
        !          3443: #define STM_SETICON        0x0D0
        !          3444: #define STM_GETICON        0x0D1
        !          3445: #define STM_MSGMAX         0x0D2
        !          3446: #endif /* NOWINMESSAGES */
        !          3447: /* Dialog Manager Routines */
        !          3448: 
        !          3449: #ifndef NOMSG
        !          3450: BOOL APIENTRY CRITICAL XXX IsDialogMessage(IN HWND hDlg, IN LPMSG lpMsg);
        !          3451: #endif
        !          3452: 
        !          3453: BOOL APIENTRY CRITICAL MapDialogRect(IN HWND hDlg, IN OUT LPRECT lpRect);
        !          3454: 
        !          3455: int
        !          3456: APIENTRY CRITICAL XXX
        !          3457: DlgDirListA(
        !          3458:     IN HWND hDlg,
        !          3459:     IN OUT LPSTR lpPathSpec,
        !          3460:     IN int nIDListBox,
        !          3461:     IN int nIDStaticPath,
        !          3462:     IN UINT wFileType
        !          3463:     );
        !          3464: int
        !          3465: APIENTRY CRITICAL XXX
        !          3466: DlgDirListW(
        !          3467:     IN HWND hDlg,
        !          3468:     IN OUT LPWSTR lpPathSpec,
        !          3469:     IN int nIDListBox,
        !          3470:     IN int nIDStaticPath,
        !          3471:     IN UINT wFileType
        !          3472:     );
        !          3473: #ifdef UNICODE
        !          3474: #define DlgDirList DlgDirListW
        !          3475: #else
        !          3476: #define DlgDirList DlgDirListA
        !          3477: #endif // !UNICODE
        !          3478: 
        !          3479: BOOL
        !          3480: APIENTRY CRITICAL XXX
        !          3481: DlgDirSelectExA(
        !          3482:     IN HWND hDlg,
        !          3483:     NEXTCOUNT IN OUT OUTLPSTR lpString,
        !          3484:     IN int nCount,
        !          3485:     IN int nIDListBox
        !          3486:     );
        !          3487: BOOL
        !          3488: APIENTRY CRITICAL XXX
        !          3489: DlgDirSelectExW(
        !          3490:     IN HWND hDlg,
        !          3491:     NEXTCOUNT IN OUT OUTLPWSTR lpString,
        !          3492:     IN int nCount,
        !          3493:     IN int nIDListBox
        !          3494:     );
        !          3495: #ifdef UNICODE
        !          3496: #define DlgDirSelectEx DlgDirSelectExW
        !          3497: #else
        !          3498: #define DlgDirSelectEx DlgDirSelectExA
        !          3499: #endif // !UNICODE
        !          3500: 
        !          3501: int
        !          3502: APIENTRY CRITICAL XXX
        !          3503: DlgDirListComboBoxA(
        !          3504:     IN HWND hDlg,
        !          3505:     IN OUT LPSTR lpPathSpec,
        !          3506:     IN int nIDComboBox,
        !          3507:     IN int nIDStaticPath,
        !          3508:     IN UINT wFiletype
        !          3509:     );
        !          3510: int
        !          3511: APIENTRY CRITICAL XXX
        !          3512: DlgDirListComboBoxW(
        !          3513:     IN HWND hDlg,
        !          3514:     IN OUT LPWSTR lpPathSpec,
        !          3515:     IN int nIDComboBox,
        !          3516:     IN int nIDStaticPath,
        !          3517:     IN UINT wFiletype
        !          3518:     );
        !          3519: #ifdef UNICODE
        !          3520: #define DlgDirListComboBox DlgDirListComboBoxW
        !          3521: #else
        !          3522: #define DlgDirListComboBox DlgDirListComboBoxA
        !          3523: #endif // !UNICODE
        !          3524: 
        !          3525: BOOL
        !          3526: APIENTRY CRITICAL XXX
        !          3527: DlgDirSelectComboBoxExA(
        !          3528:     IN HWND hDlg,
        !          3529:     NEXTCOUNT IN OUT OUTLPSTR lpString,
        !          3530:     IN int nCount,
        !          3531:     IN int nIDComboBox
        !          3532:     );
        !          3533: BOOL
        !          3534: APIENTRY CRITICAL XXX
        !          3535: DlgDirSelectComboBoxExW(
        !          3536:     IN HWND hDlg,
        !          3537:     NEXTCOUNT IN OUT OUTLPWSTR lpString,
        !          3538:     IN int nCount,
        !          3539:     IN int nIDComboBox
        !          3540:     );
        !          3541: #ifdef UNICODE
        !          3542: #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW
        !          3543: #else
        !          3544: #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA
        !          3545: #endif // !UNICODE
        !          3546: 
        !          3547: 
        !          3548: /* Dialog Styles */
        !          3549: #define DS_ABSALIGN         0x01L
        !          3550: #define DS_SYSMODAL         0x02L
        !          3551: #define DS_LOCALEDIT        0x20L   /* Edit items get Local storage. */
        !          3552: #define DS_SETFONT          0x40L   /* User specified font for Dlg controls */
        !          3553: #define DS_MODALFRAME       0x80L   /* Can be combined with WS_CAPTION  */
        !          3554: #define DS_NOIDLEMSG        0x100L  /* WM_ENTERIDLE message will not be sent */
        !          3555: #define DS_SETFOREGROUND    0x200L
        !          3556: 
        !          3557: #define DM_GETDEFID         (WM_USER+0)
        !          3558: #define DM_SETDEFID         (WM_USER+1)
        !          3559: #define DC_HASDEFID         0x534B
        !          3560: 
        !          3561: /* Dialog Codes */
        !          3562: #define DLGC_WANTARROWS     0x0001      /* Control wants arrow keys         */
        !          3563: #define DLGC_WANTTAB        0x0002      /* Control wants tab keys           */
        !          3564: #define DLGC_WANTALLKEYS    0x0004      /* Control wants all keys           */
        !          3565: #define DLGC_WANTMESSAGE    0x0004      /* Pass message to control          */
        !          3566: #define DLGC_HASSETSEL      0x0008      /* Understands EM_SETSEL message    */
        !          3567: #define DLGC_DEFPUSHBUTTON  0x0010      /* Default pushbutton               */
        !          3568: #define DLGC_UNDEFPUSHBUTTON 0x0020     /* Non-default pushbutton           */
        !          3569: #define DLGC_RADIOBUTTON    0x0040      /* Radio button                     */
        !          3570: #define DLGC_WANTCHARS      0x0080      /* Want WM_CHAR messages            */
        !          3571: #define DLGC_STATIC         0x0100      /* Static item: don't include       */
        !          3572: #define DLGC_BUTTON         0x2000      /* Button item: can be checked      */
        !          3573: 
        !          3574: #define LB_CTLCODE          0L
        !          3575: 
        !          3576: /* Listbox Return Values */
        !          3577: #define LB_OKAY             0
        !          3578: #define LB_ERR              (-1)
        !          3579: #define LB_ERRSPACE         (-2)
        !          3580: 
        !          3581: /*
        !          3582: **  The idStaticPath parameter to DlgDirList can have the following values
        !          3583: **  ORed if the list box should show other details of the files along with
        !          3584: **  the name of the files;
        !          3585: */
        !          3586:                                   /* all other details also will be returned */
        !          3587: 
        !          3588: 
        !          3589: /* Listbox Notification Codes */
        !          3590: #define LBN_ERRSPACE        (-2)
        !          3591: #define LBN_SELCHANGE       1
        !          3592: #define LBN_DBLCLK          2
        !          3593: #define LBN_SELCANCEL       3
        !          3594: #define LBN_SETFOCUS        4
        !          3595: #define LBN_KILLFOCUS       5
        !          3596: 
        !          3597: 
        !          3598: 
        !          3599: #ifndef NOWINMESSAGES
        !          3600: 
        !          3601: /* Listbox messages */
        !          3602: #define LB_ADDSTRING            0x0180
        !          3603: #define LB_INSERTSTRING         0x0181
        !          3604: #define LB_DELETESTRING         0x0182
        !          3605: #define LB_RESETCONTENT         0x0184
        !          3606: #define LB_SETSEL               0x0185
        !          3607: #define LB_SETCURSEL            0x0186
        !          3608: #define LB_GETSEL               0x0187
        !          3609: #define LB_GETCURSEL            0x0188
        !          3610: #define LB_GETTEXT              0x0189
        !          3611: #define LB_GETTEXTLEN           0x018A
        !          3612: #define LB_GETCOUNT             0x018B
        !          3613: #define LB_SELECTSTRING         0x018C
        !          3614: #define LB_DIR                  0x018D
        !          3615: #define LB_GETTOPINDEX          0x018E
        !          3616: #define LB_FINDSTRING           0x018F
        !          3617: #define LB_GETSELCOUNT          0x0190
        !          3618: #define LB_GETSELITEMS          0x0191
        !          3619: #define LB_SETTABSTOPS          0x0192
        !          3620: #define LB_GETHORIZONTALEXTENT  0x0193
        !          3621: #define LB_SETHORIZONTALEXTENT  0x0194
        !          3622: #define LB_SETCOLUMNWIDTH       0x0195
        !          3623: #define LB_SETTOPINDEX          0x0197
        !          3624: #define LB_GETITEMRECT          0x0198
        !          3625: #define LB_GETITEMDATA          0x0199
        !          3626: #define LB_SETITEMDATA          0x019A
        !          3627: #define LB_SELITEMRANGE         0x019B
        !          3628: #define LB_SETITEMHEIGHT        0x01A0
        !          3629: #define LB_GETITEMHEIGHT        0x01A1
        !          3630: #define LB_MSGMAX               0x01A2
        !          3631: 
        !          3632: #endif /* NOWINMESSAGES */
        !          3633: 
        !          3634: #ifndef NOWINSTYLES
        !          3635: 
        !          3636: /* Listbox Styles */
        !          3637: #define LBS_NOTIFY            0x0001L
        !          3638: #define LBS_SORT              0x0002L
        !          3639: #define LBS_NOREDRAW          0x0004L
        !          3640: #define LBS_MULTIPLESEL       0x0008L
        !          3641: #define LBS_OWNERDRAWFIXED    0x0010L
        !          3642: #define LBS_OWNERDRAWVARIABLE 0x0020L
        !          3643: #define LBS_HASSTRINGS        0x0040L
        !          3644: #define LBS_USETABSTOPS       0x0080L
        !          3645: #define LBS_NOINTEGRALHEIGHT  0x0100L
        !          3646: #define LBS_MULTICOLUMN       0x0200L
        !          3647: #define LBS_WANTKEYBOARDINPUT 0x0400L
        !          3648: #define LBS_EXTENDEDSEL       0x0800L
        !          3649: #define LBS_DISABLENOSCROLL   0x1000L
        !          3650: #define LBS_STANDARD          (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
        !          3651: 
        !          3652: #endif /* NOWINSTYLES */
        !          3653: 
        !          3654: 
        !          3655: /* Combo Box return Values */
        !          3656: #define CB_OKAY             0
        !          3657: #define CB_ERR              (-1)
        !          3658: #define CB_ERRSPACE         (-2)
        !          3659: 
        !          3660: 
        !          3661: /* Combo Box Notification Codes */
        !          3662: #define CBN_ERRSPACE        (-1)
        !          3663: #define CBN_SELCHANGE       1
        !          3664: #define CBN_DBLCLK          2
        !          3665: #define CBN_SETFOCUS        3
        !          3666: #define CBN_KILLFOCUS       4
        !          3667: #define CBN_EDITCHANGE      5
        !          3668: #define CBN_EDITUPDATE      6
        !          3669: #define CBN_DROPDOWN        7
        !          3670: #define CBN_CLOSEUP         8
        !          3671: 
        !          3672: /* Combo Box styles */
        !          3673: #ifndef NOWINSTYLES
        !          3674: #define CBS_SIMPLE            0x0001L
        !          3675: #define CBS_DROPDOWN          0x0002L
        !          3676: #define CBS_DROPDOWNLIST      0x0003L
        !          3677: #define CBS_OWNERDRAWFIXED    0x0010L
        !          3678: #define CBS_OWNERDRAWVARIABLE 0x0020L
        !          3679: #define CBS_AUTOHSCROLL       0x0040L
        !          3680: #define CBS_OEMCONVERT        0x0080L
        !          3681: #define CBS_SORT              0x0100L
        !          3682: #define CBS_HASSTRINGS        0x0200L
        !          3683: #define CBS_NOINTEGRALHEIGHT  0x0400L
        !          3684: #define CBS_DISABLENOSCROLL   0x0800L
        !          3685: #endif  /* NOWINSTYLES */
        !          3686: 
        !          3687: 
        !          3688: /* Combo Box messages */
        !          3689: #ifndef NOWINMESSAGES
        !          3690: #define CB_GETEDITSEL               0x0140
        !          3691: #define CB_LIMITTEXT                0x0141
        !          3692: #define CB_SETEDITSEL               0x0142
        !          3693: #define CB_ADDSTRING                0x0143
        !          3694: #define CB_DELETESTRING             0x0144
        !          3695: #define CB_DIR                      0x0145
        !          3696: #define CB_GETCOUNT                 0x0146
        !          3697: #define CB_GETCURSEL                0x0147
        !          3698: #define CB_GETLBTEXT                0x0148
        !          3699: #define CB_GETLBTEXTLEN             0x0149
        !          3700: #define CB_INSERTSTRING             0x014A
        !          3701: #define CB_RESETCONTENT             0x014B
        !          3702: #define CB_FINDSTRING               0x014C
        !          3703: #define CB_SELECTSTRING             0x014D
        !          3704: #define CB_SETCURSEL                0x014E
        !          3705: #define CB_SHOWDROPDOWN             0x014F
        !          3706: #define CB_GETITEMDATA              0x0150
        !          3707: #define CB_SETITEMDATA              0x0151
        !          3708: #define CB_GETDROPPEDCONTROLRECT    0x0152
        !          3709: #define CB_SETITEMHEIGHT            0x0153
        !          3710: #define CB_GETITEMHEIGHT            0x0154
        !          3711: #define CB_SETEXTENDEDUI            0x0155
        !          3712: #define CB_GETEXTENDEDUI            0x0156
        !          3713: #define CB_GETDROPPEDSTATE          0x0157
        !          3714: #define CB_MSGMAX                   0x0158
        !          3715: #endif  /* NOWINMESSAGES */
        !          3716: 
        !          3717: 
        !          3718: 
        !          3719: #ifndef NOWINSTYLES
        !          3720: 
        !          3721: /* Scroll Bar Styles */
        !          3722: #define SBS_HORZ                    0x0000L
        !          3723: #define SBS_VERT                    0x0001L
        !          3724: #define SBS_TOPALIGN                0x0002L
        !          3725: #define SBS_LEFTALIGN               0x0002L
        !          3726: #define SBS_BOTTOMALIGN             0x0004L
        !          3727: #define SBS_RIGHTALIGN              0x0004L
        !          3728: #define SBS_SIZEBOXTOPLEFTALIGN     0x0002L
        !          3729: #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
        !          3730: #define SBS_SIZEBOX                 0x0008L
        !          3731: #endif /* NOWINSTYLES */
        !          3732: 
        !          3733: /* Scroll bar messages */
        !          3734: #ifndef NOWINMESSAGES
        !          3735: #define SBM_SETPOS                  0x00E0
        !          3736: #define SBM_GETPOS                  0x00E1
        !          3737: #define SBM_SETRANGE                0x00E2
        !          3738: #define SBM_GETRANGE                0x00E3
        !          3739: #define SBM_ENABLE_ARROWS           0x00E4
        !          3740: #endif
        !          3741: #endif /* NOCTLMGR */
        !          3742: 
        !          3743: #ifndef NOMDI
        !          3744: 
        !          3745: /* MDI client style bits */
        !          3746: #define MDIS_ALLCHILDSTYLES    0x0001
        !          3747: 
        !          3748: /* wParam Flags for WM_MDITILE and WM_MDICASCADE messages. */
        !          3749: #define MDITILE_VERTICAL       0x0000
        !          3750: #define MDITILE_HORIZONTAL     0x0001
        !          3751: #define MDITILE_SKIPDISABLED   0x0002
        !          3752: 
        !          3753: typedef struct tagMDICREATESTRUCTA {
        !          3754:     LPSTRID   szClass;
        !          3755:     LPSTRNULL   szTitle;
        !          3756:     HANDLE hOwner;
        !          3757:     int x;
        !          3758:     int y;
        !          3759:     int cx;
        !          3760:     int cy;
        !          3761:     LONG style;
        !          3762:     LONG lParam;        /* app-defined stuff */
        !          3763: } MDICREATESTRUCTA, *LPMDICREATESTRUCTA;
        !          3764: typedef struct tagMDICREATESTRUCTW {
        !          3765:     LPWSTRID  szClass;
        !          3766:     LPWSTRNULL  szTitle;
        !          3767:     HANDLE hOwner;
        !          3768:     int x;
        !          3769:     int y;
        !          3770:     int cx;
        !          3771:     int cy;
        !          3772:     LONG style;
        !          3773:     LONG lParam;        /* app-defined stuff */
        !          3774: } MDICREATESTRUCTW, *LPMDICREATESTRUCTW;
        !          3775: #ifdef UNICODE
        !          3776: #define MDICREATESTRUCT MDICREATESTRUCTW
        !          3777: #define LPMDICREATESTRUCT LPMDICREATESTRUCTW
        !          3778: #else
        !          3779: #define MDICREATESTRUCT MDICREATESTRUCTA
        !          3780: #define LPMDICREATESTRUCT LPMDICREATESTRUCTA
        !          3781: #endif // UNICODE
        !          3782: 
        !          3783: typedef struct tagCLIENTCREATESTRUCT {
        !          3784:     HANDLE hWindowMenu;
        !          3785:     UINT idFirstChild;
        !          3786: } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;
        !          3787: 
        !          3788: LONG APIENTRY CRITICAL XXX DefFrameProcA(IN HWND hWnd, IN HWND hWndMDIClient OPTIONAL, IN UINT wMsg, IN DWORD wParam, IN LONG lParam);
        !          3789: LONG APIENTRY CRITICAL XXX DefFrameProcW(IN HWND hWnd, IN HWND hWndMDIClient OPTIONAL, IN UINT wMsg, IN DWORD wParam, IN LONG lParam);
        !          3790: #ifdef UNICODE
        !          3791: #define DefFrameProc DefFrameProcW
        !          3792: #else
        !          3793: #define DefFrameProc DefFrameProcA
        !          3794: #endif // !UNICODE
        !          3795: LONG APIENTRY CRITICAL XXX DefMDIChildProcA(IN HWND hWnd, IN UINT wMsg, IN DWORD wParam, IN LONG lParam);
        !          3796: LONG APIENTRY CRITICAL XXX DefMDIChildProcW(IN HWND hWnd, IN UINT wMsg, IN DWORD wParam, IN LONG lParam);
        !          3797: #ifdef UNICODE
        !          3798: #define DefMDIChildProc DefMDIChildProcW
        !          3799: #else
        !          3800: #define DefMDIChildProc DefMDIChildProcA
        !          3801: #endif // !UNICODE
        !          3802: 
        !          3803: #ifndef NOMSG
        !          3804: BOOL APIENTRY CRITICAL XXX TranslateMDISysAccel(IN HWND hWndClient, IN LPMSG lpMsg);
        !          3805: #endif
        !          3806: 
        !          3807: UINT APIENTRY CRITICAL XXX ArrangeIconicWindows(IN HWND hWnd);
        !          3808: 
        !          3809: #endif /* NOMDI */
        !          3810: 
        !          3811: #endif /* NOUSER */
        !          3812: 
        !          3813: #ifndef NOHELP
        !          3814: 
        !          3815: /*  Help engine section.  */
        !          3816: 
        !          3817: typedef DWORD HELPPOLY;
        !          3818: typedef struct tagMULTIKEYHELP {
        !          3819:     DWORD mkSize;
        !          3820:     BYTE  mkKeylist;
        !          3821:     BYTE  szKeyphrase[1];
        !          3822: } MULTIKEYHELP;
        !          3823: 
        !          3824: //
        !          3825: // Commands to pass WinHelp()
        !          3826: //
        !          3827: 
        !          3828: #define HELP_CONTEXT    0x0001L   /* Display topic in ulTopic */
        !          3829: #define HELP_QUIT       0x0002L   /* Terminate help */
        !          3830: #define HELP_INDEX      0x0003L   /* Display index */
        !          3831: #define HELP_HELPONHELP 0x0004L   /* Display help on using help */
        !          3832: #define HELP_SETINDEX   0x0005L   /* Set the current Index for multi index help */
        !          3833: #define HELP_KEY        0x0101L   /* Display topic for keyword in offabData */
        !          3834: #define HELP_MULTIKEY   0x0201L
        !          3835: 
        !          3836: BOOL
        !          3837: APIENTRY CRITICAL XXX
        !          3838: WinHelpA(
        !          3839:     IN HWND hwndMain,
        !          3840:     IN LPSTR lpszHelp,
        !          3841:     IN DWORD dwCommand,
        !          3842:     IN HELPPOLY dwData
        !          3843:     );
        !          3844: BOOL
        !          3845: APIENTRY CRITICAL XXX
        !          3846: WinHelpW(
        !          3847:     IN HWND hwndMain,
        !          3848:     IN LPWSTR lpszHelp,
        !          3849:     IN DWORD dwCommand,
        !          3850:     IN HELPPOLY dwData
        !          3851:     );
        !          3852: #ifdef UNICODE
        !          3853: #define WinHelp WinHelpW
        !          3854: #else
        !          3855: #define WinHelp WinHelpA
        !          3856: #endif // !UNICODE
        !          3857: 
        !          3858: #endif /* NOHELP */
        !          3859: 
        !          3860: #ifndef NOPROFILER
        !          3861: 
        !          3862: /* function declarations for profiler routines contained in Windows libraries */
        !          3863: int  APIENTRY ProfInsChk(void);
        !          3864: void APIENTRY ProfSetup(int,int);
        !          3865: void APIENTRY ProfSampRate(int,int);
        !          3866: void APIENTRY ProfStart(void);
        !          3867: void APIENTRY ProfStop(void);
        !          3868: void APIENTRY ProfClear(void);
        !          3869: void APIENTRY ProfFlush(void);
        !          3870: void APIENTRY ProfFinish(void);
        !          3871: 
        !          3872: #endif /* NOPROFILER */
        !          3873: 
        !          3874: #ifndef NOSYSPARAMSINFO
        !          3875: /* Parameter for SystemParametersInfo() */
        !          3876: 
        !          3877: #define SPI_GETBEEP                 1
        !          3878: #define SPI_SETBEEP                 2
        !          3879: #define SPI_GETMOUSE                3
        !          3880: #define SPI_SETMOUSE                4
        !          3881: #define SPI_GETBORDER               5
        !          3882: #define SPI_SETBORDER               6
        !          3883: #define SPI_TIMEOUTS                7
        !          3884: #define SPI_KANJIMENU               8   /*; Internal */
        !          3885: #define SPI_GETKEYBOARDSPEED       10
        !          3886: #define SPI_SETKEYBOARDSPEED       11
        !          3887: #define SPI_LANGDRIVER             12
        !          3888: #define SPI_ICONHORIZONTALSPACING  13
        !          3889: #define SPI_GETSCREENSAVETIMEOUT   14
        !          3890: #define SPI_SETSCREENSAVETIMEOUT   15
        !          3891: #define SPI_GETSCREENSAVEACTIVE    16
        !          3892: #define SPI_SETSCREENSAVEACTIVE    17
        !          3893: #define SPI_GETGRIDGRANULARITY     18
        !          3894: #define SPI_SETGRIDGRANULARITY     19
        !          3895: #define SPI_SETDESKWALLPAPER       20
        !          3896: #define SPI_SETDESKPATTERN         21
        !          3897: #define SPI_GETKEYBOARDDELAY       22
        !          3898: #define SPI_SETKEYBOARDDELAY       23
        !          3899: #define SPI_ICONVERTICALSPACING    24
        !          3900: #define SPI_GETICONTITLEWRAP       25
        !          3901: #define SPI_SETICONTITLEWRAP       26
        !          3902: #define SPI_GETMENUDROPALIGNMENT   27
        !          3903: #define SPI_SETMENUDROPALIGNMENT   28
        !          3904: #define SPI_SETDOUBLECLKWIDTH      29
        !          3905: #define SPI_SETDOUBLECLKHEIGHT     30
        !          3906: #define SPI_GETICONTITLELOGFONT    31
        !          3907: #define SPI_SETDOUBLECLICKTIME     32
        !          3908: #define SPI_SETMOUSEBUTTONSWAP     33
        !          3909: 
        !          3910: 
        !          3911: BOOL CRITICAL XXX SystemParametersInfo(UINT, UINT, LONG, UINT);
        !          3912: 
        !          3913: /* Flags */
        !          3914: #define SPIF_UPDATEINIFILE    0x0001
        !          3915: #define SPIF_SENDWININICHANGE 0x0002
        !          3916: 
        !          3917: #endif  /* NOSYSPARAMSINFO  */
        !          3918: 
        !          3919: #endif // _WINUSER_

unix.superglobalmegacorp.com

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