1 {****************************************************************************
2 
3 
4                           PMSTDDLG interface unit
5                      FPC Pascal Runtime Library for OS/2
6                    Copyright (c) 1999-2000 by Florian Klaempfl
7                     Copyright (c) 2002 by Yuri Prokushev
8 
9     See the file COPYING.FPC, included in this distribution,
10     for details about the copyright.
11 
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 
16  ****************************************************************************}
17 
18 {Warning: This code is alfa. Future versions of this unit will propably
19  not be compatible.}
20 
21 unit PMStdDlg;
22 
23   interface
24 
25     uses
26        os2def,doscalls,pmwin,pmgpi;
27 
28     const
29        FDS_CENTER = $00000001;
30        FDS_CUSTOM = $00000002;
31        FDS_FILTERUNION = $00000004;
32        FDS_HELPBUTTON = $00000008;
33        FDS_APPLYBUTTON = $00000010;
34        FDS_PRELOAD_VOLINFO = $00000020;
35        FDS_MODELESS = $00000040;
36        FDS_INCLUDE_EAS = $00000080;
37        FDS_OPEN_DIALOG = $00000100;
38        FDS_SAVEAS_DIALOG = $00000200;
39        FDS_MULTIPLESEL = $00000400;
40        FDS_ENABLEFILELB = $00000800;
41        FDS_EFSELECTION = 0;
42        FDS_LBSELECTION = 1;
43        FDS_SUCCESSFUL = 0;
44        FDS_ERR_DEALLOCATE_MEMORY = 1;
45        FDS_ERR_FILTER_TRUNC = 2;
46        FDS_ERR_INVALID_DIALOG = 3;
47        FDS_ERR_INVALID_DRIVE = 4;
48        FDS_ERR_INVALID_FILTER = 5;
49        FDS_ERR_INVALID_PATHFILE = 6;
50        FDS_ERR_OUT_OF_MEMORY = 7;
51        FDS_ERR_PATH_TOO_LONG = 8;
52        FDS_ERR_TOO_MANY_FILE_TYPES = 9;
53        FDS_ERR_INVALID_VERSION = 10;
54        FDS_ERR_INVALID_CUSTOM_HANDLE = 11;
55        FDS_ERR_DIALOG_LOAD_ERROR = 12;
56        FDS_ERR_DRIVE_ERROR = 13;
57        FDM_FILTER = WM_USER+40;
58        FDM_VALIDATE = WM_USER+41;
59        FDM_ERROR = WM_USER+42;
60 
61     type
62        APSZ = array [0..0] of PChar;
63 
64        PAPSZ = ^APSZ;
65 
66        FileDlg = record
67           cbSize : cardinal;
68           fl : cardinal;
69           ulUser : cardinal;
70           lReturn : longint;
71           lSRC : longint;
72           pszTitle : PChar;
73           pszOKButton : PChar;
74           pfnDlgProc : Pointer;
75           pszIType : PChar;
76           papszITypeList : PAPSZ;
77           pszIDrive : PChar;
78           papszIDriveList : PAPSZ;
79           hMod : cardinal;
80           szFullFile : array [0..MaxPathLength-1] of char;
81           papszFQFilename : PAPSZ;
82           ulFQFCount : cardinal;
83           usDlgId : word;
84           x : integer;
85           y : integer;
86           sEAType : integer;
87        end;
88 
89        PFileDlg = ^FileDlg;
90 
91 
WinFileDlgnull92     function WinFileDlg (hwndP: HWnd; hwndO: HWnd; pfild: PFileDlg) : HWnd; cdecl;
93 
WinDefFileDlgProcnull94     function WinDefFileDlgProc (hwnd : HWnd;msg : cardinal;mp1 : MPARAM;mp2 : MPARAM) : MRESULT; cdecl;
95 
WinFreeFileDlgListnull96     function WinFreeFileDlgList(papszFQFilename : PAPSZ) : Longbool; cdecl;
97 
98     const
99        DID_FILE_DIALOG = 256;
100        DID_FILENAME_TXT = 257;
101        DID_FILENAME_ED = 258;
102        DID_DRIVE_TXT = 259;
103        DID_DRIVE_CB = 260;
104        DID_FILTER_TXT = 261;
105        DID_FILTER_CB = 262;
106        DID_DIRECTORY_TXT = 263;
107        DID_DIRECTORY_LB = 264;
108        DID_FILES_TXT = 265;
109        DID_FILES_LB = 266;
110        DID_HELP_PB = 267;
111        DID_APPLY_PB = 268;
112        DID_OK_PB = DID_OK;
113        DID_CANCEL_PB = DID_CANCEL;
114        IDS_FILE_ALL_FILES_SELECTOR = 1000;
115        IDS_FILE_BACK_CUR_PATH = 1001;
116        IDS_FILE_BACK_PREV_PATH = 1002;
117        IDS_FILE_BACK_SLASH = 1003;
118        IDS_FILE_BASE_FILTER = 1004;
119        IDS_FILE_BLANK = 1005;
120        IDS_FILE_COLON = 1006;
121        IDS_FILE_DOT = 1007;
122        IDS_FILE_DRIVE_LETTERS = 1008;
123        IDS_FILE_FWD_CUR_PATH = 1009;
124        IDS_FILE_FWD_PREV_PATH = 1010;
125        IDS_FILE_FORWARD_SLASH = 1011;
126        IDS_FILE_PARENT_DIR = 1012;
127        IDS_FILE_Q_MARK = 1013;
128        IDS_FILE_SPLAT = 1014;
129        IDS_FILE_SPLAT_DOT = 1015;
130        IDS_FILE_SAVEAS_TITLE = 1016;
131        IDS_FILE_SAVEAS_FILTER_TXT = 1017;
132        IDS_FILE_SAVEAS_FILENM_TXT = 1018;
133        IDS_FILE_DUMMY_FILE_NAME = 1019;
134        IDS_FILE_DUMMY_FILE_EXT = 1020;
135        IDS_FILE_DUMMY_DRIVE = 1021;
136        IDS_FILE_DUMMY_ROOT_DIR = 1022;
137        IDS_FILE_PATH_PTR = 1023;
138        IDS_FILE_VOLUME_PREFIX = 1024;
139        IDS_FILE_VOLUME_SUFFIX = 1025;
140        IDS_FILE_PATH_PTR2 = 1026;
141        IDS_FILE_INVALID_CHARS = 1027;
142        IDS_FILE_BAD_DRIVE_NAME = 1100;
143        IDS_FILE_BAD_DRIVE_OR_PATH_NAME = 1101;
144        IDS_FILE_BAD_FILE_NAME = 1102;
145        IDS_FILE_BAD_FQF = 1103;
146        IDS_FILE_BAD_NETWORK_NAME = 1104;
147        IDS_FILE_BAD_SUB_DIR_NAME = 1105;
148        IDS_FILE_DRIVE_NOT_AVAILABLE = 1106;
149        IDS_FILE_FQFNAME_TOO_LONG = 1107;
150        IDS_FILE_OPEN_DIALOG_NOTE = 1108;
151        IDS_FILE_PATH_TOO_LONG = 1109;
152        IDS_FILE_SAVEAS_DIALOG_NOTE = 1110;
153        IDS_FILE_DRIVE_DISK_CHANGE = 1120;
154        IDS_FILE_DRIVE_NOT_READY = 1122;
155        IDS_FILE_DRIVE_LOCKED = 1123;
156        IDS_FILE_DRIVE_NO_SECTOR = 1124;
157        IDS_FILE_DRIVE_SOME_ERROR = 1125;
158        IDS_FILE_DRIVE_INVALID = 1126;
159        IDS_FILE_INSERT_DISK_NOTE = 1127;
160        IDS_FILE_OK_WHEN_READY = 1128;
161 
162     type
163        FontDlg = record
164           cbSize : cardinal;
165           hpsScreen : HPS;
166           hpsPrinter : HPS;
167           pszTitle : PChar;
168           pszPreview : PChar;
169           pszPtSizeList : PChar;
170           pfnDlgProc : Pointer;
171           pszFamilyname : PChar;
172           fxPointSize : longint;
173           fl : cardinal;
174           flFlags : cardinal;
175           flType : cardinal;
176           flTypeMask : cardinal;
177           flStyle : cardinal;
178           flStyleMask : cardinal;
179           clrFore : longint;
180           clrBack : longint;
181           ulUser : cardinal;
182           lReturn : longint;
183           lSRC : longint;
184           lEmHeight : longint;
185           lXHeight : longint;
186           lExternalLeading : longint;
187           hMod : cardinal;
188           _fAttrs : FATTRS;
189           sNominalPointSize : integer;
190           usWeight : word;
191           usWidth : word;
192           x : integer;
193           y : integer;
194           usDlgId : word;
195           usFamilyBufLen : word;
196           usReserved : word;
197        end;
198 
199        PFontDlg = ^FontDlg;
200 
201     const
202        FNTS_CENTER = $00000001;
203        FNTS_CUSTOM = $00000002;
204        FNTS_OWNERDRAWPREVIEW = $00000004;
205        FNTS_HELPBUTTON = $00000008;
206        FNTS_APPLYBUTTON = $00000010;
207        FNTS_RESETBUTTON = $00000020;
208        FNTS_MODELESS = $00000040;
209        FNTS_INITFROMFATTRS = $00000080;
210        FNTS_BITMAPONLY = $00000100;
211        FNTS_VECTORONLY = $00000200;
212        FNTS_FIXEDWIDTHONLY = $00000400;
213        FNTS_PROPORTIONALONLY = $00000800;
214        FNTS_NOSYNTHESIZEDFONTS = $00001000;
215        FNTF_NOVIEWSCREENFONTS = 1;
216        FNTF_NOVIEWPRINTERFONTS = 2;
217        FNTF_SCREENFONTSELECTED = 4;
218        FNTF_PRINTERFONTSELECTED = 8;
219        CLRC_FOREGROUND = 1;
220        CLRC_BACKGROUND = 2;
221        FNTI_BITMAPFONT = $0001;
222        FNTI_VECTORFONT = $0002;
223        FNTI_FIXEDWIDTHFONT = $0004;
224        FNTI_PROPORTIONALFONT = $0008;
225        FNTI_SYNTHESIZED = $0010;
226        FNTI_DEFAULTLIST = $0020;
227        FNTI_FAMILYNAME = $0100;
228        FNTI_STYLENAME = $0200;
229        FNTI_POINTSIZE = $0400;
230        FNTS_SUCCESSFUL = 0;
231        FNTS_ERR_INVALID_DIALOG = 3;
232        FNTS_ERR_ALLOC_SHARED_MEM = 4;
233        FNTS_ERR_INVALID_PARM = 5;
234        FNTS_ERR_OUT_OF_MEMORY = 7;
235        FNTS_ERR_INVALID_VERSION = 10;
236        FNTS_ERR_DIALOG_LOAD_ERROR = 12;
237        FNTM_FACENAMECHANGED = WM_USER+50;
238        FNTM_POINTSIZECHANGED = WM_USER+51;
239        FNTM_STYLECHANGED = WM_USER+52;
240        FNTM_COLORCHANGED = WM_USER+53;
241        FNTM_UPDATEPREVIEW = WM_USER+54;
242        FNTM_FILTERLIST = WM_USER+55;
243 
244     type
245        StyleChange = record
246           usWeight : word;
247           usWeightOld : word;
248           usWidth : word;
249           usWidthOld : word;
250           flType : cardinal;
251           flTypeOld : cardinal;
252           flTypeMask : cardinal;
253           flTypeMaskOld : cardinal;
254           flStyle : cardinal;
255           flStyleOld : cardinal;
256           flStyleMask : cardinal;
257           flStyleMaskOld : cardinal;
258        end;
259 
260        PStyleChange = ^StyleChange;
261 
262 
WinFontDlgnull263     function WinFontDlg(hwndP : HWnd;hwndO : HWnd;pfntd : PFontDlg) : HWnd; cdecl;
264 
WinDefFontDlgProcnull265     function WinDefFontDlgProc(_hwnd : HWnd;msg : cardinal;mp1 : MParam;mp2 : MParam) : MResult; cdecl;
266 
267     const
268        DID_FONT_DIALOG = 300;
269        DID_NAME = 301;
270        DID_STYLE = 302;
271        DID_DISPLAY_FILTER = 303;
272        DID_PRINTER_FILTER = 304;
273        DID_SIZE = 305;
274        DID_SAMPLE = 306;
275        DID_OUTLINE = 307;
276        DID_UNDERSCORE = 308;
277        DID_STRIKEOUT = 309;
278        DID_HELP_BUTTON = 310;
279        DID_APPLY_BUTTON = 311;
280        DID_RESET_BUTTON = 312;
281        DID_OK_BUTTON = DID_OK;
282        DID_CANCEL_BUTTON = DID_CANCEL;
283        DID_NAME_PREFIX = 313;
284        DID_STYLE_PREFIX = 314;
285        DID_SIZE_PREFIX = 315;
286        DID_SAMPLE_GROUPBOX = 316;
287        DID_EMPHASIS_GROUPBOX = 317;
288        IDS_FONT_SAMPLE = 350;
289        IDS_FONT_BLANK = 351;
290        IDS_FONT_KEY_0 = 352;
291        IDS_FONT_KEY_9 = 353;
292        IDS_FONT_KEY_SEP = 354;
293        IDS_FONT_DISP_ONLY = 355;
294        IDS_FONT_PRINTER_ONLY = 356;
295        IDS_FONT_COMBINED = 357;
296        IDS_FONT_WEIGHT1 = 358;
297        IDS_FONT_WEIGHT2 = 359;
298        IDS_FONT_WEIGHT3 = 360;
299        IDS_FONT_WEIGHT4 = 361;
300        IDS_FONT_WEIGHT5 = 362;
301        IDS_FONT_WEIGHT6 = 363;
302        IDS_FONT_WEIGHT7 = 364;
303        IDS_FONT_WEIGHT8 = 365;
304        IDS_FONT_WEIGHT9 = 366;
305        IDS_FONT_WIDTH1 = 367;
306        IDS_FONT_WIDTH2 = 368;
307        IDS_FONT_WIDTH3 = 369;
308        IDS_FONT_WIDTH4 = 370;
309        IDS_FONT_WIDTH5 = 371;
310        IDS_FONT_WIDTH6 = 372;
311        IDS_FONT_WIDTH7 = 373;
312        IDS_FONT_WIDTH8 = 374;
313        IDS_FONT_WIDTH9 = 375;
314        IDS_FONT_OPTION0 = 376;
315        IDS_FONT_OPTION1 = 377;
316        IDS_FONT_OPTION2 = 378;
317        IDS_FONT_OPTION3 = 379;
318        IDS_FONT_POINT_SIZE_LIST = 380;
319        SPBS_ALLCHARACTERS = $00000000;
320        SPBS_NUMERICONLY = $00000001;
321        SPBS_READONLY = $00000002;
322        SPBS_MASTER = $00000010;
323        SPBS_SERVANT = $00000000;
324        SPBS_JUSTDEFAULT = $00000000;
325        SPBS_JUSTLEFT = $00000008;
326        SPBS_JUSTRIGHT = $00000004;
327        SPBS_JUSTCENTER = $0000000C;
328        SPBS_NOBORDER = $00000020;
329        SPBS_FASTSPIN = $00000100;
330        SPBS_PADWITHZEROS = $00000080;
331        SPBN_UPARROW = $20A;
332        SPBN_DOWNARROW = $20B;
333        SPBN_ENDSPIN = $20C;
334        SPBN_CHANGE = $20D;
335        SPBN_SETFOCUS = $20E;
336        SPBN_KILLFOCUS = $20F;
337        SPBM_OVERRIDESETLIMITS = $200;
338        SPBM_QUERYLIMITS = $201;
339        SPBM_SETTEXTLIMIT = $202;
340        SPBM_SPINUP = $203;
341        SPBM_SPINDOWN = $204;
342        SPBM_QUERYVALUE = $205;
343        SPBQ_UPDATEIFVALID = 0;
344        SPBQ_ALWAYSUPDATE = 1;
345        SPBQ_DONOTUPDATE = 3;
346        SPBM_SETARRAY = $206;
347        SPBM_SETLIMITS = $207;
348        SPBM_SETCURRENTVALUE = $208;
349        SPBM_SETMASTER = $209;
350        PMERR_NOT_DRAGGING = $1f00;
351        PMERR_ALREADY_DRAGGING = $1f01;
352        MSGF_DRAG = $0010;
353        WM_DRAGFIRST = $0310;
354        WM_DRAGLAST = $032f;
355        DM_DROP = $032f;
356        DM_DRAGOVER = $032e;
357        DM_DRAGLEAVE = $032d;
358        DM_DROPHELP = $032c;
359        DM_ENDCONVERSATION = $032b;
360        DM_PRINT = $032a;
361        DM_RENDER = $0329;
362        DM_RENDERCOMPLETE = $0328;
363        DM_RENDERPREPARE = $0327;
364        DM_DRAGFILECOMPLETE = $0326;
365        DM_EMPHASIZETARGET = $0325;
366        DM_DRAGERROR = $0324;
367        DM_FILERENDERED = $0323;
368        DM_RENDERFILE = $0322;
369        DM_DRAGOVERNOTIFY = $0321;
370        DM_PRINTOBJECT = $0320;
371        DM_DISCARDOBJECT = $031f;
372        DRT_ASM = 'Assembler Code';
373        DRT_BASIC = 'BASIC Code';
374        DRT_BINDATA = 'Binary Data';
375        DRT_BITMAP = 'Bitmap';
376        DRT_C = 'C Code';
377        DRT_COBOL = 'COBOL Code';
378        DRT_DLL = 'Dynamic Link Library';
379        DRT_DOSCMD = 'DOS Command File';
380        DRT_EXE = 'Executable';
381        DRT_FORTRAN = 'FORTRAN Code';
382        DRT_ICON = 'Icon';
383        DRT_LIB = 'Library';
384        DRT_METAFILE = 'Metafile';
385        DRT_OS2CMD = 'OS/2 Command File';
386        DRT_PASCAL = 'Pascal Code';
387        DRT_RESOURCE = 'Resource File';
388        DRT_TEXT = 'Plain Text';
389        DRT_UNKNOWN = 'Unknown';
390        DOR_NODROP = $0000;
391        DOR_DROP = $0001;
392        DOR_NODROPOP = $0002;
393        DOR_NEVERDROP = $0003;
394        DO_COPYABLE = $0001;
395        DO_MOVEABLE = $0002;
396        DO_LINKABLE = $0004;
397        DC_OPEN = $0001;
398        DC_REF = $0002;
399        DC_GROUP = $0004;
400        DC_CONTAINER = $0008;
401        DC_PREPARE = $0010;
402        DC_REMOVEABLEMEDIA = $0020;
403        DO_DEFAULT = $BFFE;
404        DO_UNKNOWN = $BFFF;
405        DO_COPY = $0010;
406        DO_MOVE = $0020;
407        DO_LINK = $0018;
408        DO_CREATE = $0040;
409        DMFL_TARGETSUCCESSFUL = $0001;
410        DMFL_TARGETFAIL = $0002;
411        DMFL_NATIVERENDER = $0004;
412        DMFL_RENDERRETRY = $0008;
413        DMFL_RENDEROK = $0010;
414        DMFL_RENDERFAIL = $0020;
415        DRG_ICON = $00000001;
416        DRG_BITMAP = $00000002;
417        DRG_POLYGON = $00000004;
418        DRG_STRETCH = $00000008;
419        DRG_TRANSPARENT = $00000010;
420        DRG_CLOSED = $00000020;
421        DME_IGNOREABORT = 1;
422        DME_IGNORECONTINUE = 2;
423        DME_REPLACE = 3;
424        DME_RETRY = 4;
425        DF_MOVE = $0001;
426        DF_SOURCE = $0002;
427        DF_SUCCESSFUL = $0004;
428        DRR_SOURCE = 1;
429        DRR_TARGET = 2;
430        DRR_ABORT = 3;
431        DFF_MOVE = 1;
432        DFF_COPY = 2;
433        DFF_DELETE = 3;
434 
435     type
436        HStr = cardinal;
437 
438        DragItem = record
439           hwndItem : HWnd;
440           ulItemID : cardinal;
441           hstrType : HStr;
442           hstrRMF : HStr;
443           hstrContainerName : HStr;
444           hstrSourceName : HStr;
445           hstrTargetName : HStr;
446           cxOffset : integer;
447           cyOffset : integer;
448           fsControl : word;
449           fsSupportedOps : word;
450        end;
451 
452        PDragItem = ^DragItem;
453 
454        DragInfo = record
455           cbDraginfo : cardinal;
456           cbDragitem : word;
457           usOperation : word;
458           hwndSource : HWnd;
459           xDrop : integer;
460           yDrop : integer;
461           cditem : word;
462           usReserved : word;
463        end;
464 
465        PDragInfo = ^DragInfo;
466 
467        DragImage = record
468           cb : word;
469           cptl : word;
470           hImage : cardinal;
471           sizlStretch : SizeL;
472           fl : cardinal;
473           cxOffset : integer;
474           cyOffset : integer;
475        end;
476 
477        PDragImage = ^DragImage;
478 
479        DragTransfer = record
480           cb : cardinal;
481           hwndClient : HWnd;
482           pditem : PDragItem;
483           hstrSelectedRMF : HStr;
484           hstrRenderToName : HStr;
485           ulTargetInfo : cardinal;
486           usOperation : word;
487           fsReply : word;
488        end;
489 
490        PDragTransfer = ^DragTransfer;
491 
492        RenderFile = record
493           hwndDragFiles : HWnd;
494           hstrSource : HStr;
495           hstrTarget : HStr;
496           fMove : word;
497           usRsvd : word;
498        end;
499 
500        PRenderFile = ^RenderFile;
501 
502 
DrgAcceptDroppedFilesnull503     function DrgAcceptDroppedFiles(hwnd : HWnd;pszPath : PChar;pszTypes : PChar;ulDefaultOp : cardinal;ulRsvd : cardinal) : Longbool; cdecl;
504 
DrgAllocDraginfonull505     function DrgAllocDraginfo(cditem : cardinal) : PDragInfo; cdecl;
506 
DrgAllocDragtransfernull507     function DrgAllocDragtransfer(cdxfer : cardinal) : PDragTransfer; cdecl;
508 
DrgDragnull509     function DrgDrag(hwndSource : HWnd;pdinfo : PDragInfo;pdimg : PDragImage;cdimg : cardinal;vkTerminate : longint; var pRsvd) : HWnd; cdecl;
510 
511     type
512        PPSZ = ^PChar;
513 
514 
DrgDragFilesnull515     function DrgDragFiles(hwnd : HWnd;apszFiles : PPSZ;apszTypes : PPSZ;apszTargets : PPSZ;cFiles : cardinal;hptrDrag : cardinal;vkTerm : cardinal;fSourceRender : Longbool;ulRsvd : cardinal) : Longbool; cdecl;
516 
DrgPostTransferMsgnull517     function DrgPostTransferMsg(hwnd : HWnd;msg : cardinal;pdxfer : PDragTransfer;fl : cardinal;ulRsvd : cardinal;fRetry : Longbool) : Longbool; cdecl;
518 
DrgQueryDragitemnull519     function DrgQueryDragitem(pdinfo : PDragInfo;cbBuffer : cardinal;pditem : PDragItem;iItem : cardinal) : Longbool; cdecl;
520 
DrgQueryDragitemCountnull521     function DrgQueryDragitemCount(pdinfo : PDragInfo) : cardinal; cdecl;
522 
DrgQueryDragitemPtrnull523     function DrgQueryDragitemPtr(pdinfo : PDragInfo;i : cardinal) : PDragItem; cdecl;
524 
DrgQueryNativeRMFnull525     function DrgQueryNativeRMF(pditem : PDragItem;cbBuffer : cardinal;pBuffer : PChar) : Longbool; cdecl;
526 
DrgQueryNativeRMFLennull527     function DrgQueryNativeRMFLen(pditem : PDragItem) : cardinal; cdecl;
528 
DrgQueryStrNamenull529     function DrgQueryStrName(hstr : HStr;cbBuffer : cardinal;pBuffer : PChar) : cardinal; cdecl;
530 
DrgQueryStrNameLennull531     function DrgQueryStrNameLen(hstr : HStr) : cardinal; cdecl;
532 
DrgQueryTrueTypenull533     function DrgQueryTrueType(pditem : PDragItem;cbBuffer : cardinal;pBuffer : PChar) : Longbool; cdecl;
534 
DrgQueryTrueTypeLennull535     function DrgQueryTrueTypeLen(pditem : PDragItem) : cardinal; cdecl;
536 
DrgSendTransferMsgnull537     function DrgSendTransferMsg(hwnd : HWnd;msg : cardinal;mp1 : MParam;mp2 : MParam) : MResult; cdecl;
538 
DrgSetDragitemnull539     function DrgSetDragitem(pdinfo : PDragInfo;pditem : PDragItem;cbBuffer : cardinal;iItem : cardinal) : Longbool; cdecl;
540 
DrgSetDragImagenull541     function DrgSetDragImage(pdinfo : PDragInfo;pdimg : PDragImage;cdimg : cardinal; var pRsvd) : Longbool; cdecl;
542 
DrgVerifyTypeSetnull543     function DrgVerifyTypeSet(pditem : PDragItem;pszType : PChar;cbMatch : cardinal;pszMatch : PChar) : Longbool; cdecl;
544 
DrgAccessDraginfonull545     function DrgAccessDraginfo(pdinfo : PDragInfo) : Longbool; cdecl;
546 
DrgAddStrHandlenull547     function DrgAddStrHandle(psz : PChar) : HStr; cdecl;
548 
DrgDeleteDraginfoStrHandlesnull549     function DrgDeleteDraginfoStrHandles(pdinfo : PDragInfo) : Longbool; cdecl;
550 
DrgDeleteStrHandlenull551     function DrgDeleteStrHandle(hstr : HStr) : Longbool; cdecl;
552 
DrgFreeDraginfonull553     function DrgFreeDraginfo(pdinfo : PDragInfo) : Longbool; cdecl;
554 
DrgFreeDragtransfernull555     function DrgFreeDragtransfer(pdxfer : PDragTransfer) : Longbool; cdecl;
556 
DrgGetPSnull557     function DrgGetPS(hwnd : HWnd) : HPS; cdecl;
558 
DrgPushDraginfonull559     function DrgPushDraginfo(pdinfo : PDragInfo;hwndDest : HWnd) : Longbool; cdecl;
560 
DrgReleasePSnull561     function DrgReleasePS(hps : HPS) : Longbool; cdecl;
562 
DrgSetDragPointernull563     function DrgSetDragPointer(pdinfo : PDragInfo;hptr : cardinal) : Longbool; cdecl;
564 
DrgVerifyNativeRMFnull565     function DrgVerifyNativeRMF(pditem : PDragItem;pszRMF : PChar) : Longbool; cdecl;
566 
DrgVerifyRMFnull567     function DrgVerifyRMF(pditem : PDragItem;pszMech : PChar;pszFmt : PChar) : Longbool; cdecl;
568 
DrgVerifyTrueTypenull569     function DrgVerifyTrueType(pditem : PDragItem;pszType : PChar) : Longbool; cdecl;
570 
DrgVerifyTypenull571     function DrgVerifyType(pditem : PDragItem;pszType : PChar) : Longbool; cdecl;
572 
573     const
574        PMERR_NOFILTERED_ITEMS = $1f02;
575        PMERR_COMPARISON_FAILED = $1f03;
576        PMERR_RECORD_CURRENTLY_INSERTED = $1f04;
577        PMERR_FI_CURRENTLY_INSERTED = $1f05;
578        CCS_EXTENDSEL = $00000001;
579        CCS_MULTIPLESEL = $00000002;
580        CCS_SINGLESEL = $00000004;
581        CCS_AUTOPOSITION = $00000008;
582        CCS_VERIFYPOINTERS = $00000010;
583        CCS_READONLY = $00000020;
584        CCS_MINIRECORDCORE = $00000040;
585        CV_TEXT = $00000001;
586        CV_NAME = $00000002;
587        CV_ICON = $00000004;
588        CV_DETAIL = $00000008;
589        CV_FLOW = $00000010;
590        CV_MINI = $00000020;
591        CV_TREE = $00000040;
592        CA_CONTAINERTITLE = $00000200;
593        CA_TITLESEPARATOR = $00000400;
594        CA_TITLELEFT = $00000800;
595        CA_TITLERIGHT = $00001000;
596        CA_TITLECENTER = $00002000;
597        CA_OWNERDRAW = $00004000;
598        CA_DETAILSVIEWTITLES = $00008000;
599        CA_ORDEREDTARGETEMPH = $00010000;
600        CA_DRAWBITMAP = $00020000;
601        CA_DRAWICON = $00040000;
602        CA_TITLEREADONLY = $00080000;
603        CA_OWNERPAINTBACKGROUND = $00100000;
604        CA_MIXEDTARGETEMPH = $00200000;
605        CA_TREELINE = $00400000;
606        CID_LEFTCOLTITLEWND = $7FF0;
607        CID_RIGHTCOLTITLEWND = $7FF1;
608        CID_BLANKBOX = $7FF2;
609        CID_HSCROLL = $7FF3;
610        CID_RIGHTHSCROLL = $7FF4;
611        CID_CNRTITLEWND = $7FF5;
612        CID_LEFTDVWND = $7FF7;
613        CID_RIGHTDVWND = $7FF8;
614        CID_VSCROLL = $7FF9;
615        CID_MLE = $7FFA;
616 
617     type
618        TreeItemDesc = record
619           hbmExpanded : HBitmap;
620           hbmCollapsed : HBitmap;
621           hptrExpanded : cardinal;
622           hptrCollapsed : cardinal;
623        end;
624 
625        PTreeItemDesc = ^TreeItemDesc;
626 
627        PFieldInfo = ^FieldInfo;
628 
629        FieldInfo = record
630           cb : cardinal;
631           flData : cardinal;
632           flTitle : cardinal;
633           pTitleData : Pointer;
634           offStruct : cardinal;
635           pUserData : Pointer;
636           pNextFieldInfo : PFieldInfo;
637           cxWidth : cardinal;
638        end;
639 
640        PRecordCore = ^RecordCore;
641 
642        RecordCore = record
643           cb : cardinal;
644           flRecordAttr : cardinal;
645           ptlIcon : PointL;
646           preccNextRecord : PRecordCore;
647           pszIcon : PChar;
648           hptrIcon : cardinal;
649           hptrMiniIcon : cardinal;
650           hbmBitmap : HBitmap;
651           hbmMiniBitmap : HBitmap;
652           pTreeItemDesc : PTreeItemDesc;
653           pszText : PChar;
654           pszName : PChar;
655           pszTree : PChar;
656        end;
657 
658        PMiniRecordCore = ^MiniRecordCore;
659 
660        MINIRECORDCORE = record
661           cb : cardinal;
662           flRecordAttr : cardinal;
663           ptlIcon : PointL;
664           preccNextRecord : PMiniRecordCore;
665           pszIcon : PChar;
666           hptrIcon : cardinal;
667        end;
668 
669        CNRInfo = record
670           cb : cardinal;
671           pSortRecord : Pointer;
672           pFieldInfoLast : PFieldInfo;
673           pFieldInfoObject : PFieldInfo;
674           pszCnrTitle : PChar;
675           flWindowAttr : cardinal;
676           ptlOrigin : PointL;
677           cDelta : cardinal;
678           cRecords : cardinal;
679           slBitmapOrIcon : SizeL;
680           slTreeBitmapOrIcon : SizeL;
681           hbmExpanded : HBitmap;
682           hbmCollapsed : HBitmap;
683           hptrExpanded : cardinal;
684           hptrCollapsed : cardinal;
685           cyLineSpacing : longint;
686           cxTreeIndent : longint;
687           cxTreeLine : longint;
688           cFields : cardinal;
689           xVertSplitbar : longint;
690        end;
691 
692        PCNRInfo = ^CNRInfo;
693 
694        CDate = record
695           day : Byte;
696           month : Byte;
697           year : word;
698        end;
699 
700        PCDate = ^CDate;
701 
702        CTime = record
703           hours : Byte;
704           minutes : Byte;
705           seconds : Byte;
706           ucReserved : Byte;
707        end;
708 
709        PCTime = ^CTime;
710 
711     const
712        CFA_LEFT = $00000001;
713        CFA_RIGHT = $00000002;
714        CFA_CENTER = $00000004;
715        CFA_TOP = $00000008;
716        CFA_VCENTER = $00000010;
717        CFA_BOTTOM = $00000020;
718        CFA_INVISIBLE = $00000040;
719        CFA_BITMAPORICON = $00000100;
720        CFA_SEPARATOR = $00000200;
721        CFA_HORZSEPARATOR = $00000400;
722        CFA_STRING = $00000800;
723        CFA_OWNER = $00001000;
724        CFA_DATE = $00002000;
725        CFA_TIME = $00004000;
726        CFA_FIREADONLY = $00008000;
727        CFA_FITITLEREADONLY = $00010000;
728        CFA_ULONG = $00020000;
729        CRA_SELECTED = $00000001;
730        CRA_TARGET = $00000002;
731        CRA_CURSORED = $00000004;
732        CRA_INUSE = $00000008;
733        CRA_FILTERED = $00000010;
734        CRA_DROPONABLE = $00000020;
735        CRA_RECORDREADONLY = $00000040;
736        CRA_EXPANDED = $00000080;
737        CRA_COLLAPSED = $00000100;
738        CM_ALLOCDETAILFIELDINFO = $0330;
739        CM_ALLOCRECORD = $0331;
740        CM_ARRANGE = $0332;
741        CM_ERASERECORD = $0333;
742        CM_FILTER = $0334;
743        CM_FREEDETAILFIELDINFO = $0335;
744        CM_FREERECORD = $0336;
745        CM_HORZSCROLLSPLITWINDOW = $0337;
746        CM_INSERTDETAILFIELDINFO = $0338;
747        CM_INSERTRECORD = $0339;
748        CM_INVALIDATEDETAILFIELDINFO = $033a;
749        CM_INVALIDATERECORD = $033b;
750        CM_PAINTBACKGROUND = $033c;
751        CM_QUERYCNRINFO = $033d;
752        CM_QUERYDETAILFIELDINFO = $033e;
753        CM_QUERYDRAGIMAGE = $033f;
754        CM_QUERYRECORD = $0340;
755        CM_QUERYRECORDEMPHASIS = $0341;
756        CM_QUERYRECORDFROMRECT = $0342;
757        CM_QUERYRECORDRECT = $0343;
758        CM_QUERYVIEWPORTRECT = $0344;
759        CM_REMOVEDETAILFIELDINFO = $0345;
760        CM_REMOVERECORD = $0346;
761        CM_SCROLLWINDOW = $0347;
762        CM_SEARCHSTRING = $0348;
763        CM_SETCNRINFO = $0349;
764        CM_SETRECORDEMPHASIS = $034a;
765        CM_SORTRECORD = $034b;
766        CM_OPENEDIT = $034c;
767        CM_CLOSEEDIT = $034d;
768        CM_COLLAPSETREE = $034e;
769        CM_EXPANDTREE = $034f;
770        CM_QUERYRECORDINFO = $0350;
771        CN_DRAGAFTER = 101;
772        CN_DRAGLEAVE = 102;
773        CN_DRAGOVER = 103;
774        CN_DROP = 104;
775        CN_DROPHELP = 105;
776        CN_ENTER = 106;
777        CN_INITDRAG = 107;
778        CN_EMPHASIS = 108;
779        CN_KILLFOCUS = 109;
780        CN_SCROLL = 110;
781        CN_QUERYDELTA = 111;
782        CN_SETFOCUS = 112;
783        CN_REALLOCPSZ = 113;
784        CN_BEGINEDIT = 114;
785        CN_ENDEDIT = 115;
786        CN_COLLAPSETREE = 116;
787        CN_EXPANDTREE = 117;
788        CN_HELP = 118;
789        CN_CONTEXTMENU = 119;
790 
791     type
792        CNRDragInit = record
793           hwndCnr : HWnd;
794           pRecord : PRecordCore;
795           x : longint;
796           y : longint;
797           cx : longint;
798           cy : longint;
799        end;
800 
801        PCNRDragInit = ^CNRDragInit;
802 
803        FieldInfoInsert = record
804           cb : cardinal;
805           pFieldInfoOrder : PFieldInfo;
806           fInvalidateFieldInfo : cardinal;
807           cFieldInfoInsert : cardinal;
808        end;
809 
810        PFieldInfoInsert = ^FieldInfoInsert;
811 
812        RecordInsert = record
813           cb : cardinal;
814           pRecordOrder : PRecordCore;
815           pRecordParent : PRecordCore;
816           fInvalidateRecord : cardinal;
817           zOrder : cardinal;
818           cRecordsInsert : cardinal;
819        end;
820 
821        PRecordInsert = ^RecordInsert;
822 
823        QueryRecFromRect = record
824           cb : cardinal;
825           rect : RectL;
826           fsSearch : cardinal;
827        end;
828 
829        PQueryRecFromRect = ^QueryRecFromRect;
830 
831        QueryRecordRect = record
832           cb : cardinal;
833           pRecord : PRecordCore;
834           fRightSplitWindow : cardinal;
835           fsExtent : cardinal;
836        end;
837 
838        PQueryRecordRect = ^QueryRecordRect;
839 
840        SearchString = record
841           cb : cardinal;
842           pszSearch : PChar;
843           fsPrefix : cardinal;
844           fsCaseSensitive : cardinal;
845           usView : cardinal;
846        end;
847 
848        PSearchString = ^SearchString;
849 
850        CNRDragInfo = record
851           pDragInfo : PDragInfo;
852           pRecord : PRecordCore;
853        end;
854 
855        PCNRDragInfo = ^CNRDragInfo;
856 
857        NotifyRecordEmphasis = record
858           hwndCnr : HWnd;
859           pRecord : PRecordCore;
860           fEmphasisMask : cardinal;
861        end;
862 
863        PNotifyRecordEmphasis = ^NotifyRecordEmphasis;
864 
865        NotifyRecordEnter = record
866           hwndCnr : HWnd;
867           fKey : cardinal;
868           pRecord : PRecordCore;
869        end;
870 
871        PNotifyRecordEnter = ^NotifyRecordEnter;
872 
873        NotifyDelta = record
874           hwndCnr : HWnd;
875           fDelta : cardinal;
876        end;
877 
878        PNotifyDelta = ^NotifyDelta;
879 
880        NotifyScroll = record
881           hwndCnr : HWnd;
882           lScrollInc : longint;
883           fScroll : cardinal;
884        end;
885 
886        PNotifyScroll = ^NotifyScroll;
887 
888        CNREditData = record
889           cb : cardinal;
890           hwndCnr : HWnd;
891           pRecord : PRecordCore;
892           pFieldInfo : PFieldInfo;
893           ppszText : PPSZ;
894           cbText : cardinal;
895           id : cardinal;
896        end;
897 
898        PCNREditData = ^CNREditData;
899 
900        OwnerBackground = record
901           hwnd : HWnd;
902           hps : HPS;
903           rclBackground : RectL;
904           idWindow : longint;
905        end;
906 
907        POwnerBackground = ^OwnerBackground;
908 
909        CNRDrawItemInfo = record
910           pRecord : PRecordCore;
911           pFieldInfo : PFieldInfo;
912        end;
913 
914        PCNRDrawItemInfo = ^CNRDrawItemInfo;
915 
916     const
917        CMA_TOP = $0001;
918        CMA_BOTTOM = $0002;
919        CMA_LEFT = $0004;
920        CMA_RIGHT = $0008;
921        CMA_FIRST = $0010;
922        CMA_LAST = $0020;
923        CMA_END = $0040;
924        CMA_PREV = $0080;
925        CMA_NEXT = $0100;
926        CMA_HORIZONTAL = $0200;
927        CMA_VERTICAL = $0400;
928        CMA_ICON = $0800;
929        CMA_TEXT = $1000;
930        CMA_PARTIAL = $2000;
931        CMA_COMPLETE = $4000;
932        CMA_PARENT = $0001;
933        CMA_FIRSTCHILD = $0002;
934        CMA_LASTCHILD = $0004;
935        CMA_CNRTITLE = $0001;
936        CMA_DELTA = $0002;
937        CMA_FLWINDOWATTR = $0004;
938        CMA_LINESPACING = $0008;
939        CMA_PFIELDINFOLAST = $0010;
940        CMA_PSORTRECORD = $0020;
941        CMA_PTLORIGIN = $0040;
942        CMA_SLBITMAPORICON = $0080;
943        CMA_XVERTSPLITBAR = $0100;
944        CMA_PFIELDINFOOBJECT = $0200;
945        CMA_TREEICON = $0400;
946        CMA_TREEBITMAP = $0800;
947        CMA_CXTREEINDENT = $1000;
948        CMA_CXTREELINE = $2000;
949        CMA_SLTREEBITMAPORICON = $4000;
950        CMA_ITEMORDER = $0001;
951        CMA_WINDOW = $0002;
952        CMA_WORKSPACE = $0004;
953        CMA_ZORDER = $0008;
954        CMA_DELTATOP = $0001;
955        CMA_DELTABOT = $0002;
956        CMA_DELTAHOME = $0004;
957        CMA_DELTAEND = $0008;
958        CMA_NOREPOSITION = $0001;
959        CMA_REPOSITION = $0002;
960        CMA_TEXTCHANGED = $0004;
961        CMA_ERASE = $0008;
962        CMA_FREE = $0001;
963        CMA_INVALIDATE = $0002;
964        SLM_ADDDETENT = $0369;
965        SLM_QUERYDETENTPOS = $036a;
966        SLM_QUERYSCALETEXT = $036b;
967        SLM_QUERYSLIDERINFO = $036c;
968        SLM_QUERYTICKPOS = $036d;
969        SLM_QUERYTICKSIZE = $036e;
970        SLM_REMOVEDETENT = $036f;
971        SLM_SETSCALETEXT = $0370;
972        SLM_SETSLIDERINFO = $0371;
973        SLM_SETTICKSIZE = $0372;
974        SLN_CHANGE = 1;
975        SLN_SLIDERTRACK = 2;
976        SLN_SETFOCUS = 3;
977        SLN_KILLFOCUS = 4;
978 
979     type
980        SLDCData = record
981           cbSize : cardinal;
982           usScale1Increments : word;
983           usScale1Spacing : word;
984           usScale2Increments : word;
985           usScale2Spacing : word;
986        end;
987 
988        PSLDCData = ^SLDCData;
989 
990     const
991        SLS_HORIZONTAL = $00000000;
992        SLS_VERTICAL = $00000001;
993        SLS_CENTER = $00000000;
994        SLS_BOTTOM = $00000002;
995        SLS_TOP = $00000004;
996        SLS_LEFT = $00000002;
997        SLS_RIGHT = $00000004;
998        SLS_SNAPTOINCREMENT = $00000008;
999        SLS_BUTTONSBOTTOM = $00000010;
1000        SLS_BUTTONSTOP = $00000020;
1001        SLS_BUTTONSLEFT = $00000010;
1002        SLS_BUTTONSRIGHT = $00000020;
1003        SLS_OWNERDRAW = $00000040;
1004        SLS_READONLY = $00000080;
1005        SLS_RIBBONSTRIP = $00000100;
1006        SLS_HOMEBOTTOM = $00000000;
1007        SLS_HOMETOP = $00000200;
1008        SLS_HOMELEFT = $00000000;
1009        SLS_HOMERIGHT = $00000200;
1010        SLS_PRIMARYSCALE1 = $00000000;
1011        SLS_PRIMARYSCALE2 = $00000400;
1012        SMA_SCALE1 = $0001;
1013        SMA_SCALE2 = $0002;
1014        SMA_SHAFTDIMENSIONS = $0000;
1015        SMA_SHAFTPOSITION = $0001;
1016        SMA_SLIDERARMDIMENSIONS = $0002;
1017        SMA_SLIDERARMPOSITION = $0003;
1018        SMA_RANGEVALUE = $0000;
1019        SMA_INCREMENTVALUE = $0001;
1020        SMA_SETALLTICKS = $FFFF;
1021        SDA_RIBBONSTRIP = $0001;
1022        SDA_SLIDERSHAFT = $0002;
1023        SDA_BACKGROUND = $0003;
1024        SDA_SLIDERARM = $0004;
1025        PMERR_UPDATE_IN_PROGRESS = $1f06;
1026        SLDERR_INVALID_PARAMETERS = -1;
1027        VM_QUERYITEM = $0375;
1028        VM_QUERYITEMATTR = $0376;
1029        VM_QUERYMETRICS = $0377;
1030        VM_QUERYSELECTEDITEM = $0378;
1031        VM_SELECTITEM = $0379;
1032        VM_SETITEM = $037a;
1033        VM_SETITEMATTR = $037b;
1034        VM_SETMETRICS = $037c;
1035        VN_SELECT = 120;
1036        VN_ENTER = 121;
1037        VN_DRAGLEAVE = 122;
1038        VN_DRAGOVER = 123;
1039        VN_DROP = 124;
1040        VN_DROPHELP = 125;
1041        VN_INITDRAG = 126;
1042        VN_SETFOCUS = 127;
1043        VN_KILLFOCUS = 128;
1044        VN_HELP = 129;
1045 
1046     type
1047        VSCData = record
1048           cbSize : cardinal;
1049           usRowCount : word;
1050           usColumnCount : word;
1051        end;
1052 
1053        PVSCData = ^VSCData;
1054 
1055        VSDragInit = record
1056           hwnd : HWnd;
1057           x : longint;
1058           y : longint;
1059           cx : longint;
1060           cy : longint;
1061           usRow : word;
1062           usColumn : word;
1063        end;
1064 
1065        PVSDragInit = ^VSDragInit;
1066 
1067        VSDragInfo = record
1068           pDragInfo : PDragInfo;
1069           usRow : word;
1070           usColumn : word;
1071        end;
1072 
1073        PVSDragInfo = ^VSDragInfo;
1074 
1075        VSText = record
1076           pszItemText : PChar;
1077           ulBufLen : cardinal;
1078        end;
1079 
1080        PVSText = ^VSText;
1081 
1082     const
1083        VS_BITMAP = $0001;
1084        VS_ICON = $0002;
1085        VS_TEXT = $0004;
1086        VS_RGB = $0008;
1087        VS_COLORINDEX = $0010;
1088        VS_BORDER = $0020;
1089        VS_ITEMBORDER = $0040;
1090        VS_SCALEBITMAPS = $0080;
1091        VS_RIGHTTOLEFT = $0100;
1092        VS_OWNERDRAW = $0200;
1093        VIA_BITMAP = $0001;
1094        VIA_ICON = $0002;
1095        VIA_TEXT = $0004;
1096        VIA_RGB = $0008;
1097        VIA_COLORINDEX = $0010;
1098        VIA_OWNERDRAW = $0020;
1099        VIA_DISABLED = $0040;
1100        VIA_DRAGGABLE = $0080;
1101        VIA_DROPONABLE = $0100;
1102        VMA_ITEMSIZE = $0001;
1103        VMA_ITEMSPACING = $0002;
1104        VDA_ITEM = $0001;
1105        VDA_ITEMBACKGROUND = $0002;
1106        VDA_SURROUNDING = $0003;
1107        VDA_BACKGROUND = $0004;
1108        VSERR_INVALID_PARAMETERS = -1;
1109        BKM_CALCPAGERECT = $0353;
1110        BKM_DELETEPAGE = $0354;
1111        BKM_INSERTPAGE = $0355;
1112        BKM_INVALIDATETABS = $0356;
1113        BKM_TURNTOPAGE = $0357;
1114        BKM_QUERYPAGECOUNT = $0358;
1115        BKM_QUERYPAGEID = $0359;
1116        BKM_QUERYPAGEDATA = $035a;
1117        BKM_QUERYPAGEWINDOWHWND = $035b;
1118        BKM_QUERYTABBITMAP = $035c;
1119        BKM_QUERYTABTEXT = $035d;
1120        BKM_SETDIMENSIONS = $035e;
1121        BKM_SETPAGEDATA = $035f;
1122        BKM_SETPAGEWINDOWHWND = $0360;
1123        BKM_SETSTATUSLINETEXT = $0361;
1124        BKM_SETTABBITMAP = $0362;
1125        BKM_SETTABTEXT = $0363;
1126        BKM_SETNOTEBOOKCOLORS = $0364;
1127        BKM_QUERYPAGESTYLE = $0365;
1128        BKM_QUERYSTATUSLINETEXT = $0366;
1129        BKN_PAGESELECTED = 130;
1130        BKN_NEWPAGESIZE = 131;
1131        BKN_HELP = 132;
1132        BKN_PAGEDELETED = 133;
1133        BKA_ALL = $0001;
1134        BKA_SINGLE = $0002;
1135        BKA_TAB = $0004;
1136        BKA_LAST = $0002;
1137        BKA_FIRST = $0004;
1138        BKA_NEXT = $0008;
1139        BKA_PREV = $0010;
1140        BKA_TOP = $0020;
1141        BKA_MAJORTAB = $0001;
1142        BKA_MINORTAB = $0002;
1143        BKA_PAGEBUTTON = $0100;
1144        BKA_STATUSTEXTON = $0001;
1145        BKA_MAJOR = $0040;
1146        BKA_MINOR = $0080;
1147        BKA_AUTOPAGESIZE = $0100;
1148        BKA_END = $0200;
1149        BKA_TEXT = $0400;
1150        BKA_BITMAP = $0800;
1151        BKS_BACKPAGESBR = $00000001;
1152        BKS_BACKPAGESBL = $00000002;
1153        BKS_BACKPAGESTR = $00000004;
1154        BKS_BACKPAGESTL = $00000008;
1155        BKS_MAJORTABRIGHT = $00000010;
1156        BKS_MAJORTABLEFT = $00000020;
1157        BKS_MAJORTABTOP = $00000040;
1158        BKS_MAJORTABBOTTOM = $00000080;
1159        BKS_SQUARETABS = $00000000;
1160        BKS_ROUNDEDTABS = $00000100;
1161        BKS_POLYGONTABS = $00000200;
1162        BKS_SOLIDBIND = $00000000;
1163        BKS_SPIRALBIND = $00000400;
1164        BKS_STATUSTEXTLEFT = $00000000;
1165        BKS_STATUSTEXTRIGHT = $00001000;
1166        BKS_STATUSTEXTCENTER = $00002000;
1167        BKS_TABTEXTLEFT = $00000000;
1168        BKS_TABTEXTRIGHT = $00004000;
1169        BKS_TABTEXTCENTER = $00008000;
1170        BKA_BACKGROUNDPAGECOLORINDEX = $0001;
1171        BKA_BACKGROUNDPAGECOLOR = $0002;
1172        BKA_BACKGROUNDMAJORCOLORINDEX = $0003;
1173        BKA_BACKGROUNDMAJORCOLOR = $0004;
1174        BKA_BACKGROUNDMINORCOLORINDEX = $0005;
1175        BKA_BACKGROUNDMINORCOLOR = $0006;
1176        BKA_FOREGROUNDMAJORCOLORINDEX = $0007;
1177        BKA_FOREGROUNDMAJORCOLOR = $0008;
1178        BKA_FOREGROUNDMINORCOLORINDEX = $0009;
1179        BKA_FOREGROUNDMINORCOLOR = $000A;
1180        BOOKERR_INVALID_PARAMETERS = -1;
1181 
1182     type
1183        BookText = record
1184           pString : PChar;
1185           textLen : cardinal;
1186        end;
1187 
1188        PBookText = ^BookText;
1189 
1190        DeleteNotify = record
1191           hwndBook : HWnd;
1192           hwndPage : HWnd;
1193           ulAppPageData : cardinal;
1194           hbmTab : HBitmap;
1195        end;
1196 
1197        PDeleteNotify = ^DeleteNotify;
1198 
1199        PageSelectNotify = record
1200           hwndBook : HWnd;
1201           ulPageIdCur : cardinal;
1202           ulPageIdNew : cardinal;
1203        end;
1204 
1205        PPageSelectNotify = ^PageSelectNotify;
1206 
1207   implementation
1208 
WinFileDlgnull1209     function WinFileDlg(hwndP : HWnd;hwndO : HWnd;pfild : PFileDlg) : HWnd; cdecl;
1210         external 'PMCTLS' index 4;
WinDefFileDlgProcnull1211     function WinDefFileDlgProc(hwnd : HWnd;msg : cardinal;mp1 : MParam;mp2 : MParam) : MResult; cdecl;
1212         external 'PMCTLS' index 5;
WinFreeFileDlgListnull1213     function WinFreeFileDlgList(papszFQFilename : PAPSZ) : Longbool; cdecl;
1214         external 'PMCTLS' index 6;
WinFontDlgnull1215     function WinFontDlg(hwndP : HWnd;hwndO : HWnd;pfntd : PFontDlg) : HWnd; cdecl;
1216         external 'PMCTLS' index 2;
WinDefFontDlgProcnull1217     function WinDefFontDlgProc(_hwnd : HWnd;msg : cardinal;mp1 : MParam;mp2 : MParam) : MResult; cdecl;
1218         external 'PMCTLS' index 3;
DrgAcceptDroppedFilesnull1219     function DrgAcceptDroppedFiles(hwnd : HWnd;pszPath : PChar;pszTypes : PChar;ulDefaultOp : cardinal;ulRsvd : cardinal) : Longbool; cdecl;
1220         external 'PMDRAG' index 66;
DrgAllocDraginfonull1221     function DrgAllocDraginfo(cditem : cardinal) : PDragInfo; cdecl;
1222         external 'PMDRAG' index 34;
DrgAllocDragtransfernull1223     function DrgAllocDragtransfer(cdxfer : cardinal) : PDragTransfer; cdecl;
1224         external 'PMDRAG' index 35;
DrgDragnull1225     function DrgDrag(hwndSource : HWnd;pdinfo : PDragInfo;pdimg : PDragImage;cdimg : cardinal;vkTerminate : longint; var pRsvd) : HWnd; cdecl;
1226         external 'PMDRAG' index 38;
DrgDragFilesnull1227     function DrgDragFiles(hwnd : HWnd;apszFiles : PPSZ;apszTypes : PPSZ;apszTargets : PPSZ;cFiles : cardinal;hptrDrag : cardinal;vkTerm : cardinal;fSourceRender : Longbool;ulRsvd : cardinal) : Longbool; cdecl;
1228         external 'PMDRAG' index 65;
DrgPostTransferMsgnull1229     function DrgPostTransferMsg(hwnd : HWnd;msg : cardinal;pdxfer : PDragTransfer;fl : cardinal;ulRsvd : cardinal;fRetry : Longbool) : Longbool; cdecl;
1230         external 'PMDRAG' index 42;
DrgQueryDragitemnull1231     function DrgQueryDragitem(pdinfo : PDragInfo;cbBuffer : cardinal;pditem : PDragItem;iItem : cardinal) : Longbool; cdecl;
1232         external 'PMDRAG' index 44;
DrgQueryDragitemCountnull1233     function DrgQueryDragitemCount(pdinfo : PDragInfo) : cardinal; cdecl;
1234         external 'PMDRAG' index 45;
DrgQueryDragitemPtrnull1235     function DrgQueryDragitemPtr(pdinfo : PDragInfo;i : cardinal) : PDragItem; cdecl;
1236         external 'PMDRAG' index 46;
DrgQueryNativeRMFnull1237     function DrgQueryNativeRMF(pditem : PDragItem;cbBuffer : cardinal;pBuffer : PCHAR) : Longbool; cdecl;
1238         external 'PMDRAG' index 47;
DrgQueryNativeRMFLennull1239     function DrgQueryNativeRMFLen(pditem : PDragItem) : cardinal; cdecl;
1240         external 'PMDRAG' index 48;
DrgQueryStrNamenull1241     function DrgQueryStrName(hstr : HStr;cbBuffer : cardinal;pBuffer : PChar) : cardinal; cdecl;
1242         external 'PMDRAG' index 49;
DrgQueryStrNameLennull1243     function DrgQueryStrNameLen(hstr : HStr) : cardinal; cdecl;
1244         external 'PMDRAG' index 50;
DrgQueryTrueTypenull1245     function DrgQueryTrueType(pditem : PDragItem;cbBuffer : cardinal;pBuffer : PChar) : Longbool; cdecl;
1246         external 'PMDRAG' index 51;
DrgQueryTrueTypeLennull1247     function DrgQueryTrueTypeLen(pditem : PDragItem) : cardinal; cdecl;
1248         external 'PMDRAG' index 52;
DrgSendTransferMsgnull1249     function DrgSendTransferMsg(hwnd : HWnd;msg : cardinal;mp1 : MParam;mp2 : MParam) : MResult; cdecl;
1250         external 'PMDRAG' index 54;
DrgSetDragitemnull1251     function DrgSetDragitem(pdinfo : PDragInfo;pditem : PDragItem;cbBuffer : cardinal;iItem : cardinal) : Longbool; cdecl;
1252         external 'PMDRAG' index 57;
DrgSetDragImagenull1253     function DrgSetDragImage(pdinfo : PDragInfo;pdimg : PDragImage;cdimg : cardinal; var pRsvd) : Longbool; cdecl;
1254         external 'PMDRAG' index 56;
DrgVerifyTypeSetnull1255     function DrgVerifyTypeSet(pditem : PDragItem;pszType : PChar;cbMatch : cardinal;pszMatch : PChar) : Longbool; cdecl;
1256         external 'PMDRAG' index 62;
DrgAccessDraginfonull1257     function DrgAccessDraginfo(pdinfo : PDragInfo) : Longbool; cdecl;
1258         external 'PMDRAG' index 32;
DrgAddStrHandlenull1259     function DrgAddStrHandle(PSZ : PChar) : HStr; cdecl;
1260         external 'PMDRAG' index 33;
DrgDeleteDraginfoStrHandlesnull1261     function DrgDeleteDraginfoStrHandles(pdinfo : PDragInfo) : Longbool; cdecl;
1262         external 'PMDRAG' index 36;
DrgDeleteStrHandlenull1263     function DrgDeleteStrHandle(hstr : HStr) : Longbool; cdecl;
1264         external 'PMDRAG' index 37;
DrgFreeDraginfonull1265     function DrgFreeDraginfo(pdinfo : PDragInfo) : Longbool; cdecl;
1266         external 'PMDRAG' index 39;
DrgFreeDragtransfernull1267     function DrgFreeDragtransfer(pdxfer : PDragTransfer) : Longbool; cdecl;
1268         external 'PMDRAG' index 40;
DrgGetPSnull1269     function DrgGetPS(hwnd : HWnd) : HPS; cdecl;
1270         external 'PMDRAG' index 41;
DrgPushDraginfonull1271     function DrgPushDraginfo(pdinfo : PDragInfo;hwndDest : HWnd) : Longbool; cdecl;
1272         external 'PMDRAG' index 43;
DrgReleasePSnull1273     function DrgReleasePS(hps : HPS) : Longbool; cdecl;
1274         external 'PMDRAG' index 53;
DrgSetDragPointernull1275     function DrgSetDragPointer(pdinfo : PDragInfo;hptr : cardinal) : Longbool; cdecl;
1276         external 'PMDRAG' index 55;
DrgVerifyNativeRMFnull1277     function DrgVerifyNativeRMF(pditem : PDragItem;pszRMF : PChar) : Longbool; cdecl;
1278         external 'PMDRAG' index 58;
DrgVerifyRMFnull1279     function DrgVerifyRMF(pditem : PDragItem;pszMech : PChar;pszFmt : PChar) : Longbool; cdecl;
1280         external 'PMDRAG' index 59;
DrgVerifyTrueTypenull1281     function DrgVerifyTrueType(pditem : PDragItem;pszType : PChar) : Longbool; cdecl;
1282         external 'PMDRAG' index 60;
DrgVerifyTypenull1283     function DrgVerifyType(pditem : PDragItem;pszType : PChar) : Longbool; cdecl;
1284         external 'PMDRAG' index 61;
1285 
1286 end.
1287