source: trunk/dll/fm3dll.h@ 886

Last change on this file since 886 was 886, checked in by Gregg Young, 18 years ago

Make WPURLDEFAULTSETTINGS the fall back for ftprun Ticket 182

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