1 // ZipRegistry.h
2 
3 #ifndef __ZIP_REGISTRY_H
4 #define __ZIP_REGISTRY_H
5 
6 #include "../../../Common/MyTypes.h"
7 #include "../../../Common/MyString.h"
8 
9 #include "ExtractMode.h"
10 
11 namespace NExtract
12 {
13   struct CInfo
14   {
15     NPathMode::EEnum PathMode;
16     NOverwriteMode::EEnum OverwriteMode;
17     bool PathMode_Force;
18     bool OverwriteMode_Force;
19 
20     CBoolPair SplitDest;
21     CBoolPair ElimDup;
22     // CBoolPair AltStreams;
23     CBoolPair NtSecurity;
24     CBoolPair ShowPassword;
25 
26     UStringVector Paths;
27 
28     void Save() const;
29     void Load();
30   };
31 
32   void Save_ShowPassword(bool showPassword);
33   bool Read_ShowPassword();
34 }
35 
36 namespace NCompression
37 {
38   struct CFormatOptions
39   {
40     UInt32 Level;
41     UInt32 Dictionary;
42     UInt32 Order;
43     UInt32 BlockLogSize;
44     UInt32 NumThreads;
45 
46     CSysString FormatID;
47     UString Method;
48     UString Options;
49     UString EncryptionMethod;
50 
ResetForLevelChangeCFormatOptions51     void ResetForLevelChange()
52     {
53       BlockLogSize = NumThreads = Level = Dictionary = Order = UInt32(-1);
54       Method.Empty();
55       // Options.Empty();
56       // EncryptionMethod.Empty();
57     }
CFormatOptionsCFormatOptions58     CFormatOptions() { ResetForLevelChange(); }
59   };
60 
61   struct CInfo
62   {
63     UInt32 Level;
64     bool ShowPassword;
65     bool EncryptHeaders;
66     UString ArcType;
67     UStringVector ArcPaths;
68 
69     CObjectVector<CFormatOptions> Formats;
70 
71     CBoolPair NtSecurity;
72     CBoolPair AltStreams;
73     CBoolPair HardLinks;
74     CBoolPair SymLinks;
75 
76     void Save() const;
77     void Load();
78   };
79 }
80 
81 namespace NWorkDir
82 {
83   namespace NMode
84   {
85     enum EEnum
86     {
87       kSystem,
88       kCurrent,
89       kSpecified
90     };
91   }
92   struct CInfo
93   {
94     NMode::EEnum Mode;
95     FString Path;
96     bool ForRemovableOnly;
97 
SetForRemovableOnlyDefaultCInfo98     void SetForRemovableOnlyDefault() { ForRemovableOnly = true; }
SetDefaultCInfo99     void SetDefault()
100     {
101       Mode = NMode::kSystem;
102       Path.Empty();
103       SetForRemovableOnlyDefault();
104     }
105 
106     void Save() const;
107     void Load();
108   };
109 }
110 
111 
112 struct CContextMenuInfo
113 {
114   CBoolPair Cascaded;
115   CBoolPair MenuIcons;
116   CBoolPair ElimDup;
117 
118   bool Flags_Def;
119   UInt32 Flags;
120 
121   void Save() const;
122   void Load();
123 };
124 
125 #endif
126