source: trunk/dll/fm3dll.h@ 593

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

Changes to remove GetPString from window class names

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