source: trunk/dll/fm3dll.h@ 78

Last change on this file since 78 was 70, checked in by root, 22 years ago

Add JFS and FAT32 support

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