11
11
#include "../../IPassword.h"
13
13
#include "../../Archive/IArchive.h"
17
#define INTERFACE_IOpenCallbackUI_Crypto(x)
21
#define INTERFACE_IOpenCallbackUI_Crypto(x) \
22
virtual HRESULT Open_CryptoGetTextPassword(BSTR *password) x; \
23
virtual HRESULT Open_GetPasswordIfAny(UString &password) x; \
24
virtual bool Open_WasPasswordAsked() x; \
25
virtual void Open_ClearPasswordWasAskedFlag() x; \
29
#define INTERFACE_IOpenCallbackUI(x) \
30
virtual HRESULT Open_CheckBreak() x; \
31
virtual HRESULT Open_SetTotal(const UInt64 *files, const UInt64 *bytes) x; \
32
virtual HRESULT Open_SetCompleted(const UInt64 *files, const UInt64 *bytes) x; \
33
INTERFACE_IOpenCallbackUI_Crypto(x)
15
35
struct IOpenCallbackUI
17
virtual HRESULT CheckBreak() = 0;
18
virtual HRESULT SetTotal(const UInt64 *files, const UInt64 *bytes) = 0;
19
virtual HRESULT SetCompleted(const UInt64 *files, const UInt64 *bytes) = 0;
21
virtual HRESULT CryptoGetTextPassword(BSTR *password) = 0;
22
virtual HRESULT GetPasswordIfAny(UString &password) = 0;
23
virtual bool WasPasswordAsked() = 0;
24
virtual void ClearPasswordWasAskedFlag() = 0;
37
INTERFACE_IOpenCallbackUI(=0)
28
class COpenCallbackImp:
40
class COpenCallbackImp:
29
41
public IArchiveOpenCallback,
30
42
public IArchiveOpenVolumeCallback,
31
43
public IArchiveOpenSetSubArchiveName,
33
45
public ICryptoGetTextPassword,
35
47
public CMyUnknownImp
40
IArchiveOpenVolumeCallback,
52
IArchiveOpenVolumeCallback,
41
53
ICryptoGetTextPassword,
42
54
IArchiveOpenSetSubArchiveName
46
IArchiveOpenVolumeCallback,
58
IArchiveOpenVolumeCallback,
47
59
IArchiveOpenSetSubArchiveName
51
STDMETHOD(SetTotal)(const UInt64 *files, const UInt64 *bytes);
52
STDMETHOD(SetCompleted)(const UInt64 *files, const UInt64 *bytes);
54
// IArchiveOpenVolumeCallback
55
STDMETHOD(GetProperty)(PROPID propID, PROPVARIANT *value);
56
STDMETHOD(GetStream)(const wchar_t *name, IInStream **inStream);
63
INTERFACE_IArchiveOpenCallback(;)
64
INTERFACE_IArchiveOpenVolumeCallback(;)
59
// ICryptoGetTextPassword
60
67
STDMETHOD(CryptoGetTextPassword)(BSTR *password);