3 #ifndef __OPENCALLBACK_H
\r
4 #define __OPENCALLBACK_H
\r
6 #include "Common/MyCom.h"
\r
7 #include "Common/MyString.h"
\r
9 #include "Windows/FileFind.h"
\r
11 #include "../../IPassword.h"
\r
13 #include "../../Archive/IArchive.h"
\r
16 #include "ProgressDialog.h"
\r
18 #include "ProgressDialog2.h"
\r
22 class COpenArchiveCallback:
\r
23 public IArchiveOpenCallback,
\r
24 public IArchiveOpenVolumeCallback,
\r
25 public IArchiveOpenSetSubArchiveName,
\r
27 public ICryptoGetTextPassword,
\r
28 public CMyUnknownImp
\r
30 UString _folderPrefix;
\r
31 NWindows::NFile::NFind::CFileInfoW _fileInfo;
\r
32 NWindows::NSynchronization::CCriticalSection _criticalSection;
\r
33 bool _subArchiveMode;
\r
34 UString _subArchiveName;
\r
37 bool PasswordIsDefined;
\r
38 bool PasswordWasAsked;
\r
41 CProgressDialog ProgressDialog;
\r
44 IArchiveOpenCallback,
\r
45 IArchiveOpenVolumeCallback,
\r
46 IArchiveOpenSetSubArchiveName,
\r
48 ICryptoGetTextPassword)
\r
50 INTERFACE_IProgress(;)
\r
51 INTERFACE_IArchiveOpenCallback(;)
\r
52 INTERFACE_IArchiveOpenVolumeCallback(;)
\r
54 // ICryptoGetTextPassword
\r
55 STDMETHOD(CryptoGetTextPassword)(BSTR *password);
\r
57 STDMETHOD(SetSubArchiveName(const wchar_t *name))
\r
59 _subArchiveMode = true;
\r
60 _subArchiveName = name;
\r
64 COpenArchiveCallback():
\r
67 _subArchiveMode = false;
\r
68 PasswordIsDefined = false;
\r
69 PasswordWasAsked = false;
\r
74 PasswordIsDefined = false;
\r
75 _subArchiveMode = false;
\r
78 void LoadFileInfo(const UString &folderPrefix, const UString &fileName)
\r
80 _folderPrefix = folderPrefix;
\r
81 if (!_fileInfo.Find(_folderPrefix + fileName))
\r
84 void ShowMessage(const UInt64 *completed);
\r
86 INT_PTR StartProgressDialog(const UString &title, NWindows::CThread &thread)
\r
88 return ProgressDialog.Create(title, thread, ParentWindow);
\r