Commit 6c97cc11 authored by ElenaSubbotina's avatar ElenaSubbotina

.

parent ccdec36c
...@@ -1301,7 +1301,10 @@ namespace NExtractTools ...@@ -1301,7 +1301,10 @@ namespace NExtractTools
//decrypt to sTo //decrypt to sTo
ECMACryptReader cryptReader; ECMACryptReader cryptReader;
if (cryptReader.DecryptOfficeFile(sFrom, sTo, params.getPassword()) == false) if (cryptReader.DecryptOfficeFile(sFrom, sTo, params.getPassword()) == false)
return AVS_FILEUTILS_ERROR_CONVERT_PASSWORD; {
if (params.getPassword().empty()) return AVS_FILEUTILS_ERROR_CONVERT_DRM;
else return AVS_FILEUTILS_ERROR_CONVERT_PASSWORD;
}
return S_OK; return S_OK;
} }
...@@ -1341,36 +1344,52 @@ namespace NExtractTools ...@@ -1341,36 +1344,52 @@ namespace NExtractTools
int fromMscrypt (const std::wstring &sFrom, const std::wstring &sTo, const std::wstring & sTemp, InputParams& params) int fromMscrypt (const std::wstring &sFrom, const std::wstring &sTo, const std::wstring & sTemp, InputParams& params)
{ {
std::wstring sResultDecryptFile = sTemp + FILE_SEPARATOR_STR + L"uncrypt_file.oox"; std::wstring sResultDecryptFile = sTemp + FILE_SEPARATOR_STR + L"uncrypt_file.oox";
int nRes = mscrypt2oox(sFrom, sResultDecryptFile, sTemp, params);
if (SUCCEEDED_X2T(nRes)) COfficeFileFormatChecker OfficeFileFormatChecker;
if (OfficeFileFormatChecker.isOfficeFile(sFrom))
{ {
COfficeFileFormatChecker OfficeFileFormatChecker; if (OfficeFileFormatChecker.nFileType == AVS_OFFICESTUDIO_FILE_OTHER_MS_OFFCRYPTO)
if (OfficeFileFormatChecker.isOfficeFile(sResultDecryptFile))
{ {
switch (OfficeFileFormatChecker.nFileType) int nRes = mscrypt2oox(sFrom, sResultDecryptFile, sTemp, params);
if (SUCCEEDED_X2T(nRes))
{ {
case AVS_OFFICESTUDIO_FILE_DOCUMENT_DOCX: COfficeFileFormatChecker OfficeFileFormatChecker;
{
return fromDocument(sResultDecryptFile, AVS_OFFICESTUDIO_FILE_DOCUMENT_DOCX, sTemp, params); if (OfficeFileFormatChecker.isOfficeFile(sResultDecryptFile))
}break;
case AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX:
{
return fromSpreadsheet(sResultDecryptFile, AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX, sTemp, params);
}break;
case AVS_OFFICESTUDIO_FILE_PRESENTATION_PPTX:
case AVS_OFFICESTUDIO_FILE_PRESENTATION_PPSX:
{ {
return fromPresentation(sResultDecryptFile, AVS_OFFICESTUDIO_FILE_PRESENTATION_PPTX, sTemp, params); switch (OfficeFileFormatChecker.nFileType)
}break; {
case AVS_OFFICESTUDIO_FILE_DOCUMENT_DOCX:
{
return fromDocument(sResultDecryptFile, AVS_OFFICESTUDIO_FILE_DOCUMENT_DOCX, sTemp, params);
}break;
case AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX:
{
return fromSpreadsheet(sResultDecryptFile, AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX, sTemp, params);
}break;
case AVS_OFFICESTUDIO_FILE_PRESENTATION_PPTX:
case AVS_OFFICESTUDIO_FILE_PRESENTATION_PPSX:
{
return fromPresentation(sResultDecryptFile, AVS_OFFICESTUDIO_FILE_PRESENTATION_PPTX, sTemp, params);
}break;
}
}
}
else if (AVS_FILEUTILS_ERROR_CONVERT_DRM == nRes && !params.getDontSaveAdditional())
{
copyOrigin(sFrom, sTo);
} }
} }
else
{
copyOrigin(sFrom, sTo);
}
} }
else if (AVS_FILEUTILS_ERROR_CONVERT_DRM == nRes && !params.getDontSaveAdditional()) else
{ {
copyOrigin(sFrom, sTo); return AVS_FILEUTILS_ERROR_CONVERT_UNKNOWN_FORMAT;
} }
return nRes;
} }
//html //html
int html2doct_dir (const std::wstring &sFrom, const std::wstring &sTo, const std::wstring &sTemp, InputParams& params) int html2doct_dir (const std::wstring &sFrom, const std::wstring &sTo, const std::wstring &sTemp, InputParams& params)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment