source: trunk/dll/fm3dll.h@ 168

Last change on this file since 168 was 165, checked in by root, 20 years ago

Rework for FillInRecordFromFFB
Add CommaFmtULL CommaFmtUL

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