source: trunk/dll/fm3dll.h@ 2

Last change on this file since 2 was 2, checked in by root, 23 years ago

Initial revision

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