source: trunk/dll/fm3dll.h@ 145

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

Rework Win_Error usage

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