source: trunk/dll/fm3dll.h@ 56

Last change on this file since 56 was 49, checked in by root, 23 years ago

Add CBLIST_TO_EASIZE

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