Added image conversion to hwp, bug fixes, and refactoring

This commit is contained in:
Green
2024-12-26 20:51:15 +03:00
parent 7b03bcde89
commit 4bf0cee034
119 changed files with 1473 additions and 595 deletions

View File

@ -10,54 +10,52 @@ bool CHwpFileHeader::Parse(CHWPStream& oBuffer)
if (!oBuffer.IsValid())
return false;
unsigned int unOffset = 0;
oBuffer.ReadString(m_sSignature, 32, EStringCharacter::ASCII);
if (L"HWP Document File" != m_sSignature)
return false;
//version
m_sVersion = std::to_wstring((int)oBuffer[unOffset + 3]) + std::to_wstring((int)oBuffer[unOffset + 2]) + std::to_wstring((int)oBuffer[unOffset + 1]) + std::to_wstring((int)oBuffer[unOffset + 0]);
unOffset += 4;
m_sVersion = std::to_wstring((int)oBuffer[3]) + std::to_wstring((int)oBuffer[2]) + std::to_wstring((int)oBuffer[1]) + std::to_wstring((int)oBuffer[0]);
oBuffer.Skip(4);
m_bCompressed = CHECK_FLAG(oBuffer[unOffset], 0x01);
m_bPasswordEncrypted = CHECK_FLAG(oBuffer[unOffset], 0x02);
m_bDistributable = CHECK_FLAG(oBuffer[unOffset], 0x04);
m_bSaveScript = CHECK_FLAG(oBuffer[unOffset], 0x08);
m_bDRMprotected = CHECK_FLAG(oBuffer[unOffset], 0x10);
m_bHasXMLTemplateStorage =CHECK_FLAG(oBuffer[unOffset], 0x20);
m_bHasDocumentHistory = CHECK_FLAG(oBuffer[unOffset], 0x40);
m_bHasPkiSignature = CHECK_FLAG(oBuffer[unOffset], 0x80);
m_bCompressed = CHECK_FLAG(oBuffer[0], 0x01);
m_bPasswordEncrypted = CHECK_FLAG(oBuffer[0], 0x02);
m_bDistributable = CHECK_FLAG(oBuffer[0], 0x04);
m_bSaveScript = CHECK_FLAG(oBuffer[0], 0x08);
m_bDRMprotected = CHECK_FLAG(oBuffer[0], 0x10);
m_bHasXMLTemplateStorage =CHECK_FLAG(oBuffer[0], 0x20);
m_bHasDocumentHistory = CHECK_FLAG(oBuffer[0], 0x40);
m_bHasPkiSignature = CHECK_FLAG(oBuffer[0], 0x80);
++unOffset;
oBuffer.Skip(1);
m_bPkiEncrypted = CHECK_FLAG(oBuffer[unOffset], 0x01);
m_bReservePkiSignature = CHECK_FLAG(oBuffer[unOffset], 0x02);
m_bPkiCertificateDRM = CHECK_FLAG(oBuffer[unOffset], 0x04);
m_bCCLDocument = CHECK_FLAG(oBuffer[unOffset], 0x08);
m_bMobileOptimized = CHECK_FLAG(oBuffer[unOffset], 0x10);
m_bPrivateInformation = CHECK_FLAG(oBuffer[unOffset], 0x20);
m_bModifyTracking = CHECK_FLAG(oBuffer[unOffset], 0x40);
m_bCopyrightKOGL = CHECK_FLAG(oBuffer[unOffset], 0x80);
m_bPkiEncrypted = CHECK_FLAG(oBuffer[0], 0x01);
m_bReservePkiSignature = CHECK_FLAG(oBuffer[0], 0x02);
m_bPkiCertificateDRM = CHECK_FLAG(oBuffer[0], 0x04);
m_bCCLDocument = CHECK_FLAG(oBuffer[0], 0x08);
m_bMobileOptimized = CHECK_FLAG(oBuffer[0], 0x10);
m_bPrivateInformation = CHECK_FLAG(oBuffer[0], 0x20);
m_bModifyTracking = CHECK_FLAG(oBuffer[0], 0x40);
m_bCopyrightKOGL = CHECK_FLAG(oBuffer[0], 0x80);
++unOffset;
oBuffer.Skip(1);
m_bHasVideoControl = CHECK_FLAG(oBuffer[unOffset], 0x01);
m_bHasMarkFieldControl = CHECK_FLAG(oBuffer[unOffset], 0x02);
m_bHasVideoControl = CHECK_FLAG(oBuffer[0], 0x01);
m_bHasMarkFieldControl = CHECK_FLAG(oBuffer[0], 0x02);
unOffset += 2;
oBuffer.Skip(2);
m_bCopyrighted = CHECK_FLAG(oBuffer[unOffset], 0x01);
m_bCopyProhibited = CHECK_FLAG(oBuffer[unOffset], 0x02);
m_bCopyPermitted = CHECK_FLAG(oBuffer[unOffset], 0x04);
m_bCopyrighted = CHECK_FLAG(oBuffer[0], 0x01);
m_bCopyProhibited = CHECK_FLAG(oBuffer[0], 0x02);
m_bCopyPermitted = CHECK_FLAG(oBuffer[0], 0x04);
unOffset += 4;
oBuffer.Skip(4);
//encryptVersion
unOffset += 4;
oBuffer.Skip(4);
m_nCountryKOGLLicensed = (int)oBuffer[unOffset];
m_nCountryKOGLLicensed = (int)oBuffer[0];
return true;
}
@ -87,7 +85,7 @@ bool CHwpFileHeader::VersionEmpty() const
return m_sVersion.empty();
}
STRING CHwpFileHeader::GetVersion() const
HWP_STRING CHwpFileHeader::GetVersion() const
{
return m_sVersion;
}