Imported Upstream version 9.20
[platform/upstream/7zip.git] / CPP / 7zip / UI / Common / IFileExtractCallback.h
1 // IFileExtractCallback.h\r
2 \r
3 #ifndef __IFILEEXTRACTCALLBACK_H\r
4 #define __IFILEEXTRACTCALLBACK_H\r
5 \r
6 #include "Common/MyString.h"\r
7 #include "../../IDecl.h"\r
8 \r
9 namespace NOverwriteAnswer\r
10 {\r
11   enum EEnum\r
12   {\r
13     kYes,\r
14     kYesToAll,\r
15     kNo,\r
16     kNoToAll,\r
17     kAutoRename,\r
18     kCancel\r
19   };\r
20 }\r
21 \r
22 DECL_INTERFACE_SUB(IFolderArchiveExtractCallback, IProgress, 0x01, 0x07)\r
23 {\r
24 public:\r
25   STDMETHOD(AskOverwrite)(\r
26       const wchar_t *existName, const FILETIME *existTime, const UInt64 *existSize,\r
27       const wchar_t *newName, const FILETIME *newTime, const UInt64 *newSize,\r
28       Int32 *answer) PURE;\r
29   STDMETHOD(PrepareOperation)(const wchar_t *name, bool isFolder, Int32 askExtractMode, const UInt64 *position) PURE;\r
30   STDMETHOD(MessageError)(const wchar_t *message) PURE;\r
31   STDMETHOD(SetOperationResult)(Int32 operationResult, bool encrypted) PURE;\r
32 };\r
33 \r
34 struct IExtractCallbackUI: IFolderArchiveExtractCallback\r
35 {\r
36   virtual HRESULT BeforeOpen(const wchar_t *name) = 0;\r
37   virtual HRESULT OpenResult(const wchar_t *name, HRESULT result, bool encrypted) = 0;\r
38   virtual HRESULT ThereAreNoFiles() = 0;\r
39   virtual HRESULT ExtractResult(HRESULT result) = 0;\r
40 \r
41   #ifndef _NO_CRYPTO\r
42   virtual HRESULT SetPassword(const UString &password) = 0;\r
43   #endif\r
44 };\r
45 \r
46 #endif\r