• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // ZipRegistry.h
2 
3 #ifndef ZIP7_INC_ZIP_REGISTRY_H
4 #define ZIP7_INC_ZIP_REGISTRY_H
5 
6 #include "../../../Common/MyTypes.h"
7 #include "../../../Common/MyString.h"
8 
9 #include "../../Common/MethodProps.h"
10 
11 #include "ExtractMode.h"
12 
13 /*
14 CBoolPair::Def in writing functions means:
15   if (  CBoolPair::Def ), we write CBoolPair::Val
16   if ( !CBoolPair::Def )
17   {
18     in NCompression functions we delete registry value
19     in another functions we do nothing
20   }
21 */
22 
23 namespace NExtract
24 {
25   struct CInfo
26   {
27     NPathMode::EEnum PathMode;
28     NOverwriteMode::EEnum OverwriteMode;
29     bool PathMode_Force;
30     bool OverwriteMode_Force;
31 
32     CBoolPair SplitDest;
33     CBoolPair ElimDup;
34     // CBoolPair AltStreams;
35     CBoolPair NtSecurity;
36     CBoolPair ShowPassword;
37 
38     UStringVector Paths;
39 
40     void Save() const;
41     void Load();
42   };
43 
44   void Save_ShowPassword(bool showPassword);
45   bool Read_ShowPassword();
46 }
47 
48 namespace NCompression
49 {
50   struct CMemUse
51   {
52     // UString Str;
53     bool IsDefined;
54     bool IsPercent;
55     UInt64 Val;
56 
CMemUseCMemUse57     CMemUse():
58       IsDefined(false),
59       IsPercent(false),
60       Val(0)
61       {}
62 
ClearCMemUse63     void Clear()
64     {
65       // Str.Empty();
66       IsDefined = false;
67       IsPercent = false;
68       Val = 0;
69     }
70 
GetBytesCMemUse71     UInt64 GetBytes(UInt64 ramSize) const
72     {
73       if (!IsPercent)
74         return Val;
75       return Calc_From_Val_Percents(ramSize, Val);
76     }
77     void Parse(const UString &s);
78   };
79 
80   struct CFormatOptions
81   {
82     UInt32 Level;
83     UInt32 Dictionary;
84     // UInt32 DictionaryChain;
85     UInt32 Order;
86     UInt32 BlockLogSize;
87     UInt32 NumThreads;
88 
89     UInt32 TimePrec;
90     CBoolPair MTime;
91     CBoolPair ATime;
92     CBoolPair CTime;
93     CBoolPair SetArcMTime;
94 
95     CSysString FormatID;
96     UString Method;
97     UString Options;
98     UString EncryptionMethod;
99     UString MemUse;
100 
Reset_TimePrecCFormatOptions101     void Reset_TimePrec()
102     {
103       TimePrec = (UInt32)(Int32)-1;
104     }
105 
IsSet_TimePrecCFormatOptions106     bool IsSet_TimePrec() const
107     {
108       return TimePrec != (UInt32)(Int32)-1;
109     }
110 
111 
Reset_BlockLogSizeCFormatOptions112     void Reset_BlockLogSize()
113     {
114       BlockLogSize = (UInt32)(Int32)-1;
115     }
116 
ResetForLevelChangeCFormatOptions117     void ResetForLevelChange()
118     {
119       BlockLogSize = NumThreads = Level = Dictionary = Order = (UInt32)(Int32)-1;
120       // DictionaryChain = (UInt32)(Int32)-1;
121       Method.Empty();
122       // Options.Empty();
123       // EncryptionMethod.Empty();
124     }
CFormatOptionsCFormatOptions125     CFormatOptions()
126     {
127       // TimePrec = 0;
128       Reset_TimePrec();
129       ResetForLevelChange();
130     }
131   };
132 
133   struct CInfo
134   {
135     UInt32 Level;
136     bool ShowPassword;
137     bool EncryptHeaders;
138 
139     CBoolPair NtSecurity;
140     CBoolPair AltStreams;
141     CBoolPair HardLinks;
142     CBoolPair SymLinks;
143 
144     CBoolPair PreserveATime;
145 
146     UString ArcType;
147     UStringVector ArcPaths;
148 
149     CObjectVector<CFormatOptions> Formats;
150 
151     void Save() const;
152     void Load();
153   };
154 }
155 
156 namespace NWorkDir
157 {
158   namespace NMode
159   {
160     enum EEnum
161     {
162       kSystem,
163       kCurrent,
164       kSpecified
165     };
166   }
167   struct CInfo
168   {
169     NMode::EEnum Mode;
170     bool ForRemovableOnly;
171     FString Path;
172 
SetForRemovableOnlyDefaultCInfo173     void SetForRemovableOnlyDefault() { ForRemovableOnly = true; }
SetDefaultCInfo174     void SetDefault()
175     {
176       Mode = NMode::kSystem;
177       Path.Empty();
178       SetForRemovableOnlyDefault();
179     }
180 
181     void Save() const;
182     void Load();
183   };
184 }
185 
186 
187 struct CContextMenuInfo
188 {
189   CBoolPair Cascaded;
190   CBoolPair MenuIcons;
191   CBoolPair ElimDup;
192 
193   bool Flags_Def;
194   UInt32 Flags;
195   UInt32 WriteZone;
196 
197   /*
198   CContextMenuInfo():
199       Flags_Def(0),
200       WriteZone((UInt32)(Int32)-1),
201       Flags((UInt32)(Int32)-1)
202       {}
203   */
204 
205   void Save() const;
206   void Load();
207 };
208 
209 #endif
210