source: trunk/dll/fm3dll.h@ 201

Last change on this file since 201 was 170, checked in by root, 20 years ago

Drop local functions

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