source: trunk/dll/fm3dll.h@ 130

Last change on this file since 130 was 120, checked in by root, 21 years ago

Optimze strippers
Drop avv local functions

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