source: trunk/dll/fm3dll.h@ 215

Last change on this file since 215 was 205, checked in by root, 20 years ago

Use QWL_USER

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 47.3 KB
Line 
1
2/***********************************************************************
3
4 $Id: fm3dll.h 205 2005-06-08 05:58:48Z root $
5
6 Common definitions
7
8 Copyright (c) 1993-98 M. Kimes
9 Copyright (c) 2001, 2005 Steven H. Levine
10
11 12 Feb 03 SHL Add CBLIST_TO_EASIZE
12 11 Jun 03 SHL Add JFS and FAT32 support
13 06 Jan 04 SHL Drop hundfmt
14 01 Aug 04 SHL Optimze strippers
15 01 Aug 04 SHL Drop avv local functions
16 23 May 05 SHL Split datamin to datamin.h
17 24 May 05 SHL Rework Win_Error usage
18 25 May 05 SHL Require VAC 3.65
19 25 May 05 SHL Rename comnam to szCommonName
20 25 May 05 SHL Rework for FillInRecordFromFFB
21 25 May 05 SHL Add CommaFmtULL CommaFmtUL
22 28 May 05 SHL Drop local functions
23 06 Jun 05 SHL Use QWL_USER
24
25***********************************************************************/
26
27#if __IBMC__ != 430
28#error VAC365 required for long long support
29#endif
30
31#if !defined(_LONG_LONG)
32#error Long long support not enabled
33#endif
34
35#ifdef DEFINE_GLOBALS
36 #pragma data_seg(GLOBAL1)
37#endif
38
39#define PP_MAX PP_MENUDISABLEBGNDCOLORINDEX
40#define PP_MAXBUF 384
41
42#ifndef MM_PORTHOLEINIT
43 #define MM_PORTHOLEINIT 0x01fb
44#endif
45#ifndef MS_POPUP
46 #define MS_POPUP 0x00000010L
47#endif
48#ifndef CCS_MINIICONS
49 #define CCS_MINIICONS 0x0800
50#endif
51#ifndef CRA_SOURCE
52 #define CRA_SOURCE 0x00004000
53#endif
54#ifndef CV_EXACTMATCH
55 #define CV_EXACTMATCH 0x10000000
56#endif
57#ifndef CBN_SETFOCUS
58 #define CBN_SETFOCUS 20
59#endif
60#ifndef CBN_KILLFOCUS
61 #define CBN_KILLFOCUS 21
62#endif
63#ifndef CN_VERIFYEDIT
64 #define CN_VERIFYEDIT 134
65#endif
66#ifndef CN_PICKUP
67 #define CN_PICKUP 135
68#endif
69#ifndef CN_DROPNOTIFY
70 #define CN_DROPNOTIFY 136
71#endif
72#ifndef CN_GRIDRESIZED
73 #define CN_GRIDRESIZED 137
74#endif
75#ifndef BKS_MERLINSTYLE
76 #define BKS_MERLINSTYLE 0x0800
77#endif
78#ifndef PMBITMAP_INCLUDED
79 typedef struct _RGB2 /* rgb2 */
80 {
81 BYTE bBlue; /* Blue component of the color definition */
82 BYTE bGreen; /* Green component of the color definition*/
83 BYTE bRed; /* Red component of the color definition */
84 BYTE fcOptions; /* Reserved, must be zero */
85 } RGB2;
86 typedef RGB2 *PRGB2;
87#endif
88
89 /**************************************************/
90 /* Lazy Drag API's. */
91 /**************************************************/
92 BOOL APIENTRY DrgLazyDrag( HWND hwndSource,
93 PDRAGINFO pdinfo,
94 PDRAGIMAGE pdimg,
95 ULONG cdimg,
96 PVOID pRsvd );
97
98 BOOL APIENTRY DrgCancelLazyDrag( VOID );
99
100 BOOL APIENTRY DrgLazyDrop( HWND hwndTarget,
101 ULONG ulOperation,
102 PPOINTL pptlDrop );
103
104 PDRAGINFO APIENTRY DrgQueryDraginfoPtr( PDRAGINFO pRsvd );
105
106 PDRAGINFO APIENTRY DrgQueryDraginfoPtrFromHwnd( HWND hwndSource );
107
108 PDRAGINFO APIENTRY DrgQueryDraginfoPtrFromDragitem( PDRAGITEM pditem );
109
110 ULONG APIENTRY DrgQueryDragStatus(VOID);
111
112 PDRAGINFO APIENTRY DrgReallocDraginfo (PDRAGINFO pdinfoOld,
113 ULONG cditem);
114 /* Drag Status Flags */
115 #define DGS_DRAGINPROGRESS 0x0001 /* Standard Drag in Progress. */
116 #define DGS_LAZYDRAGINPROGRESS 0x0002 /* Lazy Drag in Progress. */
117
118#define NUMLINES 21
119#define CON_COLS 6
120#define INSTDATA(h) WinQueryWindowPtr(h,QWL_USER)
121#define DIR_SPLITBAR_OFFSET 18 * 12 /* Pixel offset of details splitbar */
122#define CONTAINER_COLUMNS 13 /* Number of columns in details view */
123#define RGBFROMPARTS(r,g,b) (((r) * 65536) + ((g) * 256) + (b))
124#define EXTRA_RECORD_BYTES2 (sizeof(CNRITEM) - sizeof(MINIRECORDCORE))
125#define EXTRA_RECORD_BYTES (EXTRA_RECORD_BYTES2 + (CCHMAXPATHCOMP - 1))
126#define EXTRA_ARCRECORD_BYTES (sizeof(ARCITEM) - sizeof(MINIRECORDCORE))
127#define ALLATTRS (FILE_NORMAL | FILE_DIRECTORY | FILE_ARCHIVED |\
128 FILE_HIDDEN | FILE_READONLY | FILE_SYSTEM)
129#define LISTTEMPROOT "$FM2LI$T."
130
131#include "fm3dll2.h" // SHL
132
133#define UM_PAINT (WM_USER)
134#define UM_SETUP (WM_USER + 1)
135#define UM_RESCAN (WM_USER + 2)
136#define UM_INITIALSIZE (WM_USER + 3)
137#define UM_CONTROL (WM_USER + 4)
138#define UM_COMMAND (WM_USER + 5)
139#define UM_SIZE (WM_USER + 6)
140#define UM_FOCUSME (WM_USER + 7)
141#define UM_FIXEDITNAME (WM_USER + 8)
142#define UM_UPDATERECORD (WM_USER + 9)
143#define UM_SETDIR (WM_USER + 10)
144#define UM_CONTAINER_FILLED (WM_USER + 11)
145#define UM_STRETCH (WM_USER + 12)
146#define UM_LOADFILE (WM_USER + 13)
147#define UM_MOUSEMOVE (WM_USER + 14)
148#define UM_ENTER (WM_USER + 15)
149#define UM_CLOSE (WM_USER + 16)
150#define UM_ACTION (WM_USER + 17)
151#define UM_MASSACTION (WM_USER + 18)
152#define UM_UPDATERECORDLIST (WM_USER + 19)
153#define UM_FILESMENU (WM_USER + 20)
154#define UM_SELECT (WM_USER + 21)
155#define UM_VIEWSMENU (WM_USER + 22)
156#define UM_CONTAINERHWND (WM_USER + 23)
157#define UM_OPENWINDOWFORME (WM_USER + 24)
158#define UM_FOLDUP (WM_USER + 25)
159#define UM_INITMENU (WM_USER + 26)
160#define UM_COMPARE (WM_USER + 27)
161#define UM_EXPAND (WM_USER + 28)
162#define UM_REPLACEFOCUS (WM_USER + 29)
163#define UM_UNDO (WM_USER + 30)
164#define UM_RENDER (WM_USER + 31)
165#define UM_BUTTON2DOWN (WM_USER + 32)
166#define UM_BUTTON2UP (WM_USER + 33)
167#define UM_COLLECTFROMFILE (WM_USER + 34)
168#define UM_TIMER (WM_USER + 35)
169#define UM_HELPON (WM_USER + 36)
170#define UM_SETUP2 (WM_USER + 37)
171#define UM_SETUP3 (WM_USER + 38)
172#define UM_CONTEXTMENU (WM_USER + 39)
173#define UM_FILLUSERLIST (WM_USER + 40)
174#define UM_CONTAINERDIR (WM_USER + 41)
175#define UM_SETUP4 (WM_USER + 42)
176#define UM_FILLSETUPLIST (WM_USER + 43)
177#define UM_ARRANGEICONS (WM_USER + 44)
178#define UM_SETUP5 (WM_USER + 45)
179#define UM_NOTIFY (WM_USER + 46)
180#define UM_INSERTRECORD (WM_USER + 47)
181#define UM_ADDTOMENU (WM_USER + 48)
182#define UM_COLLECT (WM_USER + 49)
183#define UM_RESTOREDC (WM_USER + 50)
184#define UM_MINIMIZE (WM_USER + 51)
185#define UM_MAXIMIZE (WM_USER + 52)
186#define UM_BUTTON1MOTIONSTART (WM_USER + 53)
187#define UM_SETUP6 (WM_USER + 54)
188#define UM_FILLBUTTONLIST (WM_USER + 55)
189#define UM_SETUSERLISTNAME (WM_USER + 56)
190#define UM_FILTER (WM_USER + 57)
191#define UM_SORTRECORD (WM_USER + 58)
192#define UM_SIZE2 (WM_USER + 59)
193#define UM_RESTORE (WM_USER + 60)
194#define UM_TOPDIR (WM_USER + 61)
195#define UM_SHOWME (WM_USER + 62)
196#define UM_RESCAN2 (WM_USER + 63)
197#define UM_BUILDDRIVES (WM_USER + 64)
198#define UM_THREADUSE (WM_USER + 65)
199#define UM_DRIVECMD (WM_USER + 66)
200#define UM_ADVISEFOCUS (WM_USER + 67)
201#define UM_FIXCNRMLE (WM_USER + 68)
202#define UM_FLESH (WM_USER + 69)
203#define UM_FILLCMDLIST (WM_USER + 70)
204#define UM_CLICKED (WM_USER + 71)
205#define UM_CLICKED3 (WM_USER + 72)
206
207typedef struct {
208 USHORT size;
209 USHORT dummy;
210 CHAR szCurrentPath1[CCHMAXPATH];
211 CHAR szCurrentPath2[CCHMAXPATH];
212} WALK2;
213
214typedef struct LINKDIRS {
215 CHAR *path;
216 struct LINKDIRS *next;
217} LINKDIRS;
218
219typedef struct {
220 USHORT size;
221 USHORT numcolors;
222 USHORT flags;
223 USHORT currentcolor;
224 ULONG prompt;
225 long *colors;
226 ULONG descriptions;
227 long *origs;
228} COLORS;
229
230typedef struct LINKCMDS {
231 CHAR *cl;
232 CHAR *title;
233 ULONG flags;
234 struct LINKCMDS *next;
235 struct LINKCMDS *prev;
236} LINKCMDS;
237
238typedef struct {
239 CHAR szMask[CCHMAXPATH];
240 CHAR szMaskCopy[CCHMAXPATH];
241 CHAR *pszMasks[26];
242 ULONG attrFile;
243 ULONG antiattr;
244 BOOL fNoAttribs;
245 BOOL fShowDirs;
246 BOOL fNoDirs;
247 BOOL fIsTree;
248 BOOL fIsSeeAll;
249 BOOL fFilesIncluded;
250 BOOL fText;
251 CHAR szText[256];
252 CHAR prompt[80];
253} MASK;
254
255typedef struct {
256 CHAR *title; /* title of dialog */
257 CHAR *prompt; /* prompt to user */
258 CHAR *ret; /* buffer out, default in */
259 CHAR *help; /* help text */
260 INT inputlen; /* max len of ret */
261} STRINGINPARMS;
262
263typedef struct {
264 CHAR *source;
265 CHAR target[CCHMAXPATH];
266 BOOL rename;
267 BOOL skip;
268 BOOL dontask;
269 BOOL overold;
270 BOOL overnew;
271 BOOL overwrite;
272} MOVEIT;
273
274typedef struct HOLDFEA {
275 PFEA2 pfea;
276 CHAR *name;
277 CHAR *value;
278 BYTE fEA;
279 BYTE cbName;
280 USHORT cbValue;
281 struct HOLDFEA *next;
282} HOLDFEA;
283
284typedef struct {
285 HWND hwnd;
286 HWND hwndS;
287 USHORT type;
288 USHORT id;
289 INT flags;
290 struct __arc_type__ *info;
291 CHAR **list;
292 ULONG *ulitemID;
293 ULONG *cbFile;
294 CHAR targetpath[CCHMAXPATH + 6];
295 CHAR arcname[CCHMAXPATH];
296 CHAR runfile[CCHMAXPATH];
297} LISTINFO;
298
299typedef struct {
300 USHORT size;
301 USHORT dummy;
302 CHAR directory[CCHMAXPATH];
303 HWND hwndParent;
304 HWND hwndFrame;
305 HWND hwndClient;
306 HWND hwndCnr;
307 LISTINFO *li;
308} WORKER;
309
310typedef struct {
311 USHORT size;
312 USHORT flags;
313 USHORT cmd;
314 USHORT dummy;
315 CHAR *prompt;
316 CHAR **list;
317} CHECKLIST;
318
319typedef struct {
320 ULONG flags;
321 CHAR *commandline;
322 CHAR path[CCHMAXPATH];
323 CHAR environment[1001];
324 CHAR tempprompt[128];
325 CHAR title[80];
326 BOOL dropped;
327} EXECARGS;
328
329#pragma pack(1)
330
331#define CNRITEM_SMALLER 0x00010000
332#define CNRITEM_LARGER 0x00020000
333#define CNRITEM_NEWER 0x00040000
334#define CNRITEM_OLDER 0x00080000
335#define CNRITEM_EXISTS 0x00100000
336
337#define RECFLAGS_ENV 0x00000001
338#define RECFLAGS_NODRAG 0x00000002
339#define RECFLAGS_NODROP 0x00000004
340#define RECFLAGS_UNDERENV 0x00000008
341
342#define ARCFLAGS_REALDIR 0x00000001
343#define ARCFLAGS_PSEUDODIR 0x00000002
344
345#define CBLIST_TO_EASIZE(cb) ((cb) > 4 ? (cb) / 2 : 0) // FILEFINDBUF4.cbList to logical EA size
346
347typedef struct _CNRITEM { /* CONTAINER RECORD STRUCTURE */
348 MINIRECORDCORE rc; /* Base information */
349 HWND hwndCnr; /* The container holding this record */
350 PSZ pszFileName; // Points to szFileName - required by CFA_STRING
351 CHAR szFileName[CCHMAXPATH]; // Path name - fixme to rename to szPathName?
352 CHAR szSubject[40]; /* Subject string */
353 CHAR *pszSubject; // Points szSubject - required by CFA_STRING
354 CHAR *pszDispAttr; // Points to szDispAttr - required by CFA_STRING
355 CDATE date; /* Last write date of file */
356 CTIME time; /* Last write time of file */
357 CDATE ladate; /* Last access date of file */
358 CTIME latime; /* Last access time of file */
359 CDATE crdate; /* Creation date of file */
360 CTIME crtime; /* Creation time of file */
361 CHAR szDispAttr[6]; /* Attrib string for details display */
362 CHAR *pszLongname; // Points to szLongName - required by CFA_STRING
363 ULONGLONG cbFile; /* File size */
364 ULONGLONG easize; // Size of EAs - dirsize uses this - hack cough
365 ULONG attrFile; /* Attributes of this file */
366 ULONG flags;
367 CHAR szLongname[1]; // Holds .LONGNAME EA or root flag
368} CNRITEM, *PCNRITEM;
369
370typedef struct _ARCITEM { // ARCHIVE CONTAINER RECORD STRUCTURE
371 MINIRECORDCORE rc; // Base information
372 HWND hwndCnr; /* Container holding this record */
373 PSZ pszFileName; // Pointer to file name
374 CHAR szFileName[CCHMAXPATH]; // File name
375 CHAR szDate[40]; // File's assembled date
376 PSZ pszDate; // Pointer to date
377 CDATE date; // if we know date format
378 CTIME time; // if we know time format
379 ULONG cbFile; // File's original size
380 ULONG cbComp; // File's compressed size
381 ULONG flags;
382} ARCITEM, *PARCITEM;
383
384#pragma pack()
385
386typedef struct {
387 ULONG attrFile;
388 ULONG cbFile;
389 ULONG easize;
390 FDATE date;
391 FTIME time;
392 FDATE ladate;
393 FTIME latime;
394 FDATE crdate;
395 FTIME crtime;
396 CHAR fname[1];
397} FILELIST;
398
399typedef struct __arc_type__ {
400 CHAR *id;
401 CHAR *ext;
402 LONG file_offset;
403 CHAR *list;
404 CHAR *extract;
405 CHAR *exwdirs;
406 CHAR *test;
407 CHAR *create;
408 CHAR *move;
409 CHAR *createrecurse;
410 CHAR *createwdirs;
411 CHAR *movewdirs;
412 CHAR *delete;
413 CHAR *signature;
414 CHAR *startlist;
415 CHAR *endlist;
416 INT osizepos;
417 INT nsizepos;
418 INT fdpos;
419 INT fdflds;
420 INT fnpos;
421 INT datetype;
422 BOOL nameislast;
423 BOOL nameisnext;
424 BOOL nameisfirst;
425 struct __arc_type__ *next;
426 struct __arc_type__ *prev;
427} ARC_TYPE;
428
429typedef struct {
430 USHORT size;
431 ARC_TYPE *info;
432 CHAR *arcname;
433 CHAR masks[257];
434 CHAR command[257];
435 CHAR extractdir[1027];
436 INT ret;
437} EXTRDATA;
438
439typedef struct {
440 ARC_TYPE *info;
441 CHAR listname[CCHMAXPATH];
442 CHAR arcname[CCHMAXPATH];
443 CHAR *errmsg;
444} ARCDUMP;
445
446typedef struct DIRCNRDATA {
447 USHORT size;
448 USHORT id;
449 INT type;
450 ULONG flWindowAttr;
451 HWND hwndParent;
452 HWND hwndCnr;
453 HWND hwndObject;
454 HWND hwndFrame;
455 HWND hwndClient;
456 HWND hwndLastMenu;
457 HWND hwndExtract;
458 HWND hwndLastDirCnr;
459 HWND hwndRestore;
460 CHAR directory[CCHMAXPATH];
461 CHAR previous[CCHMAXPATH];
462 ULONG fg,bg,hifg,hibg,border;
463 PFNWP oldproc;
464 CHAR font[CCHMAXPATH];
465 MASK mask;
466 ULONGLONG ullTotalBytes;
467 ULONGLONG selectedbytes;
468 ULONG selectedfiles;
469 ULONG totalfiles;
470 BOOL cnremphasized;
471 BOOL dontclose;
472 ARC_TYPE *info;
473 CHAR arcname[CCHMAXPATH];
474 CHAR command[257];
475 CHAR stopflag;
476 CHAR workdir[CCHMAXPATH];
477 CHAR lastfilename[CCHMAXPATH];
478 BOOL namecanchange;
479 BOOL fmoving;
480 INT ret;
481 HAB hab;
482 BOOL amextracted;
483 INT lasthelp;
484 INT sortFlags;
485 BOOL detailsladate,detailslatime,detailscrdate,detailscrtime,
486 detailslongname,detailsea,detailssize,detailssubject,
487 detailslwdate,detailslwtime,detailsattr,detailsicon;
488 CHAR **lastselection;
489 USHORT shiftstate;
490 USHORT suspendview;
491 CHAR szCommonName[CCHMAXPATH];
492 ULONG lasttime;
493 BOOL arcfilled;
494 HMTX filling;
495 BOOL firsttree;
496 ULONG lastattr;
497} DIRCNRDATA;
498
499typedef struct {
500 USHORT size;
501 HWND hwndCnr;
502 CHAR directory[CCHMAXPATH];
503 BOOL collapsefirst;
504 DIRCNRDATA *dcd;
505} SHOWREC;
506
507typedef struct {
508 USHORT size;
509 USHORT dummy;
510 CHAR file1[CCHMAXPATH];
511 CHAR file2[CCHMAXPATH];
512 HWND hwndParent;
513 HWND hwndList;
514 HWND hwndReport;
515 HWND hwndHelp;
516} FCOMPARE;
517
518typedef struct COMPARE {
519 USHORT size;
520 HWND hwnd;
521 HWND hwndParent;
522 CHAR leftdir[CCHMAXPATH + 2];
523 CHAR rightdir[CCHMAXPATH + 2];
524 BOOL forcescroll;
525 BOOL filling;
526 BOOL includesubdirs;
527 INT action;
528 INT selleft;
529 INT selright;
530 INT totalleft;
531 INT totalright;
532 CHAR rightlist[CCHMAXPATH];
533 BOOL reset;
534 HWND hwndCalling;
535 struct COMPARE *cmp;
536 struct DIRCNRDATA dcd;
537} COMPARE;
538
539
540/* init.c */
541VOID FindSwapperDat(VOID);
542BOOL InitFM3DLL (HAB hab,int argc,char **argv);
543HWND StartFM3 (HAB hab,INT argc,CHAR **argv);
544
545/* filldir.c */
546VOID FillDirCnr(HWND hwndCnr,CHAR *pszDirectory,DIRCNRDATA *pdcd,
547 PULONGLONG pullBytes);
548VOID FillTreeCnr(HWND hwndCnr,HWND hwndParent);
549VOID ProcessDirectory(const HWND hwndCnr, const PCNRITEM pciParent,
550 const CHAR *szDirBase, const BOOL filestoo,
551 const BOOL recurse,const BOOL partial,
552 CHAR *stopflag,DIRCNRDATA *pdcd,
553 PULONG pullTotalFiles,
554 PULONGLONG pullTotalBytes);
555ULONGLONG FillInRecordFromFFB(HWND hwndCnr,PCNRITEM pci, const PSZ pszDirectory,
556 const PFILEFINDBUF4 pffb,const BOOL partial,
557 DIRCNRDATA *pdcd);
558ULONGLONG FillInRecordFromFSA (HWND hwndCnr,PCNRITEM pci,const PSZ pszFileName,
559 const PFILESTATUS4 pfsa4,
560 const BOOL partial,DIRCNRDATA *pdcd);
561
562/* flesh.c */
563BOOL Stubby (HWND hwndCnr,PCNRITEM pciParent);
564BOOL Flesh (HWND hwndCnr,PCNRITEM pciParent);
565BOOL FleshEnv (HWND hwndCnr,PCNRITEM pciParent);
566BOOL UnFlesh (HWND hwndCnr,PCNRITEM pciParent);
567
568/* error.c */
569VOID Win_Error (HWND hwndErr,HWND hwndOwner,
570 PSZ pszFileName,ULONG ulLineNo,CHAR *pszFmt,...);
571INT Dos_Error (ULONG mb_type,ULONG ulRC,HWND hwndOwner,
572 PSZ pszFileName,ULONG ulLineNo,CHAR *pszFmt,...);
573APIRET saymsg (ULONG mb_type,HWND hwnd,CHAR *pszTitle,CHAR *pszFmt,...);
574
575/* valid.c */
576INT CheckDrive (CHAR Drive, CHAR *FileSystem, ULONG *type);
577int TestDates (char *file1,char *file2);
578BOOL IsNewer (char *file1,char *file2);
579BOOL IsRoot (CHAR *filename);
580BOOL IsFileSame (CHAR *filename1,CHAR *filename2);
581INT IsFile (CHAR *filename);
582BOOL IsFullName (CHAR *filename);
583BOOL IsValidDir (CHAR *test);
584BOOL IsValidDrive (CHAR drive);
585CHAR *MakeValidDir (CHAR *path);
586BOOL IsExecutable (CHAR *filename);
587VOID FillInDriveFlags (VOID *dummy);
588VOID DriveFlagsOne (INT x);
589VOID ArgDriveFlags (INT argc,CHAR **argv);
590CHAR *assign_ignores (CHAR *s);
591BOOL needs_quoting (CHAR *f);
592BOOL IsBinary (CHAR *str,ULONG len);
593BOOL TestBinary (CHAR *filename);
594BOOL ParentIsDesktop (HWND hwnd,HWND hwndParent);
595BOOL IsDesktop (HAB hab,HWND hwnd);
596char *IsVowel (char a);
597VOID GetDesktopName (CHAR *objectpath,ULONG size);
598char *RootName (char *filename);
599APIRET MakeFullName (char *filename);
600
601/* misc.c */
602VOID SetShiftState (VOID);
603void EmphasizeButton (HWND hwnd,BOOL on);
604void DrawTargetEmphasis (HWND hwnd,BOOL on);
605void BoxWindow (HWND hwnd,HPS hps,LONG color);
606VOID PaintRecessedWindow (HWND hwnd,HPS hps,BOOL outtie,BOOL dbl);
607void PaintSTextWindow (HWND hwnd,HPS hps);
608BOOL AdjustCnrColVis (HWND hwndCnr,CHAR *title,BOOL visible,BOOL toggle);
609BOOL AdjustCnrColRO (HWND hwndCnr,CHAR *title,BOOL readonly,BOOL toggle);
610VOID AdjustCnrColsForFSType (HWND hwndCnr,CHAR *directory,DIRCNRDATA *dcd);
611VOID AdjustCnrColsForPref (HWND hwndCnr,CHAR *directory,DIRCNRDATA *dcd,
612 BOOL compare);
613BOOL SetCnrCols (HWND hwndCnr,BOOL compare);
614MRESULT CnrDirectEdit (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
615BOOL SetMenuCheck (HWND hwndMenu, USHORT id, BOOL *bool,BOOL toggle,
616 CHAR *savename);
617VOID disable_menuitem (HWND hwndMenu,USHORT id,BOOL enable);
618BOOL ViewHelp (CHAR *filename);
619VOID CloseHelp (VOID);
620INT ExecFile (HWND hwnd,CHAR *filename);
621VOID EmptyCnr (HWND hwnd);
622VOID SetDetailsSwitches (HWND hwnd,DIRCNRDATA *dcd);
623VOID AdjustDetailsSwitches (HWND hwnd,HWND hwndMenu,USHORT cmd,
624 CHAR *directory,CHAR *keyroot,DIRCNRDATA *dcd,
625 BOOL compare);
626VOID FreeMallocedMem (VOID *mem);
627VOID FcloseFile (FILE *fp);
628VOID SetConditionalCascade (HWND hwndMenu,USHORT id,USHORT def);
629VOID SetSortChecks (HWND hwndMenu,INT sortflags);
630VOID SetupCommandMenu (HWND hwndMenu,HWND hwndCnr);
631VOID LoadDetailsSwitches (CHAR *keyroot,DIRCNRDATA *dcd);
632HWND FindDirCnr (HWND hwndParent);
633VOID HeapThread (VOID *dummy);
634VOID FixSwitchList (HWND hwnd,CHAR *text);
635VOID QuickPopup (HWND hwnd,DIRCNRDATA *dcd,HWND hwndMenu,USHORT id);
636PMINIRECORDCORE CurrentRecord (HWND hwndCnr);
637BOOL PostMsg (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
638VOID OpenEdit (HWND hwnd);
639VOID PortholeInit (HWND hwndNew,MPARAM mp1,MPARAM mp2);
640HWND CheckMenu (HWND *hwndMenu,USHORT id);
641SHORT AddToListboxBottom (HWND hwnd,CHAR *str);
642VOID SetSysMenu (HWND hwndSysMenu);
643VOID LoadLibPath (CHAR *str,LONG len);
644void SaySort (HWND hwnd,INT sortflags,BOOL archive);
645void SayView (HWND hwnd,ULONG flWindowAttr);
646void SayFilter (HWND hwnd,MASK *mask,BOOL archive);
647void SetViewMenu (HWND hwndMenu, ULONG flWindowAttr);
648char *GetCmdSpec (BOOL dos);
649void Broadcast (HAB hab,HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
650void SetupWinList (HWND hwndMenu,HWND hwndTop,HWND hwndFrame);
651BOOL SwitchCommand (HWND hwndMenu,USHORT cmd);
652
653/* mainwnd.c */
654ULONG CountDirCnrs (HWND hwndParent);
655HWND TopWindow (HWND hwndParent,HWND exclude);
656HWND TopWindowName (HWND hwndParent,HWND exclude,CHAR *ret);
657HWND FindDirCnrByName (CHAR *directory,BOOL restore);
658MRESULT EXPENTRY MainWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
659VOID GetNextWindowPos (HWND hwndClient,PSWP pswp,ULONG *ulCntR,
660 ULONG *ulNumMinChildrenR);
661VOID TileChildren (HWND hwndClient,BOOL absolute);
662VOID FillClient (HWND hwndClient,PSWP pswp,PRECTL prectl,BOOL avoidtree);
663MRESULT EXPENTRY ToolBackProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
664MRESULT EXPENTRY DriveBackProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
665MRESULT EXPENTRY ChildButtonProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
666MRESULT EXPENTRY DriveProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
667MRESULT EXPENTRY BubbleProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
668BOOL SaveDirCnrState (HWND hwndClient,CHAR *name);
669MRESULT EXPENTRY LEDProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
670MRESULT EXPENTRY StatusProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
671VOID BuildDrives (HWND hwndT);
672VOID ResizeDrives (HWND hwndT,long xwidth);
673BOOL CloseChildren (HWND hwndClient);
674VOID BuildTools (HWND hwndT,BOOL resize);
675void BubbleHelp (HWND hwnd,BOOL other,BOOL data,BOOL above,char *help);
676VOID MakeBubble (HWND hwnd,BOOL above,CHAR *help);
677MRESULT EXPENTRY MainWMCommand (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
678VOID MakeMainObjWin (VOID *args);
679
680/* mainwnd2.c */
681MRESULT EXPENTRY MainWndProc2 (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
682MRESULT EXPENTRY FileListProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
683HWND StartFM32 (HAB hab,INT argc,CHAR **argv);
684
685/* treecnr.c */
686MRESULT EXPENTRY TreeStatProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
687MRESULT EXPENTRY TreeClientWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
688HWND StartTreeCnr (HWND hwndParent,ULONG flags);
689MRESULT EXPENTRY TreeObjWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
690VOID ShowTreeRec (HWND hwndCnr,CHAR *dirname,BOOL collapsefirst,BOOL maketop);
691MRESULT EXPENTRY OpenButtonProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
692
693/* dircnrs.c */
694MRESULT EXPENTRY DirClientWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
695HWND StartDirCnr (HWND hwndParent,CHAR *directory,HWND hwndRestore,
696 ULONG flags);
697MRESULT EXPENTRY DirTextProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
698MRESULT EXPENTRY DirFolderProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
699MRESULT EXPENTRY DirMaxProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
700MRESULT EXPENTRY DirObjWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
701
702/* presparm.c */
703VOID StoreWndPresParams (HWND hwnd,CHAR *tagname,HINI prof);
704#ifdef INCL_GPI
705 VOID SetPresParams (HWND hwnd,RGB2 *back,RGB2 *fore,RGB2 *border,CHAR *font);
706#endif
707VOID CopyPresParams (HWND target,HWND source);
708VOID IfNoParam(HWND hwnd,CHAR *keyroot,ULONG size,PVOID attrvalue);
709VOID PresParamChanged (HWND hwnd,CHAR *keyroot,MPARAM mp1,MPARAM mp2);
710VOID RestorePresParams (HWND hwnd,CHAR *keyroot);
711
712/* dirs.c */
713APIRET save_dir2 (CHAR *curdir);
714APIRET save_dir (CHAR *curdir);
715APIRET switch_to (CHAR *s);
716
717/* strips.c */
718void strip_lead_char (char *pszStripChars,char *pszSrc);
719void strip_trail_char (char *pszStripChars,char *pszSrc);
720#define lstrip(s) strip_lead_char(" \t",(s))
721#define rstrip(s) strip_trail_char(" \t",(s))
722#define stripcr(s) strip_trail_char("\r\n",(s))
723// Strip leading and trailing white
724#define bstrip(s) (strip_lead_char(" \t",(s)),strip_trail_char(" \t",(s)))
725// Strip leading and trailing white and trail cr/nl
726#define bstripcr(s) (strip_lead_char(" \t",(s)),strip_trail_char("\r\n \t",(s)))
727
728/* delims.c */
729char *skip_delim (char *a,register char *delim);
730char *to_delim (char *a,register char *delim);
731
732/* copyf.c */
733BOOL AdjustWildcardName (CHAR *oldname,CHAR *newname);
734CHAR default_disk(VOID);
735APIRET docopyf (INT type,CHAR *oldname,CHAR *newname,...);
736 #define COPY 0
737 #define MOVE 1
738 #define WPSCOPY 2
739 #define WPSMOVE 4
740INT unlinkf (CHAR *string,...);
741INT unlink_allf (CHAR *string,...);
742INT wipeallf (CHAR *string,...);
743INT make_deleteable (CHAR *filename);
744CHAR *TruncName (CHAR *oldname,CHAR *buffer);
745CHAR *GetLongName (CHAR *oldname,CHAR *buffer);
746BOOL WriteLongName (CHAR *filename,CHAR *longname);
747
748/* mkdir.c */
749APIRET SetDir (HWND hwndClient,HWND hwnd,CHAR *dir,INT flags);
750APIRET MassMkdir (HWND hwndClient,CHAR *dir);
751BOOL PMMkDir (HWND hwnd,CHAR *filename,BOOL copy);
752void SetTargetDir (HWND hwnd,BOOL justshow);
753
754/* srchpath.c */
755CHAR *first_path (CHAR *path,CHAR *ret);
756CHAR *searchapath (CHAR *path,CHAR *filename);
757CHAR *searchpath (CHAR *filename);
758
759/* literal.c */
760UINT literal(PSZ pszBuf);
761BOOL wildcard(const PSZ pszBuf,const PSZ pszWildCard,const BOOL fNotFileSpec);
762PSZ fixup (const PCH pachInBuf, PSZ pszOutBuf, const UINT cBufBytes, const UINT cInBytes);
763
764/* stristr.c */
765CHAR *stristr (const CHAR *t, const CHAR *s);
766CHAR *strnistr (register CHAR *t, CHAR *s, LONG len);
767CHAR *strnstr (register CHAR *t, CHAR *s, LONG len);
768CHAR *findstring (CHAR *findthis, ULONG lenthis, CHAR *findin,
769 ULONG lenin, BOOL insensitive);
770
771/* avl.c */
772ARC_TYPE * quick_find_type (CHAR *filespec,ARC_TYPE *topsig);
773ARC_TYPE * find_type (CHAR *filespec,ARC_TYPE *topsig);
774INT load_archivers (VOID);
775BOOL ArcDateTime (CHAR *dt,INT type,CDATE *cdate,CTIME *ctime);
776
777/* avv.c */
778VOID rewrite_archiverbb2(CHAR *archiverbb2);
779MRESULT EXPENTRY ArcReviewDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
780APIRET EditArchiverData (HWND hwnd,DIRCNRDATA *arc);
781
782/* systemf.c */
783BOOL ShowSession (HWND hwnd,PID pid);
784INT ExecOnList (HWND hwnd, CHAR *command, INT flags, CHAR *tpath,
785 CHAR **list,CHAR *prompt);
786INT runemf2 (INT type,HWND hwnd,CHAR *directory,CHAR *environment,
787 CHAR *formatstring,...);
788HAPP Exec (HWND hwndNotify,BOOL child,char *startdir,char *env,
789 PROGTYPE *progt,ULONG fl,char *formatstring,...);
790#define SYNCHRONOUS 1
791#define ASYNCHRONOUS 2
792#define DETACHED 3
793#define SEPARATE 4
794#define SEPARATEKEEP 5
795#define WINDOWED 16
796#define MAXIMIZED 32
797#define MINIMIZED 64
798#define FULLSCREEN 128
799#define INVISIBLE 256
800#define BACKGROUND 512
801#define WAIT 1024
802#define PROMPT 2048
803#define KEEP 4096
804#define ONCE 8192
805#define DIEAFTER 16384
806#define SEAMLESS 32768
807#define CHILD 65536
808
809/* cmdline.c */
810BOOL add_cmdline(CHAR *cmdline,BOOL big);
811VOID save_cmdlines (BOOL big);
812MRESULT EXPENTRY CmdLineDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
813MRESULT EXPENTRY CmdLine2DlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
814
815/* makelist.c */
816INT AddToList (CHAR *string,CHAR ***list,INT *numfiles,INT *numalloced);
817INT AddToFileList (CHAR *string,FILEFINDBUF4 *ffb4,FILELIST ***list,
818 INT *numfiles,INT *numalloced);
819CHAR ** BuildList (HWND hwndCnr);
820VOID FreeListInfo (LISTINFO *li);
821VOID FreeList (CHAR **list);
822VOID SortList (LISTINFO *li);
823CHAR ** BuildArcList (HWND hwndCnr);
824CHAR ** RemoveFromList (CHAR **list,CHAR *item);
825CHAR ** CombineLists (CHAR **prime,CHAR **add);
826
827/* chklist.c */
828VOID PosOverOkay (HWND hwnd);
829VOID CenterOverWindow (HWND hwnd);
830BOOL PopupMenu (HWND hwndParent,HWND hwndOwner,HWND hwndMenu);
831MRESULT EXPENTRY CheckListProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
832MRESULT EXPENTRY DropListProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
833
834/* eas.c */
835VOID HexDump (HWND hwnd,CHAR *value,ULONG cbValue);
836HOLDFEA *GetFileEAs (CHAR *filename,BOOL ishandle,BOOL silentfail);
837VOID Free_FEAList (HOLDFEA *pFEA);
838MRESULT EXPENTRY DisplayEAsProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
839PVOID SaveEA (CHAR *filename,HOLDFEA *current,CHAR *newdata,
840 BOOL silentfail);
841
842/* inis.c */
843MRESULT EXPENTRY IniProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
844HWND StartIniEditor (HWND hwnd,CHAR *filename,INT flags);
845
846/* subj.c */
847INT Subject (HWND hwnd,CHAR *filename);
848
849/* dirsize.c */
850MRESULT EXPENTRY DirSizeProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
851
852/* getnames.c */
853BOOL insert_filename (HWND hwnd,CHAR *filename,INT loadit,BOOL newok);
854BOOL export_filename (HWND hwnd,CHAR *filename,INT overwrite);
855MRESULT EXPENTRY CustomFileDlg (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
856
857/* input.c */
858MRESULT EXPENTRY InputDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
859
860/* select.c */
861VOID UnHilite (HWND hwndCnr,BOOL all,CHAR ***list);
862VOID SelectList (HWND hwndCnr,BOOL partial,BOOL deselect,BOOL clearfirst,
863 PCNRITEM pciParent,CHAR *filename,CHAR **list);
864VOID SelectAll (HWND hwndCnr,BOOL files,BOOL dirs,CHAR *mask,CHAR *text,
865 BOOL arc);
866VOID DeselectAll (HWND hwndCnr,BOOL files,BOOL dirs,CHAR *mask,CHAR *text,
867 BOOL arc);
868VOID Deselect (HWND hwndCnr);
869VOID HideAll (HWND hwndCnr);
870VOID RemoveAll (HWND hwndCnr,ULONGLONG *ullTotalBytes,ULONG *totalfiles);
871VOID MarkAll (HWND hwndCnr,BOOL quitit,BOOL target,BOOL source);
872VOID SetMask (CHAR *str,MASK *mask);
873VOID ExpandAll (HWND hwndCnr,BOOL expand,PCNRITEM pciParent);
874VOID InvertAll (HWND hwndCnr);
875VOID SpecialSelect (HWND hwndCnrS,HWND hwndCnrD,INT action,BOOL reset);
876VOID SpecialSelect2 (HWND hwndParent,INT action);
877
878/* viewer.c */
879MRESULT EXPENTRY MLEEditorProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
880HWND StartMLEEditor (HWND hwnd,INT flags,CHAR *filename,HWND hwndRestore);
881
882/* codepage.c */
883INT PickCodepage (HWND hwnd);
884
885/* fonts.c */
886VOID SetFont (HWND hwnd);
887FATTRS * SetMLEFont (HWND hwndMLE, FATTRS *fattrs, ULONG flags);
888VOID SetPresParamFromFattrs (HWND hwnd,FATTRS *fattrs,
889 SHORT sNominalPointSize,
890 FIXED fxPointSize);
891
892/* saveclip.c */
893BOOL SaveToClip (HWND hwnd,CHAR *text,BOOL append);
894VOID ListToClipboard (HWND hwnd,CHAR **list,BOOL append);
895CHAR ** ListFromClipboard (HWND hwnd);
896BOOL SaveToClipHab (HAB hab,CHAR *text,BOOL append);
897VOID ListToClipboardHab (HAB hab,CHAR **list,BOOL append);
898CHAR ** ListFromClipboardHab (HAB hab);
899MRESULT EXPENTRY SaveListDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
900MRESULT EXPENTRY SaveAllListDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
901
902/* filter.c */
903INT APIENTRY Filter (PMINIRECORDCORE rmini,PVOID arg);
904BOOL FilterAttrs (PCNRITEM pci,MASK *mask);
905VOID save_masks (VOID);
906MRESULT EXPENTRY PickMaskDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
907
908/* archive.c */
909MRESULT EXPENTRY ArchiveDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
910MRESULT EXPENTRY SBoxDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
911
912/* extract.c */
913MRESULT EXPENTRY ExtractDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
914
915/* walkem.c */
916VOID load_udirs (VOID);
917VOID save_udirs (VOID);
918BOOL add_udir (BOOL userdirs,CHAR *inpath);
919BOOL remove_udir (CHAR *path);
920BOOL remove_ldir (CHAR *path);
921VOID load_setups (VOID);
922VOID save_setups (VOID);
923BOOL add_setup (CHAR *name);
924BOOL remove_setup (CHAR *name);
925VOID FillPathListBox (HWND hwnd,HWND hwnddrive,HWND hwnddir,CHAR *path,
926 BOOL nounwriteable);
927MRESULT EXPENTRY WalkDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
928MRESULT EXPENTRY WalkAllDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
929MRESULT EXPENTRY WalkCopyDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
930MRESULT EXPENTRY WalkMoveDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
931MRESULT EXPENTRY WalkExtractDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
932MRESULT EXPENTRY WalkTargetDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
933MRESULT EXPENTRY WalkTwoDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
934MRESULT EXPENTRY WalkTwoCmpDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,
935 MPARAM mp2);
936MRESULT EXPENTRY WalkTwoSetDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,
937 MPARAM mp2);
938
939/* arccnrs.c */
940MRESULT EXPENTRY ArcClientWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
941HWND StartArcCnr (HWND hwndParent,HWND hwndCaller,CHAR *arcname,INT flags,
942 ARC_TYPE *sinfo);
943MRESULT EXPENTRY ArcTextProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
944MRESULT EXPENTRY ArcFolderProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
945MRESULT EXPENTRY ArcObjWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
946
947/* assoc.c */
948INT ExecAssociation (HWND hwnd, CHAR *datafile);
949VOID EditAssociations (HWND hwnd);
950VOID load_associations (VOID);
951VOID save_associations (VOID);
952
953/*draglist.c */
954HWND DoFileDrag (HWND hwndCnr,HWND hwndObj,PCNRDRAGINIT pcd,CHAR *arcfile,
955 CHAR *directory,BOOL moveok);
956HWND DragOne (HWND hwndCnr,HWND hwndObj,CHAR *filename,BOOL moveok);
957HWND DragList(HWND hwnd,HWND hwndObj,CHAR **list,BOOL moveok);
958BOOL PickUp (HWND hwndCnr,HWND hwndObj,PCNRDRAGINIT pcd);
959
960/* droplist.c */
961ULONG FreeDrop (MPARAM mp1,MPARAM mp2);
962void DropHelp (MPARAM mp1,MPARAM mp2,HWND hwnd,char *text);
963BOOL AcceptOneDrop (MPARAM mp1,MPARAM mp2);
964BOOL GetOneDrop (MPARAM mp1,MPARAM mp2,char *buffer,ULONG buflen);
965BOOL FullDrgName (PDRAGITEM pDItem,CHAR *buffer,ULONG buflen);
966BOOL TwoDrgNames (PDRAGITEM pDItem,CHAR *buffer1,ULONG buflen1,
967 char *buffer2,ULONG buflen2);
968LISTINFO * DoFileDrop (HWND hwndCnr, CHAR *directory, BOOL arcfilesok,
969 MPARAM mp1, MPARAM mp2);
970
971/* shadow.c */
972HOBJECT CreateProgramObject (CHAR *objtitle,CHAR *location,CHAR *path,CHAR *cnr);
973HOBJECT CreateDataObject (CHAR *objtitle,CHAR *location,CHAR *path,CHAR *cnr);
974HOBJECT CreateFolderObject (CHAR *objtitle,CHAR *cnr);
975HOBJECT CreateShadowObject (CHAR *objtitle,CHAR *location,CHAR *path,
976 BOOL executable,CHAR *cnr);
977VOID MakeShadows (HWND hwnd,CHAR **list,ULONG Shadows,CHAR *cnr,
978 CHAR *foldername);
979VOID OpenObject (CHAR *filename,CHAR *type,HWND hwnd);
980BOOL RunSeamless (CHAR *exename,CHAR *args,HWND hwnd);
981
982/* printer.c */
983BOOL PrinterReady (CHAR *printdevname);
984BOOL SayPrinterReady (HWND hwnd);
985VOID PrintList (VOID *arg);
986MRESULT EXPENTRY PrintDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
987
988/* attribs.c */
989MRESULT EXPENTRY AttrListDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
990
991/* rename.c */
992MRESULT EXPENTRY RenameProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
993
994/* comp.c */
995MRESULT EXPENTRY CFileDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
996MRESULT EXPENTRY CompareDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
997
998/* findrec.c */
999PCNRITEM FindCnrRecord (HWND hwndCnr,CHAR *filename,PCNRITEM pciParent,
1000 BOOL partial,BOOL partmatch,BOOL noenv);
1001PCNRITEM FindParentRecord (HWND hwndCnr,PCNRITEM pciC);
1002VOID ShowCnrRecord (HWND hwndCnr,PMINIRECORDCORE pmi);
1003
1004/* update.c */
1005PCNRITEM UpdateCnrRecord (HWND hwndCnr,CHAR *filename,BOOL partial,
1006 DIRCNRDATA *dcd);
1007BOOL UpdateCnrList (HWND hwndCnr,CHAR **filename,INT howmany,BOOL partial,
1008 DIRCNRDATA *dcd);
1009
1010/* info.c */
1011MRESULT EXPENTRY DrvInfoProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1012MRESULT EXPENTRY FileInfoProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1013MRESULT EXPENTRY SetDrvProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1014
1015/* fsopen.c */
1016FILE * _fsopen (CHAR *filename,CHAR *mode,INT sharemode,...);
1017
1018/* seticon.c */
1019MRESULT EXPENTRY SetIconDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1020
1021/* objcnr.c */
1022MRESULT EXPENTRY ObjCnrDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1023
1024/* sortcnr.c */
1025SHORT APIENTRY SortTreeCnr (PMINIRECORDCORE p1,PMINIRECORDCORE p2,
1026 PVOID pStorage);
1027SHORT APIENTRY SortDirCnr (PMINIRECORDCORE p1,PMINIRECORDCORE p2,
1028 PVOID pStorage);
1029SHORT APIENTRY SortCollectorCnr (PMINIRECORDCORE p1,PMINIRECORDCORE p2,
1030 PVOID pStorage);
1031SHORT SortCnr (PMINIRECORDCORE p1,PMINIRECORDCORE p2,INT Sortflags);
1032
1033/* collect.c */
1034MRESULT EXPENTRY CollectorClientWndProc (HWND hwnd,ULONG msg,MPARAM mp1,
1035 MPARAM mp2);
1036MRESULT EXPENTRY CollectorTextProc (HWND hwnd,ULONG msg,MPARAM mp1,
1037 MPARAM mp2);
1038HWND StartCollector (HWND hwndParent,INT flags);
1039MRESULT EXPENTRY CollectorObjWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1040
1041/* command.c */
1042VOID RunCommand (HWND hwnd,INT cx);
1043VOID EditCommands (HWND hwnd);
1044CHAR *command_title (INT cx);
1045VOID load_commands (VOID);
1046
1047/* instant.c */
1048MRESULT EXPENTRY InstantDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1049
1050/* undel.c */
1051MRESULT EXPENTRY UndeleteDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1052
1053/* killproc.c */
1054MRESULT EXPENTRY KillDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1055
1056/* sysinfo.c */
1057MRESULT EXPENTRY SysInfoDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1058
1059/* objwin.c */
1060MRESULT EXPENTRY ObjectWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1061VOID MakeObjWin (VOID *args);
1062
1063/* progstup.c */
1064MRESULT EXPENTRY ProgDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1065
1066/* key.c */
1067MRESULT EXPENTRY AboutDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1068
1069/* notify.c */
1070MRESULT EXPENTRY NotifyWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1071HWND Notify (char *text);
1072HWND DoNotify (char *text);
1073VOID NotifyError (CHAR *filename,APIRET error);
1074BOOL StartNotes (CHAR *s);
1075BOOL AddNote (CHAR *note);
1076VOID EndNote (VOID);
1077VOID ShowNote (VOID);
1078VOID HideNote (VOID);
1079
1080/* winlist.c */
1081VOID WindowList(HWND hwnd);
1082
1083/* viewinf.c */
1084MRESULT EXPENTRY ViewInfProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1085
1086/* notebook.c */
1087MRESULT EXPENTRY CfgDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1088
1089/* commafmt.c */
1090size_t commafmt(PSZ pszBuf,UINT cBufSize,LONG lNumber);
1091size_t CommaFmtUL(char *pszBuf,UINT cBufSize,ULONG ullNumber,
1092 CHAR chPreferred);
1093size_t CommaFmtULL(char *pszBuf,UINT cBufSize,ULONGLONG ullNumber,
1094 CHAR chPreferred);
1095
1096/* autoview.c */
1097BOOL WriteEA (HWND hwnd,CHAR *filename,CHAR *eaname,USHORT type,CHAR *data);
1098BOOL PutComments (HWND hwnd,CHAR *filename,CHAR *comments);
1099MRESULT EXPENTRY AutoViewProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1100ULONG CreateHexDump (CHAR *value,ULONG cbValue,CHAR *ret,ULONG retlen,
1101 ULONG startval,BOOL longlead);
1102
1103/* menu.c */
1104BOOL AddToMenu (CHAR *filename,HWND hwndMenu);
1105
1106/* worker.c */
1107VOID MassAction (VOID *args);
1108VOID Action (VOID *args);
1109
1110/* fm2cmd.c */
1111BOOL FM2Command (CHAR *directory,CHAR *command);
1112
1113/* seeall.c */
1114MRESULT EXPENTRY SeeAllWndProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
1115MRESULT EXPENTRY SeeStatusProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
1116HWND StartSeeAll (HWND hwndParent,BOOL standalone,CHAR *startpath);
1117
1118/* newview.c */
1119MRESULT EXPENTRY ViewWndProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
1120MRESULT EXPENTRY ViewStatusProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
1121HWND StartViewer (HWND hwndParent,USHORT flags,CHAR *filename,
1122 HWND hwndRestore);
1123
1124/* colors.c */
1125MRESULT EXPENTRY ColorDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1126
1127/* defview.c */
1128BOOL ShowMultimedia (CHAR *filename);
1129VOID DefaultView (HWND hwnd,HWND hwndFrame,HWND hwndParent,SWP *swp,
1130 ULONG flags,CHAR *filename);
1131VOID DefaultViewKeys (HWND hwnd,HWND hwndFrame,HWND hwndParent,
1132 SWP *swp,CHAR *filename);
1133#define QuickView(h,f) DefaultView(h,(HWND)0,(HWND)0,NULL,0,f)
1134#define QuickEdit(h,f) DefaultView(h,(HWND)0,(HWND)0,NULL,8,f)
1135
1136/* catalog.c */
1137MRESULT EXPENTRY CatalogProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1138
1139/* uudecode.c */
1140int UUD (char *filename,char *outname);
1141MRESULT EXPENTRY MergeDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1142
1143/* loadbmp.c */
1144HBITMAP LoadBitmapFromFileNum (USHORT id);
1145HBITMAP LoadBitmapFromFile (CHAR *pszFileName);
1146
1147/* remap.c */
1148MRESULT EXPENTRY RemapDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1149
1150/* timer.c */
1151BOOL StartTimer (void);
1152void StopTimer (void);
1153
1154/* grep2.c */
1155MRESULT EXPENTRY GrepDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1156
1157/* common.c */
1158MRESULT EXPENTRY CommonFrameWndProc (USHORT id,
1159 HWND hwnd,
1160 ULONG msg,
1161 MPARAM mp1,
1162 MPARAM mp2);
1163MRESULT EXPENTRY CommonTextProc (HWND hwnd,
1164 ULONG msg,
1165 MPARAM mp1,
1166 MPARAM mp2);
1167void CommonTextPaint (HWND hwnd,HPS hps);
1168void CommonCreateTextChildren (HWND hwnd,char *class,USHORT *ids);
1169void CommonDriveCmd (HWND hwnd,char *drive,USHORT cmd);
1170void CommonCreateMainChildren (HWND hwnd,SWP *swp);
1171MRESULT EXPENTRY CommonMainWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1172MRESULT EXPENTRY CommonTextButton (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1173MRESULT EXPENTRY CommonCnrProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1174HWND OpenDirCnr (HWND hwnd,HWND hwndParent,HWND hwndRestore,
1175 BOOL noautotile,char *directory);
1176
1177/* string.c */
1178BOOL LoadStrings (char *filename);
1179char *GetPString (ULONG id);
1180BOOL StringsLoaded (void);
1181
1182#ifdef DEFINE_GLOBALS
1183 #define DATADEF
1184#else
1185 #define DATADEF extern
1186#endif
1187
1188DATADEF ARC_TYPE *arcsighead;
1189DATADEF USHORT nodes,shiftstate;
1190DATADEF HEV CompactSem;
1191DATADEF HWND hwndMain,hwndTree,hwndStatus,hwndStatus2,hwndTrash,
1192 hwndButtonlist,hwndDrivelist,hwndStatelist,hwndUserlist,
1193 hwndAutoview,hwndAttr,hwndDate,hwndName,hwndBack,
1194 hwndLED,hwndLEDHdr,hwndAutoMLE,hwndCmdlist;
1195DATADEF HBITMAP hbmLEDon,hbmLEDoff;
1196DATADEF CHAR ArcTempRoot[9];
1197DATADEF HPOINTER hptrArrow,hptrBusy,hptrLast,hptrDir,hptrFile,hptrRemote,
1198 hptrFloppy,hptrDrive,hptrRemovable,hptrCDROM,
1199 hptrFinger,hptrApp,hptrDunno,hptrSystem,hptrHidden,
1200 hptrReadonly,hptrNS,hptrZipstrm,hptrArc,hptrArt,hptrEW,
1201 hptrCommon,hptrEnv;
1202DATADEF PFNWP PFNWPCnr,PFNWPFrame,PFNWPButton,PFNWPStatic,PFNWPMLE;
1203DATADEF BOOL fLoadSubject,fLoadLongnames,fForceUpper,fForceLower,
1204 fSyncUpdates,fAutoTile,fDontMoveMouse,loadedudirs,
1205 fUnHilite,fWorkPlace,fConfirmDelete,fToolbar,
1206 fToolsChanged,MenuInvisible,fFreeTree,fFollowTree,
1207 fNoIconsFiles,fNoIconsDirs,fVerify,fDCOpens,
1208 fLinkSetsIcon,fSaveState,fTextTools,fCopyDefault,
1209 fToolTitles,fLogFile,fRealIdle,fNoSaveState,
1210 fSplitStatus,fArcStuffVisible,fUseMCI,fAmAV2,
1211 fNoTreeGap,fDummy,fVTreeOpensWPS,fUseQProcStat,
1212 fStartMinimized,fStartMaximized,fRemoteBug,fReminimize,
1213 fDragndropDlg,fMinOnOpen,fUserComboBox,loadedsetups,
1214 fQuickArcFind,fNoRemovableScan,fAutoView,fDataMin,
1215 fDataToFore,fDataShowDrives,fDataInclRemote,
1216 fExternalArcboxes,fExternalViewer,fExternalCollector,
1217 fExternalINIs,fDefaultDeletePerm,fIniExisted,fUseNewViewer,
1218 fTileBackwards,fFolderAfterExtract,fUserListSwitches,
1219 fGuessType,fAutoAddDirs,fUdirsChanged,fSelectedAlways,
1220 fToolbarHelp,fComments,fMoreButtons,fNoSearch,fOtherHelp,
1221 fKeepCmdLine,fAmClosing,fSeparateParms,fTopDir,
1222 fLookInDir,fSwitchTree,fSwitchTreeOnFocus,fDrivebar,
1223 fSwitchTreeExpand,fCollapseFirst,fFilesInTree,fNoDead,
1224 fThreadNotes,fOkayMinimize,fRunning,fDullMin,fBlueLED,
1225 fViewChild,fShowEnv,fLeaveTree,fAddUtils,fNoFoldMenu,
1226 fCustomFileDlg,fSaveMiniCmds,fSaveBigCmds,fNoTileUpdate,
1227 fFM2Deletes,fAutoAddAllDirs,fConfirmTarget,fChangeTarget,
1228 fFirstTime,fShowTarget,fNoFinger,fDrivebarHelp,fCheckMM;
1229DATADEF BOOL detailsladate,detailslatime,detailscrdate,detailscrtime,
1230 detailslongname,detailsea,detailssize,detailssubject,
1231 detailslwdate,detailslwtime,detailsattr,detailsicon;
1232DATADEF PID mypid;
1233DATADEF INT driveflags[26],driveserial[26];
1234DATADEF ULONG NoBrokenNotify,fwsAnimate,OS2ver[2],DriveLines;
1235DATADEF HINI fmprof;
1236DATADEF HELPINIT hini;
1237DATADEF HWND hwndHelp,LastDir,AboutBox,DirMenu,FileMenu,TreeMenu,
1238 ArcMenu,DirCnrMenu,TreeCnrMenu,ArcCnrMenu,
1239 CollectorCnrMenu,CollectorFileMenu,CollectorDirMenu,
1240 Collector,MainPopupMenu,DataHwnd,AutoMenu,hwndBubble,
1241 hwndToolback,MainObjectHwnd;
1242#ifdef DEFINE_GLOBALS
1243 #pragma data_seg(GLOBAL2)
1244#endif
1245DATADEF CHAR *DEBUG_STRING,*FM3Str,*FM2Str,*NullStr,*Default,*Settings,
1246 *DRM_OS2FILE,*DRM_FM2ARCMEMBER,*DRF_FM2ARCHIVE,
1247 *DRMDRFLIST,*DRMDRFOS2FILE,*DRMDRFFM2ARC,
1248 *DRM_FM2INIRECORD,*DRF_FM2INI,*SUBJECT,*LONGNAME,
1249 *HPFS,*JFS,*CDFS,*FAT32,*HPFS386,*CBSIFS,*WPProgram,*FM3Folder,*FM3Tools;
1250DATADEF RGB2 RGBGREY,RGBBLACK;
1251DATADEF CHAR archiverbb2[CCHMAXPATH],StopPrinting,profile[CCHMAXPATH];
1252DATADEF CHAR appname[12],realappname[12];
1253DATADEF CHAR editor[CCHMAXPATH],viewer[CCHMAXPATH],
1254 virus[CCHMAXPATH],printer[CCHMAXPATH],
1255 compare[CCHMAXPATH],extractpath[CCHMAXPATH],
1256 lastextractpath[CCHMAXPATH],lasttoolbox[CCHMAXPATH],
1257 HomePath[CCHMAXPATH],SwapperDat[CCHMAXPATH],
1258 binview[CCHMAXPATH],bined[CCHMAXPATH],
1259 dircompare[CCHMAXPATH],szDefArc[CCHMAXPATH],
1260 ftprun[CCHMAXPATH],httprun[CCHMAXPATH],
1261 targetdir[CCHMAXPATH];
1262DATADEF HMODULE FM3DllHandle,FM3ModHandle;
1263DATADEF CHAR *quicktool[50];
1264DATADEF BOOL qtloaded;
1265DATADEF INT sortFlags,TreesortFlags,CollectorsortFlags;
1266DATADEF INT butxsize,butysize;
1267DATADEF FILE *LogFileHandle;
1268DATADEF ULONG ulCnrType,FilesToGet,AutoviewHeight,TreeWidth,FM3UL;
1269DATADEF long prnwidth,prnlength,prntmargin,prnbmargin,prnlmargin,
1270 prnrmargin,prnspacing,prntabspaces;
1271DATADEF BOOL prnpagenums,prnformat,prnformfeedbefore,prnformfeedafter,
1272 prnalt;
1273DATADEF LINKDIRS *udirhead,*ldirhead;
1274DATADEF LINKCMDS *cmdhead,*cmdtail;
1275DATADEF BOOL cmdloaded;
1276#ifdef DEFINE_GLOBALS
1277 #pragma data_seg(GLOBAL3)
1278#endif
1279#define MAXNUMSETUPS 100
1280DATADEF CHAR lastsetups[MAXNUMSETUPS][13];
1281DATADEF INT lastsetup;
1282DATADEF LONG standardcolors[16];
1283
1284#ifdef INCL_MMIOOS2
1285#pragma pack(4)
1286/* definitions for MMPM/2 imports */
1287typedef DWORD (APIENTRY MMIOIDENTIFYFILE)(PSZ,PMMIOINFO,PMMFORMATINFO,PFOURCC,DWORD,DWORD);
1288typedef MMIOIDENTIFYFILE *PMMIOIDENTIFYFILE;
1289#pragma pack()
1290#endif
1291
1292#ifdef DEFINE_GLOBALS
1293 #pragma data_seg(GLOBAL4)
1294#endif
1295DATADEF HSWITCH switches[499];
1296DATADEF ULONG numswitches;
1297
1298#define priority_idle() DosSetPriority(PRTYS_THREAD,PRTYC_IDLETIME,30L,0L)
1299#define priority_normal() DosSetPriority(PRTYS_THREAD,PRTYC_REGULAR,0L,0L)
1300#define priority_tweaked() DosSetPriority(PRTYS_THREAD,PRTYC_REGULAR,1L,0L)
1301#define priority_bumped() DosSetPriority(PRTYS_THREAD,PRTYC_REGULAR,3L,0L)
1302#define priority_critical() DosSetPriority(PRTYS_THREAD,PRTYC_FOREGROUNDSERVER,2L,0L)
1303#define priority_max() DosSetPriority(PRTYS_THREAD,PRTYC_FOREGROUNDSERVER,31L,0L)
1304#define SysVal(value) WinQuerySysValue(HWND_DESKTOP, (value))
1305
Note: See TracBrowser for help on using the repository browser.