mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-10 18:05:41 +08:00
fix bug #74780
This commit is contained in:
@ -71,12 +71,36 @@ int BoolErr::serialize(std::wostream & stream)
|
||||
CP_XML_NODE(L"c")
|
||||
{
|
||||
CP_XML_ATTR(L"r", ref);
|
||||
CP_XML_ATTR(L"t", L"b");
|
||||
|
||||
if (cell.ixfe - global_info_->cellStyleXfs_count > 0)
|
||||
{
|
||||
CP_XML_ATTR(L"s", cell.ixfe - global_info_->cellStyleXfs_count);
|
||||
}
|
||||
}
|
||||
CP_XML_NODE(L"v")
|
||||
{
|
||||
if (bes.fError)
|
||||
{
|
||||
switch (bes.bBoolErr)
|
||||
{
|
||||
case 0x00: CP_XML_STREAM() << L"#NULL!"; break;
|
||||
case 0x07: CP_XML_STREAM() << L"#DIV/0!"; break;
|
||||
case 0x0F: CP_XML_STREAM() << L"#VALUE!"; break;
|
||||
case 0x17: CP_XML_STREAM() << L"#REF!"; break;
|
||||
case 0x1D: CP_XML_STREAM() << L"#NAME?"; break;
|
||||
case 0x24: CP_XML_STREAM() << L"#NUM!"; break;
|
||||
case 0x2A: CP_XML_STREAM() << L"#N/A"; break;
|
||||
case 0x2B: CP_XML_STREAM() << L"#GETTING_DATA"; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CP_XML_STREAM() << std::to_wstring(bes.bBoolErr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -75,31 +75,22 @@ global_info->sTheme = \
|
||||
else
|
||||
{
|
||||
nThemeDataSize = record.getDataSize() - record.getRdPtr();
|
||||
pThemeData = boost::shared_array<char>(new char[nThemeDataSize]);
|
||||
pThemeData = boost::shared_array<BYTE>(new BYTE[nThemeDataSize]);
|
||||
|
||||
memcpy(pThemeData.get(), record.getCurData<char>(), nThemeDataSize);
|
||||
record.skipNunBytes(nThemeDataSize);
|
||||
|
||||
std::wstring tempThemePath = global_info->tempDirectory + FILE_SEPARATOR_STR + L"theme.temp";
|
||||
|
||||
NSFile::CFileBinary file;
|
||||
if (!file.CreateFileW(tempThemePath)) return;
|
||||
|
||||
file.WriteFile((BYTE*)pThemeData.get(), nThemeDataSize);
|
||||
file.CloseFile();
|
||||
|
||||
COfficeUtils OfficeUtils(NULL);
|
||||
|
||||
ULONG nBufferSize = 0;
|
||||
BYTE *pBuffer = NULL;
|
||||
BYTE *pBuffer = NULL;
|
||||
|
||||
HRESULT hresult = OfficeUtils.LoadFileFromArchive(tempThemePath, L"theme1.xml", &pBuffer, nBufferSize);// todooo - parsing ThemeManager
|
||||
COfficeUtils OfficeUtils(NULL);
|
||||
HRESULT hresult = OfficeUtils.LoadFileFromArchive(pThemeData.get(), nThemeDataSize, L"theme1.xml", &pBuffer, nBufferSize);// todooo - parsing ThemeManager
|
||||
|
||||
if (hresult != S_OK || pBuffer == NULL)
|
||||
hresult = OfficeUtils.LoadFileFromArchive(tempThemePath, L"theme/theme1.xml", &pBuffer, nBufferSize);
|
||||
hresult = OfficeUtils.LoadFileFromArchive(pThemeData.get(), nThemeDataSize, L"theme/theme1.xml", &pBuffer, nBufferSize);
|
||||
|
||||
if (hresult != S_OK || pBuffer == NULL)
|
||||
hresult = OfficeUtils.LoadFileFromArchive(tempThemePath, L"theme/theme/theme1.xml", &pBuffer, nBufferSize);
|
||||
hresult = OfficeUtils.LoadFileFromArchive(pThemeData.get(), nThemeDataSize, L"theme/theme/theme1.xml", &pBuffer, nBufferSize);
|
||||
|
||||
if (hresult == S_OK && pBuffer != NULL)
|
||||
{
|
||||
|
||||
@ -56,7 +56,7 @@ public:
|
||||
FrtHeader frtHeader;
|
||||
|
||||
_UINT32 nThemeDataSize;
|
||||
boost::shared_array<char> pThemeData;
|
||||
boost::shared_array<BYTE> pThemeData;
|
||||
};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
Reference in New Issue
Block a user