mirror of
https://github.com/YACReader/yacreader
synced 2025-05-28 03:10:27 -04:00
45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
#ifndef OPEN_CALLBACKS_H
|
|
#define OPEN_CALLBACKS_H
|
|
|
|
#include "7z_includes.h"
|
|
#include <QDebug>
|
|
//////////////////////////////////////////////////////////////
|
|
// Archive Open callback class
|
|
|
|
class YCArchiveOpenCallback : public IArchiveOpenCallback,
|
|
public ICryptoGetTextPassword,
|
|
public CMyUnknownImp
|
|
{
|
|
Z7_IFACES_IMP_UNK_2(IArchiveOpenCallback, ICryptoGetTextPassword)
|
|
public:
|
|
bool PasswordIsDefined;
|
|
UString Password;
|
|
|
|
YCArchiveOpenCallback()
|
|
: PasswordIsDefined(false) { }
|
|
};
|
|
|
|
Z7_COM7F_IMF(YCArchiveOpenCallback::SetTotal(const UInt64 * /* files */, const UInt64 * /* bytes */))
|
|
{
|
|
return S_OK;
|
|
}
|
|
|
|
Z7_COM7F_IMF(YCArchiveOpenCallback::SetCompleted(const UInt64 * /* files */, const UInt64 * /* bytes */))
|
|
{
|
|
return S_OK;
|
|
}
|
|
|
|
Z7_COM7F_IMF(YCArchiveOpenCallback::CryptoGetTextPassword(BSTR *password))
|
|
{
|
|
if (!PasswordIsDefined) {
|
|
// You can ask real password here from user
|
|
// Password = GetPassword(OutStream);
|
|
// PasswordIsDefined = true;
|
|
qDebug() << "Password is not defined" << Qt::endl;
|
|
return E_ABORT;
|
|
}
|
|
return StringToBstr(Password, password);
|
|
}
|
|
|
|
#endif
|