source: trunk/dll/fm3dll.h@ 91

Last change on this file since 91 was 88, checked in by root, 21 years ago

Drop hundfmt

  • 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 88 2004-05-21 15:13:42Z root $
5
6 Common definitions
7
8 Copyright (c) 1993-98 M. Kimes
9 Copyright (c) 2001, 2004 Steven H.Levine
10
11 Revisions 12 Feb 03 SHL - Add CBLIST_TO_EASIZE
12 11 Jun 03 SHL - Add JFS and FAT32 support
13 06 Jan 04 SHL - Drop hundfmt
14
15***********************************************************************/
16
17#ifdef DEFINE_GLOBALS
18 #pragma data_seg(GLOBAL1)
19#endif
20
21#define PP_MAX PP_MENUDISABLEBGNDCOLORINDEX
22#define PP_MAXBUF 384
23
24#ifndef MM_PORTHOLEINIT
25 #define MM_PORTHOLEINIT 0x01fb
26#endif
27#ifndef MS_POPUP
28 #define MS_POPUP 0x00000010L
29#endif
30#ifndef CCS_MINIICONS
31 #define CCS_MINIICONS 0x0800
32#endif
33#ifndef CRA_SOURCE
34 #define CRA_SOURCE 0x00004000
35#endif
36#ifndef CV_EXACTMATCH
37 #define CV_EXACTMATCH 0x10000000
38#endif
39#ifndef CBN_SETFOCUS
40 #define CBN_SETFOCUS 20
41#endif
42#ifndef CBN_KILLFOCUS
43 #define CBN_KILLFOCUS 21
44#endif
45#ifndef CN_VERIFYEDIT
46 #define CN_VERIFYEDIT 134
47#endif
48#ifndef CN_PICKUP
49 #define CN_PICKUP 135
50#endif
51#ifndef CN_DROPNOTIFY
52 #define CN_DROPNOTIFY 136
53#endif
54#ifndef CN_GRIDRESIZED
55 #define CN_GRIDRESIZED 137
56#endif
57#ifndef BKS_MERLINSTYLE
58 #define BKS_MERLINSTYLE 0x0800
59#endif
60#ifndef PMBITMAP_INCLUDED
61 typedef struct _RGB2 /* rgb2 */
62 {
63 BYTE bBlue; /* Blue component of the color definition */
64 BYTE bGreen; /* Green component of the color definition*/
65 BYTE bRed; /* Red component of the color definition */
66 BYTE fcOptions; /* Reserved, must be zero */
67 } RGB2;
68 typedef RGB2 *PRGB2;
69#endif
70
71 /**************************************************/
72 /* Lazy Drag API's. */
73 /**************************************************/
74 BOOL APIENTRY DrgLazyDrag( HWND hwndSource,
75 PDRAGINFO pdinfo,
76 PDRAGIMAGE pdimg,
77 ULONG cdimg,
78 PVOID pRsvd );
79
80 BOOL APIENTRY DrgCancelLazyDrag( VOID );
81
82 BOOL APIENTRY DrgLazyDrop( HWND hwndTarget,
83 ULONG ulOperation,
84 PPOINTL pptlDrop );
85
86 PDRAGINFO APIENTRY DrgQueryDraginfoPtr( PDRAGINFO pRsvd );
87
88 PDRAGINFO APIENTRY DrgQueryDraginfoPtrFromHwnd( HWND hwndSource );
89
90 PDRAGINFO APIENTRY DrgQueryDraginfoPtrFromDragitem( PDRAGITEM pditem );
91
92 ULONG APIENTRY DrgQueryDragStatus(VOID);
93
94 PDRAGINFO APIENTRY DrgReallocDraginfo (PDRAGINFO pdinfoOld,
95 ULONG cditem);
96 /* Drag Status Flags */
97 #define DGS_DRAGINPROGRESS 0x0001 /* Standard Drag in Progress. */
98 #define DGS_LAZYDRAGINPROGRESS 0x0002 /* Lazy Drag in Progress. */
99
100#define NUMLINES 21
101#define CON_COLS 6
102#define INSTDATA(h) WinQueryWindowPtr(h,0)
103#define DIR_SPLITBAR_OFFSET 18 * 12 /* Pixel offset of details splitbar */
104#define CONTAINER_COLUMNS 13 /* Number of columns in details view */
105#define RGBFROMPARTS(r,g,b) (((r) * 65536) + ((g) * 256) + (b))
106#define EXTRA_RECORD_BYTES2 (sizeof(CNRITEM) - sizeof(MINIRECORDCORE))
107#define EXTRA_RECORD_BYTES (EXTRA_RECORD_BYTES2 + (CCHMAXPATHCOMP - 1))
108#define EXTRA_ARCRECORD_BYTES (sizeof(ARCITEM) - sizeof(MINIRECORDCORE))
109#define ALLATTRS (FILE_NORMAL | FILE_DIRECTORY | FILE_ARCHIVED |\
110 FILE_HIDDEN | FILE_READONLY | FILE_SYSTEM)
111#define LISTTEMPROOT "$FM2LI$T."
112
113#include "fm3dll2.h" // SHL
114
115#define UM_PAINT (WM_USER)
116#define UM_SETUP (WM_USER + 1)
117#define UM_RESCAN (WM_USER + 2)
118#define UM_INITIALSIZE (WM_USER + 3)
119#define UM_CONTROL (WM_USER + 4)
120#define UM_COMMAND (WM_USER + 5)
121#define UM_SIZE (WM_USER + 6)
122#define UM_FOCUSME (WM_USER + 7)
123#define UM_FIXEDITNAME (WM_USER + 8)
124#define UM_UPDATERECORD (WM_USER + 9)
125#define UM_SETDIR (WM_USER + 10)
126#define UM_CONTAINER_FILLED (WM_USER + 11)
127#define UM_STRETCH (WM_USER + 12)
128#define UM_LOADFILE (WM_USER + 13)
129#define UM_MOUSEMOVE (WM_USER + 14)
130#define UM_ENTER (WM_USER + 15)
131#define UM_CLOSE (WM_USER + 16)
132#define UM_ACTION (WM_USER + 17)
133#define UM_MASSACTION (WM_USER + 18)
134#define UM_UPDATERECORDLIST (WM_USER + 19)
135#define UM_FILESMENU (WM_USER + 20)
136#define UM_SELECT (WM_USER + 21)
137#define UM_VIEWSMENU (WM_USER + 22)
138#define UM_CONTAINERHWND (WM_USER + 23)
139#define UM_OPENWINDOWFORME (WM_USER + 24)
140#define UM_FOLDUP (WM_USER + 25)
141#define UM_INITMENU (WM_USER + 26)
142#define UM_COMPARE (WM_USER + 27)
143#define UM_EXPAND (WM_USER + 28)
144#define UM_REPLACEFOCUS (WM_USER + 29)
145#define UM_UNDO (WM_USER + 30)
146#define UM_RENDER (WM_USER + 31)
147#define UM_BUTTON2DOWN (WM_USER + 32)
148#define UM_BUTTON2UP (WM_USER + 33)
149#define UM_COLLECTFROMFILE (WM_USER + 34)
150#define UM_TIMER (WM_USER + 35)
151#define UM_HELPON (WM_USER + 36)
152#define UM_SETUP2 (WM_USER + 37)
153#define UM_SETUP3 (WM_USER + 38)
154#define UM_CONTEXTMENU (WM_USER + 39)
155#define UM_FILLUSERLIST (WM_USER + 40)
156#define UM_CONTAINERDIR (WM_USER + 41)
157#define UM_SETUP4 (WM_USER + 42)
158#define UM_FILLSETUPLIST (WM_USER + 43)
159#define UM_ARRANGEICONS (WM_USER + 44)
160#define UM_SETUP5 (WM_USER + 45)
161#define UM_NOTIFY (WM_USER + 46)
162#define UM_INSERTRECORD (WM_USER + 47)
163#define UM_ADDTOMENU (WM_USER + 48)
164#define UM_COLLECT (WM_USER + 49)
165#define UM_RESTOREDC (WM_USER + 50)
166#define UM_MINIMIZE (WM_USER + 51)
167#define UM_MAXIMIZE (WM_USER + 52)
168#define UM_BUTTON1MOTIONSTART (WM_USER + 53)
169#define UM_SETUP6 (WM_USER + 54)
170#define UM_FILLBUTTONLIST (WM_USER + 55)
171#define UM_SETUSERLISTNAME (WM_USER + 56)
172#define UM_FILTER (WM_USER + 57)
173#define UM_SORTRECORD (WM_USER + 58)
174#define UM_SIZE2 (WM_USER + 59)
175#define UM_RESTORE (WM_USER + 60)
176#define UM_TOPDIR (WM_USER + 61)
177#define UM_SHOWME (WM_USER + 62)
178#define UM_RESCAN2 (WM_USER + 63)
179#define UM_BUILDDRIVES (WM_USER + 64)
180#define UM_THREADUSE (WM_USER + 65)
181#define UM_DRIVECMD (WM_USER + 66)
182#define UM_ADVISEFOCUS (WM_USER + 67)
183#define UM_FIXCNRMLE (WM_USER + 68)
184#define UM_FLESH (WM_USER + 69)
185#define UM_FILLCMDLIST (WM_USER + 70)
186#define UM_CLICKED (WM_USER + 71)
187#define UM_CLICKED3 (WM_USER + 72)
188
189typedef struct {
190 USHORT size;
191 USHORT dummy;
192 CHAR szCurrentPath1[CCHMAXPATH];
193 CHAR szCurrentPath2[CCHMAXPATH];
194} WALK2;
195
196typedef struct LINKDIRS {
197 CHAR *path;
198 struct LINKDIRS *next;
199} LINKDIRS;
200
201typedef struct {
202 USHORT size;
203 USHORT numcolors;
204 USHORT flags;
205 USHORT currentcolor;
206 ULONG prompt;
207 long *colors;
208 ULONG descriptions;
209 long *origs;
210} COLORS;
211
212typedef struct LINKCMDS {
213 CHAR *cl;
214 CHAR *title;
215 ULONG flags;
216 struct LINKCMDS *next;
217 struct LINKCMDS *prev;
218} LINKCMDS;
219
220typedef struct {
221 CHAR szMask[CCHMAXPATH];
222 CHAR szMaskCopy[CCHMAXPATH];
223 CHAR *pszMasks[26];
224 ULONG attrFile;
225 ULONG antiattr;
226 BOOL fNoAttribs;
227 BOOL fShowDirs;
228 BOOL fNoDirs;
229 BOOL fIsTree;
230 BOOL fIsSeeAll;
231 BOOL fFilesIncluded;
232 BOOL fText;
233 CHAR szText[256];
234 CHAR prompt[80];
235} MASK;
236
237typedef struct {
238 CHAR *title; /* title of dialog */
239 CHAR *prompt; /* prompt to user */
240 CHAR *ret; /* buffer out, default in */
241 CHAR *help; /* help text */
242 INT inputlen; /* max len of ret */
243} STRINGINPARMS;
244
245typedef struct {
246 CHAR *source;
247 CHAR target[CCHMAXPATH];
248 BOOL rename;
249 BOOL skip;
250 BOOL dontask;
251 BOOL overold;
252 BOOL overnew;
253 BOOL overwrite;
254} MOVEIT;
255
256typedef struct HOLDFEA {
257 PFEA2 pfea;
258 CHAR *name;
259 CHAR *value;
260 BYTE fEA;
261 BYTE cbName;
262 USHORT cbValue;
263 struct HOLDFEA *next;
264} HOLDFEA;
265
266typedef struct {
267 HWND hwnd;
268 HWND hwndS;
269 USHORT type;
270 USHORT id;
271 INT flags;
272 struct __arc_type__ *info;
273 CHAR **list;
274 ULONG *ulitemID;
275 ULONG *cbFile;
276 CHAR targetpath[CCHMAXPATH + 6];
277 CHAR arcname[CCHMAXPATH];
278 CHAR runfile[CCHMAXPATH];
279} LISTINFO;
280
281typedef struct {
282 USHORT size;
283 USHORT dummy;
284 CHAR directory[CCHMAXPATH];
285 HWND hwndParent;
286 HWND hwndFrame;
287 HWND hwndClient;
288 HWND hwndCnr;
289 LISTINFO *li;
290} WORKER;
291
292typedef struct {
293 USHORT size;
294 USHORT flags;
295 USHORT cmd;
296 USHORT dummy;
297 CHAR *prompt;
298 CHAR **list;
299} CHECKLIST;
300
301typedef struct {
302 ULONG flags;
303 CHAR *commandline;
304 CHAR path[CCHMAXPATH];
305 CHAR environment[1001];
306 CHAR tempprompt[128];
307 CHAR title[80];
308 BOOL dropped;
309} EXECARGS;
310
311#pragma pack(1)
312
313#define CNRITEM_SMALLER 0x00010000
314#define CNRITEM_LARGER 0x00020000
315#define CNRITEM_NEWER 0x00040000
316#define CNRITEM_OLDER 0x00080000
317#define CNRITEM_EXISTS 0x00100000
318
319#define RECFLAGS_ENV 0x00000001
320#define RECFLAGS_NODRAG 0x00000002
321#define RECFLAGS_NODROP 0x00000004
322#define RECFLAGS_UNDERENV 0x00000008
323
324#define ARCFLAGS_REALDIR 0x00000001
325#define ARCFLAGS_PSEUDODIR 0x00000002
326
327#define CBLIST_TO_EASIZE(cb) ((cb) > 4 ? (cb) / 2 : 0) // FILEFINDBUF4.cbList to logical EA size
328
329typedef struct _CNRITEM { /* CONTAINER RECORD STRUCTURE */
330 MINIRECORDCORE rc; /* Base information */
331 HWND hwndCnr; /* The container holding this record */
332 PSZ pszFileName; /* Pointer to file name */
333 CHAR szFileName[CCHMAXPATH]; /* File name */
334 CHAR subject[40]; /* subject string */
335 CHAR *pszSubject; /* pointer to subject string */
336 CHAR *pszDispAttr; /* Pointer to attrib string */
337 CDATE date; /* Last write date of file */
338 CTIME time; /* Last write time of file */
339 CDATE ladate; /* Last access date of file */
340 CTIME latime; /* Last access time of file */
341 CDATE crdate; /* Creation date of file */
342 CTIME crtime; /* Creation time of file */
343 CHAR szDispAttr[6]; /* Attrib string for details display */
344 CHAR *pszLongname;
345 ULONG cbFile; /* File size */
346 ULONG easize; /* Size of EAs */
347 ULONG attrFile; /* Attributes of this file */
348 ULONG flags;
349 CHAR Longname[1];
350} CNRITEM, *PCNRITEM;
351
352typedef struct _ARCITEM { // ARCHIVE CONTAINER RECORD STRUCTURE
353 MINIRECORDCORE rc; // Base information
354 HWND hwndCnr; /* Container holding this record */
355 PSZ pszFileName; // Pointer to file name
356 CHAR szFileName[CCHMAXPATH]; // File name
357 CHAR szDate[40]; // File's assembled date
358 PSZ pszDate; // Pointer to date
359 CDATE date; // if we know date format
360 CTIME time; // if we know time format
361 ULONG cbFile; // File's original size
362 ULONG cbComp; // File's compressed size
363 ULONG flags;
364} ARCITEM, *PARCITEM;
365
366#pragma pack()
367
368typedef struct {
369 ULONG attrFile;
370 ULONG cbFile;
371 ULONG easize;
372 FDATE date;
373 FTIME time;
374 FDATE ladate;
375 FTIME latime;
376 FDATE crdate;
377 FTIME crtime;
378 CHAR fname[1];
379} FILELIST;
380
381typedef struct __arc_type__ {
382 CHAR *id;
383 CHAR *ext;
384 LONG file_offset;
385 CHAR *list;
386 CHAR *extract;
387 CHAR *exwdirs;
388 CHAR *test;
389 CHAR *create;
390 CHAR *move;
391 CHAR *createrecurse;
392 CHAR *createwdirs;
393 CHAR *movewdirs;
394 CHAR *delete;
395 CHAR *signature;
396 CHAR *startlist;
397 CHAR *endlist;
398 INT osizepos;
399 INT nsizepos;
400 INT fdpos;
401 INT fdflds;
402 INT fnpos;
403 INT datetype;
404 BOOL nameislast;
405 BOOL nameisnext;
406 BOOL nameisfirst;
407 struct __arc_type__ *next;
408 struct __arc_type__ *prev;
409} ARC_TYPE;
410
411typedef struct {
412 USHORT size;
413 ARC_TYPE *info;
414 CHAR *arcname;
415 CHAR masks[257];
416 CHAR command[257];
417 CHAR extractdir[1027];
418 INT ret;
419} EXTRDATA;
420
421typedef struct {
422 ARC_TYPE *info;
423 CHAR listname[CCHMAXPATH];
424 CHAR arcname[CCHMAXPATH];
425 CHAR *errmsg;
426} ARCDUMP;
427
428typedef struct DIRCNRDATA {
429 USHORT size;
430 USHORT id;
431 INT type;
432 ULONG flWindowAttr;
433 HWND hwndParent;
434 HWND hwndCnr;
435 HWND hwndObject;
436 HWND hwndFrame;
437 HWND hwndClient;
438 HWND hwndLastMenu;
439 HWND hwndExtract;
440 HWND hwndLastDirCnr;
441 HWND hwndRestore;
442 CHAR directory[CCHMAXPATH];
443 CHAR previous[CCHMAXPATH];
444 ULONG fg,bg,hifg,hibg,border;
445 PFNWP oldproc;
446 CHAR font[CCHMAXPATH];
447 MASK mask;
448 ULONG totalbytes,selectedbytes,selectedfiles,totalfiles;
449 BOOL cnremphasized;
450 BOOL dontclose;
451 ARC_TYPE *info;
452 CHAR arcname[CCHMAXPATH];
453 CHAR command[257];
454 CHAR stopflag;
455 CHAR workdir[CCHMAXPATH];
456 CHAR lastfilename[CCHMAXPATH];
457 BOOL namecanchange;
458 BOOL fmoving;
459 INT ret;
460 HAB hab;
461 BOOL amextracted;
462 INT lasthelp;
463 INT sortFlags;
464 BOOL detailsladate,detailslatime,detailscrdate,detailscrtime,
465 detailslongname,detailsea,detailssize,detailssubject,
466 detailslwdate,detailslwtime,detailsattr,detailsicon;
467 CHAR **lastselection;
468 USHORT shiftstate;
469 USHORT suspendview;
470 CHAR comnam[CCHMAXPATH];
471 ULONG lasttime;
472 BOOL arcfilled;
473 HMTX filling;
474 BOOL firsttree;
475 ULONG lastattr;
476} DIRCNRDATA;
477
478typedef struct {
479 USHORT size;
480 HWND hwndCnr;
481 CHAR directory[CCHMAXPATH];
482 BOOL collapsefirst;
483 DIRCNRDATA *dcd;
484} SHOWREC;
485
486typedef struct {
487 USHORT size;
488 USHORT dummy;
489 CHAR file1[CCHMAXPATH];
490 CHAR file2[CCHMAXPATH];
491 HWND hwndParent;
492 HWND hwndList;
493 HWND hwndReport;
494 HWND hwndHelp;
495} FCOMPARE;
496
497typedef struct COMPARE {
498 USHORT size;
499 HWND hwnd;
500 HWND hwndParent;
501 CHAR leftdir[CCHMAXPATH + 2];
502 CHAR rightdir[CCHMAXPATH + 2];
503 BOOL forcescroll;
504 BOOL filling;
505 BOOL includesubdirs;
506 INT action;
507 INT selleft;
508 INT selright;
509 INT totalleft;
510 INT totalright;
511 CHAR rightlist[CCHMAXPATH];
512 BOOL reset;
513 HWND hwndCalling;
514 struct COMPARE *cmp;
515 struct DIRCNRDATA dcd;
516} COMPARE;
517
518
519/* init.c */
520VOID FindSwapperDat(VOID);
521BOOL InitFM3DLL (HAB hab,int argc,char **argv);
522HWND StartFM3 (HAB hab,INT argc,CHAR **argv);
523
524/* filldir.c */
525ULONG FillDirCnr (HWND hwndCnr,CHAR *directory,DIRCNRDATA *dcd);
526ULONG FillTreeCnr (HWND hwndCnr,HWND hwndParent);
527ULONG ProcessDirectory (const HWND hwndCnr, const PCNRITEM pciParent,
528 const CHAR *szDirBase, const BOOL filestoo,
529 const BOOL recurse,const BOOL partial,
530 CHAR *stopflag,DIRCNRDATA *dcd,ULONG *foundany);
531ULONG FillInRecordFromFFB (HWND hwndCnr,PCNRITEM pci, const PSZ pszDirectory,
532 const PFILEFINDBUF4 pffb,const BOOL partial,
533 DIRCNRDATA *dcd);
534ULONG FillInRecordFromFSA (HWND hwndCnr,PCNRITEM pci,const PSZ pszFileName,
535 const PFILESTATUS4 pfsa4,
536 const BOOL partial,DIRCNRDATA *dcd);
537
538
539/* flesh.c */
540BOOL Stubby (HWND hwndCnr,PCNRITEM pciParent);
541BOOL Flesh (HWND hwndCnr,PCNRITEM pciParent);
542BOOL FleshEnv (HWND hwndCnr,PCNRITEM pciParent);
543BOOL UnFlesh (HWND hwndCnr,PCNRITEM pciParent);
544
545/* saymsg.c */
546APIRET saymsg (APIRET type,HWND hwnd,CHAR *title,CHAR *string,...);
547
548/* error.c */
549VOID General_Error (HAB hab,HWND hwnd, PSZ ErrModule,LONG ErrLine,
550 CHAR *s,...);
551INT Dos_Error (INT type,ULONG Error,HWND hwnd, PSZ ErrModule,
552 LONG ErrLine,CHAR *s,...);
553
554/* valid.c */
555INT CheckDrive (CHAR Drive, CHAR *FileSystem, ULONG *type);
556int TestDates (char *file1,char *file2);
557BOOL IsNewer (char *file1,char *file2);
558BOOL IsRoot (CHAR *filename);
559BOOL IsFileSame (CHAR *filename1,CHAR *filename2);
560INT IsFile (CHAR *filename);
561BOOL IsFullName (CHAR *filename);
562BOOL IsValidDir (CHAR *test);
563BOOL IsValidDrive (CHAR drive);
564CHAR * MakeValidDir (CHAR *path);
565BOOL IsExecutable (CHAR *filename);
566VOID FillInDriveFlags (VOID *dummy);
567VOID DriveFlagsOne (INT x);
568VOID ArgDriveFlags (INT argc,CHAR **argv);
569CHAR * assign_ignores (CHAR *s);
570BOOL needs_quoting (CHAR *f);
571BOOL IsBinary (CHAR *str,ULONG len);
572BOOL TestBinary (CHAR *filename);
573BOOL ParentIsDesktop (HWND hwnd,HWND hwndParent);
574BOOL IsDesktop (HAB hab,HWND hwnd);
575char *IsVowel (char a);
576VOID GetDesktopName (CHAR *objectpath,ULONG size);
577char * RootName (char *filename);
578APIRET MakeFullName (char *filename);
579
580/* misc.c */
581VOID SetShiftState (VOID);
582void EmphasizeButton (HWND hwnd,BOOL on);
583void DrawTargetEmphasis (HWND hwnd,BOOL on);
584void BoxWindow (HWND hwnd,HPS hps,LONG color);
585VOID PaintRecessedWindow (HWND hwnd,HPS hps,BOOL outtie,BOOL dbl);
586void PaintSTextWindow (HWND hwnd,HPS hps);
587BOOL AdjustCnrColVis (HWND hwndCnr,CHAR *title,BOOL visible,BOOL toggle);
588BOOL AdjustCnrColRO (HWND hwndCnr,CHAR *title,BOOL readonly,BOOL toggle);
589VOID AdjustCnrColsForFSType (HWND hwndCnr,CHAR *directory,DIRCNRDATA *dcd);
590VOID AdjustCnrColsForPref (HWND hwndCnr,CHAR *directory,DIRCNRDATA *dcd,
591 BOOL compare);
592BOOL SetCnrCols (HWND hwndCnr,BOOL compare);
593MRESULT CnrDirectEdit (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
594BOOL SetMenuCheck (HWND hwndMenu, USHORT id, BOOL *bool,BOOL toggle,
595 CHAR *savename);
596VOID disable_menuitem (HWND hwndMenu,USHORT id,BOOL enable);
597BOOL ViewHelp (CHAR *filename);
598VOID CloseHelp (VOID);
599INT ExecFile (HWND hwnd,CHAR *filename);
600VOID EmptyCnr (HWND hwnd);
601VOID SetDetailsSwitches (HWND hwnd,DIRCNRDATA *dcd);
602VOID AdjustDetailsSwitches (HWND hwnd,HWND hwndMenu,USHORT cmd,
603 CHAR *directory,CHAR *keyroot,DIRCNRDATA *dcd,
604 BOOL compare);
605VOID FreeMallocedMem (VOID *mem);
606VOID FcloseFile (FILE *fp);
607VOID SetConditionalCascade (HWND hwndMenu,USHORT id,USHORT def);
608VOID SetSortChecks (HWND hwndMenu,INT sortflags);
609VOID SetupCommandMenu (HWND hwndMenu,HWND hwndCnr);
610VOID LoadDetailsSwitches (CHAR *keyroot,DIRCNRDATA *dcd);
611HWND FindDirCnr (HWND hwndParent);
612VOID HeapThread (VOID *dummy);
613VOID FixSwitchList (HWND hwnd,CHAR *text);
614VOID QuickPopup (HWND hwnd,DIRCNRDATA *dcd,HWND hwndMenu,USHORT id);
615PMINIRECORDCORE CurrentRecord (HWND hwndCnr);
616BOOL PostMsg (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
617VOID OpenEdit (HWND hwnd);
618VOID PortholeInit (HWND hwndNew,MPARAM mp1,MPARAM mp2);
619HWND CheckMenu (HWND *hwndMenu,USHORT id);
620SHORT AddToListboxBottom (HWND hwnd,CHAR *str);
621VOID SetSysMenu (HWND hwndSysMenu);
622VOID LoadLibPath (CHAR *str,LONG len);
623void SaySort (HWND hwnd,INT sortflags,BOOL archive);
624void SayView (HWND hwnd,ULONG flWindowAttr);
625void SayFilter (HWND hwnd,MASK *mask,BOOL archive);
626void SetViewMenu (HWND hwndMenu, ULONG flWindowAttr);
627char *GetCmdSpec (BOOL dos);
628void Broadcast (HAB hab,HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
629void SetupWinList (HWND hwndMenu,HWND hwndTop,HWND hwndFrame);
630BOOL SwitchCommand (HWND hwndMenu,USHORT cmd);
631
632/* mainwnd.c */
633ULONG CountDirCnrs (HWND hwndParent);
634HWND TopWindow (HWND hwndParent,HWND exclude);
635HWND TopWindowName (HWND hwndParent,HWND exclude,CHAR *ret);
636HWND FindDirCnrByName (CHAR *directory,BOOL restore);
637MRESULT EXPENTRY MainWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
638VOID GetNextWindowPos (HWND hwndClient,PSWP pswp,ULONG *ulCntR,
639 ULONG *ulNumMinChildrenR);
640VOID TileChildren (HWND hwndClient,BOOL absolute);
641VOID FillClient (HWND hwndClient,PSWP pswp,PRECTL prectl,BOOL avoidtree);
642MRESULT EXPENTRY ToolBackProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
643MRESULT EXPENTRY DriveBackProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
644MRESULT EXPENTRY ChildButtonProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
645MRESULT EXPENTRY DriveProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
646MRESULT EXPENTRY BubbleProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
647VOID NextChild (HWND hwndClient,BOOL previous);
648BOOL SaveDirCnrState (HWND hwndClient,CHAR *name);
649BOOL RestoreDirCnrState (HWND hwndClient,CHAR *name,BOOL noview);
650BOOL CloseDirCnrChildren (HWND hwndClient);
651MRESULT EXPENTRY LEDProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
652MRESULT EXPENTRY StatusProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
653VOID ResizeChildren (HWND hwndClient,SHORT oldcx,SHORT oldcy,SHORT newcx,
654 SHORT newcy);
655VOID BuildDrives (HWND hwndT);
656VOID ResizeDrives (HWND hwndT,long xwidth);
657BOOL CloseChildren (HWND hwndClient);
658VOID ResizeTools (HWND hwnd);
659VOID BuildTools (HWND hwndT,BOOL resize);
660void BubbleHelp (HWND hwnd,BOOL other,BOOL data,BOOL above,char *help);
661VOID MakeBubble (HWND hwnd,BOOL above,CHAR *help);
662MRESULT EXPENTRY MainWMCommand (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
663VOID MakeMainObjWin (VOID *args);
664
665/* mainwnd2.c */
666MRESULT EXPENTRY MainWndProc2 (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
667MRESULT EXPENTRY FileListProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
668HWND StartFM32 (HAB hab,INT argc,CHAR **argv);
669
670/* treecnr.c */
671MRESULT EXPENTRY TreeStatProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
672MRESULT EXPENTRY TreeClientWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
673HWND StartTreeCnr (HWND hwndParent,ULONG flags);
674MRESULT EXPENTRY TreeObjWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
675VOID ShowTreeRec (HWND hwndCnr,CHAR *dirname,BOOL collapsefirst,BOOL maketop);
676MRESULT EXPENTRY OpenButtonProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
677
678/* dircnrs.c */
679MRESULT EXPENTRY DirClientWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
680HWND StartDirCnr (HWND hwndParent,CHAR *directory,HWND hwndRestore,
681 ULONG flags);
682MRESULT EXPENTRY DirTextProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
683MRESULT EXPENTRY DirFolderProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
684MRESULT EXPENTRY DirMaxProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
685MRESULT EXPENTRY DirObjWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
686
687/* presparm.c */
688VOID StoreWndPresParams (HWND hwnd,CHAR *tagname,HINI prof);
689#ifdef INCL_GPI
690 VOID SetPresParams (HWND hwnd,RGB2 *back,RGB2 *fore,RGB2 *border,CHAR *font);
691#endif
692VOID CopyPresParams (HWND target,HWND source);
693VOID IfNoParam(HWND hwnd,CHAR *keyroot,ULONG size,PVOID attrvalue);
694VOID PresParamChanged (HWND hwnd,CHAR *keyroot,MPARAM mp1,MPARAM mp2);
695VOID RestorePresParams (HWND hwnd,CHAR *keyroot);
696
697/* dirs.c */
698APIRET save_dir2 (CHAR *curdir);
699APIRET save_dir (CHAR *curdir);
700APIRET switch_to (CHAR *s);
701
702/* strips.c */
703char * strip_lead_char (char *strip,char *a);
704char * strip_trail_char (char *strip,char *a);
705#define lstrip(s) strip_lead_char(" \t",(s))
706#define rstrip(s) strip_trail_char(" \t",(s))
707#define stripcr(s) strip_trail_char("\r\n",(s))
708
709/* delims.c */
710char * skip_delim (char *a,register char *delim);
711char * to_delim (char *a,register char *delim);
712
713/* copyf.c */
714BOOL AdjustWildcardName (CHAR *oldname,CHAR *newname);
715CHAR default_disk(VOID);
716APIRET docopyf (INT type,CHAR *oldname,CHAR *newname,...);
717 #define COPY 0
718 #define MOVE 1
719 #define WPSCOPY 2
720 #define WPSMOVE 4
721INT unlinkf (CHAR *string,...);
722INT unlink_allf (CHAR *string,...);
723INT wipeallf (CHAR *string,...);
724INT make_deleteable (CHAR *filename);
725CHAR *TruncName (CHAR *oldname,CHAR *buffer);
726CHAR *GetLongName (CHAR *oldname,CHAR *buffer);
727BOOL WriteLongName (CHAR *filename,CHAR *longname);
728
729/* mkdir.c */
730APIRET SetDir (HWND hwndClient,HWND hwnd,CHAR *dir,INT flags);
731APIRET MassMkdir (HWND hwndClient,CHAR *dir);
732BOOL PMMkDir (HWND hwnd,CHAR *filename,BOOL copy);
733void SetTargetDir (HWND hwnd,BOOL justshow);
734
735/* srchpath.c */
736CHAR * first_path (CHAR *path,CHAR *ret);
737CHAR * searchapath (CHAR *path,CHAR *filename);
738CHAR * searchpath (CHAR *filename);
739
740/* literal.c */
741INT literal (CHAR *fsource);
742INT wildcard (const CHAR *fstra,const CHAR *fcarda,const BOOL notfile);
743CHAR * fixup (const CHAR *orig,CHAR *dest,const INT maxlen,const INT datalen);
744
745/* stristr.c */
746CHAR * stristr (const CHAR *t, const CHAR *s);
747CHAR * strnistr (register CHAR *t, CHAR *s, LONG len);
748CHAR * strnstr (register CHAR *t, CHAR *s, LONG len);
749CHAR * findstring (CHAR *findthis, ULONG lenthis, CHAR *findin,
750 ULONG lenin, BOOL insensitive);
751
752/* avl.c */
753ARC_TYPE * quick_find_type (CHAR *filespec,ARC_TYPE *topsig);
754ARC_TYPE * find_type (CHAR *filespec,ARC_TYPE *topsig);
755INT load_archivers (VOID);
756BOOL ArcDateTime (CHAR *dt,INT type,CDATE *cdate,CTIME *ctime);
757
758/* avv.c */
759CHAR * assign (CHAR *a,CHAR *b);
760CHAR * reassign_from_window (HWND hwnd,USHORT id,char *a);
761INT get_int_from_window (HWND hwnd,USHORT id);
762LONG get_long_from_window (HWND hwnd,USHORT id);
763CHAR * nonull (CHAR *a);
764VOID rewrite_archiverbb2 (CHAR *archiverbb2);
765CHAR * checkfile (CHAR *file,INT *error);
766ULONG checkfile2 (CHAR *file,INT *error);
767CHAR *checksayfile (HWND hwnd,CHAR *file,INT *error);
768INT check_archiver (HWND hwnd,ARC_TYPE *info);
769MRESULT EXPENTRY ArcReviewDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
770APIRET EditArchiverData (HWND hwnd,DIRCNRDATA *arc);
771
772/* systemf.c */
773BOOL ShowSession (HWND hwnd,PID pid);
774INT ExecOnList (HWND hwnd, CHAR *command, INT flags, CHAR *tpath,
775 CHAR **list,CHAR *prompt);
776INT runemf2 (INT type,HWND hwnd,CHAR *directory,CHAR *environment,
777 CHAR *formatstring,...);
778HAPP Exec (HWND hwndNotify,BOOL child,char *startdir,char *env,
779 PROGTYPE *progt,ULONG fl,char *formatstring,...);
780#define SYNCHRONOUS 1
781#define ASYNCHRONOUS 2
782#define DETACHED 3
783#define SEPARATE 4
784#define SEPARATEKEEP 5
785#define WINDOWED 16
786#define MAXIMIZED 32
787#define MINIMIZED 64
788#define FULLSCREEN 128
789#define INVISIBLE 256
790#define BACKGROUND 512
791#define WAIT 1024
792#define PROMPT 2048
793#define KEEP 4096
794#define ONCE 8192
795#define DIEAFTER 16384
796#define SEAMLESS 32768
797#define CHILD 65536
798
799/* cmdline.c */
800BOOL add_cmdline(CHAR *cmdline,BOOL big);
801VOID save_cmdlines (BOOL big);
802MRESULT EXPENTRY CmdLineDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
803MRESULT EXPENTRY CmdLine2DlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
804
805/* makelist.c */
806INT AddToList (CHAR *string,CHAR ***list,INT *numfiles,INT *numalloced);
807INT AddToFileList (CHAR *string,FILEFINDBUF4 *ffb4,FILELIST ***list,
808 INT *numfiles,INT *numalloced);
809CHAR ** BuildList (HWND hwndCnr);
810VOID FreeListInfo (LISTINFO *li);
811VOID FreeList (CHAR **list);
812VOID SortList (LISTINFO *li);
813CHAR ** BuildArcList (HWND hwndCnr);
814CHAR ** RemoveFromList (CHAR **list,CHAR *item);
815CHAR ** CombineLists (CHAR **prime,CHAR **add);
816
817/* chklist.c */
818VOID PosOverOkay (HWND hwnd);
819VOID CenterOverWindow (HWND hwnd);
820BOOL PopupMenu (HWND hwndParent,HWND hwndOwner,HWND hwndMenu);
821MRESULT EXPENTRY CheckListProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
822MRESULT EXPENTRY DropListProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
823
824/* eas.c */
825VOID HexDump (HWND hwnd,CHAR *value,ULONG cbValue);
826HOLDFEA *GetFileEAs (CHAR *filename,BOOL ishandle,BOOL silentfail);
827VOID Free_FEAList (HOLDFEA *pFEA);
828MRESULT EXPENTRY DisplayEAsProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
829PVOID SaveEA (CHAR *filename,HOLDFEA *current,CHAR *newdata,
830 BOOL silentfail);
831
832/* inis.c */
833MRESULT EXPENTRY IniProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
834HWND StartIniEditor (HWND hwnd,CHAR *filename,INT flags);
835
836/* subj.c */
837INT Subject (HWND hwnd,CHAR *filename);
838
839/* dirsize.c */
840MRESULT EXPENTRY DirSizeProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
841
842/* getnames.c */
843BOOL insert_filename (HWND hwnd,CHAR *filename,INT loadit,BOOL newok);
844BOOL export_filename (HWND hwnd,CHAR *filename,INT overwrite);
845MRESULT EXPENTRY CustomFileDlg (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
846
847/* input.c */
848MRESULT EXPENTRY InputDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
849
850/* select.c */
851VOID UnHilite (HWND hwndCnr,BOOL all,CHAR ***list);
852VOID SelectList (HWND hwndCnr,BOOL partial,BOOL deselect,BOOL clearfirst,
853 PCNRITEM pciParent,CHAR *filename,CHAR **list);
854VOID SelectAll (HWND hwndCnr,BOOL files,BOOL dirs,CHAR *mask,CHAR *text,
855 BOOL arc);
856VOID DeselectAll (HWND hwndCnr,BOOL files,BOOL dirs,CHAR *mask,CHAR *text,
857 BOOL arc);
858VOID Deselect (HWND hwndCnr);
859VOID HideAll (HWND hwndCnr);
860VOID RemoveAll (HWND hwndCnr,ULONG *totalbytes,ULONG *totalfiles);
861VOID MarkAll (HWND hwndCnr,BOOL quitit,BOOL target,BOOL source);
862VOID SetMask (CHAR *str,MASK *mask);
863VOID ExpandAll (HWND hwndCnr,BOOL expand,PCNRITEM pciParent);
864VOID InvertAll (HWND hwndCnr);
865VOID SpecialSelect (HWND hwndCnrS,HWND hwndCnrD,INT action,BOOL reset);
866VOID SpecialSelect2 (HWND hwndParent,INT action);
867
868/* viewer.c */
869MRESULT EXPENTRY MLEEditorProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
870HWND StartMLEEditor (HWND hwnd,INT flags,CHAR *filename,HWND hwndRestore);
871
872/* codepage.c */
873INT PickCodepage (HWND hwnd);
874
875/* fonts.c */
876VOID SetFont (HWND hwnd);
877FATTRS * SetMLEFont (HWND hwndMLE, FATTRS *fattrs, ULONG flags);
878VOID SetPresParamFromFattrs (HWND hwnd,FATTRS *fattrs,
879 SHORT sNominalPointSize,
880 FIXED fxPointSize);
881
882/* saveclip.c */
883BOOL SaveToClip (HWND hwnd,CHAR *text,BOOL append);
884VOID ListToClipboard (HWND hwnd,CHAR **list,BOOL append);
885CHAR ** ListFromClipboard (HWND hwnd);
886BOOL SaveToClipHab (HAB hab,CHAR *text,BOOL append);
887VOID ListToClipboardHab (HAB hab,CHAR **list,BOOL append);
888CHAR ** ListFromClipboardHab (HAB hab);
889MRESULT EXPENTRY SaveListDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
890MRESULT EXPENTRY SaveAllListDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
891
892/* filter.c */
893INT APIENTRY Filter (PMINIRECORDCORE rmini,PVOID arg);
894BOOL FilterAttrs (PCNRITEM pci,MASK *mask);
895VOID save_masks (VOID);
896MRESULT EXPENTRY PickMaskDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
897
898/* archive.c */
899MRESULT EXPENTRY ArchiveDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
900MRESULT EXPENTRY SBoxDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
901
902/* extract.c */
903MRESULT EXPENTRY ExtractDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
904
905/* walkem.c */
906VOID load_udirs (VOID);
907VOID save_udirs (VOID);
908BOOL add_udir (BOOL userdirs,CHAR *inpath);
909BOOL remove_udir (CHAR *path);
910BOOL remove_ldir (CHAR *path);
911VOID load_setups (VOID);
912VOID save_setups (VOID);
913BOOL add_setup (CHAR *name);
914BOOL remove_setup (CHAR *name);
915VOID FillPathListBox (HWND hwnd,HWND hwnddrive,HWND hwnddir,CHAR *path,
916 BOOL nounwriteable);
917MRESULT EXPENTRY WalkDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
918MRESULT EXPENTRY WalkAllDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
919MRESULT EXPENTRY WalkCopyDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
920MRESULT EXPENTRY WalkMoveDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
921MRESULT EXPENTRY WalkExtractDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
922MRESULT EXPENTRY WalkTargetDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
923MRESULT EXPENTRY WalkTwoDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
924MRESULT EXPENTRY WalkTwoCmpDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,
925 MPARAM mp2);
926MRESULT EXPENTRY WalkTwoSetDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,
927 MPARAM mp2);
928
929/* arccnrs.c */
930MRESULT EXPENTRY ArcClientWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
931HWND StartArcCnr (HWND hwndParent,HWND hwndCaller,CHAR *arcname,INT flags,
932 ARC_TYPE *sinfo);
933MRESULT EXPENTRY ArcTextProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
934MRESULT EXPENTRY ArcFolderProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
935MRESULT EXPENTRY ArcObjWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
936
937/* assoc.c */
938INT ExecAssociation (HWND hwnd, CHAR *datafile);
939VOID EditAssociations (HWND hwnd);
940VOID load_associations (VOID);
941VOID save_associations (VOID);
942
943/*draglist.c */
944HWND DoFileDrag (HWND hwndCnr,HWND hwndObj,PCNRDRAGINIT pcd,CHAR *arcfile,
945 CHAR *directory,BOOL moveok);
946HWND DragOne (HWND hwndCnr,HWND hwndObj,CHAR *filename,BOOL moveok);
947HWND DragList(HWND hwnd,HWND hwndObj,CHAR **list,BOOL moveok);
948BOOL PickUp (HWND hwndCnr,HWND hwndObj,PCNRDRAGINIT pcd);
949
950/* droplist.c */
951ULONG FreeDrop (MPARAM mp1,MPARAM mp2);
952void DropHelp (MPARAM mp1,MPARAM mp2,HWND hwnd,char *text);
953BOOL AcceptOneDrop (MPARAM mp1,MPARAM mp2);
954BOOL GetOneDrop (MPARAM mp1,MPARAM mp2,char *buffer,ULONG buflen);
955BOOL FullDrgName (PDRAGITEM pDItem,CHAR *buffer,ULONG buflen);
956BOOL TwoDrgNames (PDRAGITEM pDItem,CHAR *buffer1,ULONG buflen1,
957 char *buffer2,ULONG buflen2);
958LISTINFO * DoFileDrop (HWND hwndCnr, CHAR *directory, BOOL arcfilesok,
959 MPARAM mp1, MPARAM mp2);
960
961/* shadow.c */
962HOBJECT CreateProgramObject (CHAR *objtitle,CHAR *location,CHAR *path,CHAR *cnr);
963HOBJECT CreateDataObject (CHAR *objtitle,CHAR *location,CHAR *path,CHAR *cnr);
964HOBJECT CreateFolderObject (CHAR *objtitle,CHAR *cnr);
965HOBJECT CreateShadowObject (CHAR *objtitle,CHAR *location,CHAR *path,
966 BOOL executable,CHAR *cnr);
967VOID MakeShadows (HWND hwnd,CHAR **list,ULONG Shadows,CHAR *cnr,
968 CHAR *foldername);
969VOID OpenObject (CHAR *filename,CHAR *type,HWND hwnd);
970BOOL RunSeamless (CHAR *exename,CHAR *args,HWND hwnd);
971
972/* printer.c */
973BOOL PrinterReady (CHAR *printdevname);
974BOOL SayPrinterReady (HWND hwnd);
975VOID PrintList (VOID *arg);
976MRESULT EXPENTRY PrintDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
977
978/* attribs.c */
979MRESULT EXPENTRY AttrListDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
980
981/* rename.c */
982MRESULT EXPENTRY RenameProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
983
984/* comp.c */
985MRESULT EXPENTRY CFileDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
986MRESULT EXPENTRY CompareDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
987
988/* findrec.c */
989PCNRITEM FindCnrRecord (HWND hwndCnr,CHAR *filename,PCNRITEM pciParent,
990 BOOL partial,BOOL partmatch,BOOL noenv);
991PCNRITEM FindParentRecord (HWND hwndCnr,PCNRITEM pciC);
992VOID ShowCnrRecord (HWND hwndCnr,PMINIRECORDCORE pmi);
993
994/* update.c */
995PCNRITEM UpdateCnrRecord (HWND hwndCnr,CHAR *filename,BOOL partial,
996 DIRCNRDATA *dcd);
997BOOL UpdateCnrList (HWND hwndCnr,CHAR **filename,INT howmany,BOOL partial,
998 DIRCNRDATA *dcd);
999
1000/* info.c */
1001MRESULT EXPENTRY DrvInfoProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1002MRESULT EXPENTRY FileInfoProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1003MRESULT EXPENTRY SetDrvProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1004
1005/* fsopen.c */
1006FILE * _fsopen (CHAR *filename,CHAR *mode,INT sharemode,...);
1007
1008/* seticon.c */
1009MRESULT EXPENTRY SetIconDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1010
1011/* objcnr.c */
1012MRESULT EXPENTRY ObjCnrDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1013
1014/* sortcnr.c */
1015SHORT APIENTRY SortTreeCnr (PMINIRECORDCORE p1,PMINIRECORDCORE p2,
1016 PVOID pStorage);
1017SHORT APIENTRY SortDirCnr (PMINIRECORDCORE p1,PMINIRECORDCORE p2,
1018 PVOID pStorage);
1019SHORT APIENTRY SortCollectorCnr (PMINIRECORDCORE p1,PMINIRECORDCORE p2,
1020 PVOID pStorage);
1021SHORT SortCnr (PMINIRECORDCORE p1,PMINIRECORDCORE p2,INT Sortflags);
1022
1023/* collect.c */
1024MRESULT EXPENTRY CollectorClientWndProc (HWND hwnd,ULONG msg,MPARAM mp1,
1025 MPARAM mp2);
1026MRESULT EXPENTRY CollectorTextProc (HWND hwnd,ULONG msg,MPARAM mp1,
1027 MPARAM mp2);
1028HWND StartCollector (HWND hwndParent,INT flags);
1029MRESULT EXPENTRY CollectorObjWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1030
1031/* command.c */
1032VOID RunCommand (HWND hwnd,INT cx);
1033VOID EditCommands (HWND hwnd);
1034CHAR *command_title (INT cx);
1035VOID load_commands (VOID);
1036
1037/* instant.c */
1038MRESULT EXPENTRY InstantDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1039
1040/* undel.c */
1041MRESULT EXPENTRY UndeleteDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1042
1043/* killproc.c */
1044MRESULT EXPENTRY KillDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1045
1046/* sysinfo.c */
1047MRESULT EXPENTRY SysInfoDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1048
1049/* objwin.c */
1050MRESULT EXPENTRY ObjectWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1051VOID MakeObjWin (VOID *args);
1052
1053/* progstup.c */
1054MRESULT EXPENTRY ProgDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1055
1056/* key.c */
1057MRESULT EXPENTRY AboutDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1058
1059/* notify.c */
1060MRESULT EXPENTRY NotifyWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1061HWND Notify (char *text);
1062HWND DoNotify (char *text);
1063VOID NotifyError (CHAR *filename,APIRET error);
1064BOOL StartNotes (CHAR *s);
1065BOOL AddNote (CHAR *note);
1066VOID EndNote (VOID);
1067VOID ShowNote (VOID);
1068VOID HideNote (VOID);
1069
1070/* winlist.c */
1071VOID WindowList(HWND hwnd);
1072
1073/* viewinf.c */
1074MRESULT EXPENTRY ViewInfProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1075
1076/* notebook.c */
1077MRESULT EXPENTRY CfgDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1078
1079/* commafmt.c */
1080size_t commafmt(char *buf,int bufsize,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.