mirror of
				https://github.com/YACReader/yacreader
				synced 2025-10-30 15:54:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 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
 | |
| {
 | |
| public:
 | |
|     MY_UNKNOWN_IMP1(ICryptoGetTextPassword)
 | |
| 
 | |
|     STDMETHOD(SetTotal)
 | |
|     (const UInt64 *files, const UInt64 *bytes);
 | |
|     STDMETHOD(SetCompleted)
 | |
|     (const UInt64 *files, const UInt64 *bytes);
 | |
| 
 | |
|     STDMETHOD(CryptoGetTextPassword)
 | |
|     (BSTR *password);
 | |
| 
 | |
|     bool PasswordIsDefined;
 | |
|     UString Password;
 | |
| 
 | |
|     YCArchiveOpenCallback()
 | |
|         : PasswordIsDefined(false) {}
 | |
| };
 | |
| 
 | |
| STDMETHODIMP YCArchiveOpenCallback::SetTotal(const UInt64 * /* files */, const UInt64 * /* bytes */)
 | |
| {
 | |
|     return S_OK;
 | |
| }
 | |
| 
 | |
| STDMETHODIMP YCArchiveOpenCallback::SetCompleted(const UInt64 * /* files */, const UInt64 * /* bytes */)
 | |
| {
 | |
|     return S_OK;
 | |
| }
 | |
| 
 | |
| STDMETHODIMP YCArchiveOpenCallback::CryptoGetTextPassword(BSTR *password)
 | |
| {
 | |
|     if (!PasswordIsDefined) {
 | |
|         // You can ask real password here from user
 | |
|         // Password = GetPassword(OutStream);
 | |
|         // PasswordIsDefined = true;
 | |
|         qDebug() << "Password is not defined" << endl;
 | |
|         return E_ABORT;
 | |
|     }
 | |
|     return StringToBstr(Password, password);
 | |
| }
 | |
| 
 | |
| #endif
 |