xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/Agent/ArchiveFolder.cpp (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // Agent/ArchiveFolder.cpp
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #include "StdAfx.h"
4*f6dc9357SAndroid Build Coastguard Worker 
5*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/ComTry.h"
6*f6dc9357SAndroid Build Coastguard Worker 
7*f6dc9357SAndroid Build Coastguard Worker #include "../Common/ArchiveExtractCallback.h"
8*f6dc9357SAndroid Build Coastguard Worker 
9*f6dc9357SAndroid Build Coastguard Worker #include "Agent.h"
10*f6dc9357SAndroid Build Coastguard Worker 
11*f6dc9357SAndroid Build Coastguard Worker /*
12*f6dc9357SAndroid Build Coastguard Worker Z7_COM7F_IMF(CAgentFolder::SetReplaceAltStreamCharsMode(Int32 replaceAltStreamCharsMode))
13*f6dc9357SAndroid Build Coastguard Worker {
14*f6dc9357SAndroid Build Coastguard Worker   _replaceAltStreamCharsMode = replaceAltStreamCharsMode;
15*f6dc9357SAndroid Build Coastguard Worker   return S_OK;
16*f6dc9357SAndroid Build Coastguard Worker }
17*f6dc9357SAndroid Build Coastguard Worker */
18*f6dc9357SAndroid Build Coastguard Worker 
Z7_COM7F_IMF(CAgentFolder::SetZoneIdMode (NExtract::NZoneIdMode::EEnum zoneMode))19*f6dc9357SAndroid Build Coastguard Worker Z7_COM7F_IMF(CAgentFolder::SetZoneIdMode(NExtract::NZoneIdMode::EEnum zoneMode))
20*f6dc9357SAndroid Build Coastguard Worker {
21*f6dc9357SAndroid Build Coastguard Worker   _zoneMode = zoneMode;
22*f6dc9357SAndroid Build Coastguard Worker   return S_OK;
23*f6dc9357SAndroid Build Coastguard Worker }
24*f6dc9357SAndroid Build Coastguard Worker 
Z7_COM7F_IMF(CAgentFolder::SetZoneIdFile (const Byte * data,UInt32 size))25*f6dc9357SAndroid Build Coastguard Worker Z7_COM7F_IMF(CAgentFolder::SetZoneIdFile(const Byte *data, UInt32 size))
26*f6dc9357SAndroid Build Coastguard Worker {
27*f6dc9357SAndroid Build Coastguard Worker   _zoneBuf.CopyFrom(data, size);
28*f6dc9357SAndroid Build Coastguard Worker   return S_OK;
29*f6dc9357SAndroid Build Coastguard Worker }
30*f6dc9357SAndroid Build Coastguard Worker 
31*f6dc9357SAndroid Build Coastguard Worker 
Z7_COM7F_IMF(CAgentFolder::CopyTo (Int32 moveMode,const UInt32 * indices,UInt32 numItems,Int32 includeAltStreams,Int32 replaceAltStreamCharsMode,const wchar_t * path,IFolderOperationsExtractCallback * callback))32*f6dc9357SAndroid Build Coastguard Worker Z7_COM7F_IMF(CAgentFolder::CopyTo(Int32 moveMode, const UInt32 *indices, UInt32 numItems,
33*f6dc9357SAndroid Build Coastguard Worker     Int32 includeAltStreams, Int32 replaceAltStreamCharsMode,
34*f6dc9357SAndroid Build Coastguard Worker     const wchar_t *path, IFolderOperationsExtractCallback *callback))
35*f6dc9357SAndroid Build Coastguard Worker {
36*f6dc9357SAndroid Build Coastguard Worker   if (moveMode)
37*f6dc9357SAndroid Build Coastguard Worker     return E_NOTIMPL;
38*f6dc9357SAndroid Build Coastguard Worker   COM_TRY_BEGIN
39*f6dc9357SAndroid Build Coastguard Worker   CMyComPtr<IFolderArchiveExtractCallback> extractCallback2;
40*f6dc9357SAndroid Build Coastguard Worker   {
41*f6dc9357SAndroid Build Coastguard Worker     CMyComPtr<IFolderOperationsExtractCallback> callbackWrap = callback;
42*f6dc9357SAndroid Build Coastguard Worker     RINOK(callbackWrap.QueryInterface(IID_IFolderArchiveExtractCallback, &extractCallback2))
43*f6dc9357SAndroid Build Coastguard Worker   }
44*f6dc9357SAndroid Build Coastguard Worker   NExtract::NPathMode::EEnum pathMode;
45*f6dc9357SAndroid Build Coastguard Worker   if (!_flatMode)
46*f6dc9357SAndroid Build Coastguard Worker     pathMode = NExtract::NPathMode::kCurPaths;
47*f6dc9357SAndroid Build Coastguard Worker   else
48*f6dc9357SAndroid Build Coastguard Worker     pathMode = (_proxy2 && _loadAltStreams) ?
49*f6dc9357SAndroid Build Coastguard Worker       NExtract::NPathMode::kNoPathsAlt :
50*f6dc9357SAndroid Build Coastguard Worker       NExtract::NPathMode::kNoPaths;
51*f6dc9357SAndroid Build Coastguard Worker 
52*f6dc9357SAndroid Build Coastguard Worker   return Extract(indices, numItems,
53*f6dc9357SAndroid Build Coastguard Worker       includeAltStreams, replaceAltStreamCharsMode,
54*f6dc9357SAndroid Build Coastguard Worker       pathMode, NExtract::NOverwriteMode::kAsk,
55*f6dc9357SAndroid Build Coastguard Worker       path, BoolToInt(false), extractCallback2);
56*f6dc9357SAndroid Build Coastguard Worker   COM_TRY_END
57*f6dc9357SAndroid Build Coastguard Worker }
58