source: trunk/dll/fm3dll.h@ 551

Last change on this file since 551 was 551, checked in by Gregg Young, 19 years ago

Indentation cleanup

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