source: trunk/dll/fm3dll.h@ 251

Last change on this file since 251 was 246, checked in by root, 20 years ago

Renames

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