Annotation of pmsdk/include/pmwin.h, revision 1.1.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.