Upload 2.0.2
[physicsfs] / lzma / CPP / 7zip / UI / Console / OpenCallbackConsole.cpp
1 // OpenCallbackConsole.cpp
2
3 #include "StdAfx.h"
4
5 #include "OpenCallbackConsole.h"
6
7 #include "ConsoleClose.h"
8 #include "UserInputUtils.h"
9
10 HRESULT COpenCallbackConsole::CheckBreak()
11 {
12   if (NConsoleClose::TestBreakSignal())
13     return E_ABORT;
14   return S_OK;
15 }
16
17 HRESULT COpenCallbackConsole::SetTotal(const UInt64 *, const UInt64 *)
18 {
19   return CheckBreak();
20 }
21
22 HRESULT COpenCallbackConsole::SetCompleted(const UInt64 *, const UInt64 *)
23 {
24   return CheckBreak();
25 }
26  
27 HRESULT COpenCallbackConsole::CryptoGetTextPassword(BSTR *password)
28 {
29   PasswordWasAsked = true;
30   RINOK(CheckBreak());
31   if (!PasswordIsDefined)
32   {
33     Password = GetPassword(OutStream); 
34     PasswordIsDefined = true;
35   }
36   CMyComBSTR temp(Password);
37   *password = temp.Detach();
38   return S_OK;
39 }
40
41 HRESULT COpenCallbackConsole::GetPasswordIfAny(UString &password)
42 {
43   if (PasswordIsDefined)
44     password = Password;
45   return S_OK;
46 }
47
48 bool COpenCallbackConsole::WasPasswordAsked()
49 {
50   return PasswordWasAsked;
51 }
52
53 void COpenCallbackConsole::ClearPasswordWasAskedFlag()
54 {
55   PasswordWasAsked = false;
56 }
57
58