:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / apps / utils / cabman / cabman.h
1 /*
2  * COPYRIGHT:   See COPYING in the top level directory
3  * PROJECT:     ReactOS cabinet manager
4  * FILE:        apps/cabman/cabman.h
5  * PURPOSE:     Cabinet manager header
6  */
7 #ifndef __CABMAN_H
8 #define __CABMAN_H
9
10 #include "cabinet.h"
11 #include "dfp.h"
12
13 /* Cabinet manager modes */
14 #define CM_MODE_CREATE   0
15 #define CM_MODE_DISPLAY  1
16 #define CM_MODE_EXTRACT  2
17
18
19 /* Classes */
20
21 class CCABManager : public CDFParser {
22 public:
23     CCABManager();
24     virtual ~CCABManager();
25     BOOL ParseCmdline(INT argc, PCHAR argv[]);
26     VOID Run();
27 private:
28     VOID Usage();
29     VOID CreateCabinet();
30     VOID DisplayCabinet();
31     VOID ExtractFromCabinet();
32     /* Event handlers */
33     virtual BOOL OnOverwrite(PCFFILE File, LPTSTR FileName);
34     virtual VOID OnExtract(PCFFILE File, LPTSTR FileName);
35     virtual VOID OnDiskChange(LPTSTR CabinetName, LPTSTR DiskLabel);
36     virtual VOID OnAdd(PCFFILE Entry, LPTSTR FileName);
37     /* Configuration */
38     BOOL ProcessAll;
39     DWORD Mode;
40     BOOL PromptOnOverwrite;
41     TCHAR Location[MAX_PATH];
42     TCHAR FileName[MAX_PATH];
43 };
44
45 #endif /* __CABMAN_H */
46
47 /* EOF */