1*f6dc9357SAndroid Build Coastguard Worker // OpenCallbackConsole.cpp 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #include "StdAfx.h" 4*f6dc9357SAndroid Build Coastguard Worker 5*f6dc9357SAndroid Build Coastguard Worker #include "OpenCallbackConsole.h" 6*f6dc9357SAndroid Build Coastguard Worker 7*f6dc9357SAndroid Build Coastguard Worker #include "ConsoleClose.h" 8*f6dc9357SAndroid Build Coastguard Worker #include "UserInputUtils.h" 9*f6dc9357SAndroid Build Coastguard Worker CheckBreak2()10*f6dc9357SAndroid Build Coastguard Workerstatic HRESULT CheckBreak2() 11*f6dc9357SAndroid Build Coastguard Worker { 12*f6dc9357SAndroid Build Coastguard Worker return NConsoleClose::TestBreakSignal() ? E_ABORT : S_OK; 13*f6dc9357SAndroid Build Coastguard Worker } 14*f6dc9357SAndroid Build Coastguard Worker Open_CheckBreak()15*f6dc9357SAndroid Build Coastguard WorkerHRESULT COpenCallbackConsole::Open_CheckBreak() 16*f6dc9357SAndroid Build Coastguard Worker { 17*f6dc9357SAndroid Build Coastguard Worker return CheckBreak2(); 18*f6dc9357SAndroid Build Coastguard Worker } 19*f6dc9357SAndroid Build Coastguard Worker Open_SetTotal(const UInt64 * files,const UInt64 * bytes)20*f6dc9357SAndroid Build Coastguard WorkerHRESULT COpenCallbackConsole::Open_SetTotal(const UInt64 *files, const UInt64 *bytes) 21*f6dc9357SAndroid Build Coastguard Worker { 22*f6dc9357SAndroid Build Coastguard Worker if (!MultiArcMode && NeedPercents()) 23*f6dc9357SAndroid Build Coastguard Worker { 24*f6dc9357SAndroid Build Coastguard Worker if (files) 25*f6dc9357SAndroid Build Coastguard Worker { 26*f6dc9357SAndroid Build Coastguard Worker _totalFilesDefined = true; 27*f6dc9357SAndroid Build Coastguard Worker // _totalFiles = *files; 28*f6dc9357SAndroid Build Coastguard Worker _percent.Total = *files; 29*f6dc9357SAndroid Build Coastguard Worker } 30*f6dc9357SAndroid Build Coastguard Worker else 31*f6dc9357SAndroid Build Coastguard Worker _totalFilesDefined = false; 32*f6dc9357SAndroid Build Coastguard Worker 33*f6dc9357SAndroid Build Coastguard Worker if (bytes) 34*f6dc9357SAndroid Build Coastguard Worker { 35*f6dc9357SAndroid Build Coastguard Worker // _totalBytesDefined = true; 36*f6dc9357SAndroid Build Coastguard Worker _totalBytes = *bytes; 37*f6dc9357SAndroid Build Coastguard Worker if (!files) 38*f6dc9357SAndroid Build Coastguard Worker _percent.Total = *bytes; 39*f6dc9357SAndroid Build Coastguard Worker } 40*f6dc9357SAndroid Build Coastguard Worker else 41*f6dc9357SAndroid Build Coastguard Worker { 42*f6dc9357SAndroid Build Coastguard Worker // _totalBytesDefined = false; 43*f6dc9357SAndroid Build Coastguard Worker if (!files) 44*f6dc9357SAndroid Build Coastguard Worker _percent.Total = _totalBytes; 45*f6dc9357SAndroid Build Coastguard Worker } 46*f6dc9357SAndroid Build Coastguard Worker } 47*f6dc9357SAndroid Build Coastguard Worker 48*f6dc9357SAndroid Build Coastguard Worker return CheckBreak2(); 49*f6dc9357SAndroid Build Coastguard Worker } 50*f6dc9357SAndroid Build Coastguard Worker Open_SetCompleted(const UInt64 * files,const UInt64 * bytes)51*f6dc9357SAndroid Build Coastguard WorkerHRESULT COpenCallbackConsole::Open_SetCompleted(const UInt64 *files, const UInt64 *bytes) 52*f6dc9357SAndroid Build Coastguard Worker { 53*f6dc9357SAndroid Build Coastguard Worker if (!MultiArcMode && NeedPercents()) 54*f6dc9357SAndroid Build Coastguard Worker { 55*f6dc9357SAndroid Build Coastguard Worker if (files) 56*f6dc9357SAndroid Build Coastguard Worker { 57*f6dc9357SAndroid Build Coastguard Worker _percent.Files = *files; 58*f6dc9357SAndroid Build Coastguard Worker if (_totalFilesDefined) 59*f6dc9357SAndroid Build Coastguard Worker _percent.Completed = *files; 60*f6dc9357SAndroid Build Coastguard Worker } 61*f6dc9357SAndroid Build Coastguard Worker 62*f6dc9357SAndroid Build Coastguard Worker if (bytes) 63*f6dc9357SAndroid Build Coastguard Worker { 64*f6dc9357SAndroid Build Coastguard Worker if (!_totalFilesDefined) 65*f6dc9357SAndroid Build Coastguard Worker _percent.Completed = *bytes; 66*f6dc9357SAndroid Build Coastguard Worker } 67*f6dc9357SAndroid Build Coastguard Worker _percent.Print(); 68*f6dc9357SAndroid Build Coastguard Worker } 69*f6dc9357SAndroid Build Coastguard Worker 70*f6dc9357SAndroid Build Coastguard Worker return CheckBreak2(); 71*f6dc9357SAndroid Build Coastguard Worker } 72*f6dc9357SAndroid Build Coastguard Worker Open_Finished()73*f6dc9357SAndroid Build Coastguard WorkerHRESULT COpenCallbackConsole::Open_Finished() 74*f6dc9357SAndroid Build Coastguard Worker { 75*f6dc9357SAndroid Build Coastguard Worker ClosePercents(); 76*f6dc9357SAndroid Build Coastguard Worker return S_OK; 77*f6dc9357SAndroid Build Coastguard Worker } 78*f6dc9357SAndroid Build Coastguard Worker 79*f6dc9357SAndroid Build Coastguard Worker 80*f6dc9357SAndroid Build Coastguard Worker #ifndef Z7_NO_CRYPTO 81*f6dc9357SAndroid Build Coastguard Worker Open_CryptoGetTextPassword(BSTR * password)82*f6dc9357SAndroid Build Coastguard WorkerHRESULT COpenCallbackConsole::Open_CryptoGetTextPassword(BSTR *password) 83*f6dc9357SAndroid Build Coastguard Worker { 84*f6dc9357SAndroid Build Coastguard Worker *password = NULL; 85*f6dc9357SAndroid Build Coastguard Worker RINOK(CheckBreak2()) 86*f6dc9357SAndroid Build Coastguard Worker 87*f6dc9357SAndroid Build Coastguard Worker if (!PasswordIsDefined) 88*f6dc9357SAndroid Build Coastguard Worker { 89*f6dc9357SAndroid Build Coastguard Worker ClosePercents(); 90*f6dc9357SAndroid Build Coastguard Worker RINOK(GetPassword_HRESULT(_so, Password)) 91*f6dc9357SAndroid Build Coastguard Worker PasswordIsDefined = true; 92*f6dc9357SAndroid Build Coastguard Worker } 93*f6dc9357SAndroid Build Coastguard Worker return StringToBstr(Password, password); 94*f6dc9357SAndroid Build Coastguard Worker } 95*f6dc9357SAndroid Build Coastguard Worker 96*f6dc9357SAndroid Build Coastguard Worker /* 97*f6dc9357SAndroid Build Coastguard Worker HRESULT COpenCallbackConsole::Open_GetPasswordIfAny(bool &passwordIsDefined, UString &password) 98*f6dc9357SAndroid Build Coastguard Worker { 99*f6dc9357SAndroid Build Coastguard Worker passwordIsDefined = PasswordIsDefined; 100*f6dc9357SAndroid Build Coastguard Worker password = Password; 101*f6dc9357SAndroid Build Coastguard Worker return S_OK; 102*f6dc9357SAndroid Build Coastguard Worker } 103*f6dc9357SAndroid Build Coastguard Worker 104*f6dc9357SAndroid Build Coastguard Worker bool COpenCallbackConsole::Open_WasPasswordAsked() 105*f6dc9357SAndroid Build Coastguard Worker { 106*f6dc9357SAndroid Build Coastguard Worker return PasswordWasAsked; 107*f6dc9357SAndroid Build Coastguard Worker } 108*f6dc9357SAndroid Build Coastguard Worker 109*f6dc9357SAndroid Build Coastguard Worker void COpenCallbackConsole::Open_Clear_PasswordWasAsked_Flag () 110*f6dc9357SAndroid Build Coastguard Worker { 111*f6dc9357SAndroid Build Coastguard Worker PasswordWasAsked = false; 112*f6dc9357SAndroid Build Coastguard Worker } 113*f6dc9357SAndroid Build Coastguard Worker */ 114*f6dc9357SAndroid Build Coastguard Worker 115*f6dc9357SAndroid Build Coastguard Worker #endif 116