source: 2.19_branch/Sibyl/RTL/PMWIN.PAS@ 376

Last change on this file since 376 was 8, checked in by RBRi, 19 years ago

+ rest of sibyl stuff

  • Property svn:eol-style set to native
File size: 127.4 KB
Line 
1UNIT PMWIN;
2
3{****************************** Module Header ******************************
4* *
5* Module Name: 'PMWIN'.PAS *
6* *
7* OS/2 Presentation Manager Window Manager unit file. *
8* *
9****************************************************************************}
10
11INTERFACE
12
13USES Os2Def;
14
15{Note: An ARRAY [0..x] OF CHAR is equal to a CSTRING[x] !
16 CString and PSZ are null terminated strings
17 PSZ is changed to PChar (^CString) in records and in
18 WinRegisterclass to recognize WC_XXXX values}
19
20
21CONST
22 { size for fields in the font structures }
23 FACESIZE =32;
24
25TYPE
26 FATTRS=RECORD
27 usRecordLength:USHORT;
28 fsSelection:USHORT;
29 lMatch:LONGINT;
30 szFacename:CSTRING[FACESIZE-1];
31 idRegistry:USHORT;
32 usCodePage:USHORT;
33 lMaxBaselineExt:LONGINT;
34 lAveCharWidth:LONG;
35 fsType:USHORT;
36 fsFontUse:USHORT;
37 END;
38
39TYPE
40 PANOSE=RECORD
41 bFamilyType:BYTE;
42 bSerifStyle:BYTE;
43 bWeight:BYTE;
44 bProportion:BYTE;
45 bContrast:BYTE;
46 bStrokeVariation:BYTE;
47 bArmStyle:BYTE;
48 bLetterform:BYTE;
49 bMidline:BYTE;
50 bXHeight:BYTE;
51 fbPassedISO:BYTE;
52 fbFailedISO:BYTE;
53 END;
54
55 PFONTMETRICS=^FONTMETRICS;
56 FONTMETRICS=RECORD
57 szFamilyname:CSTRING[FACESIZE-1];
58 szFacename:CSTRING[FACESIZE-1];
59 idRegistry:USHORT;
60 usCodePage:USHORT;
61 lEmHeight:LONG;
62 lXHeight:LONG;
63 lMaxAscender:LONG;
64 lMaxDescender:LONG;
65 lLowerCaseAscent:LONG;
66 lLowerCaseDescent:LONG;
67 lInternalLeading:LONG;
68 lExternalLeading:LONG;
69 lAveCharWidth:LONG;
70 lMaxCharInc:LONG;
71 lEmInc:LONG;
72 lMaxBaselineExt:LONG;
73 sCharSlope:SHORT;
74 sInlineDir:SHORT;
75 sCharRot:SHORT;
76 usWeightClass:USHORT;
77 usWidthClass:USHORT;
78 sXDeviceRes:SHORT;
79 sYDeviceRes:SHORT;
80 sFirstChar:SHORT;
81 sLastChar:SHORT;
82 sDefaultChar:SHORT;
83 sBreakChar:SHORT;
84 sNominalPointSize:SHORT;
85 sMinimumPointSize:SHORT;
86 sMaximumPointSize:SHORT;
87 fsType:USHORT;
88 fsDefn:USHORT;
89 fsSelection:USHORT;
90 fsCapabilities:USHORT;
91 lSubscriptXSize:LONG;
92 lSubscriptYSize:LONG;
93 lSubscriptXOffset:LONG;
94 lSubscriptYOffset:LONG;
95 lSuperscriptXSize:LONG;
96 lSuperscriptYSize:LONG;
97 lSuperscriptXOffset:LONG;
98 lSuperscriptYOffset:LONG;
99 lUnderscoreSize:LONG;
100 lUnderscorePosition:LONG;
101 lStrikeoutSize:LONG;
102 lStrikeoutPosition:LONG;
103 sKerningPairs:SHORT;
104 sFamilyClass:SHORT;
105 lMatch:LONG;
106 FamilyNameAtom:LONG;
107 FaceNameAtom:LONG;
108 _panose:PANOSE;
109 END;
110
111
112{***************************************************************************
113 General Window Management types, constants and macros
114 ***************************************************************************}
115
116CONST
117 { Standard Window Messages }
118 WM_NULL =$0000;
119 WM_CREATE =$0001;
120 WM_DESTROY =$0002;
121 WM_ENABLE =$0004;
122 WM_SHOW =$0005;
123 WM_MOVE =$0006;
124 WM_SIZE =$0007;
125 WM_ADJUSTWINDOWPOS =$0008;
126 WM_CALCVALIDRECTS =$0009;
127 WM_SETWINDOWPARAMS =$000a;
128 WM_QUERYWINDOWPARAMS =$000b;
129 WM_HITTEST =$000c;
130 WM_ACTIVATE =$000d;
131 WM_SETFOCUS =$000f;
132 WM_SETSELECTION =$0010;
133 WM_PPAINT =$0011;
134 WM_PSETFOCUS =$0012;
135 WM_PSYSCOLORCHANGE =$0013;
136 WM_PSIZE =$0014;
137 WM_PACTIVATE =$0015;
138 WM_PCONTROL =$0016;
139 WM_COMMAND =$0020;
140 WM_SYSCOMMAND =$0021;
141 WM_HELP =$0022;
142 WM_PAINT =$0023;
143 WM_TIMER =$0024;
144 WM_SEM1 =$0025;
145 WM_SEM2 =$0026;
146 WM_SEM3 =$0027;
147 WM_SEM4 =$0028;
148 WM_CLOSE =$0029;
149 WM_QUIT =$002a;
150 WM_SYSCOLORCHANGE =$002b;
151 WM_SYSVALUECHANGED =$002d;
152 WM_APPTERMINATENOTIFY =$002e;
153 WM_PRESPARAMCHANGED =$002f;
154
155 { Control notification messages }
156 WM_CONTROL =$0030;
157 WM_VSCROLL =$0031;
158 WM_HSCROLL =$0032;
159 WM_INITMENU =$0033;
160 WM_MENUSELECT =$0034;
161 WM_MENUEND =$0035;
162 WM_DRAWITEM =$0036;
163 WM_MEASUREITEM =$0037;
164 WM_CONTROLPOINTER =$0038;
165 WM_QUERYDLGCODE =$003a;
166 WM_INITDLG =$003b;
167 WM_SUBSTITUTESTRING =$003c;
168 WM_MATCHMNEMONIC =$003d;
169 WM_SAVEAPPLICATION =$003e;
170
171 { Frame window related messages }
172
173 WM_FLASHWINDOW =$0040;
174 WM_FORMATFRAME =$0041;
175 WM_UPDATEFRAME =$0042;
176 WM_FOCUSCHANGE =$0043;
177
178 WM_SETBORDERSIZE =$0044;
179 WM_TRACKFRAME =$0045;
180 WM_MINMAXFRAME =$0046;
181 WM_SETICON =$0047;
182 WM_QUERYICON =$0048;
183 WM_SETACCELTABLE =$0049;
184 WM_QUERYACCELTABLE =$004a;
185 WM_TRANSLATEACCEL =$004b;
186 WM_QUERYTRACKINFO =$004c;
187 WM_QUERYBORDERSIZE =$004d;
188 WM_NEXTMENU =$004e;
189 WM_ERASEBACKGROUND =$004f;
190 WM_QUERYFRAMEINFO =$0050;
191 WM_QUERYFOCUSCHAIN =$0051;
192 WM_OWNERPOSCHANGE =$0052;
193 WM_CALCFRAMERECT =$0053;
194 WM_WINDOWPOSCHANGED =$0055;
195 WM_ADJUSTFRAMEPOS =$0056;
196 WM_QUERYFRAMECTLCOUNT =$0059;
197 WM_QUERYHELPINFO =$005B;
198 WM_SETHELPINFO =$005C;
199 WM_ERROR =$005D;
200 WM_REALIZEPALETTE =$005E;
201
202 { Key/Character input messages }
203 WM_CHAR =$007a;
204 WM_VIOCHAR =$007b;
205
206 { Mouse input messages }
207 WM_MOUSEFIRST =$0070;
208 WM_MOUSELAST =$0079;
209 WM_BUTTONCLICKFIRST =$0071;
210 WM_BUTTONCLICKLAST =$0079;
211 WM_MOUSEMOVE =$0070;
212 WM_BUTTON1DOWN =$0071;
213 WM_BUTTON1UP =$0072;
214 WM_BUTTON1DBLCLK =$0073;
215 WM_BUTTON2DOWN =$0074;
216 WM_BUTTON2UP =$0075;
217 WM_BUTTON2DBLCLK =$0076;
218 WM_BUTTON3DOWN =$0077;
219 WM_BUTTON3UP =$0078;
220 WM_BUTTON3DBLCLK =$0079;
221 WM_MOUSEMAP =$007D;
222
223 WM_EXTMOUSEFIRST =$0410;
224 WM_EXTMOUSELAST =$041F;
225 WM_CHORD =$0410;
226 WM_BUTTON1MOTIONSTART =$0411;
227 WM_BUTTON1MOTIONEND =$0412;
228 WM_BUTTON1CLICK =$0413;
229 WM_BUTTON2MOTIONSTART =$0414;
230 WM_BUTTON2MOTIONEND =$0415;
231 WM_BUTTON2CLICK =$0416;
232 WM_BUTTON3MOTIONSTART =$0417;
233 WM_BUTTON3MOTIONEND =$0418;
234 WM_BUTTON3CLICK =$0419;
235 WM_MOUSEENTER =$041E; // Not in original Warp3
236 WM_MOUSELEAVE =$041F; // Not in original Warp3
237 WM_MOUSETRANSLATEFIRST =$0420;
238 WM_MOUSETRANSLATELAST =$0428;
239 WM_BEGINDRAG =$0420;
240 WM_ENDDRAG =$0421;
241 WM_SINGLESELECT =$0422;
242 WM_OPEN =$0423;
243 WM_CONTEXTMENU =$0424;
244 WM_CONTEXTHELP =$0425;
245 WM_TEXTEDIT =$0426;
246 WM_BEGINSELECT =$0427;
247 WM_ENDSELECT =$0428;
248 WM_PENFIRST =$04C0;
249 WM_PENLAST =$04FF;
250 WM_MMPMFIRST =$0500;
251 WM_MMPMLAST =$05FF;
252
253 WM_HELPBASE =$0F00; {Start of msgs for help manager}
254 WM_HELPTOP =$0FFF; { End of msgs for help manager }
255
256 WM_USER =$1000;
257
258 WM_MOUSEDRAG1 =$1001; {own defined}
259 WM_MOUSEDRAG2 =$1002; {own defined}
260
261 WM_SPEED_USER =$1003; {use this entry when working with OPML !}
262
263 WM_VRNDISABLED =$007E;
264 WM_VRNENABLED =$007F;
265
266{ Predefined window handles }
267CONST
268 HWND_DESKTOP =1;
269 HWND_OBJECT =2;
270 HWND_TOP =3;
271 HWND_BOTTOM =4;
272 HWND_THREADCAPTURE =5;
273
274{ Standard Window Styles }
275CONST
276 WS_VISIBLE =$80000000;
277 WS_DISABLED =$40000000;
278 WS_CLIPCHILDREN =$20000000;
279 WS_CLIPSIBLINGS =$10000000;
280 WS_PARENTCLIP =$08000000;
281 WS_SAVEBITS =$04000000;
282 WS_SYNCPAINT =$02000000;
283 WS_MINIMIZED =$01000000;
284 WS_MAXIMIZED =$00800000;
285 WS_ANIMATE =$00400000;
286
287{ Dialog manager styles }
288CONST
289 WS_GROUP =$00010000;
290 WS_TABSTOP =$00020000;
291 WS_MULTISELECT =$00040000;
292
293{ Class styles }
294CONST
295 CS_MOVENOTIFY =$00000001;
296 CS_SIZEREDRAW =$00000004;
297 CS_HITTEST =$00000008;
298 CS_PUBLIC =$00000010;
299 CS_FRAME =$00000020;
300 CS_CLIPCHILDREN =$20000000;
301 CS_CLIPSIBLINGS =$10000000;
302 CS_PARENTCLIP =$08000000;
303 CS_SAVEBITS =$04000000;
304 CS_SYNCPAINT =$02000000;
305
306CONST
307 PSF_LOCKWINDOWUPDATE =$0001;
308 PSF_CLIPUPWARDS =$0002;
309 PSF_CLIPDOWNWARDS =$0004;
310 PSF_CLIPSIBLINGS =$0008;
311 PSF_CLIPCHILDREN =$0010;
312 PSF_PARENTCLIP =$0020;
313
314{ WinScrollWindow() flags }
315CONST
316 SW_SCROLLCHILDREN =$0001;
317 SW_INVALIDATERGN =$0002;
318
319{ WinInitialize/WinTerminate Interface declarations }
320
321TYPE
322 PQVERSDATA=^QVERSDATA;
323 QVERSDATA=RECORD
324 environment:USHORT;
325 version:USHORT;
326 END;
327
328CONST
329 QV_OS2 =$0000;
330 QV_CMS =$0001;
331 QV_TSO =$0002;
332 QV_TSOBATCH =$0003;
333 QV_OS400 =$0004;
334
335/*** Class info structure returned by WinEnumObjectClasses ***********/
336TYPE
337 POBJCLASS=^OBJCLASS;
338 OBJCLASS=RECORD
339 pNext:POBJCLASS; /* Null for the last structure.. */
340 pszClassName:PCHAR; /* Class name */
341 pszModName:PCHAR; /* Module name */
342 END;
343
344{ WinQueryWindow() codes }
345CONST
346 QW_NEXT =0;
347 QW_PREV =1;
348 QW_TOP =2;
349 QW_BOTTOM =3;
350 QW_OWNER =4;
351 QW_PARENT =5;
352 QW_NEXTTOP =6;
353 QW_PREVTOP =7;
354 QW_FRAMEOWNER =8;
355
356{ Values returned from WM_ADJUSTWINDOWPOS and passed to WM_WINDOWPOSCHANGED }
357
358CONST
359 AWP_MINIMIZED =$00010000;
360 AWP_MAXIMIZED =$00020000;
361 AWP_RESTORED =$00040000;
362 AWP_ACTIVATE =$00080000;
363 AWP_DEACTIVATE =$00100000;
364
365{ WinSetWindowPos() flags }
366
367 SWP_SIZE =$0001;
368 SWP_MOVE =$0002;
369 SWP_ZORDER =$0004;
370 SWP_SHOW =$0008;
371 SWP_HIDE =$0010;
372 SWP_NOREDRAW =$0020;
373 SWP_NOADJUST =$0040;
374 SWP_ACTIVATE =$0080;
375 SWP_DEACTIVATE =$0100;
376 SWP_EXTSTATECHANGE =$0200;
377 SWP_MINIMIZE =$0400;
378 SWP_MAXIMIZE =$0800;
379 SWP_RESTORE =$1000;
380 SWP_FOCUSACTIVATE =$2000;
381 SWP_FOCUSDEACTIVATE =$4000;
382 SWP_NOAUTOCLOSE =$8000; { Valid in PROGDETAILS struct only }
383
384
385{ WinDrawBitmap() flags }
386
387CONST
388 DBM_NORMAL =$0000;
389 DBM_INVERT =$0001;
390 DBM_HALFTONE =$0002;
391 DBM_STRETCH =$0004;
392 DBM_IMAGEATTRS =$0008;
393
394
395
396{*
397* WinDrawText() codes:
398* From DT_LEFT to DT_EXTERNALLEADING, the codes are designed to be OR'ed with
399* SS_TEXT to create variations of the basic text static item.
400*}
401
402CONST
403 DT_LEFT =$0000;
404 DT_QUERYEXTENT =$0002;
405 DT_UNDERSCORE =$0010;
406 DT_STRIKEOUT =$0020;
407 DT_TEXTATTRS =$0040;
408 DT_EXTERNALLEADING =$0080;
409 DT_CENTER =$0100;
410 DT_RIGHT =$0200;
411 DT_TOP =$0000;
412 DT_VCENTER =$0400;
413 DT_BOTTOM =$0800;
414 DT_HALFTONE =$1000;
415 DT_MNEMONIC =$2000;
416 DT_WORDBREAK =$4000;
417 DT_ERASERECT =$8000;
418
419{ WinDrawBorder() flags }
420
421CONST
422 DB_PATCOPY =$0000;
423 DB_PATINVERT =$0001;
424 DB_DESTINVERT =$0002;
425 DB_AREAMIXMODE =$0003;
426
427 DB_ROP =$0007;
428 DB_INTERIOR =$0008;
429 DB_AREAATTRS =$0010;
430 DB_STANDARD =$0100;
431 DB_DLGBORDER =$0200;
432 DB_RAISED =$0400;
433 DB_DEPRESSED =$0800;
434
435TYPE
436 HOBJECT=LONGWORD;
437
438{ WM_CREATE structure }
439TYPE
440 PCREATESTRUCT=^CREATESTRUCT;
441 CREATESTRUCT=RECORD
442 pPresParams:PVOID;
443 pCtlData:PVOID;
444 id:ULONG;
445 hwndInsertBehind:HWND;
446 hwndOwner:HWND;
447 cy:LONG;
448 cx:LONG;
449 y:LONG;
450 x:LONG;
451 flStyle:ULONG;
452 pszText:PChar;
453 pszClass:PChar;
454 hwndParent:HWND;
455 END;
456
457 { WinQueryClassInfo() structure }
458
459TYPE
460 PCLASSINFO=^CLASSINFO;
461 CLASSINFO=RECORD
462 flClassStyle:ULONG;
463 pfnWindowProc:POINTER;
464 cbWindowData:ULONG;
465 END;
466
467{ Standard WinQueryWindowUSHORT/ULONG() indices }
468CONST
469 QWS_USER =0;
470 QWS_ID =-1;
471 QWS_MIN =-1;
472
473 QWL_USER =0;
474 QWL_STYLE =-2;
475 QWP_PFNWP =-3;
476 QWL_HMQ =-4;
477 QWL_RESERVED =-5;
478
479 QWL_PENDATA =-7;
480 QWL_MIN =-7;
481
482{ WC_FRAME WinQueryWindowUSHORT/ULONG() indices }
483
484CONST
485 QWL_HHEAP =$0004;
486 QWL_HWNDFOCUSSAVE =$0018;
487 QWL_DEFBUTTON =$0040;
488 QWL_PSSCBLK =$0048;
489 QWL_PFEPBLK =$004c;
490 QWL_PSTATBLK =$0050;
491
492 QWS_FLAGS =$0008;
493 QWS_RESULT =$000a;
494 QWS_XRESTORE =$000c;
495 QWS_YRESTORE =$000e;
496 QWS_CXRESTORE =$0010;
497 QWS_CYRESTORE =$0012;
498 QWS_XMINIMIZE =$0014;
499 QWS_YMINIMIZE =$0016;
500
501
502{ Window enumeration }
503
504TYPE
505 HENUM=LHANDLE;
506
507{ WM_COMMAND msg source codes }
508
509CONST
510 CMDSRC_PUSHBUTTON =1;
511 CMDSRC_MENU =2;
512 CMDSRC_ACCELERATOR =3;
513 CMDSRC_FONTDLG =4;
514 CMDSRC_FILEDLG =5;
515 CMDSRC_PRINTDLG =6;
516 CMDSRC_COLORDLG =7;
517 CMDSRC_OTHER =0;
518
519TYPE
520 PCMDMSG=^CMDMSG; {#pragma Pack 1}
521 CMDMSG=RECORD
522 cmd:USHORT;
523 unused:USHORT;
524 source:USHORT;
525 fMouse:USHORT;
526 END;
527
528 PCHRMSG=^CHRMSG; {#pragma Pack 1}
529 CHRMSG=RECORD
530 fs:WORD;
531 cRepeat:BYTE;
532 ScanCode:BYTE;
533 chr:WORD;
534 vkey:WORD;
535 END;
536
537 PMSEMSG=^MSEMSG; {#pragma Pack 1}
538 MSEMSG=RECORD
539 x,y:INTEGER;
540 codeHitTest:WORD;
541 fsInp:WORD;
542 END;
543
544
545 PMQINFO=^MQINFO;
546 MQINFO=RECORD
547 cb:ULONG;
548 pid:PID;
549 tid:TID;
550 cmsgs:ULONG;
551 pReserved:POINTER;
552 END;
553
554{ WinPeekMsg() constants }
555
556CONST
557 PM_REMOVE =$0001;
558 PM_NOREMOVE =$0000;
559
560{ WinRegisterUserMsg direction codes }
561
562CONST
563 RUM_IN =1;
564 RUM_OUT =2;
565 RUM_INOUT =3;
566
567{ WinSetMsgMode constants }
568
569CONST
570 SMD_DELAYED =$0001;
571 SMD_IMMEDIATE =$0002;
572
573{ WinSetSynchroMode constants }
574
575CONST
576 SSM_SYNCHRONOUS =$0001;
577 SSM_ASYNCHRONOUS =$0002;
578 SSM_MIXED =$0003;
579
580
581{ WM_CALCVALIDRECTS return flags }
582
583CONST
584 CVR_ALIGNLEFT =$0001;
585 CVR_ALIGNBOTTOM =$0002;
586 CVR_ALIGNRIGHT =$0004;
587 CVR_ALIGNTOP =$0008;
588 CVR_REDRAW =$0010;
589
590{ WM_HITTEST return codes }
591
592CONST
593 HT_NORMAL =0;
594 HT_TRANSPARENT =-1;
595 HT_DISCARD =-2;
596 HT_ERROR =-3;
597
598{ WM_SET/QUERYWINDOWPARAMS structures and flags }
599
600TYPE
601 PWNDPARAMS=^WNDPARAMS;
602 WNDPARAMS=RECORD
603 fsStatus:ULONG;
604 cchText:ULONG;
605 pszText:PChar;
606 cbPresParams:ULONG;
607 pPresParams:POINTER;
608 cbCtlData:ULONG;
609 pCtlData:POINTER;
610 END;
611
612CONST
613 WPM_TEXT =$0001;
614 WPM_CTLDATA =$0002;
615 WPM_PRESPARAMS =$0004;
616 WPM_CCHTEXT =$0008;
617 WPM_CBCTLDATA =$0010;
618 WPM_CBPRESPARAMS =$0020;
619
620
621{ WinBroadcastMsg codes }
622CONST
623 BMSG_POST =$0000;
624 BMSG_SEND =$0001;
625 BMSG_POSTQUEUE =$0002;
626 BMSG_DESCENDANTS =$0004;
627 BMSG_FRAMEONLY =$0008;
628
629
630{ WinQueryQueueStatus() constants }
631CONST
632 QS_KEY =$0001;
633 QS_MOUSEBUTTON =$0002;
634 QS_MOUSEMOVE =$0004;
635 QS_MOUSE =$0006; { QS_MOUSEMOVE|QS_MOUSEBUTTON }
636 QS_TIMER =$0008;
637 QS_PAINT =$0010;
638 QS_POSTMSG =$0020;
639 QS_SEM1 =$0040;
640 QS_SEM2 =$0080;
641 QS_SEM3 =$0100;
642 QS_SEM4 =$0200;
643 QS_SENDMSG =$0400;
644 QS_MSGINPUT =$0800;
645
646
647
648TYPE
649 HEV=ULONG;
650 HMTX=ULONG;
651 HMUX=ULONG;
652
653{ WinSetMsgInterest()/WinSetClassMsgInterest() constants }
654CONST
655 SMIM_ALL =$0EFF;
656 SMI_NOINTEREST =$0001;
657 SMI_INTEREST =$0002;
658 SMI_RESET =$0004;
659 SMI_AUTODISPATCH =$0008;
660
661CONST
662 FC_NOSETFOCUS =$0001;
663 FC_NOBRINGTOTOP =FC_NOSETFOCUS;
664 FC_NOLOSEFOCUS =$0002;
665 FC_NOBRINGTOPFIRSTWINDOW =FC_NOLOSEFOCUS;
666 FC_NOSETACTIVE =$0004;
667 FC_NOLOSEACTIVE =$0008;
668 FC_NOSETSELECTION =$0010;
669 FC_NOLOSESELECTION =$0020;
670
671 QFC_NEXTINCHAIN =$0001;
672 QFC_ACTIVE =$0002;
673 QFC_FRAME =$0003;
674 QFC_SELECTACTIVE =$0004;
675 QFC_PARTOFCHAIN =$0005;
676
677{ WM_CHAR fs field bits }
678CONST
679 KC_NONE =$0000; { Reserved }
680 KC_CHAR =$0001;
681 KC_VIRTUALKEY =$0002;
682 KC_SCANCODE =$0004;
683
684 KC_SHIFT =$0008;
685 KC_CTRL =$0010;
686 KC_ALT =$0020;
687 KC_KEYUP =$0040;
688 KC_PREVDOWN =$0080;
689 KC_LONEKEY =$0100;
690 KC_DEADKEY =$0200;
691 KC_COMPOSITE =$0400;
692 KC_INVALIDCOMP =$0800;
693
694 KC_TOGGLE =$1000;
695 KC_INVALIDCHAR =$2000;
696 KC_DBCSRSRVD1 =$4000;
697 KC_DBCSRSRVD2 =$8000;
698
699CONST
700 INP_NONE =$0000;
701 INP_KBD =$0001;
702 INP_MULT =$0002;
703 INP_RES2 =$0004;
704 INP_SHIFT =$0008;
705 INP_CTRL =$0010;
706 INP_ALT =$0020;
707 INP_RES3 =$0040;
708 INP_RES4 =$0080;
709 INP_IGNORE =$FFFF;
710
711{ Virtual key values }
712CONST
713 VK_BUTTON1 =$01;
714 VK_BUTTON2 =$02;
715 VK_BUTTON3 =$03;
716 VK_BREAK =$04;
717 VK_BACKSPACE =$05;
718 VK_TAB =$06;
719 VK_BACKTAB =$07;
720 VK_NEWLINE =$08;
721 VK_SHIFT =$09;
722 VK_CTRL =$0A;
723 VK_ALT =$0B;
724 VK_ALTGRAF =$0C;
725 VK_PAUSE =$0D;
726 VK_CAPSLOCK =$0E;
727 VK_ESC =$0F;
728 VK_SPACE =$10;
729 VK_PAGEUP =$11;
730 VK_PAGEDOWN =$12;
731 VK_END =$13;
732 VK_HOME =$14;
733 VK_LEFT =$15;
734 VK_UP =$16;
735 VK_RIGHT =$17;
736 VK_DOWN =$18;
737 VK_PRINTSCRN =$19;
738 VK_INSERT =$1A;
739 VK_DELETE =$1B;
740 VK_SCRLLOCK =$1C;
741 VK_NUMLOCK =$1D;
742 VK_ENTER =$1E;
743 VK_SYSRQ =$1F;
744 VK_F1 =$20;
745 VK_F2 =$21;
746 VK_F3 =$22;
747 VK_F4 =$23;
748 VK_F5 =$24;
749 VK_F6 =$25;
750 VK_F7 =$26;
751 VK_F8 =$27;
752 VK_F9 =$28;
753 VK_F10 =$29;
754 VK_F11 =$2A;
755 VK_F12 =$2B;
756 VK_F13 =$2C;
757 VK_F14 =$2D;
758 VK_F15 =$2E;
759 VK_F16 =$2F;
760 VK_F17 =$30;
761 VK_F18 =$31;
762 VK_F19 =$32;
763 VK_F20 =$33;
764 VK_F21 =$34;
765 VK_F22 =$35;
766 VK_F23 =$36;
767 VK_F24 =$37;
768 VK_ENDDRAG =$38;
769 VK_CLEAR =$39;
770 VK_EREOF =$3A;
771 VK_PA1 =$3B;
772
773
774 VK_MENU =VK_F10;
775 VK_DBCSFIRST =$0080;
776 VK_DBCSLAST =$00ff;
777
778 VK_USERFIRST =$0100;
779 VK_USERLAST =$01ff;
780
781{ Journal Notification messages }
782CONST
783 WM_JOURNALNOTIFY =$007c;
784
785CONST
786 JRN_QUEUESTATUS =$00000001;
787 JRN_PHYSKEYSTATE =$00000002;
788
789
790{ Special item IDs }
791CONST
792 DID_OK =1;
793 DID_CANCEL =2;
794 DID_ERROR =$ffff;
795
796{ WinAlarm Codes }
797CONST
798 WA_WARNING =0;
799 WA_NOTE =1;
800 WA_ERROR =2;
801 WA_CWINALARMS =13;
802
803
804{ Message box types }
805CONST
806 MB_OK =$0000;
807 MB_OKCANCEL =$0001;
808 MB_RETRYCANCEL =$0002;
809 MB_ABORTRETRYIGNORE =$0003;
810 MB_YESNO =$0004;
811 MB_YESNOCANCEL =$0005;
812 MB_CANCEL =$0006;
813 MB_ENTER =$0007;
814 MB_ENTERCANCEL =$0008;
815
816 MB_NOICON =$0000;
817 MB_CUANOTIFICATION =$0000;
818 MB_ICONQUESTION =$0010;
819 MB_ICONEXCLAMATION =$0020;
820 MB_CUAWARNING =$0020;
821 MB_ICONASTERISK =$0030;
822 MB_ICONHAND =$0040;
823 MB_CUACRITICAL =$0040;
824 MB_QUERY =MB_ICONQUESTION;
825 MB_WARNING =MB_CUAWARNING;
826 MB_INFORMATION =MB_ICONASTERISK;
827 MB_CRITICAL =MB_CUACRITICAL;
828 MB_ERROR =MB_CRITICAL;
829
830 MB_DEFBUTTON1 =$0000;
831 MB_DEFBUTTON2 =$0100;
832 MB_DEFBUTTON3 =$0200;
833
834 MB_APPLMODAL =$0000;
835 MB_SYSTEMMODAL =$1000;
836 MB_HELP =$2000;
837 MB_MOVEABLE =$4000;
838
839
840{ Message box return codes }
841
842CONST
843 MBID_OK =1;
844 MBID_CANCEL =2;
845 MBID_ABORT =3;
846 MBID_RETRY =4;
847 MBID_IGNORE =5;
848 MBID_YES =6;
849 MBID_NO =7;
850 MBID_HELP =8;
851 MBID_ENTER =9;
852 MBID_ERROR =$ffff;
853
854{ Dialog codes: returned by WM_QUERYDLGCODE msg }
855
856CONST
857 DLGC_ENTRYFIELD =$0001; { Entry field item understands EM_SETSEL) }
858 DLGC_BUTTON =$0002; { Button item }
859 DLGC_RADIOBUTTON =$0004; { Radio button }
860 DLGC_STATIC =$0008; { Static item }
861 DLGC_DEFAULT =$0010; { Default push button }
862 DLGC_PUSHBUTTON =$0020; { Normal (Non-default) push button }
863 DLGC_CHECKBOX =$0040; { Check box button control }
864 DLGC_SCROLLBAR =$0080; { Scroll bar }
865 DLGC_MENU =$0100; { Menu }
866 DLGC_TABONCLICK =$0200;
867 DLGC_MLE =$0400; { Multiple Line Entry }
868
869{ WinEnumDlgItem() constants }
870CONST
871 EDI_FIRSTTABITEM =0;
872 EDI_LASTTABITEM =1;
873 EDI_NEXTTABITEM =2;
874 EDI_PREVTABITEM =3;
875 EDI_FIRSTGROUPITEM =4;
876 EDI_LASTGROUPITEM =5;
877 EDI_NEXTGROUPITEM =6;
878 EDI_PREVGROUPITEM =7;
879
880{ Dialog template definitions }
881
882TYPE
883 PDLGITEM=^DLGITEM;
884 DLGITEM=RECORD {pack 2}
885 fsItemStatus:USHORT;
886 cChildren:USHORT;
887 cchClassName:USHORT;
888 offClassName:USHORT;
889 cchText:USHORT;
890 offText:USHORT;
891 flStyle:ULONG;
892 x:INTEGER;
893 y:INTEGER;
894 cx:INTEGER;
895 cy:INTEGER;
896 id:USHORT;
897 offPresParams:USHORT;
898 offCtlData:USHORT;
899 END;
900
901{ Dialog Template structure }
902
903TYPE
904 PDLGTEMPLATE=^DLGTEMPLATE;
905 DLGTEMPLATE=RECORD {pack 2}
906 cbTemplate:USHORT;
907 atype:USHORT;
908 codepage:USHORT;
909 offadlgti:USHORT;
910 fsTemplateStatus:USHORT;
911 iItemFocus:USHORT;
912 coffPresParams:USHORT;
913 adlgti:ARRAY[0..0] OF DLGITEM;
914 END;
915
916
917{ Static Control Manager }
918
919{* Static control styles:***************************************************
920 * *
921 * NOTE: the top 9 bits of the LOUSHORT of the window flStyle are used for *
922 * DT_* flags. The lower 7 bits are for SS_* styles. This gives us up *
923 * to 128 distinct static control types (we currently use 11 of them). *
924 ***************************************************************************}
925
926CONST
927 SS_TEXT =$0001;
928 SS_GROUPBOX =$0002;
929
930 SS_ICON =$0003;
931 SS_BITMAP =$0004;
932 SS_FGNDRECT =$0005;
933 SS_HALFTONERECT =$0006;
934 SS_BKGNDRECT =$0007;
935 SS_FGNDFRAME =$0008;
936 SS_HALFTONEFRAME =$0009;
937 SS_BKGNDFRAME =$000a;
938 SS_SYSICON =$000b;
939 SS_AUTOSIZE =$0040;
940
941
942{ Static control messages }
943
944CONST
945 SM_SETHANDLE =$0100;
946 SM_QUERYHANDLE =$0101;
947
948{ Button control styles }
949
950CONST
951 BS_PUSHBUTTON =0;
952 BS_CHECKBOX =1;
953 BS_AUTOCHECKBOX =2;
954 BS_RADIOBUTTON =3;
955 BS_AUTORADIOBUTTON =4;
956 BS_3STATE =5;
957 BS_AUTO3STATE =6;
958
959 BS_USERBUTTON =7;
960 BS_PRIMARYSTYLES =$000f;
961
962 BS_BITMAP =$0040;
963 BS_ICON =$0080;
964 BS_HELP =$0100;
965 BS_SYSCOMMAND =$0200;
966 BS_DEFAULT =$0400;
967 BS_NOPOINTERFOCUS =$0800;
968 BS_NOBORDER =$1000;
969 BS_NOCURSORSELECT =$2000;
970 BS_AUTOSIZE =$4000;
971
972
973TYPE
974 PBTNCDATA=^BTNCDATA;
975 BTNCDATA=RECORD {pack 2}
976 cb:USHORT;
977 fsCheckState:USHORT;
978 fsHiliteState:USHORT;
979 hImage:LHANDLE;
980 END;
981
982{ User button structure (passed in WM_CONTROL msg) }
983
984TYPE
985 PUSERBUTTON=^USERBUTTON;
986 USERBUTTON=RECORD
987 hwnd:HWND;
988 hps:HPS;
989 fsState:ULONG;
990 fsStateOld:ULONG;
991 END;
992{ Button control messages }
993
994CONST
995 BM_CLICK =$0120;
996 BM_QUERYCHECKINDEX =$0121;
997 BM_QUERYHILITE =$0122;
998 BM_SETHILITE =$0123;
999 BM_QUERYCHECK =$0124;
1000 BM_SETCHECK =$0125;
1001 BM_SETDEFAULT =$0126;
1002
1003{ Button notification codes }
1004
1005CONST
1006 BN_CLICKED =1;
1007 BN_DBLCLICKED =2;
1008 BN_PAINT =3;
1009
1010{ BN_PAINT button draw state codes (must be in high byte) }
1011
1012CONST
1013 BDS_HILITED =$0100;
1014 BDS_DISABLED =$0200;
1015 BDS_DEFAULT =$0400;
1016
1017{ Entry field styles }
1018
1019CONST
1020 ES_LEFT =$00000000;
1021 ES_CENTER =$00000001;
1022 ES_RIGHT =$00000002;
1023 ES_AUTOSCROLL =$00000004;
1024
1025 ES_MARGIN =$00000008;
1026 ES_AUTOTAB =$00000010;
1027 ES_READONLY =$00000020;
1028 ES_COMMAND =$00000040;
1029 ES_UNREADABLE =$00000080;
1030 ES_AUTOSIZE =$00000200;
1031
1032 ES_ANY =$00000000;
1033 ES_SBCS =$00001000;
1034 ES_DBCS =$00002000;
1035 ES_MIXED =$00003000;
1036
1037
1038{ combo box styles }
1039
1040CONST
1041 CBS_SIMPLE =$0001;
1042 CBS_DROPDOWN =$0002;
1043 CBS_DROPDOWNLIST =$0004;
1044 CBS_COMPATIBLE =$0008;
1045
1046{ IDs of combobox entry field and listbox. }
1047
1048CONST
1049 CBID_LIST =$029A;
1050 CBID_EDIT =$029B;
1051
1052 CBM_SHOWLIST =$0170;
1053 CBM_HILITE =$0171;
1054 CBM_ISLISTSHOWING =$0172;
1055
1056 CBN_EFCHANGE =1;
1057 CBN_EFSCROLL =2;
1058 CBN_MEMERROR =3;
1059 CBN_LBSELECT =4;
1060 CBN_LBSCROLL =5;
1061 CBN_SHOWLIST =6;
1062 CBN_ENTER =7;
1063
1064TYPE
1065 PENTRYFDATA=^ENTRYFDATA;
1066 ENTRYFDATA=RECORD {pack 2}
1067 cb:USHORT;
1068 cchEditLimit:USHORT;
1069 ichMinSel:USHORT;
1070 ichMaxSel:USHORT;
1071 END;
1072
1073{ Entry Field messages }
1074
1075CONST
1076 EM_QUERYCHANGED =$0140;
1077 EM_QUERYSEL =$0141;
1078 EM_SETSEL =$0142;
1079 EM_SETTEXTLIMIT =$0143;
1080
1081 EM_CUT =$0144;
1082 EM_COPY =$0145;
1083 EM_CLEAR =$0146;
1084 EM_PASTE =$0147;
1085 EM_QUERYFIRSTCHAR =$0148;
1086 EM_SETFIRSTCHAR =$0149;
1087 EM_QUERYREADONLY =$014a;
1088 EM_SETREADONLY =$014b;
1089 EM_SETINSERTMODE =$014c;
1090
1091{ Entry Field notification messages }
1092
1093CONST
1094 EN_SETFOCUS =$0001;
1095 EN_KILLFOCUS =$0002;
1096 EN_CHANGE =$0004;
1097 EN_SCROLL =$0008;
1098 EN_MEMERROR =$0010;
1099 EN_OVERFLOW =$0020;
1100 EN_INSERTMODETOGGLE =$0040;
1101
1102
1103{ List box styles }
1104
1105CONST
1106 LS_MULTIPLESEL =$00000001;
1107 LS_OWNERDRAW =$00000002;
1108 LS_NOADJUSTPOS =$00000004;
1109 LS_HORZSCROLL =$00000008;
1110 LS_EXTENDEDSEL =$00000010;
1111
1112
1113{ List box notification messages }
1114
1115CONST
1116 LN_SELECT =1;
1117 LN_SETFOCUS =2;
1118 LN_KILLFOCUS =3;
1119 LN_SCROLL =4;
1120 LN_ENTER =5;
1121
1122{ List box messages }
1123
1124TYPE
1125 PLBOXINFO=^LBOXINFO;
1126 LBOXINFO=RECORD
1127 lItemIndex:LONGINT;
1128 ulItemCount:LONGWORD;
1129 reserved:LONGWORD;
1130 reserved2:LONGWORD;
1131 END;
1132
1133CONST
1134 LM_QUERYITEMCOUNT =$0160;
1135 LM_INSERTITEM =$0161;
1136 LM_SETTOPINDEX =$0162;
1137 LM_DELETEITEM =$0163;
1138 LM_SELECTITEM =$0164;
1139 LM_QUERYSELECTION =$0165;
1140 LM_SETITEMTEXT =$0166;
1141 LM_QUERYITEMTEXTLENGTH =$0167;
1142 LM_QUERYITEMTEXT =$0168;
1143
1144 LM_SETITEMHANDLE =$0169;
1145 LM_QUERYITEMHANDLE =$016a;
1146 LM_SEARCHSTRING =$016b;
1147 LM_SETITEMHEIGHT =$016c;
1148 LM_QUERYTOPINDEX =$016d;
1149 LM_DELETEALL =$016e;
1150 LM_INSERTMULTITEMS =$016f;
1151 LM_SETITEMWIDTH =$0660;
1152
1153{ List box constants }
1154
1155CONST
1156 LIT_CURSOR =-4;
1157 LIT_ERROR =-3;
1158 LIT_MEMERROR =-2;
1159 LIT_NONE =-1;
1160 LIT_FIRST =-1;
1161
1162{ For LM_INSERTITEM msg }
1163
1164CONST
1165 LIT_END =-1;
1166 LIT_SORTASCENDING =-2;
1167 LIT_SORTDESCENDING =-3;
1168
1169{ For LM_SEARCHSTRING msg }
1170
1171 LSS_SUBSTRING =$0001;
1172 LSS_PREFIX =$0002;
1173 LSS_CASESENSITIVE =$0004;
1174
1175
1176{ Menu control styles }
1177
1178CONST
1179 MS_ACTIONBAR =$00000001;
1180 MS_TITLEBUTTON =$00000002;
1181 MS_VERTICALFLIP =$00000004;
1182
1183 MS_CONDITIONALCASCADE =$00000040;
1184
1185
1186
1187{ Menu control messages }
1188CONST
1189 MM_INSERTITEM =$0180;
1190 MM_DELETEITEM =$0181;
1191 MM_QUERYITEM =$0182;
1192 MM_SETITEM =$0183;
1193 MM_QUERYITEMCOUNT =$0184;
1194 MM_STARTMENUMODE =$0185;
1195 MM_ENDMENUMODE =$0186;
1196 MM_REMOVEITEM =$0188;
1197 MM_SELECTITEM =$0189;
1198 MM_QUERYSELITEMID =$018a;
1199 MM_QUERYITEMTEXT =$018b;
1200 MM_QUERYITEMTEXTLENGTH =$018c;
1201 MM_SETITEMHANDLE =$018d;
1202 MM_SETITEMTEXT =$018e;
1203 MM_ITEMPOSITIONFROMID =$018f;
1204 MM_ITEMIDFROMPOSITION =$0190;
1205 MM_QUERYITEMATTR =$0191;
1206 MM_SETITEMATTR =$0192;
1207 MM_ISITEMVALID =$0193;
1208 MM_QUERYITEMRECT =$0194;
1209 MM_DELETEITEMBYPOS =$01f1; {UNDOCUMENTED}
1210
1211 MM_QUERYDEFAULTITEMID =$0431;
1212 MM_SETDEFAULTITEMID =$0432;
1213
1214
1215TYPE
1216 PMTI=^MTI;
1217 MTI=RECORD
1218 afStyle:USHORT;
1219 pad:USHORT;
1220 idItem:USHORT;
1221 c:ARRAY[0..1] OF CHAR;
1222 END;
1223
1224 PMT=^MT;
1225 MT=RECORD
1226 len:ULONG;
1227 codepage:USHORT;
1228 reserved:USHORT;
1229 cMti:USHORT;
1230 rgMti:MTI;
1231 END;
1232
1233TYPE
1234 POWNERITEM=^OWNERITEM;
1235 OWNERITEM=RECORD
1236 hwnd:HWND;
1237 hps:HPS;
1238 fsState:ULONG;
1239 fsAttribute:ULONG;
1240 fsStateOld:ULONG;
1241 fsAttributeOld:ULONG;
1242 rclItem:RECTL;
1243 idItem:LONG;
1244 hItem:ULONG;
1245 END;
1246
1247 PMENUITEM=^MENUITEM;
1248 MENUITEM=RECORD {pack 2}
1249 iPosition:INTEGER;
1250 afStyle:USHORT;
1251 afAttribute:USHORT;
1252 id:USHORT;
1253 hwndSubMenu:HWND;
1254 hItem:ULONG;
1255 END;
1256
1257CONST
1258 MIT_END =-1;
1259 MIT_NONE =-1;
1260 MIT_MEMERROR =-1;
1261 MIT_ERROR =-1;
1262 MIT_FIRST =-2;
1263 MIT_LAST =-3;
1264 MID_NONE =MIT_NONE;
1265 MID_ERROR =-1;
1266
1267{ Menu item styles & attributes }
1268
1269CONST
1270 MIS_TEXT =$0001;
1271
1272 MIS_BITMAP =$0002;
1273 MIS_SEPARATOR =$0004;
1274
1275 MIS_OWNERDRAW =$0008;
1276
1277 MIS_SUBMENU =$0010;
1278 MIS_MULTMENU =$0020; { multiple choice submenu }
1279 MIS_SYSCOMMAND =$0040;
1280 MIS_HELP =$0080;
1281 MIS_STATIC =$0100;
1282 MIS_BUTTONSEPARATOR =$0200;
1283 MIS_BREAK =$0400;
1284 MIS_BREAKSEPARATOR =$0800;
1285 MIS_GROUP =$1000; { multiple choice group start }
1286 MIS_SINGLE =$2000;
1287
1288 MIA_NODISMISS =$0020;
1289 MIA_FRAMED =$1000;
1290 MIA_CHECKED =$2000;
1291 MIA_DISABLED =$4000;
1292 MIA_HILITED =$8000;
1293
1294
1295{ Values of fs in WinPopupMenu call }
1296CONST
1297 PU_POSITIONONITEM =$0001;
1298
1299 PU_HCONSTRAIN =$0002;
1300 PU_VCONSTRAIN =$0004;
1301
1302 PU_NONE =$0000;
1303 PU_MOUSEBUTTON1DOWN =$0008;
1304 PU_MOUSEBUTTON2DOWN =$0010;
1305 PU_MOUSEBUTTON3DOWN =$0018;
1306
1307 PU_SELECTITEM =$0020;
1308
1309 PU_MOUSEBUTTON1 =$0040;
1310 PU_MOUSEBUTTON2 =$0080;
1311 PU_MOUSEBUTTON3 =$0100;
1312 PU_KEYBOARD =$0200;
1313
1314{ Scroll Bar styles }
1315
1316CONST
1317 SBS_HORZ =0;
1318 SBS_VERT =1;
1319 SBS_THUMBSIZE =2;
1320 SBS_AUTOTRACK =4;
1321 SBS_AUTOSIZE =$2000;
1322
1323{ Scroll Bar messages }
1324
1325CONST
1326 SBM_SETSCROLLBAR =$01a0;
1327 SBM_SETPOS =$01a1;
1328 SBM_QUERYPOS =$01a2;
1329 SBM_QUERYRANGE =$01a3;
1330 SBM_SETTHUMBSIZE =$01a6;
1331
1332{ Scroll Bar Commands }
1333
1334CONST
1335 SB_LINEUP =1;
1336 SB_LINEDOWN =2;
1337 SB_LINELEFT =1;
1338 SB_LINERIGHT =2;
1339 SB_PAGEUP =3;
1340 SB_PAGEDOWN =4;
1341 SB_PAGELEFT =3;
1342 SB_PAGERIGHT =4;
1343 SB_SLIDERTRACK =5;
1344 SB_SLIDERPOSITION =6;
1345 SB_ENDSCROLL =7;
1346
1347
1348TYPE
1349 PSBCDATA=^SBCDATA;
1350 SBCDATA=RECORD {pack 2}
1351 cb:USHORT;
1352 sHilite:USHORT;
1353 posFirst:INTEGER;
1354 posLast:INTEGER;
1355 posThumb:INTEGER;
1356 cVisible:INTEGER;
1357 cTotal:INTEGER;
1358 END;
1359
1360 PFRAMECDATA=^FRAMECDATA;
1361 FRAMECDATA=RECORD {pack 2}
1362 cb:USHORT;
1363 flCreateFlags:ULONG;
1364 hmodResources:USHORT;
1365 idResources:USHORT;
1366 END;
1367
1368{ Frame window styles }
1369
1370CONST
1371 FCF_TITLEBAR =$00000001;
1372 FCF_SYSMENU =$00000002;
1373 FCF_MENU =$00000004;
1374 FCF_SIZEBORDER =$00000008;
1375 FCF_MINBUTTON =$00000010;
1376 FCF_MAXBUTTON =$00000020;
1377 FCF_MINMAX =$00000030;
1378 FCF_VERTSCROLL =$00000040;
1379 FCF_HORZSCROLL =$00000080;
1380 FCF_DLGBORDER =$00000100;
1381 FCF_BORDER =$00000200;
1382 FCF_SHELLPOSITION =$00000400;
1383 FCF_TASKLIST =$00000800;
1384 FCF_NOBYTEALIGN =$00001000;
1385 FCF_NOMOVEWITHOWNER =$00002000;
1386 FCF_ICON =$00004000;
1387 FCF_ACCELTABLE =$00008000;
1388 FCF_SYSMODAL =$00010000;
1389 FCF_SCREENALIGN =$00020000;
1390 FCF_MOUSEALIGN =$00040000;
1391 FCF_HIDEBUTTON =$01000000;
1392 FCF_HIDEMAX =$01000020;
1393 FCF_DBE_APPSTAT =$80000000;
1394 FCF_AUTOICON =$40000000;
1395 FCF_STANDARD =$0000CC3F;
1396
1397 FS_ICON =$00000001;
1398 FS_ACCELTABLE =$00000002;
1399 FS_SHELLPOSITION =$00000004;
1400 FS_TASKLIST =$00000008;
1401 FS_NOBYTEALIGN =$00000010;
1402 FS_NOMOVEWITHOWNER =$00000020;
1403 FS_SYSMODAL =$00000040;
1404 FS_DLGBORDER =$00000080;
1405 FS_BORDER =$00000100;
1406 FS_SCREENALIGN =$00000200;
1407 FS_MOUSEALIGN =$00000400;
1408 FS_SIZEBORDER =$00000800;
1409 FS_AUTOICON =$00001000;
1410 FS_DBE_APPSTAT =$00008000;
1411 FS_STANDARD =$0000000F;
1412
1413
1414{ Frame Window Flags accessed via WinSet/QueryWindowUSHORT(QWS_FLAGS) }
1415
1416CONST
1417 FF_FLASHWINDOW =$0001;
1418 FF_ACTIVE =$0002;
1419 FF_FLASHHILITE =$0004;
1420 FF_OWNERHIDDEN =$0008;
1421 FF_DLGDISMISSED =$0010;
1422 FF_OWNERDISABLED =$0020;
1423 FF_SELECTED =$0040;
1424 FF_NOACTIVATESWP =$0080;
1425 FF_DIALOGBOX =$0100;
1426
1427{ WM_QUERYFRAMEINFO constants }
1428
1429CONST
1430 FI_FRAME =$00000001;
1431 FI_OWNERHIDE =$00000002;
1432 FI_ACTIVATEOK =$00000004;
1433 FI_NOMOVEWITHOWNER =$00000008;
1434
1435TYPE
1436 HSAVEWP=LHANDLE;
1437
1438
1439{ Frame control IDs }
1440
1441CONST
1442 FID_SYSMENU =$8002;
1443 FID_TITLEBAR =$8003;
1444 FID_MINMAX =$8004;
1445 FID_MENU =$8005;
1446 FID_VERTSCROLL =$8006;
1447 FID_HORZSCROLL =$8007;
1448 FID_CLIENT =$8008;
1449 { Note =$8009 is reserved }
1450 FID_DBE_APPSTAT =$8010;
1451 FID_DBE_KBDSTAT =$8011;
1452 FID_DBE_PECIC =$8012;
1453 FID_DBE_KKPOPUP =$8013;
1454
1455{ Standard WM_SYSCOMMAND command values }
1456
1457CONST
1458 SC_SIZE =$8000;
1459 SC_MOVE =$8001;
1460 SC_MINIMIZE =$8002;
1461 SC_MAXIMIZE =$8003;
1462 SC_CLOSE =$8004;
1463 SC_NEXT =$8005;
1464 SC_APPMENU =$8006;
1465 SC_SYSMENU =$8007;
1466 SC_RESTORE =$8008;
1467 SC_NEXTFRAME =$8009;
1468 SC_NEXTWINDOW =$8010;
1469 SC_TASKMANAGER =$8011;
1470 SC_HELPKEYS =$8012;
1471 SC_HELPINDEX =$8013;
1472 SC_HELPEXTENDED =$8014;
1473 SC_SWITCHPANELIDS =$8015;
1474 SC_DBE_FIRST =$8018;
1475 SC_DBE_LAST =$801F;
1476
1477 SC_BEGINDRAG =$8020;
1478 SC_ENDDRAG =$8021;
1479 SC_SELECT =$8022;
1480 SC_OPEN =$8023;
1481 SC_CONTEXTMENU =$8024;
1482 SC_CONTEXTHELP =$8025;
1483 SC_TEXTEDIT =$8026;
1484 SC_BEGINSELECT =$8027;
1485 SC_ENDSELECT =$8028;
1486 SC_WINDOW =$8029;
1487 SC_HIDE =$802a;
1488
1489
1490{ Title bar control messages }
1491
1492CONST
1493 TBM_SETHILITE =$01e3;
1494 TBM_QUERYHILITE =$01e4;
1495
1496
1497CONST
1498 SV_SWAPBUTTON =0;
1499 SV_DBLCLKTIME =1;
1500 SV_CXDBLCLK =2;
1501 SV_CYDBLCLK =3;
1502 SV_CXSIZEBORDER =4;
1503 SV_CYSIZEBORDER =5;
1504 SV_ALARM =6;
1505
1506 SV_RESERVEDFIRST1 =7;
1507 SV_RESERVEDLAST1 =8;
1508
1509 SV_CURSORRATE =9;
1510 SV_FIRSTSCROLLRATE =10;
1511 SV_SCROLLRATE =11;
1512 SV_NUMBEREDLISTS =12;
1513 SV_WARNINGFREQ =13;
1514 SV_NOTEFREQ =14;
1515 SV_ERRORFREQ =15;
1516 SV_WARNINGDURATION =16;
1517 SV_NOTEDURATION =17;
1518 SV_ERRORDURATION =18;
1519
1520 SV_RESERVEDFIRST =19;
1521 SV_RESERVEDLAST =19;
1522
1523 SV_CXSCREEN =20;
1524 SV_CYSCREEN =21;
1525 SV_CXVSCROLL =22;
1526 SV_CYHSCROLL =23;
1527 SV_CYVSCROLLARROW =24;
1528 SV_CXHSCROLLARROW =25;
1529 SV_CXBORDER =26;
1530 SV_CYBORDER =27;
1531 SV_CXDLGFRAME =28;
1532 SV_CYDLGFRAME =29;
1533 SV_CYTITLEBAR =30;
1534 SV_CYVSLIDER =31;
1535 SV_CXHSLIDER =32;
1536 SV_CXMINMAXBUTTON =33;
1537 SV_CYMINMAXBUTTON =34;
1538 SV_CYMENU =35;
1539 SV_CXFULLSCREEN =36;
1540 SV_CYFULLSCREEN =37;
1541 SV_CXICON =38;
1542 SV_CYICON =39;
1543 SV_CXPOINTER =40;
1544 SV_CYPOINTER =41;
1545
1546 SV_DEBUG =42;
1547 SV_CMOUSEBUTTONS =43;
1548 SV_CPOINTERBUTTONS =43;
1549 SV_POINTERLEVEL =44;
1550 SV_CURSORLEVEL =45;
1551 SV_TRACKRECTLEVEL =46;
1552
1553 SV_CTIMERS =47;
1554
1555 SV_MOUSEPRESENT =48;
1556
1557 SV_CXBYTEALIGN =49;
1558 SV_CXALIGN =49;
1559 SV_CYBYTEALIGN =50;
1560 SV_CYALIGN =50;
1561
1562 SV_NOTRESERVED =56;
1563 SV_EXTRAKEYBEEP =57;
1564
1565 SV_SETLIGHTS =58;
1566 SV_INSERTMODE =59;
1567
1568
1569 SV_MENUROLLDOWNDELAY =64;
1570 SV_MENUROLLUPDELAY =65;
1571 SV_ALTMNEMONIC =66;
1572 SV_TASKLISTMOUSEACCESS =67;
1573
1574 SV_CXICONTEXTWIDTH =68;
1575 SV_CICONTEXTLINES =69;
1576
1577 SV_CHORDTIME =70;
1578 SV_CXCHORD =71;
1579 SV_CYCHORD =72;
1580 SV_CXMOTIONSTART =73;
1581 SV_CYMOTIONSTART =74;
1582
1583 SV_BEGINDRAG =75;
1584 SV_ENDDRAG =76;
1585 SV_SINGLESELECT =77;
1586 SV_OPEN =78;
1587 SV_CONTEXTMENU =79;
1588 SV_CONTEXTHELP =80;
1589 SV_TEXTEDIT =81;
1590 SV_BEGINSELECT =82;
1591 SV_ENDSELECT =83;
1592
1593 SV_BEGINDRAGKB =84;
1594 SV_ENDDRAGKB =85;
1595 SV_SELECTKB =86;
1596 SV_OPENKB =87;
1597 SV_CONTEXTMENUKB =88;
1598 SV_CONTEXTHELPKB =89;
1599 SV_TEXTEDITKB =90;
1600 SV_BEGINSELECTKB =91;
1601 SV_ENDSELECTKB =92;
1602
1603 SV_ANIMATION =93;
1604 SV_ANIMATIONSPEED =94;
1605
1606 SV_MONOICONS =95;
1607
1608 SV_KBDALTERED =96;
1609
1610 SV_PRINTSCREEN =97;
1611
1612 SV_CSYSVALUES =98;
1613
1614
1615{ Presentation parameter structures. }
1616
1617TYPE
1618 PPARAM=^PARAM;
1619 PARAM=RECORD
1620 id:ULONG;
1621 cb:ULONG;
1622 ab:ULONG;
1623 END;
1624
1625 PPRESPARAMS=^PRESPARAMS;
1626 PRESPARAMS=RECORD
1627 cb:ULONG;
1628 param:ARRAY[0..100] OF PARAM;
1629 END;
1630
1631
1632
1633
1634{ Presentation parameter types. }
1635CONST
1636 PP_FOREGROUNDCOLOR =1;
1637 PP_FOREGROUNDCOLORINDEX =2;
1638 PP_BACKGROUNDCOLOR =3;
1639 PP_BACKGROUNDCOLORINDEX =4;
1640 PP_HILITEFOREGROUNDCOLOR =5;
1641 PP_HILITEFOREGROUNDCOLORINDEX =6;
1642 PP_HILITEBACKGROUNDCOLOR =7;
1643 PP_HILITEBACKGROUNDCOLORINDEX =8;
1644 PP_DISABLEDFOREGROUNDCOLOR =9;
1645 PP_DISABLEDFOREGROUNDCOLORINDEX =10;
1646 PP_DISABLEDBACKGROUNDCOLOR =11;
1647 PP_DISABLEDBACKGROUNDCOLORINDEX =12;
1648 PP_BORDERCOLOR =13;
1649 PP_BORDERCOLORINDEX =14;
1650 PP_FONTNAMESIZE =15;
1651 PP_FONTHANDLE =16;
1652 PP_RESERVED =17;
1653 PP_ACTIVECOLOR =18;
1654 PP_ACTIVECOLORINDEX =19;
1655 PP_INACTIVECOLOR =20;
1656 PP_INACTIVECOLORINDEX =21;
1657 PP_ACTIVETEXTFGNDCOLOR =22;
1658 PP_ACTIVETEXTFGNDCOLORINDEX =23;
1659 PP_ACTIVETEXTBGNDCOLOR =24;
1660 PP_ACTIVETEXTBGNDCOLORINDEX =25;
1661 PP_INACTIVETEXTFGNDCOLOR =26;
1662 PP_INACTIVETEXTFGNDCOLORINDEX =27;
1663 PP_INACTIVETEXTBGNDCOLOR =28;
1664 PP_INACTIVETEXTBGNDCOLORINDEX =29;
1665 PP_SHADOW =30;
1666 PP_MENUFOREGROUNDCOLOR =31;
1667 PP_MENUFOREGROUNDCOLORINDEX =32;
1668 PP_MENUBACKGROUNDCOLOR =33;
1669 PP_MENUBACKGROUNDCOLORINDEX =34;
1670 PP_MENUHILITEFGNDCOLOR =35;
1671 PP_MENUHILITEFGNDCOLORINDEX =36;
1672 PP_MENUHILITEBGNDCOLOR =37;
1673 PP_MENUHILITEBGNDCOLORINDEX =38;
1674 PP_MENUDISABLEDFGNDCOLOR =39;
1675 PP_MENUDISABLEDFGNDCOLORINDEX =40;
1676 PP_MENUDISABLEDBGNDCOLOR =41;
1677 PP_MENUDISABLEDBGNDCOLORINDEX =42;
1678
1679 PP_USER =$8000;
1680
1681{ Flags for WinQueryPresParams() }
1682
1683CONST
1684 QPF_NOINHERIT =$0001;
1685 QPF_ID1COLORINDEX =$0002;
1686 QPF_ID2COLORINDEX =$0004;
1687 QPF_PURERGBCOLOR =$0008;
1688 QPF_VALIDFLAGS =$000F;
1689
1690
1691CONST
1692 SYSCLR_SHADOWHILITEBGND =-50;
1693 SYSCLR_SHADOWHILITEFGND =-49;
1694 SYSCLR_SHADOWTEXT =-48;
1695 SYSCLR_ENTRYFIELD =-47;
1696 SYSCLR_MENUDISABLEDTEXT =-46;
1697 SYSCLR_MENUHILITE =-45;
1698 SYSCLR_MENUHILITEBGND =-44;
1699 SYSCLR_PAGEBACKGROUND =-43;
1700 SYSCLR_FIELDBACKGROUND =-42;
1701 SYSCLR_BUTTONLIGHT =-41;
1702 SYSCLR_BUTTONMIDDLE =-40;
1703 SYSCLR_BUTTONDARK =-39;
1704 SYSCLR_BUTTONDEFAULT =-38;
1705 SYSCLR_TITLEBOTTOM =-37;
1706 SYSCLR_SHADOW =-36;
1707 SYSCLR_ICONTEXT =-35;
1708 SYSCLR_DIALOGBACKGROUND =-34;
1709 SYSCLR_HILITEFOREGROUND =-33;
1710 SYSCLR_HILITEBACKGROUND =-32;
1711 SYSCLR_INACTIVETITLETEXTBGND =-31;
1712 SYSCLR_ACTIVETITLETEXTBGND =-30;
1713 SYSCLR_INACTIVETITLETEXT =-29;
1714 SYSCLR_ACTIVETITLETEXT =-28;
1715 SYSCLR_OUTPUTTEXT =-27;
1716 SYSCLR_WINDOWSTATICTEXT =-26;
1717 SYSCLR_SCROLLBAR =-25;
1718 SYSCLR_BACKGROUND =-24;
1719 SYSCLR_ACTIVETITLE =-23;
1720 SYSCLR_INACTIVETITLE =-22;
1721 SYSCLR_MENU =-21;
1722 SYSCLR_WINDOW =-20;
1723 SYSCLR_WINDOWFRAME =-19;
1724 SYSCLR_MENUTEXT =-18;
1725 SYSCLR_WINDOWTEXT =-17;
1726 SYSCLR_TITLETEXT =-16;
1727 SYSCLR_ACTIVEBORDER =-15;
1728 SYSCLR_INACTIVEBORDER =-14;
1729 SYSCLR_APPWORKSPACE =-13;
1730 SYSCLR_HELPBACKGROUND =-12;
1731 SYSCLR_HELPTEXT =-11;
1732 SYSCLR_HELPHILITE =-10;
1733
1734 SYSCLR_CSYSCOLORS =41;
1735
1736 { default color table indices }
1737
1738 CLR_FALSE =-5;
1739 CLR_TRUE =-4;
1740 CLR_ERROR =-255;
1741 CLR_DEFAULT =-3;
1742 CLR_WHITE =-2;
1743 CLR_BLACK =-1;
1744 CLR_BACKGROUND = 0;
1745 CLR_BLUE = 1;
1746 CLR_RED = 2;
1747 CLR_PINK = 3;
1748 CLR_GREEN = 4;
1749 CLR_CYAN = 5;
1750 CLR_YELLOW = 6;
1751 CLR_NEUTRAL = 7;
1752 CLR_DARKGRAY = 8;
1753 CLR_DARKBLUE = 9;
1754 CLR_DARKRED = 10;
1755 CLR_DARKPINK = 11;
1756 CLR_DARKGREEN = 12;
1757 CLR_DARKCYAN = 13;
1758 CLR_BROWN = 14;
1759 CLR_PALEGRAY = 15;
1760
1761{Jens}
1762CONST
1763 TID_CURSOR =$ffff;
1764 TID_SCROLL =$fffe;
1765 TID_FLASHWINDOW =$fffd;
1766 TID_DELAY_END =$81ff;
1767 TID_DELAY_START =$8000;
1768 TID_USERMAX =$7fff;
1769
1770TYPE HACCEL=LHANDLE;
1771
1772{ ACCEL fs bits }
1773
1774CONST
1775 AF_CHAR =$0001;
1776 AF_VIRTUALKEY =$0002;
1777 AF_SCANCODE =$0004;
1778 AF_SHIFT =$0008;
1779 AF_CONTROL =$0010;
1780 AF_ALT =$0020;
1781 AF_LONEKEY =$0040;
1782 AF_SYSCOMMAND =$0100;
1783 AF_HELP =$0200;
1784
1785TYPE
1786 PACCEL=^ACCEL;
1787 ACCEL=RECORD {pack 2}
1788 fs:USHORT;
1789 key:USHORT;
1790 cmd:USHORT;
1791 END;
1792
1793 PACCELTABLE=^ACCELTABLE;
1794 ACCELTABLE=RECORD {pack 2}
1795 cAccel:USHORT;
1796 codepage:USHORT;
1797 aaccel:ARRAY[0..0] OF ACCEL;
1798 END;
1799
1800
1801{ Extended Attribute Flags (Association Table) }
1802CONST
1803 EAF_DEFAULTOWNER =$0001;
1804 EAF_UNCHANGEABLE =$0002;
1805 EAF_REUSEICON =$0004;
1806
1807
1808{ WinTrackRect() tracking information structure }
1809
1810TYPE
1811 PTRACKINFO=^TRACKINFO;
1812 TRACKINFO=RECORD
1813 cxBorder:LONG;
1814 cyBorder:LONG;
1815 cxGrid:LONG;
1816 cyGrid:LONG;
1817 cxKeyboard:LONG;
1818 cyKeyboard:LONG;
1819 rclTrack:RECTL;
1820 rclBoundary:RECTL;
1821 ptlMinTrackSize:POINTL;
1822 ptlMaxTrackSize:POINTL;
1823 fs:ULONG;
1824 END;
1825
1826
1827
1828{ WinTrackRect() flags }
1829CONST
1830 TF_LEFT =$0001;
1831 TF_TOP =$0002;
1832 TF_RIGHT =$0004;
1833 TF_BOTTOM =$0008;
1834 TF_MOVE =$000F;
1835
1836 TF_SETPOINTERPOS =$0010;
1837 TF_GRID =$0020;
1838 TF_STANDARD =$0040;
1839 TF_ALLINBOUNDARY =$0080;
1840 TF_VALIDATETRACKRECT =$0100;
1841 TF_PARTINBOUNDARY =$0200;
1842
1843
1844
1845{ Clipboard messages }
1846
1847CONST
1848 WM_RENDERFMT =$0060;
1849 WM_RENDERALLFMTS =$0061;
1850 WM_DESTROYCLIPBOARD =$0062;
1851 WM_PAINTCLIPBOARD =$0063;
1852 WM_SIZECLIPBOARD =$0064;
1853 WM_HSCROLLCLIPBOARD =$0065;
1854 WM_VSCROLLCLIPBOARD =$0066;
1855 WM_DRAWCLIPBOARD =$0067;
1856
1857{ Standard Clipboard formats }
1858
1859CONST
1860 CF_TEXT =1;
1861 CF_BITMAP =2;
1862 CF_DSPTEXT =3;
1863 CF_DSPBITMAP =4;
1864 CF_METAFILE =5;
1865 CF_DSPMETAFILE =6;
1866 CF_PALETTE =9;
1867 CF_MMPMFIRST =10;
1868 CF_MMPMLAST =19;
1869
1870{ standard DDE and clipboard format stings }
1871
1872CONST
1873 SZFMT_TEXT ='#1';
1874 SZFMT_BITMAP ='#2';
1875 SZFMT_DSPTEXT ='#3';
1876 SZFMT_DSPBITMAP ='#4';
1877 SZFMT_METAFILE ='#5';
1878 SZFMT_DSPMETAFILE ='#6';
1879 SZFMT_PALETTE ='#9';
1880 SZFMT_SYLK ='Sylk';
1881 SZFMT_DIF ='Dif';
1882 SZFMT_TIFF ='Tiff';
1883 SZFMT_OEMTEXT ='OemText';
1884 SZFMT_DIB ='Dib';
1885 SZFMT_OWNERDISPLAY ='OwnerDisplay';
1886 SZFMT_LINK ='Link';
1887 SZFMT_METAFILEPICT ='MetaFilePict';
1888 SZFMT_DSPMETAFILEPICT ='DspMetaFilePict';
1889 SZFMT_CPTEXT ='Codepage Text';
1890 SZDDEFMT_RTF ='Rich Text Format';
1891 SZDDEFMT_PTRPICT ='Printer_Picture';
1892
1893TYPE
1894 PMFP=^MFP;
1895 MFP=RECORD {pack 2}
1896 sizeBounds:POINTL;
1897 sizeMM:POINTL;
1898 cbLength:ULONG;
1899 mapMode:USHORT;
1900 reserved:USHORT;
1901 abData:BYTE;
1902 END;
1903
1904 PCPTEXT=^CPTEXT;
1905 CPTEXT=RECORD {pack 2}
1906 idCountry:USHORT;
1907 usCodepage:USHORT;
1908 usLangID:USHORT;
1909 usSubLangID:USHORT;
1910 abText:BYTE;
1911 END;
1912
1913
1914
1915{ WinSetClipbrdData() flags }
1916CONST
1917 CFI_OWNERFREE =$0001;
1918 CFI_OWNERDISPLAY =$0002;
1919 CFI_POINTER =$0400;
1920 CFI_HANDLE =$0200;
1921
1922
1923{ WinCreateCursor() flags }
1924CONST
1925 CURSOR_SOLID =$0000;
1926 CURSOR_HALFTONE =$0001;
1927 CURSOR_FRAME =$0002;
1928 CURSOR_FLASH =$0004;
1929 CURSOR_SETPOS =$8000;
1930
1931
1932TYPE
1933 PCURSORINFO=^CURSORINFO;
1934 CURSORINFO=RECORD
1935 hwnd:HWND;
1936 x:LONG;
1937 y:LONG;
1938 cx:LONG;
1939 cy:LONG;
1940 fs:ULONG;
1941 rclClip:RECTL
1942 END;
1943
1944{ System pointers (NOTE: these are 1-based) }
1945
1946CONST
1947 SPTR_ARROW =1;
1948 SPTR_TEXT =2;
1949 SPTR_WAIT =3;
1950 SPTR_SIZE =4;
1951 SPTR_MOVE =5;
1952 SPTR_SIZENWSE =6;
1953 SPTR_SIZENESW =7;
1954 SPTR_SIZEWE =8;
1955 SPTR_SIZENS =9;
1956 SPTR_APPICON =10;
1957
1958 SPTR_ICONINFORMATION =11;
1959 SPTR_ICONQUESTION =12;
1960 SPTR_ICONERROR =13;
1961 SPTR_ICONWARNING =14;
1962
1963 SPTR_ILLEGAL =18;
1964 SPTR_FILE =19;
1965 SPTR_FOLDER =20;
1966 SPTR_MULTFILE =21;
1967 SPTR_PROGRAM =22;
1968 SPTR_DISPLAY_PTRS =22;
1969 SPTR_PENFIRST =23;
1970 SPTR_PENLAST =39;
1971 SPTR_CPTR =39;
1972
1973 SPTR_HANDICON =SPTR_ICONERROR;
1974 SPTR_QUESICON =SPTR_ICONQUESTION;
1975 SPTR_BANGICON =SPTR_ICONWARNING;
1976 SPTR_NOTEICON =SPTR_ICONINFORMATION;
1977
1978
1979TYPE
1980 PPOINTERINFO=^POINTERINFO;
1981 POINTERINFO=RECORD
1982 fPointer:ULONG;
1983 xHotspot:LONG;
1984 yHotspot:LONG;
1985 hbmPointer:HBITMAP;
1986 hbmColor:HBITMAP;
1987 hbmMiniPointer:HBITMAP;
1988 hbmMiniColor:HBITMAP;
1989 END;
1990
1991{ WinDrawPointer() constants }
1992
1993CONST
1994 DP_NORMAL =$0000;
1995 DP_HALFTONED =$0001;
1996 DP_INVERTED =$0002;
1997
1998
1999
2000{ System bitmaps (NOTE: these are 1-based) }
2001CONST
2002 SBMP_OLD_SYSMENU =1;
2003 SBMP_OLD_SBUPARROW =2;
2004 SBMP_OLD_SBDNARROW =3;
2005 SBMP_OLD_SBRGARROW =4;
2006 SBMP_OLD_SBLFARROW =5;
2007 SBMP_MENUCHECK =6;
2008 SBMP_OLD_CHECKBOXES =7;
2009 SBMP_BTNCORNERS =8;
2010 SBMP_OLD_MINBUTTON =9;
2011 SBMP_OLD_MAXBUTTON =10;
2012 SBMP_OLD_RESTOREBUTTON =11;
2013 SBMP_OLD_CHILDSYSMENU =12;
2014 SBMP_DRIVE =15;
2015 SBMP_FILE =16;
2016 SBMP_FOLDER =17;
2017 SBMP_TREEPLUS =18;
2018 SBMP_TREEMINUS =19;
2019 SBMP_PROGRAM =22;
2020 SBMP_MENUATTACHED =23;
2021 SBMP_SIZEBOX =24;
2022
2023 SBMP_SYSMENU =25;
2024 SBMP_MINBUTTON =26;
2025 SBMP_MAXBUTTON =27;
2026 SBMP_RESTOREBUTTON =28;
2027 SBMP_CHILDSYSMENU =29;
2028 SBMP_SYSMENUDEP =30;
2029 SBMP_MINBUTTONDEP =31;
2030 SBMP_MAXBUTTONDEP =32;
2031 SBMP_RESTOREBUTTONDEP =33;
2032 SBMP_CHILDSYSMENUDEP =34;
2033 SBMP_SBUPARROW =35;
2034 SBMP_SBDNARROW =36;
2035 SBMP_SBLFARROW =37;
2036 SBMP_SBRGARROW =38;
2037 SBMP_SBUPARROWDEP =39;
2038 SBMP_SBDNARROWDEP =40;
2039 SBMP_SBLFARROWDEP =41;
2040 SBMP_SBRGARROWDEP =42;
2041 SBMP_SBUPARROWDIS =43;
2042 SBMP_SBDNARROWDIS =44;
2043 SBMP_SBLFARROWDIS =45;
2044 SBMP_SBRGARROWDIS =46;
2045 SBMP_COMBODOWN =47;
2046 SBMP_CHECKBOXES =48;
2047
2048
2049 {**********************************************************************
2050 * Hook codes
2051 *
2052 * Whether the hook receives a (U)SHORT or (U)LONG parameter depends
2053 * on the memory model that the hook executes in. 32-bit hook will
2054 * receive long parameters
2055 *
2056 **********************************************************************}
2057
2058CONST
2059 HK_SENDMSG =0;
2060 {* VOID EXPENTRY SendMsgHook(HAB hab, ** installer's hab
2061 * PSMHSTRUCT psmh, ** p send msg struct
2062 * BOOL fInterTask); ** between threads *}
2063
2064 HK_INPUT =1;
2065 {* BOOL EXPENTRY InputHook(HAB hab, ** installer's hab
2066 * PQMSG pQmsg, ** p qmsg
2067 * ULONG/USHORT fs); ** remove/noremove *}
2068
2069 HK_MSGFILTER =2;
2070 {* BOOL EXPENTRY MsgFilterHook(HAB hab, ** installer's hab
2071 * PQMSG pQmsg, ** p qmsg
2072 * ULONG/USHORT msgf);** filter flag *}
2073
2074 HK_JOURNALRECORD =3;
2075 {* VOID EXPENTRY JournalRecordHook(HAB hab, ** installer's hab
2076 * PQMSG pQmsg); ** p qmsg *}
2077
2078 HK_JOURNALPLAYBACK =4;
2079 {* ULONG EXPENTRY JournalPlaybackHook(HAB hab, **installer's hab
2080 * BOOL fSkip, ** skip messages
2081 * PQMSG pQmsg);** p qmsg *}
2082
2083 HK_HELP =5;
2084 {* BOOL EXPENTRY HelpHook(HAB hab, ** installer's hab
2085 * ULONG/USHORT usMode, ** mode
2086 * ULONG/USHORT idTopic, ** main topic
2087 * ULONG/USHORT idSubTopic, ** sub topic
2088 * PRECTL prcPosition); ** associated position *}
2089
2090 HK_LOADER =6;
2091 {* BOOL EXPENTRY LoaderHook(HAB hab, ** installer's hab
2092 * LONG/USHORT idContext, ** who called hook
2093 * CSTRING pszLibname, ** lib name string
2094 * PHLIB hlib, ** p to lib handle
2095 * CSTRING pszProcname, ** procedure name
2096 * PFNWP wndProc); ** window procedure *}
2097
2098 HK_REGISTERUSERMSG =7;
2099 {* BOOL EXPENTRY RegisterUserHook(HAB hab, ** installer's hab
2100 * ULONG cUSHORT, ** entries in arRMP
2101 * PULONG/PUSHORT arRMP, ** RMP array
2102 * PBOOL fRegistered);** msg parms already reg*}
2103
2104 HK_MSGCONTROL =8;
2105 {* BOOL EXPENTRY MsgControlHook(HAB hab, ** installer's hab
2106 * LONG/SHORT idContext,** who called hook
2107 * HWND hwnd, ** SEI window handle
2108 * CSTRING pszClassname, ** window class name
2109 * ULONG/USHORT usMsgclass,** interested msg class **
2110 * LONG/SHORT idControl,** SMI_*
2111 * PBOOL fSuccess); ** mode already set *}
2112
2113 HK_PLIST_ENTRY =9;
2114 {* BOOL EXPENTRY ProgramListEntryHook(HAB hab, ** installer's hab
2115 * PPRFHOOKPARMS pProfileHookParams,** data
2116 * PBOOL fNoExecute); ** cease hook processing*}
2117
2118 HK_PLIST_EXIT =10;
2119 {* BOOL EXPENTRY ProgramListExitHook(HAB hab, ** installer's hab
2120 * PPRFHOOKPARMS pProfileHookParams);** data*}
2121
2122 HK_FINDUSHORT =11;
2123 {* BOOL EXPENTRY FindWordHook(usCodepage, ** code page to use
2124 * CSTRING pszText, ** text to break
2125 * ULONG cb, ** maximum text size
2126 * ULONG ich, ** break 'near' here
2127 * PULONG pichStart, ** where break began
2128 * PULONG pichEnd, ** where break ended
2129 * PULONG pichNext); ** where next word begin*}
2130
2131 HK_CODEPAGECHANGED =12;
2132 {* VOID EXPENTRY CodePageChangedHook(HMQ hmq, ** msg q handle
2133 * ULONG/USHORT usOldCodepage, ** old code page
2134 * ULONG/USHORT usNewCodepage);** new code page*}
2135
2136 HK_WINDOWDC =15;
2137 {* BOOL EXPENTRY WindowDCHook(HAB hab, ** installer's hab
2138 * HDC hdc, ** current hdc
2139 * HWND hwnd, ** current hwnd
2140 * BOOL); ** association flag *}
2141
2142 HK_DESTROYWINDOW =16;
2143 {* BOOL EXPENTRY DestroyWindowHook (HAB hab, ** installer's hab
2144 * HWND hwnd, ** destroyed win hwnd
2145 * ULONG Reserved);** association flag *}
2146
2147 HK_CHECKMSGFILTER =20;
2148 {* BOOL EXPENTRY CheckMsgFilteHook (HAB hab, ** installer's hab
2149 * PQMSG pQmsg, ** p qmsg
2150 * ULONG/USHORT usFirst, ** first msg
2151 * ULONG/USHORT usLast, ** last msg
2152 * ULONG/USHORT fOptions);** flags *}
2153
2154 HK_MSGINPUT =21;
2155 {* BOOL EXPENTRY MsgInputHook (HAB hab, ** installer's hab
2156 * PQMSG pQmsg, ** p qmsg
2157 * BOOL fSkip, ** skip msg
2158 * PBOOL pfNoRecord); ** journal record event *}
2159
2160 HK_LOCKUP =23;
2161 {* BOOL EXPENTRY LockupHook (HAB hab, ** installer's hab
2162 * HWND hwndLockupFrame); ** hwnd *}
2163
2164 HK_FLUSHBUF =24;
2165 {* BOOL EXPENTRY FlushBufHook (HAB hab); ** installer's hab *}
2166
2167
2168{ Current message queue constant }
2169
2170CONST
2171 HMQ_CURRENT =1;
2172
2173{ WH_MSGFILTER context codes }
2174
2175CONST
2176 MSGF_DIALOGBOX =1;
2177 MSGF_MESSAGEBOX =2;
2178 MSGF_TRACK =8;
2179 MSGF_DDEPOSTMSG =3;
2180
2181{ HK_HELP Help modes }
2182
2183CONST
2184 HLPM_FRAME =-1;
2185 HLPM_WINDOW =-2;
2186 HLPM_MENU =-3;
2187
2188{ HK_SENDMSG structure }
2189
2190CONST
2191 PM_MODEL_1X =0;
2192 PM_MODEL_2X =1;
2193
2194TYPE
2195 PSMHSTRUCT=^SMHSTRUCT;
2196 SMHSTRUCT=RECORD
2197 mp2:MPARAM;
2198 mp1:MPARAM;
2199 msg:ULONG;
2200 hwnd:HWND;
2201 model:ULONG;
2202 END;
2203
2204{ HK_LOADER context codes }
2205
2206CONST
2207 LHK_DELETEPROC =1;
2208 LHK_DELETELIB =2;
2209 LHK_LOADPROC =3;
2210 LHK_LOADLIB =4;
2211
2212{ HK_MSGCONTROL context codes }
2213
2214CONST
2215 MCHK_MSGINTEREST =1;
2216 MCHK_CLASSMSGINTEREST =2;
2217 MCHK_SYNCHRONISATION =3;
2218 MCHK_MSGMODE =4;
2219
2220{ HK_REGISTERUSERMSG conext codes }
2221
2222CONST
2223 RUMHK_DATATYPE =1;
2224 RUMHK_MSG =2;
2225
2226CONST
2227 WCS_ERROR =0;
2228 WCS_EQ =1;
2229 WCS_LT =2;
2230 WCS_GT =3;
2231
2232
2233TYPE
2234 HATOMTBL=LHANDLE;
2235 ATOM=ULONG;
2236
2237{ Error codes for debugging support }
2238{ =$1001 - =$1021, =$1034, =$1036 - =$1050 are reserved }
2239CONST
2240 WINDBG_HWND_NOT_DESTROYED =$1022;
2241 WINDBG_HPTR_NOT_DESTROYED =$1023;
2242 WINDBG_HACCEL_NOT_DESTROYED =$1024;
2243 WINDBG_HENUM_NOT_DESTROYED =$1025;
2244 WINDBG_VISRGN_SEM_BUSY =$1026;
2245 WINDBG_USER_SEM_BUSY =$1027;
2246 WINDBG_DC_CACHE_BUSY =$1028;
2247 WINDBG_HOOK_STILL_INSTALLED =$1029;
2248 WINDBG_WINDOW_STILL_LOCKED =$102a;
2249 WINDBG_UPDATEPS_ASSERTION_FAIL =$102b;
2250 WINDBG_SENDMSG_WITHIN_USER_SEM =$102c;
2251 WINDBG_USER_SEM_NOT_ENTERED =$102d;
2252 WINDBG_PROC_NOT_EXPORTED =$102e;
2253 WINDBG_BAD_SENDMSG_HWND =$102f;
2254 WINDBG_ABNORMAL_EXIT =$1030;
2255 WINDBG_INTERNAL_REVISION =$1031;
2256 WINDBG_INITSYSTEM_FAILED =$1032;
2257 WINDBG_HATOMTBL_NOT_DESTROYED =$1033;
2258 WINDBG_WINDOW_UNLOCK_WAIT =$1035;
2259
2260{ Get/Set Error Information Interface declarations }
2261
2262TYPE
2263 PERRINFO=^ERRINFO;
2264 ERRINFO=RECORD
2265 cbFixedErrInfo:ULONG;
2266 idError:ERRORID;
2267 cDetailLevel:ULONG;
2268 offaoffszMsg:ULONG;
2269 offBinaryData:ULONG;
2270 END;
2271
2272
2273{ DDE standard system topic and item strings }
2274CONST
2275 SZDDESYS_TOPIC ='System';
2276 SZDDESYS_ITEM_TOPICS ='Topics';
2277 SZDDESYS_ITEM_SYSITEMS ='SysItems';
2278 SZDDESYS_ITEM_RTNMSG ='ReturnMessage';
2279 SZDDESYS_ITEM_STATUS ='Status';
2280 SZDDESYS_ITEM_FORMATS ='Formats';
2281 SZDDESYS_ITEM_SECURITY ='Security';
2282 SZDDESYS_ITEM_ITEMFORMATS ='ItemFormats';
2283 SZDDESYS_ITEM_HELP ='Help';
2284 SZDDESYS_ITEM_PROTOCOLS ='Protocols';
2285 SZDDESYS_ITEM_RESTART ='Restart';
2286
2287TYPE
2288 PCONVCONTEXT=^CONVCONTEXT;
2289 CONVCONTEXT=RECORD
2290 cb:ULONG;
2291 fsContext:ULONG;
2292 idCountry:ULONG;
2293 usCodepage:ULONG;
2294 usLangID:ULONG;
2295 usSubLangID:ULONG;
2296 END;
2297
2298CONST
2299 DDECTXT_CASESENSITIVE =$0001;
2300
2301TYPE
2302 PDDEINIT=^DDEINIT;
2303 DDEINIT=RECORD
2304 cb:ULONG;
2305 pszAppName:PCHAR;
2306 pszTopic:PCHAR;
2307 offConvContext:ULONG;
2308 END;
2309
2310 PDDESTRUCT=^DDESTRUCT;
2311 DDESTRUCT=RECORD
2312 cbData:ULONG;
2313 fsStatus:USHORT;
2314 usFormat:USHORT;
2315 offszItemName:USHORT;
2316 offabData:USHORT;
2317 END;
2318
2319{ DDE constants for wStatus field }
2320
2321CONST
2322 DDE_FACK =$0001;
2323 DDE_FBUSY =$0002;
2324 DDE_FNODATA =$0004;
2325 DDE_FACKREQ =$0008;
2326 DDE_FRESPONSE =$0010;
2327 DDE_NOTPROCESSED =$0020;
2328 DDE_FRESERVED =$00C0;
2329 DDE_FAPPSTATUS =$FF00;
2330
2331 DDEFMT_TEXT =$0001;
2332
2333
2334CONST
2335 DDEPM_RETRY =$00000001;
2336 DDEPM_NOFREE =$00000002;
2337
2338{ Dynamic Data Exchange (DDE) Messages }
2339
2340CONST
2341 WM_DDE_FIRST =$00A0;
2342 WM_DDE_INITIATE =$00A0;
2343 WM_DDE_REQUEST =$00A1;
2344 WM_DDE_ACK =$00A2;
2345 WM_DDE_DATA =$00A3;
2346 WM_DDE_ADVISE =$00A4;
2347 WM_DDE_UNADVISE =$00A5;
2348 WM_DDE_POKE =$00A6;
2349 WM_DDE_EXECUTE =$00A7;
2350 WM_DDE_TERMINATE =$00A8;
2351 WM_DDE_INITIATEACK =$00A9;
2352 WM_DDE_LAST =$00AF;
2353
2354
2355{ Return values for WM_QUERYCONVERTPOS }
2356
2357CONST
2358 QCP_CONVERT =$0001;
2359 QCP_NOCONVERT =$0000;
2360
2361TYPE
2362 HLIB=HMODULE;
2363
2364{ Desktop API definitions }
2365TYPE
2366 PDESKTOP=^DESKTOP;
2367 DESKTOP=RECORD
2368 cbSize:ULONG;
2369 hbm:HBITMAP;
2370 x:LONG;
2371 y:LONG;
2372 fl:ULONG;
2373 lTileCount:LONG;
2374 szFile:CSTRING[260];
2375 END;
2376
2377CONST
2378 SDT_DESTROY =$0001;
2379 SDT_NOBKGND =$0002;
2380 SDT_TILE =$0004;
2381 SDT_SCALE =$0008;
2382 SDT_PATTERN =$0010;
2383 SDT_CENTER =$0020;
2384 SDT_RETAIN =$0040;
2385 SDT_LOADFILE =$0080;
2386
2387CONST
2388 WM_DBCSFIRST =$00b0;
2389 WM_DBCSLAST =$00cf;
2390 WM_QUERYCONVERTPOS =WM_DBCSFIRST;
2391
2392
2393{ Standard Window Classes}
2394
2395CONST
2396 WC_FRAME =$ffff0001;
2397 WC_COMBOBOX =$ffff0002;
2398 WC_BUTTON =$ffff0003;
2399 WC_MENU =$ffff0004;
2400 WC_STATIC =$ffff0005;
2401 WC_ENTRYFIELD =$ffff0006;
2402 WC_LISTBOX =$ffff0007;
2403 WC_SCROLLBAR =$ffff0008;
2404 WC_TITLEBAR =$ffff0009;
2405 WC_MLE =$ffff000A;
2406 { 000B to 000F reserved }
2407 WC_APPSTAT =$ffff0010;
2408 WC_KBDSTAT =$ffff0011;
2409 WC_PECIC =$ffff0012;
2410 WC_DBE_KKPOPUP =$ffff0013;
2411 { 0014 to 001F reserved }
2412 WC_SPINBUTTON =$ffff0020;
2413 { 0021 to 0024 reserved }
2414 WC_CONTAINER =$ffff0025;
2415 WC_SLIDER =$ffff0026;
2416 WC_VALUESET =$ffff0027;
2417 WC_NOTEBOOK =$ffff0028;
2418 { 0029 to 002C used by PEN }
2419 WC_PENFIRST =$ffff0029;
2420 WC_PENLAST =$ffff002C;
2421 { 002D to 0030 reserved }
2422 { 0030 to 003F reserved }
2423 WC_MMPMFIRST =$ffff0040;
2424 WC_MMPMLAST =$ffff004f;
2425
2426
2427
2428CONST
2429 MPVOID:MPARAM=0;
2430
2431{*************************************************************************
2432 * MLE Window styles ( in addition to WS_* )
2433 *************************************************************************}
2434CONST
2435 MLS_WORDWRAP =$00000001;
2436 MLS_BORDER =$00000002;
2437 MLS_VSCROLL =$00000004;
2438 MLS_HSCROLL =$00000008;
2439 MLS_READONLY =$00000010;
2440 MLS_IGNORETAB =$00000020;
2441 MLS_DISABLEUNDO =$00000040;
2442 MLS_LIMITVSCROLL =$00000080;
2443
2444{************************************************************************
2445 * MLE External Data Types
2446 ************************************************************************}
2447
2448TYPE
2449 IPT=LONG; { insertion point }
2450 PIPT=PLONG; { insertion point }
2451 PIX=LONG; { pixel }
2452 LINE=ULONG; { Line number }
2453
2454 PMLEFORMATRECT=^MLEFORMATRECT;
2455 MLEFORMATRECT=RECORD
2456 cxFormat:LONG; { format rectangle width }
2457 cyFormat:LONG; { format rectangle height }
2458 END;
2459
2460 PMLECTLDATA=^MLECTLDATA;
2461 MLECTLDATA=RECORD
2462 cbCtlData:USHORT; { Length of the MLECTLDATA structure }
2463 afIEFormat:USHORT; { import/export format }
2464 cchText:ULONG; { text limit }
2465 iptAnchor:IPT; { beginning of selection }
2466 iptCursor:IPT; { ending of selection }
2467 cxFormat:LONG; { format rectangle width }
2468 cyFormat:LONG; { format rectangle height }
2469 afFormatFlags:ULONG; { formatting rectangle flags }
2470 END;
2471
2472{************************************************************************
2473 * afFormatFlags mask
2474 ************************************************************************}
2475CONST
2476 MLFFMTRECT_LIMITHORZ =$00000001;
2477 MLFFMTRECT_LIMITVERT =$00000002;
2478 MLFFMTRECT_MATCHWINDOW =$00000004;
2479 MLFFMTRECT_FORMATRECT =$00000007;
2480
2481{************************************************************************
2482 * afIEFormat - Import/Export Format flags
2483 ************************************************************************}
2484 MLFIE_CFTEXT =0;
2485 MLFIE_NOTRANS =1;
2486 MLFIE_WINFMT =2;
2487 MLFIE_RTF =3;
2488
2489{************************************************************************
2490 * MLN_OVERFLOW structure
2491 ************************************************************************}
2492TYPE
2493 PMLEOVERFLOW=^MLEOVERFLOW;
2494 MLEOVERFLOW=RECORD
2495 afErrInd:ULONG; { see mask below }
2496 nBytesOver:LONG; { number of bytes overflowed }
2497 pixHorzOver:LONG;{ number of pixels horizontally overflow }
2498 pixVertOver:LONG;{ number of pixels vertically overflowed }
2499 END;
2500
2501{************************************************************************
2502 * afErrInd - error format rectangle flags
2503 ************************************************************************}
2504CONST
2505 MLFEFR_RESIZE =$00000001;
2506 MLFEFR_TABSTOP =$00000002;
2507 MLFEFR_FONT =$00000004;
2508 MLFEFR_TEXT =$00000008;
2509 MLFEFR_WORDWRAP =$00000010;
2510 MLFETL_TEXTBYTES =$00000020;
2511
2512{************************************************************************
2513 * MLN_MARGIN structure
2514 ************************************************************************}
2515TYPE
2516 PMLEMARGSTRUCT=^MLEMARGSTRUCT;
2517 MLEMARGSTRUCT=RECORD
2518 afMargins:USHORT; { margin indicator }
2519 usMouMsg:USHORT; { mouse message }
2520 iptNear:IPT; { the geometrically nearest insertion point }
2521 END;
2522
2523{************************************************************************
2524 * afFlags - margin notification indicators
2525 ************************************************************************}
2526CONST
2527 MLFMARGIN_LEFT =$0001;
2528 MLFMARGIN_BOTTOM =$0002;
2529 MLFMARGIN_RIGHT =$0003;
2530 MLFMARGIN_TOP =$0004;
2531
2532{************************************************************************
2533 * MLM_QUERYSELECTION flags
2534 ************************************************************************}
2535 MLFQS_MINMAXSEL =0;
2536 MLFQS_MINSEL =1;
2537 MLFQS_MAXSEL =2;
2538 MLFQS_ANCHORSEL =3;
2539 MLFQS_CURSORSEL =4;
2540
2541{************************************************************************
2542 * MLN_CLPBDFAIL flags
2543 ************************************************************************}
2544 MLFCLPBD_TOOMUCHTEXT =$00000001;
2545 MLFCLPBD_ERROR =$00000002;
2546
2547{************************************************************************
2548 * MLM_SEARCH structure
2549 ************************************************************************}
2550TYPE
2551 PMLE_SEARCHDATA=^MLE_SEARCHDATA;
2552 MLE_SEARCHDATA=RECORD
2553 cb:ULONG; {USHORT ?} { size of search spec structure }
2554 pchFind:PCHAR; { string to search for }
2555 pchReplace:PCHAR; { string to replace with }
2556 cchFind:SHORT; { length of pchFindString }
2557 cchReplace:SHORT; { length of replace string }
2558 iptStart:IPT; { point at which to start search }
2559 iptStop:IPT; { point at which to stop search }
2560 cchFound:USHORT; { Length of found string at iptStart }
2561 END;
2562
2563{************************************************************************
2564 * MLM_SEARCH style flags
2565 ************************************************************************}
2566CONST
2567 MLFSEARCH_CASESENSITIVE =$00000001;
2568 MLFSEARCH_SELECTMATCH =$00000002;
2569 MLFSEARCH_CHANGEALL =$00000004;
2570
2571{************************************************************************
2572 * MLE messages - MLM from =$01b0 to =$01de; MLN from =$0001 to =$000f
2573 ************************************************************************}
2574 { formatting messages }
2575 MLM_SETTEXTLIMIT =$01b0;
2576 MLM_QUERYTEXTLIMIT =$01b1;
2577 MLM_SETFORMATRECT =$01b2;
2578 MLM_QUERYFORMATRECT =$01b3;
2579 MLM_SETWRAP =$01b4;
2580 MLM_QUERYWRAP =$01b5;
2581 MLM_SETTABSTOP =$01b6;
2582 MLM_QUERYTABSTOP =$01b7;
2583 MLM_SETREADONLY =$01b8;
2584 MLM_QUERYREADONLY =$01b9;
2585
2586 { text content manipulation and queries messages }
2587 MLM_QUERYCHANGED =$01ba;
2588 MLM_SETCHANGED =$01bb;
2589 MLM_QUERYLINECOUNT =$01bc;
2590 MLM_CHARFROMLINE =$01bd;
2591 MLM_LINEFROMCHAR =$01be;
2592 MLM_QUERYLINELENGTH =$01bf;
2593 MLM_QUERYTEXTLENGTH =$01c0;
2594
2595 { text import and export messages }
2596 MLM_FORMAT =$01c1;
2597 MLM_SETIMPORTEXPORT =$01c2;
2598 MLM_IMPORT =$01c3;
2599 MLM_EXPORT =$01c4;
2600 MLM_DELETE =$01c6;
2601 MLM_QUERYFORMATLINELENGTH =$01c7;
2602 MLM_QUERYFORMATTEXTLENGTH =$01c8;
2603 MLM_INSERT =$01c9;
2604
2605 { selection messages }
2606 MLM_SETSEL =$01ca;
2607 MLM_QUERYSEL =$01cb;
2608 MLM_QUERYSELTEXT =$01cc;
2609
2610 { undo and redo messages }
2611 MLM_QUERYUNDO =$01cd;
2612 MLM_UNDO =$01ce;
2613 MLM_RESETUNDO =$01cf;
2614
2615 { text attributes messages }
2616 MLM_QUERYFONT =$01d0;
2617 MLM_SETFONT =$01d1;
2618 MLM_SETTEXTCOLOR =$01d2;
2619 MLM_QUERYTEXTCOLOR =$01d3;
2620 MLM_SETBACKCOLOR =$01d4;
2621 MLM_QUERYBACKCOLOR =$01d5;
2622
2623 { scrolling messages }
2624 MLM_QUERYFIRSTCHAR =$01d6;
2625 MLM_SETFIRSTCHAR =$01d7;
2626
2627 { clipboard messages }
2628 MLM_CUT =$01d8;
2629 MLM_COPY =$01d9;
2630 MLM_PASTE =$01da;
2631 MLM_CLEAR =$01db;
2632
2633 { display manipulation messages }
2634 MLM_ENABLEREFRESH =$01dc;
2635 MLM_DISABLEREFRESH =$01dd;
2636
2637 { search message }
2638 MLM_SEARCH =$01de;
2639 MLM_QUERYIMPORTEXPORT =$01df;
2640
2641 { notification messages }
2642 MLN_OVERFLOW =$0001;
2643 MLN_PIXHORZOVERFLOW =$0002;
2644 MLN_PIXVERTOVERFLOW =$0003;
2645 MLN_TEXTOVERFLOW =$0004;
2646 MLN_VSCROLL =$0005;
2647 MLN_HSCROLL =$0006;
2648 MLN_CHANGE =$0007;
2649 MLN_SETFOCUS =$0008;
2650 MLN_KILLFOCUS =$0009;
2651 MLN_MARGIN =$000a;
2652 MLN_SEARCHPAUSE =$000b;
2653 MLN_MEMERROR =$000c;
2654 MLN_UNDOOVERFLOW =$000d;
2655 MLN_CLPBDFAIL =$000f;
2656
2657IMPORTS
2658
2659FUNCTION WinRegisterClass(ahab:HAB;pszClassName:CSTRING;pfnWndProc:POINTER;
2660 flStyle,cbWindowData:ULONG):BOOL;
2661 APIENTRY; 'PMWIN' index 926;
2662FUNCTION WinDefWindowProc(ahwnd:HWND;msg:ULONG;mp1,mp2:MPARAM):ULONG;
2663 APIENTRY; 'PMWIN' index 911;
2664FUNCTION WinDestroyWindow(ahwnd:HWND):BOOL;
2665 APIENTRY; 'PMWIN' index 728;
2666FUNCTION WinShowWindow(ahwnd:HWND;fShow:BOOL):BOOL;
2667 APIENTRY; 'PMWIN' index 883;
2668FUNCTION WinQueryWindowRect(ahwnd:HWND;VAR prclDest:RECTL):BOOL;
2669 APIENTRY; 'PMWIN' index 840;
2670FUNCTION WinGetPS(ahwnd:HWND):HPS;
2671 APIENTRY; 'PMWIN' index 757;
2672FUNCTION WinReleasePS(ahps:HPS):BOOL;
2673 APIENTRY; 'PMWIN' index 848;
2674FUNCTION WinEndPaint(ahps:HPS):BOOL;
2675 APIENTRY; 'PMWIN' index 738;
2676FUNCTION WinGetClipPS(ahwnd,hwndClip:HWND;fl:ULONG):HPS;
2677 APIENTRY; 'PMWIN' index 749;
2678FUNCTION WinIsWindowShowing(ahwnd:HWND):BOOL;
2679 APIENTRY; 'PMWIN' index 774;
2680FUNCTION WinBeginPaint(ahwnd:HWND;ahps:HPS;VAR prclPaint:RECTL):HPS;
2681 APIENTRY; 'PMWIN' index 703;
2682FUNCTION WinOpenWindowDC(ahwnd:HWND):HDC;
2683 APIENTRY; 'PMWIN' index 794;
2684FUNCTION WinScrollWindow(ahwnd:HWND;dx,dy:LONG;CONST prclScroll,prclClip:RECTL;
2685 hrgnUpdate:HRGN;VAR prclUpdate:RECTL;
2686 rgfsw:ULONG):LONG;
2687 APIENTRY; 'PMWIN' index 849;
2688FUNCTION WinFillRect(ahps:HPS;CONST prcl:RECTL;lColor:LONG):BOOL;
2689 APIENTRY; 'PMWIN' index 743;
2690FUNCTION WinQueryVersion(ahab:HAB):ULONG;
2691 APIENTRY; 'PMWIN' index 833;
2692FUNCTION WinQueryAnchorBlock(ahwnd:HWND):HAB;
2693 APIENTRY; 'PMWIN' index 800;
2694FUNCTION WinCreateWindow(hwndParent:HWND;pszClass:CSTRING;pszName:CSTRING;
2695 flStyle:ULONG;x,y,cx,cy:LONG;hwndOwner,
2696 hwndInsertBehind:HWND;id:ULONG;pCtlData,
2697 pPresParams:POINTER):HWND;
2698 APIENTRY; 'PMWIN' index 909;
2699FUNCTION WinCreateWCWindow(hwndParent:HWND;pszClass:ULONG;pszName:CSTRING;
2700 flStyle:ULONG;x,y,cx,cy:LONG;hwndOwner,
2701 hwndInsertBehind:HWND;id:ULONG;pCtlData,
2702 pPresParams:PVOID):HWND;
2703 APIENTRY; 'PMWIN' index 909;
2704FUNCTION WinEnableWindow(ahwnd:HWND;fEnable:BOOL):BOOL;
2705 APIENTRY; 'PMWIN' index 735;
2706FUNCTION WinIsWindowEnabled(ahwnd:HWND):BOOL;
2707 APIENTRY; 'PMWIN' index 773;
2708FUNCTION WinEnableWindowUpdate(ahwnd:HWND;fEnable:BOOL):BOOL;
2709 APIENTRY; 'PMWIN' index 736;
2710FUNCTION WinIsWindowVisible(ahwnd:HWND):BOOL;
2711 APIENTRY; 'PMWIN' index 775;
2712FUNCTION WinQueryWindowText(ahwnd:HWND;cchBufferMax:LONG;VAR pchBuffer):LONG;
2713 APIENTRY; 'PMWIN' index 841;
2714FUNCTION WinSetWindowText(ahwnd:HWND;pszText:CSTRING):BOOL;
2715 APIENTRY; 'PMWIN' index 877;
2716FUNCTION WinQueryWindowTextLength(ahwnd:HWND):LONG;
2717 APIENTRY; 'PMWIN' index 842;
2718FUNCTION WinWindowFromID(hwndParent:HWND;id:ULONG):HWND;
2719 APIENTRY; 'PMWIN' index 899;
2720FUNCTION WinIsWindow(ahab:HAB;ahwnd:HWND):BOOL;
2721 APIENTRY; 'PMWIN' index 772;
2722FUNCTION WinQueryWindow(ahwnd:HWND;cmd:LONG):HWND;
2723 APIENTRY; 'PMWIN' index 834;
2724FUNCTION WinMultWindowFromIDs(hwndParent:HWND;VAR prghwnd:HWND;
2725 idFirst,idLast:ULONG):LONG;
2726 APIENTRY; 'PMWIN' index 917;
2727FUNCTION WinSetParent(ahwnd,hwndNewParent:HWND;fRedraw:BOOL):BOOL;
2728 APIENTRY; 'PMWIN' index 865;
2729FUNCTION WinIsChild(ahwnd,hwndParent:HWND):BOOL;
2730 APIENTRY; 'PMWIN' index 768;
2731FUNCTION WinSetOwner(ahwnd,hwndNewOwner:HWND):BOOL;
2732 APIENTRY; 'PMWIN' index 864;
2733FUNCTION WinQueryWindowProcess(ahwnd:HWND;VAR ppid:PID;VAR ptid:TID):BOOL;
2734 APIENTRY; 'PMWIN' index 838;
2735FUNCTION WinQueryObjectWindow(hwndDesktop:HWND):HWND;
2736 APIENTRY; 'PMWIN' index 820;
2737FUNCTION WinQueryDesktopWindow(ahab:HAB;ahdc:HDC):HWND;
2738 APIENTRY; 'PMWIN' index 813;
2739FUNCTION WinSetWindowPos(ahwnd,hwndInsertBehind:HWND;x,y,cx,cy:LONG;
2740 fl:ULONG):BOOL;
2741 APIENTRY; 'PMWIN' index 875;
2742FUNCTION WinSetMultWindowPos(ahab:HAB;VAR pswp:SWP;cswp:ULONG):BOOL;
2743 APIENTRY; 'PMWIN' index 863;
2744FUNCTION WinQueryWindowPos(ahwnd:HWND;VAR pswp:SWP):BOOL;
2745 APIENTRY; 'PMWIN' index 837;
2746FUNCTION WinUpdateWindow(ahwnd:HWND):BOOL;
2747 APIENTRY; 'PMWIN' index 892;
2748FUNCTION WinInvalidateRect(ahwnd:HWND;CONST pwrc:RECTL;
2749 fIncludeChildren:BOOL):BOOL;
2750 APIENTRY; 'PMWIN' index 765;
2751FUNCTION WinInvalidateRegion(ahwnd:HWND;ahrgn:HRGN;
2752 fIncludeChildren:BOOL):BOOL;
2753 APIENTRY; 'PMWIN' index 766;
2754FUNCTION WinInvertRect(ahps:HPS;CONST prcl:RECTL):BOOL;
2755 APIENTRY; 'PMWIN' index 767;
2756FUNCTION WinDrawBitmap(hpsDst:HPS;hbm:HBITMAP;VAR pwrcSrc;
2757 VAR pptlDst;clrFore,clrBack:LONG;
2758 fl:ULONG):BOOL;
2759 APIENTRY; 'PMWIN' index 730;
2760FUNCTION WinDrawText(ahps:HPS;cchText:LONG;VAR lpchText;VAR prcl:RECTL;
2761 clrFore,clrBack:LONG;flCmd:ULONG):LONG;
2762 APIENTRY; 'PMWIN' index 913;
2763FUNCTION WinDrawBorder(ahps:HPS;CONST prcl:RECTL;cx,cy,clrFore,clrBack:LONG;
2764 flCmd:ULONG):BOOL;
2765 APIENTRY; 'PMWIN' index 731;
2766FUNCTION WinLoadString(ahab:HAB;hmod:HMODULE;id:ULONG;cchMax:LONG;
2767 VAR pchBuffer:CSTRING):LONGINT;
2768 APIENTRY; 'PMWIN' index 781;
2769FUNCTION WinLoadMessage(ahab:HAB;hmod:HMODULE;id:ULONG;cchMax:LONG;
2770 VAR pchBuffer):LONG;
2771 APIENTRY; 'PMWIN' index 779;
2772FUNCTION WinSetActiveWindow(hwndDesktop,ahwnd:HWND):BOOL;
2773 APIENTRY; 'PMWIN' index 851;
2774FUNCTION WinSubclassWindow(ahwnd:HWND;pfnwp:POINTER):POINTER;
2775 APIENTRY; 'PMWIN' index 929;
2776FUNCTION WinQueryClassName(ahwnd:HWND;cchMax:LONG;VAR apch):LONG;
2777 APIENTRY; 'PMWIN' index 805;
2778FUNCTION WinQueryClassInfo(ahab:HAB;pszClassName:CSTRING;
2779 VAR pClassInfo:CLASSINFO):BOOL;
2780 APIENTRY; 'PMWIN' index 925;
2781FUNCTION WinQueryActiveWindow(hwndDesktop:HWND):HWND;
2782 APIENTRY; 'PMWIN' index 799;
2783FUNCTION WinIsThreadActive(ahab:HAB):BOOL;
2784 APIENTRY; 'PMWIN' index 771;
2785FUNCTION WinQuerySysModalWindow(hwndDesktop:HWND):HWND;
2786 APIENTRY; 'PMWIN' index 827;
2787FUNCTION WinSetSysModalWindow(hwndDesktop:HWND;ahwnd:HWND):BOOL;
2788 APIENTRY; 'PMWIN' index 872;
2789FUNCTION WinQueryWindowUShort(ahwnd:HWND;index:LONG):USHORT;
2790 APIENTRY; 'PMWIN' index 844;
2791FUNCTION WinSetWindowUShort(ahwnd:HWND;index:LONG;us:USHORT):BOOL;
2792 APIENTRY; 'PMWIN' index 879;
2793FUNCTION WinQueryWindowUlong(ahwnd:HWND;index:LONG):ULONG;
2794 APIENTRY; 'PMWIN' index 843;
2795FUNCTION WinSetWindowULong(ahwnd:HWND;index:LONG;ul:ULONG):BOOL;
2796 APIENTRY; 'PMWIN' index 878;
2797FUNCTION WinQueryWindowPtr(ahwnd:HWND;index:LONG):POINTER;
2798 APIENTRY; 'PMWIN' index 839;
2799FUNCTION WinSetWindowPtr(ahwnd:HWND;index:LONG;p:POINTER):BOOL;
2800 APIENTRY; 'PMWIN' index 876;
2801FUNCTION WinSetWindowBits(ahwnd:HWND;index:LONG;flData,
2802 flMask:ULONG):BOOL;
2803 APIENTRY; 'PMWIN' index 874;
2804FUNCTION WinBeginEnumWindows(ahwnd:HWND):HENUM;
2805 APIENTRY; 'PMWIN' index 702;
2806FUNCTION WinGetNextWindow(ahenum:HENUM):HWND;
2807 APIENTRY; 'PMWIN' index 756;
2808FUNCTION WinEndEnumWindows(ahenum:HENUM):BOOL;
2809 APIENTRY; 'PMWIN' index 737;
2810FUNCTION WinWindowFromPoint(ahwnd:HWND;VAR pptl:POINTL;
2811 fChildren:BOOL):HWND;
2812 APIENTRY; 'PMWIN' index 900;
2813FUNCTION WinMapWindowPoints(hwndFrom,hwndTo:HWND;VAR prgptl;
2814 cwpt:LONG):BOOL;
2815 APIENTRY; 'PMWIN' index 788;
2816FUNCTION WinValidateRect(ahwnd:HWND;CONST prcl:RECTL;
2817 fIncludeChildren:BOOL):BOOL;
2818 APIENTRY; 'PMWIN' index 895;
2819FUNCTION WinValidateRegion(ahwnd:HWND;ahrgn:HRGN;
2820 fIncludeChildren:BOOL):BOOL;
2821 APIENTRY; 'PMWIN' index 896;
2822FUNCTION WinWindowFromDC(ahdc:HDC):HWND;
2823 APIENTRY; 'PMWIN' index 898;
2824FUNCTION WinQueryWindowDC(ahwnd:HWND):HDC;
2825 APIENTRY; 'PMWIN' index 835;
2826FUNCTION WinGetScreenPS(hwndDesktop:HWND):HPS;
2827 APIENTRY; 'PMWIN' index 759;
2828FUNCTION WinLockWindowUpdate(hwndDesktop,hwndLockUpdate:HWND):BOOL;
2829 APIENTRY; 'PMWIN' index 784;
2830FUNCTION WinLockVisRegions(hwndDesktop:HWND;fLock:BOOL):BOOL;
2831 APIENTRY; 'PMWIN' index 782;
2832FUNCTION WinQueryUpdateRect(ahwnd:HWND;VAR prcl:RECTL):BOOL;
2833 APIENTRY; 'PMWIN' index 831;
2834FUNCTION WinQueryUpdateRegion(ahwnd:HWND;ahrgn:HRGN):LONG;
2835 APIENTRY; 'PMWIN' index 832;
2836FUNCTION WinExcludeUpdateRegion(ahps:HPS;ahwnd:HWND):LONG;
2837 APIENTRY; 'PMWIN' index 742;
2838FUNCTION WinSendMsg(ahwnd:HWND;msg:ULONG;mp1,mp2:MPARAM):ULONG;
2839 APIENTRY; 'PMWIN' index 920;
2840FUNCTION WinQueryQueueInfo(ahmq:HMQ;VAR pmqi:MQINFO;cbCopy:ULONG):BOOL;
2841 APIENTRY; 'PMWIN' index 824;
2842FUNCTION WinCancelShutdown(ahmq:HMQ;fCancelAlways:BOOL):BOOL;
2843 APIENTRY; 'PMWIN' index 705;
2844FUNCTION WinGetMsg(ahab:HAB;VAR pqmsg:QMSG;hwndFilter:HWND;
2845 msgFilterFirst,msgFilterLast:ULONG):BOOL;
2846 APIENTRY; 'PMWIN' index 915;
2847FUNCTION WinPeekMsg(ahab:HAB;VAR pqmsg:QMSG;hwndFilter:HWND;
2848 msgFilterFirst,msgFilterLast:ULONG;fl:ULONG):BOOL;
2849 APIENTRY; 'PMWIN' index 918;
2850FUNCTION WinDispatchMsg(ahab:HAB;VAR pqmsg:QMSG):ULONG;
2851 APIENTRY; 'PMWIN' index 912;
2852FUNCTION WinPostMsg(ahwnd:HWND;msg:ULONG;mp1,mp2:MPARAM):BOOL;
2853 APIENTRY; 'PMWIN' index 919;
2854FUNCTION WinRegisterUserMsg(ahab:HAB;msgid:ULONG;
2855 datatype1,dir1,datatype2,dir2,
2856 datatyper:LONG):BOOL;
2857 APIENTRY; 'PMWIN' index 846;
2858FUNCTION WinRegisterUserDatatype(ahab:HAB;datatype,count:LONG;
2859 VAR astypes):BOOL;
2860 APIENTRY; 'PMWIN' index 845;
2861FUNCTION WinSetMsgMode(ahab:HAB;classname:CSTRING;control:LONG):BOOL;
2862 APIENTRY; 'PMWIN' index 862;
2863FUNCTION WinSetSynchroMode(ahab:HAB;mode:LONG):BOOL;
2864 APIENTRY; 'PMWIN' index 870;
2865FUNCTION WinInSendMsg(ahab:HAB):BOOL;
2866 APIENTRY; 'PMWIN' index 761;
2867FUNCTION WinBroadcastMsg(ahwnd:HWND;msg:ULONG;mp1,mp2:MPARAM;rgf:ULONG):BOOL;
2868 APIENTRY; 'PMWIN' index 901;
2869FUNCTION WinWaitMsg(ahab:HAB;msgFirst,msgLast:ULONG):BOOL;
2870 APIENTRY; 'PMWIN' index 897;
2871FUNCTION WinQueryQueueStatus(hwndDesktop:HWND):ULONG;
2872 APIENTRY; 'PMWIN' index 825;
2873FUNCTION WinQueryMsgPos(ahab:HAB;VAR pptl:POINTL):BOOL;
2874 APIENTRY; 'PMWIN' index 818;
2875FUNCTION WinQueryMsgTime(ahab:HAB):ULONG;
2876 APIENTRY; 'PMWIN' index 819;
2877FUNCTION WinWaitEventSem(ahev:HEV;ulTimeout:ULONG):APIRET;
2878 APIENTRY; 'PMWIN' index 978;
2879FUNCTION WinRequestMutexSem(ahmtx:HMTX;ulTimeout:ULONG):APIRET;
2880 APIENTRY; 'PMWIN' index 979;
2881FUNCTION WinWaitMuxWaitSem(ahmux:HMUX;ulTimeout:ULONG;
2882 VAR pulUser:ULONG):APIRET;
2883 APIENTRY; 'PMWIN' index 980;
2884FUNCTION WinPostQueueMsg(ahmq:HMQ;msg:ULONG;mp1,mp2:MPARAM):BOOL;
2885 APIENTRY; 'PMWIN' index 902;
2886FUNCTION WinSetMsgInterest(ahwnd:HWND;msg_class:ULONG;control:LONG):BOOL;
2887 APIENTRY; 'PMWIN' index 861;
2888FUNCTION WinSetClassMsgInterest(ahab:HAB;VAR pszClassName:CSTRING;msg_class:ULONG;
2889 control:LONG):BOOL;
2890 APIENTRY; 'PMWIN' index 853;
2891FUNCTION WinSetFocus(hwndDesktop,hwndSetFocus:HWND):BOOL;
2892 APIENTRY; 'PMWIN' index 860;
2893FUNCTION WinFocusChange(hwndDesktop,hwndSetFocus:HWND;
2894 flFocusChange:ULONG):BOOL;
2895 APIENTRY; 'PMWIN' index 746;
2896{FUNCTION WinLockupSystem(ahab:HAB):BOOL;
2897 APIENTRY; 'PMWIN' index ???
2898FUNCTION WinUnlockSystem(ahab:HAB;VAR pszPassword:CSTRING):BOOL
2899 APIENTRY; 'PMWIN' index ???}
2900FUNCTION WinSetCapture(hwndDesktop,ahwnd:HWND):BOOL;
2901 APIENTRY; 'PMWIN' index 852;
2902FUNCTION WinQueryCapture(hwndDesktop:HWND):HWND;
2903 APIENTRY; 'PMWIN' index 804;
2904FUNCTION WinCheckInput(ahab:HAB):BOOL;
2905 APIENTRY; 'PMWIN' index 998;
2906FUNCTION WinQueryFocus(hwndDesktop:HWND):HWND;
2907 APIENTRY; 'PMWIN' index 817;
2908FUNCTION WinGetKeyState(hwndDesktop:HWND;vkey:LONG):LONG;
2909 APIENTRY; 'PMWIN' index 752;
2910FUNCTION WinGetPhysKeyState(hwndDesktop:HWND;sc:LONG):LONG;
2911 APIENTRY; 'PMWIN' index 758;
2912FUNCTION WinEnablePhysInput(hwndDesktop:HWND;fEnable:BOOL):BOOL;
2913 APIENTRY; 'PMWIN' index 734;
2914FUNCTION WinIsPhysInputEnabled(hwndDesktop:HWND):BOOL;
2915 APIENTRY; 'PMWIN' index 769;
2916FUNCTION WinSetKeyboardStateTable(hwndDesktop:HWND;VAR pKeyStateTable;
2917 fSet:BOOL):BOOL;
2918 APIENTRY; 'PMWIN' index 921;
2919FUNCTION WinGetDlgMsg(hwndDlg:HWND;VAR pqmsg:QMSG):BOOL;
2920 APIENTRY; 'PMWIN' index 914;
2921FUNCTION WinLoadDlg(hwndParent,hwndOwner:HWND;pfnDlgProc:POINTER;
2922 hmod:HMODULE;idDlg:ULONG;pCreateParams:POINTER):HWND;
2923 APIENTRY; 'PMWIN' index 924;
2924FUNCTION WinDlgBox(hwndParent,hwndOwner:HWND;pfnDlgProc:POINTER;
2925 hmod:HMODULE;idDlg:ULONG;pCreateParams:POINTER):ULONG;
2926 APIENTRY; 'PMWIN' index 923;
2927FUNCTION WinDismissDlg(hwndDlg:HWND;usResult:ULONG):BOOL;
2928 APIENTRY; 'PMWIN' index 729;
2929FUNCTION WinQueryDlgItemShort(hwndDlg:HWND;idItem:ULONG;VAR pResult:INTEGER;
2930 fSigned:BOOL):BOOL;
2931 APIENTRY; 'PMWIN' index 814;
2932FUNCTION WinSetDlgItemShort(hwndDlg:HWND;idItem:ULONG;usValue:USHORT;
2933 fSigned:BOOL):BOOL;
2934 APIENTRY; 'PMWIN' index 858;
2935FUNCTION WinSetDlgItemText(hwndDlg:HWND;idItem:ULONG;pszText:CSTRING):BOOL;
2936 APIENTRY; 'PMWIN' index 859;
2937FUNCTION WinQueryDlgItemText(hwndDlg:HWND;idItem:ULONG;cchBufferMax:LONG;
2938 VAR pszText:CSTRING):ULONG;
2939 APIENTRY; 'PMWIN' index 815;
2940FUNCTION WinQueryDlgItemTextLength(hwndDlg:HWND;idItem:ULONG):LONG;
2941 APIENTRY; 'PMWIN' index 816;
2942FUNCTION WinDefDlgProc(hwndDlg:HWND;msg:ULONG;mp1,mp2:MPARAM):MRESULT;
2943 APIENTRY; 'PMWIN' index 910;
2944FUNCTION WinAlarm(hwndDesktop:HWND;rgfType:ULONG):BOOL;
2945 APIENTRY; 'PMWIN' index 701;
2946FUNCTION WinMessageBox(hwndParent,hwndOwner:HWND;pszText,pszCaption:CSTRING;
2947 idWindow,flStyle:ULONG):ULONG;
2948 APIENTRY; 'PMWIN' index 789;
2949FUNCTION WinProcessDlg(hwndDlg:ULONG):ULONG;
2950 APIENTRY; 'PMWIN' index 796;
2951FUNCTION WinSendDlgItemMsg(hwndDlg:HWND;idItem:ULONG;msg:ULONG;
2952 mp1,mp2:MPARAM):ULONG;
2953 APIENTRY; 'PMWIN' index 903;
2954FUNCTION WinMapDlgPoints(hwndDlg:HWND;VAR prgwptl:POINTL;cwpt:ULONG;
2955 fCalcWindowCoords:BOOL):BOOL;
2956 APIENTRY; 'PMWIN' index 787;
2957FUNCTION WinEnumDlgItem(hwndDlg,ahwnd:HWND;code:ULONG):HWND;
2958 APIENTRY; 'PMWIN' index 740;
2959FUNCTION WinSubstituteStrings(ahwnd:HWND;VAR pszSrc:CSTRING;cchDstMax:LONG;
2960 VAR pszDst:CSTRING):LONG;
2961 APIENTRY; 'PMWIN' index 886;
2962FUNCTION WinCreateDlg(hwndParent,hwndOwner:HWND;pfnDlgProc:POINTER;
2963 VAR pdlgt:DLGTEMPLATE;pCreateParams:POINTER):HWND;
2964 APIENTRY; 'PMWIN' index 922;
2965FUNCTION WinLoadMenu(hwndFrame:HWND;hmod:HMODULE;idMenu:ULONG):HWND;
2966 APIENTRY; 'PMWIN' index 778;
2967FUNCTION WinDdeInitiate(hwndClient:HWND;pszAppName,pszTopicName:CSTRING;
2968 VAR pcctxt:CONVCONTEXT):BOOL;
2969 APIENTRY; 'PMWIN' index 718;
2970FUNCTION WinDdeRespond(hwndClient,hwndServer:HWND;pszAppName,pszTopicName:CSTRING;
2971 VAR pcctxt:CONVCONTEXT):ULONG;
2972 APIENTRY; 'PMWIN' index 720;
2973FUNCTION WinDdePostMsg(hwndTo,hwndFrom:HWND;wm:ULONG;VAR pddest:DDESTRUCT;
2974 flOptions:ULONG):BOOL;
2975 APIENTRY; 'PMWIN' index 719;
2976FUNCTION WinDeleteProcedure(ahab:HAB;wndproc:POINTER):BOOL;
2977 APIENTRY; 'PMWIN' index 604;
2978FUNCTION WinDeleteLibrary(ahab:HAB;libhandle:HLIB):BOOL;
2979 APIENTRY; 'PMWIN' index 722;
2980FUNCTION WinLoadProcedure(ahab:HAB;libhandle:HLIB;VAR procname:CSTRING):POINTER;
2981 APIENTRY; 'PMWIN' index 603;
2982FUNCTION WinLoadLibrary(ahab:HAB;VAR libname:CSTRING):HLIB;
2983 APIENTRY; 'PMWIN' index 777;
2984FUNCTION WinSetDesktopBkgnd(hwndDesktop:HWND;VAR pdskNew:DESKTOP):HBITMAP;
2985 APIENTRY; 'PMWIN' index 935;
2986FUNCTION WinQueryDesktopBkgnd(hwndDesktop:HWND;VAR pdsk:DESKTOP):BOOL;
2987 APIENTRY; 'PMWIN' index 936;
2988FUNCTION WinRealizePalette(ahwnd:HWND;ahps:HPS;VAR pcclr:ULONG):LONG;
2989 APIENTRY; 'PMWIN' index 941;
2990FUNCTION WinCreateMenu(hwndParent:HWND;VAR lpmt):HWND;
2991 APIENTRY; 'PMWIN' index 907;
2992FUNCTION WinPopupMenu(hwndParent,hwndOwner,hwndMenu:HWND;x,y,idItem:LONG;
2993 fs:ULONG):BOOL;
2994 APIENTRY; 'PMWIN' index 937;
2995FUNCTION WinCreateStdWindow(hwndParent:HWND;flStyle:ULONG;
2996 VAR pflCreateFlags:ULONG;
2997 pszClientClass:CSTRING;pszTitle:CSTRING;
2998 styleClient:ULONG;hmod:HMODULE;
2999 idResources:ULONG;VAR phwndClient:HWND):HWND;
3000 APIENTRY; 'PMWIN' index 908;
3001FUNCTION WinCreateWCStdWindow( hwndParent:HWND;flStyle:ULONG;
3002 VAR pflCreateFlags:ULONG;
3003 pszClientClass:ULONG;pszTitle:CSTRING;
3004 styleClient:ULONG;hmod:HMODULE;
3005 idResources:ULONG;VAR phwndClient:HWND):HWND;
3006 APIENTRY; 'PMWIN' index 908;
3007FUNCTION WinFlashWindow(hwndFrame:HWND;fFlash:BOOL):BOOL;
3008 APIENTRY; 'PMWIN' index 745;
3009FUNCTION WinCreateFrameControls(hwndFrame:HWND;VAR pfcdata:FRAMECDATA;
3010 pszTitle:CSTRING):BOOL;
3011 APIENTRY; 'PMWIN' index 906;
3012FUNCTION WinCalcFrameRect(hwndFrame:HWND;VAR prcl:RECTL;fClient:BOOL):BOOL;
3013 APIENTRY; 'PMWIN' index 704;
3014FUNCTION WinGetMinPosition(ahwnd:HWND;VAR pswp:SWP;VAR pptl:POINTL):BOOL;
3015 APIENTRY; 'PMWIN' index 755;
3016FUNCTION WinGetMaxPosition(ahwnd:HWND;VAR pswp:SWP):BOOL;
3017 APIENTRY; 'PMWIN' index 754;
3018FUNCTION WinSaveWindowPos(hsvwp:HSAVEWP;VAR pswp:SWP;cswp:ULONG):BOOL;
3019 APIENTRY; 'PMWIN' index 943;
3020FUNCTION WinCopyRect(ahab:HAB;VAR prclDst,prclSrc:RECTL):BOOL;
3021 APIENTRY; 'PMWIN' index 710;
3022FUNCTION WinSetRect(ahab:HAB;VAR prcl:RECTL;xLeft,yBottom,xRight,
3023 yTop:LONG):BOOL;
3024 APIENTRY; 'PMWIN' index 868;
3025FUNCTION WinIsRectEmpty(ahab:HAB;CONST prcl:RECTL):BOOL;
3026 APIENTRY; 'PMWIN' index 770;
3027FUNCTION WinEqualRect(ahab:HAB;CONST prcl1,prcl2:RECTL):BOOL;
3028 APIENTRY; 'PMWIN' index 741;
3029FUNCTION WinSetRectEmpty(ahab:HAB;VAR prcl:RECTL):BOOL;
3030 APIENTRY; 'PMWIN' index 869;
3031FUNCTION WinOffsetRect(ahab:HAB;VAR prcl:RECTL;cx,cy:LONG):BOOL;
3032 APIENTRY; 'PMWIN' index 792;
3033FUNCTION WinInflateRect(ahab:HAB;VAR prcl:RECTL;cx,cy:LONG):BOOL;
3034 APIENTRY; 'PMWIN' index 762;
3035FUNCTION WinPtInRect(ahab:HAB;CONST prcl:RECTL;CONST pptl:POINTL):BOOL;
3036 APIENTRY; 'PMWIN' index 797;
3037FUNCTION WinIntersectRect(ahab:HAB;VAR prclDst:RECTL;CONST prclSrc1,prclSrc2:RECTL):BOOL;
3038 APIENTRY; 'PMWIN' index 764;
3039FUNCTION WinUnionRect(ahab:HAB;VAR prclDst:RECTL;CONST prclSrc1,prclSrc2:RECTL):BOOL;
3040 APIENTRY; 'PMWIN' index 891;
3041FUNCTION WinSubtractRect(ahab:HAB;VAR prclDst:RECTL;CONST prclSrc1,prclSrc2:RECTL):BOOL;
3042 APIENTRY; 'PMWIN' index 887;
3043FUNCTION WinMakeRect(ahab:HAB;VAR pwrc:WRECT):BOOL;
3044 APIENTRY; 'PMWIN' index 786;
3045FUNCTION WinMakePoints(ahab:HAB;VAR pwpt:WPOINT;cwpt:ULONG):BOOL;
3046 APIENTRY; 'PMWIN' index 785;
3047FUNCTION WinQuerySysValue(hwndDesktop:HWND;iSysValue:LONG):LONG;
3048 APIENTRY; 'PMWIN' index 829;
3049FUNCTION WinSetSysValue(hwndDesktop:HWND;iSysValue,lValue:LONG):BOOL;
3050 APIENTRY; 'PMWIN' index 873;
3051FUNCTION WinSetPresParam(ahwnd:HWND;id,cbParam:ULONG;VAR pbParam):BOOL;
3052 APIENTRY; 'PMWIN' index 938;
3053FUNCTION WinQueryPresParam(ahwnd:HWND;id1,id2:ULONG;VAR pulId:ULONG;
3054 cbBuf:ULONG;VAR pbBuf;fs:ULONG):ULONG;
3055 APIENTRY; 'PMWIN' index 939;
3056FUNCTION WinRemovePresParam(ahwnd:HWND;id:ULONG):BOOL;
3057 APIENTRY; 'PMWIN' index 940;
3058FUNCTION WinQuerySysColor(hwndDesktop:HWND;clr,lReserved:LONG):LONG;
3059 APIENTRY; 'PMWIN' index 826;
3060FUNCTION WinSetSysColors(hwndDesktop:HWND;flOptions,flFormat:ULONG;
3061 clrFirst:LONG;cclr:ULONG;VAR alTable):BOOL;
3062 APIENTRY; 'PMWIN' index 871;
3063FUNCTION WinStartTimer(ahab:HAB;ahwnd:HWND;idTimer,dtTimeout:ULONG):ULONG;
3064 APIENTRY; 'PMWIN' index 884;
3065FUNCTION WinStopTimer(ahab:HAB;ahwnd:HWND;idTimer:ULONG):BOOL;
3066 APIENTRY; 'PMWIN' index 885;
3067FUNCTION WinGetCurrentTime(ahab:HAB):ULONG;
3068 APIENTRY; 'PMWIN' index 750;
3069FUNCTION WinLoadAccelTable(ahab:HAB;hmod:HMODULE;idAccelTable:ULONG):HACCEL;
3070 APIENTRY; 'PMWIN' index 776;
3071FUNCTION WinCopyAccelTable(ahaccel:HACCEL;VAR pAccelTable:ACCELTABLE;
3072 cbCopyMax:ULONG):ULONG;
3073 APIENTRY; 'PMWIN' index 709;
3074FUNCTION WinCreateAccelTable(ahab:HAB;VAR pAccelTable:ACCELTABLE):HACCEL;
3075 APIENTRY; 'PMWIN' index 713;
3076FUNCTION WinDestroyAccelTable(ahaccel:HACCEL):BOOL;
3077 APIENTRY; 'PMWIN' index 723;
3078FUNCTION WinTranslateAccel(ahab:HAB;ahwnd:HWND;ahaccel:HACCEL;
3079 VAR pqmsg:QMSG):BOOL;
3080 APIENTRY; 'PMWIN' index 904;
3081FUNCTION WinSetAccelTable(ahab:HAB;ahaccel:HACCEL;hwndFrame:HWND):BOOL;
3082 APIENTRY; 'PMWIN' index 850;
3083FUNCTION WinQueryAccelTable(ahab:HAB;hwndFrame:HWND):HACCEL;
3084 APIENTRY; 'PMWIN' index 798;
3085FUNCTION WinTrackRect(ahwnd:HWND;ahps:HPS;VAR pti:TRACKINFO):BOOL;
3086 APIENTRY; 'PMWIN' index 890;
3087FUNCTION WinShowTrackRect(ahwnd:HWND;fShow:BOOL):BOOL;
3088 APIENTRY; 'PMWIN' index 882;
3089FUNCTION WinSetClipbrdOwner(ahab:HAB;ahwnd:HWND):BOOL;
3090 APIENTRY; 'PMWIN' index 855;
3091FUNCTION WinSetClipbrdData(ahab:HAB;ulData,fmt,rgfFmtInfo:ULONG):BOOL;
3092 APIENTRY; 'PMWIN' index 854;
3093FUNCTION WinQueryClipbrdData(ahab:HAB;fmt:ULONG):ULONG;
3094 APIENTRY; 'PMWIN' index 806;
3095FUNCTION WinQueryClipbrdFmtInfo(ahab:HAB;fmt:ULONG;
3096 VAR prgfFmtInfo:ULONG):BOOL;
3097 APIENTRY; 'PMWIN' index 807;
3098FUNCTION WinSetClipbrdViewer(ahab:HAB;hwndNewClipViewer:HWND):BOOL;
3099 APIENTRY; 'PMWIN' index 856;
3100FUNCTION WinEnumClipbrdFmts(ahab:HAB;fmt:ULONG):ULONG;
3101 APIENTRY; 'PMWIN' index 739;
3102FUNCTION WinEmptyClipbrd(ahab:HAB):BOOL;
3103 APIENTRY; 'PMWIN' index 733;
3104FUNCTION WinOpenClipbrd(ahab:HAB):BOOL;
3105 APIENTRY; 'PMWIN' index 793;
3106FUNCTION WinCloseClipbrd(ahab:HAB):BOOL;
3107 APIENTRY; 'PMWIN' index 707;
3108FUNCTION WinQueryClipbrdOwner(ahab:HAB):HWND;
3109 APIENTRY; 'PMWIN' index 808;
3110FUNCTION WinQueryClipbrdViewer(ahab:HAB):HWND;
3111 APIENTRY; 'PMWIN' index 809;
3112FUNCTION WinDestroyCursor(ahwnd:HWND):BOOL;
3113 APIENTRY; 'PMWIN' index 725;
3114FUNCTION WinShowCursor(ahwnd:HWND;fShow:BOOL):BOOL;
3115 APIENTRY; 'PMWIN' index 880;
3116FUNCTION WinCreateCursor(ahwnd:HWND;x,y,cx,cy:LONG;fs:ULONG;
3117 VAR prclClip):BOOL;
3118 APIENTRY; 'PMWIN' index 715;
3119FUNCTION WinQueryCursorInfo(hwndDesktop:HWND;
3120 VAR pCursorInfo:CURSORINFO):BOOL;
3121 APIENTRY; 'PMWIN' index 812;
3122FUNCTION WinSetPointer(hwndDesktop:HWND;hptrNew:HPOINTER):BOOL;
3123 APIENTRY; 'PMWIN' index 866;
3124FUNCTION WinSetPointerOwner(hptr:HPOINTER;apid:PID;fDestroy:BOOL):BOOL;
3125 APIENTRY; 'PMWIN' index 971;
3126FUNCTION WinShowPointer(hwndDesktop:HWND;fShow:BOOL):BOOL;
3127 APIENTRY; 'PMWIN' index 881;
3128FUNCTION WinLockPointerUpdate(hwndDesktop:HWND;hptrNew:HPOINTER;
3129 ulTimeInterval:ULONG):BOOL;
3130 APIENTRY; 'PMWIN' index 639;
3131FUNCTION WinQuerySysPointer(hwndDesktop:HWND;iptr:LONG;fLoad:BOOL):HPOINTER;
3132 APIENTRY; 'PMWIN' index 828;
3133{FUNCTION WinQuerySysPointerData(hwndDesktop:HWND;iptr:ULONG;
3134 VAR pIconInfo:ICONINFO):BOOL;
3135 APIENTRY; 'PMWIN' index ???}
3136{FUNCTION WinSetSysPointerData(hwndDesktop:HWND;iptr:ULONG;
3137 VAR pIconInfo:ICONINFO):BOOL;
3138 APIENTRY; 'PMWIN' index ???}
3139FUNCTION WinLoadPointer(hwndDesktop:HWND;hmod:HMODULE;idres:ULONG):HPOINTER;
3140 APIENTRY; 'PMWIN' index 780;
3141FUNCTION WinCreatePointer(hwndDesktop:HWND;hbmPointer:HBITMAP;
3142 fPointer:BOOL;xHotspot,yHotspot:LONG):HPOINTER;
3143 APIENTRY; 'PMWIN' index 717;
3144FUNCTION WinSetPointerPos(hwndDesktop:HWND;x,y:LONG):BOOL;
3145 APIENTRY; 'PMWIN' index 867;
3146FUNCTION WinDestroyPointer(hptr:HPOINTER):BOOL;
3147 APIENTRY; 'PMWIN' index 727;
3148FUNCTION WinQueryPointer(hwndDesktop:HWND):HPOINTER;
3149 APIENTRY; 'PMWIN' index 821;
3150FUNCTION WinQueryPointerPos(hwndDesktop:HWND;VAR pptl:POINTL):BOOL;
3151 APIENTRY; 'PMWIN' index 823;
3152FUNCTION WinCreatePointerIndirect(hwndDesktop:HWND;
3153 VAR pptri:POINTERINFO):HPOINTER;
3154 APIENTRY; 'PMWIN' index 942;
3155FUNCTION WinQueryPointerInfo(hptr:HPOINTER;
3156 VAR pPointerInfo:POINTERINFO):BOOL;
3157 APIENTRY; 'PMWIN' index 822;
3158FUNCTION WinDrawPointer(ahps:HPS;x,y:LONG;hptr:HPOINTER;fs:ULONG):BOOL;
3159 APIENTRY; 'PMWIN' index 732;
3160FUNCTION WinGetSysBitmap(hwndDesktop:HWND;ibm:ULONG):HBITMAP;
3161 APIENTRY; 'PMWIN' index 760;
3162FUNCTION WinSetHook(ahab:HAB;ahmq:HMQ;iHook:LONG;pfnHook:POINTER;
3163 hmod:HMODULE):BOOL;
3164 APIENTRY; 'PMWIN' index 928;
3165FUNCTION WinReleaseHook(ahab:HAB;ahmq:HMQ;iHook:LONG;pfnHook:POINTER;
3166 hmod:HMODULE):BOOL;
3167 APIENTRY; 'PMWIN' index 927;
3168FUNCTION WinCallMsgFilter(ahab:HAB;VAR pqmsg:QMSG;msgf:ULONG):BOOL;
3169 APIENTRY; 'PMWIN' index 905;
3170FUNCTION WinSetClassThunkProc(VAR pszClassname:CSTRING;pfnThunkProc:POINTER):BOOL;
3171 APIENTRY; 'PMWIN' index 930;
3172FUNCTION WinQueryClassThunkProc(pszClassname:CSTRING):POINTER;
3173 APIENTRY; 'PMWIN' index 931;
3174FUNCTION WinSetWindowThunkProc(ahwnd:HWND;pfnThunkProc:POINTER):BOOL;
3175 APIENTRY; 'PMWIN' index 932;
3176FUNCTION WinQueryWindowThunkProc(ahwnd:HWND):POINTER;
3177 APIENTRY; 'PMWIN' index 933;
3178FUNCTION WinQueryWindowModel(ahwnd:HWND):LONG;
3179 APIENTRY; 'PMWIN' index 934;
3180FUNCTION WinQueryCp(ahmq:HMQ):ULONG;
3181 APIENTRY; 'PMWIN' index 810;
3182FUNCTION WinSetCp(ahmq:HMQ;idCodePage:ULONG):BOOL;
3183 APIENTRY; 'PMWIN' index 857;
3184FUNCTION WinQueryCpList(ahab:HAB;ccpMax:ULONG;VAR prgcp):ULONG;
3185 APIENTRY; 'PMWIN' index 811;
3186FUNCTION WinCpTranslateString(ahab:HAB;cpSrc:ULONG;pszSrc:CSTRING;
3187 cpDst,cchDestMax:ULONG;
3188 VAR pchDest:CSTRING):BOOL;
3189 APIENTRY; 'PMWIN' index 712;
3190FUNCTION WinCpTranslateChar(ahab:HAB;cpSrc:ULONG;chSrc:UCHAR;
3191 cpDst:ULONG):UCHAR;
3192 APIENTRY; 'PMWIN' index 711;
3193FUNCTION WinUpper(ahab:HAB;idcp,idcc:ULONG;VAR apsz:CSTRING):ULONG;
3194 APIENTRY; 'PMWIN' index 893;
3195FUNCTION WinUpperChar(ahab:HAB;idcp,idcc,c:ULONG):ULONG;
3196 APIENTRY; 'PMWIN' index 894;
3197FUNCTION WinNextChar(ahab:HAB;idcp,idcc:ULONG;VAR apsz:CSTRING):PChar;
3198 APIENTRY; 'PMWIN' index 791;
3199FUNCTION WinPrevChar(ahab:HAB;idcp,idcc:ULONG;pszStart,apsz:CSTRING):PChar;
3200 APIENTRY; 'PMWIN' index 795;
3201FUNCTION WinCompareStrings(ahab:HAB;idcp,idcc:ULONG;psz1,psz2:CSTRING;
3202 reserved:ULONG):ULONG;
3203 APIENTRY; 'PMWIN' index 708;
3204FUNCTION WinQuerySystemAtomTable:HATOMTBL;
3205 APIENTRY; 'PMWIN' index 830;
3206FUNCTION WinCreateAtomTable(cbInitial,cBuckets:ULONG):HATOMTBL;
3207 APIENTRY; 'PMWIN' index 714;
3208FUNCTION WinDestroyAtomTable(ahAtomTbl:HATOMTBL):HATOMTBL;
3209 APIENTRY; 'PMWIN' index 724;
3210FUNCTION WinAddAtom(ahAtomTbl:HATOMTBL;pszAtomName:CSTRING):ATOM;
3211 APIENTRY; 'PMWIN' index 700;
3212FUNCTION WinFindAtom(ahAtomTbl:HATOMTBL;pszAtomName:CSTRING):ATOM;
3213 APIENTRY; 'PMWIN' index 744;
3214FUNCTION WinDeleteAtom(ahAtomTbl:HATOMTBL;aatom:ATOM):ATOM;
3215 APIENTRY; 'PMWIN' index 721;
3216FUNCTION WinQueryAtomUsage(ahAtomTbl:HATOMTBL;aatom:ATOM):ULONG;
3217 APIENTRY; 'PMWIN' index 803;
3218FUNCTION WinQueryAtomLength(ahAtomTbl:HATOMTBL;aatom:ATOM):ULONG;
3219 APIENTRY; 'PMWIN' index 801;
3220FUNCTION WinQueryAtomName(ahAtomTbl:HATOMTBL;aatom:ATOM;VAR pszBuffer:CSTRING;
3221 cchBufferMax:ULONG):ULONG;
3222 APIENTRY; 'PMWIN' index 802;
3223FUNCTION WinGetLastError(ahab:HAB):ERRORID;
3224 APIENTRY; 'PMWIN' index 753;
3225FUNCTION WinGetErrorInfo(ahab:HAB):PERRINFO;
3226 APIENTRY; 'PMWIN' index 751;
3227FUNCTION WinFreeErrorInfo(VAR perrinfo:ERRINFO):BOOL;
3228 APIENTRY; 'PMWIN' index 748;
3229FUNCTION WinLockInput(ahmq:HMQ;fLock:BOOL):BOOL;
3230 APIENTRY; 'PMWIN' index 995;
3231FUNCTION WinQuerySendMsg(ahab:HAB;Sender:HMQ;Receiver:HMQ;VAR pqmsg:QMSG;
3232 ahmq:HMQ):HMQ;
3233 APIENTRY; 'PMWIN' index 990;
3234FUNCTION WinQueueFromId(ahab:HAB;idPid:PID;idTid:TID):HMQ;
3235 APIENTRY; 'PMWIN' index 993;
3236FUNCTION WinReplyMsg(ahab:HAB;hmqSender,hmqReceiver:HMQ;mresReply:MRESULT):BOOL;
3237 APIENTRY; 'PMWIN' index 991;
3238FUNCTION WinThreadAssocQueue(ahab:HAB;ahmq:HMQ):BOOL;
3239 APIENTRY; 'PMWIN' index 994;
3240FUNCTION WinWakeThread(ahmq:HMQ):BOOL;
3241 APIENTRY; 'PMWIN' index 992;
3242
3243END; {IMPORTS}
3244
3245FUNCTION MPFROMP(p:POINTER):MPARAM;
3246FUNCTION MPFROMHWND(ahwnd:HWND):MPARAM;
3247FUNCTION MPFROMCHAR(ch:USHORT):MPARAM;
3248FUNCTION MPFROM2CH(s:USHORT;uch1,uch2:BYTE):MPARAM;
3249FUNCTION MPFROMLONG(l:ULONG):MPARAM;
3250FUNCTION SHORT1FROMMP(p:MPARAM):WORD;
3251FUNCTION SHORT2FROMMP(p:MPARAM):WORD;
3252FUNCTION MPFrom2Short(s1,s2:WORD):MPARAM;
3253FUNCTION MPFromShort(s:Word):MPARAM;
3254
3255FUNCTION PVOIDFROMMP(mp:MPARAM):POINTER;
3256FUNCTION HWNDFROMMP(mp:MPARAM):HWND;
3257FUNCTION CHAR1FROMMP(mp:MPARAM):BYTE;
3258FUNCTION CHAR2FROMMP(mp:MPARAM):BYTE;
3259FUNCTION CHAR3FROMMP(mp:MPARAM):BYTE;
3260FUNCTION CHAR4FROMMP(mp:MPARAM):BYTE;
3261FUNCTION LONGFROMMP(mp:MPARAM):ULONG;
3262
3263FUNCTION MRFROMP(p:MPARAM):ULONG;
3264FUNCTION MRFROMSHORT(s:USHORT):ULONG;
3265FUNCTION MRFROM2SHORT(s1,s2:USHORT):ULONG;
3266FUNCTION MRFROMLONG(l:ULONG):ULONG;
3267
3268FUNCTION PVOIDFROMMR(mr:MRESULT):POINTER;
3269FUNCTION SHORT1FROMMR(mr:MRESULT):USHORT;
3270FUNCTION SHORT2FROMMR(mr:MRESULT):USHORT;
3271FUNCTION LONGFROMMR(mr:MRESULT):ULONG;
3272
3273FUNCTION WinCheckButton(hwndDlg:HWND;id,uscheckState:USHORT):ULONG;
3274FUNCTION WinQueryButtonCheckState(hwndDlg:HWND;id:USHORT):ULONG;
3275FUNCTION WinEnableControl(hwndDlg:HWND;id:USHORT;fEnable:BOOL):BOOL;
3276FUNCTION WinIsControlEnabled(hwndDlg:HWND;id:USHORT):BOOL;
3277
3278FUNCTION WinDeleteLBoxItem(hwndLBox:HWND;index:LONG):LONG;
3279FUNCTION WinInsertLBoxItem(hwndLBox:HWND;index:LONG;apsz:CSTRING):LONG;
3280FUNCTION WinQueryLBoxCount(hwndLBox:HWND):LONG;
3281FUNCTION WinQueryLBoxItemText(hwndLBox:HWND;index:LONG;VAR apsz:CSTRING;
3282 cchMax:SHORT):LONG;
3283FUNCTION WinQueryLboxItemTextLength(hwndLbox:HWND;index:LONG):LONG;
3284
3285FUNCTION WinSetLboxItemText(hwndLbox:HWND;index:LONG;apsz:CSTRING):BOOL;
3286FUNCTION WinQueryLboxSelectedItem(hwndLbox:HWND):LONG;
3287
3288FUNCTION WinCheckMenuItem(hwndMenu:HWND;id:ULONG;fcheck:BOOL):BOOL;
3289FUNCTION WinIsMenuItemChecked(hwndMenu:HWND;id:ULONG):BOOL;
3290FUNCTION WinEnableMenuItem(hwndMenu:HWND;id:ULONG;fenable:BOOL):BOOL;
3291FUNCTION WinIsMenuItemEnabled(hwndMenu:HWND;id:ULONG):BOOL;
3292FUNCTION WinSetMenuItemText(hwndMenu:HWND;id:ULONG;apsz:CSTRING):BOOL;
3293FUNCTION WinIsMenuItemValid(hwndMenu:HWND;id:ULONG):BOOL;
3294
3295FUNCTION DDES_PSZITEMNAME(pddes:PDDESTRUCT):PChar;
3296FUNCTION DDES_PABDATA(pddes:PDDESTRUCT):PBYTE;
3297FUNCTION DDEI_PCONVCONTEXT(pddei:PDDEINIT):PCONVCONTEXT;
3298
3299
3300
3301IMPLEMENTATION
3302
3303
3304
3305{ Macros to make an MPARAM from standard type.}
3306
3307FUNCTION SHORT1FROMMP(p:MPARAM):WORD;ASSEMBLER;
3308 ASM
3309 MOV AX,p
3310 MOV Result,AX
3311 END;
3312
3313FUNCTION SHORT2FROMMP(p:MPARAM):WORD;ASSEMBLER;
3314 ASM
3315 MOV AX,p+2
3316 MOV Result,AX
3317 END;
3318
3319FUNCTION MPFrom2Short(s1,s2:WORD):MPARAM;ASSEMBLER;
3320 ASM
3321 MOV AX,s2
3322 PUSH AX
3323 MOV AX,s1
3324 PUSH AX
3325 POP EAX
3326 MOV Result,EAX
3327 END;
3328
3329FUNCTION MPFromShort(s:Word):MPARAM;ASSEMBLER;
3330 ASM
3331 MOV AX,s
3332 MOVZX EAX,AX
3333 MOV result,EAX
3334 END;
3335
3336FUNCTION MPFROMP(p:POINTER):MPARAM;
3337BEGIN
3338 MPFROMP:=MPARAM(p);
3339END;
3340
3341FUNCTION MPFROMHWND(ahwnd:HWND):MPARAM;
3342BEGIN
3343 MPFROMHWND:=ahwnd;
3344END;
3345
3346FUNCTION MPFROMCHAR(ch:USHORT):MPARAM;
3347BEGIN
3348 MPFROMCHAR:=ch;
3349END;
3350
3351
3352FUNCTION MPFROM2CH(s:USHORT;uch1,uch2:BYTE):MPARAM;
3353VAR w:USHORT;
3354BEGIN
3355 w:=MAKESHORT(uch1,uch2);
3356 MPFROM2CH:=MAKELONG(s,w);
3357END;
3358
3359
3360FUNCTION MPFROMLONG(l:ULONG):MPARAM;
3361BEGIN
3362 MPFROMLONG:=l;
3363END;
3364
3365
3366{ Macros to extract standard types from an MPARAM }
3367
3368
3369FUNCTION PVOIDFROMMP(mp:MPARAM):POINTER;
3370BEGIN
3371 PVOIDFROMMP:=POINTER(mp);
3372END;
3373
3374FUNCTION HWNDFROMMP(mp:MPARAM):HWND;
3375BEGIN
3376 HWNDFROMMP:=HWND(mp);
3377END;
3378
3379FUNCTION CHAR1FROMMP(mp:MPARAM):BYTE;
3380BEGIN
3381 CHAR1FROMMP:=ULONG(mp);
3382END;
3383
3384FUNCTION CHAR2FROMMP(mp:MPARAM):BYTE;
3385BEGIN
3386 CHAR2FROMMP:=ULONG(mp) SHR 8;
3387END;
3388
3389FUNCTION CHAR3FROMMP(mp:MPARAM):BYTE;
3390BEGIN
3391 CHAR3FROMMP:=ULONG(mp) SHR 16;
3392END;
3393
3394FUNCTION CHAR4FROMMP(mp:MPARAM):BYTE;
3395BEGIN
3396 CHAR4FROMMP:=ULONG(mp) SHR 24;
3397END;
3398
3399
3400FUNCTION LONGFROMMP(mp:MPARAM):ULONG;
3401BEGIN
3402 LONGFROMMP:=ULONG(mp);
3403END;
3404
3405
3406{ Macros to make an MRESULT from standard types. }
3407
3408FUNCTION MRFROMP(p:MPARAM):ULONG;
3409BEGIN
3410 MRFROMP:=ULONG(p);
3411END;
3412
3413FUNCTION MRFROMSHORT(s:USHORT):ULONG;
3414BEGIN
3415 MRFROMSHORT:=s;
3416END;
3417
3418FUNCTION MRFROM2SHORT(s1,s2:USHORT):ULONG;
3419BEGIN
3420 MRFROM2SHORT:=MAKELONG(s1,s2);
3421END;
3422
3423FUNCTION MRFROMLONG(l:ULONG):ULONG;
3424BEGIN
3425 MRFROMLONG:=l;
3426END;
3427
3428
3429{ Macros to extract standard types from an MRESULT }
3430
3431
3432FUNCTION PVOIDFROMMR(mr:MRESULT):POINTER;
3433BEGIN
3434 PVOIDFROMMR:=POINTER(mr);
3435END;
3436
3437FUNCTION SHORT1FROMMR(mr:MRESULT):USHORT;
3438BEGIN
3439 SHORT1FROMMR:=ULONG(mr);
3440END;
3441
3442FUNCTION SHORT2FROMMR(mr:MRESULT):USHORT;
3443BEGIN
3444 SHORT2FROMMR:=ULONG(mr) SHR 16;
3445END;
3446
3447FUNCTION LONGFROMMR(mr:MRESULT):ULONG;
3448BEGIN
3449 LONGFROMMR:=ULONG(mr);
3450END;
3451
3452{ Useful macros }
3453
3454
3455{ sets the check state of button #id.
3456 returns the previous check state.}
3457FUNCTION WinCheckButton(hwndDlg:HWND;id,usCheckState:USHORT):ULONG;
3458BEGIN
3459 WinCheckButton:=WinSendDlgItemMsg(hwndDlg,id,BM_SETCHECK,
3460 MPFROMSHORT(usCheckState),0);
3461END;
3462
3463
3464{ returns the check state of buttin #id. }
3465FUNCTION WinQueryButtonCheckState(hwndDlg:HWND;id:USHORT):ULONG;
3466BEGIN
3467 WinQueryButtonCheckState:=WinSendDlgItemMsg(hwndDlg,id,BM_QUERYCHECK,
3468 0,0);
3469END;
3470
3471{ sets the enable state of button #id.
3472 returns fSuccess. }
3473FUNCTION WinEnableControl(hwndDlg:HWND;id:USHORT;fEnable:BOOL):BOOL;
3474VAR Win:HWND;
3475BEGIN
3476 Win:=WinWindowFromID(hwndDlg,id);
3477 WinEnableControl:=WinEnableWindow(Win,fEnable);
3478END;
3479
3480{ returns the enable state of control #id. }
3481FUNCTION WinIsControlEnabled(hwndDlg:HWND;id:USHORT):BOOL;
3482BEGIN
3483 WinIsControlEnabled:=WinIsWindowEnabled(WinWindowFromID(hwndDlg,id));
3484END;
3485
3486
3487{ Dialog Manager COMMON subsection }
3488
3489
3490{ deletes item index from the listbox.
3491 returns the number of items left. }
3492FUNCTION WinDeleteLBoxItem(hwndLBox:HWND;index:LONG):LONG;
3493BEGIN
3494 WinDeleteLBoxItem:=WinSendMsg(hwndLBox,LM_DELETEITEM,MPFROMLONG(index),
3495 0);
3496END;
3497
3498{ inserts psz into a listbox at index. Index may be an LIT_ constant.
3499 returns the actual index where it was inserted. }
3500FUNCTION WinInsertLBoxItem(hwndLBox:HWND;index:LONG;apsz:CSTRING):LONG;
3501BEGIN
3502 WinInsertLBoxItem:=WinSendMsg(hwndLBox,LM_INSERTITEM,MPFROMLONG(index),
3503 ULONG(@apsz));
3504END;
3505
3506{ returns the number of items in the listbox. }
3507FUNCTION WinQueryLBoxCount(hwndLBox:HWND):LONG;
3508BEGIN
3509 WinQueryLBoxCount:=WinSendMsg(hwndLBox,LM_QUERYITEMCOUNT,0,0);
3510END;
3511
3512
3513FUNCTION WinQueryLBoxItemText(hwndLBox:HWND;index:LONG;VAR apsz:CSTRING;
3514 cchMax:SHORT):LONG;
3515BEGIN
3516 WinQueryLBoxItemText:=WinSendMsg(hwndLBox,LM_QUERYITEMTEXT,
3517 MPFROM2SHORT(index,cchMax),ULONG(@apsz));
3518END;
3519
3520{ returns the length of item index. }
3521FUNCTION WinQueryLboxItemTextLength(hwndLbox:HWND;index:LONG):LONG;
3522BEGIN
3523 WinQueryLBoxItemTextLength:=WinSendMsg(hwndLBox,LM_QUERYITEMTEXTLENGTH,
3524 MPFROMSHORT(index),0);
3525END;
3526
3527
3528{ sets the text of item index to psz.
3529 returns fSuccess. }
3530FUNCTION WinSetLboxItemText(hwndLbox:HWND;index:LONG;apsz:CSTRING):BOOL;
3531BEGIN
3532 WinSetLBoxItemText:=BOOL(WinSendMsg(hwndLBox,LM_SETITEMTEXT,
3533 MPFROMLONG(index),ULONG(@apsz)));
3534END;
3535
3536{ returns the item index selected. (for single selection only) }
3537FUNCTION WinQueryLboxSelectedItem(hwndLbox:HWND):LONG;
3538BEGIN
3539 WinQueryLBoxSelectedItem:=WinSendMsg(hwndLBox,LM_QUERYSELECTION,
3540 MPFROMLONG(LIT_FIRST),0);
3541END;
3542
3543{ Useful macros }
3544
3545
3546{ Sets the check state of menuitem #id to fcheck.
3547 returns fSuccess. }
3548FUNCTION WinCheckMenuItem(hwndMenu:HWND;id:ULONG;fcheck:BOOL):BOOL;
3549VAR w:USHORT;
3550BEGIN
3551 IF fCheck THEN w:=MIA_CHECKED
3552 ELSE w:=0;
3553 WinCheckMenuItem:=BOOL(WinSendMsg(hwndMenu,MM_SETITEMATTR,
3554 MPFROM2SHORT(id,1),MPFROM2SHORT(MIA_CHECKED,w)));
3555END;
3556
3557FUNCTION WinIsMenuItemChecked(hwndMenu:HWND;id:ULONG):BOOL;
3558BEGIN
3559 WinIsMenuItemChecked:=BOOL(WinSendMsg(hwndMenu,MM_QUERYITEMATTR,
3560 MPFROM2SHORT(id,1),MPFROMLONG(MIA_CHECKED)));
3561END;
3562
3563{ sets the enable state of menuitem #id to fenable.
3564 returns fSuccess. }
3565FUNCTION WinEnableMenuItem(hwndMenu:HWND;id:ULONG;fenable:BOOL):BOOL;
3566VAR w:USHORT;
3567BEGIN
3568 IF fEnable THEN w:=0
3569 ELSE w:=MIA_DISABLED;
3570 WinEnableMenuItem:=BOOL(WinSendMsg(hwndMenu,MM_SETITEMATTR,
3571 MPFROM2SHORT(id,1),MPFROM2SHORT(MIA_DISABLED,w)));
3572END;
3573
3574{ returns the enable state of menuitem #id. }
3575FUNCTION WinIsMenuItemEnabled(hwndMenu:HWND;id:ULONG):BOOL;
3576VAR l:ULONG;
3577BEGIN
3578 l:=WinSendMsg(hwndMenu,MM_QUERYITEMATTR,MPFROM2SHORT(id,1),
3579 MPFROMLONG(MIA_DISABLED));
3580 IF l<>0 THEN WinIsMenuItemEnabled:=FALSE
3581 ELSE WinIsMenuItemEnabled:=TRUE;
3582END;
3583
3584
3585{ sets the text of menuitem #id.
3586 returns fSuccess. }
3587FUNCTION WinSetMenuItemText(hwndMenu:HWND;id:ULONG;apsz:CSTRING):BOOL;
3588BEGIN
3589 WinSetMenuItemText:=BOOLEAN(WinSendMsg(hwndMenu,MM_SETITEMTEXT,
3590 MPFROMLONG(id),ULONG(@apsz)));
3591END;
3592
3593{ Returns TRUE if the specified item is a valid choice. }
3594FUNCTION WinIsMenuItemValid(hwndMenu:HWND;id:ULONG):BOOL;
3595BEGIN
3596 WinIsMenuItemValid:=BOOLEAN(WinSendMsg(hwndMenu,MM_ISITEMVALID,
3597 MPFROM2SHORT(id,1),MPFROMLONG(0)));
3598END;
3599
3600
3601{ DDE helper macros }
3602
3603
3604FUNCTION DDES_PSZITEMNAME(pddes:PDDESTRUCT):PChar;
3605BEGIN
3606 inc(pddes,pddes^.offszItemName);
3607 DDES_PSZITEMNAME:=POINTER(pddes);
3608END;
3609
3610
3611FUNCTION DDES_PABDATA(pddes:PDDESTRUCT):PBYTE;
3612BEGIN
3613 inc(pddes,pddes^.offabData);
3614 DDES_PABDATA:=POINTER(pddes);
3615END;
3616
3617FUNCTION DDEI_PCONVCONTEXT(pddei:PDDEINIT):PCONVCONTEXT;
3618BEGIN
3619 inc(pddei,pddei^.offConvContext);
3620 DDEI_PCONVCONTEXT:=POINTER(pddei);
3621END;
3622
3623BEGIN
3624END.
3625
Note: See TracBrowser for help on using the repository browser.