source: trunk/dll/fm3dll.h@ 144

Last change on this file since 144 was 132, checked in by root, 20 years ago

Split datamin to datamin.h

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 46.6 KB
Line 
1
2/***********************************************************************
3
4 $Id: fm3dll.h 132 2005-05-24 23:27:24Z root $
5
6 Common definitions
7
8 Copyright (c) 1993-98 M. Kimes
9 Copyright (c) 2001, 2005 Steven H.Levine
10
11 Revisions 12 Feb 03 SHL Add CBLIST_TO_EASIZE
12 11 Jun 03 SHL Add JFS and FAT32 support
13 06 Jan 04 SHL Drop hundfmt
14 01 Aug 04 SHL Optimze strippers
15 01 Aug 04 SHL Drop avv local functions
16 23 May 05 SHL Split datamin to datamin.h
17
18***********************************************************************/
19
20#ifdef DEFINE_GLOBALS
21 #pragma data_seg(GLOBAL1)
22#endif
23
24#define PP_MAX PP_MENUDISABLEBGNDCOLORINDEX
25#define PP_MAXBUF 384
26
27#ifndef MM_PORTHOLEINIT
28 #define MM_PORTHOLEINIT 0x01fb
29#endif
30#ifndef MS_POPUP
31 #define MS_POPUP 0x00000010L
32#endif
33#ifndef CCS_MINIICONS
34 #define CCS_MINIICONS 0x0800
35#endif
36#ifndef CRA_SOURCE
37 #define CRA_SOURCE 0x00004000
38#endif
39#ifndef CV_EXACTMATCH
40 #define CV_EXACTMATCH 0x10000000
41#endif
42#ifndef CBN_SETFOCUS
43 #define CBN_SETFOCUS 20
44#endif
45#ifndef CBN_KILLFOCUS
46 #define CBN_KILLFOCUS 21
47#endif
48#ifndef CN_VERIFYEDIT
49 #define CN_VERIFYEDIT 134
50#endif
51#ifndef CN_PICKUP
52 #define CN_PICKUP 135
53#endif
54#ifndef CN_DROPNOTIFY
55 #define CN_DROPNOTIFY 136
56#endif
57#ifndef CN_GRIDRESIZED
58 #define CN_GRIDRESIZED 137
59#endif
60#ifndef BKS_MERLINSTYLE
61 #define BKS_MERLINSTYLE 0x0800
62#endif
63#ifndef PMBITMAP_INCLUDED
64 typedef struct _RGB2 /* rgb2 */
65 {
66 BYTE bBlue; /* Blue component of the color definition */
67 BYTE bGreen; /* Green component of the color definition*/
68 BYTE bRed; /* Red component of the color definition */
69 BYTE fcOptions; /* Reserved, must be zero */
70 } RGB2;
71 typedef RGB2 *PRGB2;
72#endif
73
74 /**************************************************/
75 /* Lazy Drag API's. */
76 /**************************************************/
77 BOOL APIENTRY DrgLazyDrag( HWND hwndSource,
78 PDRAGINFO pdinfo,
79 PDRAGIMAGE pdimg,
80 ULONG cdimg,
81 PVOID pRsvd );
82
83 BOOL APIENTRY DrgCancelLazyDrag( VOID );
84
85 BOOL APIENTRY DrgLazyDrop( HWND hwndTarget,
86 ULONG ulOperation,
87 PPOINTL pptlDrop );
88
89 PDRAGINFO APIENTRY DrgQueryDraginfoPtr( PDRAGINFO pRsvd );
90
91 PDRAGINFO APIENTRY DrgQueryDraginfoPtrFromHwnd( HWND hwndSource );
92
93 PDRAGINFO APIENTRY DrgQueryDraginfoPtrFromDragitem( PDRAGITEM pditem );
94
95 ULONG APIENTRY DrgQueryDragStatus(VOID);
96
97 PDRAGINFO APIENTRY DrgReallocDraginfo (PDRAGINFO pdinfoOld,
98 ULONG cditem);
99 /* Drag Status Flags */
100 #define DGS_DRAGINPROGRESS 0x0001 /* Standard Drag in Progress. */
101 #define DGS_LAZYDRAGINPROGRESS 0x0002 /* Lazy Drag in Progress. */
102
103#define NUMLINES 21
104#define CON_COLS 6
105#define INSTDATA(h) WinQueryWindowPtr(h,0)
106#define DIR_SPLITBAR_OFFSET 18 * 12 /* Pixel offset of details splitbar */
107#define CONTAINER_COLUMNS 13 /* Number of columns in details view */
108#define RGBFROMPARTS(r,g,b) (((r) * 65536) + ((g) * 256) + (b))
109#define EXTRA_RECORD_BYTES2 (sizeof(CNRITEM) - sizeof(MINIRECORDCORE))
110#define EXTRA_RECORD_BYTES (EXTRA_RECORD_BYTES2 + (CCHMAXPATHCOMP - 1))
111#define EXTRA_ARCRECORD_BYTES (sizeof(ARCITEM) - sizeof(MINIRECORDCORE))
112#define ALLATTRS (FILE_NORMAL | FILE_DIRECTORY | FILE_ARCHIVED |\
113 FILE_HIDDEN | FILE_READONLY | FILE_SYSTEM)
114#define LISTTEMPROOT "$FM2LI$T."
115
116#include "fm3dll2.h" // SHL
117
118#define UM_PAINT (WM_USER)
119#define UM_SETUP (WM_USER + 1)
120#define UM_RESCAN (WM_USER + 2)
121#define UM_INITIALSIZE (WM_USER + 3)
122#define UM_CONTROL (WM_USER + 4)
123#define UM_COMMAND (WM_USER + 5)
124#define UM_SIZE (WM_USER + 6)
125#define UM_FOCUSME (WM_USER + 7)
126#define UM_FIXEDITNAME (WM_USER + 8)
127#define UM_UPDATERECORD (WM_USER + 9)
128#define UM_SETDIR (WM_USER + 10)
129#define UM_CONTAINER_FILLED (WM_USER + 11)
130#define UM_STRETCH (WM_USER + 12)
131#define UM_LOADFILE (WM_USER + 13)
132#define UM_MOUSEMOVE (WM_USER + 14)
133#define UM_ENTER (WM_USER + 15)
134#define UM_CLOSE (WM_USER + 16)
135#define UM_ACTION (WM_USER + 17)
136#define UM_MASSACTION (WM_USER + 18)
137#define UM_UPDATERECORDLIST (WM_USER + 19)
138#define UM_FILESMENU (WM_USER + 20)
139#define UM_SELECT (WM_USER + 21)
140#define UM_VIEWSMENU (WM_USER + 22)
141#define UM_CONTAINERHWND (WM_USER + 23)
142#define UM_OPENWINDOWFORME (WM_USER + 24)
143#define UM_FOLDUP (WM_USER + 25)
144#define UM_INITMENU (WM_USER + 26)
145#define UM_COMPARE (WM_USER + 27)
146#define UM_EXPAND (WM_USER + 28)
147#define UM_REPLACEFOCUS (WM_USER + 29)
148#define UM_UNDO (WM_USER + 30)
149#define UM_RENDER (WM_USER + 31)
150#define UM_BUTTON2DOWN (WM_USER + 32)
151#define UM_BUTTON2UP (WM_USER + 33)
152#define UM_COLLECTFROMFILE (WM_USER + 34)
153#define UM_TIMER (WM_USER + 35)
154#define UM_HELPON (WM_USER + 36)
155#define UM_SETUP2 (WM_USER + 37)
156#define UM_SETUP3 (WM_USER + 38)
157#define UM_CONTEXTMENU (WM_USER + 39)
158#define UM_FILLUSERLIST (WM_USER + 40)
159#define UM_CONTAINERDIR (WM_USER + 41)
160#define UM_SETUP4 (WM_USER + 42)
161#define UM_FILLSETUPLIST (WM_USER + 43)
162#define UM_ARRANGEICONS (WM_USER + 44)
163#define UM_SETUP5 (WM_USER + 45)
164#define UM_NOTIFY (WM_USER + 46)
165#define UM_INSERTRECORD (WM_USER + 47)
166#define UM_ADDTOMENU (WM_USER + 48)
167#define UM_COLLECT (WM_USER + 49)
168#define UM_RESTOREDC (WM_USER + 50)
169#define UM_MINIMIZE (WM_USER + 51)
170#define UM_MAXIMIZE (WM_USER + 52)
171#define UM_BUTTON1MOTIONSTART (WM_USER + 53)
172#define UM_SETUP6 (WM_USER + 54)
173#define UM_FILLBUTTONLIST (WM_USER + 55)
174#define UM_SETUSERLISTNAME (WM_USER + 56)
175#define UM_FILTER (WM_USER + 57)
176#define UM_SORTRECORD (WM_USER + 58)
177#define UM_SIZE2 (WM_USER + 59)
178#define UM_RESTORE (WM_USER + 60)
179#define UM_TOPDIR (WM_USER + 61)
180#define UM_SHOWME (WM_USER + 62)
181#define UM_RESCAN2 (WM_USER + 63)
182#define UM_BUILDDRIVES (WM_USER + 64)
183#define UM_THREADUSE (WM_USER + 65)
184#define UM_DRIVECMD (WM_USER + 66)
185#define UM_ADVISEFOCUS (WM_USER + 67)
186#define UM_FIXCNRMLE (WM_USER + 68)
187#define UM_FLESH (WM_USER + 69)
188#define UM_FILLCMDLIST (WM_USER + 70)
189#define UM_CLICKED (WM_USER + 71)
190#define UM_CLICKED3 (WM_USER + 72)
191
192typedef struct {
193 USHORT size;
194 USHORT dummy;
195 CHAR szCurrentPath1[CCHMAXPATH];
196 CHAR szCurrentPath2[CCHMAXPATH];
197} WALK2;
198
199typedef struct LINKDIRS {
200 CHAR *path;
201 struct LINKDIRS *next;
202} LINKDIRS;
203
204typedef struct {
205 USHORT size;
206 USHORT numcolors;
207 USHORT flags;
208 USHORT currentcolor;
209 ULONG prompt;
210 long *colors;
211 ULONG descriptions;
212 long *origs;
213} COLORS;
214
215typedef struct LINKCMDS {
216 CHAR *cl;
217 CHAR *title;
218 ULONG flags;
219 struct LINKCMDS *next;
220 struct LINKCMDS *prev;
221} LINKCMDS;
222
223typedef struct {
224 CHAR szMask[CCHMAXPATH];
225 CHAR szMaskCopy[CCHMAXPATH];
226 CHAR *pszMasks[26];
227 ULONG attrFile;
228 ULONG antiattr;
229 BOOL fNoAttribs;
230 BOOL fShowDirs;
231 BOOL fNoDirs;
232 BOOL fIsTree;
233 BOOL fIsSeeAll;
234 BOOL fFilesIncluded;
235 BOOL fText;
236 CHAR szText[256];
237 CHAR prompt[80];
238} MASK;
239
240typedef struct {
241 CHAR *title; /* title of dialog */
242 CHAR *prompt; /* prompt to user */
243 CHAR *ret; /* buffer out, default in */
244 CHAR *help; /* help text */
245 INT inputlen; /* max len of ret */
246} STRINGINPARMS;
247
248typedef struct {
249 CHAR *source;
250 CHAR target[CCHMAXPATH];
251 BOOL rename;
252 BOOL skip;
253 BOOL dontask;
254 BOOL overold;
255 BOOL overnew;
256 BOOL overwrite;
257} MOVEIT;
258
259typedef struct HOLDFEA {
260 PFEA2 pfea;
261 CHAR *name;
262 CHAR *value;
263 BYTE fEA;
264 BYTE cbName;
265 USHORT cbValue;
266 struct HOLDFEA *next;
267} HOLDFEA;
268
269typedef struct {
270 HWND hwnd;
271 HWND hwndS;
272 USHORT type;
273 USHORT id;
274 INT flags;
275 struct __arc_type__ *info;
276 CHAR **list;
277 ULONG *ulitemID;
278 ULONG *cbFile;
279 CHAR targetpath[CCHMAXPATH + 6];
280 CHAR arcname[CCHMAXPATH];
281 CHAR runfile[CCHMAXPATH];
282} LISTINFO;
283
284typedef struct {
285 USHORT size;
286 USHORT dummy;
287 CHAR directory[CCHMAXPATH];
288 HWND hwndParent;
289 HWND hwndFrame;
290 HWND hwndClient;
291 HWND hwndCnr;
292 LISTINFO *li;
293} WORKER;
294
295typedef struct {
296 USHORT size;
297 USHORT flags;
298 USHORT cmd;
299 USHORT dummy;
300 CHAR *prompt;
301 CHAR **list;
302} CHECKLIST;
303
304typedef struct {
305 ULONG flags;
306 CHAR *commandline;
307 CHAR path[CCHMAXPATH];
308 CHAR environment[1001];
309 CHAR tempprompt[128];
310 CHAR title[80];
311 BOOL dropped;
312} EXECARGS;
313
314#pragma pack(1)
315
316#define CNRITEM_SMALLER 0x00010000
317#define CNRITEM_LARGER 0x00020000
318#define CNRITEM_NEWER 0x00040000
319#define CNRITEM_OLDER 0x00080000
320#define CNRITEM_EXISTS 0x00100000
321
322#define RECFLAGS_ENV 0x00000001
323#define RECFLAGS_NODRAG 0x00000002
324#define RECFLAGS_NODROP 0x00000004
325#define RECFLAGS_UNDERENV 0x00000008
326
327#define ARCFLAGS_REALDIR 0x00000001
328#define ARCFLAGS_PSEUDODIR 0x00000002
329
330#define CBLIST_TO_EASIZE(cb) ((cb) > 4 ? (cb) / 2 : 0) // FILEFINDBUF4.cbList to logical EA size
331
332typedef struct _CNRITEM { /* CONTAINER RECORD STRUCTURE */
333 MINIRECORDCORE rc; /* Base information */
334 HWND hwndCnr; /* The container holding this record */
335 PSZ pszFileName; /* Pointer to file name */
336 CHAR szFileName[CCHMAXPATH]; /* File name */
337 CHAR subject[40]; /* subject string */
338 CHAR *pszSubject; /* pointer to subject string */
339 CHAR *pszDispAttr; /* Pointer to attrib string */
340 CDATE date; /* Last write date of file */
341 CTIME time; /* Last write time of file */
342 CDATE ladate; /* Last access date of file */
343 CTIME latime; /* Last access time of file */
344 CDATE crdate; /* Creation date of file */
345 CTIME crtime; /* Creation time of file */
346 CHAR szDispAttr[6]; /* Attrib string for details display */
347 CHAR *pszLongname;
348 ULONG cbFile; /* File size */
349 ULONG easize; /* Size of EAs */
350 ULONG attrFile; /* Attributes of this file */
351 ULONG flags;
352 CHAR Longname[1];
353} CNRITEM, *PCNRITEM;
354
355typedef struct _ARCITEM { // ARCHIVE CONTAINER RECORD STRUCTURE
356 MINIRECORDCORE rc; // Base information
357 HWND hwndCnr; /* Container holding this record */
358 PSZ pszFileName; // Pointer to file name
359 CHAR szFileName[CCHMAXPATH]; // File name
360 CHAR szDate[40]; // File's assembled date
361 PSZ pszDate; // Pointer to date
362 CDATE date; // if we know date format
363 CTIME time; // if we know time format
364 ULONG cbFile; // File's original size
365 ULONG cbComp; // File's compressed size
366 ULONG flags;
367} ARCITEM, *PARCITEM;
368
369#pragma pack()
370
371typedef struct {
372 ULONG attrFile;
373 ULONG cbFile;
374 ULONG easize;
375 FDATE date;
376 FTIME time;
377 FDATE ladate;
378 FTIME latime;
379 FDATE crdate;
380 FTIME crtime;
381 CHAR fname[1];
382} FILELIST;
383
384typedef struct __arc_type__ {
385 CHAR *id;
386 CHAR *ext;
387 LONG file_offset;
388 CHAR *list;
389 CHAR *extract;
390 CHAR *exwdirs;
391 CHAR *test;
392 CHAR *create;
393 CHAR *move;
394 CHAR *createrecurse;
395 CHAR *createwdirs;
396 CHAR *movewdirs;
397 CHAR *delete;
398 CHAR *signature;
399 CHAR *startlist;
400 CHAR *endlist;
401 INT osizepos;
402 INT nsizepos;
403 INT fdpos;
404 INT fdflds;
405 INT fnpos;
406 INT datetype;
407 BOOL nameislast;
408 BOOL nameisnext;
409 BOOL nameisfirst;
410 struct __arc_type__ *next;
411 struct __arc_type__ *prev;
412} ARC_TYPE;
413
414typedef struct {
415 USHORT size;
416 ARC_TYPE *info;
417 CHAR *arcname;
418 CHAR masks[257];
419 CHAR command[257];
420 CHAR extractdir[1027];
421 INT ret;
422} EXTRDATA;
423
424typedef struct {
425 ARC_TYPE *info;
426 CHAR listname[CCHMAXPATH];
427 CHAR arcname[CCHMAXPATH];
428 CHAR *errmsg;
429} ARCDUMP;
430
431typedef struct DIRCNRDATA {
432 USHORT size;
433 USHORT id;
434 INT type;
435 ULONG flWindowAttr;
436 HWND hwndParent;
437 HWND hwndCnr;
438 HWND hwndObject;
439 HWND hwndFrame;
440 HWND hwndClient;
441 HWND hwndLastMenu;
442 HWND hwndExtract;
443 HWND hwndLastDirCnr;
444 HWND hwndRestore;
445 CHAR directory[CCHMAXPATH];
446 CHAR previous[CCHMAXPATH];
447 ULONG fg,bg,hifg,hibg,border;
448 PFNWP oldproc;
449 CHAR font[CCHMAXPATH];
450 MASK mask;
451 ULONG totalbytes,selectedbytes,selectedfiles,totalfiles;
452 BOOL cnremphasized;
453 BOOL dontclose;
454 ARC_TYPE *info;
455 CHAR arcname[CCHMAXPATH];
456 CHAR command[257];
457 CHAR stopflag;
458 CHAR workdir[CCHMAXPATH];
459 CHAR lastfilename[CCHMAXPATH];
460 BOOL namecanchange;
461 BOOL fmoving;
462 INT ret;
463 HAB hab;
464 BOOL amextracted;
465 INT lasthelp;
466 INT sortFlags;
467 BOOL detailsladate,detailslatime,detailscrdate,detailscrtime,
468 detailslongname,detailsea,detailssize,detailssubject,
469 detailslwdate,detailslwtime,detailsattr,detailsicon;
470 CHAR **lastselection;
471 USHORT shiftstate;
472 USHORT suspendview;
473 CHAR comnam[CCHMAXPATH];
474 ULONG lasttime;
475 BOOL arcfilled;
476 HMTX filling;
477 BOOL firsttree;
478 ULONG lastattr;
479} DIRCNRDATA;
480
481typedef struct {
482 USHORT size;
483 HWND hwndCnr;
484 CHAR directory[CCHMAXPATH];
485 BOOL collapsefirst;
486 DIRCNRDATA *dcd;
487} SHOWREC;
488
489typedef struct {
490 USHORT size;
491 USHORT dummy;
492 CHAR file1[CCHMAXPATH];
493 CHAR file2[CCHMAXPATH];
494 HWND hwndParent;
495 HWND hwndList;
496 HWND hwndReport;
497 HWND hwndHelp;
498} FCOMPARE;
499
500typedef struct COMPARE {
501 USHORT size;
502 HWND hwnd;
503 HWND hwndParent;
504 CHAR leftdir[CCHMAXPATH + 2];
505 CHAR rightdir[CCHMAXPATH + 2];
506 BOOL forcescroll;
507 BOOL filling;
508 BOOL includesubdirs;
509 INT action;
510 INT selleft;
511 INT selright;
512 INT totalleft;
513 INT totalright;
514 CHAR rightlist[CCHMAXPATH];
515 BOOL reset;
516 HWND hwndCalling;
517 struct COMPARE *cmp;
518 struct DIRCNRDATA dcd;
519} COMPARE;
520
521
522/* init.c */
523VOID FindSwapperDat(VOID);
524BOOL InitFM3DLL (HAB hab,int argc,char **argv);
525HWND StartFM3 (HAB hab,INT argc,CHAR **argv);
526
527/* filldir.c */
528ULONG FillDirCnr (HWND hwndCnr,CHAR *directory,DIRCNRDATA *dcd);
529ULONG FillTreeCnr (HWND hwndCnr,HWND hwndParent);
530ULONG ProcessDirectory (const HWND hwndCnr, const PCNRITEM pciParent,
531 const CHAR *szDirBase, const BOOL filestoo,
532 const BOOL recurse,const BOOL partial,
533 CHAR *stopflag,DIRCNRDATA *dcd,ULONG *foundany);
534ULONG FillInRecordFromFFB (HWND hwndCnr,PCNRITEM pci, const PSZ pszDirectory,
535 const PFILEFINDBUF4 pffb,const BOOL partial,
536 DIRCNRDATA *dcd);
537ULONG FillInRecordFromFSA (HWND hwndCnr,PCNRITEM pci,const PSZ pszFileName,
538 const PFILESTATUS4 pfsa4,
539 const BOOL partial,DIRCNRDATA *dcd);
540
541
542/* flesh.c */
543BOOL Stubby (HWND hwndCnr,PCNRITEM pciParent);
544BOOL Flesh (HWND hwndCnr,PCNRITEM pciParent);
545BOOL FleshEnv (HWND hwndCnr,PCNRITEM pciParent);
546BOOL UnFlesh (HWND hwndCnr,PCNRITEM pciParent);
547
548/* saymsg.c */
549APIRET saymsg (APIRET type,HWND hwnd,CHAR *title,CHAR *string,...);
550
551/* error.c */
552VOID General_Error (HAB hab,HWND hwndOwner, PSZ ErrModule,LONG ErrLine,
553 CHAR *s,...);
554INT Dos_Error (INT type,ULONG Error,HWND hwndOwner, PSZ ErrModule,
555 LONG ErrLine,CHAR *s,...);
556
557/* valid.c */
558INT CheckDrive (CHAR Drive, CHAR *FileSystem, ULONG *type);
559int TestDates (char *file1,char *file2);
560BOOL IsNewer (char *file1,char *file2);
561BOOL IsRoot (CHAR *filename);
562BOOL IsFileSame (CHAR *filename1,CHAR *filename2);
563INT IsFile (CHAR *filename);
564BOOL IsFullName (CHAR *filename);
565BOOL IsValidDir (CHAR *test);
566BOOL IsValidDrive (CHAR drive);
567CHAR * MakeValidDir (CHAR *path);
568BOOL IsExecutable (CHAR *filename);
569VOID FillInDriveFlags (VOID *dummy);
570VOID DriveFlagsOne (INT x);
571VOID ArgDriveFlags (INT argc,CHAR **argv);
572CHAR * assign_ignores (CHAR *s);
573BOOL needs_quoting (CHAR *f);
574BOOL IsBinary (CHAR *str,ULONG len);
575BOOL TestBinary (CHAR *filename);
576BOOL ParentIsDesktop (HWND hwnd,HWND hwndParent);
577BOOL IsDesktop (HAB hab,HWND hwnd);
578char *IsVowel (char a);
579VOID GetDesktopName (CHAR *objectpath,ULONG size);
580char * RootName (char *filename);
581APIRET MakeFullName (char *filename);
582
583/* misc.c */
584VOID SetShiftState (VOID);
585void EmphasizeButton (HWND hwnd,BOOL on);
586void DrawTargetEmphasis (HWND hwnd,BOOL on);
587void BoxWindow (HWND hwnd,HPS hps,LONG color);
588VOID PaintRecessedWindow (HWND hwnd,HPS hps,BOOL outtie,BOOL dbl);
589void PaintSTextWindow (HWND hwnd,HPS hps);
590BOOL AdjustCnrColVis (HWND hwndCnr,CHAR *title,BOOL visible,BOOL toggle);
591BOOL AdjustCnrColRO (HWND hwndCnr,CHAR *title,BOOL readonly,BOOL toggle);
592VOID AdjustCnrColsForFSType (HWND hwndCnr,CHAR *directory,DIRCNRDATA *dcd);
593VOID AdjustCnrColsForPref (HWND hwndCnr,CHAR *directory,DIRCNRDATA *dcd,
594 BOOL compare);
595BOOL SetCnrCols (HWND hwndCnr,BOOL compare);
596MRESULT CnrDirectEdit (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
597BOOL SetMenuCheck (HWND hwndMenu, USHORT id, BOOL *bool,BOOL toggle,
598 CHAR *savename);
599VOID disable_menuitem (HWND hwndMenu,USHORT id,BOOL enable);
600BOOL ViewHelp (CHAR *filename);
601VOID CloseHelp (VOID);
602INT ExecFile (HWND hwnd,CHAR *filename);
603VOID EmptyCnr (HWND hwnd);
604VOID SetDetailsSwitches (HWND hwnd,DIRCNRDATA *dcd);
605VOID AdjustDetailsSwitches (HWND hwnd,HWND hwndMenu,USHORT cmd,
606 CHAR *directory,CHAR *keyroot,DIRCNRDATA *dcd,
607 BOOL compare);
608VOID FreeMallocedMem (VOID *mem);
609VOID FcloseFile (FILE *fp);
610VOID SetConditionalCascade (HWND hwndMenu,USHORT id,USHORT def);
611VOID SetSortChecks (HWND hwndMenu,INT sortflags);
612VOID SetupCommandMenu (HWND hwndMenu,HWND hwndCnr);
613VOID LoadDetailsSwitches (CHAR *keyroot,DIRCNRDATA *dcd);
614HWND FindDirCnr (HWND hwndParent);
615VOID HeapThread (VOID *dummy);
616VOID FixSwitchList (HWND hwnd,CHAR *text);
617VOID QuickPopup (HWND hwnd,DIRCNRDATA *dcd,HWND hwndMenu,USHORT id);
618PMINIRECORDCORE CurrentRecord (HWND hwndCnr);
619BOOL PostMsg (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
620VOID OpenEdit (HWND hwnd);
621VOID PortholeInit (HWND hwndNew,MPARAM mp1,MPARAM mp2);
622HWND CheckMenu (HWND *hwndMenu,USHORT id);
623SHORT AddToListboxBottom (HWND hwnd,CHAR *str);
624VOID SetSysMenu (HWND hwndSysMenu);
625VOID LoadLibPath (CHAR *str,LONG len);
626void SaySort (HWND hwnd,INT sortflags,BOOL archive);
627void SayView (HWND hwnd,ULONG flWindowAttr);
628void SayFilter (HWND hwnd,MASK *mask,BOOL archive);
629void SetViewMenu (HWND hwndMenu, ULONG flWindowAttr);
630char *GetCmdSpec (BOOL dos);
631void Broadcast (HAB hab,HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
632void SetupWinList (HWND hwndMenu,HWND hwndTop,HWND hwndFrame);
633BOOL SwitchCommand (HWND hwndMenu,USHORT cmd);
634
635/* mainwnd.c */
636ULONG CountDirCnrs (HWND hwndParent);
637HWND TopWindow (HWND hwndParent,HWND exclude);
638HWND TopWindowName (HWND hwndParent,HWND exclude,CHAR *ret);
639HWND FindDirCnrByName (CHAR *directory,BOOL restore);
640MRESULT EXPENTRY MainWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
641VOID GetNextWindowPos (HWND hwndClient,PSWP pswp,ULONG *ulCntR,
642 ULONG *ulNumMinChildrenR);
643VOID TileChildren (HWND hwndClient,BOOL absolute);
644VOID FillClient (HWND hwndClient,PSWP pswp,PRECTL prectl,BOOL avoidtree);
645MRESULT EXPENTRY ToolBackProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
646MRESULT EXPENTRY DriveBackProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
647MRESULT EXPENTRY ChildButtonProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
648MRESULT EXPENTRY DriveProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
649MRESULT EXPENTRY BubbleProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
650VOID NextChild (HWND hwndClient,BOOL previous);
651BOOL SaveDirCnrState (HWND hwndClient,CHAR *name);
652BOOL RestoreDirCnrState (HWND hwndClient,CHAR *name,BOOL noview);
653BOOL CloseDirCnrChildren (HWND hwndClient);
654MRESULT EXPENTRY LEDProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
655MRESULT EXPENTRY StatusProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
656VOID ResizeChildren (HWND hwndClient,SHORT oldcx,SHORT oldcy,SHORT newcx,
657 SHORT newcy);
658VOID BuildDrives (HWND hwndT);
659VOID ResizeDrives (HWND hwndT,long xwidth);
660BOOL CloseChildren (HWND hwndClient);
661VOID ResizeTools (HWND hwnd);
662VOID BuildTools (HWND hwndT,BOOL resize);
663void BubbleHelp (HWND hwnd,BOOL other,BOOL data,BOOL above,char *help);
664VOID MakeBubble (HWND hwnd,BOOL above,CHAR *help);
665MRESULT EXPENTRY MainWMCommand (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
666VOID MakeMainObjWin (VOID *args);
667
668/* mainwnd2.c */
669MRESULT EXPENTRY MainWndProc2 (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
670MRESULT EXPENTRY FileListProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
671HWND StartFM32 (HAB hab,INT argc,CHAR **argv);
672
673/* treecnr.c */
674MRESULT EXPENTRY TreeStatProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
675MRESULT EXPENTRY TreeClientWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
676HWND StartTreeCnr (HWND hwndParent,ULONG flags);
677MRESULT EXPENTRY TreeObjWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
678VOID ShowTreeRec (HWND hwndCnr,CHAR *dirname,BOOL collapsefirst,BOOL maketop);
679MRESULT EXPENTRY OpenButtonProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
680
681/* dircnrs.c */
682MRESULT EXPENTRY DirClientWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
683HWND StartDirCnr (HWND hwndParent,CHAR *directory,HWND hwndRestore,
684 ULONG flags);
685MRESULT EXPENTRY DirTextProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
686MRESULT EXPENTRY DirFolderProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
687MRESULT EXPENTRY DirMaxProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
688MRESULT EXPENTRY DirObjWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
689
690/* presparm.c */
691VOID StoreWndPresParams (HWND hwnd,CHAR *tagname,HINI prof);
692#ifdef INCL_GPI
693 VOID SetPresParams (HWND hwnd,RGB2 *back,RGB2 *fore,RGB2 *border,CHAR *font);
694#endif
695VOID CopyPresParams (HWND target,HWND source);
696VOID IfNoParam(HWND hwnd,CHAR *keyroot,ULONG size,PVOID attrvalue);
697VOID PresParamChanged (HWND hwnd,CHAR *keyroot,MPARAM mp1,MPARAM mp2);
698VOID RestorePresParams (HWND hwnd,CHAR *keyroot);
699
700/* dirs.c */
701APIRET save_dir2 (CHAR *curdir);
702APIRET save_dir (CHAR *curdir);
703APIRET switch_to (CHAR *s);
704
705/* strips.c */
706void strip_lead_char (char *pszStripChars,char *pszSrc);
707void strip_trail_char (char *pszStripChars,char *pszSrc);
708#define lstrip(s) strip_lead_char(" \t",(s))
709#define rstrip(s) strip_trail_char(" \t",(s))
710#define stripcr(s) strip_trail_char("\r\n",(s))
711// Strip leading and trailing white
712#define bstrip(s) (strip_lead_char(" \t",(s)),strip_trail_char(" \t",(s)))
713// Strip leading and trailing white and trail cr/nl
714#define bstripcr(s) (strip_lead_char(" \t",(s)),strip_trail_char("\r\n \t",(s)))
715
716/* delims.c */
717char * skip_delim (char *a,register char *delim);
718char * to_delim (char *a,register char *delim);
719
720/* copyf.c */
721BOOL AdjustWildcardName (CHAR *oldname,CHAR *newname);
722CHAR default_disk(VOID);
723APIRET docopyf (INT type,CHAR *oldname,CHAR *newname,...);
724 #define COPY 0
725 #define MOVE 1
726 #define WPSCOPY 2
727 #define WPSMOVE 4
728INT unlinkf (CHAR *string,...);
729INT unlink_allf (CHAR *string,...);
730INT wipeallf (CHAR *string,...);
731INT make_deleteable (CHAR *filename);
732CHAR *TruncName (CHAR *oldname,CHAR *buffer);
733CHAR *GetLongName (CHAR *oldname,CHAR *buffer);
734BOOL WriteLongName (CHAR *filename,CHAR *longname);
735
736/* mkdir.c */
737APIRET SetDir (HWND hwndClient,HWND hwnd,CHAR *dir,INT flags);
738APIRET MassMkdir (HWND hwndClient,CHAR *dir);
739BOOL PMMkDir (HWND hwnd,CHAR *filename,BOOL copy);
740void SetTargetDir (HWND hwnd,BOOL justshow);
741
742/* srchpath.c */
743CHAR * first_path (CHAR *path,CHAR *ret);
744CHAR * searchapath (CHAR *path,CHAR *filename);
745CHAR * searchpath (CHAR *filename);
746
747/* literal.c */
748UINT literal(PSZ pszBuf);
749BOOL wildcard(const PSZ pszBuf,const PSZ pszWildCard,const BOOL fNotFileSpec);
750PSZ fixup (const PCH pachInBuf, PSZ pszOutBuf, const UINT cBufBytes, const UINT cInBytes);
751
752/* stristr.c */
753CHAR * stristr (const CHAR *t, const CHAR *s);
754CHAR * strnistr (register CHAR *t, CHAR *s, LONG len);
755CHAR * strnstr (register CHAR *t, CHAR *s, LONG len);
756CHAR * findstring (CHAR *findthis, ULONG lenthis, CHAR *findin,
757 ULONG lenin, BOOL insensitive);
758
759/* avl.c */
760ARC_TYPE * quick_find_type (CHAR *filespec,ARC_TYPE *topsig);
761ARC_TYPE * find_type (CHAR *filespec,ARC_TYPE *topsig);
762INT load_archivers (VOID);
763BOOL ArcDateTime (CHAR *dt,INT type,CDATE *cdate,CTIME *ctime);
764
765/* avv.c */
766VOID rewrite_archiverbb2(CHAR *archiverbb2);
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);
1079
1080/* autoview.c */
1081BOOL WriteEA (HWND hwnd,CHAR *filename,CHAR *eaname,USHORT type,CHAR *data);
1082BOOL PutComments (HWND hwnd,CHAR *filename,CHAR *comments);
1083MRESULT EXPENTRY AutoViewProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1084ULONG CreateHexDump (CHAR *value,ULONG cbValue,CHAR *ret,ULONG retlen,
1085 ULONG startval,BOOL longlead);
1086
1087/* menu.c */
1088BOOL AddToMenu (CHAR *filename,HWND hwndMenu);
1089
1090/* worker.c */
1091VOID MassAction (VOID *args);
1092VOID Action (VOID *args);
1093
1094/* fm2cmd.c */
1095BOOL FM2Command (CHAR *directory,CHAR *command);
1096
1097/* seeall.c */
1098MRESULT EXPENTRY SeeAllWndProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
1099MRESULT EXPENTRY SeeStatusProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
1100HWND StartSeeAll (HWND hwndParent,BOOL standalone,CHAR *startpath);
1101
1102/* newview.c */
1103MRESULT EXPENTRY ViewWndProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
1104MRESULT EXPENTRY ViewStatusProc (HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
1105HWND StartViewer (HWND hwndParent,USHORT flags,CHAR *filename,
1106 HWND hwndRestore);
1107
1108/* colors.c */
1109MRESULT EXPENTRY ColorDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1110
1111/* defview.c */
1112BOOL ShowMultimedia (CHAR *filename);
1113VOID DefaultView (HWND hwnd,HWND hwndFrame,HWND hwndParent,SWP *swp,
1114 ULONG flags,CHAR *filename);
1115VOID DefaultViewKeys (HWND hwnd,HWND hwndFrame,HWND hwndParent,
1116 SWP *swp,CHAR *filename);
1117#define QuickView(h,f) DefaultView(h,(HWND)0,(HWND)0,NULL,0,f)
1118#define QuickEdit(h,f) DefaultView(h,(HWND)0,(HWND)0,NULL,8,f)
1119
1120/* catalog.c */
1121MRESULT EXPENTRY CatalogProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1122
1123/* uudecode.c */
1124int UUD (char *filename,char *outname);
1125MRESULT EXPENTRY MergeDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1126
1127/* loadbmp.c */
1128HBITMAP LoadBitmapFromFileNum (USHORT id);
1129HBITMAP LoadBitmapFromFile (CHAR *pszFileName);
1130
1131/* remap.c */
1132MRESULT EXPENTRY RemapDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1133
1134/* timer.c */
1135BOOL StartTimer (void);
1136void StopTimer (void);
1137
1138/* grep2.c */
1139MRESULT EXPENTRY GrepDlgProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1140
1141/* common.c */
1142MRESULT EXPENTRY CommonFrameWndProc (USHORT id,
1143 HWND hwnd,
1144 ULONG msg,
1145 MPARAM mp1,
1146 MPARAM mp2);
1147MRESULT EXPENTRY CommonTextProc (HWND hwnd,
1148 ULONG msg,
1149 MPARAM mp1,
1150 MPARAM mp2);
1151void CommonTextPaint (HWND hwnd,HPS hps);
1152void CommonCreateTextChildren (HWND hwnd,char *class,USHORT *ids);
1153void CommonDriveCmd (HWND hwnd,char *drive,USHORT cmd);
1154void CommonCreateMainChildren (HWND hwnd,SWP *swp);
1155MRESULT EXPENTRY CommonMainWndProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1156MRESULT EXPENTRY CommonTextButton (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1157MRESULT EXPENTRY CommonCnrProc (HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2);
1158HWND OpenDirCnr (HWND hwnd,HWND hwndParent,HWND hwndRestore,
1159 BOOL noautotile,char *directory);
1160
1161/* string.c */
1162BOOL LoadStrings (char *filename);
1163char *GetPString (ULONG id);
1164BOOL StringsLoaded (void);
1165
1166#ifdef DEFINE_GLOBALS
1167 #define DATADEF
1168#else
1169 #define DATADEF extern
1170#endif
1171
1172DATADEF ARC_TYPE *arcsighead;
1173DATADEF USHORT nodes,shiftstate;
1174DATADEF HEV CompactSem;
1175DATADEF HWND hwndMain,hwndTree,hwndStatus,hwndStatus2,hwndTrash,
1176 hwndButtonlist,hwndDrivelist,hwndStatelist,hwndUserlist,
1177 hwndAutoview,hwndAttr,hwndDate,hwndName,hwndBack,
1178 hwndLED,hwndLEDHdr,hwndAutoMLE,hwndCmdlist;
1179DATADEF HBITMAP hbmLEDon,hbmLEDoff;
1180DATADEF CHAR ArcTempRoot[9];
1181DATADEF HPOINTER hptrArrow,hptrBusy,hptrLast,hptrDir,hptrFile,hptrRemote,
1182 hptrFloppy,hptrDrive,hptrRemovable,hptrCDROM,
1183 hptrFinger,hptrApp,hptrDunno,hptrSystem,hptrHidden,
1184 hptrReadonly,hptrNS,hptrZipstrm,hptrArc,hptrArt,hptrEW,
1185 hptrCommon,hptrEnv;
1186DATADEF PFNWP PFNWPCnr,PFNWPFrame,PFNWPButton,PFNWPStatic,PFNWPMLE;
1187DATADEF BOOL fLoadSubject,fLoadLongnames,fForceUpper,fForceLower,
1188 fSyncUpdates,fAutoTile,fDontMoveMouse,loadedudirs,
1189 fUnHilite,fWorkPlace,fConfirmDelete,fToolbar,
1190 fToolsChanged,MenuInvisible,fFreeTree,fFollowTree,
1191 fNoIconsFiles,fNoIconsDirs,fVerify,fDCOpens,
1192 fLinkSetsIcon,fSaveState,fTextTools,fCopyDefault,
1193 fToolTitles,fLogFile,fRealIdle,fNoSaveState,
1194 fSplitStatus,fArcStuffVisible,fUseMCI,fAmAV2,
1195 fNoTreeGap,fDummy,fVTreeOpensWPS,fUseQProcStat,
1196 fStartMinimized,fStartMaximized,fRemoteBug,fReminimize,
1197 fDragndropDlg,fMinOnOpen,fUserComboBox,loadedsetups,
1198 fQuickArcFind,fNoRemovableScan,fAutoView,fDataMin,
1199 fDataToFore,fDataShowDrives,fDataInclRemote,
1200 fExternalArcboxes,fExternalViewer,fExternalCollector,
1201 fExternalINIs,fDefaultDeletePerm,fIniExisted,fUseNewViewer,
1202 fTileBackwards,fFolderAfterExtract,fUserListSwitches,
1203 fGuessType,fAutoAddDirs,fUdirsChanged,fSelectedAlways,
1204 fToolbarHelp,fComments,fMoreButtons,fNoSearch,fOtherHelp,
1205 fKeepCmdLine,fAmClosing,fSeparateParms,fTopDir,
1206 fLookInDir,fSwitchTree,fSwitchTreeOnFocus,fDrivebar,
1207 fSwitchTreeExpand,fCollapseFirst,fFilesInTree,fNoDead,
1208 fThreadNotes,fOkayMinimize,fRunning,fDullMin,fBlueLED,
1209 fViewChild,fShowEnv,fLeaveTree,fAddUtils,fNoFoldMenu,
1210 fCustomFileDlg,fSaveMiniCmds,fSaveBigCmds,fNoTileUpdate,
1211 fFM2Deletes,fAutoAddAllDirs,fConfirmTarget,fChangeTarget,
1212 fFirstTime,fShowTarget,fNoFinger,fDrivebarHelp,fCheckMM;
1213DATADEF BOOL detailsladate,detailslatime,detailscrdate,detailscrtime,
1214 detailslongname,detailsea,detailssize,detailssubject,
1215 detailslwdate,detailslwtime,detailsattr,detailsicon;
1216DATADEF PID mypid;
1217DATADEF INT driveflags[26],driveserial[26];
1218DATADEF ULONG NoBrokenNotify,fwsAnimate,OS2ver[2],DriveLines;
1219DATADEF HINI fmprof;
1220DATADEF HELPINIT hini;
1221DATADEF HWND hwndHelp,LastDir,AboutBox,DirMenu,FileMenu,TreeMenu,
1222 ArcMenu,DirCnrMenu,TreeCnrMenu,ArcCnrMenu,
1223 CollectorCnrMenu,CollectorFileMenu,CollectorDirMenu,
1224 Collector,MainPopupMenu,DataHwnd,AutoMenu,hwndBubble,
1225 hwndToolback,MainObjectHwnd;
1226#ifdef DEFINE_GLOBALS
1227 #pragma data_seg(GLOBAL2)
1228#endif
1229DATADEF CHAR *DEBUG_STRING,*FM3Str,*FM2Str,*NullStr,*Default,*Settings,
1230 *DRM_OS2FILE,*DRM_FM2ARCMEMBER,*DRF_FM2ARCHIVE,
1231 *DRMDRFLIST,*DRMDRFOS2FILE,*DRMDRFFM2ARC,
1232 *DRM_FM2INIRECORD,*DRF_FM2INI,*SUBJECT,*LONGNAME,
1233 *HPFS,*JFS,*CDFS,*FAT32,*HPFS386,*CBSIFS,*WPProgram,*FM3Folder,*FM3Tools;
1234DATADEF RGB2 RGBGREY,RGBBLACK;
1235DATADEF CHAR archiverbb2[CCHMAXPATH],StopPrinting,profile[CCHMAXPATH];
1236DATADEF CHAR appname[12],realappname[12];
1237DATADEF CHAR editor[CCHMAXPATH],viewer[CCHMAXPATH],
1238 virus[CCHMAXPATH],printer[CCHMAXPATH],
1239 compare[CCHMAXPATH],extractpath[CCHMAXPATH],
1240 lastextractpath[CCHMAXPATH],lasttoolbox[CCHMAXPATH],
1241 HomePath[CCHMAXPATH],SwapperDat[CCHMAXPATH],
1242 binview[CCHMAXPATH],bined[CCHMAXPATH],
1243 dircompare[CCHMAXPATH],szDefArc[CCHMAXPATH],
1244 ftprun[CCHMAXPATH],httprun[CCHMAXPATH],
1245 targetdir[CCHMAXPATH];
1246DATADEF HMODULE FM3DllHandle,FM3ModHandle;
1247DATADEF CHAR *quicktool[50];
1248DATADEF BOOL qtloaded;
1249DATADEF INT sortFlags,TreesortFlags,CollectorsortFlags;
1250DATADEF INT butxsize,butysize;
1251DATADEF FILE *LogFileHandle;
1252DATADEF ULONG ulCnrType,FilesToGet,AutoviewHeight,TreeWidth,FM3UL;
1253DATADEF long prnwidth,prnlength,prntmargin,prnbmargin,prnlmargin,
1254 prnrmargin,prnspacing,prntabspaces;
1255DATADEF BOOL prnpagenums,prnformat,prnformfeedbefore,prnformfeedafter,
1256 prnalt;
1257DATADEF LINKDIRS *udirhead,*ldirhead;
1258DATADEF LINKCMDS *cmdhead,*cmdtail;
1259DATADEF BOOL cmdloaded;
1260#ifdef DEFINE_GLOBALS
1261 #pragma data_seg(GLOBAL3)
1262#endif
1263#define MAXNUMSETUPS 100
1264DATADEF CHAR lastsetups[MAXNUMSETUPS][13];
1265DATADEF INT lastsetup;
1266DATADEF LONG standardcolors[16];
1267
1268#ifdef INCL_MMIOOS2
1269#pragma pack(4)
1270/* definitions for MMPM/2 imports */
1271typedef DWORD (APIENTRY MMIOIDENTIFYFILE)(PSZ,PMMIOINFO,PMMFORMATINFO,PFOURCC,DWORD,DWORD);
1272typedef MMIOIDENTIFYFILE *PMMIOIDENTIFYFILE;
1273#pragma pack()
1274#endif
1275
1276#ifdef DEFINE_GLOBALS
1277 #pragma data_seg(GLOBAL4)
1278#endif
1279DATADEF HSWITCH switches[499];
1280DATADEF ULONG numswitches;
1281
1282#define priority_idle() DosSetPriority(PRTYS_THREAD,PRTYC_IDLETIME,30L,0L)
1283#define priority_normal() DosSetPriority(PRTYS_THREAD,PRTYC_REGULAR,0L,0L)
1284#define priority_tweaked() DosSetPriority(PRTYS_THREAD,PRTYC_REGULAR,1L,0L)
1285#define priority_bumped() DosSetPriority(PRTYS_THREAD,PRTYC_REGULAR,3L,0L)
1286#define priority_critical() DosSetPriority(PRTYS_THREAD,PRTYC_FOREGROUNDSERVER,2L,0L)
1287#define priority_max() DosSetPriority(PRTYS_THREAD,PRTYC_FOREGROUNDSERVER,31L,0L)
1288#define SysVal(value) WinQuerySysValue(HWND_DESKTOP, (value))
1289
Note: See TracBrowser for help on using the repository browser.