|
|
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 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.