|
|
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.