• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
25 
Z7_COM7F_IMF(CAgentFolder::CopyTo (Int32 moveMode,const UInt32 * indices,UInt32 numItems,Int32 includeAltStreams,Int32 replaceAltStreamCharsMode,const wchar_t * path,IFolderOperationsExtractCallback * callback))26 Z7_COM7F_IMF(CAgentFolder::CopyTo(Int32 moveMode, const UInt32 *indices, UInt32 numItems,
27     Int32 includeAltStreams, Int32 replaceAltStreamCharsMode,
28     const wchar_t *path, IFolderOperationsExtractCallback *callback))
29 {
30   if (moveMode)
31     return E_NOTIMPL;
32   COM_TRY_BEGIN
33   CMyComPtr<IFolderArchiveExtractCallback> extractCallback2;
34   {
35     CMyComPtr<IFolderOperationsExtractCallback> callbackWrap = callback;
36     RINOK(callbackWrap.QueryInterface(IID_IFolderArchiveExtractCallback, &extractCallback2))
37   }
38   NExtract::NPathMode::EEnum pathMode;
39   if (!_flatMode)
40     pathMode = NExtract::NPathMode::kCurPaths;
41   else
42     pathMode = (_proxy2 && _loadAltStreams) ?
43       NExtract::NPathMode::kNoPathsAlt :
44       NExtract::NPathMode::kNoPaths;
45 
46   return Extract(indices, numItems,
47       includeAltStreams, replaceAltStreamCharsMode,
48       pathMode, NExtract::NOverwriteMode::kAsk,
49       path, BoolToInt(false), extractCallback2);
50   COM_TRY_END
51 }
52