mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 00df026108 | |||
| 56a4e80c83 | |||
| 6f93eeae69 | |||
| be45d169d7 | |||
| 03267ba2ec | |||
| b0adc188a2 | |||
| 048fbc4b18 | |||
| 0296a6ef33 | |||
| dcee112745 | |||
| 65709f9cc2 | |||
| bf5c41b9a0 | |||
| 66b45dba7c | |||
| 2ce5708599 | |||
| 48d94d24eb | |||
| f5c569ab2a | |||
| 2e61fcfdd9 | |||
| 3df883cbe8 | |||
| 0ed3f740b7 | |||
| af2e76aea6 | |||
| 6593230d48 | |||
| e02c72b564 |
@ -75,6 +75,8 @@ namespace DocFileFormat
|
||||
|
||||
while ( ( cp - m_document->FIB->m_RgLw97.ccpText ) < (*m_document->IndividualFootnotesPlex)[id + 1] )
|
||||
{
|
||||
int cpStart = cp;
|
||||
|
||||
int fc = m_document->FindFileCharPos(cp);
|
||||
if (fc < 0) break;
|
||||
|
||||
@ -93,6 +95,8 @@ namespace DocFileFormat
|
||||
//this PAPX is for a normal paragraph
|
||||
cp = writeParagraph( cp );
|
||||
}
|
||||
while (cp <= cpStart) //conv_fQioC665ib4ngHkDGY4__docx.doc
|
||||
cp++;
|
||||
}
|
||||
|
||||
m_pXmlWriter->WriteNodeEnd( L"w:footnote");
|
||||
|
||||
@ -124,11 +124,14 @@ namespace DocFileFormat
|
||||
TableInfo tai(papx);
|
||||
if (tai.fInTable)
|
||||
{
|
||||
int cpStart = cp;
|
||||
//this PAPX is for a table
|
||||
//cp = writeTable( cp, tai.iTap );
|
||||
Table table( this, cp, ( ( tai.iTap > 0 ) ? ( 1 ) : ( 0 ) ) );
|
||||
table.Convert(this);
|
||||
cp = table.GetCPEnd();
|
||||
while (cp <= cpStart) //conv_eznHsm8em2unSv6_2QE__docx.doc
|
||||
cp++;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -2,34 +2,38 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocFormatLib", "..\DocFormatLib\Win32\DocFormatLib.vcproj", "{C5371405-338F-4B70-83BD-2A5CDF64F383}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C} = {C27E9A9F-3A17-4482-9C5F-BF15C01E747C}
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D} = {77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics", "..\..\DesktopEditor\graphics\graphics_vs2005.vcproj", "{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD} = {617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD} = {617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B} = {78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeUtilsLib", "..\..\OfficeUtils\win32\OfficeUtilsLib.vcproj", "{F8274B05-168E-4D6E-B843-AA7510725363}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raster", "..\..\DesktopEditor\raster\raster_vs2005.vcproj", "{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} = {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} = {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cximage", "..\..\DesktopEditor\cximage\CxImage\cximage_vs2005.vcproj", "{BC52A07C-A797-423D-8C4F-8678805BBB36}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
|
||||
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470} = {818753F2-DBB9-4D3B-898A-A604309BE470}
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D} = {FFDA5DA1-BB65-4695-B678-BE59B4A1355D}
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E} = {9A037A69-D1DF-4505-AB2A-6CB3641C476E}
|
||||
{40A69F40-063E-43FD-8543-455495D8733E} = {40A69F40-063E-43FD-8543-455495D8733E}
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3} = {0588563C-F05C-428C-B21A-DD74756628B3}
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169} = {DF861D33-9BC1-418C-82B1-581F590FE169}
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239} = {764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7} = {43A0E60E-5C4A-4C09-A29B-7683F503BBD7}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jasper", "..\..\DesktopEditor\cximage\jasper\jasper_vs2005.vcproj", "{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}"
|
||||
@ -54,17 +58,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XlsFormat", "..\..\ASCOffic
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocFormatTest", "DocFormatTest.vcproj", "{0F49D5D1-A8D3-4F97-8BC1-E2F65BB00C10}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383} = {C5371405-338F-4B70-83BD-2A5CDF64F383}
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C} = {C27E9A9F-3A17-4482-9C5F-BF15C01E747C}
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363} = {F8274B05-168E-4D6E-B843-AA7510725363}
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
|
||||
{77DDC8D7-5B12-4FF2-9629-26AEBCA8436D} = {77DDC8D7-5B12-4FF2-9629-26AEBCA8436D}
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302} = {36636678-AE25-4BE6-9A34-2561D1BCF302}
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0} = {21663823-DE45-479B-91D0-B4FEF4916EF0}
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302} = {36636678-AE25-4BE6-9A34-2561D1BCF302}
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363} = {F8274B05-168E-4D6E-B843-AA7510725363}
|
||||
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}
|
||||
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C} = {C27E9A9F-3A17-4482-9C5F-BF15C01E747C}
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
|
||||
{C5371405-338F-4B70-83BD-2A5CDF64F383} = {C5371405-338F-4B70-83BD-2A5CDF64F383}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DocxFormat", "..\..\Common\DocxFormat\Projects\DocxFormat2005.vcproj", "{A100103A-353E-45E8-A9B8-90B87CC5C0B0}"
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\..\..\..\Common\OfficeDrawing;"..\..\..\..\..\DesktopEditor\freetype-2.5.2\include";..\..\..\..\..\Common\OfficeDrawing\Shapes"
|
||||
AdditionalIncludeDirectories="../../DesktopEditor/xml/build/vs2005;../../DesktopEditor/xml/libxml2/include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;USE_ATL_CSTRINGS;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;DONT_WRITE_EMBEDDED_FONTS"
|
||||
MinimalRebuild="false"
|
||||
BasicRuntimeChecks="3"
|
||||
|
||||
@ -40,11 +40,11 @@ namespace Writers
|
||||
class DocumentWriter : public ContentWriter
|
||||
{
|
||||
XmlUtils::CStringWriter m_oWriter;
|
||||
HeaderFooterWriter& m_oHeaderFooterWriter;
|
||||
HeaderFooterWriter& m_oHeaderFooterWriter;
|
||||
public:
|
||||
std::wstring m_sDir;
|
||||
public:
|
||||
DocumentWriter( std::wstring sDir, HeaderFooterWriter& oHeaderFooterWriter):m_sDir(sDir), m_oHeaderFooterWriter(oHeaderFooterWriter)
|
||||
std::wstring m_sDir;
|
||||
|
||||
DocumentWriter( std::wstring sDir, HeaderFooterWriter& oHeaderFooterWriter):m_sDir(sDir), m_oHeaderFooterWriter(oHeaderFooterWriter)
|
||||
{
|
||||
}
|
||||
void Write()
|
||||
@ -54,7 +54,22 @@ namespace Writers
|
||||
NSFile::CFileBinary oFile;
|
||||
oFile.CreateFileW(filePath.GetPath());
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>")));
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:document xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" xmlns:w10=\"urn:schemas-microsoft-com:office:word\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" mc:Ignorable=\"w14 wp14\">")));
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:document \
|
||||
xmlns:wpc=\"http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" \
|
||||
xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" \
|
||||
xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\" \
|
||||
xmlns:v=\"urn:schemas-microsoft-com:vml\" \
|
||||
xmlns:wp14=\"http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing\" \
|
||||
xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" \
|
||||
xmlns:w10=\"urn:schemas-microsoft-com:office:word\" \
|
||||
xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" \
|
||||
xmlns:w14=\"http://schemas.microsoft.com/office/word/2010/wordml\" \
|
||||
xmlns:wpg=\"http://schemas.microsoft.com/office/word/2010/wordprocessingGroup\" \
|
||||
xmlns:wpi=\"http://schemas.microsoft.com/office/word/2010/wordprocessingInk\" \
|
||||
xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" \
|
||||
xmlns:wne=\"http://schemas.microsoft.com/office/word/2006/wordml\" \
|
||||
xmlns:wps=\"http://schemas.microsoft.com/office/word/2010/wordprocessingShape\" \
|
||||
mc:Ignorable=\"w14 wp14\">")));
|
||||
|
||||
oFile.WriteStringUTF8(m_oBackground.GetData());
|
||||
|
||||
|
||||
@ -31,7 +31,9 @@
|
||||
*/
|
||||
#ifndef FILE_WRITER
|
||||
#define FILE_WRITER
|
||||
|
||||
#include "../../DesktopEditor/common/Path.h"
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Media/VbaProject.h"
|
||||
|
||||
#include "NumberingWriter.h"
|
||||
#include "fontTableWriter.h"
|
||||
@ -75,6 +77,8 @@ namespace Writers
|
||||
DocumentRelsWriter m_oDocumentRelsWriter;
|
||||
WebSettingsWriter m_oWebSettingsWriter;
|
||||
DefaultThemeWriter m_oTheme;
|
||||
|
||||
smart_ptr<OOX::VbaProject> m_pVbaProject;
|
||||
|
||||
NSBinPptxRW::CDrawingConverter* m_pDrawingConverter;
|
||||
bool m_bSaveChartAsImg;
|
||||
|
||||
@ -34,6 +34,14 @@
|
||||
|
||||
namespace BinDocxRW {
|
||||
|
||||
int Binary_VbaProjectTableReader::Read()
|
||||
{
|
||||
m_oFileWriter.m_pVbaProject = new OOX::VbaProject();
|
||||
m_oFileWriter.m_pVbaProject->fromPPTY(&m_oBufferedStream);
|
||||
|
||||
return c_oSerConstants::ReadOk;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------
|
||||
Binary_HdrFtrTableReader::Binary_HdrFtrTableReader(NSBinPptxRW::CBinaryFileReader& poBufferedStream, Writers::FileWriter& oFileWriter, CComments* pComments):Binary_CommonReader(poBufferedStream),m_oFileWriter(oFileWriter),m_oHeaderFooterWriter(oFileWriter.m_oHeaderFooterWriter),m_pComments(pComments)
|
||||
{
|
||||
}
|
||||
@ -93,9 +101,9 @@ int Binary_HdrFtrTableReader::ReadHdrFtrItem(BYTE type, long length, void* poRes
|
||||
Binary_DocumentTableReader oBinary_DocumentTableReader(m_oBufferedStream, m_oFileWriter, poHdrFtrItem->Header, m_pComments);
|
||||
res = Read1(length, &Binary_HdrFtrTableReader::ReadHdrFtrItemContent, this, &oBinary_DocumentTableReader);
|
||||
|
||||
OOX::CPath fileRelsPath = m_oFileWriter.m_oDocumentWriter.m_sDir + FILE_SEPARATOR_STR + _T("word") +
|
||||
FILE_SEPARATOR_STR + _T("_rels")+
|
||||
FILE_SEPARATOR_STR + poHdrFtrItem->m_sFilename + _T(".rels");
|
||||
OOX::CPath fileRelsPath = m_oFileWriter.m_oDocumentWriter.m_sDir + FILE_SEPARATOR_STR + L"word" +
|
||||
FILE_SEPARATOR_STR + L"_rels"+
|
||||
FILE_SEPARATOR_STR + poHdrFtrItem->m_sFilename + L".rels";
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->SaveDstContentRels(fileRelsPath.GetPath());
|
||||
}
|
||||
@ -110,4 +118,4 @@ int Binary_HdrFtrTableReader::ReadHdrFtrItemContent(BYTE type, long length, void
|
||||
return pBinary_DocumentTableReader->ReadDocumentContent(type, length, NULL);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -273,6 +273,20 @@ private:
|
||||
return res;
|
||||
}
|
||||
};
|
||||
class Binary_VbaProjectTableReader : public Binary_CommonReader<Binary_VbaProjectTableReader>
|
||||
{
|
||||
Writers::FileWriter& m_oFileWriter;
|
||||
|
||||
public:
|
||||
|
||||
Binary_VbaProjectTableReader (NSBinPptxRW::CBinaryFileReader& poBufferedStream, Writers::FileWriter& oFileWriter)
|
||||
: Binary_CommonReader(poBufferedStream), m_oFileWriter(oFileWriter)
|
||||
{
|
||||
}
|
||||
|
||||
int Read ();
|
||||
};
|
||||
|
||||
class Binary_HdrFtrTableReader : public Binary_CommonReader<Binary_HdrFtrTableReader>
|
||||
{
|
||||
Writers::FileWriter& m_oFileWriter;
|
||||
@ -282,12 +296,12 @@ class Binary_HdrFtrTableReader : public Binary_CommonReader<Binary_HdrFtrTableRe
|
||||
int nCurHeaderType;
|
||||
public:
|
||||
Writers::HeaderFooterWriter& m_oHeaderFooterWriter;
|
||||
public:
|
||||
|
||||
Binary_HdrFtrTableReader(NSBinPptxRW::CBinaryFileReader& poBufferedStream, Writers::FileWriter& oFileWriter, CComments* pComments);
|
||||
int Read();
|
||||
int ReadHdrFtrContent(BYTE type, long length, void* poResult);
|
||||
int ReadHdrFtrFEO(BYTE type, long length, void* poResult);
|
||||
int ReadHdrFtrItem(BYTE type, long length, void* poResult);
|
||||
int ReadHdrFtrContent (BYTE type, long length, void* poResult);
|
||||
int ReadHdrFtrFEO (BYTE type, long length, void* poResult);
|
||||
int ReadHdrFtrItem (BYTE type, long length, void* poResult);
|
||||
int ReadHdrFtrItemContent(BYTE type, long length, void* poResult);
|
||||
};
|
||||
class Binary_rPrReader : public Binary_CommonReader<Binary_rPrReader>
|
||||
@ -551,7 +565,7 @@ public:
|
||||
std::wstring strXml;
|
||||
HRESULT hRes = m_oFileWriter.m_pDrawingConverter->GetRecordXml(nCurPos, length, XMLWRITER_RECORD_TYPE_TEXT_FILL, XMLWRITER_DOC_TYPE_WORDART, strXml);
|
||||
if (S_OK == hRes)
|
||||
orPr->Fill = _T("<w14:textFill>") + strXml + _T("</w14:textFill>");
|
||||
orPr->Fill = L"<w14:textFill>" + strXml + L"</w14:textFill>";
|
||||
m_oBufferedStream.Seek(nCurPos + length);
|
||||
}
|
||||
}
|
||||
@ -560,35 +574,35 @@ public:
|
||||
{
|
||||
TrackRevision oDel;
|
||||
oBinary_CommonReader2.ReadTrackRevision(length, &oDel);
|
||||
orPr->Del = oDel.ToString(_T("w:del"));
|
||||
orPr->Del = oDel.ToString(L"w:del");
|
||||
}
|
||||
break;
|
||||
case c_oSerProp_rPrType::Ins:
|
||||
{
|
||||
TrackRevision oIns;
|
||||
oBinary_CommonReader2.ReadTrackRevision(length, &oIns);
|
||||
orPr->Ins = oIns.ToString(_T("w:ins"));
|
||||
orPr->Ins = oIns.ToString(L"w:ins");
|
||||
}
|
||||
break;
|
||||
case c_oSerProp_rPrType::MoveFrom:
|
||||
{
|
||||
TrackRevision oMoveFrom;
|
||||
oBinary_CommonReader2.ReadTrackRevision(length, &oMoveFrom);
|
||||
orPr->MoveFrom = oMoveFrom.ToString(_T("w:moveFrom"));
|
||||
orPr->MoveFrom = oMoveFrom.ToString(L"w:moveFrom");
|
||||
}
|
||||
break;
|
||||
case c_oSerProp_rPrType::MoveTo:
|
||||
{
|
||||
TrackRevision oMoveTo;
|
||||
oBinary_CommonReader2.ReadTrackRevision(length, &oMoveTo);
|
||||
orPr->MoveTo = oMoveTo.ToString(_T("w:moveTo"));
|
||||
orPr->MoveTo = oMoveTo.ToString(L"w:moveTo");
|
||||
}
|
||||
break;
|
||||
case c_oSerProp_rPrType::rPrChange:
|
||||
{
|
||||
TrackRevision oRPrChange;
|
||||
res = Read1(length, &Binary_rPrReader::ReadrPrChange, this, &oRPrChange);
|
||||
orPr->rPrChange = oRPrChange.ToString(_T("w:rPrChange"));
|
||||
orPr->rPrChange = oRPrChange.ToString(L"w:rPrChange");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -647,9 +661,9 @@ public:
|
||||
{
|
||||
BYTE contextualSpacing = m_oBufferedStream.GetUChar();
|
||||
if(0 != contextualSpacing)
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:contextualSpacing w:val=\"true\"/>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:contextualSpacing w:val=\"true\"/>"));
|
||||
else if(false == bDoNotWriteNullProp)
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:contextualSpacing w:val=\"false\"/>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:contextualSpacing w:val=\"false\"/>"));
|
||||
}break;
|
||||
case c_oSerProp_pPrType::Ind:
|
||||
{
|
||||
@ -657,9 +671,9 @@ public:
|
||||
res = Read2(length, &Binary_pPrReader::ReadInd, this, &oTempWriter);
|
||||
if(oTempWriter.GetCurSize() > 0)
|
||||
{
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:ind")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:ind"));
|
||||
pCStringWriter->Write(oTempWriter);
|
||||
pCStringWriter->WriteString(std::wstring(_T("/>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"/>"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -668,35 +682,35 @@ public:
|
||||
BYTE jc = m_oBufferedStream.GetUChar();
|
||||
switch(jc)
|
||||
{
|
||||
case align_Right: pCStringWriter->WriteString(std::wstring(_T("<w:jc w:val=\"right\" />")));break;
|
||||
case align_Left: pCStringWriter->WriteString(std::wstring(_T("<w:jc w:val=\"left\" />")));break;
|
||||
case align_Center: pCStringWriter->WriteString(std::wstring(_T("<w:jc w:val=\"center\" />")));break;
|
||||
case align_Justify: pCStringWriter->WriteString(std::wstring(_T("<w:jc w:val=\"both\" />")));break;
|
||||
case align_Right: pCStringWriter->WriteString(std::wstring(L"<w:jc w:val=\"right\" />"));break;
|
||||
case align_Left: pCStringWriter->WriteString(std::wstring(L"<w:jc w:val=\"left\" />"));break;
|
||||
case align_Center: pCStringWriter->WriteString(std::wstring(L"<w:jc w:val=\"center\" />"));break;
|
||||
case align_Justify: pCStringWriter->WriteString(std::wstring(L"<w:jc w:val=\"both\" />"));break;
|
||||
}
|
||||
}break;
|
||||
case c_oSerProp_pPrType::KeepLines:
|
||||
{
|
||||
BYTE KeepLines = m_oBufferedStream.GetUChar();
|
||||
if(0 != KeepLines)
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:keepLines/>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:keepLines/>"));
|
||||
else if(false == bDoNotWriteNullProp)
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:keepLines w:val=\"false\"/>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:keepLines w:val=\"false\"/>"));
|
||||
}break;
|
||||
case c_oSerProp_pPrType::KeepNext:
|
||||
{
|
||||
BYTE KeepNext = m_oBufferedStream.GetUChar();
|
||||
if(0 != KeepNext)
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:keepNext/>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:keepNext/>"));
|
||||
else if(false == bDoNotWriteNullProp)
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:keepNext w:val=\"false\"/>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:keepNext w:val=\"false\"/>"));
|
||||
}break;
|
||||
case c_oSerProp_pPrType::PageBreakBefore:
|
||||
{
|
||||
BYTE pageBreakBefore = m_oBufferedStream.GetUChar();
|
||||
if(0 != pageBreakBefore)
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:pageBreakBefore/>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:pageBreakBefore/>"));
|
||||
else if(false == bDoNotWriteNullProp)
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:pageBreakBefore w:val=\"false\"/>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:pageBreakBefore w:val=\"false\"/>"));
|
||||
break;
|
||||
}
|
||||
case c_oSerProp_pPrType::Spacing:
|
||||
@ -705,7 +719,7 @@ public:
|
||||
res = Read2(length, &Binary_pPrReader::ReadSpacing, this, &oSpacing);
|
||||
if(oSpacing.bLine || oSpacing.bAfter || oSpacing.bAfterAuto || oSpacing.bBefore || oSpacing.bBeforeAuto)
|
||||
{
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:spacing")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:spacing"));
|
||||
BYTE bLineRule = linerule_Auto;
|
||||
//проверяется bLine, а не bLineRule чтобы всегда писать LineRule, если есть w:line
|
||||
if(oSpacing.bLine)
|
||||
@ -745,9 +759,9 @@ public:
|
||||
if(oSpacing.bAfterAuto)
|
||||
{
|
||||
if(true == oSpacing.AfterAuto)
|
||||
pCStringWriter->WriteString(std::wstring(_T(" w:afterAutospacing=\"1\"")));
|
||||
pCStringWriter->WriteString(std::wstring(L" w:afterAutospacing=\"1\""));
|
||||
else
|
||||
pCStringWriter->WriteString(std::wstring(_T(" w:afterAutospacing=\"0\"")));
|
||||
pCStringWriter->WriteString(std::wstring(L" w:afterAutospacing=\"0\""));
|
||||
}
|
||||
if(oSpacing.bBefore)
|
||||
{
|
||||
@ -758,11 +772,11 @@ public:
|
||||
if(oSpacing.bBeforeAuto)
|
||||
{
|
||||
if(true == oSpacing.BeforeAuto)
|
||||
pCStringWriter->WriteString(std::wstring(_T(" w:beforeAutospacing=\"1\"")));
|
||||
pCStringWriter->WriteString(std::wstring(L" w:beforeAutospacing=\"1\""));
|
||||
else
|
||||
pCStringWriter->WriteString(std::wstring(_T(" w:beforeAutospacing=\"0\"")));
|
||||
pCStringWriter->WriteString(std::wstring(L" w:beforeAutospacing=\"0\""));
|
||||
}
|
||||
pCStringWriter->WriteString(std::wstring(_T("/>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"/>"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -776,7 +790,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
std::wstring sShd(_T("<w:shd w:val=\"clear\" w:color=\"auto\" w:fill=\"auto\"/>"));
|
||||
std::wstring sShd(L"<w:shd w:val=\"clear\" w:color=\"auto\" w:fill=\"auto\"/>");
|
||||
pCStringWriter->WriteString(sShd);
|
||||
}
|
||||
break;
|
||||
@ -787,10 +801,10 @@ public:
|
||||
if(0 != WidowControl)
|
||||
{
|
||||
if(false == bDoNotWriteNullProp)
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:widowControl/>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:widowControl/>"));
|
||||
}
|
||||
else
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:widowControl w:val=\"off\" />")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:widowControl w:val=\"off\" />"));
|
||||
break;
|
||||
}
|
||||
case c_oSerProp_pPrType::Tab:
|
||||
@ -800,7 +814,7 @@ public:
|
||||
size_t nLen = oTabs.m_aTabs.size();
|
||||
if(nLen > 0)
|
||||
{
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:tabs>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:tabs>"));
|
||||
for(size_t i = 0; i < nLen; ++i)
|
||||
{
|
||||
Tab& oTab = oTabs.m_aTabs[i];
|
||||
@ -808,14 +822,14 @@ public:
|
||||
std::wstring sVal;
|
||||
switch(oTab.Val)
|
||||
{
|
||||
case g_tabtype_right: sVal=_T("right"); break;
|
||||
case g_tabtype_center: sVal=_T("center"); break;
|
||||
case g_tabtype_clear: sVal=_T("clear"); break;
|
||||
default: sVal=_T("left"); break;
|
||||
case g_tabtype_right: sVal = L"right"; break;
|
||||
case g_tabtype_center: sVal = L"center"; break;
|
||||
case g_tabtype_clear: sVal = L"clear"; break;
|
||||
default: sVal = L"left"; break;
|
||||
}
|
||||
pCStringWriter->WriteString(L"<w:tab w:val=\"" + sVal + L"\" w:pos=\"" + std::to_wstring(nTab) + L"\"/>");
|
||||
}
|
||||
pCStringWriter->WriteString(std::wstring(_T("</w:tabs>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"</w:tabs>"));
|
||||
}
|
||||
}break;
|
||||
case c_oSerProp_pPrType::ParaStyle:
|
||||
@ -826,9 +840,9 @@ public:
|
||||
}break;
|
||||
case c_oSerProp_pPrType::numPr:
|
||||
{
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:numPr>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"<w:numPr>"));
|
||||
res = Read2(length, &Binary_pPrReader::ReadNumPr, this, poResult);
|
||||
pCStringWriter->WriteString(std::wstring(_T("</w:numPr>")));
|
||||
pCStringWriter->WriteString(std::wstring(L"</w:numPr>"));
|
||||
}break;
|
||||
case c_oSerProp_pPrType::pPr_rPr:
|
||||
{
|
||||
@ -2917,7 +2931,8 @@ class Binary_OtherTableReader : public Binary_CommonReader<Binary_OtherTableRead
|
||||
Writers::FileWriter& m_oFileWriter;
|
||||
std::wstring m_sFileInDir;
|
||||
public:
|
||||
Binary_OtherTableReader(std::wstring sFileInDir, NSBinPptxRW::CBinaryFileReader& poBufferedStream, Writers::FileWriter& oFileWriter):m_sFileInDir(sFileInDir),Binary_CommonReader(poBufferedStream),m_oFileWriter(oFileWriter)
|
||||
Binary_OtherTableReader(std::wstring sFileInDir, NSBinPptxRW::CBinaryFileReader& poBufferedStream, Writers::FileWriter& oFileWriter)
|
||||
: m_sFileInDir(sFileInDir), Binary_CommonReader(poBufferedStream), m_oFileWriter(oFileWriter)
|
||||
{
|
||||
}
|
||||
int Read()
|
||||
@ -7022,13 +7037,13 @@ public:
|
||||
{
|
||||
if(false == m_oFileWriter.m_bSaveChartAsImg)
|
||||
{
|
||||
OOX::CPath pathChartsDir = m_oFileWriter.m_oChartWriter.m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR +_T("charts");
|
||||
OOX::CPath pathChartsDir = m_oFileWriter.m_oChartWriter.m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"charts";
|
||||
OOX::CSystemUtility::CreateDirectories(pathChartsDir.GetPath());
|
||||
|
||||
OOX::CPath pathChartsRelsDir = pathChartsDir.GetPath() + FILE_SEPARATOR_STR + _T("_rels");
|
||||
OOX::CPath pathChartsRelsDir = pathChartsDir.GetPath() + FILE_SEPARATOR_STR + L"_rels";
|
||||
OOX::CSystemUtility::CreateDirectories(pathChartsRelsDir.GetPath());
|
||||
|
||||
OOX::CPath pathChartsWorksheetDir = m_oFileWriter.m_oChartWriter.m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR +_T("embeddings");
|
||||
OOX::CPath pathChartsWorksheetDir = m_oFileWriter.m_oChartWriter.m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"embeddings";
|
||||
OOX::CSystemUtility::CreateDirectories(pathChartsWorksheetDir.GetPath());
|
||||
|
||||
int nativeDocumentType = m_oFileWriter.m_pDrawingConverter->m_pImageManager->m_nDocumentType;
|
||||
@ -7922,9 +7937,9 @@ public:
|
||||
|
||||
int res = ReadTable(&Binary_NotesTableReader::ReadNotes, this, &oBinary_DocumentTableReader);
|
||||
|
||||
OOX::CPath fileRelsPath = m_oFileWriter.m_oDocumentWriter.m_sDir + FILE_SEPARATOR_STR + _T("word") +
|
||||
FILE_SEPARATOR_STR + _T("_rels")+
|
||||
FILE_SEPARATOR_STR + sFilename + _T(".rels");
|
||||
OOX::CPath fileRelsPath = m_oFileWriter.m_oDocumentWriter.m_sDir + FILE_SEPARATOR_STR + L"word" +
|
||||
FILE_SEPARATOR_STR + L"_rels"+
|
||||
FILE_SEPARATOR_STR + sFilename + L".rels";
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->SaveDstContentRels(fileRelsPath.GetPath());
|
||||
return res;
|
||||
@ -7961,33 +7976,33 @@ public:
|
||||
XmlUtils::CStringWriter& writer = pBinary_DocumentTableReader->m_oDocumentWriter.m_oContent;
|
||||
if(m_bIsFootnote)
|
||||
{
|
||||
writer.WriteString(_T("<w:footnote"));
|
||||
writer.WriteString(L"<w:footnote");
|
||||
}
|
||||
else
|
||||
{
|
||||
writer.WriteString(_T("<w:endnote"));
|
||||
writer.WriteString(L"<w:endnote");
|
||||
}
|
||||
if(m_oType.IsInit())
|
||||
{
|
||||
writer.WriteString(_T(" w:type=\""));
|
||||
writer.WriteString(L" w:type=\"");
|
||||
writer.WriteString(m_oType->ToString());
|
||||
writer.WriteString(_T("\""));
|
||||
writer.WriteString(L"\"");
|
||||
}
|
||||
if(m_oId.IsInit())
|
||||
{
|
||||
writer.WriteString(_T(" w:id=\""));
|
||||
writer.WriteString(L" w:id=\"");
|
||||
writer.WriteString(m_oId->ToString());
|
||||
writer.WriteString(_T("\""));
|
||||
writer.WriteString(L"\"");
|
||||
}
|
||||
writer.WriteString(_T(">"));
|
||||
writer.WriteString(L">");
|
||||
res = Read1(length, &Binary_NotesTableReader::ReadNoteContent, this, poResult);
|
||||
if(m_bIsFootnote)
|
||||
{
|
||||
writer.WriteString(_T("</w:footnote>"));
|
||||
writer.WriteString(L"</w:footnote>");
|
||||
}
|
||||
else
|
||||
{
|
||||
writer.WriteString(_T("</w:endnote>"));
|
||||
writer.WriteString(L"</w:endnote>");
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -8087,8 +8102,8 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(_T("<w:defaultTabStop w:val=\"708\"/>"));
|
||||
std::wstring sClrMap(_T("<w:clrSchemeMapping w:bg1=\"light1\" w:t1=\"dark1\" w:bg2=\"light2\" w:t2=\"dark2\" w:accent1=\"accent1\" w:accent2=\"accent2\" w:accent3=\"accent3\" w:accent4=\"accent4\" w:accent5=\"accent5\" w:accent6=\"accent6\" w:hyperlink=\"hyperlink\" w:followedHyperlink=\"followedHyperlink\"/>"));
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(L"<w:defaultTabStop w:val=\"708\"/>");
|
||||
std::wstring sClrMap(L"<w:clrSchemeMapping w:bg1=\"light1\" w:t1=\"dark1\" w:bg2=\"light2\" w:t2=\"dark2\" w:accent1=\"accent1\" w:accent2=\"accent2\" w:accent3=\"accent3\" w:accent4=\"accent4\" w:accent5=\"accent5\" w:accent6=\"accent6\" w:hyperlink=\"hyperlink\" w:followedHyperlink=\"followedHyperlink\"/>");
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(sClrMap);
|
||||
m_oFileWriter.m_pDrawingConverter->LoadClrMap(sClrMap);
|
||||
}
|
||||
@ -8140,9 +8155,12 @@ public:
|
||||
case c_oSerTableTypes::Endnotes:
|
||||
res = Binary_NotesTableReader(m_oBufferedStream, m_oFileWriter, m_oFileWriter.m_pComments, false).Read();
|
||||
break;
|
||||
case c_oSerTableTypes::VbaProject:
|
||||
res = Binary_VbaProjectTableReader(m_oBufferedStream, m_oFileWriter).Read();
|
||||
break;
|
||||
|
||||
//Comments должны читаться раньше чем c_oSerTableTypes::Document
|
||||
//case c_oSerTableTypes::Comments:
|
||||
//case c_oSerTableTypes::Comments
|
||||
// res = oBinary_CommentsTableReader.Read();
|
||||
// break;
|
||||
//case c_oSerTableTypes::Other:
|
||||
@ -8165,7 +8183,18 @@ public:
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable", L"fontTable.xml", L"", &stamdartRId);
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme", L"theme/theme1.xml",L"", &stamdartRId);
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml", L"/word", L"document.xml");
|
||||
if (m_oFileWriter.m_pVbaProject.IsInit())
|
||||
{
|
||||
//m_oFileWriter.m_pVbaProject->write();
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(L"http://schemas.microsoft.com/office/2006/relationships/vbaProject", L"vbaProject.bin", L"", &stamdartRId);
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.ms-word.document.macroEnabled.main+xml", L"/word", L"document.xml");
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.ms-office.vbaProject", L"/word", L"vbaProject.bin");
|
||||
}
|
||||
else
|
||||
{
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml", L"/word", L"document.xml");
|
||||
}
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml", L"/word", L"styles.xml");
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml", L"/word", L"settings.xml");
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml", L"/word", L"webSettings.xml");
|
||||
@ -8175,19 +8204,19 @@ public:
|
||||
if(false == m_oFileWriter.m_oNumberingWriter.IsEmpty())
|
||||
{
|
||||
long rId;
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(std::wstring(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering")), std::wstring(_T("numbering.xml")), std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering", L"numbering.xml", std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml", L"/word", L"numbering.xml");
|
||||
}
|
||||
if(false == m_oFileWriter.m_oFootnotesWriter.IsEmpty())
|
||||
{
|
||||
long rId;
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(std::wstring(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes")), std::wstring(_T("footnotes.xml")), std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes", L"footnotes.xml", std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml", L"/word", L"footnotes.xml");
|
||||
}
|
||||
if(false == m_oFileWriter.m_oEndnotesWriter.IsEmpty())
|
||||
{
|
||||
long rId;
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(std::wstring(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes")), std::wstring(_T("endnotes.xml")), std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes", L"endnotes.xml", std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml", L"/word", L"endnotes.xml");
|
||||
}
|
||||
for(size_t i = 0; i < m_oFileWriter.m_oHeaderFooterWriter.m_aHeaders.size(); ++i)
|
||||
@ -8196,7 +8225,7 @@ public:
|
||||
if(false == pHeader->IsEmpty())
|
||||
{
|
||||
long rId;
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(std::wstring(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/header")), pHeader->m_sFilename, std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", pHeader->m_sFilename, std::wstring(), &rId);
|
||||
pHeader->rId = L"rId" + std::to_wstring( rId );
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml", L"/word", pHeader->m_sFilename);
|
||||
@ -8208,7 +8237,7 @@ public:
|
||||
if(false == pFooter->IsEmpty())
|
||||
{
|
||||
long rId;
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(std::wstring(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer")), pFooter->m_sFilename, std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", pFooter->m_sFilename, std::wstring(), &rId);
|
||||
pFooter->rId = L"rId" + std::to_wstring( rId );
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml", L"/word", pFooter->m_sFilename);
|
||||
@ -8216,9 +8245,9 @@ public:
|
||||
}
|
||||
res = Binary_DocumentTableReader(m_oBufferedStream, m_oFileWriter, m_oFileWriter.m_oDocumentWriter, &oBinary_CommentsTableReader.m_oComments).Read();
|
||||
|
||||
OOX::CPath fileRelsPath = m_oFileWriter.m_oDocumentWriter.m_sDir + FILE_SEPARATOR_STR + _T("word")
|
||||
+ FILE_SEPARATOR_STR + _T("_rels")
|
||||
+ FILE_SEPARATOR_STR + _T("document.xml.rels");
|
||||
OOX::CPath fileRelsPath = m_oFileWriter.m_oDocumentWriter.m_sDir + FILE_SEPARATOR_STR + L"word"
|
||||
+ FILE_SEPARATOR_STR + L"_rels"
|
||||
+ FILE_SEPARATOR_STR + L"document.xml.rels";
|
||||
|
||||
CComments& oComments= oBinary_CommentsTableReader.m_oComments;
|
||||
Writers::CommentsWriter& oCommentsWriter = m_oFileWriter.m_oCommentsWriter;
|
||||
@ -8232,19 +8261,19 @@ public:
|
||||
if(false == oCommentsWriter.m_sComment.empty())
|
||||
{
|
||||
long rId;
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(std::wstring(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments")), std::wstring(_T("comments.xml")), std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments", L"comments.xml", std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml", L"/word", L"comments.xml");
|
||||
}
|
||||
if(false == oCommentsWriter.m_sCommentExt.empty())
|
||||
{
|
||||
long rId;
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(std::wstring(_T("http://schemas.microsoft.com/office/2011/relationships/commentsExtended")), std::wstring(_T("commentsExtended.xml")), std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(L"http://schemas.microsoft.com/office/2011/relationships/commentsExtended", L"commentsExtended.xml", std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.commentsExtended+xml", L"/word", L"commentsExtended.xml");
|
||||
}
|
||||
if(false == oCommentsWriter.m_sPeople.empty())
|
||||
{
|
||||
long rId;
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(std::wstring(_T("http://schemas.microsoft.com/office/2011/relationships/people")), std::wstring(_T("people.xml")), std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(L"http://schemas.microsoft.com/office/2011/relationships/people", L"people.xml", std::wstring(), &rId);
|
||||
m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.wordprocessingml.people+xml", L"/word", L"people.xml");
|
||||
}
|
||||
|
||||
|
||||
@ -142,19 +142,20 @@ extern int g_nCurFormatVersion;
|
||||
};}
|
||||
namespace c_oSerTableTypes{enum c_oSerTableTypes
|
||||
{
|
||||
Signature = 0,
|
||||
Info = 1,
|
||||
Media = 2,
|
||||
Numbering = 3,
|
||||
HdrFtr = 4,
|
||||
Style = 5,
|
||||
Document = 6,
|
||||
Other = 7,
|
||||
Comments = 8,
|
||||
Settings = 9,
|
||||
Footnotes = 10,
|
||||
Endnotes = 11,
|
||||
Background
|
||||
Signature = 0,
|
||||
Info = 1,
|
||||
Media = 2,
|
||||
Numbering = 3,
|
||||
HdrFtr = 4,
|
||||
Style = 5,
|
||||
Document = 6,
|
||||
Other = 7,
|
||||
Comments = 8,
|
||||
Settings = 9,
|
||||
Footnotes = 10,
|
||||
Endnotes = 11,
|
||||
Background = 12,
|
||||
VbaProject = 13
|
||||
};}
|
||||
namespace c_oSerSigTypes{enum c_oSerSigTypes
|
||||
{
|
||||
@ -203,10 +204,10 @@ extern int g_nCurFormatVersion;
|
||||
};}
|
||||
namespace c_oSerOtherTableTypes{enum c_oSerOtherTableTypes
|
||||
{
|
||||
ImageMap = 0,
|
||||
ImageMap_Src = 1,
|
||||
EmbeddedFonts = 2,
|
||||
DocxTheme = 3
|
||||
ImageMap = 0,
|
||||
ImageMap_Src = 1,
|
||||
EmbeddedFonts = 2,
|
||||
DocxTheme = 3
|
||||
};}
|
||||
namespace c_oSerFontsTypes{enum c_oSerFontsTypes
|
||||
{
|
||||
@ -521,6 +522,10 @@ extern int g_nCurFormatVersion;
|
||||
endnoteReference = 27,
|
||||
arPr = 28
|
||||
};}
|
||||
namespace c_oSerVbaProjectTypes{enum c_oSerVbaProjectType
|
||||
{
|
||||
Name = 0
|
||||
};}
|
||||
namespace c_oSerBackgroundType{enum c_oSerBackgroundType
|
||||
{
|
||||
Color = 0,
|
||||
|
||||
@ -82,11 +82,11 @@ namespace BinDocxRW
|
||||
int m_nType;
|
||||
public:
|
||||
std::wstring m_sFld;
|
||||
public: FldStruct(std::wstring sFld, int nType):m_sFld(sFld),m_nType(nType){}
|
||||
public: int GetType()
|
||||
{
|
||||
return m_nType;
|
||||
}
|
||||
FldStruct(std::wstring sFld, int nType):m_sFld(sFld),m_nType(nType){}
|
||||
int GetType()
|
||||
{
|
||||
return m_nType;
|
||||
}
|
||||
};
|
||||
class BinaryCommonWriter
|
||||
{
|
||||
@ -3025,7 +3025,14 @@ namespace BinDocxRW
|
||||
std::wstring& sShapeType = aShapeTypes[i];
|
||||
pOfficeDrawingConverter->AddShapeType(sShapeType);
|
||||
}
|
||||
pOfficeDrawingConverter->SetRels(oldRels);
|
||||
pOfficeDrawingConverter->SetRels(oldRels);
|
||||
}
|
||||
void WriteVbaProject(OOX::VbaProject& oVbaProject)
|
||||
{
|
||||
m_oBcw.m_oStream.StartRecord(0);
|
||||
oVbaProject.toPPTY(&m_oBcw.m_oStream);
|
||||
m_oBcw.m_oStream.EndRecord();
|
||||
|
||||
}
|
||||
void Write(std::vector<OOX::WritingElement*>& aElems)
|
||||
{
|
||||
@ -7866,9 +7873,8 @@ namespace BinDocxRW
|
||||
//Write DocumentTable
|
||||
ParamsDocumentWriter oParamsDocumentWriter(poDocument);
|
||||
m_oParamsWriter.m_pCurRels = oParamsDocumentWriter.m_pRels;
|
||||
|
||||
|
||||
//DocumentTable всегда пишем последней, чтобы сначала заполнить все вспомогательные структуры, а при заполении документа, вызывать методы типа Style_Add...
|
||||
nCurPos = this->WriteTableStart(BinDocxRW::c_oSerTableTypes::Document);
|
||||
BinDocxRW::BinaryDocumentTableWriter oBinaryDocumentTableWriter(m_oParamsWriter, oParamsDocumentWriter, &m_oParamsWriter.m_mapIgnoreComments, &oBinaryHeaderFooterTableWriter);
|
||||
oBinaryDocumentTableWriter.prepareOfficeDrawingConverter(m_oParamsWriter.m_pOfficeDrawingConverter, oParamsDocumentWriter.m_pRels, poDocument->m_arrShapeTypes);
|
||||
|
||||
@ -7876,7 +7882,15 @@ namespace BinDocxRW
|
||||
oBinaryDocumentTableWriter.pBackground = poDocument->m_oBackground.GetPointer();
|
||||
|
||||
oBinaryDocumentTableWriter.m_bWriteSectPr = true;
|
||||
//Write Vba
|
||||
if(NULL != oDocx.m_pVbaProject)
|
||||
{
|
||||
nCurPos = this->WriteTableStart(BinDocxRW::c_oSerTableTypes::VbaProject);
|
||||
oBinaryDocumentTableWriter.WriteVbaProject(*oDocx.m_pVbaProject);
|
||||
this->WriteTableEnd(nCurPos);
|
||||
}
|
||||
// Write content
|
||||
nCurPos = this->WriteTableStart(BinDocxRW::c_oSerTableTypes::Document);
|
||||
oBinaryDocumentTableWriter.Write(poDocument->m_arrItems);
|
||||
this->WriteTableEnd(nCurPos);
|
||||
|
||||
|
||||
@ -93,7 +93,9 @@ bool BinDocxRW::CDocxSerializer::saveToFile(const std::wstring& sSrcFileName, co
|
||||
oDrawingConverter.SetFontDir(m_sFontDir);
|
||||
oDrawingConverter.SetFontPicker(pFontPicker);
|
||||
oDrawingConverter.SetMainDocument(this);
|
||||
oDrawingConverter.SetMediaDstPath(pathMedia.GetPath());
|
||||
|
||||
oDrawingConverter.SetDstPath(pathMain.GetDirectory() + FILE_SEPARATOR_STR + L"word");
|
||||
oDrawingConverter.SetMediaDstPath(pathMedia.GetPath());
|
||||
|
||||
m_pParamsWriter = new ParamsWriter(&oBufferedStream, &fp, &oDrawingConverter, pEmbeddedFontsManager);
|
||||
|
||||
@ -263,8 +265,10 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
|
||||
if (NULL != pData)
|
||||
{
|
||||
oDrawingConverter.SetMainDocument(this);
|
||||
oDrawingConverter.SetMediaDstPath(sMediaPath);
|
||||
oDrawingConverter.SetMainDocument(this);
|
||||
oDrawingConverter.SetDstPath(sDstPath + FILE_SEPARATOR_STR + L"word");
|
||||
|
||||
oDrawingConverter.SetMediaDstPath(sMediaPath);
|
||||
oDrawingConverter.SetEmbedDstPath(sEmbedPath);
|
||||
|
||||
m_pCurFileWriter = new Writers::FileWriter(sDstPath, m_sFontDir, false, nVersion, m_bSaveChartAsImg, &oDrawingConverter, sThemePath);
|
||||
@ -273,7 +277,7 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
std::wstring strFileInDir = NSSystemPath::GetDirectoryName(sSrcFileName);
|
||||
std::wstring sFileInDir = strFileInDir.c_str();
|
||||
|
||||
oDrawingConverter.SetSourceFileDir(sFileInDir);
|
||||
oDrawingConverter.SetSrcPath(sFileInDir);
|
||||
|
||||
BinaryFileReader oBinaryFileReader(sFileInDir, oBufferedStream, *m_pCurFileWriter);
|
||||
oBinaryFileReader.ReadFile();
|
||||
@ -292,7 +296,7 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
if (pApp)
|
||||
{
|
||||
pApp->SetApplication(_T("OnlyOffice"));
|
||||
pApp->SetAppVersion(_T("4.3000"));
|
||||
pApp->SetAppVersion(_T("5.0"));
|
||||
pApp->SetDocSecurity(0);
|
||||
pApp->SetScaleCrop(false);
|
||||
pApp->SetLinksUpToDate(false);
|
||||
|
||||
@ -86,15 +86,16 @@ namespace BinXlsxRW{
|
||||
}
|
||||
bool CXlsxSerializer::loadFromFile(const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sMediaDir, const std::wstring& sEmbedDir)
|
||||
{
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
std::wstring strFileInDir = NSSystemPath::GetDirectoryName(sSrcFileName);
|
||||
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
|
||||
oDrawingConverter.SetMediaDstPath(sMediaDir);
|
||||
oDrawingConverter.SetDstPath(sDstPath + FILE_SEPARATOR_STR + L"xl");
|
||||
oDrawingConverter.SetSrcPath(strFileInDir, 2);
|
||||
|
||||
oDrawingConverter.SetMediaDstPath(sMediaDir);
|
||||
oDrawingConverter.SetEmbedDstPath(sEmbedDir);
|
||||
|
||||
std::wstring strFileInDir = NSSystemPath::GetDirectoryName(sSrcFileName);
|
||||
|
||||
oDrawingConverter.SetSourceFileDir(strFileInDir, 2);
|
||||
|
||||
BinXlsxRW::BinaryFileReader oBinaryFileReader;
|
||||
oBinaryFileReader.ReadFile(sSrcFileName, sDstPath, &oDrawingConverter, sXMLOptions);
|
||||
return true;
|
||||
|
||||
@ -43,6 +43,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../DesktopEditor/xml/build/vs2005;../../DesktopEditor/xml/libxml2/include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_UNICODE;UNICODE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
|
||||
@ -74,6 +74,8 @@ xlsx_document::xlsx_document()
|
||||
|
||||
void xlsx_document::write(const std::wstring & RootPath)
|
||||
{
|
||||
_CP_LOG << L"[info][xlsx] process writing" << std::endl;
|
||||
|
||||
xl_files_.write (RootPath);
|
||||
docProps_files_.write (RootPath);
|
||||
rels_files_.write (RootPath);
|
||||
|
||||
@ -160,7 +160,10 @@ void xlsx_table_state::set_table_row_group(int count, bool collapsed, int level)
|
||||
group_row_.collapsed = collapsed;
|
||||
group_row_.level = level;
|
||||
}
|
||||
|
||||
void xlsx_table_state::add_empty_row(int count)
|
||||
{
|
||||
current_table_row_ += count;
|
||||
}
|
||||
void xlsx_table_state::start_row(const std::wstring & StyleName, const std::wstring & defaultCellStyleName)
|
||||
{
|
||||
empty_row_ = true;
|
||||
|
||||
@ -89,6 +89,8 @@ public:
|
||||
void non_empty_row ();
|
||||
bool is_empty_row () const;
|
||||
void end_row ();
|
||||
|
||||
void add_empty_row(int count);
|
||||
|
||||
std::wstring current_row_style () const;
|
||||
std::wstring default_row_cell_style () const;
|
||||
|
||||
@ -1274,16 +1274,27 @@ void style_page_layout_properties::xlsx_serialize(std::wostream & strm, oox::xls
|
||||
{
|
||||
if (horizontal_margins.fo_margin_left_ && horizontal_margins.fo_margin_left_->get_type() == odf_types::length_or_percent::Length)
|
||||
CP_XML_ATTR(L"left" , horizontal_margins.fo_margin_left_->get_length().get_value_unit(odf_types::length::inch));
|
||||
else CP_XML_ATTR(L"left", 0);
|
||||
|
||||
if (horizontal_margins.fo_margin_right_ && horizontal_margins.fo_margin_right_->get_type() == odf_types::length_or_percent::Length)
|
||||
CP_XML_ATTR(L"right" , horizontal_margins.fo_margin_right_->get_length().get_value_unit(odf_types::length::inch));
|
||||
else CP_XML_ATTR(L"right", 0);
|
||||
|
||||
if (vertical_margins.fo_margin_top_ && vertical_margins.fo_margin_top_->get_type() == odf_types::length_or_percent::Length)
|
||||
CP_XML_ATTR(L"top" , vertical_margins.fo_margin_top_->get_length().get_value_unit(odf_types::length::inch));
|
||||
else CP_XML_ATTR(L"top", 1.025);
|
||||
|
||||
if (vertical_margins.fo_margin_bottom_ && vertical_margins.fo_margin_bottom_->get_type() == odf_types::length_or_percent::Length)
|
||||
CP_XML_ATTR(L"bottom" , vertical_margins.fo_margin_bottom_->get_length().get_value_unit(odf_types::length::inch));
|
||||
else CP_XML_ATTR(L"bottom", 1.025);
|
||||
|
||||
CP_XML_ATTR(L"header" , vertical_margins.fo_margin_top_->get_length().get_value_unit(odf_types::length::inch));
|
||||
CP_XML_ATTR(L"footer" , vertical_margins.fo_margin_bottom_->get_length().get_value_unit(odf_types::length::inch));
|
||||
if (vertical_margins.fo_margin_top_)
|
||||
CP_XML_ATTR(L"header" , vertical_margins.fo_margin_top_->get_length().get_value_unit(odf_types::length::inch));
|
||||
else CP_XML_ATTR(L"header", 0.7875);
|
||||
|
||||
if (vertical_margins.fo_margin_bottom_)
|
||||
CP_XML_ATTR(L"footer" , vertical_margins.fo_margin_bottom_->get_length().get_value_unit(odf_types::length::inch));
|
||||
else CP_XML_ATTR(L"footer", 0.7875);
|
||||
}
|
||||
}
|
||||
if (attlist_.fo_page_width_ || attlist_.fo_page_height_ || attlist_.style_print_orientation_)
|
||||
|
||||
@ -356,7 +356,6 @@ void table_columns_and_groups::add_child_element( xml::sax * Reader, const std::
|
||||
*/
|
||||
}
|
||||
|
||||
// table-table-cell-content
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
std::wostream & table_table_cell_content::text_to_stream(std::wostream & _Wostream) const
|
||||
@ -393,9 +392,14 @@ void table_table_cell::add_child_element( xml::sax * Reader, const std::wstring
|
||||
void table_table_cell::add_text(const std::wstring & Text)
|
||||
{
|
||||
}
|
||||
bool table_table_cell::empty()
|
||||
{
|
||||
if (!content_.elements_.empty()) return false;
|
||||
if (attlist_.table_formula_) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
// table:covered-table-cell
|
||||
// table-covered-table-cell
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
const wchar_t * table_covered_table_cell::ns = L"table";
|
||||
const wchar_t * table_covered_table_cell::name = L"covered-table-cell";
|
||||
@ -412,13 +416,19 @@ void table_covered_table_cell::add_attributes( const xml::attributes_wc_ptr & At
|
||||
|
||||
void table_covered_table_cell::add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name)
|
||||
{
|
||||
empty_ = false;
|
||||
content_.add_child_element(Reader, Ns, Name, getContext());
|
||||
}
|
||||
|
||||
void table_covered_table_cell::add_text(const std::wstring & Text)
|
||||
{
|
||||
}
|
||||
bool table_covered_table_cell::empty()
|
||||
{
|
||||
if (!content_.elements_.empty()) return false;
|
||||
if (attlist_.table_formula_) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// table:table-row
|
||||
@ -445,7 +455,38 @@ void table_table_row::add_child_element( xml::sax * Reader, const std::wstring &
|
||||
else
|
||||
CP_NOT_APPLICABLE_ELM();
|
||||
}
|
||||
bool table_table_row::empty()
|
||||
{
|
||||
if (content_.empty() && !attlist_.table_style_name_ && !attlist_.table_default_cell_style_name_) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
bool table_table_row::empty_content_cells()
|
||||
{
|
||||
bool res = true;
|
||||
|
||||
for (size_t i = 0 ; i < content_.size(); i++)
|
||||
{
|
||||
table_table_cell *cell = dynamic_cast<table_table_cell*>(content_[i].get());
|
||||
table_covered_table_cell *cover_cell = dynamic_cast<table_covered_table_cell*>(content_[i].get());
|
||||
if (!cell && !cover_cell)
|
||||
{
|
||||
res = false;
|
||||
break;
|
||||
}
|
||||
if (cell && cell->empty() == false)
|
||||
{
|
||||
res = false;
|
||||
break;
|
||||
}
|
||||
if (cover_cell && cover_cell->empty() == false)
|
||||
{
|
||||
res = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
// table:table-rows
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
const wchar_t * table_table_rows::ns = L"table";
|
||||
|
||||
@ -361,6 +361,9 @@ private:
|
||||
virtual void add_child_element( xml::sax * Reader, const std::wstring & Ns, const std::wstring & Name);
|
||||
|
||||
public:
|
||||
bool empty();
|
||||
bool empty_content_cells();
|
||||
|
||||
table_table_row_attlist attlist_;
|
||||
office_element_ptr_array content_; // table-table-cell or table-covered-table-cell
|
||||
|
||||
@ -408,6 +411,7 @@ private:
|
||||
|
||||
public:
|
||||
bool last_cell_;
|
||||
bool empty();
|
||||
|
||||
table_table_cell_attlist attlist_;
|
||||
table_table_cell_attlist_extra attlist_extra_;
|
||||
@ -427,7 +431,7 @@ public:
|
||||
|
||||
CPDOCCORE_DEFINE_VISITABLE();
|
||||
|
||||
table_covered_table_cell() : last_cell_(false), empty_(true) {}
|
||||
table_covered_table_cell() : last_cell_(false){}
|
||||
|
||||
virtual void docx_convert(oox::docx_conversion_context & Context) ;
|
||||
virtual void pptx_convert(oox::pptx_conversion_context & Context) ;
|
||||
@ -443,7 +447,7 @@ private:
|
||||
|
||||
public:
|
||||
bool last_cell_;
|
||||
bool empty_;
|
||||
bool empty();
|
||||
|
||||
table_table_cell_attlist attlist_;
|
||||
table_table_cell_content content_;
|
||||
|
||||
@ -54,6 +54,7 @@ void table_data_pilot_tables::add_child_element( xml::sax * Reader, const std::w
|
||||
}
|
||||
void table_data_pilot_tables::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
return;
|
||||
for (size_t i = 0; i < content_.size(); i++)
|
||||
{
|
||||
content_[i]->xlsx_convert(Context);
|
||||
|
||||
@ -78,6 +78,17 @@ int table_table_cell_content::xlsx_convert(oox::xlsx_conversion_context & Contex
|
||||
|
||||
void table_table_row::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
{
|
||||
if (attlist_.table_number_rows_repeated_ > 1 && empty())
|
||||
{
|
||||
Context.get_table_context().state()->add_empty_row(attlist_.table_number_rows_repeated_);
|
||||
return;
|
||||
}
|
||||
if (attlist_.table_number_rows_repeated_ > 0xf000 && empty_content_cells())
|
||||
{
|
||||
Context.get_table_context().state()->add_empty_row(attlist_.table_number_rows_repeated_);
|
||||
return; //conv_hSX8n3lVbhALjt0aafg__xlsx.ods, conv_MA2CauoNfX_7ejKS5eg__xlsx.ods
|
||||
}
|
||||
|
||||
std::wostream & strm = Context.current_sheet().sheetData();
|
||||
///обработка чтилей для роу -
|
||||
size_t Default_Cell_style_in_row_ = 0;
|
||||
@ -253,26 +264,20 @@ void table_rows::xlsx_convert(oox::xlsx_conversion_context & Context)
|
||||
table_table_rows_->xlsx_convert(Context);
|
||||
else
|
||||
{
|
||||
if (table_table_row_.size() > 1)
|
||||
while (table_table_row_.size() > 1)
|
||||
{
|
||||
//check 2 last rows for repeate > 65000 & 1024
|
||||
table_table_row* row_last = dynamic_cast<table_table_row*>(table_table_row_[table_table_row_.size() - 1].get());
|
||||
table_table_row* row_last_1 = dynamic_cast<table_table_row*>(table_table_row_[table_table_row_.size() - 2].get());
|
||||
|
||||
if (row_last->attlist_.table_number_rows_repeated_ > 1000 &&
|
||||
row_last_1->attlist_.table_number_rows_repeated_ > 1000 ||
|
||||
row_last_1->attlist_.table_number_rows_repeated_ > 0xf000)
|
||||
{
|
||||
std::wstring style = row_last->attlist_.table_style_name_.get_value_or(L"");
|
||||
std::wstring style_1 = row_last->attlist_.table_style_name_.get_value_or(L"");
|
||||
std::wstring style = row_last->attlist_.table_style_name_.get_value_or(L"");
|
||||
std::wstring style_1 = row_last->attlist_.table_style_name_.get_value_or(L"");
|
||||
|
||||
if (style == style_1)//check for empty also ????
|
||||
{
|
||||
row_last_1->attlist_.table_number_rows_repeated_ = 1024;
|
||||
table_table_row_.pop_back();
|
||||
}
|
||||
}
|
||||
if (style != style_1)break;
|
||||
if (row_last_1->empty_content_cells() == false) break;
|
||||
if (row_last->empty_content_cells() == false) break;
|
||||
|
||||
row_last_1->attlist_.table_number_rows_repeated_ += row_last->attlist_.table_number_rows_repeated_;
|
||||
table_table_row_.pop_back();
|
||||
}
|
||||
for (size_t i = 0; i < table_table_row_.size(); i++)
|
||||
{
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="windows-1251"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Version="8,00"
|
||||
Name="OdfFileWriterTest"
|
||||
ProjectGUID="{FBA8446A-150F-4A10-B4DA-1022048D6473}"
|
||||
RootNamespace="ASCOfficeOdfFileWTest"
|
||||
@ -43,6 +43,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../../DesktopEditor/xml/libxml2/include;../../DesktopEditor/xml/build/vs2005"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;USE_LITE_READER;_USE_XMLLITE_READER_;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;__WORDSIZE=32;DONT_WRITE_EMBEDDED_FONTS"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
|
||||
@ -113,7 +113,7 @@ void calcext_conditional_format::serialize(std::wostream & _Wostream)
|
||||
{
|
||||
CP_XML_ATTR_OPT(L"calcext:target-range-address",calcext_target_range_address_);
|
||||
|
||||
for (size_t i = content_.size() - 1; i >= 0; i--)
|
||||
for (int i = (int)content_.size() - 1; i >= 0; i--)
|
||||
{
|
||||
content_[i]->serialize(CP_XML_STREAM());
|
||||
}
|
||||
@ -269,4 +269,4 @@ void calcext_date_is::serialize(std::wostream & _Wostream)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,8 +54,9 @@ static int style_family_counts_[26]={};//согласно количеству
|
||||
void calc_paragraph_properties_content(std::vector<style_paragraph_properties*> & parProps, paragraph_format_properties * result)
|
||||
{
|
||||
if (result == NULL)return;
|
||||
if (parProps.empty()) return;
|
||||
|
||||
for (size_t i = parProps.size() - 1; i >= 0; i--)
|
||||
for (int i = (int)parProps.size() - 1; i >= 0; i--)
|
||||
{
|
||||
if (parProps[i])
|
||||
result->apply_from(parProps[i]->content_);
|
||||
@ -444,4 +445,4 @@ void odf_style_context::calc_paragraph_properties(std::wstring style_name, style
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1345,6 +1345,10 @@ void PptxConverter::convert_slide(PPTX::Logic::CSld *oox_slide, PPTX::Logic::TxS
|
||||
{
|
||||
if (pShape->nvSpPr.nvPr.ph.is_init())
|
||||
{
|
||||
if (type == Notes || type == NotesMaster)
|
||||
{
|
||||
pShape->nvSpPr.nvPr.ph->idx.reset();
|
||||
}
|
||||
if (bFillUp)
|
||||
pShape->FillLevelUp();
|
||||
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\..\Common\OfficeDrawing;"..\..\DesktopEditor\freetype-2.5.2\include";..\..\Common\OfficeDrawing\Shapes"
|
||||
AdditionalIncludeDirectories="../../DesktopEditor/xml/build/vs2005;../../DesktopEditor/xml/libxml2/include"
|
||||
PreprocessorDefinitions="_DEBUG;_CONSOLE;USE_ATL_CSTRINGS;_USE_MATH_DEFINES;PPTX_DEF;PPT_DEF;ENABLE_PPT_TO_PPTX_CONVERT;PPT_FORMAT;_USE_LIBXML2_READER_;LIBXML_READER_ENABLED;USE_LITE_READER;_USE_XMLLITE_READER_;_PRESENTATION_WRITER_;_SVG_CONVERT_TO_IMAGE_;DONT_WRITE_EMBEDDED_FONTS"
|
||||
MinimalRebuild="false"
|
||||
BasicRuntimeChecks="3"
|
||||
|
||||
@ -913,20 +913,29 @@ HRESULT CDrawingConverter::SetMainDocument(BinDocxRW::CDocxSerializer* pDocument
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CDrawingConverter::SetMediaDstPath(const std::wstring& bsMediaPath)
|
||||
void CDrawingConverter::SetSrcPath(const std::wstring& sPath, int nDocType)
|
||||
{
|
||||
m_pBinaryWriter->m_pCommon->m_pImageManager->m_strDstMedia = (std::wstring)bsMediaPath;
|
||||
m_pImageManager->SetDstMedia(m_pBinaryWriter->m_pCommon->m_pImageManager->m_strDstMedia);
|
||||
m_pReader->m_pRels->m_pManager = m_pImageManager;
|
||||
m_pReader->m_strFolder = sPath;
|
||||
|
||||
NSDirectory::CreateDirectory(bsMediaPath);
|
||||
return S_OK;
|
||||
m_pImageManager->m_nDocumentType = nDocType;
|
||||
}
|
||||
HRESULT CDrawingConverter::SetEmbedDstPath(const std::wstring& bsEmbedPath)
|
||||
void CDrawingConverter::SetDstPath(const std::wstring& sPath)
|
||||
{
|
||||
m_pImageManager->SetDstEmbed(bsEmbedPath);
|
||||
m_pImageManager->SetDstFolder(sPath);
|
||||
}
|
||||
void CDrawingConverter::SetMediaDstPath(const std::wstring& sPath)
|
||||
{
|
||||
m_pBinaryWriter->m_pCommon->m_pImageManager->m_strDstMedia = sPath;
|
||||
m_pImageManager->SetDstMedia(sPath);
|
||||
|
||||
NSDirectory::CreateDirectory(bsEmbedPath);
|
||||
return S_OK;
|
||||
NSDirectory::CreateDirectory(sPath);
|
||||
}
|
||||
void CDrawingConverter::SetEmbedDstPath(const std::wstring& sPath)
|
||||
{
|
||||
m_pImageManager->SetDstEmbed(sPath);
|
||||
|
||||
NSDirectory::CreateDirectory(sPath);
|
||||
}
|
||||
HRESULT CDrawingConverter::AddShapeType(const std::wstring& bsXml)
|
||||
{
|
||||
@ -2228,8 +2237,7 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
|
||||
std::wstring strPos = arSplit[i].substr(0, p);
|
||||
std::wstring strColor = arSplit[i].substr(p + 1);
|
||||
|
||||
double pos;
|
||||
pos = _wtof(strPos.c_str());
|
||||
double pos = strPos.empty() ? 0 : _wtof(strPos.c_str());
|
||||
|
||||
NSPresentationEditor::CColor color = NS_DWC_Common::getColorFromString(strColor);
|
||||
PPTX::Logic::UniColor *oColor = new PPTX::Logic::UniColor();
|
||||
@ -5275,14 +5283,6 @@ OOX::CContentTypes* CDrawingConverter::GetContentTypes()
|
||||
//return m_pReader->mm_strContentTypes;
|
||||
}
|
||||
|
||||
void CDrawingConverter::SetSourceFileDir(std::wstring path, int nDocType)
|
||||
{
|
||||
m_pReader->m_pRels->m_pManager = m_pImageManager;
|
||||
m_pReader->m_strFolder = path;
|
||||
|
||||
m_pImageManager->m_nDocumentType = nDocType;
|
||||
}
|
||||
|
||||
void CDrawingConverter::Clear()
|
||||
{
|
||||
for (std::map<std::wstring, CShape*>::iterator pPair = m_mapShapeTypes.begin(); pPair != m_mapShapeTypes.end(); ++pPair)
|
||||
|
||||
@ -215,8 +215,12 @@ namespace NSBinPptxRW
|
||||
smart_ptr<OOX::IFileContainer> GetRels();
|
||||
|
||||
HRESULT SetMainDocument (BinDocxRW::CDocxSerializer* pDocument);
|
||||
HRESULT SetMediaDstPath (const std::wstring& sMediaPath);
|
||||
HRESULT SetEmbedDstPath (const std::wstring& sEmbedPath);
|
||||
|
||||
void SetSrcPath (const std::wstring& sPath, int nDocType = 1/*XMLWRITER_DOC_TYPE_DOCX*/);
|
||||
void SetDstPath (const std::wstring& sPath);
|
||||
|
||||
void SetMediaDstPath (const std::wstring& sMediaPath);
|
||||
void SetEmbedDstPath (const std::wstring& sEmbedPath);
|
||||
|
||||
HRESULT AddShapeType (const std::wstring& sXml);
|
||||
HRESULT AddObject (const std::wstring& sXml, std::wstring** pMainProps);
|
||||
@ -255,8 +259,6 @@ namespace NSBinPptxRW
|
||||
void SetDocumentChartsCount (int val);
|
||||
int GetDocumentChartsCount ();
|
||||
|
||||
void SetSourceFileDir (std::wstring path, int nDocType = 1/*XMLWRITER_DOC_TYPE_DOCX*/);
|
||||
|
||||
OOX::CContentTypes* GetContentTypes();
|
||||
protected:
|
||||
nullable<PPTX::Logic::Xfrm> m_oxfrm_override;
|
||||
|
||||
@ -125,6 +125,19 @@ namespace NSBinPptxRW
|
||||
m_lIndexNextImage = 0;
|
||||
m_lIndexCounter = 0;
|
||||
}
|
||||
void CImageManager2::SetDstFolder(const std::wstring& strDst)
|
||||
{
|
||||
m_strDstFolder = strDst;
|
||||
m_strDstMedia = m_strDstFolder + FILE_SEPARATOR_STR + _T("media");
|
||||
m_strDstEmbed = m_strDstFolder + FILE_SEPARATOR_STR + _T("embeddings");
|
||||
|
||||
NSDirectory::CreateDirectory(m_strDstMedia);
|
||||
NSDirectory::CreateDirectory(m_strDstEmbed);
|
||||
}
|
||||
std::wstring CImageManager2::GetDstFolder()
|
||||
{
|
||||
return m_strDstFolder;
|
||||
}
|
||||
void CImageManager2::SetDstMedia(const std::wstring& strDst)
|
||||
{
|
||||
m_strDstMedia = strDst;
|
||||
@ -1222,7 +1235,7 @@ namespace NSBinPptxRW
|
||||
|
||||
m_pWriter->WriteString(strRels);
|
||||
}
|
||||
void CRelsGenerator::EndPresentationRels(const bool& bIsCommentsAuthors = false, const bool& bIsNotesMaster)
|
||||
void CRelsGenerator::EndPresentationRels(bool bIsCommentsAuthors, bool bIsNotesMaster, bool bIsVbaProject)
|
||||
{
|
||||
if (bIsNotesMaster)
|
||||
{
|
||||
@ -1247,6 +1260,12 @@ namespace NSBinPptxRW
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/commentAuthors\" Target=\"commentAuthors.xml\"/>";
|
||||
m_pWriter->WriteString(strRels4);
|
||||
}
|
||||
if (bIsVbaProject)
|
||||
{
|
||||
std::wstring strRels4 = L"<Relationship Id=\"rId" + std::to_wstring(m_lNextRelsID++) +
|
||||
L"\" Type=\"http://schemas.microsoft.com/office/2006/relationships/vbaProject\" Target=\"vbaProject.bin\"/>";
|
||||
m_pWriter->WriteString(strRels4);
|
||||
}
|
||||
}
|
||||
int CRelsGenerator::GetNextId()
|
||||
{
|
||||
|
||||
@ -178,8 +178,10 @@ namespace NSBinPptxRW
|
||||
std::map<std::wstring, _imageManager2Info> m_mapImages;
|
||||
_INT32 m_lIndexNextImage;
|
||||
_INT32 m_lIndexCounter;
|
||||
|
||||
std::wstring m_strDstMedia;
|
||||
std::wstring m_strDstEmbed;
|
||||
std::wstring m_strDstFolder;
|
||||
public:
|
||||
int m_nDocumentType;
|
||||
OOX::CContentTypes* m_pContentTypes;
|
||||
@ -194,6 +196,9 @@ namespace NSBinPptxRW
|
||||
void SetDstEmbed(const std::wstring& strDst);
|
||||
std::wstring GetDstEmbed();
|
||||
|
||||
void SetDstFolder(const std::wstring& strDst);
|
||||
std::wstring GetDstFolder();
|
||||
|
||||
int IsDisplayedImage(const std::wstring& strInput);
|
||||
|
||||
_imageManager2Info GenerateImage(const std::wstring& strInput, NSCommon::smart_ptr<OOX::File> & additionalFile, const std::wstring& oleData, std::wstring strBase64Image);
|
||||
@ -419,8 +424,8 @@ namespace NSBinPptxRW
|
||||
int WriteChart (int nChartNumber, _INT32 lDocType);
|
||||
int WriteRels (const std::wstring& bsType, const std::wstring& bsTarget, const std::wstring& bsTargetMode);
|
||||
int WriteHyperlink (const std::wstring& strLink, const bool& bIsActionInit);
|
||||
|
||||
void EndPresentationRels (const bool& bIsCommentsAuthors, const bool& bIsNotesMaster = false);
|
||||
|
||||
void EndPresentationRels (bool bIsCommentsAuthors = false, bool bIsNotesMaster = false, bool bIsVbaProject = false );
|
||||
int GetNextId ();
|
||||
void CloseRels ();
|
||||
|
||||
|
||||
@ -2122,6 +2122,8 @@ namespace NSGuidesVML
|
||||
|
||||
for (size_t nIndex = 0; nIndex < oArray.size(); ++nIndex)
|
||||
{
|
||||
if (oPath.m_arParts.size() <= nIndex)
|
||||
break;
|
||||
const CPartPath& oPart = oPath.m_arParts[nIndex];
|
||||
m_lWidth = oPart.width;
|
||||
m_lHeight = oPart.height;
|
||||
|
||||
@ -100,7 +100,9 @@ namespace NSBinPptxRW
|
||||
|
||||
m_oImageManager.Clear();
|
||||
|
||||
OOX::CPath pathMedia = pathPPT / _T("media");
|
||||
m_oImageManager.SetDstFolder(pathPPT.GetPath());
|
||||
|
||||
OOX::CPath pathMedia = pathPPT / _T("media");
|
||||
NSDirectory::CreateDirectory(pathMedia.GetPath());
|
||||
|
||||
m_oImageManager.SetDstMedia(pathMedia.GetPath());
|
||||
@ -809,7 +811,8 @@ namespace NSBinPptxRW
|
||||
m_oPresentation.notesMasterIdLst[0].rid = (size_t)nCurrentRels;
|
||||
++nCurrentRels;
|
||||
}
|
||||
m_oReader.m_pRels->EndPresentationRels(m_oPresentation.commentAuthors.is_init(), bNotesMasterPresent);
|
||||
|
||||
m_oReader.m_pRels->EndPresentationRels(m_oPresentation.commentAuthors.is_init(), bNotesMasterPresent, m_oPresentation.m_pVbaProject.is_init());
|
||||
m_oReader.m_pRels->CloseRels();
|
||||
|
||||
oXmlWriter.ClearNoAttack();
|
||||
@ -840,7 +843,16 @@ namespace NSBinPptxRW
|
||||
// content types
|
||||
OOX::CContentTypes *pContentTypes = m_oImageManager.m_pContentTypes;
|
||||
|
||||
pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml", L"/ppt", L"presentation.xml");
|
||||
pContentTypes->Registration(m_oPresentation.type().OverrideType(),
|
||||
m_oPresentation.type().DefaultDirectory(),
|
||||
m_oPresentation.type().DefaultFileName());
|
||||
|
||||
if (m_oPresentation.m_pVbaProject.IsInit())
|
||||
{
|
||||
pContentTypes->Registration(m_oPresentation.m_pVbaProject->type().OverrideType(),
|
||||
m_oPresentation.type().DefaultDirectory() / m_oPresentation.m_pVbaProject->type().DefaultDirectory(),
|
||||
m_oPresentation.m_pVbaProject->type().DefaultFileName());
|
||||
}
|
||||
pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.presentationml.presProps+xml", L"/ppt", L"presProps.xml");
|
||||
pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml", L"/ppt", L"viewProps.xml");
|
||||
pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml", L"/ppt", L"tableStyles.xml");
|
||||
|
||||
@ -84,7 +84,8 @@ namespace PPTX
|
||||
return smart_ptr<OOX::File>(new PPTX::App(filename, map));
|
||||
else if (relation.Type() == OOX::FileTypes::Core)
|
||||
return smart_ptr<OOX::File>(new PPTX::Core(filename, map));
|
||||
else if (relation.Type() == OOX::Presentation::FileTypes::Presentation)
|
||||
else if (relation.Type() == OOX::Presentation::FileTypes::Presentation ||
|
||||
relation.Type() == OOX::Presentation::FileTypes::PresentationMacro)
|
||||
return smart_ptr<OOX::File>(new PPTX::Presentation(filename, map));
|
||||
else if (relation.Type() == OOX::FileTypes::Theme)
|
||||
return smart_ptr<OOX::File>(new PPTX::Theme(filename, map));
|
||||
@ -141,6 +142,8 @@ namespace PPTX
|
||||
return smart_ptr<OOX::File>(new OOX::OleObject(filename));
|
||||
else if (relation.Type() == OOX::FileTypes::MicrosoftOfficeUnknown) //ms package
|
||||
return smart_ptr<OOX::File>(new OOX::OleObject( filename, true ));
|
||||
else if (relation.Type() == OOX::FileTypes::VbaProject)
|
||||
return smart_ptr<OOX::File>(new OOX::VbaProject( filename, filename ));
|
||||
|
||||
return smart_ptr<OOX::File>(new OOX::UnknowTypeFile());
|
||||
}
|
||||
|
||||
@ -44,6 +44,9 @@ namespace Presentation
|
||||
const FileType Presentation (L"ppt", L"presentation.xml",
|
||||
_T("application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml"),
|
||||
_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"));
|
||||
const FileType PresentationMacro(L"ppt", L"presentation.xml",
|
||||
_T("application/vnd.ms-powerpoint.presentation.macroEnabled.main+xml"),
|
||||
_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"));
|
||||
const FileType Slide (L"slides", L"slide.xml",
|
||||
_T("application/vnd.openxmlformats-officedocument.presentationml.slide+xml"),
|
||||
_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"));
|
||||
|
||||
@ -75,6 +75,12 @@ namespace PPTX
|
||||
if (_presentation.is_init())
|
||||
{
|
||||
_presentation->commentAuthors = _presentation->Get(OOX::Presentation::FileTypes::CommentAuthors).smart_dynamic_cast<PPTX::Authors>();
|
||||
|
||||
if (_presentation->IsExist(OOX::FileTypes::VbaProject))
|
||||
{
|
||||
_presentation->m_bMacroEnabled = true;
|
||||
_presentation->m_pVbaProject = _presentation->Get(OOX::FileTypes::VbaProject).smart_dynamic_cast<OOX::VbaProject>();
|
||||
}
|
||||
}
|
||||
|
||||
for (std::map<std::wstring, smart_ptr<OOX::File>>::const_iterator pPair = map.m_map.begin(); pPair != map.m_map.end(); ++pPair)
|
||||
|
||||
@ -134,7 +134,7 @@ namespace PPTX
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_ = L"xdr";
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
|
||||
{
|
||||
namespaceLock_ = L"wp";
|
||||
namespaceLock_ = L"a";
|
||||
namespace_ = L"wp";
|
||||
}
|
||||
|
||||
|
||||
@ -166,23 +166,28 @@ namespace PPTX
|
||||
pWriter->WriteBYTE(1);
|
||||
pWriter->EndRecord();
|
||||
|
||||
DocWrapper::FontProcessor fp;
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
|
||||
DocWrapper::FontProcessor oFontProcessor;
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
BinDocxRW::CDocxSerializer oDocxSerializer;
|
||||
|
||||
NSBinPptxRW::CBinaryFileWriter* old_writer = oDrawingConverter.m_pBinaryWriter;
|
||||
NSCommon::smart_ptr<OOX::IFileContainer> old_rels = *pWriter->m_pCurrentContainer;
|
||||
BinDocxRW::CDocxSerializer* old_serial = pWriter->m_pMainDocument;
|
||||
|
||||
oDrawingConverter.m_pBinaryWriter = pWriter;
|
||||
oDocxSerializer.m_pParamsWriter = new BinDocxRW::ParamsWriter(pWriter, &oFontProcessor, &oDrawingConverter, NULL);
|
||||
|
||||
BinDocxRW::ParamsWriter oParamsWriter(pWriter, &fp, &oDrawingConverter, NULL);
|
||||
BinDocxRW::BinaryFileWriter oBinaryFileWriter(oParamsWriter);
|
||||
pWriter->m_pMainDocument = &oDocxSerializer;
|
||||
|
||||
BinDocxRW::BinaryFileWriter oBinaryFileWriter(*oDocxSerializer.m_pParamsWriter);
|
||||
|
||||
pWriter->StartRecord(2);
|
||||
oBinaryFileWriter.intoBindoc(oox_unpacked.GetPath());
|
||||
pWriter->EndRecord();
|
||||
|
||||
oDrawingConverter.m_pBinaryWriter = old_writer;
|
||||
*pWriter->m_pCurrentContainer = old_rels;
|
||||
*pWriter->m_pCurrentContainer = old_rels;
|
||||
pWriter->m_pMainDocument = old_serial;
|
||||
}
|
||||
else if (office_checker.nFileType == AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX)
|
||||
//if ( std::wstring::npos != sProgID.find(L"Excel.Sheet")) //"ET.Xlsx.6" !!!
|
||||
@ -341,8 +346,11 @@ namespace PPTX
|
||||
pReader->m_pRels = new NSBinPptxRW::CRelsGenerator();
|
||||
|
||||
oDrawingConverter.SetMainDocument(&oDocxSerializer);
|
||||
oDrawingConverter.SetSourceFileDir(pReader->m_strFolder, 1);
|
||||
oDrawingConverter.SetMediaDstPath(sMediaPath);
|
||||
|
||||
oDrawingConverter.SetDstPath(sDstEmbeddedTemp + FILE_SEPARATOR_STR + L"word");
|
||||
oDrawingConverter.SetSrcPath(pReader->m_strFolder, 1);
|
||||
|
||||
oDrawingConverter.SetMediaDstPath(sMediaPath);
|
||||
oDrawingConverter.SetEmbedDstPath(sEmbedPath);
|
||||
|
||||
std::wstring sDocxFilename = L"Microsoft_Word_Document" + std::to_wstring( id ) + L".docx";
|
||||
@ -368,7 +376,7 @@ namespace PPTX
|
||||
if (pApp)
|
||||
{
|
||||
pApp->SetApplication(_T("OnlyOffice"));
|
||||
pApp->SetAppVersion(_T("4.3000"));
|
||||
pApp->SetAppVersion(_T("5.0"));
|
||||
pApp->SetDocSecurity(0);
|
||||
pApp->SetScaleCrop(false);
|
||||
pApp->SetLinksUpToDate(false);
|
||||
@ -429,8 +437,10 @@ namespace PPTX
|
||||
oDrawingConverter.m_pReader = pReader;
|
||||
pReader->m_pRels = new NSBinPptxRW::CRelsGenerator();
|
||||
|
||||
oDrawingConverter.SetSourceFileDir(pReader->m_strFolder, 2);
|
||||
oDrawingConverter.SetMediaDstPath(sMediaPath);
|
||||
oDrawingConverter.SetDstPath(sDstEmbeddedTemp + FILE_SEPARATOR_STR + L"xl");
|
||||
oDrawingConverter.SetSrcPath(pReader->m_strFolder, 2);
|
||||
|
||||
oDrawingConverter.SetMediaDstPath(sMediaPath);
|
||||
oDrawingConverter.SetEmbedDstPath(sEmbedPath);
|
||||
|
||||
std::wstring sXlsxFilename = L"Microsoft_Excel_Worksheet" + std::to_wstring( id ) + L".xlsx";
|
||||
|
||||
@ -50,6 +50,8 @@
|
||||
#include "Logic/ExtP.h"
|
||||
#include "Theme/ClrScheme.h"
|
||||
|
||||
#include "../../Common/DocxFormat/Source/DocxFormat/Media/VbaProject.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
class Presentation : public WrapperFile, public PPTX::FileContainer
|
||||
@ -57,16 +59,16 @@ namespace PPTX
|
||||
public:
|
||||
Presentation()
|
||||
{
|
||||
m_bMacroEnabled = false;
|
||||
}
|
||||
Presentation(const OOX::CPath& filename, FileMap& map)
|
||||
{
|
||||
m_bMacroEnabled = false;
|
||||
read(filename, map);
|
||||
}
|
||||
virtual ~Presentation()
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void read(const OOX::CPath& filename, FileMap& map)
|
||||
{
|
||||
//FileContainer::read(filename, map);
|
||||
@ -182,6 +184,7 @@ namespace PPTX
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//smartTags (Smart Tags)
|
||||
Normalize();
|
||||
}
|
||||
@ -222,6 +225,15 @@ namespace PPTX
|
||||
pWriter->WriteRecord2(6, commentAuthors);
|
||||
pWriter->WriteRecord2(7, sectionLst);
|
||||
|
||||
if (m_pVbaProject.IsInit())
|
||||
{
|
||||
pWriter->StartRecord(8);
|
||||
{
|
||||
m_pVbaProject->toPPTY(pWriter);
|
||||
}
|
||||
pWriter->EndRecord();
|
||||
}
|
||||
|
||||
pWriter->EndRecord();
|
||||
}
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
@ -318,22 +330,28 @@ namespace PPTX
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}break;
|
||||
case 6:
|
||||
{
|
||||
commentAuthors = new PPTX::Authors();
|
||||
commentAuthors->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
commentAuthors->fromPPTY(pReader);
|
||||
}break;
|
||||
case 7:
|
||||
{
|
||||
sectionLst = new nsPresentation::SectionLst();
|
||||
sectionLst->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
sectionLst->fromPPTY(pReader);
|
||||
}break;
|
||||
case 8:
|
||||
{
|
||||
m_pVbaProject = new OOX::VbaProject();
|
||||
m_pVbaProject->fromPPTY(pReader);
|
||||
|
||||
smart_ptr<OOX::File> file = m_pVbaProject.smart_dynamic_cast<OOX::File>();
|
||||
FileContainer::Add(file);
|
||||
|
||||
m_bMacroEnabled = true;
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
pReader->Seek(_end_pos);
|
||||
@ -397,10 +415,10 @@ namespace PPTX
|
||||
pWriter->EndNode(L"p:presentation");
|
||||
}
|
||||
|
||||
public:
|
||||
virtual const OOX::FileType type() const
|
||||
{
|
||||
return OOX::Presentation::FileTypes::Presentation;
|
||||
if (m_bMacroEnabled) return OOX::Presentation::FileTypes::PresentationMacro;
|
||||
else return OOX::Presentation::FileTypes::Presentation;
|
||||
}
|
||||
virtual const OOX::CPath DefaultDirectory() const
|
||||
{
|
||||
@ -411,7 +429,6 @@ namespace PPTX
|
||||
return type().DefaultFileName();
|
||||
}
|
||||
|
||||
public:
|
||||
//Childs
|
||||
//custDataLst (Customer Data List)
|
||||
//property<std::list<Presentation::CustShow> > custShowLst (List of Custom Shows)
|
||||
@ -446,11 +463,14 @@ namespace PPTX
|
||||
smart_ptr<PPTX::Authors> commentAuthors;
|
||||
|
||||
private:
|
||||
Logic::ClrMap m_clrMap;
|
||||
nsTheme::ClrScheme m_clrScheme;
|
||||
Logic::ClrMap m_clrMap;
|
||||
nsTheme::ClrScheme m_clrScheme;
|
||||
public:
|
||||
void SetClrMap(Logic::ClrMap map) {m_clrMap = map;};
|
||||
void SetClrScheme(nsTheme::ClrScheme scheme) {m_clrScheme = scheme;};
|
||||
bool m_bMacroEnabled;
|
||||
smart_ptr<OOX::VbaProject> m_pVbaProject;
|
||||
|
||||
void SetClrMap(Logic::ClrMap map) {m_clrMap = map;}
|
||||
void SetClrScheme(nsTheme::ClrScheme scheme) {m_clrScheme = scheme;}
|
||||
|
||||
DWORD GetRGBAFromMap(const std::wstring& str)const
|
||||
{
|
||||
|
||||
@ -363,7 +363,7 @@ namespace PPTX
|
||||
}
|
||||
if (IsExist(OOX::FileTypes::VmlDrawing))
|
||||
{
|
||||
Vml = FileContainer::Get(OOX::FileTypes::VmlDrawing).smart_dynamic_cast<OOX::CVmlDrawing>();//boost::shared_dynamic_cast<PPTX::VmlDrawing, PPTX::File>(FileContainer::get(OOX::Presentation::FileTypes::VmlDrawing));
|
||||
Vml = FileContainer::Get(OOX::FileTypes::VmlDrawing).smart_dynamic_cast<OOX::CVmlDrawing>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -146,7 +146,7 @@ bool OOXWriter::SaveByItemEnd()
|
||||
if (m_poDocPropsApp)
|
||||
{
|
||||
((OOX::CApp*)m_poDocPropsApp)->SetApplication ( L"OnlyOffice" );
|
||||
((OOX::CApp*)m_poDocPropsApp)->SetAppVersion ( L"4.3" );
|
||||
((OOX::CApp*)m_poDocPropsApp)->SetAppVersion ( L"5.0" );
|
||||
|
||||
((OOX::CApp*)m_poDocPropsApp)->write(pathDocProps + FILE_SEPARATOR_STR + L"app.xml", pathDocProps.GetDirectory(), oContentTypes);
|
||||
|
||||
|
||||
@ -216,7 +216,7 @@ void CTxtXmlFile::CreateDocxEmpty(const std::wstring & _strDirectory, Writers::F
|
||||
if (pApp)
|
||||
{
|
||||
pApp->SetApplication(_T("OnlyOffice"));
|
||||
pApp->SetAppVersion(_T("4.3000"));
|
||||
pApp->SetAppVersion(_T("5.0"));
|
||||
pApp->SetDocSecurity(0);
|
||||
pApp->SetScaleCrop(false);
|
||||
pApp->SetLinksUpToDate(false);
|
||||
|
||||
@ -65,60 +65,370 @@ BaseObjectPtr SXAddl::clone()
|
||||
|
||||
void SXAddl::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
record >> frtHeaderOld >> sxc >> sxd;
|
||||
switch(sxc)
|
||||
{
|
||||
case 0x00: content = createSxcView (record); break;
|
||||
case 0x01: content = createSxcField (record); break;
|
||||
case 0x02: content = createSxcHierarchy(record); break;
|
||||
case 0x03: content = createSxcCache (record); break;
|
||||
case 0x04: content = createSxcCacheField(record); break;
|
||||
case 0x05: content = createSxcQsi (record); break;
|
||||
case 0x06: content = createSxcQuery (record); break;
|
||||
case 0x07: content = createSxcGrpLevel (record); break;
|
||||
case 0x08: content = createSxcGroup (record); break;
|
||||
case 0x09: content = createSxcCacheItem(record); break;
|
||||
case 0x0C: content = createSxcSXRule (record); break;
|
||||
case 0x0D: content = createSxcSXFilt (record); break;
|
||||
case 0x10: content = createSxcSXDH (record); break;
|
||||
case 0x12: content = createSxcAutoSort (record); break;
|
||||
case 0x13: content = createSxcSXMgs (record); break;
|
||||
case 0x14: content = createSxcSXMg (record); break;
|
||||
case 0x17: content = createSxcField12 (record); break;
|
||||
case 0x1A: content = createSxcSXCondFmts(record); break;
|
||||
case 0x1B: content = createSxcSXCondFmt(record); break;
|
||||
case 0x1C: content = createSxcSXFilters12(record); break;
|
||||
case 0x1D: content = createSxcSXFilter12(record); break;
|
||||
}
|
||||
if (content)
|
||||
content->load(record);
|
||||
|
||||
Log::error("SXAddl record is not implemented.");
|
||||
record.skipNunBytes(record.getDataSize() - record.getRdPtr());
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
BaseObjectPtr SXAddl_SXCCache_SXDId::clone()
|
||||
BiffStructurePtr SXAddl::createSxcView(CFRecord& record)
|
||||
{
|
||||
return BaseObjectPtr(new SXAddl_SXCCache_SXDId(*this));
|
||||
}
|
||||
void SXAddl_SXCCache_SXDId::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
BiffStructurePtr result;
|
||||
|
||||
short reserved;
|
||||
record >> idCache >> reserved;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0x00: result = BiffStructurePtr(new SXAddl_SXCView_SXDId()); break;
|
||||
case 0x1E: result = BiffStructurePtr(new SXAddl_SXCView_SXDTableStyleClient()); break;
|
||||
case 0xff: result = BiffStructurePtr(new SXAddl_SXCView_SXDEnd()); break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
BiffStructurePtr SXAddl::createSxcField(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0x00: result = BiffStructurePtr(new SXAddl_SXCField_SXDId()); break;
|
||||
case 0x02: result = BiffStructurePtr(new SXAddl_SXCField_SXDVer10Info()); break;
|
||||
case 0xff: result = BiffStructurePtr(new SXAddl_SXCField_SXDEnd()); break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcHierarchy(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
|
||||
if (result)
|
||||
result->load(record);
|
||||
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcCache (CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0x00: result = BiffStructurePtr(new SXAddl_SXCCache_SXDId()); break;
|
||||
case 0x01: result = BiffStructurePtr(new SXAddl_SXCCache_SXDVerUpdInv()); break;
|
||||
case 0x02: result = BiffStructurePtr(new SXAddl_SXCCache_SXDVer10Info()); break;
|
||||
case 0x18: result = BiffStructurePtr(new SXAddl_SXCCache_SXDVerSXMacro()); break;
|
||||
case 0x34: result = BiffStructurePtr(new SXAddl_SXCCache_SXDInvRefreshReal()); break;
|
||||
case 0x41: result = BiffStructurePtr(new SXAddl_SXCCache_SXDInfo12()); break;
|
||||
case 0xff: result = BiffStructurePtr(new SXAddl_SXCCache_SXDEnd()); break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcCacheField(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0x00: result = BiffStructurePtr(new SXAddl_SXCCacheField_SXDId()); break;
|
||||
case 0x05: result = BiffStructurePtr(new SXAddl_SXCCacheField_SXDProperty()); break;
|
||||
case 0x2d: result = BiffStructurePtr(new SXAddl_SXCCacheField_SXDSxrmitmCount()); break;
|
||||
case 0x2f: result = BiffStructurePtr(new SXAddl_SXCCacheField_SXDCaption()); break;
|
||||
case 0x30: result = BiffStructurePtr(new SXAddl_SXCCacheField_SXDIfdbMempropMap()); break;
|
||||
case 0x31: result = BiffStructurePtr(new SXAddl_SXCCacheField_SXDIfdbMpMapCount()); break;
|
||||
case 0x40: result = BiffStructurePtr(new SXAddl_SXCCacheField_SXDPropName()); break;
|
||||
case 0xff: result = BiffStructurePtr(new SXAddl_SXCCacheField_SXDEnd()); break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcQsi(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcQuery(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcGrpLevel(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcGroup(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcCacheItem(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcSXRule(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcSXFilt(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcSXDH(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcAutoSort(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcSXMgs(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcSXMg(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcField12(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcSXCondFmts(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcSXCondFmt(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcSXFilters12(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
BiffStructurePtr SXAddl::createSxcSXFilter12(CFRecord& record)
|
||||
{
|
||||
BiffStructurePtr result;
|
||||
switch(sxd)
|
||||
{
|
||||
case 0xff: break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BaseObjectPtr SXAddl_SXCCache_SXDEnd::clone()
|
||||
BiffStructurePtr SXAddl_SXCField_SXDId::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXAddl_SXCCache_SXDEnd(*this));
|
||||
return BiffStructurePtr(new SXAddl_SXCField_SXDId(*this));
|
||||
}
|
||||
void SXAddl_SXCCache_SXDEnd::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
void SXAddl_SXCField_SXDId::load(CFRecord& record)
|
||||
{
|
||||
record >> stName;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCView_SXDId::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCView_SXDId(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCView_SXDId::load(CFRecord& record)
|
||||
{
|
||||
record >> stName;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCField_SXDEnd::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCField_SXDEnd(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCField_SXDEnd::load(CFRecord& record)
|
||||
{
|
||||
_UINT32 reserved1;
|
||||
short reserved2;
|
||||
record >> reserved1 >> reserved2;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BaseObjectPtr Continue_SxaddlSxString::clone()
|
||||
BiffStructurePtr SXAddl_SXCView_SXDEnd::clone()
|
||||
{
|
||||
return BaseObjectPtr(new Continue_SxaddlSxString(*this));
|
||||
return BiffStructurePtr(new SXAddl_SXCView_SXDEnd(*this));
|
||||
}
|
||||
|
||||
void Continue_SxaddlSxString::readFields(CFRecord& record)
|
||||
void SXAddl_SXCView_SXDEnd::load(CFRecord& record)
|
||||
{
|
||||
_UINT32 reserved1;
|
||||
short reserved2;
|
||||
record >> reserved1 >> reserved2;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCCacheItem_SXDId::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCacheItem_SXDId(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCacheItem_SXDId::load(CFRecord& record)
|
||||
{
|
||||
short reserved;
|
||||
record >> dwItem >> reserved;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCCacheField_SXDId::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCacheField_SXDId(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCacheField_SXDId::load(CFRecord& record)
|
||||
{
|
||||
record >> stSourceName;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCCache_SXDId::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCache_SXDId(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCache_SXDId::load(CFRecord& record)
|
||||
{
|
||||
short reserved;
|
||||
record >> idCache >> reserved;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCCache_SXDEnd::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCache_SXDEnd(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCache_SXDEnd::load(CFRecord& record)
|
||||
{
|
||||
_UINT32 reserved1;
|
||||
short reserved2;
|
||||
record >> reserved1 >> reserved2;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCField_SXDVer10Info::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCField_SXDVer10Info(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCField_SXDVer10Info::load(CFRecord& record)
|
||||
{
|
||||
_UINT32 flags;
|
||||
short reserved2;
|
||||
record >> flags >> reserved2;
|
||||
|
||||
fHideDD = GETBIT(flags, 0);
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr Continue_SxaddlSxString::clone()
|
||||
{
|
||||
return BiffStructurePtr(new Continue_SxaddlSxString(*this));
|
||||
}
|
||||
|
||||
void Continue_SxaddlSxString::load(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
int sz = record.getDataSize() - record.getRdPtr();
|
||||
|
||||
if (sz > 0)
|
||||
record >> stContinue;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BaseObjectPtr SXAddl_SXCCache_SXDVer10Info::clone()
|
||||
BiffStructurePtr SXAddl_SXCCache_SXDVer10Info::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXAddl_SXCCache_SXDVer10Info(*this));
|
||||
return BiffStructurePtr(new SXAddl_SXCCache_SXDVer10Info(*this));
|
||||
}
|
||||
void SXAddl_SXCCache_SXDVer10Info::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
void SXAddl_SXCCache_SXDVer10Info::load(CFRecord& record)
|
||||
{
|
||||
_UINT32 reserved1;
|
||||
short reserved2;
|
||||
record >> reserved1 >> reserved2;
|
||||
@ -131,28 +441,28 @@ void SXAddl_SXCCache_SXDVer10Info::readFields(CFRecord& record)
|
||||
record >> reserved2;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BaseObjectPtr SXAddl_SXCCache_SXDVerUpdInv::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXAddl_SXCCache_SXDVerUpdInv(*this));
|
||||
}
|
||||
void SXAddl_SXCCache_SXDVerUpdInv::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
BiffStructurePtr SXAddl_SXCCache_SXDVerUpdInv::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCache_SXDVerUpdInv(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCache_SXDVerUpdInv::load(CFRecord& record)
|
||||
{
|
||||
record >> dwVersionInvalidates;
|
||||
|
||||
record.skipNunBytes(5);
|
||||
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BaseObjectPtr SXAddl_SXCCache_SXDInfo12::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXAddl_SXCCache_SXDInfo12(*this));
|
||||
}
|
||||
void SXAddl_SXCCache_SXDInfo12::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
BiffStructurePtr SXAddl_SXCCache_SXDInfo12::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCache_SXDInfo12(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCache_SXDInfo12::load(CFRecord& record)
|
||||
{
|
||||
_UINT32 flags;
|
||||
short reserved;
|
||||
|
||||
@ -163,39 +473,27 @@ void SXAddl_SXCCache_SXDInfo12::readFields(CFRecord& record)
|
||||
fSrvSupportSubQuery = GETBIT(flags, 2);
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BaseObjectPtr SXAddl_SXCCache_SXDVerSXMacro::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXAddl_SXCCache_SXDVerSXMacro(*this));
|
||||
}
|
||||
void SXAddl_SXCCache_SXDVerSXMacro::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
BiffStructurePtr SXAddl_SXCCache_SXDVerSXMacro::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCache_SXDVerSXMacro(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCache_SXDVerSXMacro::load(CFRecord& record)
|
||||
{
|
||||
unsigned char reserved1;
|
||||
short reserved2, reserved3;
|
||||
|
||||
record >> dwVer >> reserved1 >> reserved2 >> reserved3;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BaseObjectPtr SXAddl_SXCView_SXDId::clone()
|
||||
BiffStructurePtr SXAddl_SXCCacheField_SXDIfdbMempropMap::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXAddl_SXCView_SXDId(*this));
|
||||
return BiffStructurePtr(new SXAddl_SXCCacheField_SXDIfdbMempropMap(*this));
|
||||
}
|
||||
void SXAddl_SXCView_SXDId::readFields(CFRecord& record)
|
||||
|
||||
void SXAddl_SXCCacheField_SXDIfdbMempropMap::load(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
record >> stName;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BaseObjectPtr SXAddl_SXCCacheField_SXDIfdbMempropMap::clone()
|
||||
{
|
||||
return BaseObjectPtr(new SXAddl_SXCCacheField_SXDIfdbMempropMap(*this));
|
||||
}
|
||||
void SXAddl_SXCCacheField_SXDIfdbMempropMap::readFields(CFRecord& record)
|
||||
{
|
||||
m_SXAddlHdr.load(record);
|
||||
|
||||
record.skipNunBytes(6);
|
||||
|
||||
int sz = record.getDataSize() - record.getRdPtr();
|
||||
@ -208,6 +506,106 @@ void SXAddl_SXCCacheField_SXDIfdbMempropMap::readFields(CFRecord& record)
|
||||
rgMap.push_back(val);
|
||||
}
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCView_SXDTableStyleClient::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCView_SXDTableStyleClient(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCView_SXDTableStyleClient::load(CFRecord& record)
|
||||
{
|
||||
record.skipNunBytes(6);
|
||||
|
||||
unsigned short flags;
|
||||
|
||||
record >> flags >> stName;
|
||||
|
||||
fLastColumn = GETBIT(flags, 1);
|
||||
fRowStrips = GETBIT(flags, 2);
|
||||
fColumnStrips = GETBIT(flags, 3);
|
||||
fRowHeaders = GETBIT(flags, 4);
|
||||
fColumnHeaders = GETBIT(flags, 5);
|
||||
fDefaultStyle = GETBIT(flags, 6);
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCCacheField_SXDSxrmitmCount::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCacheField_SXDSxrmitmCount(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCacheField_SXDSxrmitmCount::load(CFRecord& record)
|
||||
{
|
||||
short reserved2;
|
||||
record >> citm >> reserved2;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCCacheField_SXDPropName::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCacheField_SXDPropName(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCacheField_SXDPropName::load(CFRecord& record)
|
||||
{
|
||||
record >> stPropName;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCCacheField_SXDProperty::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCacheField_SXDProperty(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCacheField_SXDProperty::load(CFRecord& record)
|
||||
{
|
||||
short reserved2;
|
||||
record >> ihdb >> reserved2;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCCacheField_SXDIfdbMpMapCount::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCacheField_SXDIfdbMpMapCount(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCacheField_SXDIfdbMpMapCount::load(CFRecord& record)
|
||||
{
|
||||
short reserved2;
|
||||
record >> ifdbMemProp >> reserved2;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCCacheField_SXDEnd::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCacheField_SXDEnd(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCacheField_SXDEnd::load(CFRecord& record)
|
||||
{
|
||||
_UINT32 reserved1;
|
||||
short reserved2;
|
||||
record >> reserved1 >> reserved2;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCCacheField_SXDCaption::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCacheField_SXDCaption(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCacheField_SXDCaption::load(CFRecord& record)
|
||||
{
|
||||
record >> stCaption;
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
BiffStructurePtr SXAddl_SXCCache_SXDInvRefreshReal::clone()
|
||||
{
|
||||
return BiffStructurePtr(new SXAddl_SXCCache_SXDInvRefreshReal(*this));
|
||||
}
|
||||
|
||||
void SXAddl_SXCCache_SXDInvRefreshReal::load(CFRecord& record)
|
||||
{
|
||||
_UINT32 flags;
|
||||
short reserved2;
|
||||
record >> flags >> reserved2;
|
||||
|
||||
fEnableRefresh = GETBIT(flags, 0);
|
||||
fInvalid = GETBIT(flags, 1);
|
||||
}
|
||||
} // namespace XLS
|
||||
|
||||
|
||||
@ -60,18 +60,6 @@ class SXAddl: public BiffRecord
|
||||
BIFF_RECORD_DEFINE_TYPE_INFO(SXAddl)
|
||||
BASE_OBJECT_DEFINE_CLASS_NAME(SXAddl)
|
||||
public:
|
||||
struct _SXAddlHdr
|
||||
{
|
||||
_UINT32 frtHeaderOld;
|
||||
unsigned char sxc;
|
||||
unsigned char sxd;
|
||||
|
||||
void load(CFRecord& record)
|
||||
{
|
||||
record >> frtHeaderOld >> sxc >> sxd;
|
||||
}
|
||||
}m_SXAddlHdr;
|
||||
|
||||
SXAddl();
|
||||
~SXAddl();
|
||||
|
||||
@ -79,57 +67,249 @@ public:
|
||||
virtual void readFields(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
};
|
||||
|
||||
class Continue_SxaddlSxString : public SXAddl
|
||||
{
|
||||
_UINT32 frtHeaderOld;
|
||||
unsigned char sxc;
|
||||
unsigned char sxd;
|
||||
BiffStructurePtr content;
|
||||
private:
|
||||
BiffStructurePtr createSxcView (CFRecord& record);
|
||||
BiffStructurePtr createSxcField (CFRecord& record);
|
||||
BiffStructurePtr createSxcHierarchy (CFRecord& record);
|
||||
BiffStructurePtr createSxcCache (CFRecord& record);
|
||||
BiffStructurePtr createSxcCacheField(CFRecord& record);
|
||||
BiffStructurePtr createSxcQsi (CFRecord& record);
|
||||
BiffStructurePtr createSxcQuery (CFRecord& record);
|
||||
BiffStructurePtr createSxcGrpLevel (CFRecord& record);
|
||||
BiffStructurePtr createSxcGroup (CFRecord& record);
|
||||
BiffStructurePtr createSxcCacheItem (CFRecord& record);
|
||||
BiffStructurePtr createSxcSXRule (CFRecord& record);
|
||||
BiffStructurePtr createSxcSXFilt (CFRecord& record);
|
||||
BiffStructurePtr createSxcSXDH (CFRecord& record);
|
||||
BiffStructurePtr createSxcAutoSort (CFRecord& record);
|
||||
BiffStructurePtr createSxcSXMgs (CFRecord& record);
|
||||
BiffStructurePtr createSxcSXMg (CFRecord& record);
|
||||
BiffStructurePtr createSxcField12 (CFRecord& record);
|
||||
BiffStructurePtr createSxcSXCondFmts(CFRecord& record);
|
||||
BiffStructurePtr createSxcSXCondFmt (CFRecord& record);
|
||||
BiffStructurePtr createSxcSXFilters12(CFRecord& record);
|
||||
BiffStructurePtr createSxcSXFilter12(CFRecord& record);
|
||||
};
|
||||
class Continue_SxaddlSxString : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(Continue_SxaddlSxString)
|
||||
public:
|
||||
virtual void readFields(CFRecord& record);
|
||||
virtual BaseObjectPtr clone();
|
||||
BiffStructurePtr clone();
|
||||
|
||||
Continue_SxaddlSxString(){}
|
||||
~Continue_SxaddlSxString(){}
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
XLUnicodeStringSegmentedSXADDL stContinue;
|
||||
};
|
||||
class SXAddl_SXCAutoSort_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCAutoSort_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCCache_SXDEnd : public SXAddl
|
||||
{
|
||||
class SXAddl_SXCField_SXDId : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCField_SXDId)
|
||||
public:
|
||||
virtual void readFields(CFRecord& record);
|
||||
virtual BaseObjectPtr clone();
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCField_SXDId(){}
|
||||
~SXAddl_SXCField_SXDId(){}
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
XLUnicodeStringSegmentedSXADDL stName;
|
||||
};
|
||||
class SXAddl_SXCField_SXDEnd : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCField_SXDEnd)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCField_SXDEnd(){}
|
||||
~SXAddl_SXCField_SXDEnd(){}
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
};
|
||||
class SXAddl_SXCField_SXDVer10Info : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCField_SXDVer10Info)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCField_SXDVer10Info(){}
|
||||
~SXAddl_SXCField_SXDVer10Info(){}
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
bool fHideDD;
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDId : public SXAddl
|
||||
{
|
||||
class SXAddl_SXCView_SXDId : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCView_SXDId)
|
||||
public:
|
||||
virtual void readFields(CFRecord& record);
|
||||
virtual BaseObjectPtr clone();
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCView_SXDId(){}
|
||||
~SXAddl_SXCView_SXDId(){}
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
XLUnicodeStringSegmentedSXADDL stName;
|
||||
};
|
||||
class SXAddl_SXCView_SXDEnd : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCView_SXDEnd)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCView_SXDEnd(){}
|
||||
~SXAddl_SXCView_SXDEnd(){}
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
};
|
||||
class SXAddl_SXCView_SXDTableStyleClient : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCView_SXDTableStyleClient)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCView_SXDTableStyleClient(){}
|
||||
~SXAddl_SXCView_SXDTableStyleClient(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
bool fLastColumn;
|
||||
bool fRowStrips;
|
||||
bool fColumnStrips;
|
||||
bool fRowHeaders;
|
||||
bool fColumnHeaders;
|
||||
bool fDefaultStyle;
|
||||
|
||||
LPWideString stName;
|
||||
};
|
||||
class SXAddl_SXCAutoSort_SXDEnd : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCAutoSort_SXDEnd)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCAutoSort_SXDEnd(){}
|
||||
~SXAddl_SXCAutoSort_SXDEnd(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
};
|
||||
class SXAddl_SXCAutoSort_SXDId : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCAutoSort_SXDId)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCAutoSort_SXDId(){}
|
||||
~SXAddl_SXCAutoSort_SXDId(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
bool fAscendSort;
|
||||
};
|
||||
class SXAddl_SXCCache_SXDEnd : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCache_SXDEnd)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCache_SXDEnd(){}
|
||||
~SXAddl_SXCCache_SXDEnd(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
SXAddl_SXCCache_SXDEnd(CFRecord& record);
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDId : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCache_SXDId)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCache_SXDId(){}
|
||||
~SXAddl_SXCCache_SXDId(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
_UINT32 idCache;
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDInfo12 : public SXAddl
|
||||
{
|
||||
class SXAddl_SXCCache_SXDInfo12 : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCache_SXDInfo12)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
virtual void readFields(CFRecord& record);
|
||||
virtual BaseObjectPtr clone();
|
||||
SXAddl_SXCCache_SXDInfo12(){}
|
||||
~SXAddl_SXCCache_SXDInfo12(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
bool fSheetData;
|
||||
bool fSrvSupportAttribDrill;
|
||||
bool fSrvSupportSubQuery;
|
||||
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDInvRefreshReal : public SXAddl
|
||||
{
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDVer10Info : public SXAddl
|
||||
{
|
||||
class SXAddl_SXCCache_SXDInvRefreshReal : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCache_SXDInvRefreshReal)
|
||||
public:
|
||||
|
||||
virtual void readFields(CFRecord& record);
|
||||
virtual BaseObjectPtr clone();
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCache_SXDInvRefreshReal(){}
|
||||
~SXAddl_SXCCache_SXDInvRefreshReal(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
bool fEnableRefresh;
|
||||
bool fInvalid;
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDVer10Info : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCache_SXDVer10Info)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCache_SXDVer10Info(){}
|
||||
~SXAddl_SXCCache_SXDVer10Info(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
_INT32 citmGhostMax;
|
||||
unsigned char bVerCacheLastRefresh;
|
||||
@ -138,155 +318,292 @@ public:
|
||||
unsigned char numDateCopy[8];
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDVerSXMacro : public SXAddl
|
||||
{
|
||||
class SXAddl_SXCCache_SXDVerSXMacro : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCache_SXDVerSXMacro)
|
||||
public:
|
||||
virtual void readFields(CFRecord& record);
|
||||
virtual BaseObjectPtr clone();
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCache_SXDVerSXMacro(){}
|
||||
~SXAddl_SXCCache_SXDVerSXMacro(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
unsigned char dwVer;
|
||||
};
|
||||
|
||||
class SXAddl_SXCCache_SXDVerUpdInv : public SXAddl
|
||||
{
|
||||
class SXAddl_SXCCache_SXDVerUpdInv : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCache_SXDVerUpdInv)
|
||||
public:
|
||||
virtual void readFields(CFRecord& record);
|
||||
virtual BaseObjectPtr clone();
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCache_SXDVerUpdInv(){}
|
||||
~SXAddl_SXCCache_SXDVerUpdInv(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
unsigned char dwVersionInvalidates;
|
||||
};
|
||||
|
||||
class SXAddl_SXCCacheField_SXDCaption : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDIfdbMempropMap: public SXAddl
|
||||
{
|
||||
class SXAddl_SXCCacheField_SXDCaption : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCacheField_SXDCaption)
|
||||
public:
|
||||
virtual void readFields(CFRecord& record);
|
||||
virtual BaseObjectPtr clone();
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCacheField_SXDCaption(){}
|
||||
~SXAddl_SXCCacheField_SXDCaption(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
XLUnicodeStringSegmentedSXADDL stCaption;
|
||||
};
|
||||
class SXAddl_SXCCacheField_SXDEnd : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCacheField_SXDEnd)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCacheField_SXDEnd(){}
|
||||
~SXAddl_SXCCacheField_SXDEnd(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
};
|
||||
|
||||
class SXAddl_SXCCacheField_SXDId : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCacheField_SXDId)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCacheField_SXDId(){}
|
||||
~SXAddl_SXCCacheField_SXDId(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
XLUnicodeStringSegmentedSXADDL stSourceName;
|
||||
};
|
||||
|
||||
class SXAddl_SXCCacheField_SXDIfdbMempropMap : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCacheField_SXDIfdbMempropMap)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCacheField_SXDIfdbMempropMap(){}
|
||||
~SXAddl_SXCCacheField_SXDIfdbMempropMap(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
std::vector<unsigned short> rgMap;
|
||||
};
|
||||
class SXAddl_SXCCacheField_SXDIfdbMpMapCount: public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDProperty : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDPropName : public SXAddl {};
|
||||
class SXAddl_SXCCacheField_SXDSxrmitmCount : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCCacheItem_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCCacheItem_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCCacheItem_SXDItmMpMapCount : public SXAddl {};
|
||||
class SXAddl_SXCCacheItem_SXDItmMpropMap : public SXAddl {};
|
||||
class SXAddl_SXCCacheItem_SXDSxrmitmDisp : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCField12_SXDAutoshow : public SXAddl {};
|
||||
class SXAddl_SXCField12_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCField12_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCField12_SXDISXTH : public SXAddl {};
|
||||
class SXAddl_SXCField12_SXDMemberCaption : public SXAddl {};
|
||||
class SXAddl_SXCField12_SXDVer12Info : public SXAddl {};
|
||||
class SXAddl_SXCField12_SXDVerUpdInv : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCField_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCField_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCField_SXDVer10Info : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCGroup_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCGroup_SXDGrpInfo : public SXAddl {};
|
||||
class SXAddl_SXCGroup_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCGroup_SXDMember : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCGrpLevel_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCGrpLevel_SXDGrpLevelInfo : public SXAddl {};
|
||||
class SXAddl_SXCGrpLevel_SXDId : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCHierarchy_SXDDisplayFolder : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDFilterMember : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDFilterMember12 : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDIconSet : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDInfo12 : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDKPIGoal : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDKPIStatus : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDKPITime : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDKPITrend : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDKPIValue : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDKPIWeight : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDMeasureGrp : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDParentKPI : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDProperty : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDSXSetParentUnique : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDUserCaption : public SXAddl {};
|
||||
class SXAddl_SXCHierarchy_SXDVerUpdInv : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCQsi_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCQsi_SXDId : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCQuery_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCQuery_SXDReconnCond : public SXAddl {};
|
||||
class SXAddl_SXCQuery_SXDSrcConnFile : public SXAddl {};
|
||||
class SXAddl_SXCQuery_SXDSrcDataFile : public SXAddl {};
|
||||
class SXAddl_SXCQuery_SXDXMLSource : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCSXCondFmt_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCSXCondFmt_SXDSXCondFmt : public SXAddl {};
|
||||
class SXAddl_SXCSXCondFmts_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCSXCondFmts_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCSXDH_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCSXDH_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCSXDH_SXDSxdh : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCSXfilt_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCSXfilt_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCSXfilt_SXDSXfilt : public SXAddl {};
|
||||
class SXAddl_SXCSXfilt_SXDSXItm : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCSXFilter12_SXDCaption : public SXAddl {};
|
||||
class SXAddl_SXCSXFilter12_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCSXFilter12_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCSXFilter12_SXDSXFilter : public SXAddl {};
|
||||
class SXAddl_SXCSXFilter12_SXDSXFilterDesc : public SXAddl {};
|
||||
class SXAddl_SXCSXFilter12_SXDSXFilterValue1: public SXAddl {};
|
||||
class SXAddl_SXCSXFilter12_SXDSXFilterValue2: public SXAddl {};
|
||||
class SXAddl_SXCSXFilter12_SXDXlsFilter : public SXAddl {};
|
||||
class SXAddl_SXCSXFilter12_SXDXlsFilterValue1: public SXAddl {};
|
||||
class SXAddl_SXCSXFilter12_SXDXlsFilterValue2: public SXAddl {};
|
||||
class SXAddl_SXCSXFilters12_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCSXFilters12_SXDId : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCSXMg_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCSXMg_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCSXMg_SXDUserCaption : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCSXMgs_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCSXMgs_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCSXMgs_SXDMGrpSXDHMap : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCSXrule_SXDEnd : public SXAddl {};
|
||||
class SXAddl_SXCSXrule_SXDId : public SXAddl {};
|
||||
class SXAddl_SXCSXrule_SXDSXrule : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCView_SXDCalcMember : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDCalcMemString : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDCompactColHdr : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDCompactRwHdr : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDEnd : public SXAddl {};
|
||||
|
||||
class SXAddl_SXCView_SXDId : public SXAddl
|
||||
{
|
||||
class SXAddl_SXCCacheField_SXDIfdbMpMapCount : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCacheField_SXDIfdbMpMapCount)
|
||||
public:
|
||||
|
||||
virtual void readFields(CFRecord& record);
|
||||
virtual BaseObjectPtr clone();
|
||||
BiffStructurePtr clone();
|
||||
|
||||
XLUnicodeStringSegmentedSXADDL stName;
|
||||
SXAddl_SXCCacheField_SXDIfdbMpMapCount(){}
|
||||
~SXAddl_SXCCacheField_SXDIfdbMpMapCount(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
_UINT32 ifdbMemProp;
|
||||
};
|
||||
class SXAddl_SXCCacheField_SXDProperty : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCacheField_SXDProperty)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCacheField_SXDProperty(){}
|
||||
~SXAddl_SXCCacheField_SXDProperty(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
_UINT32 ihdb;
|
||||
};
|
||||
class SXAddl_SXCCacheField_SXDPropName : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCacheField_SXDPropName)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCacheField_SXDPropName(){}
|
||||
~SXAddl_SXCCacheField_SXDPropName(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
XLUnicodeStringSegmentedSXADDL stPropName;
|
||||
};
|
||||
class SXAddl_SXCCacheField_SXDSxrmitmCount : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCacheField_SXDSxrmitmCount)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCacheField_SXDSxrmitmCount(){}
|
||||
~SXAddl_SXCCacheField_SXDSxrmitmCount(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
_UINT32 citm;
|
||||
};
|
||||
|
||||
class SXAddl_SXCView_SXDSXPIIvmb : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDTableStyleClient : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDVer10Info : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDVer12Info : public SXAddl {};
|
||||
class SXAddl_SXCView_SXDVerUpdInv : public SXAddl {};
|
||||
class SXAddl_SXCCacheItem_SXDEnd : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCacheItem_SXDEnd)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCacheItem_SXDEnd(){}
|
||||
~SXAddl_SXCCacheItem_SXDEnd(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
};
|
||||
|
||||
class SXAddl_SXCCacheItem_SXDId : public BiffStructure
|
||||
{
|
||||
BASE_STRUCTURE_DEFINE_CLASS_NAME(SXAddl_SXCCacheItem_SXDId)
|
||||
public:
|
||||
BiffStructurePtr clone();
|
||||
|
||||
SXAddl_SXCCacheItem_SXDId(){}
|
||||
~SXAddl_SXCCacheItem_SXDId(){}
|
||||
|
||||
virtual void load(CFRecord& record);
|
||||
|
||||
static const ElementType type = typeSXAddl;
|
||||
|
||||
_UINT32 dwItem;
|
||||
};
|
||||
|
||||
//class SXAddl_SXCCacheItem_SXDItmMpMapCount : public SXAddl {};
|
||||
//class SXAddl_SXCCacheItem_SXDItmMpropMap : public SXAddl {};
|
||||
//class SXAddl_SXCCacheItem_SXDSxrmitmDisp : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCField12_SXDAutoshow : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDISXTH : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDMemberCaption : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDVer12Info : public SXAddl {};
|
||||
//class SXAddl_SXCField12_SXDVerUpdInv : public SXAddl {};
|
||||
//
|
||||
//
|
||||
//class SXAddl_SXCGroup_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCGroup_SXDGrpInfo : public SXAddl {};
|
||||
//class SXAddl_SXCGroup_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCGroup_SXDMember : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCGrpLevel_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCGrpLevel_SXDGrpLevelInfo : public SXAddl {};
|
||||
//class SXAddl_SXCGrpLevel_SXDId : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCHierarchy_SXDDisplayFolder : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDFilterMember : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDFilterMember12 : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDIconSet : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDInfo12 : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPIGoal : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPIStatus : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPITime : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPITrend : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPIValue : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDKPIWeight : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDMeasureGrp : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDParentKPI : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDProperty : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDSXSetParentUnique : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDUserCaption : public SXAddl {};
|
||||
//class SXAddl_SXCHierarchy_SXDVerUpdInv : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCQsi_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCQsi_SXDId : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCQuery_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCQuery_SXDReconnCond : public SXAddl {};
|
||||
//class SXAddl_SXCQuery_SXDSrcConnFile : public SXAddl {};
|
||||
//class SXAddl_SXCQuery_SXDSrcDataFile : public SXAddl {};
|
||||
//class SXAddl_SXCQuery_SXDXMLSource : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXCondFmt_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXCondFmt_SXDSXCondFmt : public SXAddl {};
|
||||
//class SXAddl_SXCSXCondFmts_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXCondFmts_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXDH_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXDH_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXDH_SXDSxdh : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXfilt_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXfilt_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXfilt_SXDSXfilt : public SXAddl {};
|
||||
//class SXAddl_SXCSXfilt_SXDSXItm : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXFilter12_SXDCaption : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDSXFilter : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDSXFilterDesc : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDSXFilterValue1: public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDSXFilterValue2: public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDXlsFilter : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDXlsFilterValue1: public SXAddl {};
|
||||
//class SXAddl_SXCSXFilter12_SXDXlsFilterValue2: public SXAddl {};
|
||||
//class SXAddl_SXCSXFilters12_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXFilters12_SXDId : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXMg_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXMg_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXMg_SXDUserCaption : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXMgs_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXMgs_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXMgs_SXDMGrpSXDHMap : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCSXrule_SXDEnd : public SXAddl {};
|
||||
//class SXAddl_SXCSXrule_SXDId : public SXAddl {};
|
||||
//class SXAddl_SXCSXrule_SXDSXrule : public SXAddl {};
|
||||
//
|
||||
//class SXAddl_SXCView_SXDCalcMember : public SXAddl {};
|
||||
//class SXAddl_SXCView_SXDCalcMemString : public SXAddl {};
|
||||
//class SXAddl_SXCView_SXDCompactColHdr : public SXAddl {};
|
||||
//class SXAddl_SXCView_SXDCompactRwHdr : public SXAddl {};
|
||||
|
||||
//class SXAddl_SXCView_SXDSXPIIvmb
|
||||
//{
|
||||
// SXAddl_SXCView_SXDSXPIIvmb(CFRecord& record);
|
||||
//};
|
||||
|
||||
//class SXAddl_SXCView_SXDVer10Info : public SXAddl {};
|
||||
//class SXAddl_SXCView_SXDVer12Info : public SXAddl {};
|
||||
//class SXAddl_SXCView_SXDVerUpdInv : public SXAddl {};
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
|
||||
@ -46,7 +46,10 @@ BiffStructurePtr XFExtGradient::clone()
|
||||
void XFExtGradient::load(CFRecord& record)
|
||||
{
|
||||
record >> gradient >> cGradStops;
|
||||
for(size_t i = 0; i < cGradStops; ++i)
|
||||
|
||||
if (cGradStops > 256) cGradStops = 256;
|
||||
|
||||
for(size_t i = 0; !record.isEOF() && i < cGradStops; ++i)
|
||||
{
|
||||
GradStop grad_stop;
|
||||
record >> grad_stop;
|
||||
|
||||
@ -61,8 +61,10 @@ void XFExtNoFRT::load(CFRecord& record)
|
||||
unsigned short cexts;
|
||||
record >> cexts;
|
||||
|
||||
for(unsigned short i = 0; !record.isEOF() && i < cexts; ++i)
|
||||
for(unsigned short i = 0; i < cexts; ++i)
|
||||
{
|
||||
if (record.checkFitReadSafe(4) == false)
|
||||
break;
|
||||
ExtProp prop;
|
||||
record >> prop;
|
||||
rgExt.push_back(prop);
|
||||
|
||||
@ -249,17 +249,12 @@ int FDB::serialize(std::wostream & strm, bool bSql)
|
||||
// CP_XML_ATTR(L"containsString", 0);
|
||||
// }
|
||||
//}
|
||||
if (bInteger)
|
||||
{
|
||||
if (bNumber) bInteger = false;
|
||||
else bNumber = true;
|
||||
}
|
||||
|
||||
if ((bDate & bNumber) || (bNumber & bString))
|
||||
{
|
||||
CP_XML_ATTR(L"containsSemiMixedTypes", 1);
|
||||
}
|
||||
else if ( bDate & bString)
|
||||
else if (bDate & bString)
|
||||
{
|
||||
CP_XML_ATTR(L"containsMixedTypes", 1);
|
||||
}
|
||||
@ -277,9 +272,22 @@ int FDB::serialize(std::wostream & strm, bool bSql)
|
||||
CP_XML_ATTR(L"containsString", 0);
|
||||
}
|
||||
if (bEmpty) CP_XML_ATTR(L"containsBlank", 1);
|
||||
|
||||
if (bNumber) CP_XML_ATTR(L"containsNumber", 1);
|
||||
if (bInteger) CP_XML_ATTR(L"containsInteger", 1);
|
||||
|
||||
if (bInteger && !bDate)
|
||||
{
|
||||
if (bString)
|
||||
{
|
||||
CP_XML_ATTR(L"containsInteger", 1);
|
||||
}
|
||||
else if (!bNumber)
|
||||
{
|
||||
CP_XML_ATTR(L"containsNumber", 1);
|
||||
CP_XML_ATTR(L"containsInteger", 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (fdb->fnumMinMaxValid)
|
||||
{
|
||||
|
||||
@ -69,109 +69,122 @@ PIVOTADDL = SXAddl_SXCView_SXDId *Continue_SxaddlSxString
|
||||
[SXADDLSXFILTERS12] *SXAddl_SXCView_SXDVerUpdInv *SXAddl_SXCView_SXDSXPIIvmb
|
||||
[SXAddl_SXCView_SXDVerUpdInv] SXAddl_SXCView_SXDEnd
|
||||
*/
|
||||
|
||||
const bool PIVOTADDL::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCView_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
m_SXAddl_SXCView_SXDId = elements_.back();
|
||||
elements_.pop_back();
|
||||
|
||||
int count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
|
||||
if (proc.optional<SXAddl_SXCView_SXDVer10Info>())
|
||||
{
|
||||
m_SXAddl_SXCView_SXDVer10Info = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<SXAddl_SXCView_SXDVer12Info>())
|
||||
{
|
||||
m_SXAddl_SXCView_SXDVer12Info = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
count = proc.repeated<SXADDLCALCMEMBER>(0, 0);
|
||||
while(count > 0)
|
||||
{
|
||||
m_arSXADDLCALCMEMBER.push_back(elements_.front());
|
||||
elements_.pop_front(); count--;
|
||||
}
|
||||
int count = proc.repeated<SXAddl>(0, 0);
|
||||
|
||||
count = proc.repeated<SXADDLHIERARCHY>(0, 0);
|
||||
while(count > 0)
|
||||
for (std::list<BaseObjectPtr>::iterator it = elements_.begin(); it != elements_.end(); it++)
|
||||
{
|
||||
m_arSXADDLHIERARCHY.push_back(elements_.front());
|
||||
elements_.pop_front(); count--;
|
||||
}
|
||||
count = proc.repeated<SXADDLFIELD>(0, 0);
|
||||
while(count > 0)
|
||||
{
|
||||
m_arSXADDLFIELD.push_back(elements_.front());
|
||||
elements_.pop_front(); count--;
|
||||
SXAddl* addl = dynamic_cast<SXAddl*>(it->get());
|
||||
if (!addl) continue;
|
||||
SXAddl_SXCView_SXDTableStyleClient* p = dynamic_cast<SXAddl_SXCView_SXDTableStyleClient*>(addl->content.get());
|
||||
if (p)
|
||||
{
|
||||
m_SXAddl_SXCView_SXDTableStyleClient = addl->content;
|
||||
}
|
||||
}
|
||||
//if(!proc.mandatory<SXAddl_SXCView_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//m_SXAddl_SXCView_SXDId = elements_.back();
|
||||
//elements_.pop_back();
|
||||
//
|
||||
//int count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//
|
||||
//if (proc.optional<SXAddl_SXCView_SXDVer10Info>())
|
||||
//{
|
||||
// m_SXAddl_SXCView_SXDVer10Info = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXAddl_SXCView_SXDVer12Info>())
|
||||
//{
|
||||
// m_SXAddl_SXCView_SXDVer12Info = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//count = proc.repeated<SXADDLCALCMEMBER>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXADDLCALCMEMBER.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
|
||||
count = proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
|
||||
if (proc.optional<SXAddl_SXCView_SXDTableStyleClient>())
|
||||
{
|
||||
m_SXAddl_SXCView_SXDTableStyleClient = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
//count = proc.repeated<SXADDLHIERARCHY>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXADDLHIERARCHY.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
//count = proc.repeated<SXADDLFIELD>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXADDLFIELD.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
|
||||
if(proc.optional<SXAddl_SXCView_SXDCompactRwHdr>())
|
||||
{
|
||||
m_SXAddl_SXCView_SXDCompactRwHdr = elements_.back();
|
||||
elements_.pop_back();
|
||||
//count = proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//
|
||||
//if (proc.optional<SXAddl_SXCView_SXDTableStyleClient>())
|
||||
//{
|
||||
// m_SXAddl_SXCView_SXDTableStyleClient = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
|
||||
count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCView_SXDCompactColHdr>())
|
||||
{
|
||||
m_SXAddl_SXCView_SXDCompactColHdr = elements_.back();
|
||||
elements_.pop_back();
|
||||
//if(proc.optional<SXAddl_SXCView_SXDCompactRwHdr>())
|
||||
//{
|
||||
// m_SXAddl_SXCView_SXDCompactRwHdr = elements_.back();
|
||||
// elements_.pop_back();
|
||||
|
||||
count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
// count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCView_SXDCompactColHdr>())
|
||||
//{
|
||||
// m_SXAddl_SXCView_SXDCompactColHdr = elements_.back();
|
||||
// elements_.pop_back();
|
||||
|
||||
if (proc.optional<SXAddl_SXCView_SXDVerUpdInv>())
|
||||
{
|
||||
m_arSXAddl_SXCView_SXDVerUpdInv.push_back(elements_.back());
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<SXADDLCONDFMTS>())
|
||||
{
|
||||
m_SXADDLCONDFMTS = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<SXADDLSXFILTERS12>())
|
||||
{
|
||||
m_SXAddl_SXADDLSXFILTERS12 = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
count = proc.repeated<SXAddl_SXCView_SXDVerUpdInv>(0, 0);
|
||||
while(count > 0)
|
||||
{
|
||||
m_arSXAddl_SXCView_SXDVerUpdInv.push_back(elements_.front());
|
||||
elements_.pop_front(); count--;
|
||||
}
|
||||
// count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
|
||||
count = proc.repeated<SXAddl_SXCView_SXDSXPIIvmb>(0, 0);
|
||||
while(count > 0)
|
||||
{
|
||||
m_arSXAddl_SXCView_SXDSXPIIvmb.push_back(elements_.front());
|
||||
elements_.pop_front(); count--;
|
||||
}
|
||||
//if (proc.optional<SXAddl_SXCView_SXDVerUpdInv>())
|
||||
//{
|
||||
// m_arSXAddl_SXCView_SXDVerUpdInv.push_back(elements_.back());
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXADDLCONDFMTS>())
|
||||
//{
|
||||
// m_SXADDLCONDFMTS = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXADDLSXFILTERS12>())
|
||||
//{
|
||||
// m_SXAddl_SXADDLSXFILTERS12 = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//count = proc.repeated<SXAddl_SXCView_SXDVerUpdInv>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXAddl_SXCView_SXDVerUpdInv.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
|
||||
if (proc.optional<SXAddl_SXCView_SXDVerUpdInv>())
|
||||
{
|
||||
m_arSXAddl_SXCView_SXDVerUpdInv.push_back(elements_.front());
|
||||
elements_.pop_front();
|
||||
}
|
||||
//count = proc.repeated<SXAddl_SXCView_SXDSXPIIvmb>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXAddl_SXCView_SXDSXPIIvmb.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
|
||||
if (proc.optional<SXAddl_SXCView_SXDEnd>())
|
||||
{
|
||||
elements_.pop_back();
|
||||
}
|
||||
//if (proc.optional<SXAddl_SXCView_SXDVerUpdInv>())
|
||||
//{
|
||||
// m_arSXAddl_SXCView_SXDVerUpdInv.push_back(elements_.front());
|
||||
// elements_.pop_front();
|
||||
//}
|
||||
|
||||
//if (proc.optional<SXAddl_SXCView_SXDEnd>())
|
||||
//{
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -49,21 +49,21 @@ public:
|
||||
|
||||
static const ElementType type = typePIVOTADDL;
|
||||
|
||||
BaseObjectPtr m_SXAddl_SXCView_SXDId;
|
||||
BaseObjectPtr m_SXAddl_SXCView_SXDVer10Info;
|
||||
BaseObjectPtr m_SXAddl_SXCView_SXDVer12Info;
|
||||
BiffStructurePtr m_SXAddl_SXCView_SXDId;
|
||||
BiffStructurePtr m_SXAddl_SXCView_SXDVer10Info;
|
||||
BiffStructurePtr m_SXAddl_SXCView_SXDVer12Info;
|
||||
|
||||
BaseObjectPtr m_SXAddl_SXCView_SXDCompactRwHdr;
|
||||
BaseObjectPtr m_SXAddl_SXCView_SXDCompactColHdr;
|
||||
BaseObjectPtr m_SXAddl_SXADDLSXFILTERS12;
|
||||
BaseObjectPtr m_SXADDLCONDFMTS;
|
||||
BaseObjectPtr m_SXAddl_SXCView_SXDTableStyleClient;
|
||||
BiffStructurePtr m_SXAddl_SXCView_SXDCompactRwHdr;
|
||||
BiffStructurePtr m_SXAddl_SXCView_SXDCompactColHdr;
|
||||
BiffStructurePtr m_SXAddl_SXADDLSXFILTERS12;
|
||||
BiffStructurePtr m_SXADDLCONDFMTS;
|
||||
BiffStructurePtr m_SXAddl_SXCView_SXDTableStyleClient;
|
||||
|
||||
std::vector<BaseObjectPtr> m_arSXAddl_SXCView_SXDVerUpdInv;
|
||||
std::vector<BaseObjectPtr> m_arSXAddl_SXCView_SXDSXPIIvmb;
|
||||
std::vector<BaseObjectPtr> m_arSXADDLFIELD;
|
||||
std::vector<BaseObjectPtr> m_arSXADDLHIERARCHY;
|
||||
std::vector<BaseObjectPtr> m_arSXADDLCALCMEMBER;
|
||||
std::vector<BiffStructurePtr> m_arSXAddl_SXCView_SXDVerUpdInv;
|
||||
std::vector<BiffStructurePtr> m_arSXAddl_SXCView_SXDSXPIIvmb;
|
||||
std::vector<BiffStructurePtr> m_arSXADDLFIELD;
|
||||
std::vector<BiffStructurePtr> m_arSXADDLHIERARCHY;
|
||||
std::vector<BiffStructurePtr> m_arSXADDLCALCMEMBER;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -31,8 +31,8 @@
|
||||
*/
|
||||
|
||||
#include "PIVOTFRT.h"
|
||||
#include <Logic/Biff_unions/PIVOTFRT9.h>
|
||||
#include <Logic/Biff_unions/PIVOTADDL.h>
|
||||
#include "PIVOTFRT9.h"
|
||||
#include "PIVOTADDL.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
|
||||
@ -38,9 +38,11 @@
|
||||
#include "PIVOTPI.h"
|
||||
#include "PIVOTLI.h"
|
||||
#include "PIVOTEX.h"
|
||||
#include "PIVOTADDL.h"
|
||||
|
||||
#include "../Biff_records/SXDI.h"
|
||||
#include "../Biff_records/SxView.h"
|
||||
#include "../Biff_records/SXAddl.h"
|
||||
|
||||
namespace XLS
|
||||
{
|
||||
@ -96,6 +98,8 @@ int PIVOTVIEW::serialize(std::wostream & strm)
|
||||
|
||||
PIVOTFRT* frt = dynamic_cast<PIVOTFRT*>(m_PIVOTFRT.get());
|
||||
|
||||
PIVOTADDL* addls = frt ? dynamic_cast<PIVOTADDL*>(frt->m_PIVOTADDL.get()) : NULL;
|
||||
|
||||
indexCache = view->iCache;
|
||||
|
||||
CP_XML_WRITER(strm)
|
||||
@ -204,14 +208,21 @@ int PIVOTVIEW::serialize(std::wostream & strm)
|
||||
}
|
||||
}
|
||||
}
|
||||
//CP_XML_NODE(L"pivotTableStyleInfo")
|
||||
//{
|
||||
// CP_XML_ATTR(L"showRowHeaders", 1);
|
||||
// CP_XML_ATTR(L"showColHeaders", 1);
|
||||
// CP_XML_ATTR(L"showRowStripes", 0);
|
||||
// CP_XML_ATTR(L"showColStripes", 0);
|
||||
// CP_XML_ATTR(L"showLastColumn", 1);
|
||||
//}
|
||||
|
||||
|
||||
if ((addls) && (addls->m_SXAddl_SXCView_SXDTableStyleClient))
|
||||
{
|
||||
SXAddl_SXCView_SXDTableStyleClient* table_style = dynamic_cast<SXAddl_SXCView_SXDTableStyleClient*>(addls->m_SXAddl_SXCView_SXDTableStyleClient.get());
|
||||
CP_XML_NODE(L"pivotTableStyleInfo")
|
||||
{
|
||||
CP_XML_ATTR(L"name", table_style->stName.value());
|
||||
CP_XML_ATTR(L"showRowHeaders", table_style->fRowHeaders);
|
||||
CP_XML_ATTR(L"showColHeaders", table_style->fColumnHeaders);
|
||||
CP_XML_ATTR(L"showRowStripes", table_style->fRowStrips);
|
||||
CP_XML_ATTR(L"showColStripes", table_style->fColumnStrips);
|
||||
CP_XML_ATTR(L"showLastColumn", table_style->fLastColumn);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -57,12 +57,12 @@ BaseObjectPtr SXADDLAUTOSORT::clone()
|
||||
// SXADDLAUTOSORT = SXAddl_SXCAutoSort_SXDId SXADDLSXRULE SXAddl_SXCAutoSort_SXDEnd
|
||||
const bool SXADDLAUTOSORT::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCAutoSort_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.mandatory<SXADDLSXRULE>();
|
||||
proc.mandatory<SXAddl_SXCAutoSort_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCAutoSort_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXADDLSXRULE>();
|
||||
//proc.mandatory<SXAddl_SXCAutoSort_SXDEnd>();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -60,39 +60,39 @@ BaseObjectPtr SXADDLCACHE::clone()
|
||||
//[SXADDLCACHE12] [SXADDLDBQUERY] *UNKNOWNFRT SXAddl_SXCCache_SXDEnd
|
||||
const bool SXADDLCACHE::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCache_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
m_SXCCache_SXDId = elements_.back();
|
||||
elements_.pop_back();
|
||||
//if(!proc.mandatory<SXAddl_SXCCache_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//m_SXCCache_SXDId = elements_.back();
|
||||
//elements_.pop_back();
|
||||
|
||||
if (proc.optional<SXAddl_SXCCache_SXDVer10Info>())
|
||||
{
|
||||
m_SXDVer10Info = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<SXAddl_SXCCache_SXDVerSXMacro>())
|
||||
{
|
||||
m_SXDVerSXMacro = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<SXADDLCACHE12>())
|
||||
{
|
||||
m_SXADDLCACHE12 = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<SXADDLDBQUERY>())
|
||||
{
|
||||
m_SXADDLDBQUERY = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
int count = proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDVer10Info>())
|
||||
//{
|
||||
// m_SXDVer10Info = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDVerSXMacro>())
|
||||
//{
|
||||
// m_SXDVerSXMacro = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXADDLCACHE12>())
|
||||
//{
|
||||
// m_SXADDLCACHE12 = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXADDLDBQUERY>())
|
||||
//{
|
||||
// m_SXADDLDBQUERY = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//int count = proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
|
||||
if (proc.optional<SXAddl_SXCCache_SXDEnd>())
|
||||
{
|
||||
elements_.pop_back();
|
||||
}
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDEnd>())
|
||||
//{
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -60,45 +60,45 @@ BaseObjectPtr SXADDLCACHE12::clone()
|
||||
// *SXADDLCACHEFIELD [SXADDLSXDH] [SXADDLSXMGS] SXAddl_SXCCache_SXDVerUpdInv
|
||||
const bool SXADDLCACHE12::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCache_SXDVerUpdInv>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
m_SXAddl_SXCCache_SXDVerUpdInv = elements_.back();
|
||||
elements_.pop_back();
|
||||
//if(!proc.mandatory<SXAddl_SXCCache_SXDVerUpdInv>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//m_SXAddl_SXCCache_SXDVerUpdInv = elements_.back();
|
||||
//elements_.pop_back();
|
||||
|
||||
if (proc.optional<SXAddl_SXCCache_SXDInfo12>())
|
||||
{
|
||||
m_SXAddl_SXCCache_SXDInfo12 = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<SXAddl_SXCCache_SXDInvRefreshReal>())
|
||||
{
|
||||
m_SXAddl_SXCCache_SXDInvRefreshReal = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
|
||||
int count = proc.repeated<SXADDLCACHEFIELD>(0, 0);
|
||||
while(count > 0)
|
||||
{
|
||||
m_arSXADDLCACHEFIELD.push_back(elements_.front());
|
||||
elements_.pop_front(); count--;
|
||||
}
|
||||
if (proc.optional<SXADDLSXDH>())
|
||||
{
|
||||
m_SXADDLSXDH = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<SXADDLSXMGS>())
|
||||
{
|
||||
m_SXADDLSXMGS = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
if (proc.optional<SXAddl_SXCCache_SXDVerUpdInv>())
|
||||
{
|
||||
m_SXAddl_SXCCache_SXDVerUpdInvS = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDInfo12>())
|
||||
//{
|
||||
// m_SXAddl_SXCCache_SXDInfo12 = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDInvRefreshReal>())
|
||||
//{
|
||||
// m_SXAddl_SXCCache_SXDInvRefreshReal = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//
|
||||
//int count = proc.repeated<SXADDLCACHEFIELD>(0, 0);
|
||||
//while(count > 0)
|
||||
//{
|
||||
// m_arSXADDLCACHEFIELD.push_back(elements_.front());
|
||||
// elements_.pop_front(); count--;
|
||||
//}
|
||||
//if (proc.optional<SXADDLSXDH>())
|
||||
//{
|
||||
// m_SXADDLSXDH = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXADDLSXMGS>())
|
||||
//{
|
||||
// m_SXADDLSXMGS = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
//if (proc.optional<SXAddl_SXCCache_SXDVerUpdInv>())
|
||||
//{
|
||||
// m_SXAddl_SXCCache_SXDVerUpdInvS = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -59,11 +59,11 @@ public:
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCacheField_SXDCaption>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDCaption>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
return true;
|
||||
};
|
||||
};
|
||||
@ -81,11 +81,11 @@ public:
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCacheField_SXDPropName>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDPropName>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
return true;
|
||||
};
|
||||
};
|
||||
@ -102,11 +102,11 @@ public:
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCacheField_SXDProperty>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.optional<Parenthesis_SXADDLCACHEFIELD_3>();
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDProperty>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.optional<Parenthesis_SXADDLCACHEFIELD_3>();
|
||||
return true;
|
||||
};
|
||||
};
|
||||
@ -123,11 +123,11 @@ public:
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCacheField_SXDIfdbMpMapCount>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.mandatory<SXAddl_SXCCacheField_SXDIfdbMempropMap>();
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDIfdbMpMapCount>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCCacheField_SXDIfdbMempropMap>();
|
||||
return true;
|
||||
};
|
||||
};
|
||||
@ -144,12 +144,12 @@ public:
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCacheField_SXDSxrmitmCount>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<SXADDLCACHEITEM>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCCacheItem_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDSxrmitmCount>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXADDLCACHEITEM>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCCacheItem_SXDEnd>();
|
||||
return true;
|
||||
};
|
||||
};
|
||||
@ -171,16 +171,16 @@ BaseObjectPtr SXADDLCACHEFIELD::clone()
|
||||
// SXAddl_SXCCacheField_SXDEnd
|
||||
const bool SXADDLCACHEFIELD::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCacheField_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
proc.optional<Parenthesis_SXADDLCACHEFIELD_1>();
|
||||
proc.optional<Parenthesis_SXADDLCACHEFIELD_2>();
|
||||
proc.optional<Parenthesis_SXADDLCACHEFIELD_4>();
|
||||
proc.optional<Parenthesis_SXADDLCACHEFIELD_5>();
|
||||
proc.optional<SXAddl_SXCCacheField_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheField_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.optional<Parenthesis_SXADDLCACHEFIELD_1>();
|
||||
//proc.optional<Parenthesis_SXADDLCACHEFIELD_2>();
|
||||
//proc.optional<Parenthesis_SXADDLCACHEFIELD_4>();
|
||||
//proc.optional<Parenthesis_SXADDLCACHEFIELD_5>();
|
||||
//proc.optional<SXAddl_SXCCacheField_SXDEnd>();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -58,11 +58,11 @@ public:
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCacheItem_SXDSxrmitmDisp>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheItem_SXDSxrmitmDisp>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
return true;
|
||||
};
|
||||
};
|
||||
@ -79,11 +79,11 @@ public:
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCacheItem_SXDItmMpMapCount>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.mandatory<SXAddl_SXCCacheItem_SXDItmMpropMap>();
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheItem_SXDItmMpMapCount>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCCacheItem_SXDItmMpropMap>();
|
||||
return true;
|
||||
};
|
||||
};
|
||||
@ -99,12 +99,12 @@ BaseObjectPtr SXADDLCACHEITEM::clone()
|
||||
// *(SXAddl_SXCCacheItem_SXDItmMpMapCount SXAddl_SXCCacheItem_SXDItmMpropMap)
|
||||
const bool SXADDLCACHEITEM::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCCacheItem_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.optional<Parenthesis_SXADDLCACHEITEM_1>();
|
||||
proc.repeated<Parenthesis_SXADDLCACHEITEM_2>(0, 0);
|
||||
//if(!proc.mandatory<SXAddl_SXCCacheItem_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.optional<Parenthesis_SXADDLCACHEITEM_1>();
|
||||
//proc.repeated<Parenthesis_SXADDLCACHEITEM_2>(0, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -56,14 +56,14 @@ BaseObjectPtr SXADDLCALCMEMBER::clone()
|
||||
// SXADDLCALCMEMBER = (SXAddl_SXCView_SXDCalcMember [SXAddl_SXCView_SXDCalcMemString *Continue_SxaddlSxString])
|
||||
const bool SXADDLCALCMEMBER::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCView_SXDCalcMember>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCView_SXDCalcMemString>())
|
||||
{
|
||||
int count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
//if(!proc.mandatory<SXAddl_SXCView_SXDCalcMember>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCView_SXDCalcMemString>())
|
||||
//{
|
||||
// int count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -57,12 +57,12 @@ BaseObjectPtr SXADDLCONDFMT::clone()
|
||||
// SXADDLCONDFMT = SXAddl_SXCSXCondFmt_SXDSXCondFmt *SXADDLSXRULE SXAddl_SXCSXCondFmt_SXDEnd
|
||||
const bool SXADDLCONDFMT::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCSXCondFmt_SXDSXCondFmt>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<SXADDLSXRULE>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCSXCondFmt_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCSXCondFmt_SXDSXCondFmt>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXADDLSXRULE>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXCondFmt_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -57,12 +57,12 @@ BaseObjectPtr SXADDLCONDFMTS::clone()
|
||||
// SXADDLCONDFMTS = SXAddl_SXCSXCondFmts_SXDId *SXADDLCONDFMT SXAddl_SXCSXCondFmts_SXDEnd
|
||||
const bool SXADDLCONDFMTS::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCSXCondFmts_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<SXADDLCONDFMT>(0, 0);
|
||||
proc.optional<SXAddl_SXCSXCondFmts_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCSXCondFmts_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXADDLCONDFMT>(0, 0);
|
||||
//proc.optional<SXAddl_SXCSXCondFmts_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -61,39 +61,39 @@ SXADDLDBQUERY = [SXAddl_SXCQuery_SXDXMLSource *Continue_SxaddlSxString]
|
||||
*/
|
||||
const bool SXADDLDBQUERY::loadContent(BinProcessor& proc)
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
if(proc.optional<SXAddl_SXCQuery_SXDXMLSource>())
|
||||
{
|
||||
m_XMLSource = elements_.back();
|
||||
elements_.pop_back();
|
||||
//int count = 0;
|
||||
//
|
||||
//if(proc.optional<SXAddl_SXCQuery_SXDXMLSource>())
|
||||
//{
|
||||
// m_XMLSource = elements_.back();
|
||||
// elements_.pop_back();
|
||||
|
||||
count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCQuery_SXDSrcDataFile>())
|
||||
{
|
||||
m_SrcDataFile = elements_.back();
|
||||
elements_.pop_back();
|
||||
// count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCQuery_SXDSrcDataFile>())
|
||||
//{
|
||||
// m_SrcDataFile = elements_.back();
|
||||
// elements_.pop_back();
|
||||
|
||||
count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCQuery_SXDSrcConnFile>())
|
||||
{
|
||||
m_SrcConnFile = elements_.back();
|
||||
elements_.pop_back();
|
||||
// count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCQuery_SXDSrcConnFile>())
|
||||
//{
|
||||
// m_SrcConnFile = elements_.back();
|
||||
// elements_.pop_back();
|
||||
|
||||
count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCQuery_SXDReconnCond>())
|
||||
{
|
||||
m_ReconnCond = elements_.back();
|
||||
elements_.pop_back();
|
||||
}
|
||||
// count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCQuery_SXDReconnCond>())
|
||||
//{
|
||||
// m_ReconnCond = elements_.back();
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
|
||||
if(proc.mandatory<SXAddl_SXCQuery_SXDEnd>())
|
||||
{
|
||||
elements_.pop_back();
|
||||
}
|
||||
//if(proc.mandatory<SXAddl_SXCQuery_SXDEnd>())
|
||||
//{
|
||||
// elements_.pop_back();
|
||||
//}
|
||||
|
||||
return m_XMLSource || m_SrcConnFile || m_SrcDataFile || m_ReconnCond;
|
||||
}
|
||||
|
||||
@ -60,22 +60,23 @@ SXADDLFIELD = [SXAddl_SXCField_SXDId *Continue_SxaddlSxString SXAddl_SXCField_SX
|
||||
*/
|
||||
const bool SXADDLFIELD::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(proc.optional<SXAddl_SXCField_SXDId>())
|
||||
{
|
||||
int count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
if (proc.mandatory<SXAddl_SXCField_SXDVer10Info>())
|
||||
{
|
||||
}
|
||||
if (proc.mandatory<SXAddl_SXCField_SXDEnd>())
|
||||
{
|
||||
}
|
||||
if (proc.optional<SXADDLFIELD12>())
|
||||
{
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//if(proc.optional<SXAddl_SXCField_SXDId>())
|
||||
//{
|
||||
// int count = proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
// if (proc.mandatory<SXAddl_SXCField_SXDVer10Info>())
|
||||
// {
|
||||
// }
|
||||
// if (proc.mandatory<SXAddl_SXCField_SXDEnd>())
|
||||
// {
|
||||
// }
|
||||
// if (proc.optional<SXADDLFIELD12>())
|
||||
// {
|
||||
// }
|
||||
// return true;
|
||||
//}
|
||||
|
||||
return proc.optional<SXADDLFIELD12>();
|
||||
//return proc.optional<SXADDLFIELD12>();
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace XLS
|
||||
|
||||
@ -63,23 +63,23 @@ SXADDLFIELD12 = SXAddl_SXCField12_SXDId *Continue_SxaddlSxString SXAddl_SXCField
|
||||
*/
|
||||
const bool SXADDLFIELD12::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCField12_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCField12_SXDVer12Info>();
|
||||
proc.mandatory<SXAddl_SXCField12_SXDVerUpdInv>();
|
||||
if(proc.optional<SXAddl_SXCField12_SXDMemberCaption>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
proc.optional<SXAddl_SXCField12_SXDAutoshow>();
|
||||
proc.optional<SXAddl_SXCField12_SXDISXTH>();
|
||||
proc.optional<SXADDLAUTOSORT>();
|
||||
proc.mandatory<SXAddl_SXCField12_SXDVerUpdInv>();
|
||||
proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCField12_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCField12_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCField12_SXDVer12Info>();
|
||||
//proc.mandatory<SXAddl_SXCField12_SXDVerUpdInv>();
|
||||
//if(proc.optional<SXAddl_SXCField12_SXDMemberCaption>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//proc.optional<SXAddl_SXCField12_SXDAutoshow>();
|
||||
//proc.optional<SXAddl_SXCField12_SXDISXTH>();
|
||||
//proc.optional<SXADDLAUTOSORT>();
|
||||
//proc.mandatory<SXAddl_SXCField12_SXDVerUpdInv>();
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCField12_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -60,15 +60,15 @@ SXADDLGROUP = SXAddl_SXCGroup_SXDId *Continue_SxaddlSxString SXAddl_SXCGroup_SXD
|
||||
*/
|
||||
const bool SXADDLGROUP::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCGroup_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCGroup_SXDGrpInfo>();
|
||||
proc.repeated<SXAddl_SXCGroup_SXDMember>(0, 0);
|
||||
proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCGroup_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCGroup_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCGroup_SXDGrpInfo>();
|
||||
//proc.repeated<SXAddl_SXCGroup_SXDMember>(0, 0);
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCGroup_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -61,15 +61,15 @@ SXADDLGRPLEVEL = SXAddl_SXCGrpLevel_SXDId *Continue_SxaddlSxString SXAddl_SXCGrp
|
||||
*/
|
||||
const bool SXADDLGRPLEVEL::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCGrpLevel_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCGrpLevel_SXDGrpLevelInfo>();
|
||||
proc.repeated<SXADDLGROUP>(0, 0);
|
||||
proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCGrpLevel_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCGrpLevel_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCGrpLevel_SXDGrpLevelInfo>();
|
||||
//proc.repeated<SXADDLGROUP>(0, 0);
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCGrpLevel_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -75,67 +75,67 @@ SXADDLHIERARCHY = SXAddl_SXCHierarchy_SXDId *Continue_SxaddlSxString *SXAddl_SXC
|
||||
*/
|
||||
const bool SXADDLHIERARCHY::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCHierarchy_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
proc.repeated<SXAddl_SXCHierarchy_SXDProperty>(0, 0);
|
||||
proc.repeated<SXADDLGRPLEVEL>(0, 0);
|
||||
proc.optional<SXAddl_SXCHierarchy_SXDVerUpdInv>();
|
||||
//if(!proc.mandatory<SXAddl_SXCHierarchy_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.repeated<SXAddl_SXCHierarchy_SXDProperty>(0, 0);
|
||||
//proc.repeated<SXADDLGRPLEVEL>(0, 0);
|
||||
//proc.optional<SXAddl_SXCHierarchy_SXDVerUpdInv>();
|
||||
|
||||
if(proc.optional<SXAddl_SXCHierarchy_SXDSXSetParentUnique>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
proc.optional<SXAddl_SXCHierarchy_SXDIconSet>();
|
||||
if(proc.optional<SXAddl_SXCHierarchy_SXDUserCaption>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
proc.optional<SXAddl_SXCHierarchy_SXDVerUpdInv>();
|
||||
proc.repeated<SXAddl_SXCHierarchy_SXDUserCaption>(0, 0);
|
||||
proc.optional<SXAddl_SXCHierarchy_SXDVerUpdInv>();
|
||||
proc.optional<SXAddl_SXCHierarchy_SXDInfo12>();
|
||||
if(proc.optional<SXAddl_SXCHierarchy_SXDDisplayFolder>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCHierarchy_SXDMeasureGrp>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCHierarchy_SXDParentKPI>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCHierarchy_SXDKPIValue>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCHierarchy_SXDKPIGoal>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCHierarchy_SXDKPIStatus>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCHierarchy_SXDKPITrend>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCHierarchy_SXDKPIWeight>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCHierarchy_SXDKPITime>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDSXSetParentUnique>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//proc.optional<SXAddl_SXCHierarchy_SXDIconSet>();
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDUserCaption>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.optional<SXAddl_SXCHierarchy_SXDVerUpdInv>();
|
||||
//proc.repeated<SXAddl_SXCHierarchy_SXDUserCaption>(0, 0);
|
||||
//proc.optional<SXAddl_SXCHierarchy_SXDVerUpdInv>();
|
||||
//proc.optional<SXAddl_SXCHierarchy_SXDInfo12>();
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDDisplayFolder>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDMeasureGrp>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDParentKPI>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPIValue>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPIGoal>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPIStatus>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPITrend>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPIWeight>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCHierarchy_SXDKPITime>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
|
||||
proc.mandatory<SXAddl_SXCHierarchy_SXDEnd>();
|
||||
//proc.mandatory<SXAddl_SXCHierarchy_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -58,13 +58,13 @@ BaseObjectPtr SXADDLQSI::clone()
|
||||
// SXADDLQSI = SXAddl_SXCQsi_SXDId SXADDLDBQUERY *UNKNOWNFRT SXAddl_SXCQsi_SXDEnd
|
||||
const bool SXADDLQSI::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCQsi_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.mandatory<SXADDLDBQUERY>();
|
||||
proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCQsi_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCQsi_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXADDLDBQUERY>();
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCQsi_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -57,12 +57,12 @@ BaseObjectPtr SXADDLSXDH::clone()
|
||||
const bool SXADDLSXDH::loadContent(BinProcessor& proc)
|
||||
{
|
||||
|
||||
if(!proc.mandatory<SXAddl_SXCSXDH_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<SXAddl_SXCSXDH_SXDSxdh>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCSXDH_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCSXDH_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXAddl_SXCSXDH_SXDSxdh>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXDH_SXDEnd>();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -56,13 +56,13 @@ BaseObjectPtr SXADDLSXFILT::clone()
|
||||
// SXADDLSXFILT = SXAddl_SXCSXfilt_SXDId SXAddl_SXCSXfilt_SXDSXfilt [SXAddl_SXCSXfilt_SXDSXItm] SXAddl_SXCSXfilt_SXDEnd
|
||||
const bool SXADDLSXFILT::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCSXfilt_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.mandatory<SXAddl_SXCSXfilt_SXDSXfilt>();
|
||||
proc.optional<SXAddl_SXCSXfilt_SXDSXItm>();
|
||||
proc.mandatory<SXAddl_SXCSXfilt_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCSXfilt_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCSXfilt_SXDSXfilt>();
|
||||
//proc.optional<SXAddl_SXCSXfilt_SXDSXItm>();
|
||||
//proc.mandatory<SXAddl_SXCSXfilt_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -65,38 +65,38 @@ SXADDLSXFILTER12 = SXAddl_SXCSXFilter12_SXDId SXAddl_SXCSXFilter12_SXDSXFilter
|
||||
*/
|
||||
const bool SXADDLSXFILTER12::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCSXFilter12_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.mandatory<SXAddl_SXCSXFilter12_SXDSXFilter>();
|
||||
//if(!proc.mandatory<SXAddl_SXCSXFilter12_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCSXFilter12_SXDSXFilter>();
|
||||
|
||||
if(proc.optional<SXAddl_SXCSXFilter12_SXDCaption>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCSXFilter12_SXDSXFilterDesc>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCSXFilter12_SXDSXFilterValue1>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCSXFilter12_SXDSXFilterValue2>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
proc.mandatory<SXAddl_SXCSXFilter12_SXDXlsFilter>();
|
||||
if(proc.optional<SXAddl_SXCSXFilter12_SXDXlsFilterValue1>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
if(proc.optional<SXAddl_SXCSXFilter12_SXDXlsFilterValue2>())
|
||||
{
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
}
|
||||
proc.mandatory<SXAddl_SXCSXFilter12_SXDEnd>();
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDCaption>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDSXFilterDesc>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDSXFilterValue1>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDSXFilterValue2>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCSXFilter12_SXDXlsFilter>();
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDXlsFilterValue1>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//if(proc.optional<SXAddl_SXCSXFilter12_SXDXlsFilterValue2>())
|
||||
//{
|
||||
// proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCSXFilter12_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -57,12 +57,12 @@ BaseObjectPtr SXADDLSXFILTERS12::clone()
|
||||
// SXADDLSXFILTERS12 = SXAddl_SXCSXFilters12_SXDId *SXADDLSXFILTER12 SXAddl_SXCSXFilters12_SXDEnd
|
||||
const bool SXADDLSXFILTERS12::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCSXFilters12_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<SXADDLSXFILTER12>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCSXFilters12_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCSXFilters12_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXADDLSXFILTER12>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXFilters12_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -59,11 +59,11 @@ public:
|
||||
|
||||
const bool loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCSXMg_SXDUserCaption>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//if(!proc.mandatory<SXAddl_SXCSXMg_SXDUserCaption>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
return true;
|
||||
};
|
||||
};
|
||||
@ -80,14 +80,14 @@ BaseObjectPtr SXADDLSXMG::clone()
|
||||
// [SXAddl_SXCSXMg_SXDUserCaption *Continue_SxaddlSxString] *UNKNOWNFRT SXAddl_SXCSXMg_SXDEnd
|
||||
const bool SXADDLSXMG::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCSXMg_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
proc.optional<Parenthesis_SXADDLSXMG_1>();
|
||||
proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCSXMg_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCSXMg_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<Continue_SxaddlSxString>(0, 0);
|
||||
//proc.optional<Parenthesis_SXADDLSXMG_1>();
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXMg_SXDEnd>();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -58,14 +58,14 @@ BaseObjectPtr SXADDLSXMGS::clone()
|
||||
// SXADDLSXMGS = SXAddl_SXCSXMgs_SXDId *SXADDLSXMG *SXAddl_SXCSXMgs_SXDMGrpSXDHMap *UNKNOWNFRT SXAddl_SXCSXMgs_SXDEnd
|
||||
const bool SXADDLSXMGS::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCSXMgs_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.repeated<SXADDLSXMG>(0, 0);
|
||||
proc.repeated<SXAddl_SXCSXMgs_SXDMGrpSXDHMap>(0, 0);
|
||||
proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCSXMgs_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCSXMgs_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.repeated<SXADDLSXMG>(0, 0);
|
||||
//proc.repeated<SXAddl_SXCSXMgs_SXDMGrpSXDHMap>(0, 0);
|
||||
//proc.repeated<UNKNOWNFRT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXMgs_SXDEnd>();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -57,13 +57,13 @@ BaseObjectPtr SXADDLSXRULE::clone()
|
||||
// SXADDLSXRULE = SXAddl_SXCSXrule_SXDId SXAddl_SXCSXrule_SXDSXrule *SXADDLSXFILT SXAddl_SXCSXrule_SXDEnd
|
||||
const bool SXADDLSXRULE::loadContent(BinProcessor& proc)
|
||||
{
|
||||
if(!proc.mandatory<SXAddl_SXCSXrule_SXDId>())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
proc.mandatory<SXAddl_SXCSXrule_SXDSXrule>();
|
||||
proc.repeated<SXADDLSXFILT>(0, 0);
|
||||
proc.mandatory<SXAddl_SXCSXrule_SXDEnd>();
|
||||
//if(!proc.mandatory<SXAddl_SXCSXrule_SXDId>())
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
//proc.mandatory<SXAddl_SXCSXrule_SXDSXrule>();
|
||||
//proc.repeated<SXADDLSXFILT>(0, 0);
|
||||
//proc.mandatory<SXAddl_SXCSXrule_SXDEnd>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -141,8 +141,9 @@ const bool WorksheetSubstream::loadContent(BinProcessor& proc)
|
||||
{
|
||||
case rt_Uncalced: proc.optional<Uncalced>(); break;
|
||||
case rt_Index: proc.optional<Index>(); break;
|
||||
case rt_CalcRefMode:
|
||||
case rt_CalcRefMode://todooo сделать вариативно по всем проверку
|
||||
case rt_CalcMode:
|
||||
case rt_PrintRowCol:
|
||||
{
|
||||
GLOBALS globals(false);
|
||||
if (proc.mandatory(globals))
|
||||
@ -221,6 +222,7 @@ const bool WorksheetSubstream::loadContent(BinProcessor& proc)
|
||||
elements_.pop_back();
|
||||
}
|
||||
}break;
|
||||
case rt_LabelSst://order_history.xls
|
||||
case rt_Label://file(6).xls
|
||||
case rt_Row:
|
||||
{
|
||||
|
||||
@ -310,6 +310,7 @@ enum ElementType
|
||||
typeStringSegmented,
|
||||
typeStringSegmentedSXADDL,
|
||||
typeSXAddl,
|
||||
typeSxaddlSxString,
|
||||
typeSXDI,
|
||||
typeSxDXF,
|
||||
typeSXEx,
|
||||
|
||||
@ -201,9 +201,12 @@ namespace OOX
|
||||
public:
|
||||
CDocument()
|
||||
{
|
||||
m_bMacroEnabled = false;
|
||||
}
|
||||
CDocument(const CPath& oRootPath, const CPath& oPath)
|
||||
{
|
||||
m_bMacroEnabled = false;
|
||||
|
||||
read( oRootPath, oPath );
|
||||
}
|
||||
virtual ~CDocument()
|
||||
@ -218,7 +221,6 @@ namespace OOX
|
||||
|
||||
m_arrItems.clear();
|
||||
}
|
||||
public:
|
||||
|
||||
virtual void read(const CPath& oPath)
|
||||
{
|
||||
@ -317,7 +319,11 @@ namespace OOX
|
||||
{
|
||||
m_oReadPath = oPath;
|
||||
IFileContainer::Read( oRootPath, oPath );
|
||||
|
||||
|
||||
if (IFileContainer::IsExist(OOX::FileTypes::VbaProject))
|
||||
{
|
||||
m_bMacroEnabled = true;
|
||||
}
|
||||
#ifdef USE_LITE_READER
|
||||
Common::readAllShapeTypes(oPath, m_arrShapeTypes);
|
||||
|
||||
@ -491,7 +497,8 @@ namespace OOX
|
||||
}
|
||||
virtual const OOX::FileType type() const
|
||||
{
|
||||
return FileTypes::Document;
|
||||
if (m_bMacroEnabled) return FileTypes::DocumentMacro;
|
||||
else return FileTypes::Document;
|
||||
}
|
||||
virtual const CPath DefaultDirectory() const
|
||||
{
|
||||
@ -634,6 +641,7 @@ namespace OOX
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
public:
|
||||
bool m_bMacroEnabled;
|
||||
CPath m_oReadPath;
|
||||
// Attributes
|
||||
SimpleTypes::CConformanceClass<SimpleTypes::conformanceclassTransitional> m_oConformance;
|
||||
|
||||
@ -43,100 +43,80 @@ namespace OOX {
|
||||
|
||||
// Ищем основной документ
|
||||
smart_ptr<OOX::File> pFile = Find(OOX::FileTypes::Document);
|
||||
if (pFile.IsInit() && OOX::FileTypes::Document == pFile->type())
|
||||
m_pDocument = (OOX::CDocument*)pFile.operator->();
|
||||
else
|
||||
m_pDocument = NULL;
|
||||
if (pFile.IsInit() == false)
|
||||
{
|
||||
pFile = Find(OOX::FileTypes::DocumentMacro);
|
||||
}
|
||||
if (pFile.IsInit())
|
||||
m_pDocument = dynamic_cast<OOX::CDocument*>(pFile.operator->());
|
||||
|
||||
if ( m_pDocument )
|
||||
{
|
||||
OOX::IFileContainer* pDocumentContainer = (OOX::IFileContainer*)m_pDocument;
|
||||
|
||||
// Ищем таблицу шрифтов
|
||||
pFile = pDocumentContainer->Find( OOX::FileTypes::FontTable );
|
||||
if ( pFile.IsInit() && OOX::FileTypes::FontTable == pFile->type() )
|
||||
m_pFontTable = (OOX::CFontTable*)pFile.operator->();
|
||||
else
|
||||
m_pFontTable = NULL;
|
||||
pFile = m_pDocument->Find( OOX::FileTypes::FontTable );
|
||||
if ( pFile.IsInit() )
|
||||
m_pFontTable = dynamic_cast<OOX::CFontTable*>(pFile.operator->());
|
||||
|
||||
// Ищем таблицу нумераций
|
||||
pFile = pDocumentContainer->Find( OOX::FileTypes::Numbering );
|
||||
if ( pFile.IsInit() && OOX::FileTypes::Numbering == pFile->type() )
|
||||
m_pNumbering = (OOX::CNumbering*)pFile.operator->();
|
||||
else
|
||||
m_pNumbering = NULL;
|
||||
pFile = m_pDocument->Find( OOX::FileTypes::Numbering );
|
||||
if ( pFile.IsInit())
|
||||
m_pNumbering = dynamic_cast<OOX::CNumbering*>(pFile.operator->());
|
||||
|
||||
// Ищем таблицу стилей
|
||||
pFile = pDocumentContainer->Find( OOX::FileTypes::Style );
|
||||
if ( pFile.IsInit() && OOX::FileTypes::Style == pFile->type() )
|
||||
m_pStyles = (OOX::CStyles*)pFile.operator->();
|
||||
else
|
||||
m_pStyles = NULL;
|
||||
pFile = m_pDocument->Find( OOX::FileTypes::Style );
|
||||
if ( pFile.IsInit())
|
||||
m_pStyles = dynamic_cast<OOX::CStyles*>(pFile.operator->());
|
||||
|
||||
// Ищем сноски для страниц
|
||||
pFile = pDocumentContainer->Find( OOX::FileTypes::FootNote );
|
||||
if ( pFile.IsInit() && OOX::FileTypes::FootNote == pFile->type() )
|
||||
m_pFootnotes = (OOX::CFootnotes*)pFile.operator->();
|
||||
else
|
||||
m_pFootnotes = NULL;
|
||||
pFile = m_pDocument->Find( OOX::FileTypes::FootNote );
|
||||
if ( pFile.IsInit())
|
||||
m_pFootnotes = dynamic_cast<OOX::CFootnotes*>(pFile.operator->());
|
||||
|
||||
pFile = pDocumentContainer->Find( OOX::FileTypes::EndNote );
|
||||
if ( pFile.IsInit() && OOX::FileTypes::EndNote == pFile->type() )
|
||||
m_pEndnotes = (OOX::CEndnotes*)pFile.operator->();
|
||||
else
|
||||
m_pEndnotes = NULL;
|
||||
pFile = m_pDocument->Find( OOX::FileTypes::EndNote );
|
||||
if ( pFile.IsInit())
|
||||
m_pEndnotes = dynamic_cast<OOX::CEndnotes*>(pFile.operator->());
|
||||
|
||||
// Ищем файл с наcтройками
|
||||
pFile = pDocumentContainer->Find( OOX::FileTypes::Setting );
|
||||
if ( pFile.IsInit() && OOX::FileTypes::Setting == pFile->type() )
|
||||
m_pSettings = (OOX::CSettings*)pFile.operator->();
|
||||
else
|
||||
m_pSettings = NULL;
|
||||
pFile = m_pDocument->Find( OOX::FileTypes::Setting );
|
||||
if ( pFile.IsInit() )
|
||||
m_pSettings = dynamic_cast<OOX::CSettings*>(pFile.operator->());
|
||||
|
||||
// Ищем файл с комментариями
|
||||
pFile = pDocumentContainer->Find( OOX::FileTypes::Comments );
|
||||
if ( pFile.IsInit() && OOX::FileTypes::Comments == pFile->type() )
|
||||
m_pComments = (OOX::CComments*)pFile.operator->();
|
||||
else
|
||||
m_pComments = NULL;
|
||||
pFile = m_pDocument->Find( OOX::FileTypes::Comments );
|
||||
if ( pFile.IsInit())
|
||||
m_pComments = dynamic_cast<OOX::CComments*>(pFile.operator->());
|
||||
|
||||
// Ищем файл с комментариями Ext
|
||||
pFile = pDocumentContainer->Find( OOX::FileTypes::CommentsExt );
|
||||
if ( pFile.IsInit() && OOX::FileTypes::CommentsExt == pFile->type() )
|
||||
m_pCommentsExt = (OOX::CCommentsExt*)pFile.operator->();
|
||||
else
|
||||
m_pCommentsExt = NULL;
|
||||
pFile = m_pDocument->Find( OOX::FileTypes::CommentsExt );
|
||||
if ( pFile.IsInit())
|
||||
m_pCommentsExt = dynamic_cast<OOX::CCommentsExt*>(pFile.operator->());
|
||||
|
||||
// Ищем файл с авторами
|
||||
pFile = pDocumentContainer->Find( OOX::FileTypes::People );
|
||||
if ( pFile.IsInit() && OOX::FileTypes::People == pFile->type() )
|
||||
m_pPeople = (OOX::CPeople*)pFile.operator->();
|
||||
else
|
||||
m_pPeople = NULL;
|
||||
pFile = m_pDocument->Find( OOX::FileTypes::People );
|
||||
if ( pFile.IsInit())
|
||||
m_pPeople = dynamic_cast<OOX::CPeople*>(pFile.operator->());
|
||||
|
||||
//OOX::CRels rels(oFilePath / m_pDocument->DefaultDirectory() / m_pDocument->DefaultFileName());
|
||||
//IFileContainer::Read(rels, oFilePath);
|
||||
|
||||
// Ищем файл с темами
|
||||
pFile = pDocumentContainer->Find(OOX::FileTypes::Theme);
|
||||
if (pFile.IsInit() && OOX::FileTypes::Theme == pFile->type())
|
||||
m_pTheme = (PPTX::Theme*)pFile.operator->();
|
||||
else
|
||||
m_pTheme = NULL;
|
||||
}
|
||||
pFile = m_pDocument->Find(OOX::FileTypes::Theme);
|
||||
if (pFile.IsInit())
|
||||
m_pTheme = dynamic_cast<PPTX::Theme*>(pFile.operator->());
|
||||
|
||||
pFile = m_pDocument->Find(OOX::FileTypes::VbaProject);
|
||||
if (pFile.IsInit())
|
||||
m_pVbaProject = dynamic_cast<OOX::VbaProject*>(pFile.operator->());
|
||||
}
|
||||
|
||||
// Ищем настройки
|
||||
pFile = Find( OOX::FileTypes::App );
|
||||
if ( pFile.IsInit() && OOX::FileTypes::App == pFile->type() )
|
||||
m_pApp = (OOX::CApp*)pFile.operator->();
|
||||
else
|
||||
m_pApp = NULL;
|
||||
if ( pFile.IsInit())
|
||||
m_pApp = dynamic_cast<OOX::CApp*>(pFile.operator->());
|
||||
|
||||
pFile = Find( OOX::FileTypes::Core );
|
||||
if ( pFile.IsInit() && OOX::FileTypes::Core == pFile->type() )
|
||||
m_pCore = (OOX::CCore*)pFile.operator->();
|
||||
else
|
||||
m_pCore = NULL;
|
||||
if ( pFile.IsInit())
|
||||
m_pCore = dynamic_cast<OOX::CCore*>(pFile.operator->());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -53,6 +53,7 @@
|
||||
#include "Media/Image.h"
|
||||
#include "Media/OleObject.h"
|
||||
#include "Media/ActiveX.h"
|
||||
#include "Media/VbaProject.h"
|
||||
#include "HeaderFooter.h"
|
||||
|
||||
#include "../../../../ASCOfficePPTXFile/PPTXFormat/Theme.h"
|
||||
@ -82,6 +83,7 @@ namespace OOX
|
||||
m_pComments = NULL;
|
||||
m_pCommentsExt = NULL;
|
||||
m_pPeople = NULL;
|
||||
m_pVbaProject = NULL;
|
||||
}
|
||||
CDocx(const CPath& oFilePath)
|
||||
{
|
||||
@ -98,6 +100,7 @@ namespace OOX
|
||||
m_pComments = NULL;
|
||||
m_pCommentsExt = NULL;
|
||||
m_pPeople = NULL;
|
||||
m_pVbaProject = NULL;
|
||||
|
||||
Read( oFilePath );
|
||||
}
|
||||
@ -198,21 +201,22 @@ namespace OOX
|
||||
return NULL;
|
||||
}
|
||||
|
||||
OOX::CApp *m_pApp;
|
||||
OOX::CCore *m_pCore;
|
||||
OOX::CApp *m_pApp;
|
||||
OOX::CCore *m_pCore;
|
||||
|
||||
OOX::CDocument *m_pDocument; // Основной документ word/document.xml
|
||||
OOX::CFontTable *m_pFontTable; // Таблица шрифтов word/fonttable.xml
|
||||
OOX::CNumbering *m_pNumbering; // Нумерации word/numbering.xml
|
||||
OOX::CStyles *m_pStyles; // Стили word/styles.xml
|
||||
OOX::CFootnotes *m_pFootnotes; // Сноски word/footnotes.xml
|
||||
OOX::CEndnotes *m_pEndnotes; // Сноски word/endnotes.xml
|
||||
OOX::CSettings *m_pSettings; // Настройки word/settings.xml
|
||||
OOX::CComments *m_pComments; // word/comments.xml
|
||||
OOX::CCommentsExt *m_pCommentsExt;// word/commentsExtended.xml
|
||||
OOX::CPeople *m_pPeople; // word/people.xml
|
||||
OOX::CDocument *m_pDocument; // Основной документ word/document.xml
|
||||
OOX::CFontTable *m_pFontTable; // Таблица шрифтов word/fonttable.xml
|
||||
OOX::CNumbering *m_pNumbering; // Нумерации word/numbering.xml
|
||||
OOX::CStyles *m_pStyles; // Стили word/styles.xml
|
||||
OOX::CFootnotes *m_pFootnotes; // Сноски word/footnotes.xml
|
||||
OOX::CEndnotes *m_pEndnotes; // Сноски word/endnotes.xml
|
||||
OOX::CSettings *m_pSettings; // Настройки word/settings.xml
|
||||
OOX::CComments *m_pComments; // word/comments.xml
|
||||
OOX::CCommentsExt *m_pCommentsExt;// word/commentsExtended.xml
|
||||
OOX::CPeople *m_pPeople; // word/people.xml
|
||||
OOX::VbaProject *m_pVbaProject;
|
||||
|
||||
PPTX::Theme *m_pTheme;
|
||||
PPTX::Theme *m_pTheme;
|
||||
|
||||
};
|
||||
} // OOX
|
||||
|
||||
@ -75,7 +75,7 @@ namespace OOX
|
||||
else
|
||||
oFileName = oPath / oRelationFilename;
|
||||
|
||||
if ( oRelation.Type() == FileTypes::Document)
|
||||
if ( oRelation.Type() == FileTypes::Document || oRelation.Type() == FileTypes::DocumentMacro)
|
||||
return smart_ptr<OOX::File>(new CDocument( oRootPath, oFileName ));
|
||||
else if ( oRelation.Type() == FileTypes::FontTable)
|
||||
return smart_ptr<OOX::File>(new CFontTable( oFileName ));
|
||||
@ -165,7 +165,7 @@ namespace OOX
|
||||
return smart_ptr<OOX::File>(new CApp( oFileName ));
|
||||
else if ( pRelation->Type() == FileTypes::Core)
|
||||
return smart_ptr<OOX::File>(new CCore( oFileName ));
|
||||
else if ( pRelation->Type() == FileTypes::Document)
|
||||
else if ( pRelation->Type() == FileTypes::Document || pRelation->Type() == FileTypes::DocumentMacro)
|
||||
return smart_ptr<OOX::File>(new CDocument( oRootPath, oFileName ));
|
||||
else if ( pRelation->Type() == FileTypes::Theme)
|
||||
{
|
||||
|
||||
@ -52,6 +52,10 @@ namespace OOX
|
||||
_T("application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"),
|
||||
_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"));
|
||||
|
||||
const FileType DocumentMacro (L"word", L"document.xml",
|
||||
_T("application/vnd.ms-word.document.macroEnabled.main+xml"),
|
||||
_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"));
|
||||
|
||||
const FileType Theme (L"theme", L"theme.xml",
|
||||
_T("application/vnd.openxmlformats-officedocument.theme+xml"),
|
||||
_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"), true);
|
||||
|
||||
@ -34,6 +34,10 @@
|
||||
#define OOX_VBA_PROJECT_INCLUDE_H_
|
||||
|
||||
#include "Media.h"
|
||||
#include "../../../../../ASCOfficePPTXFile/Editor/BinaryFileReaderWriter.h"
|
||||
#include "../../../../../ASCOfficePPTXFile/Editor/imagemanager.h"
|
||||
|
||||
#include "../IFileContainer.h"
|
||||
#include "../../XlsxFormat/FileTypes_Spreadsheet.h"
|
||||
|
||||
namespace OOX
|
||||
@ -71,6 +75,49 @@ namespace OOX
|
||||
{
|
||||
return m_filename.GetFilename();
|
||||
}
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
|
||||
pWriter->WriteString1(0, m_filename.GetFilename());
|
||||
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
|
||||
copy_to(pWriter->m_pCommon->m_pImageManager->m_strDstMedia);
|
||||
}
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG _end_rec = pReader->GetPos() + pReader->GetLong() + 4;
|
||||
|
||||
pReader->Skip(1); // start attributes
|
||||
while (true)
|
||||
{
|
||||
BYTE _at = pReader->GetUChar_TypeNode();
|
||||
if (_at == NSBinPptxRW::g_nodeAttributeEnd)
|
||||
break;
|
||||
|
||||
switch (_at)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
std::wstring file_name = pReader->GetString2();
|
||||
|
||||
OOX::CPath inputPath = pReader->m_strFolder + FILE_SEPARATOR_STR + _T("media") + FILE_SEPARATOR_STR + file_name;
|
||||
OOX::CPath outputPath = pReader->m_pRels->m_pManager->GetDstFolder() + FILE_SEPARATOR_STR + _T("vbaProject.bin");
|
||||
|
||||
NSFile::CFileBinary::Copy(inputPath.GetPath(), outputPath.GetPath());
|
||||
|
||||
set_filename(outputPath.GetPath());
|
||||
|
||||
}break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
protected:
|
||||
};
|
||||
} // namespace OOX
|
||||
|
||||
@ -65,7 +65,8 @@ namespace OOX
|
||||
else
|
||||
oFileName = oPath / oRelationFilename;
|
||||
|
||||
if ( oRelation.Type() == FileTypes::Workbook )
|
||||
if ( oRelation.Type() == FileTypes::Workbook ||
|
||||
oRelation.Type() == FileTypes::WorkbookMacro)
|
||||
return smart_ptr<OOX::File>(new CWorkbook( oRootPath, oFileName ));
|
||||
else if ( oRelation.Type() == FileTypes::SharedStrings )
|
||||
return smart_ptr<OOX::File>(new CSharedStrings( oRootPath, oFileName ));
|
||||
@ -120,7 +121,8 @@ namespace OOX
|
||||
else
|
||||
oFileName = oPath / oRelationFilename;
|
||||
|
||||
if ( pRelation->Type() == FileTypes::Workbook )
|
||||
if ( pRelation->Type() == FileTypes::Workbook ||
|
||||
pRelation->Type() == FileTypes::WorkbookMacro)
|
||||
return smart_ptr<OOX::File>(new CWorkbook( oRootPath, oFileName ));
|
||||
else if ( pRelation->Type() == FileTypes::SharedStrings )
|
||||
return smart_ptr<OOX::File>(new CSharedStrings( oRootPath, oFileName ));
|
||||
|
||||
@ -46,6 +46,10 @@ namespace OOX
|
||||
_T("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"),
|
||||
_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"));
|
||||
|
||||
const FileType WorkbookMacro (L"xl", L"workbook.xml",
|
||||
_T("application/vnd.ms-excel.sheet.macroEnabled.main+xml"),
|
||||
_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"));
|
||||
|
||||
const FileType SharedStrings (L"", L"sharedStrings.xml",
|
||||
_T("application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"),
|
||||
_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings"));
|
||||
|
||||
@ -66,11 +66,14 @@ namespace OOX
|
||||
public:
|
||||
CWorkbook()
|
||||
{
|
||||
m_bMacroEnabled = false;
|
||||
m_bSpreadsheets = true;
|
||||
}
|
||||
CWorkbook(const CPath& oRootPath, const CPath& oPath)
|
||||
{
|
||||
m_bMacroEnabled = false;
|
||||
m_bSpreadsheets = true;
|
||||
|
||||
read(oRootPath, oPath);
|
||||
}
|
||||
virtual ~CWorkbook()
|
||||
@ -88,6 +91,11 @@ namespace OOX
|
||||
m_oReadPath = oPath;
|
||||
IFileContainer::Read( oRootPath, oPath );
|
||||
|
||||
if (IFileContainer::IsExist(OOX::FileTypes::VbaProject))
|
||||
{
|
||||
m_bMacroEnabled = true;
|
||||
}
|
||||
|
||||
XmlUtils::CXmlLiteReader oReader;
|
||||
|
||||
if ( !oReader.FromFile( oPath.GetPath() ) )
|
||||
@ -149,7 +157,8 @@ namespace OOX
|
||||
}
|
||||
virtual const OOX::FileType type() const
|
||||
{
|
||||
return OOX::Spreadsheet::FileTypes::Workbook;
|
||||
if (m_bMacroEnabled) return OOX::Spreadsheet::FileTypes::WorkbookMacro;
|
||||
else return OOX::Spreadsheet::FileTypes::Workbook;
|
||||
}
|
||||
virtual const CPath DefaultDirectory() const
|
||||
{
|
||||
@ -211,6 +220,7 @@ namespace OOX
|
||||
nullable<OOX::Spreadsheet::CWorkbookPr> m_oWorkbookPr;
|
||||
nullable<OOX::Spreadsheet::CExternalReferences> m_oExternalReferences;
|
||||
nullable<std::wstring> m_oPivotCachesXml;
|
||||
bool m_bMacroEnabled;
|
||||
};
|
||||
} //Spreadsheet
|
||||
} // namespace OOX
|
||||
|
||||
@ -97,8 +97,14 @@ namespace OOX
|
||||
|
||||
// Ищем основной документ
|
||||
smart_ptr<OOX::File> pFile = Find(OOX::Spreadsheet::FileTypes::Workbook);
|
||||
if (pFile.IsInit() && OOX::Spreadsheet::FileTypes::Workbook == pFile->type())
|
||||
m_pWorkbook = (OOX::Spreadsheet::CWorkbook*)pFile.operator->();
|
||||
if (pFile.IsInit() == false)
|
||||
{
|
||||
pFile = Find(OOX::Spreadsheet::FileTypes::WorkbookMacro);
|
||||
}
|
||||
if (pFile.IsInit())
|
||||
{
|
||||
m_pWorkbook = dynamic_cast<OOX::Spreadsheet::CWorkbook*>(pFile.operator->());
|
||||
}
|
||||
else
|
||||
m_pWorkbook = NULL;
|
||||
|
||||
@ -185,7 +191,7 @@ namespace OOX
|
||||
//CApp
|
||||
OOX::CApp* pApp = new OOX::CApp();
|
||||
pApp->SetApplication(_T("OnlyOffice"));
|
||||
pApp->SetAppVersion(_T("4.3000"));
|
||||
pApp->SetAppVersion(_T("5.0"));
|
||||
pApp->SetDocSecurity(0);
|
||||
pApp->SetScaleCrop(false);
|
||||
pApp->SetLinksUpToDate(false);
|
||||
|
||||
@ -195,7 +195,7 @@ public:
|
||||
_LOGGING_ERROR_(L"execute_compile_code", strCode);
|
||||
_LOGGING_ERROR_(L"execute_compile", strException);
|
||||
|
||||
return false;
|
||||
return "";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -209,7 +209,7 @@ public:
|
||||
_LOGGING_ERROR_(L"execute_run_code", strCode);
|
||||
_LOGGING_ERROR_(L"execute_run", strException);
|
||||
|
||||
return false;
|
||||
return "";
|
||||
}
|
||||
|
||||
if (_value->IsString())
|
||||
@ -872,6 +872,7 @@ namespace NSDoctRenderer
|
||||
oBuilder.WriteString(L"<m_sFontDir>");
|
||||
oBuilder.WriteEncodeXmlString(m_sX2tPath + L"/sdkjs/common");
|
||||
oBuilder.WriteString(L"</m_sFontDir>");
|
||||
oBuilder.WriteString(L"<m_bIsNoBase64>true</m_bIsNoBase64>");
|
||||
oBuilder.WriteString(L"<m_sThemeDir>./sdkjs/slide/themes</m_sThemeDir><m_bDontSaveAdditional>true</m_bDontSaveAdditional>");
|
||||
oBuilder.WriteString(params);
|
||||
oBuilder.WriteString(L"</TaskQueueDataConvert>");
|
||||
|
||||
@ -189,13 +189,15 @@ static const struct ActionNamesEmf
|
||||
|
||||
do
|
||||
{
|
||||
if (m_oStream.CanRead() < 8)
|
||||
if (m_oStream.IsEof())
|
||||
break;
|
||||
if (m_oStream.CanRead() < 8)
|
||||
return SetError();
|
||||
|
||||
m_oStream >> ulType;
|
||||
m_oStream >> ulSize;
|
||||
|
||||
if (ulSize < 1)
|
||||
if (ulSize < 1)
|
||||
continue;
|
||||
|
||||
m_ulRecordPos = m_oStream.Tell();
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
QT -= core
|
||||
QT -= gui
|
||||
|
||||
VERSION = 2.4.472.0
|
||||
VERSION = 2.4.475.0
|
||||
DEFINES += INTVER=$$VERSION
|
||||
|
||||
TARGET = x2t
|
||||
|
||||
@ -2170,7 +2170,7 @@ namespace NExtractTools
|
||||
return nRes;
|
||||
}
|
||||
|
||||
int fromXlsxDir(const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params)
|
||||
int fromXlsxDir(const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params, bool isSavedXFile)
|
||||
{
|
||||
int nRes = 0;
|
||||
if(0 != (AVS_OFFICESTUDIO_FILE_SPREADSHEET & nFormatTo) && AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV != nFormatTo)
|
||||
@ -2221,6 +2221,11 @@ namespace NExtractTools
|
||||
nRes = fromXlstBin(sTFile, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params);
|
||||
}
|
||||
}
|
||||
if (SUCCEEDED_X2T(nRes) && !isSavedXFile && params.getSaveXFile())
|
||||
{
|
||||
std::wstring sToDir = NSDirectory::GetFolderPath(sTo);
|
||||
nRes = dir2zip(sFrom, sToDir + FILE_SEPARATOR_STR + _T("Editor.xlsx"));
|
||||
}
|
||||
return nRes;
|
||||
}
|
||||
int fromXlstBin(const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params)
|
||||
@ -2252,7 +2257,7 @@ namespace NExtractTools
|
||||
nRes = xlst_bin2xlsx_dir(sFrom, sTo, sXlsxDir, bFromChanges, sThemeDir, params);
|
||||
if(SUCCEEDED_X2T(nRes))
|
||||
{
|
||||
nRes = fromXlsxDir(sXlsxDir, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params);
|
||||
nRes = fromXlsxDir(sXlsxDir, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params, false);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -2302,9 +2307,15 @@ namespace NExtractTools
|
||||
{
|
||||
std::wstring sXlsxDir = sTemp + FILE_SEPARATOR_STR + _T("xlsx_unpacked");
|
||||
NSDirectory::CreateDirectory(sXlsxDir);
|
||||
bool isSavedXFile = false;
|
||||
if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX == nFormatFrom)
|
||||
{
|
||||
nRes = zip2dir(sFrom, sXlsxDir);
|
||||
if (SUCCEEDED_X2T(nRes) && params.getSaveXFile())
|
||||
{
|
||||
NSFile::CFileBinary::Copy(sFrom, NSSystemPath::GetDirectoryName(sTo) + FILE_SEPARATOR_STR + _T("Editor.xlsx"));
|
||||
isSavedXFile = true;
|
||||
}
|
||||
}
|
||||
else if(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLS == nFormatFrom)
|
||||
{
|
||||
@ -2318,7 +2329,7 @@ namespace NExtractTools
|
||||
nRes = AVS_FILEUTILS_ERROR_CONVERT;
|
||||
if(SUCCEEDED_X2T(nRes))
|
||||
{
|
||||
nRes = fromXlsxDir(sXlsxDir, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params);
|
||||
nRes = fromXlsxDir(sXlsxDir, sTo, nFormatTo, sTemp, sThemeDir, bFromChanges, bPaid, params, isSavedXFile);
|
||||
}
|
||||
}
|
||||
return nRes;
|
||||
|
||||
@ -145,7 +145,7 @@ namespace NExtractTools
|
||||
int fromDoctBin (const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params);
|
||||
int fromDocument (const std::wstring &sFrom, int nFormatFrom, const std::wstring &sTemp, InputParams& params);
|
||||
|
||||
int fromXlsxDir (const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params);
|
||||
int fromXlsxDir (const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params, bool isSavedXFile);
|
||||
int fromXlstBin (const std::wstring &sFrom, const std::wstring &sTo, int nFormatTo, const std::wstring &sTemp, const std::wstring &sThemeDir, bool bFromChanges, bool bPaid, InputParams& params);
|
||||
int fromSpreadsheet (const std::wstring &sFrom, int nFormatFrom, const std::wstring &sTemp, InputParams& params);
|
||||
|
||||
|
||||
@ -133,35 +133,41 @@ namespace NExtractTools
|
||||
case AVS_OFFICESTUDIO_FILE_TEAMLAB_DOCY:
|
||||
{
|
||||
if (0 == sExt2.compare(_T(".docx"))) res = TCD_DOCT2DOCX;
|
||||
else if (0 == sExt2.compare(_T(".docm"))) res = TCD_DOCT2DOCX;
|
||||
else if (0 == sExt2.compare(_T(".bin"))) res = TCD_T2BIN;
|
||||
else if (0 == sExt2.compare(_T(".rtf"))) res = TCD_DOCT2RTF;
|
||||
}break;
|
||||
case AVS_OFFICESTUDIO_FILE_TEAMLAB_XLSY:
|
||||
{
|
||||
if (0 == sExt2.compare(_T(".xlsx"))) res = TCD_XLST2XLSX;
|
||||
else if (0 == sExt2.compare(_T(".xlsm"))) res = TCD_XLST2XLSX;
|
||||
else if (0 == sExt2.compare(_T(".bin"))) res = TCD_T2BIN;
|
||||
else if (0 == sExt2.compare(_T(".csv"))) res = TCD_XLST2CSV;
|
||||
}break;
|
||||
case AVS_OFFICESTUDIO_FILE_TEAMLAB_PPTY:
|
||||
{
|
||||
if (0 == sExt2.compare(_T(".pptx"))) res = TCD_PPTT2PPTX;
|
||||
else if (0 == sExt2.compare(_T(".pptm"))) res = TCD_PPTT2PPTX;
|
||||
else if (0 == sExt2.compare(_T(".bin"))) res = TCD_T2BIN;
|
||||
}break;
|
||||
case AVS_OFFICESTUDIO_FILE_CANVAS_WORD:
|
||||
{
|
||||
if (0 == sExt2.compare(_T(".docx"))) res = TCD_DOCT_BIN2DOCX;
|
||||
else if (0 == sExt2.compare(_T(".docm"))) res = TCD_DOCT_BIN2DOCX;
|
||||
else if (0 == sExt2.compare(_T(".doct"))) res = TCD_BIN2T;
|
||||
else if (0 == sExt2.compare(_T(".rtf"))) res = TCD_DOCT_BIN2RTF;
|
||||
}break;
|
||||
case AVS_OFFICESTUDIO_FILE_CANVAS_SPREADSHEET:
|
||||
{
|
||||
if (0 == sExt2.compare(_T(".xlsx"))) res = TCD_XLST_BIN2XLSX;
|
||||
else if (0 == sExt2.compare(_T(".xlsm"))) res = TCD_XLST_BIN2XLSX;
|
||||
else if (0 == sExt2.compare(_T(".xlst"))) res = TCD_BIN2T;
|
||||
else if (0 == sExt2.compare(_T(".csv"))) res = TCD_XLST_BIN2CSV;
|
||||
}break;
|
||||
case AVS_OFFICESTUDIO_FILE_CANVAS_PRESENTATION:
|
||||
{
|
||||
if (0 == sExt2.compare(_T(".pptx"))) res = TCD_PPTT_BIN2PPTX;
|
||||
else if (0 == sExt2.compare(_T(".pptm"))) res = TCD_PPTT_BIN2PPTX;
|
||||
else if (0 == sExt2.compare(_T(".pptt"))) res = TCD_BIN2T;
|
||||
}break;
|
||||
case AVS_OFFICESTUDIO_FILE_CANVAS_PDF:
|
||||
@ -171,18 +177,21 @@ namespace NExtractTools
|
||||
case AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV:
|
||||
{
|
||||
if (0 == sExt2.compare(_T(".xlsx"))) res = TCD_CSV2XLSX;
|
||||
else if (0 == sExt2.compare(_T(".xlsm"))) res = TCD_CSV2XLSX;
|
||||
else if (0 == sExt2.compare(_T(".xlst"))) res = TCD_CSV2XLST;
|
||||
else if (0 == sExt2.compare(_T(".bin"))) res = TCD_CSV2XLST_BIN;
|
||||
}break;
|
||||
case AVS_OFFICESTUDIO_FILE_DOCUMENT_RTF:
|
||||
{
|
||||
if (0 == sExt2.compare(_T(".docx"))) res = TCD_RTF2DOCX;
|
||||
else if (0 == sExt2.compare(_T(".docm"))) res = TCD_RTF2DOCX;
|
||||
else if (0 == sExt2.compare(_T(".doct"))) res = TCD_RTF2DOCT;
|
||||
else if (0 == sExt2.compare(_T(".bin"))) res = TCD_RTF2DOCT_BIN;
|
||||
}break;
|
||||
case AVS_OFFICESTUDIO_FILE_DOCUMENT_DOC:
|
||||
{
|
||||
if (0 == sExt2.compare(_T(".docx"))) res = TCD_DOC2DOCX;
|
||||
else if (0 == sExt2.compare(_T(".docm"))) res = TCD_DOC2DOCX;
|
||||
else if (0 == sExt2.compare(_T(".doct"))) res = TCD_DOC2DOCT;
|
||||
else if (0 == sExt2.compare(_T(".bin"))) res = TCD_DOC2DOCT_BIN;
|
||||
}break;
|
||||
@ -195,12 +204,14 @@ namespace NExtractTools
|
||||
case AVS_OFFICESTUDIO_FILE_DOCUMENT_TXT:
|
||||
{
|
||||
if (0 == sExt2.compare(_T(".docx"))) res = TCD_TXT2DOCX;
|
||||
else if (0 == sExt2.compare(_T(".docm"))) res = TCD_TXT2DOCX;
|
||||
else if (0 == sExt2.compare(_T(".doct"))) res = TCD_TXT2DOCT;
|
||||
else if (0 == sExt2.compare(_T(".bin"))) res = TCD_TXT2DOCT_BIN;
|
||||
}break;
|
||||
case AVS_OFFICESTUDIO_FILE_PRESENTATION_PPT:
|
||||
{
|
||||
if (0 == sExt2.compare(_T(".pptx"))) res = TCD_PPT2PPTX;
|
||||
else if (0 == sExt2.compare(_T(".pptm"))) res = TCD_PPT2PPTX;
|
||||
else if (0 == sExt2.compare(_T(".bin"))) res = TCD_PPT2PPTT_BIN;
|
||||
else if (0 == sExt2.compare(_T(".pptt"))) res = TCD_PPT2PPTT;
|
||||
}break;
|
||||
@ -215,6 +226,9 @@ namespace NExtractTools
|
||||
else if (0 == sExt2.compare(_T(".docx")) ||
|
||||
0 == sExt2.compare(_T(".xlsx")) ||
|
||||
0 == sExt2.compare(_T(".pptx"))) res = TCD_ODF2OOX;
|
||||
else if (0 == sExt2.compare(_T(".docm")) ||
|
||||
0 == sExt2.compare(_T(".xlsm")) ||
|
||||
0 == sExt2.compare(_T(".pptm"))) res = TCD_ODF2OOX;
|
||||
}break;
|
||||
case AVS_OFFICESTUDIO_FILE_OTHER_MS_OFFCRYPTO:
|
||||
{
|
||||
|
||||
@ -359,6 +359,7 @@ namespace NExtractTools
|
||||
std::wstring* m_sPassword;
|
||||
std::wstring* m_sTempDir;
|
||||
bool* m_bIsNoBase64;
|
||||
bool* m_bSaveXFile;
|
||||
//output params
|
||||
mutable bool m_bOutputConvertCorrupted;
|
||||
public:
|
||||
@ -385,6 +386,7 @@ namespace NExtractTools
|
||||
m_sPassword = NULL;
|
||||
m_sTempDir = NULL;
|
||||
m_bIsNoBase64 = NULL;
|
||||
m_bSaveXFile = NULL;
|
||||
|
||||
m_bOutputConvertCorrupted = false;
|
||||
}
|
||||
@ -411,6 +413,7 @@ namespace NExtractTools
|
||||
RELEASEOBJECT(m_sPassword);
|
||||
RELEASEOBJECT(m_sTempDir);
|
||||
RELEASEOBJECT(m_bIsNoBase64);
|
||||
RELEASEOBJECT(m_bSaveXFile);
|
||||
}
|
||||
|
||||
bool FromXmlFile(const std::wstring& sFilename)
|
||||
@ -501,6 +504,8 @@ namespace NExtractTools
|
||||
m_sTempDir = new std::wstring(sValue);
|
||||
else if(_T("m_bIsNoBase64") == sName)
|
||||
m_bIsNoBase64 = new bool(XmlUtils::GetBoolean2(sValue));
|
||||
else if(_T("m_bSaveXFile") == sName)
|
||||
m_bSaveXFile = new bool(XmlUtils::GetBoolean2(sValue));
|
||||
}
|
||||
else if(_T("m_nCsvDelimiterChar") == sName)
|
||||
{
|
||||
@ -532,6 +537,10 @@ namespace NExtractTools
|
||||
{
|
||||
return (NULL != m_bIsNoBase64) ? (*m_bIsNoBase64) : false;
|
||||
}
|
||||
bool getSaveXFile() const
|
||||
{
|
||||
return (NULL != m_bSaveXFile) ? (*m_bSaveXFile) : false;
|
||||
}
|
||||
std::wstring getXmlOptions()
|
||||
{
|
||||
std::wstring sRes;
|
||||
|
||||
@ -67,7 +67,7 @@ namespace BinXlsxRW
|
||||
int nCurPos = 0;
|
||||
for(size_t i = 0, length = oTableParts.m_arrItems.size(); i < length; ++i)
|
||||
WriteTablePart(oWorksheet, *oTableParts.m_arrItems[i]);
|
||||
};
|
||||
}
|
||||
void WriteTablePart(const OOX::Spreadsheet::CWorksheet& oWorksheet, const OOX::Spreadsheet::CTablePart& oTablePart)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -578,13 +578,13 @@ namespace BinXlsxRW
|
||||
public:
|
||||
BinaryStyleTableWriter(NSBinPptxRW::CBinaryFileWriter &oCBufferedStream, NSFontCutter::CEmbeddedFontsManager* pEmbeddedFontsManager):m_oBcw(oCBufferedStream),m_pEmbeddedFontsManager(pEmbeddedFontsManager)
|
||||
{
|
||||
};
|
||||
}
|
||||
void Write(OOX::Spreadsheet::CStyles& styles, PPTX::Theme* pTheme, DocWrapper::FontProcessor& oFontProcessor)
|
||||
{
|
||||
int nStart = m_oBcw.WriteItemWithLengthStart();
|
||||
WriteStylesContent(styles, pTheme, oFontProcessor);
|
||||
m_oBcw.WriteItemWithLengthEnd(nStart);
|
||||
};
|
||||
}
|
||||
void WriteStylesContent(OOX::Spreadsheet::CStyles& styles, PPTX::Theme* pTheme, DocWrapper::FontProcessor& oFontProcessor)
|
||||
{
|
||||
int nCurPos;
|
||||
@ -656,7 +656,7 @@ namespace BinXlsxRW
|
||||
WriteTableStyles(styles.m_oTableStyles.get());
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteBorders(const OOX::Spreadsheet::CBorders& borders, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* pTheme)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -667,7 +667,7 @@ namespace BinXlsxRW
|
||||
WriteBorder(*pBorder, pIndexedColors, pTheme);
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteBorder(const OOX::Spreadsheet::CBorder& border, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* pTheme)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -741,7 +741,7 @@ namespace BinXlsxRW
|
||||
m_oBcw.m_oStream.WriteBOOL(border.m_oOutline->ToBool());
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteBorderProp(const OOX::Spreadsheet::CBorderProp& borderProp, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* pTheme)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -761,7 +761,7 @@ namespace BinXlsxRW
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
m_oBcw.m_oStream.WriteBYTE((BYTE)borderProp.m_oStyle->GetValue());
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteCellStyleXfs(const OOX::Spreadsheet::CCellStyleXfs& cellStyleXfs)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -791,7 +791,7 @@ namespace BinXlsxRW
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteXfs(const OOX::Spreadsheet::CXfs& xfs)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -888,7 +888,7 @@ namespace BinXlsxRW
|
||||
WriteAligment(xfs.m_oAligment.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteAligment(const OOX::Spreadsheet::CAligment& aligment)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -952,7 +952,7 @@ namespace BinXlsxRW
|
||||
WriteFill(*pFill, pIndexedColors, pTheme, false);
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteFill(const OOX::Spreadsheet::CFill& fill, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* pTheme, bool bPriorityBg = false)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -1002,7 +1002,7 @@ namespace BinXlsxRW
|
||||
m_oBcw.WriteItemEnd(nCurPos2);
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteFonts(const OOX::Spreadsheet::CFonts& fonts, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* pTheme, DocWrapper::FontProcessor& oFontProcessor)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -1013,7 +1013,7 @@ namespace BinXlsxRW
|
||||
WriteFont(*pFont, pIndexedColors, pTheme, oFontProcessor);
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteFont(const OOX::Spreadsheet::CFont& font, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* theme, DocWrapper::FontProcessor& oFontProcessor)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -1092,7 +1092,7 @@ namespace BinXlsxRW
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
m_oBcw.m_oStream.WriteBYTE(font.m_oVertAlign->m_oVerticalAlign->GetValue());
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteNumFmts(const OOX::Spreadsheet::CNumFmts& numFmts)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -1103,7 +1103,7 @@ namespace BinXlsxRW
|
||||
WriteNumFmt(*pNumFmt);
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteNumFmt(const OOX::Spreadsheet::CNumFmt& numFmt)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -1125,7 +1125,7 @@ namespace BinXlsxRW
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Long);
|
||||
m_oBcw.m_oStream.WriteLONG(numFmt.m_oNumFmtId->GetValue());
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteCellStyles(const OOX::Spreadsheet::CCellStyles& oCellStyles)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -1190,7 +1190,7 @@ namespace BinXlsxRW
|
||||
WriteDxf(*pDxf, pIndexedColors, pTheme, oFontProcessor);
|
||||
m_oBcw.WriteItemEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteDxf(const OOX::Spreadsheet::CDxf& oDxf, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* pTheme, DocWrapper::FontProcessor& oFontProcessor)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -1328,13 +1328,13 @@ namespace BinXlsxRW
|
||||
public:
|
||||
BinarySharedStringTableWriter(NSBinPptxRW::CBinaryFileWriter &oCBufferedStream, NSFontCutter::CEmbeddedFontsManager* pEmbeddedFontsManager):m_oBcw(oCBufferedStream),m_pEmbeddedFontsManager(pEmbeddedFontsManager)
|
||||
{
|
||||
};
|
||||
}
|
||||
void Write(OOX::Spreadsheet::CSharedStrings& sharedString, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* pTheme, DocWrapper::FontProcessor& oFontProcessor)
|
||||
{
|
||||
int nStart = m_oBcw.WriteItemWithLengthStart();
|
||||
WriteSharedStrings(sharedString, pIndexedColors, pTheme, oFontProcessor);
|
||||
m_oBcw.WriteItemWithLengthEnd(nStart);
|
||||
};
|
||||
}
|
||||
void WriteSharedStrings(OOX::Spreadsheet::CSharedStrings& sharedString, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* pTheme, DocWrapper::FontProcessor& oFontProcessor)
|
||||
{
|
||||
int nCurPos;
|
||||
@ -1349,7 +1349,7 @@ namespace BinXlsxRW
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteSharedString(OOX::Spreadsheet::CSi& si, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* pTheme, DocWrapper::FontProcessor& oFontProcessor)
|
||||
{
|
||||
int nCurPos;
|
||||
@ -1373,7 +1373,7 @@ namespace BinXlsxRW
|
||||
m_pEmbeddedFontsManager->CheckString(pText->m_sText);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteRun(OOX::Spreadsheet::CRun& run, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* pTheme, DocWrapper::FontProcessor& oFontProcessor)
|
||||
{
|
||||
int nCurPos;
|
||||
@ -1397,7 +1397,7 @@ namespace BinXlsxRW
|
||||
m_pEmbeddedFontsManager->CheckString(pText->m_sText);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteRPr(const OOX::Spreadsheet::CRPr& rPr, OOX::Spreadsheet::CIndexedColors* pIndexedColors, PPTX::Theme* pTheme, DocWrapper::FontProcessor& oFontProcessor)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -1475,7 +1475,7 @@ namespace BinXlsxRW
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
m_oBcw.m_oStream.WriteBYTE(rPr.m_oVertAlign->m_oVerticalAlign->GetValue());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
};
|
||||
class BinaryWorkbookTableWriter
|
||||
@ -1524,15 +1524,19 @@ namespace BinXlsxRW
|
||||
}
|
||||
|
||||
smart_ptr<OOX::File> fileVbaProject = workbook.Get(OOX::FileTypes::VbaProject);
|
||||
if (fileVbaProject.IsInit())
|
||||
if (fileVbaProject.IsInit() && OOX::FileTypes::VbaProject == fileVbaProject->type())
|
||||
{
|
||||
nCurPos = m_oBcw.WriteItemStart(c_oSerWorkbookTypes::VbaProject);
|
||||
|
||||
smart_ptr<OOX::VbaProject> vbaProject = fileVbaProject.smart_dynamic_cast<OOX::VbaProject>();
|
||||
WriteVbaProject (vbaProject);
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
smart_ptr<OOX::VbaProject> vbaProject = fileVbaProject.smart_dynamic_cast<OOX::VbaProject>();
|
||||
|
||||
m_oBcw.m_oStream.StartRecord(0);
|
||||
vbaProject->toPPTY(&m_oBcw.m_oStream);
|
||||
m_oBcw.m_oStream.EndRecord();
|
||||
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteWorkbookPr(const OOX::Spreadsheet::CWorkbookPr& workbookPr)
|
||||
{
|
||||
//Date1904
|
||||
@ -1549,7 +1553,7 @@ namespace BinXlsxRW
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
m_oBcw.m_oStream.WriteBOOL(workbookPr.m_oDateCompatibility->ToBool());
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteBookViews(const OOX::Spreadsheet::CBookViews& bookViews)
|
||||
{
|
||||
int nCurPos;
|
||||
@ -1561,7 +1565,7 @@ namespace BinXlsxRW
|
||||
WriteWorkbookView(*pWorkbookView);
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteWorkbookView(const OOX::Spreadsheet::CWorkbookView& workbookView)
|
||||
{
|
||||
//ActiveTab
|
||||
@ -1571,7 +1575,7 @@ namespace BinXlsxRW
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Long);
|
||||
m_oBcw.m_oStream.WriteLONG(workbookView.m_oActiveTab->GetValue());
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteDefinedNames(const OOX::Spreadsheet::CDefinedNames& definedNames)
|
||||
{
|
||||
int nCurPos;
|
||||
@ -1583,7 +1587,7 @@ namespace BinXlsxRW
|
||||
WriteDefinedName(*pDefinedName);
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteExternalReferences(const OOX::Spreadsheet::CExternalReferences& externalReferences, OOX::Spreadsheet::CWorkbook& workbook)
|
||||
{
|
||||
int nCurPos;
|
||||
@ -1649,7 +1653,7 @@ namespace BinXlsxRW
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteExternalBook(const OOX::Spreadsheet::CExternalBook& externalBook, const std::wstring& sLink)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
@ -1972,18 +1976,6 @@ namespace BinXlsxRW
|
||||
m_oBcw.m_oStream.WriteStringW(definedName.m_oComment.get2());
|
||||
}
|
||||
}
|
||||
void WriteVbaProject(smart_ptr<OOX::VbaProject> & fileVbaProject)
|
||||
{
|
||||
std::wstring file_name = fileVbaProject->filename().GetFilename();
|
||||
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerWorkbookVbaProjectTypes::Name);
|
||||
m_oBcw.m_oStream.WriteStringW(file_name);
|
||||
|
||||
//... todooo write parsing vba project
|
||||
|
||||
//copy file bin
|
||||
fileVbaProject->copy_to(m_oBcw.m_oStream.m_pCommon->m_pImageManager->m_strDstMedia);
|
||||
}
|
||||
};
|
||||
class BinaryWorksheetTableWriter
|
||||
{
|
||||
@ -4129,13 +4121,13 @@ namespace BinXlsxRW
|
||||
public:
|
||||
BinaryCalcChainTableWriter(NSBinPptxRW::CBinaryFileWriter &oCBufferedStream) : m_oBcw(oCBufferedStream)
|
||||
{
|
||||
};
|
||||
}
|
||||
void Write(OOX::Spreadsheet::CCalcChain& pCalcChain)
|
||||
{
|
||||
int nStart = m_oBcw.WriteItemWithLengthStart();
|
||||
WriteCalcChainTableContent(pCalcChain);
|
||||
m_oBcw.WriteItemWithLengthEnd(nStart);
|
||||
};
|
||||
}
|
||||
void WriteCalcChainTableContent(OOX::Spreadsheet::CCalcChain& pCalcChain)
|
||||
{
|
||||
int nCurPos;
|
||||
@ -4146,7 +4138,7 @@ namespace BinXlsxRW
|
||||
WriteCalcChain(*pCalcChain.m_arrItems[i]);
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
void WriteCalcChain(OOX::Spreadsheet::CCalcCell& oCalcCell)
|
||||
{
|
||||
//Array
|
||||
@ -4191,7 +4183,7 @@ namespace BinXlsxRW
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
m_oBcw.m_oStream.WriteBOOL(oCalcCell.m_oNewThread->ToBool());
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
class BinaryOtherTableWriter
|
||||
{
|
||||
@ -4225,13 +4217,13 @@ namespace BinXlsxRW
|
||||
m_pTheme (pTheme),
|
||||
m_pOfficeDrawingConverter(pOfficeDrawingConverter)
|
||||
{
|
||||
};
|
||||
}
|
||||
void Write()
|
||||
{
|
||||
int nStart = m_oBcw.WriteItemWithLengthStart();
|
||||
WriteOtherTableContent();
|
||||
m_oBcw.WriteItemWithLengthEnd(nStart);
|
||||
};
|
||||
}
|
||||
void WriteOtherTableContent()
|
||||
{
|
||||
int nCurPos;
|
||||
@ -4252,7 +4244,7 @@ namespace BinXlsxRW
|
||||
m_pTheme->toPPTY(&m_oBcw.m_oStream);
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
class BinaryFileWriter {
|
||||
private:
|
||||
@ -4279,7 +4271,8 @@ namespace BinXlsxRW
|
||||
std::wstring mediaDir = path.GetDirectory() + L"media";
|
||||
NSDirectory::CreateDirectory(mediaDir);
|
||||
|
||||
pOfficeDrawingConverter->SetMediaDstPath(mediaDir);
|
||||
pOfficeDrawingConverter->SetDstPath(path.GetDirectory() + FILE_SEPARATOR_STR + L"word");
|
||||
pOfficeDrawingConverter->SetMediaDstPath(mediaDir);
|
||||
|
||||
long nGrowSize = 1 * 1024 * 1024;//1мб
|
||||
NSBinPptxRW::CBinaryFileWriter& oBufferedStream = *pOfficeDrawingConverter->m_pBinaryWriter;
|
||||
|
||||
@ -56,8 +56,8 @@ namespace BinXlsxRW {
|
||||
std::wstring sPath;
|
||||
int nIndex;
|
||||
std::map<OOX::Spreadsheet::CDrawing*, std::wstring> mapDrawings;
|
||||
public:
|
||||
ImageObject()
|
||||
|
||||
ImageObject()
|
||||
{
|
||||
}
|
||||
ImageObject(std::wstring& _sPath, int _nIndex)
|
||||
@ -75,8 +75,8 @@ namespace BinXlsxRW {
|
||||
OOX::Spreadsheet::CPivotCacheRecords* pRecords;
|
||||
long nCacheId;
|
||||
OOX::Spreadsheet::CPivotTable* pTable;
|
||||
public:
|
||||
PivotCachesTemp()
|
||||
|
||||
PivotCachesTemp()
|
||||
{
|
||||
nId = -1;
|
||||
pDefinitionData = NULL;
|
||||
@ -1515,7 +1515,7 @@ namespace BinXlsxRW {
|
||||
int Read()
|
||||
{
|
||||
return ReadTable(&BinaryWorkbookTableReader::ReadWorkbookTableContent, this);
|
||||
};
|
||||
}
|
||||
int ReadWorkbookTableContent(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -1548,12 +1548,19 @@ namespace BinXlsxRW {
|
||||
}
|
||||
else if(c_oSerWorkbookTypes::VbaProject == type)
|
||||
{
|
||||
res = Read1(length, &BinaryWorkbookTableReader::ReadVbaProject, this, poResult);
|
||||
}
|
||||
smart_ptr<OOX::VbaProject> oFileVbaProject(new OOX::VbaProject());
|
||||
|
||||
oFileVbaProject->fromPPTY(&m_oBufferedStream);
|
||||
|
||||
smart_ptr<OOX::File> oFile = oFileVbaProject.smart_dynamic_cast<OOX::File>();
|
||||
const OOX::RId oRId = m_oWorkbook.Add(oFile);
|
||||
|
||||
m_oWorkbook.m_bMacroEnabled = true;
|
||||
}
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadWorkbookPr(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -1570,7 +1577,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadBookViews(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -1660,7 +1667,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadDefinedNames(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -1673,7 +1680,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadDefinedName(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CDefinedName* pDefinedName = static_cast<OOX::Spreadsheet::CDefinedName*>(poResult);
|
||||
@ -1706,7 +1713,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadExternalBook(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CExternalLink* extLink = static_cast<OOX::Spreadsheet::CExternalLink*>(poResult);
|
||||
@ -1741,7 +1748,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadExternalSheetNames(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CExternalSheetNames* pSheetNames = static_cast<OOX::Spreadsheet::CExternalSheetNames*>(poResult);
|
||||
@ -1756,7 +1763,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadExternalDefinedNames(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CExternalDefinedNames* pDefinedNames = static_cast<OOX::Spreadsheet::CExternalDefinedNames*>(poResult);
|
||||
@ -1770,7 +1777,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadExternalDefinedName(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CExternalDefinedName* pDefinedName = static_cast<OOX::Spreadsheet::CExternalDefinedName*>(poResult);
|
||||
@ -1793,7 +1800,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadExternalSheetDataSet(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CExternalSheetDataSet* pSheetDataSet = static_cast<OOX::Spreadsheet::CExternalSheetDataSet*>(poResult);
|
||||
@ -1807,7 +1814,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadExternalSheetData(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CExternalSheetData* pSheetData = static_cast<OOX::Spreadsheet::CExternalSheetData*>(poResult);
|
||||
@ -1831,7 +1838,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadExternalRow(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CExternalRow* pRow = static_cast<OOX::Spreadsheet::CExternalRow*>(poResult);
|
||||
@ -1850,7 +1857,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadExternalCell(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CExternalCell* pCell = static_cast<OOX::Spreadsheet::CExternalCell*>(poResult);
|
||||
@ -1873,7 +1880,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadOleLink(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CExternalLink* extLink = static_cast<OOX::Spreadsheet::CExternalLink*>(poResult);
|
||||
@ -1908,7 +1915,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadOleItem(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::COleItem* pOleItem = static_cast<OOX::Spreadsheet::COleItem*>(poResult);
|
||||
@ -1936,7 +1943,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadDdeLink(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CDdeLink* ddeLink = static_cast<OOX::Spreadsheet::CDdeLink*>(poResult);
|
||||
@ -1964,7 +1971,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadDdeItem(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CDdeItem* pDdeItem = static_cast<OOX::Spreadsheet::CDdeItem*>(poResult);
|
||||
@ -1997,7 +2004,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadDdeValues(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CDdeValues* pDdeValues = static_cast<OOX::Spreadsheet::CDdeValues*>(poResult);
|
||||
@ -2021,7 +2028,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadDdeValue(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CDdeValue* pDdeValue = static_cast<OOX::Spreadsheet::CDdeValue*>(poResult);
|
||||
@ -2040,7 +2047,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadPivotCaches(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -2102,27 +2109,18 @@ namespace BinXlsxRW {
|
||||
int ReadVbaProject(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
if(c_oSerWorkbookVbaProjectTypes::Name == type)
|
||||
{
|
||||
std::wstring file_name = m_oBufferedStream.GetString4(length);
|
||||
|
||||
OOX::CPath inputPath = m_oBufferedStream.m_strFolder + FILE_SEPARATOR_STR + _T("media") + FILE_SEPARATOR_STR + file_name;
|
||||
OOX::CPath outputPath = m_sDestinationDir + FILE_SEPARATOR_STR + _T("xl") + FILE_SEPARATOR_STR + _T("vbaProject.bin");
|
||||
smart_ptr<OOX::VbaProject> oFileVbaProject(new OOX::VbaProject());
|
||||
|
||||
NSFile::CFileBinary::Copy(inputPath.GetPath(), outputPath.GetPath());
|
||||
oFileVbaProject->fromPPTY(&m_oBufferedStream);
|
||||
|
||||
smart_ptr<OOX::VbaProject> oFileVbaProject(new OOX::VbaProject());
|
||||
oFileVbaProject->set_filename(outputPath.GetPath());
|
||||
|
||||
smart_ptr<OOX::File> oFile = oFileVbaProject.smart_dynamic_cast<OOX::File>();
|
||||
const OOX::RId oRId = m_oWorkbook.Add(oFile);
|
||||
smart_ptr<OOX::File> oFile = oFileVbaProject.smart_dynamic_cast<OOX::File>();
|
||||
const OOX::RId oRId = m_oWorkbook.Add(oFile);
|
||||
|
||||
return res;
|
||||
m_oWorkbook.m_bMacroEnabled = true;
|
||||
|
||||
}
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
};
|
||||
class BinaryCommentReader : public Binary_CommonReader<BinaryCommentReader>
|
||||
{
|
||||
@ -2173,7 +2171,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadComment(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -2257,7 +2255,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadCommentDatas(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -2387,7 +2385,7 @@ namespace BinXlsxRW {
|
||||
{
|
||||
m_oWorkbook.m_oSheets.Init();
|
||||
return ReadTable(&BinaryWorksheetsTableReader::ReadWorksheetsTableContent, this);
|
||||
};
|
||||
}
|
||||
int ReadWorksheetsTableContent(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -2425,7 +2423,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadWorksheet(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -3011,7 +3009,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadPageMargins(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CPageMargins* pPageMargins = static_cast<OOX::Spreadsheet::CPageMargins*>(poResult);
|
||||
@ -3049,7 +3047,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadPageSetup(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CPageSetup* pPageSetup = static_cast<OOX::Spreadsheet::CPageSetup*>(poResult);
|
||||
@ -3067,7 +3065,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadPrintOptions(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CPrintOptions* pPrintOptions = static_cast<OOX::Spreadsheet::CPrintOptions*>(poResult);
|
||||
@ -3088,7 +3086,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadHyperlinks(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -3101,7 +3099,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadHyperlink(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CHyperlink* pHyperlink = static_cast<OOX::Spreadsheet::CHyperlink*>(poResult);
|
||||
@ -3136,7 +3134,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadMergeCells(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -3298,7 +3296,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadDrawing(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CCellAnchor* pCellAnchor = static_cast<OOX::Spreadsheet::CCellAnchor*>(poResult);
|
||||
@ -3346,7 +3344,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadFromTo(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CFromTo* pFromTo = static_cast<OOX::Spreadsheet::CFromTo*>(poResult);
|
||||
@ -3376,7 +3374,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadExt(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CExt* pExt = static_cast<OOX::Spreadsheet::CExt*>(poResult);
|
||||
@ -3396,7 +3394,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadPos(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CPos* pPos = static_cast<OOX::Spreadsheet::CPos*>(poResult);
|
||||
@ -3416,7 +3414,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadSheetData(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -3429,7 +3427,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadRow(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CRow* pRow = static_cast<OOX::Spreadsheet::CRow*>(poResult);
|
||||
@ -3637,7 +3635,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadConditionalFormatting(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CConditionalFormatting* pConditionalFormatting = static_cast<OOX::Spreadsheet::CConditionalFormatting*>(poResult);
|
||||
@ -3661,7 +3659,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadConditionalFormattingRule(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CConditionalFormattingRule* pConditionalFormattingRule = static_cast<OOX::Spreadsheet::CConditionalFormattingRule*>(poResult);
|
||||
@ -3778,7 +3776,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadDataBar(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CDataBar* pDataBar = static_cast<OOX::Spreadsheet::CDataBar*>(poResult);
|
||||
@ -4026,7 +4024,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadSparklines(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CSparklines* pSparklines = static_cast<OOX::Spreadsheet::CSparklines*>(poResult);
|
||||
@ -4040,7 +4038,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadSparkline(BYTE type, long length, void* poResult)
|
||||
{
|
||||
OOX::Spreadsheet::CSparkline* pSparkline = static_cast<OOX::Spreadsheet::CSparkline*>(poResult);
|
||||
@ -4104,7 +4102,7 @@ namespace BinXlsxRW {
|
||||
int Read()
|
||||
{
|
||||
return ReadTable(&BinaryOtherTableReader::ReadOtherTableContent, this);
|
||||
};
|
||||
}
|
||||
int ReadOtherTableContent(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
@ -4138,7 +4136,7 @@ namespace BinXlsxRW {
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
return res;
|
||||
};
|
||||
}
|
||||
int ReadMediaItem(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
|
||||
Reference in New Issue
Block a user