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