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