source: trunk/dll/fm3dll.h@ 618

Last change on this file since 618 was 618, checked in by Steven Levine, 18 years ago

Add more drag/drop error checking
Use FreeDragInfoData
Sync with NumItemsToUnhilite AcceptOneDrop GetOneDrop mods

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