Annotation of pmsdk/include/pmwin.h, revision 1.1

1.1     ! root        1: /***************************************************************************\
        !             2: *
        !             3: * Module Name: PMWIN.H
        !             4: *
        !             5: * OS/2 Presentation Manager Window Manager include file
        !             6: *
        !             7: * Copyright (c) 1987  Microsoft Corporation
        !             8: * Copyright (c) 1987  IBM Corporation
        !             9: *
        !            10: *****************************************************************************
        !            11: *
        !            12: * If INCL_WIN is defined, all subcomponents are included.
        !            13: *
        !            14: * Subcomponents marked with "+" are partially included by default:
        !            15: *
        !            16: *   #define:                To include:
        !            17: *
        !            18: * + INCL_WINCOMMON          Common Window Management
        !            19: * + INCL_WINWINDOWMGR       General window management
        !            20: * + INCL_WINMESSAGEMGR      Message management (requires INCL_WINCOMMON or
        !            21: *                                                        !INCL_NOCOMMON)
        !            22: * + INCL_WININPUT           Mouse and keyboard input
        !            23: * + INCL_WINDIALOGS         Dialog boxes
        !            24: * + INCL_WINSTATICS         Static controls
        !            25: * + INCL_WINBUTTONS         Button controls
        !            26: * + INCL_WINENTRYFIELDS     Entry Fields
        !            27: * + INCL_WINLISTBOXES       List box controls
        !            28: * + INCL_WINMENUS           Menu controls
        !            29: * + INCL_WINSCROLLBARS      Scroll bar controls
        !            30: * + INCL_WINFRAMEMGR        Frame manager
        !            31: *   INCL_WINFRAMECTLS       Frame controls (title bars & size border)
        !            32: *   INCL_WINRECTANGLES      Rectangle routines
        !            33: *   INCL_WINSYS             System values (and colors)
        !            34: *   INCL_WINTIMER           Timer routines
        !            35: * + INCL_WINACCELERATORS    Keyboard accelerators
        !            36: *   INCL_WINTRACKRECT       WinTrackRect() function
        !            37: *   INCL_WINCLIPBOARD       Clipboard manager
        !            38: * + INCL_WINCURSORS         Text cursors
        !            39: * + INCL_WINPOINTERS        Mouse pointers
        !            40: *   INCL_WINHOOKS           Hook manager
        !            41: * + INCL_WINSWITCHLIST      Shell Switch List API
        !            42: *   INCL_WINPROGRAMLIST     Shell Program List API
        !            43: *   INCL_WINSHELLDATA       Shell Data (?)
        !            44: *   INCL_WINCOUNTRY         Country support
        !            45: *   INCL_WINHEAP            Heap Manager
        !            46: *   INCL_WINATOM            Atom Manager
        !            47: *   INCL_WINCATCHTHROW      WinCatch/WinThrow support
        !            48: *   INCL_WINERRORS          Error code definitions
        !            49: *
        !            50: * NOTE: if INCL_ERRORS is defined, INCL_WINERRORS is automatically defined.
        !            51: *
        !            52: \***************************************************************************/
        !            53: 
        !            54: #define INCL_WININCLUDED
        !            55: 
        !            56: 
        !            57: #ifdef INCL_WIN
        !            58: 
        !            59: #define INCL_WINCOMMON
        !            60: #define INCL_WINWINDOWMGR
        !            61: #define INCL_WINMESSAGEMGR
        !            62: #define INCL_WININPUT
        !            63: #define INCL_WINDIALOGS
        !            64: #define INCL_WINSTATICS
        !            65: #define INCL_WINBUTTONS
        !            66: #define INCL_WINENTRYFIELDS
        !            67: #define INCL_WINLISTBOXES
        !            68: #define INCL_WINMENUS
        !            69: #define INCL_WINSCROLLBARS
        !            70: #define INCL_WINFRAMEMGR
        !            71: #define INCL_WINFRAMECTLS
        !            72: #define INCL_WINRECTANGLES
        !            73: #define INCL_WINSYS
        !            74: #define INCL_WINTIMER
        !            75: #define INCL_WINACCELERATORS
        !            76: #define INCL_WINTRACKRECT
        !            77: #define INCL_WINCLIPBOARD
        !            78: #define INCL_WINCURSORS
        !            79: #define INCL_WINPOINTERS
        !            80: #define INCL_WINHOOKS
        !            81: #define INCL_WINSWITCHLIST
        !            82: #define INCL_WINPROGRAMLIST
        !            83: #define INCL_WINSHELLDATA
        !            84: #define INCL_WINCOUNTRY
        !            85: #define INCL_WINHEAP
        !            86: #define INCL_WINATOM
        !            87: #define INCL_WINCATCHTHROW
        !            88: #define INCL_WINERRORS
        !            89: 
        !            90: #else
        !            91: #ifdef RC_INVOKED
        !            92: #define INCL_WININPUT
        !            93: #define INCL_WINDIALOGS
        !            94: #define INCL_WINSTATICS
        !            95: #define INCL_WINBUTTONS
        !            96: #define INCL_WINENTRYFIELDS
        !            97: #define INCL_WINLISTBOXES
        !            98: #define INCL_WINMENUS
        !            99: #define INCL_WINSCROLLBARS
        !           100: #define INCL_WINFRAMEMGR
        !           101: #define INCL_WINFRAMECTLS
        !           102: #define INCL_WINACCELERATORS
        !           103: #define INCL_WINPOINTERS
        !           104: #define INCL_WINMESSAGEMGR
        !           105: #endif /* RC_INVOKED */
        !           106: 
        !           107: #endif /* INCL_WIN */
        !           108: 
        !           109: 
        !           110: #ifdef INCL_ERRORS
        !           111: 
        !           112: #define INCL_WINERRORS
        !           113: 
        !           114: #endif  /* INCL_ERRORS */
        !           115: 
        !           116: /***************************************************************************/
        !           117: 
        !           118: /*** General Window Management */
        !           119: 
        !           120: #if (defined(INCL_WINCOMMON) | !defined(INCL_NOCOMMON) |  \
        !           121:      defined(INCL_WINMESSAGEMGR))
        !           122: typedef VOID FAR *MPARAM;      /* mp */
        !           123: typedef MPARAM FAR *PMPARAM;   /* pmp */
        !           124: typedef VOID FAR *MRESULT;     /* mres */
        !           125: typedef MRESULT FAR *PMRESULT; /* pmres */
        !           126: 
        !           127: /* Macros to make an MPARAM from standard types. */
        !           128: #define MPFROMP(p)                 ((MPARAM)(VOID FAR *)(p))
        !           129: #define MPFROMHWND(hwnd)           ((MPARAM)(HWND)(hwnd))
        !           130: #define MPFROMCHAR(ch)             ((MPARAM)(USHORT)(ch))
        !           131: #define MPFROMSHORT(s)             ((MPARAM)(USHORT)(s))
        !           132: #define MPFROM2SHORT(s1, s2)       ((MPARAM)MAKELONG(s1, s2))
        !           133: #define MPFROMSH2CH(s, uch1, uch2) ((MPARAM)MAKELONG(s, MAKESHORT(uch1, uch2)))
        !           134: #define MPFROMLONG(l)              ((MPARAM)(ULONG)(l))
        !           135: 
        !           136: /* Macros to extract standard types from an MPARAM */
        !           137: #define PVOIDFROMMP(mp)            ((VOID FAR *)(mp))
        !           138: #define HWNDFROMMP(mp)             ((HWND)(mp))
        !           139: #define CHAR1FROMMP(mp)            ((UCHAR)(mp))
        !           140: #define CHAR2FROMMP(mp)            ((UCHAR)((ULONG)mp >> 8))
        !           141: #define CHAR3FROMMP(mp)            ((UCHAR)((ULONG)mp >> 16))
        !           142: #define CHAR4FROMMP(mp)            ((UCHAR)((ULONG)mp >> 24))
        !           143: #define SHORT1FROMMP(mp)           ((USHORT)(ULONG)(mp))
        !           144: #define SHORT2FROMMP(mp)           ((USHORT)((ULONG)mp >> 16))
        !           145: #define LONGFROMMP(mp)             ((ULONG)(mp))
        !           146: 
        !           147: /* Macros to make an MRESULT from standard types. */
        !           148: #define MRFROMP(p)                 ((MRESULT)(VOID FAR *)(p))
        !           149: #define MRFROMSHORT(s)             ((MRESULT)(USHORT)(s))
        !           150: #define MRFROM2SHORT(s1, s2)       ((MRESULT)MAKELONG(s1, s2))
        !           151: #define MRFROMLONG(l)              ((MRESULT)(ULONG)(l))
        !           152: 
        !           153: /* Macros to extract standard types from an MRESULT */
        !           154: #define PVOIDFROMMR(mr)            ((VOID FAR *)(mr))
        !           155: #define SHORT1FROMMR(mr)           ((USHORT)((ULONG)mr))
        !           156: #define SHORT2FROMMR(mr)           ((USHORT)((ULONG)mr >> 16))
        !           157: #define LONGFROMMR(mr)             ((ULONG)(mr))
        !           158: 
        !           159: typedef MRESULT (PASCAL FAR *PFNWP)(HWND, USHORT, MPARAM, MPARAM);
        !           160: 
        !           161: #ifndef INCL_SAADEFS
        !           162: #define HWND_DESKTOP        (HWND)1
        !           163: #define HWND_OBJECT         (HWND)2
        !           164: #endif /* INCL_SAADEFS */
        !           165: 
        !           166: #define HWND_TOP            (HWND)3
        !           167: #define HWND_BOTTOM         (HWND)4
        !           168: 
        !           169: #ifndef INCL_SAADEFS
        !           170: #define HWND_THREADCAPTURE  (HWND)5
        !           171: #endif /* INCL_SAADEFS */
        !           172: 
        !           173: 
        !           174: /* Standard Window Styles */
        !           175: 
        !           176: #define WS_VISIBLE          0x80000000L
        !           177: #define WS_DISABLED         0x40000000L
        !           178: #define WS_CLIPCHILDREN     0x20000000L
        !           179: #define WS_CLIPSIBLINGS     0x10000000L
        !           180: #define WS_PARENTCLIP       0x08000000L
        !           181: #define WS_SAVEBITS         0x04000000L
        !           182: #define WS_SYNCPAINT        0x02000000L
        !           183: #define WS_MINIMIZED        0x01000000L
        !           184: #define WS_MAXIMIZED        0x00800000L
        !           185: 
        !           186: /* Dialog manager styles */
        !           187: 
        !           188: #define WS_GROUP            0x00010000L
        !           189: #define WS_TABSTOP          0x00020000L
        !           190: 
        !           191: 
        !           192: /* Class styles */
        !           193: 
        !           194: #ifndef INCL_SAADEFS
        !           195: #define CS_MOVENOTIFY       0x00000001L
        !           196: #define CS_SIZEREDRAW       0x00000004L
        !           197: #define CS_HITTEST          0x00000008L
        !           198: #define CS_PUBLIC           0x00000010L
        !           199: #define CS_FRAME            0x00000020L
        !           200: #define CS_CLIPCHILDREN     0x20000000L
        !           201: #define CS_CLIPSIBLINGS     0x10000000L
        !           202: #define CS_PARENTCLIP       0x08000000L
        !           203: #define CS_SAVEBITS         0x04000000L
        !           204: #define CS_SYNCPAINT        0x02000000L
        !           205: 
        !           206: 
        !           207: BOOL    APIENTRY WinRegisterClass(HAB hab, PSZ pszClassName, PFNWP pfnWndProc,
        !           208:                                   ULONG flStyle, USHORT cbWindowData);
        !           209: #endif /* INCL_SAADEFS */
        !           210: 
        !           211: MRESULT APIENTRY WinDefWindowProc(HWND hwnd, USHORT msg, MPARAM mp1,
        !           212:                                   MPARAM mp2);
        !           213: BOOL    APIENTRY WinDestroyWindow(HWND hwnd);
        !           214: BOOL    APIENTRY WinShowWindow(HWND hwnd, BOOL fShow);
        !           215: BOOL    APIENTRY WinQueryWindowRect(HWND hwnd, PRECTL prclDest);
        !           216: 
        !           217: #ifndef INCL_SAADEFS
        !           218: HPS   APIENTRY WinBeginPaint(HWND hwnd, HPS hps, PRECTL prclPaint);
        !           219: BOOL  APIENTRY WinEndPaint(HPS hps);
        !           220: HPS   APIENTRY WinGetPS(HWND hwnd);
        !           221: HPS   APIENTRY WinGetClipPS(HWND hwnd, HWND hwndClip, USHORT fs);
        !           222: BOOL  APIENTRY WinReleasePS(HPS hps);
        !           223: #endif /* INCL_SAADEFS */
        !           224: 
        !           225: HDC   APIENTRY WinOpenWindowDC(HWND hwnd);
        !           226: 
        !           227: SHORT APIENTRY WinScrollWindow(HWND hwnd, SHORT dx, SHORT dy,
        !           228:                                PRECTL prclScroll, PRECTL prclClip,
        !           229:                                HRGN hrgnUpdate, PRECTL prclUpdate,
        !           230:                                USHORT rgfsw);
        !           231: 
        !           232: /* WinGetClipPS() flags */
        !           233: 
        !           234: #ifndef INCL_SAADEFS
        !           235: #define PSF_LOCKWINDOWUPDATE    0x0001
        !           236: #define PSF_CLIPUPWARDS         0x0002
        !           237: #define PSF_CLIPDOWNWARDS       0x0004
        !           238: #define PSF_CLIPSIBLINGS        0x0008
        !           239: #define PSF_CLIPCHILDREN        0x0010
        !           240: #define PSF_PARENTCLIP          0x0020
        !           241: 
        !           242: #endif /* INCL_SAADEFS */
        !           243: 
        !           244: /* WinScrollWindow() flags */
        !           245: 
        !           246: #define SW_SCROLLCHILDREN   0x0001
        !           247: #define SW_INVALIDATERGN    0x0002
        !           248: 
        !           249: 
        !           250: 
        !           251: #ifndef INCL_SAADEFS
        !           252: BOOL  APIENTRY WinFillRect(HPS hps, PRECTL prcl, LONG lColor);
        !           253: #endif /* INCL_SAADEFS */
        !           254: 
        !           255: /*  End of Window Manager COMMON section */
        !           256: #endif /* not INCL_NOCOMMON */
        !           257: 
        !           258: HWND    APIENTRY WinCreateWindow(HWND hwndParent, PSZ pszClass, PSZ pszName,
        !           259:                                  ULONG flStyle, SHORT x, SHORT y, SHORT cx,
        !           260:                                  SHORT cy, HWND hwndOwner,
        !           261:                                  HWND hwndInsertBehind, USHORT id,
        !           262:                                  PVOID pCtlData, PVOID pPresParams);
        !           263: BOOL    APIENTRY WinEnableWindow(HWND hwnd, BOOL fEnable);
        !           264: BOOL    APIENTRY WinIsWindowEnabled(HWND hwnd);
        !           265: BOOL    APIENTRY WinEnableWindowUpdate(HWND hwnd, BOOL fEnable);
        !           266: BOOL    APIENTRY WinIsWindowVisible(HWND hwnd);
        !           267: SHORT   APIENTRY WinQueryWindowText(HWND hwnd, SHORT cchBufferMax,
        !           268:                                     PSZ pszBuffer);
        !           269: BOOL    APIENTRY WinSetWindowText(HWND hwnd, PSZ pszText);
        !           270: SHORT   APIENTRY WinQueryWindowTextLength(HWND hwnd);
        !           271: HWND    APIENTRY WinWindowFromID(HWND hwndParent, USHORT id);
        !           272: 
        !           273: #ifndef INCL_SAADEFS
        !           274: SHORT   APIENTRY WinMultWindowFromIDs(HWND hwndParent, PHWND prghwnd,
        !           275:                                       USHORT idFirst, USHORT idLast);
        !           276: BOOL    APIENTRY WinIsWindow(HAB hab, HWND hwnd);
        !           277: HWND    APIENTRY WinQueryWindow(HWND hwnd, SHORT cmd, BOOL fLock);
        !           278: 
        !           279: /* WinQueryWindow() codes */
        !           280: 
        !           281: #define QW_NEXT     0
        !           282: #define QW_PREV     1
        !           283: #define QW_TOP      2
        !           284: #define QW_BOTTOM   3
        !           285: #define QW_OWNER    4
        !           286: #define QW_PARENT   5
        !           287: #define QW_NEXTTOP  6
        !           288: #define QW_PREVTOP  7
        !           289: 
        !           290: #endif /* INCL_SAADEFS */
        !           291: 
        !           292: BOOL   APIENTRY WinSetParent(HWND hwnd, HWND hwndNewParent, BOOL fRedraw);
        !           293: 
        !           294: #ifndef INCL_SAADEFS
        !           295: BOOL   APIENTRY WinIsChild(HWND hwnd, HWND hwndParent);
        !           296: BOOL   APIENTRY WinSetOwner(HWND hwnd, HWND hwndNewOwner);
        !           297: BOOL   APIENTRY WinQueryWindowProcess(HWND hwnd, PPID ppid, PTID ptid);
        !           298: #endif /* INCL_SAADEFS */
        !           299: 
        !           300: HWND   APIENTRY WinQueryObjectWindow(HWND hwndDesktop);
        !           301: HWND   APIENTRY WinQueryDesktopWindow(HAB hab, HDC hdc);
        !           302: 
        !           303: /*** Window positioning functions */
        !           304: 
        !           305: /* WinSetMultWindowPos() structure */
        !           306: 
        !           307: typedef struct _SWP {     /* swp */
        !           308:     USHORT fs;
        !           309:     SHORT  cy;
        !           310:     SHORT  cx;
        !           311:     SHORT  y;
        !           312:     SHORT  x;
        !           313:     HWND   hwndInsertBehind;
        !           314:     HWND   hwnd;
        !           315: } SWP;
        !           316: typedef SWP FAR *PSWP;
        !           317: 
        !           318: BOOL   APIENTRY WinSetWindowPos(HWND hwnd, HWND hwndInsertBehind, SHORT x,
        !           319:                                 SHORT y, SHORT cx, SHORT cy, USHORT fs);
        !           320: BOOL   APIENTRY WinQueryWindowPos(HWND hwnd, PSWP pswp);
        !           321: BOOL   APIENTRY WinSetMultWindowPos(HAB hab, PSWP pswp, SHORT cswp);
        !           322: 
        !           323: /* WinSetWindowPos() flags */
        !           324: 
        !           325: #define SWP_SIZE        0x0001
        !           326: #define SWP_MOVE        0x0002
        !           327: #define SWP_ZORDER      0x0004
        !           328: #define SWP_SHOW        0x0008
        !           329: #define SWP_HIDE        0x0010
        !           330: #define SWP_NOREDRAW    0x0020
        !           331: #define SWP_NOADJUST    0x0040
        !           332: #define SWP_ACTIVATE    0x0080
        !           333: #define SWP_DEACTIVATE  0x0100
        !           334: #define SWP_MINIMIZE    0x0400
        !           335: #define SWP_MAXIMIZE    0x0800
        !           336: #define SWP_RESTORE     0x1000
        !           337: 
        !           338: 
        !           339: /* Window painting */
        !           340: 
        !           341: BOOL  APIENTRY WinUpdateWindow(HWND hwnd);
        !           342: 
        !           343: #ifndef INCL_SAADEFS
        !           344: 
        !           345: BOOL  APIENTRY WinInvalidateRect(HWND hwnd, PRECTL pwrc, BOOL fIncludeChildren);
        !           346: BOOL  APIENTRY WinInvalidateRegion(HWND hwnd, HRGN hrgn,
        !           347:                                    BOOL fIncludeChildren);
        !           348: 
        !           349: 
        !           350: /* Drawing helpers */
        !           351: 
        !           352: BOOL  APIENTRY WinInvertRect(HPS hps, PRECTL prcl);
        !           353: BOOL  APIENTRY WinDrawBitmap(HPS hpsDst, HBITMAP hbm, PRECTL pwrcSrc,
        !           354:                              PPOINTL pptlDst, LONG clrFore, LONG clrBack,
        !           355:                             USHORT fs);
        !           356: 
        !           357: /* WinDrawBitmap() flags */
        !           358: 
        !           359: #define DBM_NORMAL      0x0000
        !           360: #define DBM_INVERT      0x0001
        !           361: #define DBM_HALFTONE    0x0002
        !           362: #define DBM_STRETCH     0x0004
        !           363: #define DBM_IMAGEATTRS 0x0008
        !           364: 
        !           365: 
        !           366: SHORT APIENTRY WinDrawText(HPS hps, SHORT cchText, PSZ pchText, PRECTL prcl,
        !           367:                           LONG clrFore, LONG clrBack, USHORT rgfCmd);
        !           368: /*
        !           369:  * WinDrawText() codes:
        !           370:  * From DT_LEFT to DT_EXTERNALLEADING, the codes are designed to be OR'ed with
        !           371:  * SS_TEXT to create variations of the basic text static item.
        !           372:  */
        !           373: #define DT_LEFT             0x0000
        !           374: #define DT_EXTERNALLEADING  0x0080
        !           375: #define DT_CENTER           0x0100
        !           376: #define DT_RIGHT            0x0200
        !           377: #define DT_TOP              0x0000
        !           378: #define DT_VCENTER          0x0400
        !           379: #define DT_BOTTOM           0x0800
        !           380: #define DT_HALFTONE         0x1000
        !           381: #define DT_MNEMONIC         0x2000
        !           382: #define DT_WORDBREAK        0x4000
        !           383: #define DT_ERASERECT        0x8000
        !           384: #define DT_QUERYEXTENT      0x0002
        !           385: #define DT_TEXTATTRS       0x0040
        !           386: 
        !           387: 
        !           388: BOOL APIENTRY WinDrawBorder(HPS hps, PRECTL prcl, SHORT cx, SHORT cy,
        !           389:                            LONG clrFore, LONG clrBack, USHORT rgfCmd);
        !           390: 
        !           391: /* WinDrawBorder() flags */
        !           392: 
        !           393: #define DB_PATCOPY          0x0000
        !           394: #define DB_PATINVERT        0x0001
        !           395: #define DB_DESTINVERT       0x0002
        !           396: #define DB_AREAMIXMODE      0x0003
        !           397: 
        !           398: #define DB_ROP              0x0007
        !           399: #define DB_INTERIOR         0x0008
        !           400: #define DB_AREAATTRS       0x0010
        !           401: #define DB_STANDARD         0x0100
        !           402: #define DB_DLGBORDER        0x0200
        !           403: 
        !           404: 
        !           405: /** Resource loading functions */
        !           406: 
        !           407: SHORT   APIENTRY WinLoadString(HAB hab, HMODULE hmod, USHORT id, SHORT cchMax,
        !           408:                                PSZ pchBuffer);
        !           409: SHORT   APIENTRY WinLoadMessage(HAB hab, HMODULE hmod, USHORT id, SHORT cchMax,
        !           410:                                 PSZ pchBuffer);
        !           411: 
        !           412: #endif /* INCL_SAADEFS */
        !           413: 
        !           414: 
        !           415: /* WinInitialize/WinTerminate Interface declarations */
        !           416: 
        !           417: typedef struct _QVERSDATA {   /* qver */
        !           418:     USHORT environment;
        !           419:     USHORT version;
        !           420: } QVERSDATA;
        !           421: 
        !           422: #define QV_OS2          0x0000
        !           423: #define QV_CMS          0x0001
        !           424: #define QV_TSO          0x0002
        !           425: #define QV_TSOBATCH     0x0003
        !           426: 
        !           427: 
        !           428: ULONG  APIENTRY WinQueryVersion(HAB hab);
        !           429: HAB    APIENTRY WinInitialize(USHORT);
        !           430: BOOL   APIENTRY WinTerminate(HAB hab);
        !           431: 
        !           432: 
        !           433: 
        !           434: 
        !           435: /**** Window Manager Subsection */
        !           436: 
        !           437: #if (defined(INCL_WINWINDOWMGR) | !defined(INCL_NOCOMMON))
        !           438: 
        !           439: /**** Window Manager COMMON Subsection */
        !           440: BOOL APIENTRY WinSetActiveWindow(HWND hwndDesktop, HWND hwnd);
        !           441: 
        !           442: #endif /* Window Manager COMMON subsection */
        !           443: 
        !           444: #ifdef INCL_WINWINDOWMGR
        !           445: /* WM_CREATE structure */
        !           446: 
        !           447: typedef struct _CREATESTRUCT {    /* crst */
        !           448:     PVOID  pPresParams;
        !           449:     PVOID  pCtlData;
        !           450:     USHORT id;
        !           451:     HWND   hwndInsertBehind;
        !           452:     HWND   hwndOwner;
        !           453:     SHORT  cy;
        !           454:     SHORT  cx;
        !           455:     SHORT  y;
        !           456:     SHORT  x;
        !           457:     ULONG  flStyle;
        !           458:     PSZ    pszText;
        !           459:     PSZ    pszClass;
        !           460:     HWND   hwndParent;
        !           461: } CREATESTRUCT;
        !           462: typedef CREATESTRUCT FAR *PCREATESTRUCT;
        !           463: 
        !           464: /* WinQueryClassInfo() structure */
        !           465: 
        !           466: typedef struct _CLASSINFO {     /* clsi */
        !           467:     ULONG   flClassStyle;
        !           468:     PFNWP   pfnWindowProc;
        !           469:     USHORT  cbWindowData;
        !           470: } CLASSINFO;
        !           471: typedef CLASSINFO FAR *PCLASSINFO;
        !           472: 
        !           473: #ifndef INCL_SAADEFS
        !           474: PFNWP  APIENTRY WinSubclassWindow(HWND hwnd, PFNWP pfnwp);
        !           475: #endif /* INCL_SAADEFS */
        !           476: 
        !           477: SHORT  APIENTRY WinQueryClassName(HWND hwnd, SHORT cchMax, PSZ pch);
        !           478: BOOL   APIENTRY WinQueryClassInfo(HAB hab, PSZ pszClassName,
        !           479:                                   PCLASSINFO pClassInfo);
        !           480: 
        !           481: HWND   APIENTRY WinQueryActiveWindow(HWND hwndDesktop, BOOL fLock);
        !           482: 
        !           483: #ifndef INCL_SAADEFS
        !           484: BOOL   APIENTRY WinIsThreadActive(HAB hab);
        !           485: 
        !           486: HWND   APIENTRY WinQuerySysModalWindow(HWND hwndDesktop, BOOL fLock);
        !           487: BOOL   APIENTRY WinSetSysModalWindow(HWND hwndDesktop, HWND hwnd);
        !           488: 
        !           489: HWND   APIENTRY WinLockWindow(HWND hwnd, BOOL fLock);
        !           490: #endif /* INCL_SAADEFS */
        !           491: 
        !           492: USHORT APIENTRY WinRegisterWindowDestroy(HWND hwnd, BOOL fRegister);
        !           493: 
        !           494: #ifndef INCL_SAADEFS
        !           495: SHORT  APIENTRY WinQueryWindowLockCount(HWND hwnd);
        !           496: #endif /* INCL_SAADEFS */
        !           497: 
        !           498: #ifndef INCL_SAADEFS
        !           499: USHORT APIENTRY WinQueryWindowUShort(HWND hwnd, SHORT index);
        !           500: BOOL   APIENTRY WinSetWindowUShort(HWND hwnd, SHORT index, USHORT us);
        !           501: ULONG  APIENTRY WinQueryWindowULong(HWND hwnd, SHORT index);
        !           502: BOOL   APIENTRY WinSetWindowULong(HWND hwnd, SHORT index, ULONG ul);
        !           503: PVOID  APIENTRY WinQueryWindowPtr(HWND hwnd, SHORT index);
        !           504: BOOL   APIENTRY WinSetWindowPtr(HWND hwnd, SHORT index, PVOID p);
        !           505: BOOL   APIENTRY WinSetWindowBits(HWND hwnd, SHORT index, ULONG flData, ULONG flMask);
        !           506: 
        !           507: /* Standard WinQueryWindowUShort/ULong() indexes */
        !           508: 
        !           509: #define QWS_USER    0
        !           510: #define QWS_ID      (-1)
        !           511: #define QWS_MIN     (-1)
        !           512: 
        !           513: #define QWL_USER    0
        !           514: #define QWL_STYLE   (-2)
        !           515: #define QWP_PFNWP   (-3)
        !           516: #define QWL_HMQ     (-4)
        !           517: #define QWL_MIN     (-4)
        !           518: 
        !           519: /* WC_FRAME WinQueryWindowUShort/ULong() indexes */
        !           520: 
        !           521: #define QWL_HHEAP       0x0004
        !           522: #define QWL_HWNDFOCUSSAVE 0x0018
        !           523: 
        !           524: #define QWS_FLAGS       0x0008
        !           525: #define QWS_RESULT      0x000a
        !           526: #define QWS_XRESTORE    0x000c
        !           527: #define QWS_YRESTORE    0x000e
        !           528: #define QWS_CXRESTORE   0x0010
        !           529: #define QWS_CYRESTORE   0x0012
        !           530: #define QWS_XMINIMIZE   0x0014
        !           531: #define QWS_YMINIMIZE   0x0016
        !           532: 
        !           533: 
        !           534: /* Window enumeration */
        !           535: 
        !           536: typedef LHANDLE HENUM;  /* henum */
        !           537: 
        !           538: HENUM APIENTRY WinBeginEnumWindows(HWND hwnd);
        !           539: HWND  APIENTRY WinGetNextWindow(HENUM henum);
        !           540: BOOL  APIENTRY WinEndEnumWindows(HENUM henum);
        !           541: 
        !           542: HWND  APIENTRY WinWindowFromPoint(HWND hwnd, PPOINTL pptl, BOOL fChildren,
        !           543:                                   BOOL fLock);
        !           544: BOOL  APIENTRY WinMapWindowPoints(HWND hwndFrom, HWND hwndTo, PPOINTL prgptl,
        !           545:                                   SHORT cwpt);
        !           546: 
        !           547: /* More window painting stuff */
        !           548: 
        !           549: BOOL  APIENTRY WinValidateRect(HWND hwnd, PRECTL prcl, BOOL fIncludeChildren);
        !           550: BOOL  APIENTRY WinValidateRegion(HWND hwnd, HRGN hrgn, BOOL fIncludeChildren);
        !           551: HWND  APIENTRY WinWindowFromDC(HDC hdc);
        !           552: HDC   APIENTRY WinQueryWindowDC(HWND hwnd);
        !           553: HPS   APIENTRY WinGetScreenPS(HWND hwndDesktop);
        !           554: BOOL  APIENTRY WinQueryUpdateRect(HWND hwnd, PRECTL prcl);
        !           555: SHORT APIENTRY WinQueryUpdateRegion(HWND hwnd, HRGN hrgn);
        !           556: SHORT APIENTRY WinExcludeUpdateRegion(HPS hps, HWND hwnd);
        !           557: BOOL  APIENTRY WinLockWindowUpdate(HWND hwndDesktop, HWND hwndLockUpdate);
        !           558: SHORT APIENTRY WinLockVisRegions(HWND hwndDesktop, BOOL fLock);
        !           559: #endif /* INCL_SAADEFS */
        !           560: 
        !           561: #endif /* INCL_WINWINDOWMGR */
        !           562: 
        !           563: #if (defined(INCL_WINMESSAGEMGR) | !defined(INCL_NOCOMMON))
        !           564: 
        !           565: /* QMSG structure */
        !           566: 
        !           567: typedef struct _QMSG {  /* qmsg */
        !           568:     HWND hwnd;
        !           569:     USHORT msg;
        !           570:     MPARAM mp1;
        !           571:     MPARAM mp2;
        !           572:     ULONG time;
        !           573:     POINTL ptl;
        !           574: } QMSG;
        !           575: typedef QMSG FAR *PQMSG;
        !           576: 
        !           577: typedef LHANDLE HMQ;    /* hmq */
        !           578: 
        !           579: 
        !           580: /* Standard Window Messages */
        !           581: 
        !           582: #define WM_NULL             0x0000
        !           583: #define WM_CREATE           0x0001
        !           584: #define WM_DESTROY          0x0002
        !           585: 
        !           586: #ifndef INCL_SAADEFS
        !           587: #define WM_OTHERWINDOWDESTROYED 0x0003
        !           588: #endif /* INCL_SAADEFS */
        !           589: 
        !           590: #define WM_ENABLE           0x0004
        !           591: #define WM_SHOW             0x0005
        !           592: #define WM_MOVE             0x0006
        !           593: #define WM_SIZE             0x0007
        !           594: #define WM_ADJUSTWINDOWPOS  0x0008
        !           595: 
        !           596: #ifndef INCL_SAADEFS
        !           597: #define WM_CALCVALIDRECTS   0x0009
        !           598: #endif /* INCL_SAADEFS */
        !           599: 
        !           600: #define WM_SETWINDOWPARAMS  0x000a
        !           601: #define WM_QUERYWINDOWPARAMS 0x000b
        !           602: #define WM_HITTEST          0x000c
        !           603: #define WM_ACTIVATE         0x000d
        !           604: #define WM_SETFOCUS         0x000f
        !           605: #define WM_SETSELECTION     0x0010
        !           606: 
        !           607: #define WM_COMMAND          0x0020
        !           608: #define WM_SYSCOMMAND       0x0021
        !           609: #define WM_HELP             0x0022
        !           610: #define WM_PAINT            0x0023
        !           611: 
        !           612: #ifndef INCL_SAADEFS
        !           613: #define WM_TIMER            0x0024
        !           614: #define WM_SEM1             0x0025
        !           615: #define WM_SEM2             0x0026
        !           616: #define WM_SEM3             0x0027
        !           617: #define WM_SEM4             0x0028
        !           618: #endif /* INCL_SAADEFS */
        !           619: 
        !           620: #define WM_CLOSE            0x0029
        !           621: #define WM_QUIT             0x002a
        !           622: #define WM_SYSCOLORCHANGE   0x002b
        !           623: #define WM_SYSVALUECHANGED  0x002d
        !           624: 
        !           625: /* Control notification messages */
        !           626: 
        !           627: #define WM_CONTROL          0x0030
        !           628: #define WM_VSCROLL          0x0031
        !           629: #define WM_HSCROLL          0x0032
        !           630: #define WM_INITMENU         0x0033
        !           631: #define WM_MENUSELECT       0x0034
        !           632: #define WM_MENUEND          0x0035
        !           633: #define WM_DRAWITEM         0x0036
        !           634: #define WM_MEASUREITEM      0x0037
        !           635: #define WM_CONTROLPOINTER   0x0038
        !           636: #define WM_CONTROLHEAP      0x0039
        !           637: #define WM_QUERYDLGCODE     0x003a
        !           638: #define WM_INITDLG          0x003b
        !           639: #define WM_SUBSTITUTESTRING 0x003c
        !           640: #define WM_MATCHMNEMONIC    0x003d
        !           641: 
        !           642: 
        !           643: #define WM_USER             0x1000
        !           644: 
        !           645: /* WM_COMMAND msg source codes */
        !           646: 
        !           647: #define CMDSRC_PUSHBUTTON   1
        !           648: #define CMDSRC_MENU         2
        !           649: #define CMDSRC_ACCELERATOR  3
        !           650: #define CMDSRC_OTHER        0
        !           651: 
        !           652: /*
        !           653:  * The following structure and macro are used to access the
        !           654:  * WM_COMMAND, WM_HELP, and WM_SYSCOMMAND message parameters:
        !           655:  */
        !           656: struct _COMMANDMSG {
        !           657:     USHORT source;          /* mp2 */
        !           658:     BOOL   fMouse;
        !           659:     USHORT cmd;             /* mp1 */
        !           660:     USHORT unused;
        !           661: };
        !           662: 
        !           663: #define COMMANDMSG(pmsg) \
        !           664:         ((struct _COMMANDMSG FAR *)((PBYTE)pmsg - sizeof(MPARAM) * 2))
        !           665: 
        !           666: /*
        !           667:  * The following structure is used by the WinQueryQueueInfo() routine
        !           668:  */
        !           669: #ifndef INCL_SAADEFS
        !           670: typedef struct _MQINFO {    /* mqi */
        !           671:     USHORT  cb;
        !           672:     PID     pid;
        !           673:     TID     tid;
        !           674:     USHORT  cmsgs;
        !           675:     PVOID   pReserved;
        !           676: } MQINFO;
        !           677: typedef MQINFO FAR *PMQINFO;
        !           678: #endif /* INCL_SAADEFS */
        !           679: 
        !           680: 
        !           681: MRESULT APIENTRY WinSendMsg(HWND hwnd, USHORT msg, MPARAM mp1, MPARAM mp2);
        !           682: 
        !           683: #ifndef INCL_SAADEFS
        !           684: 
        !           685: BOOL    APIENTRY WinQueryQueueInfo(HMQ hmq, PMQINFO pmqi, USHORT cbCopy);
        !           686: #endif /* INCL_SAADEFS */
        !           687: 
        !           688: HMQ     APIENTRY WinCreateMsgQueue(HAB hab, SHORT cmsg);
        !           689: BOOL    APIENTRY WinDestroyMsgQueue(HMQ hmq);
        !           690: 
        !           691: 
        !           692: #ifndef INCL_SAADEFS
        !           693: BOOL    APIENTRY WinCancelShutdown(HMQ hmq, BOOL fCancelAlways);
        !           694: #endif /* INCL_SAADEFS */
        !           695: 
        !           696: BOOL    APIENTRY WinGetMsg(HAB hab, PQMSG pqmsg, HWND hwndFilter,
        !           697:                            USHORT msgFilterFirst, USHORT msgFilterLast);
        !           698: BOOL    APIENTRY WinPeekMsg(HAB hab, PQMSG pqmsg, HWND hwndFilter,
        !           699:                             USHORT msgFilterFirst, USHORT msgFilterLast,
        !           700:                             USHORT fs);
        !           701: ULONG   APIENTRY WinDispatchMsg(HAB hab, PQMSG pqmsg);
        !           702: BOOL    APIENTRY WinPostMsg(HWND hwnd, USHORT msg, MPARAM mp1, MPARAM mp2);
        !           703: 
        !           704: /* WinPeekMsg() constants */
        !           705: 
        !           706: #define PM_REMOVE       0x0001
        !           707: #define PM_NOREMOVE     0x0000
        !           708: 
        !           709: 
        !           710: #endif /* Message Manager Common Subsection */
        !           711: 
        !           712: #ifdef INCL_WINMESSAGEMGR
        !           713: 
        !           714: /* WM_CALCVALIDRECTS return flags */
        !           715: 
        !           716: #ifndef INCL_SAADEFS
        !           717: #define CVR_ALIGNLEFT       0x0001
        !           718: #define CVR_ALIGNBOTTOM     0x0002
        !           719: #define CVR_ALIGNRIGHT      0x0004
        !           720: #define CVR_ALIGNTOP        0x0008
        !           721: #define CVR_REDRAW          0x0010
        !           722: 
        !           723: 
        !           724: /* WM_HITTEST return codes */
        !           725: 
        !           726: #define HT_NORMAL       0
        !           727: #define HT_TRANSPARENT  (-1)
        !           728: #define HT_DISCARD      (-2)
        !           729: #define HT_ERROR        (-3)
        !           730: 
        !           731: /* WM_SET/QUERYWINDOWPARAMS structures and flags */
        !           732: 
        !           733: typedef struct _WNDPARAMS {   /* wprm */
        !           734:     USHORT fsStatus;
        !           735:     USHORT cchText;
        !           736:     PSZ    pszText;
        !           737:     USHORT cbPresParams;
        !           738:     PVOID  pPresParams;
        !           739:     USHORT cbCtlData;
        !           740:     PVOID  pCtlData;
        !           741: } WNDPARAMS;
        !           742: typedef WNDPARAMS FAR *PWNDPARAMS;
        !           743: 
        !           744: 
        !           745: /* Flags used by WM_SET/QUERYWINDOWPARAMS */
        !           746: 
        !           747: #define WPM_TEXT        0x0001
        !           748: #define WPM_CTLDATA     0x0002
        !           749: #define WPM_PRESPARAMS  0x0004
        !           750: #define WPM_CCHTEXT     0x0008
        !           751: #define WPM_CBCTLDATA   0x0010
        !           752: #define WPM_CBPRESPARAMS 0x0020
        !           753: 
        !           754: 
        !           755: BOOL    APIENTRY WinInSendMsg(HAB hab);
        !           756: BOOL    APIENTRY WinBroadcastMsg(HWND hwnd, USHORT msg, MPARAM mp1, MPARAM mp2,
        !           757:                                  BOOL rgf);
        !           758: 
        !           759: 
        !           760: /* WinBroadcastMsg codes */
        !           761: 
        !           762: #define BMSG_POST           0x0000
        !           763: #define BMSG_SEND           0x0001
        !           764: #define BMSG_POSTQUEUE      0x0002
        !           765: #define BMSG_DESCENDANTS    0x0004
        !           766: #define BMSG_FRAMEONLY      0x0008
        !           767: 
        !           768: 
        !           769: #endif /* INCL_SAADEFS */
        !           770: 
        !           771: 
        !           772: BOOL  APIENTRY WinWaitMsg(HAB hab, USHORT msgFirst, USHORT msgLast);
        !           773: 
        !           774: #ifndef INCL_SAADEFS
        !           775: ULONG APIENTRY WinQueryQueueStatus(HWND hwndDesktop);
        !           776: 
        !           777: /* WinQueryQueueStatus() constants */
        !           778: 
        !           779: #define QS_KEY          0x0001
        !           780: #define QS_MOUSEBUTTON  0x0002
        !           781: #define QS_MOUSEMOVE    0x0004
        !           782: #define QS_MOUSE        0x0006      /* QS_MOUSEMOVE|QS_MOUSEBUTTON */
        !           783: #define QS_TIMER        0x0008
        !           784: #define QS_PAINT        0x0010
        !           785: #define QS_POSTMSG      0x0020
        !           786: #define QS_SEM1         0x0040
        !           787: #define QS_SEM2         0x0080
        !           788: #define QS_SEM3         0x0100
        !           789: #define QS_SEM4         0x0200
        !           790: #define QS_SENDMSG      0x0400
        !           791: 
        !           792: 
        !           793: BOOL  APIENTRY WinPostQueueMsg(HMQ hmq, USHORT msg, MPARAM mp1, MPARAM mp2);
        !           794: 
        !           795: BOOL  APIENTRY WinQueryMsgPos(HAB hab, PPOINTL pptl);
        !           796: ULONG APIENTRY WinQueryMsgTime(HAB hab);
        !           797: 
        !           798: USHORT APIENTRY WinMsgSemWait(HSEM hsem, LONG dtTimeout);
        !           799: USHORT APIENTRY WinMsgMuxSemWait(PUSHORT pisemCleared, PVOID pmxsl, LONG dtTimeout);
        !           800: #endif /* INCL_SAADEFS */
        !           801: 
        !           802: /* WinSetMsgInterest() constants */
        !           803: 
        !           804: #define SMI_NOINTEREST      0x0001
        !           805: 
        !           806: BOOL  APIENTRY WinSetMsgInterest(HWND hwnd, USHORT msg_class, SHORT control);
        !           807: 
        !           808: #endif /* INCL_WINMESSAGEMGR */
        !           809: 
        !           810: /*** Keyboard and mouse input stuff */
        !           811: 
        !           812: #if (defined(INCL_WININPUT) | !defined(INCL_NOCOMMON))
        !           813: 
        !           814: /*** Keyboard and mouse input COMMON subsection */
        !           815: BOOL  APIENTRY WinSetFocus(HWND hwndDesktop, HWND hwndSetFocus);
        !           816: BOOL  APIENTRY WinFocusChange(HWND hwndDesktop, HWND hwndSetFocus, USHORT fsFocusChange);
        !           817: 
        !           818: #define FC_NOSETFOCUS              0x0001
        !           819: #define FC_NOLOSEFOCUS             0x0002
        !           820: #define FC_NOSETACTIVE             0x0004
        !           821: #define FC_NOLOSEACTIVE            0x0008
        !           822: #define FC_NOSETSELECTION          0x0010
        !           823: #define FC_NOLOSESELECTION         0x0020
        !           824: #define FC_NOBRINGTOTOP            0x0040
        !           825: #define FC_NOBRINGTOTOPFIRSTWINDOW 0x0080
        !           826: #define FC_SETACTIVEFOCUS          0x0100
        !           827: #define FC_QUERYACTIVE             0x0200
        !           828: #define FC_QUERYTASK               0x0400
        !           829: 
        !           830: 
        !           831: #endif  /* Keyboard and mouse input COMMON subsection */
        !           832: 
        !           833: #ifdef INCL_WININPUT
        !           834: 
        !           835: #ifndef INCL_SAADEFS
        !           836: BOOL  APIENTRY WinSetCapture(HWND hwndDesktop, HWND hwnd);
        !           837: HWND  APIENTRY WinQueryCapture(HWND hwndDesktop, BOOL fLock);
        !           838: #endif /* INCL_SAADEFS */
        !           839: 
        !           840: /* Mouse input messages */
        !           841: 
        !           842: #ifndef INCL_SAADEFS
        !           843: #define WM_MOUSEFIRST       0x0070
        !           844: #define WM_MOUSELAST        0x0079
        !           845: #define WM_BUTTONCLICKFIRST 0x0071
        !           846: #define WM_BUTTONCLICKLAST  0x0079
        !           847: 
        !           848: #define WM_MOUSEMOVE        0x0070
        !           849: #endif /* INCL_SAADEFS */
        !           850: 
        !           851: #define WM_BUTTON1DOWN      0x0071
        !           852: 
        !           853: #ifndef INCL_SAADEFS
        !           854: #define WM_BUTTON1UP        0x0072
        !           855: #define WM_BUTTON1DBLCLK    0x0073
        !           856: #define WM_BUTTON2DOWN      0x0074
        !           857: #define WM_BUTTON2UP        0x0075
        !           858: #define WM_BUTTON2DBLCLK    0x0076
        !           859: #define WM_BUTTON3DOWN      0x0077
        !           860: #define WM_BUTTON3UP        0x0078
        !           861: #define WM_BUTTON3DBLCLK    0x0079
        !           862: #endif /* INCL_SAADEFS */
        !           863: 
        !           864: HWND  APIENTRY WinQueryFocus(HWND hwndDesktop, BOOL fLock);
        !           865: 
        !           866: 
        !           867: /* Key/Character input msg     */
        !           868: 
        !           869: #define WM_CHAR             0x007a
        !           870: #define WM_QUEUESYNC        0x007b
        !           871: 
        !           872: /* WM_CHAR fs field bits */
        !           873: 
        !           874: #define KC_CHAR             0x0001
        !           875: #define KC_VIRTUALKEY       0x0002
        !           876: #define KC_SCANCODE         0x0004
        !           877: 
        !           878: #ifndef INCL_SAADEFS
        !           879: #define KC_SHIFT            0x0008
        !           880: #define KC_CTRL             0x0010
        !           881: #define KC_ALT              0x0020
        !           882: #define KC_KEYUP            0x0040
        !           883: #define KC_PREVDOWN         0x0080
        !           884: #define KC_LONEKEY          0x0100
        !           885: #define KC_DEADKEY          0x0200
        !           886: #define KC_COMPOSITE        0x0400
        !           887: #define KC_INVALIDCOMP      0x0800
        !           888: #define KC_TOGGLE           0x1000
        !           889: #define KC_INVALIDCHAR      0x2000
        !           890: #endif /* INCL_SAADEFS */
        !           891: 
        !           892: /*
        !           893:  * The following structure and macro are used to access the
        !           894:  * WM_MOUSEMOVE, and WM_BUTTON* message parameters
        !           895:  */
        !           896: struct _MOUSEMSG {
        !           897:     USHORT codeHitTest;     /* mp2 */
        !           898:     USHORT unused;
        !           899:     SHORT  x;               /* mp1 */
        !           900:     SHORT  y;
        !           901: };
        !           902: 
        !           903: #define MOUSEMSG(pmsg) \
        !           904:         ((struct _MOUSEMSG FAR *)((PBYTE)pmsg - sizeof(MPARAM) * 2))
        !           905: 
        !           906: /*
        !           907:  * The following structure and macro are used to access the
        !           908:  * WM_CHAR message parameters.
        !           909:  */
        !           910: struct _CHARMSG {
        !           911:     USHORT chr;             /* mp2 */
        !           912:     USHORT vkey;
        !           913:     USHORT fs;              /* mp1 */
        !           914:     UCHAR  cRepeat;
        !           915:     UCHAR  scancode;
        !           916: };
        !           917: 
        !           918: #define CHARMSG(pmsg) \
        !           919:         ((struct _CHARMSG FAR *)((PBYTE)pmsg - sizeof(MPARAM) * 2))
        !           920: 
        !           921: /*** Virtual key values */
        !           922: 
        !           923: #define VK_BUTTON1      0x01
        !           924: #define VK_BUTTON2      0x02
        !           925: #define VK_BUTTON3      0x03
        !           926: #define VK_BREAK        0x04
        !           927: #define VK_BACKSPACE    0x05
        !           928: #define VK_TAB          0x06
        !           929: #define VK_BACKTAB      0x07
        !           930: #define VK_NEWLINE      0x08
        !           931: #define VK_SHIFT        0x09
        !           932: #define VK_CTRL         0x0A
        !           933: #define VK_ALT          0x0B
        !           934: #define VK_ALTGRAF      0x0C
        !           935: #define VK_PAUSE        0x0D
        !           936: #define VK_CAPSLOCK     0x0E
        !           937: #define VK_ESC          0x0F
        !           938: #define VK_SPACE        0x10
        !           939: #define VK_PAGEUP       0x11
        !           940: #define VK_PAGEDOWN     0x12
        !           941: #define VK_END          0x13
        !           942: #define VK_HOME         0x14
        !           943: #define VK_LEFT         0x15
        !           944: #define VK_UP           0x16
        !           945: #define VK_RIGHT        0x17
        !           946: #define VK_DOWN         0x18
        !           947: #define VK_PRINTSCRN    0x19
        !           948: #define VK_INSERT       0x1A
        !           949: #define VK_DELETE       0x1B
        !           950: #define VK_SCRLLOCK     0x1C
        !           951: #define VK_NUMLOCK      0x1D
        !           952: #define VK_ENTER        0x1E
        !           953: #define VK_SYSRQ        0x1F
        !           954: #define VK_F1           0x20
        !           955: #define VK_F2           0x21
        !           956: #define VK_F3           0x22
        !           957: #define VK_F4           0x23
        !           958: #define VK_F5           0x24
        !           959: #define VK_F6           0x25
        !           960: #define VK_F7           0x26
        !           961: #define VK_F8           0x27
        !           962: #define VK_F9           0x28
        !           963: #define VK_F10          0x29
        !           964: #define VK_F11          0x2A
        !           965: #define VK_F12          0x2B
        !           966: #define VK_F13          0x2C
        !           967: #define VK_F14          0x2D
        !           968: #define VK_F15          0x2E
        !           969: #define VK_F16          0x2F
        !           970: #define VK_F17          0x30
        !           971: #define VK_F18          0x31
        !           972: #define VK_F19          0x32
        !           973: #define VK_F20          0x33
        !           974: #define VK_F21          0x34
        !           975: #define VK_F22          0x35
        !           976: #define VK_F23          0x36
        !           977: #define VK_F24          0x37
        !           978: 
        !           979: 
        !           980: #define VK_MENU         VK_ALT
        !           981: 
        !           982: #ifndef INCL_SAADEFS
        !           983: 
        !           984: SHORT APIENTRY WinGetKeyState(HWND hwndDesktop, SHORT vkey);
        !           985: SHORT APIENTRY WinGetPhysKeyState(HWND hwndDesktop, SHORT sc);
        !           986: BOOL  APIENTRY WinEnablePhysInput(HWND hwndDesktop, BOOL fEnable);
        !           987: BOOL  APIENTRY WinIsPhysInputEnabled(HWND hwndDesktop);
        !           988: BOOL  APIENTRY WinSetKeyboardStateTable(HWND hwndDesktop,
        !           989:                                         PBYTE pKeyStateTable, BOOL fSet);
        !           990: 
        !           991: 
        !           992: /* Journal Notification messages  */
        !           993: #define WM_JOURNALNOTIFY    0x007c
        !           994: 
        !           995: /*** Define the valid commands (lParm1) for journal notify message */
        !           996: #define JRN_QUEUESTATUS     0x00000001L
        !           997: #define JRN_PHYSKEYSTATE    0x00000002L
        !           998: 
        !           999: #endif /* INCL_SAADEFS */
        !          1000: #endif /* INCL_WININPUT */
        !          1001: 
        !          1002: 
        !          1003: /**** Dialog Manager */
        !          1004: 
        !          1005: #if (defined(INCL_WINDIALOGS) | !defined(INCL_NOCOMMON))
        !          1006: /**** Dialog Manager COMMON subsection */
        !          1007: 
        !          1008: HWND    APIENTRY WinLoadDlg(HWND hwndParent, HWND hwndOwner, PFNWP pfnDlgProc,
        !          1009:                             HMODULE hmod, USHORT idDlg, PVOID pCreateParams);
        !          1010: USHORT  APIENTRY WinDlgBox(HWND hwndParent, HWND hwndOwner, PFNWP pfnDlgProc,
        !          1011:                             HMODULE hmod, USHORT idDlg, PVOID pCreateParams);
        !          1012: 
        !          1013: BOOL    APIENTRY WinDismissDlg(HWND hwndDlg, USHORT usResult);
        !          1014: 
        !          1015: #ifndef INCL_SAADEFS
        !          1016: BOOL    APIENTRY WinSetDlgItemShort(HWND hwndDlg, USHORT idItem,
        !          1017:                                     USHORT usValue, BOOL fSigned);
        !          1018: BOOL    APIENTRY WinQueryDlgItemShort(HWND hwndDlg, USHORT idItem,
        !          1019:                                       PSHORT pResult, BOOL fSigned);
        !          1020: SHORT   APIENTRY WinSetDlgItemText(HWND hwndDlg, USHORT idItem, PSZ pszText);
        !          1021: SHORT   APIENTRY WinQueryDlgItemText(HWND hwndDlg, USHORT idItem,
        !          1022:                                      USHORT cchBufferMax, PSZ pchBuffer);
        !          1023: #endif /* INCL_SAADEFS */
        !          1024: 
        !          1025: MRESULT APIENTRY WinDefDlgProc(HWND hwndDlg, USHORT msg, MPARAM mp1,
        !          1026:                                                MPARAM mp2);
        !          1027: 
        !          1028: /* Special item IDs */
        !          1029: 
        !          1030: #ifndef INCL_SAADEFS
        !          1031: #define DID_OK      1
        !          1032: #define DID_CANCEL  2
        !          1033: #define DID_ERROR   0xffff
        !          1034: #endif /* INCL_SAADEFS */
        !          1035: 
        !          1036: BOOL APIENTRY WinAlarm(HWND hwndDesktop, USHORT rgfType);
        !          1037: 
        !          1038: /* WinAlarm Codes */
        !          1039: 
        !          1040: #define WA_WARNING              0
        !          1041: #define WA_NOTE                 1
        !          1042: #define WA_ERROR                2
        !          1043: 
        !          1044: #define WA_CWINALARMS           3
        !          1045: 
        !          1046: #ifndef INCL_SAADEFS
        !          1047: USHORT APIENTRY WinMessageBox(HWND hwndParent, HWND hwndOwner, PSZ pszText,
        !          1048:                               PSZ pszCaption, USHORT idWindow, USHORT flStyle);
        !          1049: 
        !          1050: /* Message box types */
        !          1051: 
        !          1052: #define MB_OK                   0x0000
        !          1053: #define MB_OKCANCEL             0x0001
        !          1054: #define MB_RETRYCANCEL          0x0002
        !          1055: #define MB_ABORTRETRYIGNORE     0x0003
        !          1056: #define MB_YESNO                0x0004
        !          1057: #define MB_YESNOCANCEL          0x0005
        !          1058: #define MB_CANCEL               0x0006
        !          1059: #define MB_ENTER                0x0007
        !          1060: #define MB_ENTERCANCEL          0x0008
        !          1061: 
        !          1062: #define MB_NOICON               0x0000
        !          1063: #define MB_CUANOTIFICATION      0x0000
        !          1064: #define MB_ICONQUESTION         0x0010
        !          1065: #define MB_ICONEXCLAMATION      0x0020
        !          1066: #define MB_CUAWARNING           0x0020
        !          1067: #define MB_ICONASTERISK         0x0030
        !          1068: #define MB_ICONHAND             0x0040
        !          1069: #define MB_CUACRITICAL          0x0040
        !          1070: 
        !          1071: #define MB_DEFBUTTON1           0x0000
        !          1072: #define MB_DEFBUTTON2           0x0100
        !          1073: #define MB_DEFBUTTON3           0x0200
        !          1074: 
        !          1075: #define MB_APPLMODAL            0x0000
        !          1076: #define MB_SYSTEMMODAL          0x1000
        !          1077: #define MB_HELP                 0x2000
        !          1078: #define MB_MOVEABLE             0x4000
        !          1079: 
        !          1080: 
        !          1081: /* Message box return codes */
        !          1082: 
        !          1083: #define MBID_OK                 1
        !          1084: #define MBID_CANCEL             2
        !          1085: #define MBID_ABORT              3
        !          1086: #define MBID_RETRY              4
        !          1087: #define MBID_IGNORE             5
        !          1088: #define MBID_YES                6
        !          1089: #define MBID_NO                 7
        !          1090: #define MBID_HELP               8
        !          1091: #define MBID_ENTER              9
        !          1092: #define MBID_ERROR              0xffff
        !          1093: #endif /* INCL_SAADEFS */
        !          1094: 
        !          1095: #endif /* Dialog Manager COMMON subsection */
        !          1096: 
        !          1097: 
        !          1098: #ifdef INCL_WINDIALOGS
        !          1099: 
        !          1100: /* Dialog codes: returned by WM_QUERYDLGCODE msg     */
        !          1101: 
        !          1102: #ifndef INCL_SAADEFS
        !          1103: #define DLGC_ENTRYFIELD     0x0001    /* Entry field item understands EM_SETSEL) */
        !          1104: #define DLGC_BUTTON         0x0002    /* Button item */
        !          1105: #define DLGC_RADIOBUTTON    0x0004    /* Radio button */
        !          1106: #define DLGC_STATIC         0x0008    /* Static item */
        !          1107: #define DLGC_DEFAULT        0x0010    /* Default push button */
        !          1108: #define DLGC_PUSHBUTTON     0x0020    /* Normal (Non-default) push button */
        !          1109: #define DLGC_CHECKBOX       0x0040    /* Check box button control */
        !          1110: #define DLGC_SCROLLBAR      0x0080    /* Scroll bar */
        !          1111: #define DLGC_MENU           0x0100    /* Menu */
        !          1112: 
        !          1113: #endif /* INCL_SAADEFS */
        !          1114: 
        !          1115: USHORT  APIENTRY WinProcessDlg(HWND hwndDlg);
        !          1116: MRESULT APIENTRY WinSendDlgItemMsg(HWND hwndDlg, USHORT idItem, USHORT msg,
        !          1117:                                    MPARAM mp1, MPARAM mp2);
        !          1118: BOOL    APIENTRY WinMapDlgPoints(HWND hwndDlg, PPOINTL prgwptl, SHORT cwpt,
        !          1119:                                  BOOL fCalcWindowCoords);
        !          1120: 
        !          1121: 
        !          1122: #ifndef INCL_SAADEFS
        !          1123: SHORT   APIENTRY WinSubstituteStrings(HWND hwnd, PSZ pszSrc, SHORT cchDstMax,
        !          1124:                                       PSZ pszDst);
        !          1125: HWND    APIENTRY WinEnumDlgItem(HWND hwndDlg, HWND hwnd, USHORT code,
        !          1126:                                 BOOL fLock);
        !          1127: 
        !          1128: /* WinEnumDlgItem() constants */
        !          1129: 
        !          1130: #define EDI_FIRSTTABITEM        0
        !          1131: #define EDI_LASTTABITEM         1
        !          1132: #define EDI_NEXTTABITEM         2
        !          1133: #define EDI_PREVTABITEM         3
        !          1134: #define EDI_FIRSTGROUPITEM      4
        !          1135: #define EDI_LASTGROUPITEM       5
        !          1136: #define EDI_NEXTGROUPITEM       6
        !          1137: #define EDI_PREVGROUPITEM       7
        !          1138: #endif /* INCL_SAADEFS */
        !          1139: 
        !          1140: /*** Dialog template definitions */
        !          1141: 
        !          1142: /* Variable-sized dialog template items: */
        !          1143: 
        !          1144: typedef struct _DLGTITEM {    /* dlgti */
        !          1145:     USHORT    fsItemStatus;
        !          1146:     USHORT    cChildren;
        !          1147:     USHORT    cchClassName;
        !          1148:     USHORT    offClassName;
        !          1149:     USHORT    cchText;
        !          1150:     USHORT    offText;
        !          1151:     ULONG     flStyle;
        !          1152:     SHORT     x;
        !          1153:     SHORT     y;
        !          1154:     SHORT     cx;
        !          1155:     SHORT     cy;
        !          1156:     USHORT    id;
        !          1157:     USHORT    offPresParams;
        !          1158:     USHORT    offCtlData;
        !          1159: } DLGTITEM;
        !          1160: typedef DLGTITEM FAR *PDLGTITEM;
        !          1161: 
        !          1162: /* Dialog Template structure */
        !          1163: 
        !          1164: typedef struct _DLGTEMPLATE {        /* dlgt */
        !          1165:     USHORT      cbTemplate;
        !          1166:     USHORT      type;
        !          1167:     USHORT      codepage;
        !          1168:     USHORT      offadlgti;          /* Is always 12 for Winthorn 1 */
        !          1169:     USHORT      fsTemplateStatus;
        !          1170:     USHORT      iItemFocus;
        !          1171:     USHORT      coffPresParams;     /* Reserved to be 0 for winthorn 1 */
        !          1172:     DLGTITEM    adlgti[1];
        !          1173: } DLGTEMPLATE;
        !          1174: typedef DLGTEMPLATE FAR *PDLGTEMPLATE;
        !          1175: 
        !          1176: HWND   APIENTRY WinCreateDlg(HWND hwndParent, HWND hwndOwner, PFNWP pfnDlgProc,
        !          1177:                              PDLGTEMPLATE pdlgt, PVOID pCreateParams);
        !          1178: 
        !          1179: 
        !          1180: #endif /* INCL_WINDIALOGS */
        !          1181: 
        !          1182: 
        !          1183: #ifdef INCL_WINSTATICS
        !          1184: 
        !          1185: /**** Static Control Manager */
        !          1186: 
        !          1187: /* Static control styles:
        !          1188:  *
        !          1189:  * NOTE: the top 9 bits of the LOWORD of the window flStyle are used for
        !          1190:  * DT_* flags.  The lower 7 bits are for SS_* styles.  This gives us up
        !          1191:  * to 128 distinct static control types (we currently use 11 of them).
        !          1192:  */
        !          1193: #define SS_TEXT             0x0001L
        !          1194: #define SS_GROUPBOX         0x0002L
        !          1195: 
        !          1196: #ifndef INCL_SAADEFS
        !          1197: #define SS_ICON             0x0003L
        !          1198: #define SS_BITMAP           0x0004L
        !          1199: #define SS_FGNDRECT         0x0005L
        !          1200: #define SS_HALFTONERECT     0x0006L
        !          1201: #define SS_BKGNDRECT        0x0007L
        !          1202: #define SS_FGNDFRAME        0x0008L
        !          1203: #define SS_HALFTONEFRAME    0x0009L 
        !          1204: #define SS_BKGNDFRAME       0x000aL
        !          1205: #define SS_SYSICON          0x000bL
        !          1206: #endif /* INCL_SAADEFS */
        !          1207: 
        !          1208: /* Static control class name */
        !          1209: 
        !          1210: #define WC_STATIC       ((PSZ)0xffff0005L)
        !          1211: 
        !          1212: /* Static control messages */
        !          1213: 
        !          1214: #ifndef INCL_SAADEFS
        !          1215: #define SM_SETHANDLE        0x0100
        !          1216: #define SM_QUERYHANDLE      0x0101
        !          1217: #endif /* INCL_SAADEFS */
        !          1218: 
        !          1219: #endif /* INCL_WINSTATICS */
        !          1220: 
        !          1221: 
        !          1222: #ifdef INCL_WINBUTTONS
        !          1223: /**** Button Controls Subsection */
        !          1224: 
        !          1225: /* Button control styles */
        !          1226: 
        !          1227: #define BS_PUSHBUTTON       0L
        !          1228: #define BS_CHECKBOX         1L
        !          1229: #define BS_AUTOCHECKBOX     2L
        !          1230: #define BS_RADIOBUTTON      3L
        !          1231: #define BS_AUTORADIOBUTTON  4L
        !          1232: #define BS_3STATE           5L
        !          1233: #define BS_AUTO3STATE       6L
        !          1234: 
        !          1235: #ifndef INCL_SAADEFS
        !          1236: #define BS_USERBUTTON       7L
        !          1237: #endif /* INCL_SAADEFS */
        !          1238: 
        !          1239: #define BS_HELP             0x0100L
        !          1240: #define BS_SYSCOMMAND       0x0200L
        !          1241: #define BS_DEFAULT          0x0400L
        !          1242: #define BS_NOPOINTERFOCUS   0x0800L
        !          1243: #define BS_NOBORDER         0x1000L
        !          1244: 
        !          1245: 
        !          1246: /* Button class name */
        !          1247: 
        !          1248: #define WC_BUTTON       ((PSZ)0xffff0003L)
        !          1249: 
        !          1250: 
        !          1251: #ifndef INCL_SAADEFS
        !          1252: typedef struct _BTNCDATA {    /* btncd */
        !          1253:     USHORT cb;
        !          1254:     USHORT fsCheckState;
        !          1255:     USHORT fsHiliteState;
        !          1256: } BTNCDATA;
        !          1257: typedef BTNCDATA FAR *PBTNCDATA;
        !          1258: #endif /* INCL_SAADEFS */
        !          1259: 
        !          1260: /* User button structure (passed in WM_CONTROL msg) */
        !          1261: 
        !          1262: #ifndef INCL_SAADEFS
        !          1263: typedef struct _USERBUTTON {  /* ubtn */
        !          1264:     HWND hwnd;
        !          1265:     HPS hps;
        !          1266:     USHORT fsState;
        !          1267:     USHORT fsStateOld;
        !          1268: } USERBUTTON;
        !          1269: typedef USERBUTTON FAR *PUSERBUTTON;
        !          1270: #endif /* INCL_SAADEFS */
        !          1271: 
        !          1272: /* Button control messages */
        !          1273: 
        !          1274: #define BM_CLICK            0x0120
        !          1275: #define BM_QUERYCHECKINDEX  0x0121
        !          1276: #define BM_QUERYHILITE      0x0122
        !          1277: #define BM_SETHILITE        0x0123
        !          1278: #define BM_QUERYCHECK       0x0124
        !          1279: #define BM_SETCHECK         0x0125
        !          1280: #define BM_SETDEFAULT       0x0126
        !          1281: 
        !          1282: /* Button notification codes */
        !          1283: 
        !          1284: #ifndef INCL_SAADEFS
        !          1285: #define BN_CLICKED          1
        !          1286: #define BN_DBLCLICKED       2
        !          1287: #define BN_PAINT            3
        !          1288: #endif /* INCL_SAADEFS */
        !          1289: 
        !          1290: /* BN_PAINT button draw state codes (must be in high byte) */
        !          1291: 
        !          1292: #ifndef INCL_SAADEFS
        !          1293: #define BDS_HILITED         0x0100
        !          1294: #define BDS_DISABLED        0x0200
        !          1295: #define BDS_DEFAULT         0x0400
        !          1296: 
        !          1297: #endif /* INCL_SAADEFS */
        !          1298: 
        !          1299: #endif /* INCL_WINBUTTONS */
        !          1300: 
        !          1301: 
        !          1302: #ifdef INCL_WINENTRYFIELDS
        !          1303: /**** Entryfield controls Subsection */
        !          1304: 
        !          1305: /* Entry field  styles */
        !          1306: 
        !          1307: #define ES_LEFT             0x00000000L
        !          1308: #define ES_CENTER           0x00000001L
        !          1309: #define ES_RIGHT            0x00000002L
        !          1310: 
        !          1311: #ifndef INCL_SAADEFS
        !          1312: #define ES_AUTOSCROLL       0x00000004L
        !          1313: #endif /* INCL_SAADEFS */
        !          1314: 
        !          1315: #define ES_MARGIN           0x00000008L
        !          1316: 
        !          1317: #define WC_ENTRYFIELD     ((PSZ)0xffff0006L)
        !          1318: 
        !          1319: #ifndef INCL_SAADEFS
        !          1320: typedef struct _ENTRYFDATA {       /* efd */
        !          1321:     USHORT cb;
        !          1322:     USHORT cchEditLimit;
        !          1323:     USHORT ichMinSel;
        !          1324:     USHORT ichMaxSel;
        !          1325: } ENTRYFDATA;
        !          1326: 
        !          1327: typedef ENTRYFDATA FAR *PENTRYFDATA;
        !          1328: #define EDITCDATA ENTRYFDATA
        !          1329: #define PEDITCDATA PENTRYFDATA
        !          1330: #endif /* INCL_SAADEFS */
        !          1331: 
        !          1332: /* Entry Field  messages */
        !          1333: 
        !          1334: #define EM_QUERYCHANGED     0x0140
        !          1335: #define EM_QUERYSEL         0x0141
        !          1336: #define EM_SETSEL           0x0142
        !          1337: #define EM_SETTEXTLIMIT     0x0143
        !          1338: 
        !          1339: #ifndef INCL_SAADEFS
        !          1340: #define EM_CUT              0x0144
        !          1341: #define EM_COPY             0x0145
        !          1342: #define EM_CLEAR            0x0146
        !          1343: #define EM_PASTE            0x0147
        !          1344: #define EM_QUERYFIRSTCHAR   0x0148
        !          1345: #define EM_SETFIRSTCHAR     0x0149
        !          1346: #endif /* INCL_SAADEFS */
        !          1347: 
        !          1348: /* Entry Field  notification messages */
        !          1349: 
        !          1350: #ifndef INCL_SAADEFS
        !          1351: #define EN_SETFOCUS         0x0001
        !          1352: #define EN_KILLFOCUS        0x0002
        !          1353: #define EN_CHANGE           0x0004
        !          1354: #define EN_SCROLL           0x0008
        !          1355: #define EN_MEMERROR         0x0010
        !          1356: 
        !          1357: #endif /* INCL_SAADEFS */
        !          1358: 
        !          1359: #endif /* INCL_WINENTRYFIELDS */
        !          1360: 
        !          1361: 
        !          1362: #ifdef INCL_WINLISTBOXES
        !          1363: 
        !          1364: /**** Listboxes */
        !          1365: 
        !          1366: /* List box styles */
        !          1367: 
        !          1368: #define LS_MULTIPLESEL      0x00000001L
        !          1369: 
        !          1370: #ifndef INCL_SAADEFS
        !          1371: #define LS_OWNERDRAW        0x00000002L
        !          1372: #endif /* INCL_SAADEFS */
        !          1373: 
        !          1374: #define LS_NOADJUSTPOS      0x00000004L
        !          1375: 
        !          1376: 
        !          1377: /* Listbox class name */
        !          1378: 
        !          1379: #define WC_LISTBOX      ((PSZ)0xffff0007L)
        !          1380: 
        !          1381: /* List box notification messages */
        !          1382: 
        !          1383: #ifndef INCL_SAADEFS
        !          1384: #define LN_SELECT           1
        !          1385: #define LN_SETFOCUS         2
        !          1386: #define LN_KILLFOCUS        3
        !          1387: #define LN_SCROLL           4
        !          1388: #define LN_ENTER            5
        !          1389: 
        !          1390: #endif /* INCL_SAADEFS */
        !          1391: 
        !          1392: /* List box messages */
        !          1393: 
        !          1394: #define LM_QUERYITEMCOUNT   0x0160
        !          1395: #define LM_INSERTITEM       0x0161
        !          1396: #define LM_SETTOPINDEX      0x0162
        !          1397: #define LM_DELETEITEM       0x0163
        !          1398: #define LM_SELECTITEM       0x0164
        !          1399: #define LM_QUERYSELECTION   0x0165
        !          1400: #define LM_SETITEMTEXT      0x0166
        !          1401: #define LM_QUERYITEMTEXTLENGTH 0x0167
        !          1402: #define LM_QUERYITEMTEXT    0x0168
        !          1403: 
        !          1404: #ifndef INCL_SAADEFS
        !          1405: #define LM_SETITEMHANDLE    0x0169
        !          1406: #define LM_QUERYITEMHANDLE  0x016a
        !          1407: #define LM_SEARCHSTRING     0x016b
        !          1408: #define LM_SETITEMHEIGHT    0x016c
        !          1409: #define LM_QUERYTOPINDEX    0x016d
        !          1410: #define LM_DELETEALL        0x016e
        !          1411: #endif /* INCL_SAADEFS */
        !          1412: 
        !          1413: /* List box constants */
        !          1414: 
        !          1415: #define LIT_ERROR            (-3)
        !          1416: #define LIT_MEMERROR         (-2)
        !          1417: #define LIT_NONE             (-1)
        !          1418: #define LIT_FIRST            (-1)
        !          1419: 
        !          1420: /* For LM_INSERTITEM msg     */
        !          1421: 
        !          1422: #define LIT_END              (-1)
        !          1423: #define LIT_SORTASCENDING    (-2)
        !          1424: #define LIT_SORTDESCENDING   (-3)
        !          1425: 
        !          1426: /* For LM_SEARCHSTRING msg     */
        !          1427: 
        !          1428: #define LSS_SUBSTRING       0x0001
        !          1429: #define LSS_PREFIX          0x0002
        !          1430: #define LSS_CASESENSITIVE   0x0004
        !          1431: 
        !          1432: 
        !          1433: #endif /* INCL_WINLISTBOXES */
        !          1434: 
        !          1435: 
        !          1436: #ifdef INCL_WINMENUS
        !          1437: 
        !          1438: /**** Menu Manager Subsection */
        !          1439: 
        !          1440: /* Menu control styles */
        !          1441: 
        !          1442: #define MS_ACTIONBAR        0x00000001L
        !          1443: #define MS_TITLEBUTTON      0x00000002L
        !          1444: #define MS_VERTICALFLIP     0x00000004L
        !          1445: 
        !          1446: HWND APIENTRY WinLoadMenu(HWND, HMODULE, USHORT);
        !          1447: 
        !          1448: /* Menu class name */
        !          1449: 
        !          1450: #define WC_MENU         ((PSZ)0xffff0004L)
        !          1451: 
        !          1452: /* Menu control messages */
        !          1453: 
        !          1454: #define MM_INSERTITEM           0x0180
        !          1455: #define MM_DELETEITEM           0x0181
        !          1456: #define MM_QUERYITEM            0x0182
        !          1457: #define MM_SETITEM              0x0183
        !          1458: #define MM_QUERYITEMCOUNT       0x0184
        !          1459: #define MM_STARTMENUMODE        0x0185
        !          1460: #define MM_ENDMENUMODE          0x0186
        !          1461: #define MM_DISMISSMENU          0x0187
        !          1462: #define MM_REMOVEITEM           0x0188
        !          1463: #define MM_SELECTITEM           0x0189
        !          1464: #define MM_QUERYSELITEMID       0x018a
        !          1465: #define MM_QUERYITEMTEXT        0x018b
        !          1466: #define MM_QUERYITEMTEXTLENGTH  0x018c
        !          1467: #define MM_SETITEMHANDLE        0x018d
        !          1468: #define MM_SETITEMTEXT          0x018e
        !          1469: #define MM_ITEMPOSITIONFROMID   0x018f
        !          1470: #define MM_ITEMIDFROMPOSITION   0x0190
        !          1471: #define MM_QUERYITEMATTR        0x0191
        !          1472: #define MM_SETITEMATTR          0x0192
        !          1473: #define MM_ISITEMVALID          0x0193
        !          1474: 
        !          1475: HWND APIENTRY WinCreateMenu(HWND, PVOID);
        !          1476: 
        !          1477: /* Owner Item Structure (Also used for listboxes) */
        !          1478: 
        !          1479: #ifndef INCL_SAADEFS
        !          1480: typedef struct _OWNERITEM {   /* oi */
        !          1481:     HWND    hwnd;
        !          1482:     HPS     hps;
        !          1483:     USHORT  fsState;
        !          1484:     USHORT  fsStateOld;
        !          1485:     RECTL   rclItem;
        !          1486:     SHORT   idItem; /* This field contains idItem for menus, iItem for lb. */
        !          1487:     ULONG   hItem;
        !          1488: } OWNERITEM;
        !          1489: typedef OWNERITEM FAR *POWNERITEM;
        !          1490: #endif /* INCL_SAADEFS */
        !          1491: 
        !          1492: /* Menu item */
        !          1493: 
        !          1494: typedef struct _MENUITEM {    /* mi */
        !          1495:     SHORT     iPosition;
        !          1496:     USHORT    afStyle;
        !          1497:     USHORT    id;
        !          1498:     HWND    hwndSubMenu;
        !          1499:     ULONG   hItem;
        !          1500: } MENUITEM;
        !          1501: typedef MENUITEM FAR *PMENUITEM;
        !          1502: 
        !          1503: #define MIT_END         (-1)
        !          1504: #define MIT_NONE        (-1)
        !          1505: #define MIT_MEMERROR    (-1)
        !          1506: #define MIT_ERROR       (-1)
        !          1507: #define MID_NONE        MIT_NONE
        !          1508: #define MID_ERROR       (-1)
        !          1509: 
        !          1510: /* Menu item styles & attributes */
        !          1511: 
        !          1512: #define MIS_TEXT            0x0001
        !          1513: 
        !          1514: #ifndef INCL_SAADEFS
        !          1515: #define MIS_BITMAP          0x0002
        !          1516: #endif /* INCL_SAADEFS */
        !          1517: #define MIS_SEPARATOR       0x0004
        !          1518: 
        !          1519: #ifndef INCL_SAADEFS
        !          1520: #define MIS_OWNERDRAW       0x0008
        !          1521: #endif /* INCL_SAADEFS */
        !          1522: 
        !          1523: #define MIS_SUBMENU         0x0010
        !          1524: #define MIS_NODISMISS       0x0020
        !          1525: #define MIS_SYSCOMMAND      0x0040
        !          1526: #define MIS_HELP            0x0080
        !          1527: #define MIS_STATIC          0x0100
        !          1528: #define MIS_BUTTONSEPARATOR 0x0200
        !          1529: #define MIS_BREAK           0x0400
        !          1530: #define MIS_BREAKSEPARATOR  0x0800
        !          1531: 
        !          1532: 
        !          1533: #define MIA_FRAMED          0x1000
        !          1534: #define MIA_CHECKED         0x2000
        !          1535: #define MIA_DISABLED        0x4000
        !          1536: #define MIA_HILITED         0x8000
        !          1537: 
        !          1538: #endif /* INCL_WINMENUS */
        !          1539: 
        !          1540: 
        !          1541: #ifdef INCL_WINSCROLLBARS
        !          1542: 
        !          1543: /*** Scroll Bar controls Subsection */
        !          1544: 
        !          1545: /* Scroll Bar styles */
        !          1546: 
        !          1547: #define SBS_HORZ            0L
        !          1548: #define SBS_VERT            1L
        !          1549: 
        !          1550: /* Scroll bar class name */
        !          1551: 
        !          1552: 
        !          1553: #define WC_SCROLLBAR    ((PSZ)0xffff0008L)
        !          1554: 
        !          1555: /* Scroll Bar messages */
        !          1556: 
        !          1557: #define SBM_SETSCROLLBAR    0x01a0
        !          1558: #define SBM_SETPOS          0x01a1
        !          1559: #define SBM_QUERYPOS        0x01a2
        !          1560: #define SBM_QUERYRANGE      0x01a3
        !          1561: #define SBM_SETHILITE       0x01a4
        !          1562: #define SBM_QUERYHILITE     0x01a5
        !          1563: 
        !          1564: /* Scroll Bar Commands */
        !          1565: 
        !          1566: #define SB_LINEUP           1
        !          1567: #define SB_LINEDOWN         2
        !          1568: #define SB_LINELEFT         1
        !          1569: #define SB_LINERIGHT        2
        !          1570: #define SB_PAGEUP           3
        !          1571: #define SB_PAGEDOWN         4
        !          1572: #define SB_PAGELEFT         3
        !          1573: #define SB_PAGERIGHT        4
        !          1574: #define SB_SLIDERTRACK      5
        !          1575: #define SB_SLIDERPOSITION   6
        !          1576: #define SB_ENDSCROLL        7
        !          1577: 
        !          1578: 
        !          1579: #ifndef INCL_SAADEFS
        !          1580: typedef struct _SBCDATA {     /* sbcd */
        !          1581:     USHORT cb;
        !          1582:     USHORT sHilite;         /* reserved, should be set to zero */
        !          1583:     SHORT posFirst;
        !          1584:     SHORT posLast;
        !          1585:     SHORT posThumb;
        !          1586: } SBCDATA;
        !          1587: typedef SBCDATA FAR *PSBCDATA;
        !          1588: #endif /* INCL_SAADEFS */
        !          1589: 
        !          1590: #endif /* INCL_WINSCROLLBARS */
        !          1591: 
        !          1592: 
        !          1593: #if (defined(INCL_WINFRAMEMGR) | !defined(INCL_NOCOMMON))
        !          1594: /*** Frame Manager Common subsection */
        !          1595: 
        !          1596: /* Frame window styles */
        !          1597: 
        !          1598: #define FCF_TITLEBAR    0x00000001L
        !          1599: #define FCF_SYSMENU     0x00000002L
        !          1600: #define FCF_MENU        0x00000004L
        !          1601: #define FCF_SIZEBORDER  0x00000008L
        !          1602: #define FCF_MINBUTTON   0x00000010L  
        !          1603: #define FCF_MAXBUTTON   0x00000020L
        !          1604: #define FCF_MINMAX      0x00000030L     /* minmax means both buttons */
        !          1605: #define FCF_VERTSCROLL  0x00000040L
        !          1606: #define FCF_HORZSCROLL  0x00000080L
        !          1607: /* FCF_TITLEBAR | FCF_SYSMENU | FCF_MENU | FCF_SIZEBORDER | FCF_MINMAX */
        !          1608: #define FCF_STANDARD    0x0000003FL
        !          1609: 
        !          1610: 
        !          1611: #define FS_ICON             0x00000001L
        !          1612: #define FS_ACCELTABLE       0x00000002L
        !          1613: 
        !          1614: #ifndef INCL_SAADEFS
        !          1615: #define FS_SHELLPOSITION    0x00000004L
        !          1616: #endif /* INCL_SAADEFS */
        !          1617: 
        !          1618: #define FS_TASKLIST         0x00000008L
        !          1619: #define FS_NOBYTEALIGN      0x00000010L
        !          1620: #define FS_NOMOVEWITHOWNER  0x00000020L
        !          1621: #define FS_SYSMODAL         0x00000040L
        !          1622: #define FS_DLGBORDER        0x00000080L
        !          1623: #define FS_BORDER           0x00000100L
        !          1624: #define FS_SCREENALIGN      0x00000200L
        !          1625: #define FS_MOUSEALIGN       0x00000400L
        !          1626: 
        !          1627: /* FS_ICON | FS_ACCELTABLE | FS_SHELLPOSITION | FS_TASKLIST */
        !          1628: #define FS_STANDARD         0x0000000FL
        !          1629: 
        !          1630: 
        !          1631: /* Frame Window Flags accessed via WinSet/QueryWindowUShort(QWS_FLAGS) */
        !          1632: 
        !          1633: #ifndef INCL_SAADEFS
        !          1634: #define FF_FLASHWINDOW      0x0001  
        !          1635: #define FF_ACTIVE           0x0002
        !          1636: #define FF_FLASHHILITE      0x0004
        !          1637: #define FF_OWNERHIDDEN      0x0008
        !          1638: #define FF_DLGDISMISSED     0x0010
        !          1639: #define FF_OWNERDISABLED    0x0020
        !          1640: #define FF_SELECTED         0x0040
        !          1641: #endif /* INCL_SAADEFS */
        !          1642: 
        !          1643: 
        !          1644: HWND  APIENTRY WinCreateStdWindow(HWND hwndParent, ULONG flStyle,
        !          1645:         PVOID pCtlData, PSZ pszClientClass, PSZ pszTitle,
        !          1646:         ULONG styleClient, HMODULE hmod, USHORT idResources,
        !          1647:         PHWND phwndClient);
        !          1648: 
        !          1649: 
        !          1650: #endif /* Frame Manager Common subsection */
        !          1651: 
        !          1652: 
        !          1653: #ifdef INCL_WINFRAMEMGR
        !          1654: 
        !          1655: #ifndef INCL_SAADEFS
        !          1656: BOOL  APIENTRY WinFlashWindow(HWND hwndFrame, BOOL fFlash);
        !          1657: #endif /* INCL_SAADEFS */
        !          1658: 
        !          1659: /* Frame window related messages */
        !          1660: 
        !          1661: #ifndef INCL_SAADEFS
        !          1662: #define WM_FLASHWINDOW      0x0040
        !          1663: #define WM_FORMATFRAME      0x0041
        !          1664: #define WM_UPDATEFRAME      0x0042
        !          1665: #define WM_FOCUSCHANGE      0x0043
        !          1666: 
        !          1667: #define WM_MINMAXFRAME      0x0046
        !          1668: #define WM_SETICON          0x0047
        !          1669: #define WM_QUERYICON        0x0048
        !          1670: #define WM_SETACCELTABLE    0x0049
        !          1671: #define WM_QUERYACCELTABLE  0x004a
        !          1672: #define WM_TRANSLATEACCEL   0x004b
        !          1673: #define WM_QUERYTRACKINFO   0x004c
        !          1674: #define WM_QUERYBORDERSIZE  0x004d
        !          1675: #define WM_NEXTMENU         0x004e
        !          1676: #define WM_ERASEBACKGROUND  0x004f
        !          1677: #define WM_QUERYFRAMEINFO   0x0050
        !          1678: 
        !          1679: 
        !          1680: /* WM_QUERYFRAMEINFO constants */
        !          1681: 
        !          1682: #define FI_FRAME            0x00000001L
        !          1683: #define FI_OWNERHIDE        0x00000002L
        !          1684: #define FI_ACTIVATEOK       0x00000004L
        !          1685: #define FI_NOMOVEWITHOWNER  0x00000008L
        !          1686: 
        !          1687: 
        !          1688: #endif /* INCL_SAADEFS */
        !          1689: 
        !          1690: /* Frame class name */
        !          1691: 
        !          1692: #define WC_FRAME        ((PSZ)0xffff0001L)
        !          1693: 
        !          1694: #ifndef INCL_SAADEFS
        !          1695: BOOL  APIENTRY WinCreateFrameControls(HWND hwndFrame, ULONG flStyle,
        !          1696:                                       PSZ pszTitle, HMODULE hmod);
        !          1697: SHORT APIENTRY WinFormatFrame(HWND hwndFrame, PRECTL prclFrame, PSWP pswp,
        !          1698:                               SHORT cswpMax, PRECTL prclClient);
        !          1699: #endif /* INCL_SAADEFS */
        !          1700: 
        !          1701: BOOL  APIENTRY WinCalcFrameRect(HWND hwndFrame, PRECTL prcl, BOOL fClient);
        !          1702: 
        !          1703: #ifndef INCL_SAADEFS
        !          1704: BOOL  APIENTRY WinGetMinPosition(HWND hwnd, PSWP pswp, PPOINTL pptl);
        !          1705: BOOL  APIENTRY WinGetMaxPosition(HWND hwnd, PSWP pswp);
        !          1706: #endif /* INCL_SAADEFS */
        !          1707: 
        !          1708: /* Frame control IDs    */
        !          1709: 
        !          1710: #define FID_SIZEBORDER      0x8001
        !          1711: #define FID_SYSMENU         0x8002
        !          1712: #define FID_TITLEBAR        0x8003
        !          1713: #define FID_MINMAX          0x8004
        !          1714: #define FID_MENU            0x8005
        !          1715: #define FID_VERTSCROLL      0x8006
        !          1716: #define FID_HORZSCROLL      0x8007
        !          1717: #define FID_CLIENT          0x8008
        !          1718: 
        !          1719: /* Standard WM_SYSCOMMAND command values */
        !          1720: 
        !          1721: #ifndef INCL_SAADEFS
        !          1722: #define SC_SIZE             1
        !          1723: #define SC_MOVE             2
        !          1724: #define SC_MINIMIZE         3
        !          1725: #define SC_MAXIMIZE         4
        !          1726: #define SC_CLOSE            5
        !          1727: #define SC_NEXT             6
        !          1728: #define SC_APPMENU          7
        !          1729: #define SC_SYSMENU          8
        !          1730: #define SC_RESTORE          9
        !          1731: #define SC_NEXTFRAME       10
        !          1732: #define SC_NEXTWINDOW      11
        !          1733: #define SC_TASKMANAGER     12
        !          1734: 
        !          1735: #endif /* INCL_SAADEFS */
        !          1736: 
        !          1737: #endif /* INCL_WINFRAMEMGR */
        !          1738: 
        !          1739: /*** Frame controls */
        !          1740: 
        !          1741: /** Size border controls */
        !          1742: 
        !          1743: #ifdef INCL_WINFRAMECTLS
        !          1744: 
        !          1745: /* Size control class name */
        !          1746: 
        !          1747: #define WC_SIZEBORDER       ((PSZ)0xffff000aL)
        !          1748: 
        !          1749: /* Size control messages */
        !          1750: 
        !          1751: #ifndef INCL_SAADEFS
        !          1752: #define SZM_TRACKSIZE       0x01c0
        !          1753: #define SZM_SETBORDERSIZE   0x01c1
        !          1754: #define SZM_QUERYBORDERSIZE 0x01c2
        !          1755: #define SZM_SETHILITE       0x01c3
        !          1756: #define SZM_QUERYHILITE     0x01c4
        !          1757: #endif /* INCL_SAADEFS */
        !          1758: 
        !          1759: /** Title bar controls */
        !          1760: 
        !          1761: /* Title bar control class name */
        !          1762: 
        !          1763: #define WC_TITLEBAR     ((PSZ)0xffff0009L)
        !          1764: 
        !          1765: /* Title bar control messages */
        !          1766: 
        !          1767: #ifndef INCL_SAADEFS
        !          1768: #define TBM_TRACKMOVE           0x01e0
        !          1769: #define TBM_QUERYICONTEXTWINDOW 0x01e1
        !          1770: #define TBM_SHOWICONTEXT        0x01e2
        !          1771: #define TBM_SETHILITE           0x01e3
        !          1772: #define TBM_QUERYHILITE         0x01e4
        !          1773: #endif /* INCL_SAADEFS */
        !          1774: 
        !          1775: #endif /* INCL_WINFRAMECTLS */
        !          1776: 
        !          1777: #ifdef INCL_WINRECTANGLES
        !          1778: /*** Rectangle routines */
        !          1779: 
        !          1780: #ifndef INCL_SAADEFS
        !          1781: BOOL APIENTRY WinSetRect(HAB hab, PRECTL prcl, SHORT xLeft, SHORT yBottom,
        !          1782:                          SHORT xRight, SHORT yTop);
        !          1783: BOOL APIENTRY WinIsRectEmpty(HAB hab, PRECTL prcl);
        !          1784: BOOL APIENTRY WinCopyRect(HAB hab, PRECTL prclDst, PRECTL prclSrc);
        !          1785: BOOL APIENTRY WinEqualRect(HAB hab, PRECTL prcl1, PRECTL prcl2);
        !          1786: BOOL APIENTRY WinSetRectEmpty(HAB hab, PRECTL prcl);
        !          1787: BOOL APIENTRY WinOffsetRect(HAB hab, PRECTL prcl, SHORT cx, SHORT cy);
        !          1788: BOOL APIENTRY WinInflateRect(HAB hab, PRECTL prcl, SHORT cx, SHORT cy);
        !          1789: BOOL APIENTRY WinPtInRect(HAB hab, PRECTL prcl, PPOINTL pptl);
        !          1790: BOOL APIENTRY WinIntersectRect(HAB hab, PRECTL prclDst, PRECTL prclSrc1,
        !          1791:                                PRECTL prclSrc2);
        !          1792: BOOL APIENTRY WinUnionRect(HAB hab, PRECTL prclDst, PRECTL prclSrc1,
        !          1793:                            PRECTL prclSrc2);
        !          1794: BOOL APIENTRY WinSubtractRect(HAB hab, PRECTL prclDst, PRECTL prclSrc1,
        !          1795:                               PRECTL prclSrc2);
        !          1796: BOOL APIENTRY WinMakeRect(HAB hab, PWRECT pwrc);
        !          1797: BOOL APIENTRY WinMakePoints(HAB hab, PWPOINT pwpt, SHORT cwpt);
        !          1798: #endif /* INCL_SAADEFS */
        !          1799: 
        !          1800: #endif /* INCL_WINRECTANGLES */
        !          1801: 
        !          1802: 
        !          1803: #ifdef INCL_WINSYS
        !          1804: 
        !          1805: /*** System values */
        !          1806: 
        !          1807: LONG APIENTRY WinQuerySysValue(HWND hwndDesktop, SHORT iSysValue);
        !          1808: BOOL  APIENTRY WinSetSysValue(HWND hwndDesktop, SHORT iSysValue, LONG lValue);
        !          1809: 
        !          1810: #define SV_SWAPBUTTON       0
        !          1811: #define SV_DBLCLKTIME       1
        !          1812: #define SV_CXDBLCLK         2
        !          1813: #define SV_CYDBLCLK         3
        !          1814: #define SV_CXSIZEBORDER     4
        !          1815: #define SV_CYSIZEBORDER     5
        !          1816: #define SV_ALARM            6
        !          1817: 
        !          1818: #ifndef INCL_SAADEFS
        !          1819: #define SV_RESERVEDFIRST1   7
        !          1820: #define SV_RESERVEDLAST1    8
        !          1821: #endif /* INCL_SAADEFS */
        !          1822: 
        !          1823: #define SV_CURSORRATE       9
        !          1824: #define SV_FIRSTSCROLLRATE  10
        !          1825: #define SV_SCROLLRATE       11
        !          1826: #define SV_NUMBEREDLISTS    12
        !          1827: #define SV_WARNINGFREQ      13
        !          1828: #define SV_NOTEFREQ         14
        !          1829: #define SV_ERRORFREQ        15
        !          1830: #define SV_WARNINGDURATION  16
        !          1831: #define SV_NOTEDURATION     17
        !          1832: #define SV_ERRORDURATION    18
        !          1833: 
        !          1834: #ifndef INCL_SAADEFS
        !          1835: #define SV_RESERVEDFIRST    19
        !          1836: #define SV_RESERVEDLAST     19
        !          1837: #endif /* INCL_SAADEFS */
        !          1838: 
        !          1839: #define SV_CXSCREEN         20
        !          1840: #define SV_CYSCREEN         21
        !          1841: #define SV_CXVSCROLL        22
        !          1842: #define SV_CYHSCROLL        23
        !          1843: #define SV_CYVSCROLLARROW   24
        !          1844: #define SV_CXHSCROLLARROW   25
        !          1845: #define SV_CXBORDER         26
        !          1846: #define SV_CYBORDER         27
        !          1847: #define SV_CXDLGFRAME       28
        !          1848: #define SV_CYDLGFRAME       29
        !          1849: #define SV_CYTITLEBAR       30
        !          1850: #define SV_CYVSLIDER        31
        !          1851: #define SV_CXHSLIDER        32
        !          1852: #define SV_CXMINMAXBUTTON   33
        !          1853: #define SV_CYMINMAXBUTTON   34
        !          1854: #define SV_CYMENU           35
        !          1855: #define SV_CXFULLSCREEN     36
        !          1856: #define SV_CYFULLSCREEN     37
        !          1857: #define SV_CXICON           38
        !          1858: #define SV_CYICON           39
        !          1859: #define SV_CXPOINTER        40
        !          1860: #define SV_CYPOINTER        41
        !          1861: 
        !          1862: #define SV_DEBUG            42
        !          1863: #define SV_CMOUSEBUTTONS    43
        !          1864: #define SV_POINTERLEVEL     44
        !          1865: #define SV_CURSORLEVEL      45
        !          1866: #define SV_TRACKRECTLEVEL   46
        !          1867: 
        !          1868: #ifndef INCL_SAADEFS
        !          1869: #define SV_CTIMERS          47
        !          1870: #endif /* INCL_SAADEFS */
        !          1871: 
        !          1872: #define SV_MOUSEPRESENT     48
        !          1873: 
        !          1874: #define SV_CXBYTEALIGN      49
        !          1875: #define SV_CYBYTEALIGN      50
        !          1876: 
        !          1877: #define SV_CSYSVALUES       51
        !          1878: 
        !          1879: 
        !          1880: /*** System color functions */
        !          1881: 
        !          1882: 
        !          1883: #ifndef INCL_SAADEFS
        !          1884: LONG APIENTRY WinQuerySysColor(HWND hwndDesktop, LONG iColor, LONG lReserved);
        !          1885: BOOL APIENTRY WinSetSysColors(HWND hwndDesktop, ULONG flOptions,
        !          1886:                               ULONG flFormat, LONG clrFirst, ULONG cclr,
        !          1887:                               PLONG pclr);
        !          1888: 
        !          1889: #define SYSCLR_WINDOWSTATICTEXT   (-26L)
        !          1890: #define SYSCLR_SCROLLBAR          (-25L)
        !          1891: #define SYSCLR_BACKGROUND         (-24L)
        !          1892: #define SYSCLR_ACTIVETITLE        (-23L)
        !          1893: #define SYSCLR_INACTIVETITLE      (-22L)
        !          1894: #define SYSCLR_MENU               (-21L)
        !          1895: #define SYSCLR_WINDOW             (-20L)
        !          1896: #define SYSCLR_WINDOWFRAME        (-19L)
        !          1897: #define SYSCLR_MENUTEXT           (-18L)
        !          1898: #define SYSCLR_WINDOWTEXT         (-17L)
        !          1899: #define SYSCLR_TITLETEXT          (-16L)
        !          1900: #define SYSCLR_ACTIVEBORDER       (-15L)
        !          1901: #define SYSCLR_INACTIVEBORDER     (-14L)
        !          1902: #define SYSCLR_APPWORKSPACE       (-13L)
        !          1903: #define SYSCLR_HELPBACKGROUND     (-12L)
        !          1904: #define SYSCLR_HELPTEXT           (-11L)
        !          1905: #define SYSCLR_HELPHILITE         (-10L) /* assumed by ColorInit() */
        !          1906: #define SYSCLR_CSYSCOLORS         17L
        !          1907: #endif /* INCL_SAADEFS */
        !          1908: 
        !          1909: #endif /* INCL_WINSYS */
        !          1910: 
        !          1911: 
        !          1912: #ifdef INCL_WINTIMER
        !          1913: /**** Timer manager */
        !          1914: 
        !          1915: #ifndef INCL_SAADEFS
        !          1916: USHORT APIENTRY WinStartTimer(HAB hab, HWND hwnd, USHORT idTimer,
        !          1917:                               USHORT dtTimeout);
        !          1918: BOOL   APIENTRY WinStopTimer(HAB hab, HWND hwnd, USHORT idTimer);
        !          1919: ULONG  APIENTRY WinGetCurrentTime(HAB hab);
        !          1920: 
        !          1921: #define TID_CURSOR          0xffff  /* Reserved cursor timer ID */
        !          1922: #define TID_SCROLL          0xfffe  /* Reserved scrolling timer ID */
        !          1923: #define TID_FLASHWINDOW     0xfffd  /* Reserved for window flashing timer ID */
        !          1924: #endif /* INCL_SAADEFS */
        !          1925: 
        !          1926: #endif /* INCL_WINTIMER */
        !          1927: 
        !          1928: 
        !          1929: #ifdef INCL_WINACCELERATORS
        !          1930: /**** Accelerator functions */
        !          1931: 
        !          1932: /* ACCEL fs bits
        !          1933:  *
        !          1934:  * NOTE: the first six AF_ code bits have the same value
        !          1935:  * as their KC_ counterparts
        !          1936:  */
        !          1937: #ifndef INCL_SAADEFS
        !          1938: #define AF_CHAR         0x0001
        !          1939: #define AF_VIRTUALKEY   0x0002
        !          1940: #define AF_SCANCODE     0x0004
        !          1941: #define AF_SHIFT        0x0008
        !          1942: #define AF_CONTROL      0x0010
        !          1943: #define AF_ALT          0x0020
        !          1944: #define AF_LONEKEY      0x0040
        !          1945: #define AF_SYSCOMMAND   0x0100
        !          1946: #define AF_HELP         0x0200
        !          1947: 
        !          1948: 
        !          1949: typedef LHANDLE HACCEL; /* haccel */
        !          1950: 
        !          1951: typedef struct _ACCEL {       /* acc */
        !          1952:     USHORT fs;
        !          1953:     USHORT key;
        !          1954:     USHORT cmd;
        !          1955: } ACCEL;
        !          1956: typedef ACCEL FAR *PACCEL;
        !          1957: 
        !          1958: typedef struct _ACCELTABLE {  /* acct  */
        !          1959:     USHORT cAccel;
        !          1960:     USHORT codepage;
        !          1961:     ACCEL aaccel[1];
        !          1962: } ACCELTABLE;
        !          1963: typedef ACCELTABLE FAR *PACCELTABLE;
        !          1964: 
        !          1965: HACCEL APIENTRY WinLoadAccelTable(HAB hab, HMODULE hmod, USHORT idAccelTable);
        !          1966: HACCEL APIENTRY WinCreateAccelTable(HAB hab, PACCELTABLE pAccelTable);
        !          1967: BOOL   APIENTRY WinDestroyAccelTable(HACCEL haccel);
        !          1968: USHORT APIENTRY WinCopyAccelTable(HACCEL haccel, PACCELTABLE pAccelTable,
        !          1969:                                   USHORT cbCopyMax);
        !          1970: BOOL   APIENTRY WinTranslateAccel(HAB hab, HWND hwnd, HACCEL haccel,
        !          1971:                                   PQMSG pqmsg);
        !          1972: BOOL   APIENTRY WinSetAccelTable(HAB hab, HACCEL haccel, HWND hwndFrame);
        !          1973: HACCEL APIENTRY WinQueryAccelTable(HAB hab, HWND hwndFrame);
        !          1974: #endif /* INCL_SAADEFS */
        !          1975: 
        !          1976: #endif /* INCL_WINACCELERATORS */
        !          1977: 
        !          1978: 
        !          1979: /*** WinTrackRect() stuff */
        !          1980: 
        !          1981: #ifdef INCL_WINTRACKRECT
        !          1982: 
        !          1983: /* WinTrackRect() tracking information structure */
        !          1984: 
        !          1985: typedef struct _TRACKINFO {   /* ti */
        !          1986:     SHORT  cxBorder;
        !          1987:     SHORT  cyBorder;
        !          1988:     SHORT  cxGrid;
        !          1989:     SHORT  cyGrid;
        !          1990:     SHORT  cxKeyboard;
        !          1991:     SHORT  cyKeyboard;
        !          1992:     RECTL  rclTrack;
        !          1993:     RECTL  rclBoundary;
        !          1994:     POINTL ptlMinTrackSize;
        !          1995:     POINTL ptlMaxTrackSize;
        !          1996:     USHORT fs;
        !          1997: } TRACKINFO;
        !          1998: typedef TRACKINFO FAR *PTRACKINFO;
        !          1999: 
        !          2000: #ifndef INCL_SAADEFS
        !          2001: BOOL APIENTRY WinTrackRect(HWND hwnd, HPS hps, PTRACKINFO pti);
        !          2002: BOOL APIENTRY WinShowTrackRect(HWND hwnd, BOOL fShow);
        !          2003: 
        !          2004: /* WinTrackRect() flags */
        !          2005: 
        !          2006: #define TF_LEFT              0x0001
        !          2007: #define TF_TOP               0x0002
        !          2008: #define TF_RIGHT             0x0004
        !          2009: #define TF_BOTTOM            0x0008
        !          2010: /* TF_MOVE = TF_LEFT | TF_TOP | TF_RIGHT | TF_BOTTOM */
        !          2011: #define TF_MOVE              0x000F
        !          2012: 
        !          2013: #define TF_SETPOINTERPOS     0x0010
        !          2014: #define TF_GRID              0x0020
        !          2015: #define TF_STANDARD          0x0040
        !          2016: #define TF_ALLINBOUNDARY     0x0080
        !          2017: #define TF_VALIDATETRACKRECT 0x0100
        !          2018: 
        !          2019: #endif /* INCL_SAADEFS */
        !          2020: 
        !          2021: #endif /* INCL_WINTRACKRECT */
        !          2022: 
        !          2023: 
        !          2024: /**** Clipboard Manager */
        !          2025: 
        !          2026: #ifdef INCL_WINCLIPBOARD
        !          2027: 
        !          2028: /* Clipboard messages */
        !          2029: 
        !          2030: #ifndef INCL_SAADEFS
        !          2031: #define WM_RENDERFMT        0x0060
        !          2032: #define WM_RENDERALLFMTS    0x0061
        !          2033: #define WM_DESTROYCLIPBOARD 0x0062
        !          2034: #define WM_PAINTCLIPBOARD   0x0063
        !          2035: #define WM_SIZECLIPBOARD    0x0064
        !          2036: #define WM_HSCROLLCLIPBOARD 0x0065
        !          2037: #define WM_VSCROLLCLIPBOARD 0x0066
        !          2038: #define WM_DRAWCLIPBOARD    0x0067
        !          2039: 
        !          2040: /* Standard Clipboard formats */
        !          2041: 
        !          2042: #define CF_TEXT             1
        !          2043: #define CF_BITMAP           2
        !          2044: #define CF_DSPTEXT          3
        !          2045: #define CF_DSPBITMAP        4
        !          2046: #define CF_METAFILE         5
        !          2047: #define CF_DSPMETAFILE      6
        !          2048: 
        !          2049: BOOL   APIENTRY WinOpenClipbrd(HAB hab);
        !          2050: BOOL   APIENTRY WinCloseClipbrd(HAB hab);
        !          2051: BOOL   APIENTRY WinEmptyClipbrd(HAB hab);
        !          2052: BOOL   APIENTRY WinSetClipbrdOwner(HAB hab, HWND hwnd);
        !          2053: HWND   APIENTRY WinQueryClipbrdOwner(HAB hab, BOOL fLock);
        !          2054: BOOL   APIENTRY WinSetClipbrdData(HAB hab, ULONG ulData, USHORT fmt, USHORT rgfFmtInfo);
        !          2055: ULONG  APIENTRY WinQueryClipbrdData(HAB hab, USHORT fmt);
        !          2056: USHORT APIENTRY WinEnumClipbrdFmts(HAB hab, USHORT fmt);
        !          2057: BOOL   APIENTRY WinQueryClipbrdFmtInfo(HAB hab, USHORT fmt,
        !          2058:                                        PUSHORT prgfFmtInfo);
        !          2059: BOOL   APIENTRY WinSetClipbrdViewer(HAB hab, HWND hwndNewClipViewer);
        !          2060: HWND   APIENTRY WinQueryClipbrdViewer(HAB hab, BOOL fLock);
        !          2061: 
        !          2062: /* WinSetClipbrdData() flags */
        !          2063: 
        !          2064: #define CFI_OWNERFREE       0x0001
        !          2065: #define CFI_OWNERDISPLAY    0x0002
        !          2066: #define CFI_SELECTOR        0x0100
        !          2067: #define CFI_HANDLE          0x0200
        !          2068: 
        !          2069: 
        !          2070: #endif /* INCL_SAADEFS */
        !          2071: 
        !          2072: #endif /* INCL_WINCLIPBOARD */
        !          2073: 
        !          2074: 
        !          2075: #if (defined(INCL_WINCURSORS) | !defined(INCL_NOCOMMON))
        !          2076: /**** Cursor manager common subsection */
        !          2077: 
        !          2078: #ifndef INCL_SAADEFS
        !          2079: BOOL APIENTRY WinDestroyCursor(HWND hwnd);
        !          2080: BOOL APIENTRY WinShowCursor(HWND hwnd, BOOL fShow);
        !          2081: BOOL APIENTRY WinCreateCursor(HWND hwnd, SHORT x, SHORT y, SHORT cx, SHORT cy,
        !          2082:                               USHORT fs, PRECTL prclClip);
        !          2083: 
        !          2084: /* WinCreateCursor() flags */
        !          2085: 
        !          2086: #define CURSOR_SOLID     0x0000
        !          2087: #define CURSOR_HALFTONE  0x0001
        !          2088: #define CURSOR_FRAME     0x0002
        !          2089: #define CURSOR_FLASH     0x0004
        !          2090: #define CURSOR_SETPOS    0x8000
        !          2091: 
        !          2092: #endif /* INCL_SAADEFS */
        !          2093: 
        !          2094: #endif /* Cursor manager common subsection */
        !          2095: 
        !          2096: #ifdef INCL_WINCURSORS
        !          2097: 
        !          2098: #ifndef INCL_SAADEFS
        !          2099: typedef struct _CURSORINFO {   /* csri */
        !          2100:     HWND   hwnd;
        !          2101:     SHORT  x;
        !          2102:     SHORT  y;
        !          2103:     SHORT  cx;
        !          2104:     SHORT  cy;
        !          2105:     USHORT fs;
        !          2106:     RECTL  rclClip;
        !          2107: } CURSORINFO;
        !          2108: typedef CURSORINFO FAR *PCURSORINFO;
        !          2109: 
        !          2110: BOOL APIENTRY WinQueryCursorInfo(HWND hwndDesktop, PCURSORINFO pCursorInfo);
        !          2111: #endif /* INCL_SAADEFS */
        !          2112: 
        !          2113: #endif /* INCL_WINCURSORS */
        !          2114: 
        !          2115: 
        !          2116: #ifdef INCL_WINPOINTERS
        !          2117: /**** Pointer manager */
        !          2118: 
        !          2119: typedef LHANDLE HPOINTER;   /* HPOINTER */
        !          2120: 
        !          2121: BOOL     APIENTRY WinSetPointer(HWND hwndDesktop, HPOINTER hptrNew);
        !          2122: BOOL     APIENTRY WinShowPointer(HWND hwndDesktop, BOOL fShow);
        !          2123: 
        !          2124: #ifndef INCL_SAADEFS
        !          2125: HPOINTER APIENTRY WinQuerySysPointer(HWND hwndDesktop, SHORT iptr, BOOL fLoad);
        !          2126: 
        !          2127: 
        !          2128: /* System pointers (NOTE: these are 1-based) */
        !          2129: 
        !          2130: /* The following pointers are loaded by pmwin */
        !          2131: #define SPTR_ARROW            1
        !          2132: #define SPTR_TEXT             2
        !          2133: #define SPTR_WAIT             3
        !          2134: #define SPTR_SIZE             4
        !          2135: #define SPTR_MOVE             5
        !          2136: #define SPTR_SIZENWSE         6
        !          2137: #define SPTR_SIZENESW         7
        !          2138: #define SPTR_SIZEWE           8
        !          2139: #define SPTR_SIZENS           9
        !          2140: #define SPTR_APPICON          10
        !          2141: #define SPTR_HANDICON         11
        !          2142: #define SPTR_QUESICON         12
        !          2143: #define SPTR_BANGICON         13
        !          2144: #define SPTR_NOTEICON         14
        !          2145: #define SPTR_CPTR             14    /* count loaded by pmwin */
        !          2146: 
        !          2147: /* The following pointers are loaded by pmwin */
        !          2148: #define SPTR_ILLEGAL          18
        !          2149: #define SPTR_FILE             19
        !          2150: #define SPTR_FOLDER           20
        !          2151: #define SPTR_MULTFILE         21
        !          2152: #define SPTR_PROGRAM          22
        !          2153: 
        !          2154: #endif /* INCL_SAADEFS */
        !          2155: 
        !          2156: #ifndef INCL_SAADEFS
        !          2157: HPOINTER APIENTRY WinLoadPointer(HWND hwndDesktop, HMODULE hmod, USHORT idres);
        !          2158: HPOINTER APIENTRY WinCreatePointer(HWND hwndDesktop, HBITMAP hbmPointer,
        !          2159:                                    BOOL fPointer, SHORT xHotspot,
        !          2160:                                    SHORT yHotspot);
        !          2161: BOOL     APIENTRY WinDestroyPointer(HPOINTER hptr);
        !          2162: #endif /* INCL_SAADEFS */
        !          2163: 
        !          2164: HPOINTER APIENTRY WinQueryPointer(HWND hwndDesktop);
        !          2165: BOOL     APIENTRY WinSetPointerPos(HWND hwndDesktop, SHORT x, SHORT y);
        !          2166: BOOL     APIENTRY WinQueryPointerPos(HWND hwndDesktop, PPOINTL pptl);
        !          2167: 
        !          2168: #ifndef INCL_SAADEFS
        !          2169: typedef struct _POINTERINFO {  /* ptri */
        !          2170:     BOOL fPointer;
        !          2171:     SHORT xHotspot;
        !          2172:     SHORT yHotspot;
        !          2173:     HBITMAP hbmPointer;
        !          2174: } POINTERINFO;
        !          2175: typedef POINTERINFO FAR *PPOINTERINFO;
        !          2176: 
        !          2177: BOOL     APIENTRY WinQueryPointerInfo(HPOINTER hptr,
        !          2178:                                       PPOINTERINFO pPointerInfo);
        !          2179: 
        !          2180: BOOL     APIENTRY WinDrawPointer(HPS hps, SHORT x, SHORT y, HPOINTER hptr,
        !          2181:                                  USHORT fs);
        !          2182: 
        !          2183: 
        !          2184: 
        !          2185: /* WinDrawPointer() constants */
        !          2186: 
        !          2187: #define DP_NORMAL      0x0000
        !          2188: #define DP_HALFTONED   0x0001
        !          2189: #define DP_INVERTED    0x0002
        !          2190: 
        !          2191: 
        !          2192: HBITMAP APIENTRY WinGetSysBitmap(HWND hwndDesktop, USHORT ibm);
        !          2193: 
        !          2194: /* System bitmaps (NOTE: these are 1-based) */
        !          2195: 
        !          2196: #define SBMP_SYSMENU          1
        !          2197: #define SBMP_SBUPARROW        2
        !          2198: #define SBMP_SBDNARROW        3
        !          2199: #define SBMP_SBRGARROW        4
        !          2200: #define SBMP_SBLFARROW        5
        !          2201: #define SBMP_MENUCHECK        6
        !          2202: #define SBMP_CHECKBOXES       7
        !          2203: #define SBMP_BTNCORNERS       8
        !          2204: #define SBMP_MINBUTTON        9
        !          2205: #define SBMP_MAXBUTTON        10
        !          2206: #define SBMP_RESTOREBUTTON    11
        !          2207: #define SBMP_CHILDSYSMENU     12
        !          2208: #define SBMP_DRIVE            15
        !          2209: #define SBMP_FILE             16
        !          2210: #define SBMP_FOLDER           17
        !          2211: #define SBMP_TREEPLUS         18
        !          2212: #define SBMP_TREEMINUS        19
        !          2213: #define SBMP_PROGRAM          22
        !          2214: #define SBMP_CBMP             22    /* count */
        !          2215: 
        !          2216: #endif /* INCL_SAADEFS */
        !          2217: 
        !          2218: #endif /* INCL_WINPOINTERS */
        !          2219: 
        !          2220: 
        !          2221: /**** Hook manager */
        !          2222: 
        !          2223: #ifdef INCL_WINHOOKS
        !          2224: 
        !          2225: #ifndef INCL_SAADEFS
        !          2226: BOOL APIENTRY WinSetHook(HAB hab, HMQ hmq, SHORT iHook, PFN pfnHook,
        !          2227:                          HMODULE hmod);
        !          2228: BOOL APIENTRY WinReleaseHook(HAB hab, HMQ hmq, SHORT iHook, PFN pfnHook,
        !          2229:                              HMODULE hmod);
        !          2230: BOOL APIENTRY WinCallMsgFilter(HAB hab, PQMSG pqmsg, SHORT msgf);
        !          2231: 
        !          2232: 
        !          2233: /* Hook codes */
        !          2234: 
        !          2235: #define HK_SENDMSG          0
        !          2236: #define HK_INPUT            1
        !          2237: #define HK_MSGFILTER        2
        !          2238: #define HK_JOURNALRECORD    3
        !          2239: #define HK_JOURNALPLAYBACK  4
        !          2240: #define HK_HELP             5
        !          2241: 
        !          2242: 
        !          2243: #define HMQ_CURRENT         ((HMQ)1)
        !          2244: 
        !          2245: /* WH_MSGFILTER context codes */
        !          2246: 
        !          2247: #define MSGF_DIALOGBOX      1
        !          2248: #define MSGF_MESSAGEBOX     2
        !          2249: #define MSGF_TRACK          8
        !          2250: 
        !          2251: /* HK_HELP Help modes */
        !          2252: 
        !          2253: #define HLPM_FRAME          (-1)
        !          2254: #define HLPM_WINDOW         (-2)
        !          2255: #define HLPM_MENU           (-3)
        !          2256: 
        !          2257: /* HK_SENDMSG structure */
        !          2258: 
        !          2259: typedef struct _SMHSTRUCT {   /* smhs */
        !          2260:     MPARAM mp2;
        !          2261:     MPARAM mp1;
        !          2262:     USHORT msg;
        !          2263:     HWND   hwnd;
        !          2264: } SMHSTRUCT;
        !          2265: typedef SMHSTRUCT FAR *PSMHSTRUCT;
        !          2266: #endif /* INCL_SAADEFS */
        !          2267: 
        !          2268: #endif /* INCL_WINHOOKS */
        !          2269: 
        !          2270: /*
        !          2271:  * Include Shell API stuff
        !          2272:  */
        !          2273: #ifndef INCL_SAADEFS
        !          2274: #include <pmshl.h>      /* OS/2 Shell definitions */
        !          2275: #endif /* INCL_SAADEFS */
        !          2276: 
        !          2277: #ifdef INCL_WINCOUNTRY
        !          2278: 
        !          2279: #ifndef INCL_SAADEFS
        !          2280: BOOL    APIENTRY WinSetCp(HMQ hmq, USHORT idCodePage);
        !          2281: USHORT  APIENTRY WinQueryCp(HMQ hmq);
        !          2282: USHORT  APIENTRY WinQueryCpList(HAB hab, USHORT ccpMax, PUSHORT prgcp);
        !          2283: BOOL    APIENTRY WinCpTranslateString(HAB hab, USHORT cpSrc, PSZ pszSrc,
        !          2284:                                       USHORT cpDst, USHORT cchDestMax,
        !          2285:                                       PSZ pchDest);
        !          2286: UCHAR   APIENTRY WinCpTranslateChar(HAB hab, USHORT cpSrc, UCHAR chSrc,
        !          2287:                                     USHORT cpDst);
        !          2288: 
        !          2289: USHORT  APIENTRY WinUpper(HAB hab, USHORT idcp, USHORT idcc, PSZ psz);
        !          2290: USHORT  APIENTRY WinUpperChar(HAB hab, USHORT idcp, USHORT idcc, USHORT c);
        !          2291: PSZ     APIENTRY WinNextChar(HAB hab, USHORT idcp, USHORT idcc, PSZ psz);
        !          2292: PSZ     APIENTRY WinPrevChar(HAB hab, USHORT idcp, USHORT idcc, PSZ pszStart,
        !          2293:                              PSZ psz);
        !          2294: USHORT  APIENTRY WinCompareStrings(HAB hab, USHORT idcp, USHORT idcc, PSZ psz1,
        !          2295:                                    PSZ psz2, USHORT reserved);
        !          2296: #define WCS_ERROR 0
        !          2297: #define WCS_EQ    1
        !          2298: #define WCS_LT    2
        !          2299: #define WCS_GT    3
        !          2300: 
        !          2301: #endif /* INCL_SAADEFS */
        !          2302: 
        !          2303: #endif /* INCL_WINCOUNTRY */
        !          2304: 
        !          2305: 
        !          2306: 
        !          2307: /* Heap Manager Interface declarations */
        !          2308: 
        !          2309: #ifdef INCL_WINHEAP
        !          2310: 
        !          2311: #ifndef INCL_SAADEFS
        !          2312: typedef LHANDLE HHEAP;
        !          2313: 
        !          2314: HHEAP       APIENTRY WinCreateHeap(USHORT selHeapBase, USHORT cbHeap,
        !          2315:                                    USHORT cbGrow, USHORT chMinDed,
        !          2316:                                    USHORT cbMaxDed, USHORT fOptions);
        !          2317: HHEAP       APIENTRY WinDestroyHeap(HHEAP hHeap);
        !          2318: USHORT      APIENTRY WinAvailMem(HHEAP hHeap, BOOL fCompact, USHORT cbMinFree);
        !          2319: NPBYTE      APIENTRY WinAllocMem(HHEAP hHeap, USHORT cb);
        !          2320: NPBYTE      APIENTRY WinReallocMem(HHEAP hHeap, NPBYTE npMem,
        !          2321:                                    USHORT cbOld, USHORT cbNew);
        !          2322: NPBYTE      APIENTRY WinFreeMem(HHEAP hHeap, NPBYTE npMem, USHORT cbMem);
        !          2323: PVOID       APIENTRY WinLockHeap(HHEAP hHeap);
        !          2324: 
        !          2325: #define HM_MOVEABLE     0x0001      /* Parameters to WinCreateHeap */
        !          2326: #define HM_VALIDSIZE    0x0002
        !          2327: #endif /* INCL_SAADEFS */
        !          2328: 
        !          2329: #endif  /* INCL_WINHEAP */
        !          2330: 
        !          2331: 
        !          2332: /*** Atom Manager Interface declarations */
        !          2333: 
        !          2334: #ifdef INCL_WINATOM
        !          2335: 
        !          2336: #ifndef INCL_SAADEFS
        !          2337: typedef LHANDLE  HATOMTBL;
        !          2338: typedef USHORT   ATOM;
        !          2339: 
        !          2340: HATOMTBL APIENTRY WinQuerySystemAtomTable(VOID);
        !          2341: HATOMTBL APIENTRY WinCreateAtomTable(USHORT cbInitial, USHORT cBuckets);
        !          2342: HATOMTBL APIENTRY WinDestroyAtomTable(HATOMTBL hAtomTbl);
        !          2343: ATOM     APIENTRY WinAddAtom(HATOMTBL hAtomTbl, PSZ pszAtomName);
        !          2344: ATOM     APIENTRY WinFindAtom(HATOMTBL hAtomTbl, PSZ pszAtomName);
        !          2345: ATOM     APIENTRY WinDeleteAtom(HATOMTBL hAtomTbl, ATOM atom);
        !          2346: USHORT   APIENTRY WinQueryAtomUsage(HATOMTBL hAtomTbl, ATOM atom);
        !          2347: USHORT   APIENTRY WinQueryAtomLength(HATOMTBL hAtomTbl, ATOM atom);
        !          2348: USHORT   APIENTRY WinQueryAtomName(HATOMTBL hAtomTbl, ATOM atom, PSZ pchBuffer,
        !          2349:                                    USHORT cchBufferMax);
        !          2350: 
        !          2351: #define MAKEINTATOM(a)  ((PCH)MAKEULONG(a, 0xffff))
        !          2352: #endif /* INCL_SAADEFS */
        !          2353: 
        !          2354: #endif /* INCL_WINATOM */
        !          2355: 
        !          2356: 
        !          2357: /*** Catch/Throw Interface declarations */
        !          2358: 
        !          2359: #ifdef INCL_WINCATCHTHROW
        !          2360: 
        !          2361: #ifndef INCL_SAADEFS
        !          2362: typedef struct _CATCHBUF {  /* ctchbf */
        !          2363:     ULONG reserved[ 4 ];
        !          2364: } CATCHBUF;
        !          2365: typedef CATCHBUF FAR *PCATCHBUF;
        !          2366: 
        !          2367: SHORT   APIENTRY    WinCatch(PCATCHBUF pcatchbuf);
        !          2368: VOID    APIENTRY    WinThrow(PCATCHBUF pcatchbuf, SHORT nThrowBack);
        !          2369: #endif /* INCL_SAADEFS */
        !          2370: 
        !          2371: #endif /* INCL_WINCATCHTHROW */
        !          2372: 
        !          2373: 
        !          2374: #ifdef INCL_WINERRORS
        !          2375: 
        !          2376: #define PMERR_INVALID_HWND                  0x1001
        !          2377: #define PMERR_INVALID_HMQ                   0x1002
        !          2378: #define PMERR_PARAMETER_OUT_OF_RANGE        0x1003
        !          2379: #define PMERR_WINDOW_LOCK_UNDERFLOW         0x1004
        !          2380: #define PMERR_WINDOW_LOCK_OVERFLOW          0x1005
        !          2381: #define PMERR_BAD_WINDOW_LOCK_COUNT         0x1006
        !          2382: #define PMERR_WINDOW_NOT_LOCKED             0x1007
        !          2383: #define PMERR_INVALID_SELECTOR              0x1008
        !          2384: #define PMERR_CALL_FROM_WRONG_THREAD        0x1009
        !          2385: #define PMERR_RESOURCE_NOT_FOUND            0x100a
        !          2386: #define PMERR_INVALID_STRING_PARM           0x100b
        !          2387: #define PMERR_INVALID_HHEAP                 0x100c
        !          2388: #define PMERR_INVALID_HEAP_POINTER          0x100d
        !          2389: #define PMERR_INVALID_HEAP_SIZE_PARM        0x100e
        !          2390: #define PMERR_INVALID_HEAP_SIZE             0x100f
        !          2391: #define PMERR_INVALID_HEAP_SIZE_WORD        0x1010
        !          2392: #define PMERR_HEAP_OUT_OF_MEMORY            0x1011
        !          2393: #define PMERR_HEAP_MAX_SIZE_REACHED         0x1012
        !          2394: #define PMERR_INVALID_HATOMTBL              0x1013
        !          2395: #define PMERR_INVALID_ATOM                  0x1014
        !          2396: #define PMERR_INVALID_ATOM_NAME             0x1015
        !          2397: #define PMERR_INVALID_INTEGER_ATOM          0x1016
        !          2398: #define PMERR_ATOM_NAME_NOT_FOUND           0x1017
        !          2399: #define PMERR_QUEUE_TOO_LARGE               0x1018
        !          2400: #define PMERR_INVALID_FLAG                  0x1019
        !          2401: #define PMERR_INVALID_HACCEL                0x101a
        !          2402: #define PMERR_INVALID_HPTR                  0x101b
        !          2403: #define PMERR_INVALID_HENUM                 0x101c
        !          2404: 
        !          2405: #define PMERR_INVALID_SRC_CODEPAGE          0x1030
        !          2406: #define PMERR_INVALID_DST_CODEPAGE          0x1031
        !          2407: 
        !          2408: /* These are not real error codes, but just used to access special   */
        !          2409: /* error message strings used by WinGetErrorInfo to format an error */
        !          2410: /* message.                                                         */
        !          2411: 
        !          2412: #define PMERR_UNKNOWN_COMPONENT_ID          0x101d
        !          2413: #define PMERR_UNKNOWN_ERROR_CODE            0x101e
        !          2414: #define PMERR_SEVERITY_LEVELS               0x101f
        !          2415: 
        !          2416: /* Error codes for debugging support */
        !          2417: 
        !          2418: #define WINDBG_HWND_NOT_DESTROYED           0x1020
        !          2419: #define WINDBG_HPTR_NOT_DESTROYED           0x1021
        !          2420: #define WINDBG_HACCEL_NOT_DESTROYED         0x1022
        !          2421: #define WINDBG_HENUM_NOT_DESTROYED          0x1023
        !          2422: #define WINDBG_VISRGN_SEM_BUSY              0x1024
        !          2423: #define WINDBG_USER_SEM_BUSY                0x1025
        !          2424: #define WINDBG_DC_CACHE_BUSY                0x1026
        !          2425: #define WINDBG_HOOK_STILL_INSTALLED         0x1027
        !          2426: #define WINDBG_WINDOW_STILL_LOCKED          0x1028
        !          2427: #define WINDBG_UPDATEPS_ASSERTION_FAIL      0x1029
        !          2428: #define WINDBG_SENDMSG_WITHIN_USER_SEM      0x102a
        !          2429: #define WINDBG_USER_SEM_NOT_ENTERED         0x102b
        !          2430: #define WINDBG_PROC_NOT_EXPORTED            0x102c
        !          2431: #define WINDBG_BAD_SENDMSG_HWND             0x102d
        !          2432: #define WINDBG_ABNORMAL_EXIT                0x102e
        !          2433: #define WINDBG_INTERNAL_REVISION            0x102f
        !          2434: 
        !          2435: /* Get/Set Error Information Interface declarations */
        !          2436: 
        !          2437: typedef struct _ERRINFO {   /* erri */
        !          2438:     USHORT    cbFixedErrInfo;
        !          2439:     ERRORID   idError;
        !          2440:     USHORT    cDetailLevel;
        !          2441:     USHORT    offaoffszMsg;
        !          2442:     USHORT    offBinaryData;
        !          2443: } ERRINFO;
        !          2444: typedef ERRINFO FAR *PERRINFO;
        !          2445: 
        !          2446: ERRORID     APIENTRY    WinGetLastError(HAB hab);
        !          2447: 
        !          2448: #ifndef INCL_SAADEFS
        !          2449: PERRINFO    APIENTRY    WinGetErrorInfo(HAB hab);
        !          2450: BOOL        APIENTRY    WinFreeErrorInfo(PERRINFO perrinfo);
        !          2451: #endif /* INCL_SAADEFS */
        !          2452: 
        !          2453: #endif  /* INCL_WINERRORS */
        !          2454: 
        !          2455: #ifndef INCL_SAADEFS
        !          2456: #ifdef INCL_DDE
        !          2457: /* Dynamic Data Exchange (DDE) Messages */
        !          2458: 
        !          2459: #define WM_DDE_FIRST        0x00A0
        !          2460: #define WM_DDE_INITIATE     0x00A0
        !          2461: #define WM_DDE_REQUEST      0x00A1
        !          2462: #define WM_DDE_ACK          0x00A2
        !          2463: #define WM_DDE_DATA         0x00A3
        !          2464: #define WM_DDE_ADVISE       0x00A4
        !          2465: #define WM_DDE_UNADVISE     0x00A5
        !          2466: #define WM_DDE_POKE         0x00A6
        !          2467: #define WM_DDE_EXECUTE      0x00A7
        !          2468: #define WM_DDE_TERMINATE    0x00A8
        !          2469: #define WM_DDE_LAST         0x00AF
        !          2470: #endif /* INCL_DDE */
        !          2471: #endif /* INCL_SAADEFS */

unix.superglobalmegacorp.com

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