diff --git a/compressed_archive/compressed_archive.cpp b/compressed_archive/compressed_archive.cpp index 848106e4..fffc2119 100644 --- a/compressed_archive/compressed_archive.cpp +++ b/compressed_archive/compressed_archive.cpp @@ -123,10 +123,8 @@ CompressedArchive::CompressedArchive(const QString &filePath, QObject *parent) CMyComPtr file = fileSpec; YCArchiveOpenCallback *openCallbackSpec = new YCArchiveOpenCallback; - CMyComPtr openCallback = openCallbackSpec; + CMyComPtr openCallback(openCallbackSpec); openCallbackSpec->PasswordIsDefined = false; - // openCallbackSpec->PasswordIsDefined = true; - // openCallbackSpec->Password = L"1"; // get file type from suffix int i = -1; @@ -136,10 +134,6 @@ CompressedArchive::CompressedArchive(const QString &filePath, QObject *parent) return; QByteArray magicNumber = filex.read(8); // read first 8 bytes - // if (memcmp(magicNumber,rar5,8)==0) - // return; //rar5 is not supported - // qDebug() << memcmp(magicNumber,rar,7); - // TODO: this suffix matching is rather primitive - better approach? #ifdef Q_OS_UNIX if (memcmp(magicNumber, rar, 6) != 0) { // match suffix to GUID list diff --git a/compressed_archive/extract_callbacks.h b/compressed_archive/extract_callbacks.h index 080ada8c..7acb50c9 100644 --- a/compressed_archive/extract_callbacks.h +++ b/compressed_archive/extract_callbacks.h @@ -44,26 +44,8 @@ class YCArchiveExtractCallback : public IArchiveExtractCallback, public ICryptoGetTextPassword, public CMyUnknownImp { -public: - MY_UNKNOWN_IMP1(ICryptoGetTextPassword) - - // IProgress - STDMETHOD(SetTotal) - (UInt64 size); - STDMETHOD(SetCompleted) - (const UInt64 *completeValue); - - // IArchiveExtractCallback - STDMETHOD(GetStream) - (UInt32 index, ISequentialOutStream **outStream, Int32 askExtractMode); - STDMETHOD(PrepareOperation) - (Int32 askExtractMode); - STDMETHOD(SetOperationResult) - (Int32 resultEOperationResult); - - // ICryptoGetTextPassword - STDMETHOD(CryptoGetTextPassword) - (BSTR *aPassword); + Z7_IFACES_IMP_UNK_2(IArchiveExtractCallback, ICryptoGetTextPassword) + Z7_IFACE_COM7_IMP(IProgress) private: CMyComPtr _archiveHandler; @@ -108,18 +90,18 @@ void YCArchiveExtractCallback::Init(IInArchive *archiveHandler, const UString &d directoryPath; // unused } -STDMETHODIMP YCArchiveExtractCallback::SetTotal(UInt64 /* size */) +Z7_COM7F_IMF(YCArchiveExtractCallback::SetTotal(UInt64 /* size */)) { return S_OK; } -STDMETHODIMP YCArchiveExtractCallback::SetCompleted(const UInt64 * /* completeValue */) +Z7_COM7F_IMF(YCArchiveExtractCallback::SetCompleted(const UInt64 * /* completeValue */)) { return S_OK; } -STDMETHODIMP YCArchiveExtractCallback::GetStream(UInt32 index, - ISequentialOutStream **outStream, Int32 askExtractMode) +Z7_COM7F_IMF(YCArchiveExtractCallback::GetStream(UInt32 index, + ISequentialOutStream **outStream, Int32 askExtractMode)) { *outStream = 0; _outFileStream.Release(); @@ -220,7 +202,7 @@ STDMETHODIMP YCArchiveExtractCallback::GetStream(UInt32 index, }*/ if (newFileSizeDefined) { CBufPtrSeqOutStream *outStreamSpec = new CBufPtrSeqOutStream; - CMyComPtr outStreamLocal(outStreamSpec); + CMyComPtr outStreamLocal(outStreamSpec); data = (Byte *)MidAlloc(newFileSize); outStreamSpec->Init(data, newFileSize); *outStream = outStreamLocal.Detach(); @@ -230,7 +212,7 @@ STDMETHODIMP YCArchiveExtractCallback::GetStream(UInt32 index, return S_OK; } -STDMETHODIMP YCArchiveExtractCallback::PrepareOperation(Int32 askExtractMode) +Z7_COM7F_IMF(YCArchiveExtractCallback::PrepareOperation(Int32 askExtractMode)) { _extractMode = false; switch (askExtractMode) { @@ -248,7 +230,7 @@ STDMETHODIMP YCArchiveExtractCallback::PrepareOperation(Int32 askExtractMode) return S_OK; } -STDMETHODIMP YCArchiveExtractCallback::SetOperationResult(Int32 operationResult) +Z7_COM7F_IMF(YCArchiveExtractCallback::SetOperationResult(Int32 operationResult)) { switch (operationResult) { case NArchive::NExtract::NOperationResult::kOK: @@ -303,7 +285,7 @@ STDMETHODIMP YCArchiveExtractCallback::SetOperationResult(Int32 operationResult) return S_OK; } -STDMETHODIMP YCArchiveExtractCallback::CryptoGetTextPassword(BSTR *password) +Z7_COM7F_IMF(YCArchiveExtractCallback::CryptoGetTextPassword(BSTR *password)) { if (!PasswordIsDefined) { // You can ask real password here from user diff --git a/compressed_archive/open_callbacks.h b/compressed_archive/open_callbacks.h index 1a4dc4ee..0e46c1de 100644 --- a/compressed_archive/open_callbacks.h +++ b/compressed_archive/open_callbacks.h @@ -10,17 +10,8 @@ class YCArchiveOpenCallback : public IArchiveOpenCallback, public ICryptoGetTextPassword, public CMyUnknownImp { + Z7_IFACES_IMP_UNK_2(IArchiveOpenCallback, ICryptoGetTextPassword) 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; @@ -28,17 +19,17 @@ public: : PasswordIsDefined(false) { } }; -STDMETHODIMP YCArchiveOpenCallback::SetTotal(const UInt64 * /* files */, const UInt64 * /* bytes */) +Z7_COM7F_IMF(YCArchiveOpenCallback::SetTotal(const UInt64 * /* files */, const UInt64 * /* bytes */)) { return S_OK; } -STDMETHODIMP YCArchiveOpenCallback::SetCompleted(const UInt64 * /* files */, const UInt64 * /* bytes */) +Z7_COM7F_IMF(YCArchiveOpenCallback::SetCompleted(const UInt64 * /* files */, const UInt64 * /* bytes */)) { return S_OK; } -STDMETHODIMP YCArchiveOpenCallback::CryptoGetTextPassword(BSTR *password) +Z7_COM7F_IMF(YCArchiveOpenCallback::CryptoGetTextPassword(BSTR *password)) { if (!PasswordIsDefined) { // You can ask real password here from user