mirror of
				https://github.com/YACReader/yacreader
				synced 2025-11-03 16:54:39 -05: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 CArchiveOpenCallback:
 | 
						|
  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;
 | 
						|
 | 
						|
  CArchiveOpenCallback() : PasswordIsDefined(false) {}
 | 
						|
};
 | 
						|
 | 
						|
STDMETHODIMP CArchiveOpenCallback::SetTotal(const UInt64 * /* files */, const UInt64 * /* bytes */)
 | 
						|
{
 | 
						|
  return S_OK;
 | 
						|
}
 | 
						|
 | 
						|
STDMETHODIMP CArchiveOpenCallback::SetCompleted(const UInt64 * /* files */, const UInt64 * /* bytes */)
 | 
						|
{
 | 
						|
  return S_OK;
 | 
						|
}
 | 
						|
  
 | 
						|
STDMETHODIMP CArchiveOpenCallback::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 |