p7zip/CPP/7zip/UI/Console/OpenCallbackConsole.cpp
2017-10-11 12:35:36 +02:00

112 lines
1.9 KiB
C++

// OpenCallbackConsole.cpp
#include "StdAfx.h"
#include "OpenCallbackConsole.h"
#include "ConsoleClose.h"
#include "UserInputUtils.h"
static HRESULT CheckBreak2()
{
return NConsoleClose::TestBreakSignal() ? E_ABORT : S_OK;
}
HRESULT COpenCallbackConsole::Open_CheckBreak()
{
return CheckBreak2();
}
HRESULT COpenCallbackConsole::Open_SetTotal(const UInt64 *files, const UInt64 *bytes)
{
if (!MultiArcMode && NeedPercents())
{
if (files)
{
_totalFilesDefined = true;
// _totalFiles = *files;
_percent.Total = *files;
}
else
_totalFilesDefined = false;
if (bytes)
{
_totalBytesDefined = true;
// _totalBytes = *bytes;
if (!files)
_percent.Total = *bytes;
}
else
_totalBytesDefined = false;
}
return CheckBreak2();
}
HRESULT COpenCallbackConsole::Open_SetCompleted(const UInt64 *files, const UInt64 *bytes)
{
if (!MultiArcMode && NeedPercents())
{
if (files)
{
_percent.Files = *files;
if (_totalFilesDefined)
_percent.Completed = *files;
}
if (bytes)
{
if (!_totalFilesDefined)
_percent.Completed = *bytes;
}
_percent.Print();
}
return CheckBreak2();
}
HRESULT COpenCallbackConsole::Open_Finished()
{
ClosePercents();
return S_OK;
}
#ifndef _NO_CRYPTO
HRESULT COpenCallbackConsole::Open_CryptoGetTextPassword(BSTR *password)
{
*password = NULL;
RINOK(CheckBreak2());
if (!PasswordIsDefined)
{
ClosePercents();
Password = GetPassword(_so);
PasswordIsDefined = true;
}
return StringToBstr(Password, password);
}
/*
HRESULT COpenCallbackConsole::Open_GetPasswordIfAny(bool &passwordIsDefined, UString &password)
{
passwordIsDefined = PasswordIsDefined;
password = Password;
return S_OK;
}
bool COpenCallbackConsole::Open_WasPasswordAsked()
{
return PasswordWasAsked;
}
void COpenCallbackConsole::Open_Clear_PasswordWasAsked_Flag ()
{
PasswordWasAsked = false;
}
*/
#endif