/* * (c) Copyright Ascensio System SIA 2010-2023 * * This program is a free software product. You can redistribute it and/or * modify it under the terms of the GNU Affero General Public License (AGPL) * version 3 as published by the Free Software Foundation. In accordance with * Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect * that Ascensio System SIA expressly excludes the warranty of non-infringement * of any third-party rights. * * This program is distributed WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For * details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html * * You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish * street, Riga, Latvia, EU, LV-1050. * * The interactive user interfaces in modified source and object code versions * of the Program must display Appropriate Legal Notices, as required under * Section 5 of the GNU AGPL version 3. * * Pursuant to Section 7(b) of the License you must retain the original Product * logo when distributing the program. Pursuant to Section 7(e) we decline to * grant you any rights under trademark law for use of our trademarks. * * All the Product's GUI elements, including illustrations and icon sets, as * well as technical writing content are licensed under the terms of the * Creative Commons Attribution-ShareAlike 4.0 International. See the License * terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode * */ #include "../Writer/BinaryReaderS.h" #include "../../Presentation/BinReaderWriterDefines.h" #include "../../Document/BinReader/DefaultThemeWriter.h" #include "../../../XlsxFormat/Chart/Chart.h" #include "../../../XlsxFormat/Chart/ChartDrawing.h" #include "../../../PPTXFormat/Theme.h" #include "../../Document/DocWrapper/XlsxSerializer.h" #include "../../../../OfficeUtils/src/OfficeUtils.h" using namespace OOX::Spreadsheet; namespace BinXlsxRW { SaveParams::SaveParams(const std::wstring& _sDrawingsPath, const std::wstring& _sEmbeddingsPath, const std::wstring& _sThemePath, OOX::CContentTypes* _pContentTypes, CSVWriter* _pCSVWriter, bool bMacro) : bMacroEnabled(bMacro), pContentTypes(_pContentTypes), sThemePath(_sThemePath), sDrawingsPath(_sDrawingsPath), sEmbeddingsPath(_sEmbeddingsPath), pCSVWriter(_pCSVWriter) { } const BYTE c_oserct_extlstEXT = 0; const BYTE c_oserct_chartspaceDATE1904 = 0; const BYTE c_oserct_chartspaceLANG = 1; const BYTE c_oserct_chartspaceROUNDEDCORNERS = 2; const BYTE c_oserct_chartspaceALTERNATECONTENT = 3; const BYTE c_oserct_chartspaceSTYLE = 4; const BYTE c_oserct_chartspaceCLRMAPOVR = 5; const BYTE c_oserct_chartspacePIVOTSOURCE = 6; const BYTE c_oserct_chartspacePROTECTION = 7; const BYTE c_oserct_chartspaceCHART = 8; const BYTE c_oserct_chartspaceSPPR = 9; const BYTE c_oserct_chartspaceTXPR = 10; const BYTE c_oserct_chartspaceEXTERNALDATA = 11; const BYTE c_oserct_chartspacePRINTSETTINGS = 12; const BYTE c_oserct_chartspaceUSERSHAPES = 13; const BYTE c_oserct_chartspaceTHEMEOVERRIDE = 15; const BYTE c_oserct_chartspaceXLSX = 16; const BYTE c_oserct_chartspaceSTYLES = 17; const BYTE c_oserct_chartspaceCOLORS = 18; const BYTE c_oserct_chartspaceXLSXEXTERNAL = 19; const BYTE c_oserct_chartspaceXLSXZIP = 20; const BYTE c_oserct_usershapes_COUNT = 0; const BYTE c_oserct_usershapes_SHAPE_REL = 1; const BYTE c_oserct_usershapes_SHAPE_ABS = 2; const BYTE c_oserct_unsignedintVAL = 0; const BYTE c_oserct_booleanVAL = 0; const BYTE c_oserct_doubleVAL = 0; const BYTE c_oserct_stringVAL = 0; const BYTE c_oserct_byteVAL = 0; const BYTE c_oserct_pagesetupPAPERSIZE = 0; const BYTE c_oserct_pagesetupPAPERHEIGHT = 1; const BYTE c_oserct_pagesetupPAPERWIDTH = 2; const BYTE c_oserct_pagesetupFIRSTPAGENUMBER = 3; const BYTE c_oserct_pagesetupORIENTATION = 4; const BYTE c_oserct_pagesetupBLACKANDWHITE = 5; const BYTE c_oserct_pagesetupDRAFT = 6; const BYTE c_oserct_pagesetupUSEFIRSTPAGENUMBER = 7; const BYTE c_oserct_pagesetupHORIZONTALDPI = 8; const BYTE c_oserct_pagesetupVERTICALDPI = 9; const BYTE c_oserct_pagesetupCOPIES = 10; const BYTE c_oserct_pagemarginsL = 0; const BYTE c_oserct_pagemarginsR = 1; const BYTE c_oserct_pagemarginsT = 2; const BYTE c_oserct_pagemarginsB = 3; const BYTE c_oserct_pagemarginsHEADER = 4; const BYTE c_oserct_pagemarginsFOOTER = 5; const BYTE c_oserct_headerfooterODDHEADER = 0; const BYTE c_oserct_headerfooterODDFOOTER = 1; const BYTE c_oserct_headerfooterEVENHEADER = 2; const BYTE c_oserct_headerfooterEVENFOOTER = 3; const BYTE c_oserct_headerfooterFIRSTHEADER = 4; const BYTE c_oserct_headerfooterFIRSTFOOTER = 5; const BYTE c_oserct_headerfooterALIGNWITHMARGINS = 6; const BYTE c_oserct_headerfooterDIFFERENTODDEVEN = 7; const BYTE c_oserct_headerfooterDIFFERENTFIRST = 8; const BYTE c_oserct_printsettingsHEADERFOOTER = 0; const BYTE c_oserct_printsettingsPAGEMARGINS = 1; const BYTE c_oserct_printsettingsPAGESETUP = 2; const BYTE c_oserct_externaldataAUTOUPDATE = 0; const BYTE c_oserct_dispblanksasVAL = 0; const BYTE c_oserct_legendentryIDX = 0; const BYTE c_oserct_legendentryDELETE = 1; const BYTE c_oserct_legendentryTXPR = 2; const BYTE c_oserct_extensionANY = 0; const BYTE c_oserct_extensionURI = 1; const BYTE c_oserct_legendposVAL = 0; const BYTE c_oserct_legendLEGENDPOS = 0; const BYTE c_oserct_legendLEGENDENTRY = 1; const BYTE c_oserct_legendLAYOUT = 2; const BYTE c_oserct_legendOVERLAY = 3; const BYTE c_oserct_legendSPPR = 4; const BYTE c_oserct_legendTXPR = 5; const BYTE c_oserct_layoutMANUALLAYOUT = 0; const BYTE c_oserct_manuallayoutLAYOUTTARGET = 0; const BYTE c_oserct_manuallayoutXMODE = 1; const BYTE c_oserct_manuallayoutYMODE = 2; const BYTE c_oserct_manuallayoutWMODE = 3; const BYTE c_oserct_manuallayoutHMODE = 4; const BYTE c_oserct_manuallayoutX = 5; const BYTE c_oserct_manuallayoutY = 6; const BYTE c_oserct_manuallayoutW = 7; const BYTE c_oserct_manuallayoutH = 8; const BYTE c_oserct_layouttargetVAL = 0; const BYTE c_oserct_layoutmodeVAL = 0; const BYTE c_oserct_dtableSHOWHORZBORDER = 0; const BYTE c_oserct_dtableSHOWVERTBORDER = 1; const BYTE c_oserct_dtableSHOWOUTLINE = 2; const BYTE c_oserct_dtableSHOWKEYS = 3; const BYTE c_oserct_dtableSPPR = 4; const BYTE c_oserct_dtableTXPR = 5; const BYTE c_oserct_seraxAXID = 0; const BYTE c_oserct_seraxSCALING = 1; const BYTE c_oserct_seraxDELETE = 2; const BYTE c_oserct_seraxAXPOS = 3; const BYTE c_oserct_seraxMAJORGRIDLINES = 4; const BYTE c_oserct_seraxMINORGRIDLINES = 5; const BYTE c_oserct_seraxTITLE = 6; const BYTE c_oserct_seraxNUMFMT = 7; const BYTE c_oserct_seraxMAJORTICKMARK = 8; const BYTE c_oserct_seraxMINORTICKMARK = 9; const BYTE c_oserct_seraxTICKLBLPOS = 10; const BYTE c_oserct_seraxSPPR = 11; const BYTE c_oserct_seraxTXPR = 12; const BYTE c_oserct_seraxCROSSAX = 13; const BYTE c_oserct_seraxCROSSES = 14; const BYTE c_oserct_seraxCROSSESAT = 15; const BYTE c_oserct_seraxTICKLBLSKIP = 16; const BYTE c_oserct_seraxTICKMARKSKIP = 17; const BYTE c_oserct_scalingLOGBASE = 0; const BYTE c_oserct_scalingORIENTATION = 1; const BYTE c_oserct_scalingMAX = 2; const BYTE c_oserct_scalingMIN = 3; const BYTE c_oserct_logbaseVAL = 0; const BYTE c_oserct_orientationVAL = 0; const BYTE c_oserct_axposVAL = 0; const BYTE c_oserct_chartlinesSPPR = 0; const BYTE c_oserct_titleTX = 0; const BYTE c_oserct_titleLAYOUT = 1; const BYTE c_oserct_titleOVERLAY = 2; const BYTE c_oserct_titleSPPR = 3; const BYTE c_oserct_titleTXPR = 4; const BYTE c_oserct_txRICH = 0; const BYTE c_oserct_txSTRREF = 1; const BYTE c_oserct_strrefF = 0; const BYTE c_oserct_strrefSTRCACHE = 1; const BYTE c_oserct_strdataPTCOUNT = 0; const BYTE c_oserct_strdataPT = 1; const BYTE c_oserct_strvalV = 0; const BYTE c_oserct_strvalIDX = 1; const BYTE c_oserct_numfmtFORMATCODE = 0; const BYTE c_oserct_numfmtSOURCELINKED = 1; const BYTE c_oserct_tickmarkVAL = 0; const BYTE c_oserct_ticklblposVAL = 0; const BYTE c_oserct_crossesVAL = 0; const BYTE c_oserct_skipVAL = 0; const BYTE c_oserct_timeunitVAL = 0; const BYTE c_oserct_dateaxAXID = 0; const BYTE c_oserct_dateaxSCALING = 1; const BYTE c_oserct_dateaxDELETE = 2; const BYTE c_oserct_dateaxAXPOS = 3; const BYTE c_oserct_dateaxMAJORGRIDLINES = 4; const BYTE c_oserct_dateaxMINORGRIDLINES = 5; const BYTE c_oserct_dateaxTITLE = 6; const BYTE c_oserct_dateaxNUMFMT = 7; const BYTE c_oserct_dateaxMAJORTICKMARK = 8; const BYTE c_oserct_dateaxMINORTICKMARK = 9; const BYTE c_oserct_dateaxTICKLBLPOS = 10; const BYTE c_oserct_dateaxSPPR = 11; const BYTE c_oserct_dateaxTXPR = 12; const BYTE c_oserct_dateaxCROSSAX = 13; const BYTE c_oserct_dateaxCROSSES = 14; const BYTE c_oserct_dateaxCROSSESAT = 15; const BYTE c_oserct_dateaxAUTO = 16; const BYTE c_oserct_dateaxLBLOFFSET = 17; const BYTE c_oserct_dateaxBASETIMEUNIT = 18; const BYTE c_oserct_dateaxMAJORUNIT = 19; const BYTE c_oserct_dateaxMAJORTIMEUNIT = 20; const BYTE c_oserct_dateaxMINORUNIT = 21; const BYTE c_oserct_dateaxMINORTIMEUNIT = 22; const BYTE c_oserct_lbloffsetVAL = 0; const BYTE c_oserct_axisunitVAL = 0; const BYTE c_oserct_lblalgnVAL = 0; const BYTE c_oserct_cataxAXID = 0; const BYTE c_oserct_cataxSCALING = 1; const BYTE c_oserct_cataxDELETE = 2; const BYTE c_oserct_cataxAXPOS = 3; const BYTE c_oserct_cataxMAJORGRIDLINES = 4; const BYTE c_oserct_cataxMINORGRIDLINES = 5; const BYTE c_oserct_cataxTITLE = 6; const BYTE c_oserct_cataxNUMFMT = 7; const BYTE c_oserct_cataxMAJORTICKMARK = 8; const BYTE c_oserct_cataxMINORTICKMARK = 9; const BYTE c_oserct_cataxTICKLBLPOS = 10; const BYTE c_oserct_cataxSPPR = 11; const BYTE c_oserct_cataxTXPR = 12; const BYTE c_oserct_cataxCROSSAX = 13; const BYTE c_oserct_cataxCROSSES = 14; const BYTE c_oserct_cataxCROSSESAT = 15; const BYTE c_oserct_cataxAUTO = 16; const BYTE c_oserct_cataxLBLALGN = 17; const BYTE c_oserct_cataxLBLOFFSET = 18; const BYTE c_oserct_cataxTICKLBLSKIP = 19; const BYTE c_oserct_cataxTICKMARKSKIP = 20; const BYTE c_oserct_cataxNOMULTILVLLBL = 21; const BYTE c_oserct_dispunitslblLAYOUT = 0; const BYTE c_oserct_dispunitslblTX = 1; const BYTE c_oserct_dispunitslblSPPR = 2; const BYTE c_oserct_dispunitslblTXPR = 3; const BYTE c_oserct_builtinunitVAL = 0; const BYTE c_oserct_dispunitsBUILTINUNIT = 0; const BYTE c_oserct_dispunitsCUSTUNIT = 1; const BYTE c_oserct_dispunitsDISPUNITSLBL = 2; const BYTE c_oserct_crossbetweenVAL = 0; const BYTE c_oserct_valaxAXID = 0; const BYTE c_oserct_valaxSCALING = 1; const BYTE c_oserct_valaxDELETE = 2; const BYTE c_oserct_valaxAXPOS = 3; const BYTE c_oserct_valaxMAJORGRIDLINES = 4; const BYTE c_oserct_valaxMINORGRIDLINES = 5; const BYTE c_oserct_valaxTITLE = 6; const BYTE c_oserct_valaxNUMFMT = 7; const BYTE c_oserct_valaxMAJORTICKMARK = 8; const BYTE c_oserct_valaxMINORTICKMARK = 9; const BYTE c_oserct_valaxTICKLBLPOS = 10; const BYTE c_oserct_valaxSPPR = 11; const BYTE c_oserct_valaxTXPR = 12; const BYTE c_oserct_valaxCROSSAX = 13; const BYTE c_oserct_valaxCROSSES = 14; const BYTE c_oserct_valaxCROSSESAT = 15; const BYTE c_oserct_valaxCROSSBETWEEN = 16; const BYTE c_oserct_valaxMAJORUNIT = 17; const BYTE c_oserct_valaxMINORUNIT = 18; const BYTE c_oserct_valaxDISPUNITS = 19; const BYTE c_oserct_sizerepresentsVAL = 0; const BYTE c_oserct_bubblescaleVAL = 0; const BYTE c_oserct_bubbleserIDX = 0; const BYTE c_oserct_bubbleserORDER = 1; const BYTE c_oserct_bubbleserTX = 2; const BYTE c_oserct_bubbleserSPPR = 3; const BYTE c_oserct_bubbleserINVERTIFNEGATIVE = 4; const BYTE c_oserct_bubbleserDPT = 5; const BYTE c_oserct_bubbleserDLBLS = 6; const BYTE c_oserct_bubbleserTRENDLINE = 7; const BYTE c_oserct_bubbleserERRBARS = 8; const BYTE c_oserct_bubbleserXVAL = 9; const BYTE c_oserct_bubbleserYVAL = 10; const BYTE c_oserct_bubbleserBUBBLESIZE = 11; const BYTE c_oserct_bubbleserBUBBLE3D = 12; const BYTE c_oserct_sertxSTRREF = 0; const BYTE c_oserct_sertxV = 1; const BYTE c_oserct_dptIDX = 0; const BYTE c_oserct_dptINVERTIFNEGATIVE = 1; const BYTE c_oserct_dptMARKER = 2; const BYTE c_oserct_dptBUBBLE3D = 3; const BYTE c_oserct_dptEXPLOSION = 4; const BYTE c_oserct_dptSPPR = 5; const BYTE c_oserct_dptPICTUREOPTIONS = 6; const BYTE c_oserct_markerSYMBOL = 0; const BYTE c_oserct_markerSIZE = 1; const BYTE c_oserct_markerSPPR = 2; const BYTE c_oserct_markerstyleVAL = 0; const BYTE c_oserct_markersizeVAL = 0; const BYTE c_oserct_pictureoptionsAPPLYTOFRONT = 0; const BYTE c_oserct_pictureoptionsAPPLYTOSIDES = 1; const BYTE c_oserct_pictureoptionsAPPLYTOEND = 2; const BYTE c_oserct_pictureoptionsPICTUREFORMAT = 3; const BYTE c_oserct_pictureoptionsPICTURESTACKUNIT = 4; const BYTE c_oserct_pictureformatVAL = 0; const BYTE c_oserct_picturestackunitVAL = 0; const BYTE c_oserct_dlblsDLBL = 0; const BYTE c_oserct_dlblsITEMS = 1; const BYTE c_oserct_dlblsDLBLPOS = 2; const BYTE c_oserct_dlblsDELETE = 3; const BYTE c_oserct_dlblsLEADERLINES = 4; const BYTE c_oserct_dlblsNUMFMT = 5; const BYTE c_oserct_dlblsSEPARATOR = 6; const BYTE c_oserct_dlblsSHOWBUBBLESIZE = 7; const BYTE c_oserct_dlblsSHOWCATNAME = 8; const BYTE c_oserct_dlblsSHOWLEADERLINES = 9; const BYTE c_oserct_dlblsSHOWLEGENDKEY = 10; const BYTE c_oserct_dlblsSHOWPERCENT = 11; const BYTE c_oserct_dlblsSHOWSERNAME = 12; const BYTE c_oserct_dlblsSHOWVAL = 13; const BYTE c_oserct_dlblsSPPR = 14; const BYTE c_oserct_dlblsTXPR = 15; const BYTE c_oserct_dlblIDX = 0; const BYTE c_oserct_dlblITEMS = 1; const BYTE c_oserct_dlblDLBLPOS = 2; const BYTE c_oserct_dlblDELETE = 3; const BYTE c_oserct_dlblLAYOUT = 4; const BYTE c_oserct_dlblNUMFMT = 5; const BYTE c_oserct_dlblSEPARATOR = 6; const BYTE c_oserct_dlblSHOWBUBBLESIZE = 7; const BYTE c_oserct_dlblSHOWCATNAME = 8; const BYTE c_oserct_dlblSHOWLEGENDKEY = 9; const BYTE c_oserct_dlblSHOWPERCENT = 10; const BYTE c_oserct_dlblSHOWSERNAME = 11; const BYTE c_oserct_dlblSHOWVAL = 12; const BYTE c_oserct_dlblSPPR = 13; const BYTE c_oserct_dlblTX = 14; const BYTE c_oserct_dlblTXPR = 15; const BYTE c_oserct_xForSave = 25; const BYTE c_oserct_showDataLabelsRange = 26; const BYTE c_oserct_showLeaderLines = 27; const BYTE c_oserct_leaderLines = 28; const BYTE c_oserct_dlblFieldTable = 29; const BYTE c_oserct_dlblposVAL = 0; const BYTE c_oserct_trendlineNAME = 0; const BYTE c_oserct_trendlineSPPR = 1; const BYTE c_oserct_trendlineTRENDLINETYPE = 2; const BYTE c_oserct_trendlineORDER = 3; const BYTE c_oserct_trendlinePERIOD = 4; const BYTE c_oserct_trendlineFORWARD = 5; const BYTE c_oserct_trendlineBACKWARD = 6; const BYTE c_oserct_trendlineINTERCEPT = 7; const BYTE c_oserct_trendlineDISPRSQR = 8; const BYTE c_oserct_trendlineDISPEQ = 9; const BYTE c_oserct_trendlineTRENDLINELBL = 10; const BYTE c_oserct_trendlinetypeVAL = 0; const BYTE c_oserct_orderVAL = 0; const BYTE c_oserct_periodVAL = 0; const BYTE c_oserct_trendlinelblLAYOUT = 0; const BYTE c_oserct_trendlinelblTX = 1; const BYTE c_oserct_trendlinelblNUMFMT = 2; const BYTE c_oserct_trendlinelblSPPR = 3; const BYTE c_oserct_trendlinelblTXPR = 4; const BYTE c_oserct_errbarsERRDIR = 0; const BYTE c_oserct_errbarsERRBARTYPE = 1; const BYTE c_oserct_errbarsERRVALTYPE = 2; const BYTE c_oserct_errbarsNOENDCAP = 3; const BYTE c_oserct_errbarsPLUS = 4; const BYTE c_oserct_errbarsMINUS = 5; const BYTE c_oserct_errbarsVAL = 6; const BYTE c_oserct_errbarsSPPR = 7; const BYTE c_oserct_errdirVAL = 0; const BYTE c_oserct_errbartypeVAL = 0; const BYTE c_oserct_errvaltypeVAL = 0; const BYTE c_oserct_numdatasourceNUMLIT = 0; const BYTE c_oserct_numdatasourceNUMREF = 1; const BYTE c_oserct_numdataFORMATCODE = 0; const BYTE c_oserct_numdataPTCOUNT = 1; const BYTE c_oserct_numdataPT = 2; const BYTE c_oserct_numvalV = 0; const BYTE c_oserct_numvalIDX = 1; const BYTE c_oserct_numvalFORMATCODE = 2; const BYTE c_oserct_numrefF = 0; const BYTE c_oserct_numrefNUMCACHE = 1; const BYTE c_oserct_axdatasourceMULTILVLSTRREF = 0; const BYTE c_oserct_axdatasourceNUMLIT = 1; const BYTE c_oserct_axdatasourceNUMREF = 2; const BYTE c_oserct_axdatasourceSTRLIT = 3; const BYTE c_oserct_axdatasourceSTRREF = 4; const BYTE c_oserct_multilvlstrrefF = 0; const BYTE c_oserct_multilvlstrrefMULTILVLSTRCACHE = 1; const BYTE c_oserct_lvlPT = 0; const BYTE c_oserct_multilvlstrdataPTCOUNT = 0; const BYTE c_oserct_multilvlstrdataLVL = 1; const BYTE c_oserct_bubblechartVARYCOLORS = 0; const BYTE c_oserct_bubblechartSER = 1; const BYTE c_oserct_bubblechartDLBLS = 2; const BYTE c_oserct_bubblechartBUBBLE3D = 3; const BYTE c_oserct_bubblechartBUBBLESCALE = 4; const BYTE c_oserct_bubblechartSHOWNEGBUBBLES = 5; const BYTE c_oserct_bubblechartSIZEREPRESENTS = 6; const BYTE c_oserct_bubblechartAXID = 7; const BYTE c_oserct_bandfmtsBANDFMT = 0; const BYTE c_oserct_surface3dchartWIREFRAME = 0; const BYTE c_oserct_surface3dchartSER = 1; const BYTE c_oserct_surface3dchartBANDFMTS = 2; const BYTE c_oserct_surface3dchartAXID = 3; const BYTE c_oserct_surfaceserIDX = 0; const BYTE c_oserct_surfaceserORDER = 1; const BYTE c_oserct_surfaceserTX = 2; const BYTE c_oserct_surfaceserSPPR = 3; const BYTE c_oserct_surfaceserCAT = 4; const BYTE c_oserct_surfaceserVAL = 5; const BYTE c_oserct_bandfmtIDX = 0; const BYTE c_oserct_bandfmtSPPR = 1; const BYTE c_oserct_surfacechartWIREFRAME = 0; const BYTE c_oserct_surfacechartSER = 1; const BYTE c_oserct_surfacechartBANDFMTS = 2; const BYTE c_oserct_surfacechartAXID = 3; const BYTE c_oserct_secondpiesizeVAL = 0; const BYTE c_oserct_splittypeVAL = 0; const BYTE c_oserct_ofpietypeVAL = 0; const BYTE c_oserct_custsplitSECONDPIEPT = 0; const BYTE c_oserct_ofpiechartOFPIETYPE = 0; const BYTE c_oserct_ofpiechartVARYCOLORS = 1; const BYTE c_oserct_ofpiechartSER = 2; const BYTE c_oserct_ofpiechartDLBLS = 3; const BYTE c_oserct_ofpiechartGAPWIDTH = 4; const BYTE c_oserct_ofpiechartSPLITTYPE = 5; const BYTE c_oserct_ofpiechartSPLITPOS = 6; const BYTE c_oserct_ofpiechartCUSTSPLIT = 7; const BYTE c_oserct_ofpiechartSECONDPIESIZE = 8; const BYTE c_oserct_ofpiechartSERLINES = 9; const BYTE c_oserct_pieserIDX = 0; const BYTE c_oserct_pieserORDER = 1; const BYTE c_oserct_pieserTX = 2; const BYTE c_oserct_pieserSPPR = 3; const BYTE c_oserct_pieserEXPLOSION = 4; const BYTE c_oserct_pieserDPT = 5; const BYTE c_oserct_pieserDLBLS = 6; const BYTE c_oserct_pieserCAT = 7; const BYTE c_oserct_pieserVAL = 8; const BYTE c_oserct_gapamountVAL = 0; const BYTE c_oserct_bar3dchartBARDIR = 0; const BYTE c_oserct_bar3dchartGROUPING = 1; const BYTE c_oserct_bar3dchartVARYCOLORS = 2; const BYTE c_oserct_bar3dchartSER = 3; const BYTE c_oserct_bar3dchartDLBLS = 4; const BYTE c_oserct_bar3dchartGAPWIDTH = 5; const BYTE c_oserct_bar3dchartGAPDEPTH = 6; const BYTE c_oserct_bar3dchartSHAPE = 7; const BYTE c_oserct_bar3dchartAXID = 8; const BYTE c_oserct_bardirVAL = 0; const BYTE c_oserct_bargroupingVAL = 0; const BYTE c_oserct_barserIDX = 0; const BYTE c_oserct_barserORDER = 1; const BYTE c_oserct_barserTX = 2; const BYTE c_oserct_barserSPPR = 3; const BYTE c_oserct_barserINVERTIFNEGATIVE = 4; const BYTE c_oserct_barserPICTUREOPTIONS = 5; const BYTE c_oserct_barserDPT = 6; const BYTE c_oserct_barserDLBLS = 7; const BYTE c_oserct_barserTRENDLINE = 8; const BYTE c_oserct_barserERRBARS = 9; const BYTE c_oserct_barserCAT = 10; const BYTE c_oserct_barserVAL = 11; const BYTE c_oserct_barserSHAPE = 12; const BYTE c_oserct_shapeVAL = 0; const BYTE c_oserct_overlapVAL = 0; const BYTE c_oserct_barchartBARDIR = 0; const BYTE c_oserct_barchartGROUPING = 1; const BYTE c_oserct_barchartVARYCOLORS = 2; const BYTE c_oserct_barchartSER = 3; const BYTE c_oserct_barchartDLBLS = 4; const BYTE c_oserct_barchartGAPWIDTH = 5; const BYTE c_oserct_barchartOVERLAP = 6; const BYTE c_oserct_barchartSERLINES = 7; const BYTE c_oserct_barchartAXID = 8; const BYTE c_oserct_holesizeVAL = 0; const BYTE c_oserct_doughnutchartVARYCOLORS = 0; const BYTE c_oserct_doughnutchartSER = 1; const BYTE c_oserct_doughnutchartDLBLS = 2; const BYTE c_oserct_doughnutchartFIRSTSLICEANG = 3; const BYTE c_oserct_doughnutchartHOLESIZE = 4; const BYTE c_oserct_firstsliceangVAL = 0; const BYTE c_oserct_pie3dchartVARYCOLORS = 0; const BYTE c_oserct_pie3dchartSER = 1; const BYTE c_oserct_pie3dchartDLBLS = 2; const BYTE c_oserct_piechartVARYCOLORS = 0; const BYTE c_oserct_piechartSER = 1; const BYTE c_oserct_piechartDLBLS = 2; const BYTE c_oserct_piechartFIRSTSLICEANG = 3; const BYTE c_oserct_scatterserIDX = 0; const BYTE c_oserct_scatterserORDER = 1; const BYTE c_oserct_scatterserTX = 2; const BYTE c_oserct_scatterserSPPR = 3; const BYTE c_oserct_scatterserMARKER = 4; const BYTE c_oserct_scatterserDPT = 5; const BYTE c_oserct_scatterserDLBLS = 6; const BYTE c_oserct_scatterserTRENDLINE = 7; const BYTE c_oserct_scatterserERRBARS = 8; const BYTE c_oserct_scatterserXVAL = 9; const BYTE c_oserct_scatterserYVAL = 10; const BYTE c_oserct_scatterserSMOOTH = 11; const BYTE c_oserct_scatterstyleVAL = 0; const BYTE c_oserct_scatterchartSCATTERSTYLE = 0; const BYTE c_oserct_scatterchartVARYCOLORS = 1; const BYTE c_oserct_scatterchartSER = 2; const BYTE c_oserct_scatterchartDLBLS = 3; const BYTE c_oserct_scatterchartAXID = 4; const BYTE c_oserct_radarserIDX = 0; const BYTE c_oserct_radarserORDER = 1; const BYTE c_oserct_radarserTX = 2; const BYTE c_oserct_radarserSPPR = 3; const BYTE c_oserct_radarserMARKER = 4; const BYTE c_oserct_radarserDPT = 5; const BYTE c_oserct_radarserDLBLS = 6; const BYTE c_oserct_radarserCAT = 7; const BYTE c_oserct_radarserVAL = 8; const BYTE c_oserct_radarstyleVAL = 0; const BYTE c_oserct_radarchartRADARSTYLE = 0; const BYTE c_oserct_radarchartVARYCOLORS = 1; const BYTE c_oserct_radarchartSER = 2; const BYTE c_oserct_radarchartDLBLS = 3; const BYTE c_oserct_radarchartAXID = 4; const BYTE c_oserct_stockchartSER = 0; const BYTE c_oserct_stockchartDLBLS = 1; const BYTE c_oserct_stockchartDROPLINES = 2; const BYTE c_oserct_stockchartHILOWLINES = 3; const BYTE c_oserct_stockchartUPDOWNBARS = 4; const BYTE c_oserct_stockchartAXID = 5; const BYTE c_oserct_lineserIDX = 0; const BYTE c_oserct_lineserORDER = 1; const BYTE c_oserct_lineserTX = 2; const BYTE c_oserct_lineserSPPR = 3; const BYTE c_oserct_lineserMARKER = 4; const BYTE c_oserct_lineserDPT = 5; const BYTE c_oserct_lineserDLBLS = 6; const BYTE c_oserct_lineserTRENDLINE = 7; const BYTE c_oserct_lineserERRBARS = 8; const BYTE c_oserct_lineserCAT = 9; const BYTE c_oserct_lineserVAL = 10; const BYTE c_oserct_lineserSMOOTH = 11; const BYTE c_oserct_updownbarsGAPWIDTH = 0; const BYTE c_oserct_updownbarsUPBARS = 1; const BYTE c_oserct_updownbarsDOWNBARS = 2; const BYTE c_oserct_updownbarSPPR = 0; const BYTE c_oserct_line3dchartGROUPING = 0; const BYTE c_oserct_line3dchartVARYCOLORS = 1; const BYTE c_oserct_line3dchartSER = 2; const BYTE c_oserct_line3dchartDLBLS = 3; const BYTE c_oserct_line3dchartDROPLINES = 4; const BYTE c_oserct_line3dchartGAPDEPTH = 5; const BYTE c_oserct_line3dchartAXID = 6; const BYTE c_oserct_groupingVAL = 0; const BYTE c_oserct_linechartGROUPING = 0; const BYTE c_oserct_linechartVARYCOLORS = 1; const BYTE c_oserct_linechartSER = 2; const BYTE c_oserct_linechartDLBLS = 3; const BYTE c_oserct_linechartDROPLINES = 4; const BYTE c_oserct_linechartHILOWLINES = 5; const BYTE c_oserct_linechartUPDOWNBARS = 6; const BYTE c_oserct_linechartMARKER = 7; const BYTE c_oserct_linechartSMOOTH = 8; const BYTE c_oserct_linechartAXID = 9; const BYTE c_oserct_area3dchartGROUPING = 0; const BYTE c_oserct_area3dchartVARYCOLORS = 1; const BYTE c_oserct_area3dchartSER = 2; const BYTE c_oserct_area3dchartDLBLS = 3; const BYTE c_oserct_area3dchartDROPLINES = 4; const BYTE c_oserct_area3dchartGAPDEPTH = 5; const BYTE c_oserct_area3dchartAXID = 6; const BYTE c_oserct_areaserIDX = 0; const BYTE c_oserct_areaserORDER = 1; const BYTE c_oserct_areaserTX = 2; const BYTE c_oserct_areaserSPPR = 3; const BYTE c_oserct_areaserPICTUREOPTIONS = 4; const BYTE c_oserct_areaserDPT = 5; const BYTE c_oserct_areaserDLBLS = 6; const BYTE c_oserct_areaserTRENDLINE = 7; const BYTE c_oserct_areaserERRBARS = 8; const BYTE c_oserct_areaserCAT = 9; const BYTE c_oserct_areaserVAL = 10; const BYTE c_oserct_areachartGROUPING = 0; const BYTE c_oserct_areachartVARYCOLORS = 1; const BYTE c_oserct_areachartSER = 2; const BYTE c_oserct_areachartDLBLS = 3; const BYTE c_oserct_areachartDROPLINES = 4; const BYTE c_oserct_areachartAXID = 5; const BYTE c_oserct_plotareaLAYOUT = 0; const BYTE c_oserct_plotareaITEMS = 1; const BYTE c_oserct_plotareaAREA3DCHART = 2; const BYTE c_oserct_plotareaAREACHART = 3; const BYTE c_oserct_plotareaBAR3DCHART = 4; const BYTE c_oserct_plotareaBARCHART = 5; const BYTE c_oserct_plotareaBUBBLECHART = 6; const BYTE c_oserct_plotareaDOUGHNUTCHART = 7; const BYTE c_oserct_plotareaLINE3DCHART = 8; const BYTE c_oserct_plotareaLINECHART = 9; const BYTE c_oserct_plotareaOFPIECHART = 10; const BYTE c_oserct_plotareaPIE3DCHART = 11; const BYTE c_oserct_plotareaPIECHART = 12; const BYTE c_oserct_plotareaRADARCHART = 13; const BYTE c_oserct_plotareaSCATTERCHART = 14; const BYTE c_oserct_plotareaSTOCKCHART = 15; const BYTE c_oserct_plotareaSURFACE3DCHART = 16; const BYTE c_oserct_plotareaSURFACECHART = 17; const BYTE c_oserct_plotareaITEMS1 = 18; const BYTE c_oserct_plotareaCATAX = 19; const BYTE c_oserct_plotareaDATEAX = 20; const BYTE c_oserct_plotareaSERAX = 21; const BYTE c_oserct_plotareaVALAX = 22; const BYTE c_oserct_plotareaDTABLE = 23; const BYTE c_oserct_plotareaSPPR = 24; const BYTE c_oserct_thicknessVAL = 0; const BYTE c_oserct_surfaceTHICKNESS = 0; const BYTE c_oserct_surfaceSPPR = 1; const BYTE c_oserct_surfacePICTUREOPTIONS = 2; const BYTE c_oserct_perspectiveVAL = 0; const BYTE c_oserct_depthpercentVAL = 0; const BYTE c_oserct_rotyVAL = 0; const BYTE c_oserct_hpercentVAL = 0; const BYTE c_oserct_rotxVAL = 0; const BYTE c_oserct_view3dROTX = 0; const BYTE c_oserct_view3dHPERCENT = 1; const BYTE c_oserct_view3dROTY = 2; const BYTE c_oserct_view3dDEPTHPERCENT = 3; const BYTE c_oserct_view3dRANGAX = 4; const BYTE c_oserct_view3dPERSPECTIVE = 5; const BYTE c_oserct_pivotfmtIDX = 0; const BYTE c_oserct_pivotfmtSPPR = 1; const BYTE c_oserct_pivotfmtTXPR = 2; const BYTE c_oserct_pivotfmtMARKER = 3; const BYTE c_oserct_pivotfmtDLBL = 4; const BYTE c_oserct_pivotfmtsPIVOTFMT = 0; const BYTE c_oserct_chartTITLE = 0; const BYTE c_oserct_chartAUTOTITLEDELETED = 1; const BYTE c_oserct_chartPIVOTFMTS = 2; const BYTE c_oserct_chartVIEW3D = 3; const BYTE c_oserct_chartFLOOR = 4; const BYTE c_oserct_chartSIDEWALL = 5; const BYTE c_oserct_chartBACKWALL = 6; const BYTE c_oserct_chartPLOTAREA = 7; const BYTE c_oserct_chartLEGEND = 8; const BYTE c_oserct_chartPLOTVISONLY = 9; const BYTE c_oserct_chartDISPBLANKSAS = 10; const BYTE c_oserct_chartSHOWDLBLSOVERMAX = 11; const BYTE c_oserct_protectionCHARTOBJECT = 0; const BYTE c_oserct_protectionDATA = 1; const BYTE c_oserct_protectionFORMATTING = 2; const BYTE c_oserct_protectionSELECTION = 3; const BYTE c_oserct_protectionUSERINTERFACE = 4; const BYTE c_oserct_pivotsourceNAME = 0; const BYTE c_oserct_pivotsourceFMTID = 1; const BYTE c_oserct_style1VAL = 0; const BYTE c_oserct_styleVAL = 0; const BYTE c_oserct_textlanguageidVAL = 0; const BYTE c_oseralternatecontentCHOICE = 0; const BYTE c_oseralternatecontentFALLBACK = 1; const BYTE c_oseralternatecontentchoiceSTYLE = 0; const BYTE c_oseralternatecontentchoiceREQUIRES = 1; const BYTE c_oseralternatecontentfallbackSTYLE = 0; const BYTE c_oserct_chartstyleID = 0; const BYTE c_oserct_chartstyleENTRY = 1; const BYTE c_oserct_chartstyleMARKERLAYOUT = 2; const BYTE c_oserct_chartstyleENTRYTYPE = 0; const BYTE c_oserct_chartstyleLNREF = 1; const BYTE c_oserct_chartstyleFILLREF = 2; const BYTE c_oserct_chartstyleEFFECTREF = 3; const BYTE c_oserct_chartstyleFONTREF = 4; const BYTE c_oserct_chartstyleDEFPR = 5; const BYTE c_oserct_chartstyleBODYPR = 6; const BYTE c_oserct_chartstyleSPPR = 7; const BYTE c_oserct_chartstyleLINEWIDTH = 8; const BYTE c_oserct_chartstyleMARKERSYMBOL = 0; const BYTE c_oserct_chartstyleMARKERSIZE = 1; const BYTE c_oserct_chartcolorsID = 0; const BYTE c_oserct_chartcolorsMETH = 1; const BYTE c_oserct_chartcolorsVARIATION = 2; const BYTE c_oserct_chartcolorsCOLOR = 3; const BYTE c_oserct_chartcolorsEFFECT = 4; const BYTE c_oserct_chartExSpaceCHARTDATA = 0; const BYTE c_oserct_chartExSpaceCHART = 1; const BYTE c_oserct_chartExSpaceSPPR = 2; const BYTE c_oserct_chartExSpaceTXPR = 3; const BYTE c_oserct_chartExSpaceCLRMAPOVR = 4; const BYTE c_oserct_chartExSpaceXLSX = c_oserct_chartspaceXLSX;/* = 16*/ const BYTE c_oserct_chartExSpaceSTYLES = c_oserct_chartspaceSTYLES;/* = 17*/ const BYTE c_oserct_chartExSpaceCOLORS = c_oserct_chartspaceCOLORS;/* = 18*/ const BYTE c_oserct_chartExSpaceXLSXEXTERNAL = c_oserct_chartspaceXLSXEXTERNAL;/* = 19*/ const BYTE c_oserct_chartExSpaceXLSXZIP = c_oserct_chartspaceXLSXZIP;/* = 19*/ const BYTE c_oserct_chartExDATA = 0; const BYTE c_oserct_chartExEXTERNALDATA = 1; const BYTE c_oserct_chartExExternalAUTOUPDATE = 0; const BYTE c_oserct_chartExChartPLOTAREA = 0; const BYTE c_oserct_chartExChartTITLE = 1; const BYTE c_oserct_chartExChartLEGEND = 2; const BYTE c_oserct_chartExChartAREAREGION = 0; const BYTE c_oserct_chartExChartAXIS = 1; const BYTE c_oserct_chartExChartSPPR = 2; const BYTE c_oserct_chartExAreaPLOTSURFACE = 0; const BYTE c_oserct_chartExAreaSERIES = 1; const BYTE c_oserct_chartExAxisID = 0; const BYTE c_oserct_chartExPlotSurfaceSPPR = 0; const BYTE c_oserct_chartExAxisHIDDEN = 1; const BYTE c_oserct_chartExAxisCATSCALING = 2; const BYTE c_oserct_chartExAxisVALSCALING = 3; const BYTE c_oserct_chartExAxisTITLE = 4; const BYTE c_oserct_chartExAxisUNIT = 5; const BYTE c_oserct_chartExAxisNUMFMT = 6; const BYTE c_oserct_chartExAxisMAJORTICK = 7; const BYTE c_oserct_chartExAxisMINORTICK = 8; const BYTE c_oserct_chartExAxisMAJORGRID = 9; const BYTE c_oserct_chartExAxisMINORGRID = 10; const BYTE c_oserct_chartExAxisTICKLABELS = 11; const BYTE c_oserct_chartExAxisTXPR = 12; const BYTE c_oserct_chartExAxisSPPR = 13; const BYTE c_oserct_chartExSeriesDATAPT = 0; const BYTE c_oserct_chartExSeriesDATALABELS = 1; const BYTE c_oserct_chartExSeriesLAYOUTPROPS = 2; const BYTE c_oserct_chartExSeriesTEXT = 3; const BYTE c_oserct_chartExSeriesAXIS = 4; const BYTE c_oserct_chartExSeriesDATAID = 5; const BYTE c_oserct_chartExSeriesSPPR = 6; const BYTE c_oserct_chartExSeriesLAYOUTID = 7; const BYTE c_oserct_chartExSeriesHIDDEN = 8; const BYTE c_oserct_chartExSeriesOWNERIDX = 9; const BYTE c_oserct_chartExSeriesFORMATIDX = 10; const BYTE c_oserct_chartExSeriesUNIQUEID = 11; const BYTE c_oserct_chartExDataPointIDX = 0; const BYTE c_oserct_chartExDataPointSPPR = 1; const BYTE c_oserct_chartExDataLabelsPOS = 0; const BYTE c_oserct_chartExDataLabelsNUMFMT = 1; const BYTE c_oserct_chartExDataLabelsTXPR = 2; const BYTE c_oserct_chartExDataLabelsSPPR = 3; const BYTE c_oserct_chartExDataLabelsVISABILITIES = 4; const BYTE c_oserct_chartExDataLabelsSEPARATOR = 5; const BYTE c_oserct_chartExDataLabelsDATALABEL = 6; const BYTE c_oserct_chartExDataLabelsDATALABELHIDDEN = 7; const BYTE c_oserct_chartExNumberFormatFORMATCODE = 0; const BYTE c_oserct_chartExNumberFormatSOURCELINKED = 1; const BYTE c_oserct_chartExDataLabelIDX = 0; const BYTE c_oserct_chartExDataLabelPOS = 1; const BYTE c_oserct_chartExDataLabelNUMFMT = 2; const BYTE c_oserct_chartExDataLabelTXPR = 3; const BYTE c_oserct_chartExDataLabelSPPR = 4; const BYTE c_oserct_chartExDataLabelVISABILITIES = 5; const BYTE c_oserct_chartExDataLabelSEPARATOR = 6; const BYTE c_oserct_chartExDataLabelHiddenIDX = 0; const BYTE c_oserct_chartExSeriesLayoutPARENT = 0; const BYTE c_oserct_chartExSeriesLayoutREGION = 1; const BYTE c_oserct_chartExSeriesLayoutVISABILITIES = 2; const BYTE c_oserct_chartExSeriesLayoutAGGREGATION = 3; const BYTE c_oserct_chartExSeriesLayoutBINNING = 4; const BYTE c_oserct_chartExSeriesLayoutSTATISTIC = 5; const BYTE c_oserct_chartExSeriesLayoutSUBTOTALS = 6; const BYTE c_oserct_chartExDataLabelVisibilitiesSERIES = 0; const BYTE c_oserct_chartExDataLabelVisibilitiesCATEGORY = 1; const BYTE c_oserct_chartExDataLabelVisibilitiesVALUE = 2; const BYTE c_oserct_chartExBinningBINSIZE = 0; const BYTE c_oserct_chartExBinningBINCOUNT = 1; const BYTE c_oserct_chartExBinningINTERVAL = 2; const BYTE c_oserct_chartExBinningUNDERVAL = 3; const BYTE c_oserct_chartExBinningUNDERAUTO = 4; const BYTE c_oserct_chartExBinningOVERVAL = 5; const BYTE c_oserct_chartExBinningOVERAUTO = 6; const BYTE c_oserct_chartExTitleTX = 0; const BYTE c_oserct_chartExTitleTXPR = 1; const BYTE c_oserct_chartExTitleSPPR = 2; const BYTE c_oserct_chartExTitlePOS = 3; const BYTE c_oserct_chartExTitleALIGN = 4; const BYTE c_oserct_chartExTitleOVERLAY = 5; const BYTE c_oserct_chartExLegendTXPR = 0; const BYTE c_oserct_chartExLegendSPPR = 1; const BYTE c_oserct_chartExLegendPOS = 2; const BYTE c_oserct_chartExLegendALIGN = 3; const BYTE c_oserct_chartExLegendOVERLAY = 4; const BYTE c_oserct_chartExTextRICH = 0; const BYTE c_oserct_chartExTextDATA = 1; const BYTE c_oserct_chartExTextDataFORMULA = 0; const BYTE c_oserct_chartExTextDataVALUE = 1; const BYTE c_oserct_chartExDataID = 0; const BYTE c_oserct_chartExDataSTRDIMENSION = 1; const BYTE c_oserct_chartExDataNUMDIMENSION = 2; const BYTE c_oserct_chartExSubtotalsIDX = 0; const BYTE c_oserct_chartExSeriesVisibilitiesCONNECTOR = 0; const BYTE c_oserct_chartExSeriesVisibilitiesMEANLINE = 1; const BYTE c_oserct_chartExSeriesVisibilitiesMEANMARKER = 2; const BYTE c_oserct_chartExSeriesVisibilitiesNONOUTLIERS = 3; const BYTE c_oserct_chartExSeriesVisibilitiesOUTLIERS = 4; const BYTE c_oserct_chartExCatScalingGAPAUTO = 0; const BYTE c_oserct_chartExCatScalingGAPVAL = 1; const BYTE c_oserct_chartExValScalingMAXAUTO = 0; const BYTE c_oserct_chartExValScalingMAXVAL = 1; const BYTE c_oserct_chartExValScalingMINAUTO = 2; const BYTE c_oserct_chartExValScalingMINVAL = 3; const BYTE c_oserct_chartExValScalingMAJUNITAUTO = 4; const BYTE c_oserct_chartExValScalingMAJUNITVAL = 5; const BYTE c_oserct_chartExValScalingMINUNITAUTO = 6; const BYTE c_oserct_chartExValScalingMINUNITVAL = 7; const BYTE c_oserct_chartExAxisUnitTYPE = 0; const BYTE c_oserct_chartExAxisUnitLABEL = 1; const BYTE c_oserct_chartExAxisUnitsLabelTEXT = 0; const BYTE c_oserct_chartExAxisUnitsLabelSPPR = 1; const BYTE c_oserct_chartExAxisUnitsLabelTXPR = 2; const BYTE c_oserct_chartExTickMarksTYPE = 0; const BYTE c_oserct_chartExGridlinesSPPR = 0; const BYTE c_oserct_chartExStatisticsMETHOD = 0; const BYTE c_oserct_chartExDataDimensionTYPE = 0; const BYTE c_oserct_chartExDataDimensionFORMULA = 1; const BYTE c_oserct_chartExDataDimensionNF = 2; const BYTE c_oserct_chartExDataDimensionSTRINGLEVEL = 3; const BYTE c_oserct_chartExDataDimensionNUMERICLEVEL = 4; const BYTE c_oserct_chartExFormulaCONTENT = 0; const BYTE c_oserct_chartExFormulaDIRECTION = 1; const BYTE c_oserct_chartExDataLevelNAME = 0; const BYTE c_oserct_chartExDataLevelCOUNT = 1; const BYTE c_oserct_chartExDataLevelPT = 2; const BYTE c_oserct_chartExDataLevelFORMATCODE = 3; const BYTE c_oserct_chartExDataValueIDX = 0; const BYTE c_oserct_chartExDataValueCONTENT = 1; // extens ... 0x80 const BYTE c_oserct_dataLabel = 0x81; const BYTE c_oserct_chartFiltering = 0x82; const BYTE c_oserct_chartDataDisplayNaAsBlank = 0x83; const BYTE c_oserct_chartExternalReference = 0x84; const BYTE c_oserct_chartDataExternalFileKey = 0x85; const BYTE c_oserct_chartDataExternalInstanceId = 0x86; const BYTE c_oserct_dataLabelsRange = 0x90; const BYTE c_oserct_filteredLineSeries = 0x91; const BYTE c_oserct_filteredScatterSeries = 0x92; const BYTE c_oserct_filteredRadarSeries = 0x93; const BYTE c_oserct_filteredBarSeries = 0x94; const BYTE c_oserct_filteredAreaSeries = 0x95; const BYTE c_oserct_filteredBubbleSeries = 0x96; const BYTE c_oserct_filteredSurfaceSeries = 0x97; const BYTE c_oserct_filteredPieSeries = 0x98; const BYTE c_oserct_fullRef = 0x99; const BYTE c_oserct_levelRef = 0x9A; const BYTE c_oserct_formulaRef = 0x9B; const BYTE c_oserct_categoryFilterExceptions = 0x9C; const BYTE c_oserct_categoryFilterException = 0x9D; const BYTE c_oserct_filteredSeriesTitle = 0x9E; const BYTE c_oserct_filteredCategoryTitle = 0x9F; const BYTE c_oserct_dataLabelsRangeFormula = 0xA0; const BYTE c_oserct_dataLabelsRangeCache = 0xA1; const BYTE c_oserct_filterSqref = 0xB1; const BYTE c_oserct_filterSpPr = 0xB2; const BYTE c_oserct_filterExplosion = 0xB3; const BYTE c_oserct_filterInvertIfNegative = 0xB4; const BYTE c_oserct_filterBubble3D = 0xB5; const BYTE c_oserct_filterMarker = 0xB6; const BYTE c_oserct_filterLbl = 0xB7; BinaryChartReader::BinaryChartReader(NSBinPptxRW::CBinaryFileReader& oBufferedStream, SaveParams& oSaveParams, NSBinPptxRW::CDrawingConverter* pOfficeDrawingConverter) : Binary_CommonReader(oBufferedStream), m_oSaveParams(oSaveParams), m_pOfficeDrawingConverter(pOfficeDrawingConverter) {} int BinaryChartReader::ReadCT_ChartFile(long length, OOX::Spreadsheet::CChartFile* pChartFile) { int res = c_oSerConstants::ReadOk; READ1_DEF(length, res, this->ReadCT_ChartFileContent, pChartFile); return res; } int BinaryChartReader::ReadCT_ChartFileContent(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::CChartFile *pChart = static_cast(poResult); if (type > 0x80) { if (!pChart->m_oChartSpace.m_extLst.IsInit()) pChart->m_oChartSpace.m_extLst.Init(); return ReadExtensions(type, length, pChart->m_oChartSpace.m_extLst.GetPointer()); } if (c_oserct_chartspaceDATE1904 == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); pChart->m_oChartSpace.m_date1904 = pNewElem; } else if (c_oserct_chartspaceLANG == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); pChart->m_oChartSpace.m_lang = val; } else if (c_oserct_chartspaceROUNDEDCORNERS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); pChart->m_oChartSpace.m_roundedCorners = pNewElem; } else if (c_oserct_chartspaceALTERNATECONTENT == type) { AlternateContent* pNewElem = new AlternateContent; READ1_DEF(length, res, this->ReadAlternateContent, pNewElem); pChart->m_oChartSpace.m_AlternateContent = pNewElem; } else if (c_oserct_chartspaceSTYLE == type) { pChart->m_oChartSpace.m_style = new CT_Style; READ1_DEF(length, res, this->ReadCT_Style, pChart->m_oChartSpace.m_style); } else if (c_oserct_chartspaceCLRMAPOVR == type) { BYTE typeRec1 = m_oBufferedStream.GetUChar(); pChart->m_oChartSpace.m_oClrMapOvr = new PPTX::Logic::ClrMap(); pChart->m_oChartSpace.m_oClrMapOvr->m_name = L"c:clrMapOvr"; pChart->m_oChartSpace.m_oClrMapOvr->fromPPTY(&m_oBufferedStream); } else if (c_oserct_chartspacePIVOTSOURCE == type) { CT_PivotSource* pNewElem = new CT_PivotSource; READ1_DEF(length, res, this->ReadCT_PivotSource, pNewElem); pChart->m_oChartSpace.m_pivotSource = pNewElem; } else if (c_oserct_chartspacePROTECTION == type) { CT_Protection* pNewElem = new CT_Protection; READ1_DEF(length, res, this->ReadCT_Protection, pNewElem); pChart->m_oChartSpace.m_protection = pNewElem; } else if (c_oserct_chartspaceCHART == type) { pChart->m_oChartSpace.m_chart = new CT_Chart; READ1_DEF(length, res, this->ReadCT_Chart, pChart->m_oChartSpace.m_chart); } else if (c_oserct_chartspaceSPPR == type) { pChart->m_oChartSpace.m_spPr = new PPTX::Logic::SpPr; pChart->m_oChartSpace.m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, pChart->m_oChartSpace.m_spPr.GetPointer()); } else if (c_oserct_chartspaceTXPR == type) { pChart->m_oChartSpace.m_txPr = new PPTX::Logic::TxBody; pChart->m_oChartSpace.m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, pChart->m_oChartSpace.m_txPr.GetPointer()); } else if (c_oserct_chartspacePRINTSETTINGS == type) { pChart->m_oChartSpace.m_printSettings = new CT_PrintSettings; READ1_DEF(length, res, this->ReadCT_PrintSettings, pChart->m_oChartSpace.m_printSettings); } else if (c_oserct_chartspaceTHEMEOVERRIDE == type) { std::wstring sThemeOverrideName = L"themeOverride" + std::to_wstring(m_oBufferedStream.m_nThemeOverrideCount++) + L".xml"; std::wstring sThemeOverrideRelsPath = L"../theme/" + sThemeOverrideName; OOX::CPath pathThemeOverrideFile = m_oSaveParams.sThemePath + FILE_SEPARATOR_STR + sThemeOverrideName; smart_ptr pTheme = new PPTX::Theme(NULL); pTheme->fromPPTY(&m_oBufferedStream); pTheme->isThemeOverride = true; NSBinPptxRW::CXmlWriter xmlWriter; pTheme->toXmlWriter(&xmlWriter); Writers::DefaultThemeWriter oThemeFile; oThemeFile.m_sContent = xmlWriter.GetXmlString(); oThemeFile.Write(pathThemeOverrideFile.GetPath()); unsigned int rId; m_pOfficeDrawingConverter->WriteRels(std::wstring(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/themeOverride")), sThemeOverrideRelsPath, std::wstring(), &rId); int nIndex = m_oSaveParams.sThemePath.rfind(FILE_SEPARATOR_CHAR); nIndex = m_oSaveParams.sThemePath.rfind(FILE_SEPARATOR_CHAR, nIndex - 1); if (-1 != nIndex) { std::wstring sContentTypesPath = m_oSaveParams.sThemePath.substr(nIndex + 1); XmlUtils::replace_all(sContentTypesPath, L"\\", L"/"); m_oSaveParams.pContentTypes->Registration(L"application/vnd.openxmlformats-officedocument.themeOverride+xml", sContentTypesPath, sThemeOverrideName); } } else if (c_oserct_chartspaceUSERSHAPES == type) { OOX::CSystemUtility::CreateDirectories(m_oSaveParams.sDrawingsPath); OOX::CPath pathDrawingsRelsDir = m_oSaveParams.sDrawingsPath + FILE_SEPARATOR_STR + _T("_rels"); OOX::CSystemUtility::CreateDirectories(pathDrawingsRelsDir.GetPath()); m_pOfficeDrawingConverter->SetDstContentRels(); OOX::CChartDrawing* pChartDrawing = new OOX::CChartDrawing(NULL); READ1_DEF(length, res, this->ReadCT_userShapes, pChartDrawing); if (res == c_oSerConstants::ReadOk) { NSCommon::smart_ptr pDrawingFile(pChartDrawing); pChart->Add(pDrawingFile); OOX::CPath pathDrawingsRels = pathDrawingsRelsDir.GetPath() + FILE_SEPARATOR_STR + pChartDrawing->m_sOutputFilename + _T(".rels"); m_pOfficeDrawingConverter->SaveDstContentRels(pathDrawingsRels.GetPath()); unsigned int rId = 0; m_pOfficeDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartUserShapes", L"../drawings/" + pChartDrawing->m_sOutputFilename, std::wstring(), &rId); pChart->m_oChartSpace.m_userShapes = new CT_RelId; pChart->m_oChartSpace.m_userShapes->m_id = new std::wstring; *pChart->m_oChartSpace.m_userShapes->m_id = OOX::RId(rId).ToString(); } } else if (c_oserct_chartspaceEXTERNALDATA == type) { if (!pChart->m_oChartSpace.m_externalData) pChart->m_oChartSpace.m_externalData = new CT_ExternalData; READ1_DEF(length, res, this->ReadCT_ExternalData, pChart->m_oChartSpace.m_externalData); } else if (c_oserct_chartspaceXLSXEXTERNAL == type) { OOX::CPath path = m_oBufferedStream.GetString4(length); unsigned int rId = 0; m_pOfficeDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", path.GetPath(), L"External", &rId); m_pOfficeDrawingConverter->m_pImageManager->m_pContentTypes->AddDefault(path.GetExtention()); if (!pChart->m_oChartSpace.m_externalData) pChart->m_oChartSpace.m_externalData = new CT_ExternalData; pChart->m_oChartSpace.m_externalData->m_id = new std::wstring; *pChart->m_oChartSpace.m_externalData->m_id = OOX::RId(rId).ToString(); } else if (c_oserct_chartspaceXLSX == type || c_oserct_chartspaceXLSXZIP == type) { OOX::CSystemUtility::CreateDirectories(m_oSaveParams.sEmbeddingsPath); OOX::CPath pathEmbeddingRelsDir = m_oSaveParams.sEmbeddingsPath + FILE_SEPARATOR_STR + _T("_rels"); OOX::CSystemUtility::CreateDirectories(pathEmbeddingRelsDir.GetPath()); m_pOfficeDrawingConverter->SetDstContentRels(); NSCommon::smart_ptr pXlsxFile; if (c_oserct_chartspaceXLSXZIP == type) { ReadCT_XlsxZip(m_oBufferedStream.GetPointer(0), length, pXlsxFile); } else { ReadCT_XlsxBin(m_oBufferedStream.GetPointer(0), length, pXlsxFile); } m_oBufferedStream.Skip(length); if (pXlsxFile.IsInit()) { OOX::CPath pathDrawingsRels = pathEmbeddingRelsDir.GetPath() + FILE_SEPARATOR_STR + pXlsxFile->m_sOutputFilename + _T(".rels"); m_pOfficeDrawingConverter->SaveDstContentRels(pathDrawingsRels.GetPath()); NSCommon::smart_ptr pFile = pXlsxFile.smart_dynamic_cast(); pChart->AddNoWrite(pFile, L"../embeddings"); unsigned int rId = 0; m_pOfficeDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/package", L"../embeddings/" + pXlsxFile->m_sOutputFilename, std::wstring(), &rId); m_pOfficeDrawingConverter->m_pImageManager->m_pContentTypes->AddDefault(pXlsxFile->filename().GetExtention()); if (!pChart->m_oChartSpace.m_externalData) pChart->m_oChartSpace.m_externalData = new CT_ExternalData; pChart->m_oChartSpace.m_externalData->m_id = new std::wstring; *pChart->m_oChartSpace.m_externalData->m_id = OOX::RId(rId).ToString(); } } else if (c_oserct_chartspaceSTYLES == type) { NSCommon::smart_ptr chartstyle = new OOX::Spreadsheet::CChartStyleFile(NULL); READ1_DEF(length, res, ReadCT_ChartStyle, chartstyle.GetPointer()); if (res == c_oSerConstants::ReadOk) { NSCommon::smart_ptr pFile = chartstyle.smart_dynamic_cast(); pChart->Add(pFile); unsigned int rId = 0; m_pOfficeDrawingConverter->WriteRels(L"http://schemas.microsoft.com/office/2011/relationships/chartStyle", chartstyle->m_sOutputFilename, std::wstring(), &rId); } } else if (c_oserct_chartspaceCOLORS == type) { NSCommon::smart_ptr chartcolors = new OOX::Spreadsheet::CChartColorsFile(NULL); READ1_DEF(length, res, ReadCT_ChartColors, chartcolors.GetPointer()); if (res == c_oSerConstants::ReadOk) { NSCommon::smart_ptr pFile = chartcolors.smart_dynamic_cast(); pChart->Add(pFile); unsigned int rId = 0; m_pOfficeDrawingConverter->WriteRels(L"http://schemas.microsoft.com/office/2011/relationships/chartColorStyle", chartcolors->m_sOutputFilename, std::wstring(), &rId); } } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_XlsxZip(BYTE* pData, long length, NSCommon::smart_ptr& fileOut) { if (length < 1 || !pData) return c_oSerConstants::ReadUnknown; fileOut = new OOX::OleObject(NULL, true, m_pOfficeDrawingConverter->m_pReader->m_nDocumentType == XMLWRITER_DOC_TYPE_DOCX); int id = m_pOfficeDrawingConverter->m_pReader->m_nCountEmbedded++; bool bMacroEnabled = false; std::wstring sXlsxFilename = L"Microsoft_Excel_Worksheet" + std::to_wstring(id) + (bMacroEnabled ? L".xlsm" : L".xlsx"); NSFile::CFileBinary file; if (file.CreateFileW(m_oSaveParams.sEmbeddingsPath + FILE_SEPARATOR_STR + sXlsxFilename)) { file.WriteFile(pData, length); file.WriteFile(pData, length); file.CloseFile(); } fileOut->set_filename(m_oSaveParams.sEmbeddingsPath + FILE_SEPARATOR_STR + sXlsxFilename, false); m_pOfficeDrawingConverter->m_pReader->m_pRels->m_pManager->m_pContentTypes->AddDefault(bMacroEnabled ? L"xlsm" : L"xlsx"); } int BinaryChartReader::ReadCT_XlsxBin(BYTE *pData, long length, NSCommon::smart_ptr & file) { if (length < 1 || !pData) return c_oSerConstants::ReadUnknown; //------------------------------------------------------------------ std::wstring sDstEmbedded = m_oSaveParams.sEmbeddingsPath; std::wstring sDstEmbeddedTemp = NSDirectory::CreateDirectoryWithUniqueName(sDstEmbedded); if (false == sDstEmbeddedTemp.empty()) { file = new OOX::OleObject(NULL, true, m_pOfficeDrawingConverter->m_pReader->m_nDocumentType == XMLWRITER_DOC_TYPE_DOCX); int id = m_pOfficeDrawingConverter->m_pReader->m_nCountEmbedded++; OOX::Spreadsheet::CXlsx oXlsx; BinXlsxRW::BinaryFileReader oEmbeddedReader; NSBinPptxRW::CDrawingConverter oDrawingConverter; std::wstring sDrawingsPath = sDstEmbeddedTemp + FILE_SEPARATOR_STR + L"xl" + FILE_SEPARATOR_STR + L"drawings"; std::wstring sThemePath = sDstEmbeddedTemp + FILE_SEPARATOR_STR + L"xl" + FILE_SEPARATOR_STR + L"theme"; std::wstring sEmbeddingsPath = sDstEmbeddedTemp + FILE_SEPARATOR_STR + L"xl" + FILE_SEPARATOR_STR + L"embeddings"; BinXlsxRW::SaveParams oSaveParams(sDrawingsPath, sEmbeddingsPath, sThemePath, oDrawingConverter.GetContentTypes(), NULL, false); std::wstring sXmlOptions, sMediaPath, sEmbedPath; BinXlsxRW::CXlsxSerializer::CreateXlsxFolders(sXmlOptions, sDstEmbeddedTemp, sMediaPath, sEmbedPath); boost::unordered_map old_enum_map = oXlsx.m_mapEnumeratedGlobal; oXlsx.m_mapEnumeratedGlobal.clear(); oDrawingConverter.m_pReader->Init(pData, 0, length); oDrawingConverter.SetDstPath(sDstEmbeddedTemp + FILE_SEPARATOR_STR + L"xl"); oDrawingConverter.SetSrcPath(m_pOfficeDrawingConverter->m_pReader->m_strFolder, XMLWRITER_DOC_TYPE_XLSX); oDrawingConverter.SetMediaDstPath(sMediaPath); oDrawingConverter.SetEmbedDstPath(sEmbedPath); oEmbeddedReader.ReadMainTable(oXlsx, *oDrawingConverter.m_pReader, m_pOfficeDrawingConverter->m_pReader->m_strFolder, sDstEmbeddedTemp, oSaveParams, &oDrawingConverter); oXlsx.PrepareToWrite(); oXlsx.Write(sDstEmbeddedTemp, *oSaveParams.pContentTypes); std::wstring sXlsxFilename = L"Microsoft_Excel_Worksheet" + std::to_wstring(id) + (oSaveParams.bMacroEnabled ? L".xlsm" : L".xlsx"); COfficeUtils oOfficeUtils(NULL); oOfficeUtils.CompressFileOrDirectory(sDstEmbeddedTemp, sDstEmbedded + FILE_SEPARATOR_STR + sXlsxFilename, true); oXlsx.m_mapEnumeratedGlobal = old_enum_map; file->set_filename(sDstEmbedded + FILE_SEPARATOR_STR + sXlsxFilename, false); m_pOfficeDrawingConverter->m_pReader->m_pRels->m_pManager->m_pContentTypes->AddDefault(oSaveParams.bMacroEnabled ? L"xlsm" : L"xlsx"); NSDirectory::DeleteDirectory(sDstEmbeddedTemp); } return c_oSerConstants::ReadOk; } int BinaryChartReader::ReadCT_SignedByte(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; int* poVal = static_cast(poResult); *poVal = m_oBufferedStream.GetChar(); return res; } int BinaryChartReader::ReadCT_UnsignedByte(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; unsigned int* poVal = static_cast(poResult); *poVal = m_oBufferedStream.GetUChar(); return res; } int BinaryChartReader::ReadCT_UnsignedInt(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; unsigned int* poVal = static_cast(poResult); *poVal = m_oBufferedStream.GetLong(); return res; } int BinaryChartReader::ReadCT_String(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; std::wstring* poVal = static_cast(poResult); *poVal = m_oBufferedStream.GetString4(length); return res; } int BinaryChartReader::ReadCT_Double(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; double* poVal = static_cast(poResult); *poVal = m_oBufferedStream.GetDoubleReal(); return res; } int BinaryChartReader::ReadCT_Boolean(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; bool* poVal = static_cast(poResult); *poVal = m_oBufferedStream.GetBool(); return res; } int BinaryChartReader::ReadCT_PptxElement(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; PPTX::WrapperWritingElement* poVal = static_cast(poResult); if (length > 0) { long nCurPos = m_oBufferedStream.GetPos(); BYTE typeRec1 = m_oBufferedStream.GetUChar(); poVal->fromPPTY(&m_oBufferedStream); m_oBufferedStream.Seek(nCurPos + length); } return res; } int BinaryChartReader::ReadCT_userShapes(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; if (c_oserct_usershapes_COUNT == type) { long count_shapes = m_oBufferedStream.GetLong(); } else if (c_oserct_usershapes_SHAPE_REL) { OOX::CChartDrawing* chartDrawing = (OOX::CChartDrawing*)poResult; OOX::CSizeAnchor *pNewElem = new OOX::CRelSizeAnchor(); chartDrawing->m_arrItems.push_back(pNewElem); READ1_DEF(length, res, this->ReadCT_userShape, pNewElem); } else if (c_oserct_usershapes_SHAPE_ABS) { OOX::CChartDrawing* chartDrawing = (OOX::CChartDrawing*)poResult; OOX::CSizeAnchor *pNewElem = new OOX::CAbsSizeAnchor(); chartDrawing->m_arrItems.push_back(pNewElem); READ1_DEF(length, res, this->ReadCT_userShape, pNewElem); } return res; } int BinaryChartReader::ReadCT_userShape(BYTE type, long length, void* poResult) { OOX::CSizeAnchor* pAnchor = static_cast (poResult); OOX::CAbsSizeAnchor* pAbsAnchor = dynamic_cast(pAnchor); OOX::CRelSizeAnchor* pRelAnchor = dynamic_cast(pAnchor); if (!pAnchor && (!pRelAnchor || pAbsAnchor)) return c_oSerConstants::ReadUnknown; int res = c_oSerConstants::ReadOk; if (c_oSer_DrawingType::From == type) { pAnchor->m_oFrom.Init(); READ2_DEF_SPREADSHEET(length, res, this->ReadCT_FromTo, pAnchor->m_oFrom.GetPointer()); } else if (c_oSer_DrawingType::To == type) { pRelAnchor->m_oTo.Init(); READ2_DEF_SPREADSHEET(length, res, this->ReadCT_FromTo, pRelAnchor->m_oTo.GetPointer()); } else if (c_oSer_DrawingType::Ext == type) { pAbsAnchor->m_oExt.Init(); READ2_DEF_SPREADSHEET(length, res, this->ReadCT_Ext, pAbsAnchor->m_oExt.GetPointer()); } else if (c_oSer_DrawingType::pptxDrawing == type) { pAnchor->m_oElement.Init(); BYTE typeRec1 = m_oBufferedStream.GetUChar(); // must be 0; LONG _e = m_oBufferedStream.GetPos() + m_oBufferedStream.GetLong() + 4; m_oBufferedStream.Skip(5); // type record (must be 1) + 4 byte - len record pAnchor->m_oElement->fromPPTY(&m_oBufferedStream); if (!pAnchor->m_oElement->is_init()) res = c_oSerConstants::ReadUnknown; } return res; } int BinaryChartReader::ReadCT_FromTo(BYTE type, long length, void* poResult) { OOX::CFromTo* pFromTo = static_cast(poResult); int res = c_oSerConstants::ReadOk; if (c_oSer_DrawingPosType::X == type) { pFromTo->m_oX.reset(new double); *pFromTo->m_oX = m_oBufferedStream.GetDoubleReal(); } if (c_oSer_DrawingPosType::Y == type) { pFromTo->m_oY.reset(new double); *pFromTo->m_oY = m_oBufferedStream.GetDoubleReal(); } return res; } int BinaryChartReader::ReadCT_Ext(BYTE type, long length, void* poResult) { OOX::CExt* pExt = static_cast(poResult); int res = c_oSerConstants::ReadOk; if (c_oSer_DrawingPosType::X == type) { pExt->m_oCx.reset(new double); *pExt->m_oCx = m_oBufferedStream.GetDoubleReal(); } if (c_oSer_DrawingPosType::Y == type) { pExt->m_oCy.reset(new double); *pExt->m_oCy = m_oBufferedStream.GetDoubleReal(); } return res; } int BinaryChartReader::ReadCT_PageSetup(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_PageSetup* poVal = static_cast(poResult); if (c_oserct_pagesetupPAPERSIZE == type) { poVal->m_paperSize = m_oBufferedStream.GetLong(); } else if (c_oserct_pagesetupPAPERHEIGHT == type) { poVal->m_paperHeight = m_oBufferedStream.GetString4(length); } else if (c_oserct_pagesetupPAPERWIDTH == type) { poVal->m_paperWidth = m_oBufferedStream.GetString4(length); } else if (c_oserct_pagesetupFIRSTPAGENUMBER == type) { poVal->m_firstPageNumber = (unsigned int)m_oBufferedStream.GetLong(); } else if (c_oserct_pagesetupORIENTATION == type) { poVal->m_orientation.Init(); poVal->m_orientation->SetValueFromByte(m_oBufferedStream.GetUChar()); } else if (c_oserct_pagesetupBLACKANDWHITE == type) { poVal->m_blackAndWhite = m_oBufferedStream.GetBool(); } else if (c_oserct_pagesetupDRAFT == type) { poVal->m_draft = m_oBufferedStream.GetBool(); } else if (c_oserct_pagesetupUSEFIRSTPAGENUMBER == type) { poVal->m_useFirstPageNumber = m_oBufferedStream.GetBool(); } else if (c_oserct_pagesetupHORIZONTALDPI == type) { poVal->m_horizontalDpi = m_oBufferedStream.GetLong(); } else if (c_oserct_pagesetupVERTICALDPI == type) { poVal->m_verticalDpi = m_oBufferedStream.GetLong(); } else if (c_oserct_pagesetupCOPIES == type) { poVal->m_copies = m_oBufferedStream.GetLong(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_PageMargins(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_PageMargins* poVal = static_cast(poResult); if (c_oserct_pagemarginsL == type) { poVal->m_l = m_oBufferedStream.GetDoubleReal(); } else if (c_oserct_pagemarginsR == type) { poVal->m_r = m_oBufferedStream.GetDoubleReal(); } else if (c_oserct_pagemarginsT == type) { poVal->m_t = m_oBufferedStream.GetDoubleReal(); } else if (c_oserct_pagemarginsB == type) { poVal->m_b = m_oBufferedStream.GetDoubleReal(); } else if (c_oserct_pagemarginsHEADER == type) { poVal->m_header = m_oBufferedStream.GetDoubleReal(); } else if (c_oserct_pagemarginsFOOTER == type) { poVal->m_footer = m_oBufferedStream.GetDoubleReal(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_HeaderFooter(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_HeaderFooter* poVal = static_cast(poResult); if (c_oserct_headerfooterODDHEADER == type) { poVal->m_oddHeader = m_oBufferedStream.GetString4(length);; } else if (c_oserct_headerfooterODDFOOTER == type) { poVal->m_oddFooter = m_oBufferedStream.GetString4(length);; } else if (c_oserct_headerfooterEVENHEADER == type) { poVal->m_evenHeader = m_oBufferedStream.GetString4(length);; } else if (c_oserct_headerfooterEVENFOOTER == type) { poVal->m_evenFooter = m_oBufferedStream.GetString4(length); } else if (c_oserct_headerfooterFIRSTHEADER == type) { poVal->m_firstHeader = m_oBufferedStream.GetString4(length); } else if (c_oserct_headerfooterFIRSTFOOTER == type) { poVal->m_firstFooter = m_oBufferedStream.GetString4(length); } else if (c_oserct_headerfooterALIGNWITHMARGINS == type) { poVal->m_alignWithMargins = m_oBufferedStream.GetBool();; } else if (c_oserct_headerfooterDIFFERENTODDEVEN == type) { poVal->m_differentOddEven = m_oBufferedStream.GetBool();; } else if (c_oserct_headerfooterDIFFERENTFIRST == type) { poVal->m_differentFirst = m_oBufferedStream.GetBool();; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_PrintSettings(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_PrintSettings* poVal = static_cast(poResult); if (c_oserct_printsettingsHEADERFOOTER == type) { CT_HeaderFooter* pNewElem = new CT_HeaderFooter; READ1_DEF(length, res, this->ReadCT_HeaderFooter, pNewElem); poVal->m_headerFooter = pNewElem; } else if (c_oserct_printsettingsPAGEMARGINS == type) { CT_PageMargins* pNewElem = new CT_PageMargins; READ1_DEF(length, res, this->ReadCT_PageMargins, pNewElem); poVal->m_pageMargins = pNewElem; } else if (c_oserct_printsettingsPAGESETUP == type) { CT_PageSetup* pNewElem = new CT_PageSetup; READ1_DEF(length, res, this->ReadCT_PageSetup, pNewElem); poVal->m_pageSetup = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ExternalData(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_ExternalData* poVal = static_cast(poResult); if (c_oserct_externaldataAUTOUPDATE == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_autoUpdate = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_DispBlanksAs(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CDispBlanksAs* poVal = static_cast(poResult); if (c_oserct_dispblanksasVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_LegendEntry(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_LegendEntry* poVal = static_cast(poResult); if (c_oserct_legendentryIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_legendentryDELETE == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_delete = pNewElem; } else if (c_oserct_legendentryTXPR == type) { poVal->m_txPr = new PPTX::Logic::TxBody; poVal->m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, poVal->m_txPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_LegendPos(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CLegendPos* poVal = static_cast(poResult); if (c_oserct_legendposVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Legend(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Legend* poVal = static_cast(poResult); if (c_oserct_legendLEGENDPOS == type) { poVal->m_legendPos.Init(); READ1_DEF(length, res, this->ReadCT_LegendPos, poVal->m_legendPos.GetPointer()); } else if (c_oserct_legendLEGENDENTRY == type) { CT_LegendEntry* pNewElem = new CT_LegendEntry; READ1_DEF(length, res, this->ReadCT_LegendEntry, pNewElem); poVal->m_legendEntry.push_back(pNewElem); } else if (c_oserct_legendLAYOUT == type) { CT_Layout* pNewElem = new CT_Layout; READ1_DEF(length, res, this->ReadCT_Layout, pNewElem); poVal->m_layout = pNewElem; } else if (c_oserct_legendOVERLAY == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_overlay = pNewElem; } else if (c_oserct_legendSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_legendTXPR == type) { poVal->m_txPr = new PPTX::Logic::TxBody; poVal->m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, poVal->m_txPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Layout(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Layout* poVal = static_cast(poResult); if (c_oserct_layoutMANUALLAYOUT == type) { CT_ManualLayout* pNewElem = new CT_ManualLayout; READ1_DEF(length, res, this->ReadCT_ManualLayout, pNewElem); poVal->m_manualLayout = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ManualLayout(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_ManualLayout* poVal = static_cast(poResult); if (c_oserct_manuallayoutLAYOUTTARGET == type) { poVal->m_layoutTarget.Init(); READ1_DEF(length, res, this->ReadCT_LayoutTarget, poVal->m_layoutTarget.GetPointer()); } else if (c_oserct_manuallayoutXMODE == type) { poVal->m_xMode.Init(); READ1_DEF(length, res, this->ReadCT_LayoutMode, poVal->m_xMode.GetPointer()); } else if (c_oserct_manuallayoutYMODE == type) { poVal->m_yMode.Init(); READ1_DEF(length, res, this->ReadCT_LayoutMode, poVal->m_yMode.GetPointer()); } else if (c_oserct_manuallayoutWMODE == type) { poVal->m_wMode.Init(); READ1_DEF(length, res, this->ReadCT_LayoutMode, poVal->m_wMode.GetPointer()); } else if (c_oserct_manuallayoutHMODE == type) { poVal->m_hMode.Init(); READ1_DEF(length, res, this->ReadCT_LayoutMode, poVal->m_hMode.GetPointer()); } else if (c_oserct_manuallayoutX == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_x = pNewElem; } else if (c_oserct_manuallayoutY == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_y = pNewElem; } else if (c_oserct_manuallayoutW == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_w = pNewElem; } else if (c_oserct_manuallayoutH == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_h = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_LayoutTarget(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CLayoutTarget* poVal = static_cast(poResult); if (c_oserct_layouttargetVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_LayoutMode(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CLayoutMode* poVal = static_cast(poResult); if (c_oserct_layoutmodeVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_DTable(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_DTable* poVal = static_cast(poResult); if (c_oserct_dtableSHOWHORZBORDER == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_showHorzBorder = pNewElem; } else if (c_oserct_dtableSHOWVERTBORDER == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_showVertBorder = pNewElem; } else if (c_oserct_dtableSHOWOUTLINE == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_showOutline = pNewElem; } else if (c_oserct_dtableSHOWKEYS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_showKeys = pNewElem; } else if (c_oserct_dtableSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_dtableTXPR == type) { poVal->m_txPr = new PPTX::Logic::TxBody; poVal->m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, poVal->m_txPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_SerAx(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_SerAx* poVal = static_cast(poResult); if (c_oserct_seraxAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId = val; } else if (c_oserct_seraxSCALING == type) { CT_Scaling* pNewElem = new CT_Scaling; READ1_DEF(length, res, this->ReadCT_Scaling, pNewElem); poVal->m_scaling = pNewElem; } else if (c_oserct_seraxDELETE == type) { bool val; READ1_DEF(length, res, this->ReadCT_Boolean, &val); poVal->m_delete = val; } else if (c_oserct_seraxAXPOS == type) { poVal->m_axPos.Init(); READ1_DEF(length, res, this->ReadCT_AxPos, poVal->m_axPos.GetPointer()); } else if (c_oserct_seraxMAJORGRIDLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_majorGridlines = pNewElem; } else if (c_oserct_seraxMINORGRIDLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_minorGridlines = pNewElem; } else if (c_oserct_seraxTITLE == type) { CT_Title* pNewElem = new CT_Title; READ1_DEF(length, res, this->ReadCT_Title, pNewElem); poVal->m_title = pNewElem; } else if (c_oserct_seraxNUMFMT == type) { CT_NumFmt* pNewElem = new CT_NumFmt; READ1_DEF(length, res, this->ReadCT_NumFmt, pNewElem); poVal->m_numFmt = pNewElem; } else if (c_oserct_seraxMAJORTICKMARK == type) { poVal->m_majorTickMark.Init(); READ1_DEF(length, res, this->ReadCT_TickMark, poVal->m_majorTickMark.GetPointer()); } else if (c_oserct_seraxMINORTICKMARK == type) { poVal->m_minorTickMark.Init(); READ1_DEF(length, res, this->ReadCT_TickMark, poVal->m_minorTickMark.GetPointer()); } else if (c_oserct_seraxTICKLBLPOS == type) { poVal->m_tickLblPos.Init(); READ1_DEF(length, res, this->ReadCT_TickLblPos, poVal->m_tickLblPos.GetPointer()); } else if (c_oserct_seraxSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_seraxTXPR == type) { poVal->m_txPr = new PPTX::Logic::TxBody; poVal->m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, poVal->m_txPr.GetPointer()); } else if (c_oserct_seraxCROSSAX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_crossAx = pNewElem; } else if (c_oserct_seraxCROSSES == type) { poVal->m_crosses.Init(); READ1_DEF(length, res, this->ReadCT_Crosses, poVal->m_crosses.GetPointer()); } else if (c_oserct_seraxCROSSESAT == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_crossesAt = pNewElem; } else if (c_oserct_seraxTICKLBLSKIP == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_tickLblSkip = val; } else if (c_oserct_seraxTICKMARKSKIP == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_tickMarkSkip = val; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Scaling(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Scaling* poVal = static_cast(poResult); if (c_oserct_scalingLOGBASE == type) { double val; READ1_DEF(length, res, this->ReadCT_Double, &val); poVal->m_logBase = val; } else if (c_oserct_scalingORIENTATION == type) { poVal->m_orientation.Init(); READ1_DEF(length, res, this->ReadCT_Orientation, poVal->m_orientation.GetPointer()); } else if (c_oserct_scalingMAX == type) { double val; READ1_DEF(length, res, this->ReadCT_Double, &val); poVal->m_max = val; } else if (c_oserct_scalingMIN == type) { double val; READ1_DEF(length, res, this->ReadCT_Double, &val); poVal->m_min = val; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Orientation(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; COrientation* poVal = static_cast(poResult); if (c_oserct_orientationVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_AxPos(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CAxPos* poVal = static_cast(poResult); if (c_oserct_axposVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartLines(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_ChartLines* poVal = static_cast(poResult); if (c_oserct_chartlinesSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Title(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Title* poVal = static_cast(poResult); if (c_oserct_titleTX == type) { CT_Tx* pNewElem = new CT_Tx; READ1_DEF(length, res, this->ReadCT_Tx, pNewElem); poVal->m_tx = pNewElem; } else if (c_oserct_titleLAYOUT == type) { CT_Layout* pNewElem = new CT_Layout; READ1_DEF(length, res, this->ReadCT_Layout, pNewElem); poVal->m_layout = pNewElem; } else if (c_oserct_titleOVERLAY == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_overlay = pNewElem; } else if (c_oserct_titleSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_titleTXPR == type) { poVal->m_txPr = new PPTX::Logic::TxBody; poVal->m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, poVal->m_txPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Tx(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Tx* poVal = static_cast(poResult); if (c_oserct_txRICH == type) { BYTE typeRec1 = m_oBufferedStream.GetUChar(); poVal->m_oRich = new PPTX::Logic::TxBody; poVal->m_oRich->fromPPTY(&m_oBufferedStream); poVal->m_oRich->m_name = L"c:rich"; } else if (c_oserct_txSTRREF == type) { CT_StrRef* pNewElem = new CT_StrRef; READ1_DEF(length, res, this->ReadCT_StrRef, pNewElem); poVal->m_strRef = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_StrRef(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_StrRef* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_strrefF == type) { poVal->m_f = m_oBufferedStream.GetString4(length); } else if (c_oserct_strrefSTRCACHE == type) { CT_StrData* pNewElem = new CT_StrData; READ1_DEF(length, res, this->ReadCT_StrData, pNewElem); poVal->m_strCache = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_StrData(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_StrData* poVal = static_cast(poResult); if (c_oserct_strdataPTCOUNT == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_ptCount = pNewElem; } else if (c_oserct_strdataPT == type) { CT_StrVal* pNewElem = new CT_StrVal; READ1_DEF(length, res, this->ReadCT_StrVal, pNewElem); poVal->m_pt.push_back(pNewElem); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_StrVal(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_StrVal* poVal = static_cast(poResult); if (c_oserct_strvalV == type) { poVal->m_v = m_oBufferedStream.GetString4(length); } else if (c_oserct_strvalIDX == type) { poVal->m_idx = (unsigned int)m_oBufferedStream.GetLong(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_NumFmt(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_NumFmt* poVal = static_cast(poResult); if (c_oserct_numfmtFORMATCODE == type) { poVal->m_formatCode = m_oBufferedStream.GetString4(length); } else if (c_oserct_numfmtSOURCELINKED == type) { poVal->m_sourceLinked = m_oBufferedStream.GetBool(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_TickMark(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CTickMark* poVal = static_cast(poResult); if (c_oserct_tickmarkVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_TickLblPos(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CTickLblPos* poVal = static_cast(poResult); if (c_oserct_ticklblposVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Crosses(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CCrosses* poVal = static_cast(poResult); if (c_oserct_crossesVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_TimeUnit(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CTimeUnit* poVal = static_cast(poResult); if (c_oserct_timeunitVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_DateAx(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_DateAx* poVal = static_cast(poResult); if (c_oserct_dateaxAXID == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_axId = pNewElem; } else if (c_oserct_dateaxSCALING == type) { CT_Scaling* pNewElem = new CT_Scaling; READ1_DEF(length, res, this->ReadCT_Scaling, pNewElem); poVal->m_scaling = pNewElem; } else if (c_oserct_dateaxDELETE == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_delete = pNewElem; } else if (c_oserct_dateaxAXPOS == type) { poVal->m_axPos.Init(); READ1_DEF(length, res, this->ReadCT_AxPos, poVal->m_axPos.GetPointer()); } else if (c_oserct_dateaxMAJORGRIDLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_majorGridlines = pNewElem; } else if (c_oserct_dateaxMINORGRIDLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_minorGridlines = pNewElem; } else if (c_oserct_dateaxTITLE == type) { CT_Title* pNewElem = new CT_Title; READ1_DEF(length, res, this->ReadCT_Title, pNewElem); poVal->m_title = pNewElem; } else if (c_oserct_dateaxNUMFMT == type) { CT_NumFmt* pNewElem = new CT_NumFmt; READ1_DEF(length, res, this->ReadCT_NumFmt, pNewElem); poVal->m_numFmt = pNewElem; } else if (c_oserct_dateaxMAJORTICKMARK == type) { poVal->m_majorTickMark.Init(); READ1_DEF(length, res, this->ReadCT_TickMark, poVal->m_majorTickMark.GetPointer()); } else if (c_oserct_dateaxMINORTICKMARK == type) { poVal->m_minorTickMark.Init(); READ1_DEF(length, res, this->ReadCT_TickMark, poVal->m_minorTickMark.GetPointer()); } else if (c_oserct_dateaxTICKLBLPOS == type) { poVal->m_tickLblPos.Init(); READ1_DEF(length, res, this->ReadCT_TickLblPos, poVal->m_tickLblPos.GetPointer()); } else if (c_oserct_dateaxSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_dateaxTXPR == type) { poVal->m_txPr = new PPTX::Logic::TxBody; poVal->m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, poVal->m_txPr.GetPointer()); } else if (c_oserct_dateaxCROSSAX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_crossAx = pNewElem; } else if (c_oserct_dateaxCROSSES == type) { poVal->m_crosses.Init(); READ1_DEF(length, res, this->ReadCT_Crosses, poVal->m_crosses.GetPointer()); } else if (c_oserct_dateaxCROSSESAT == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_crossesAt = pNewElem; } else if (c_oserct_dateaxAUTO == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_auto = pNewElem; } else if (c_oserct_dateaxLBLOFFSET == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_lblOffset = val; } else if (c_oserct_dateaxBASETIMEUNIT == type) { poVal->m_baseTimeUnit.Init(); READ1_DEF(length, res, this->ReadCT_TimeUnit, poVal->m_baseTimeUnit.GetPointer()); } else if (c_oserct_dateaxMAJORUNIT == type) { double val; READ1_DEF(length, res, this->ReadCT_Double, &val); poVal->m_majorUnit = val; } else if (c_oserct_dateaxMAJORTIMEUNIT == type) { poVal->m_majorTimeUnit.Init(); READ1_DEF(length, res, this->ReadCT_TimeUnit, poVal->m_majorTimeUnit.GetPointer()); } else if (c_oserct_dateaxMINORUNIT == type) { double val; READ1_DEF(length, res, this->ReadCT_Double, &val); poVal->m_minorUnit = val; } else if (c_oserct_dateaxMINORTIMEUNIT == type) { poVal->m_minorTimeUnit.Init(); READ1_DEF(length, res, this->ReadCT_TimeUnit, poVal->m_minorTimeUnit.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_LblAlgn(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CLblAlgn* poVal = static_cast(poResult); if (c_oserct_lblalgnVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_CatAx(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_CatAx* poVal = static_cast(poResult); if (c_oserct_cataxAXID == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_axId = pNewElem; } else if (c_oserct_cataxSCALING == type) { CT_Scaling* pNewElem = new CT_Scaling; READ1_DEF(length, res, this->ReadCT_Scaling, pNewElem); poVal->m_scaling = pNewElem; } else if (c_oserct_cataxDELETE == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_delete = pNewElem; } else if (c_oserct_cataxAXPOS == type) { poVal->m_axPos.Init(); READ1_DEF(length, res, this->ReadCT_AxPos, poVal->m_axPos.GetPointer()); } else if (c_oserct_cataxMAJORGRIDLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_majorGridlines = pNewElem; } else if (c_oserct_cataxMINORGRIDLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_minorGridlines = pNewElem; } else if (c_oserct_cataxTITLE == type) { CT_Title* pNewElem = new CT_Title; READ1_DEF(length, res, this->ReadCT_Title, pNewElem); poVal->m_title = pNewElem; } else if (c_oserct_cataxNUMFMT == type) { CT_NumFmt* pNewElem = new CT_NumFmt; READ1_DEF(length, res, this->ReadCT_NumFmt, pNewElem); poVal->m_numFmt = pNewElem; } else if (c_oserct_cataxMAJORTICKMARK == type) { poVal->m_majorTickMark.Init(); READ1_DEF(length, res, this->ReadCT_TickMark, poVal->m_majorTickMark.GetPointer()); } else if (c_oserct_cataxMINORTICKMARK == type) { poVal->m_minorTickMark.Init(); READ1_DEF(length, res, this->ReadCT_TickMark, poVal->m_minorTickMark.GetPointer()); } else if (c_oserct_cataxTICKLBLPOS == type) { poVal->m_tickLblPos.Init(); READ1_DEF(length, res, this->ReadCT_TickLblPos, poVal->m_tickLblPos.GetPointer()); } else if (c_oserct_cataxSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_cataxTXPR == type) { poVal->m_txPr = new PPTX::Logic::TxBody; poVal->m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, poVal->m_txPr.GetPointer()); } else if (c_oserct_cataxCROSSAX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_crossAx = pNewElem; } else if (c_oserct_cataxCROSSES == type) { poVal->m_crosses.Init(); READ1_DEF(length, res, this->ReadCT_Crosses, poVal->m_crosses.GetPointer()); } else if (c_oserct_cataxCROSSESAT == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_crossesAt = pNewElem; } else if (c_oserct_cataxAUTO == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_auto = pNewElem; } else if (c_oserct_cataxLBLALGN == type) { poVal->m_lblAlgn.Init(); READ1_DEF(length, res, this->ReadCT_LblAlgn, poVal->m_lblAlgn.GetPointer()); } else if (c_oserct_cataxLBLOFFSET == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_lblOffset = val; } else if (c_oserct_cataxTICKLBLSKIP == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_tickLblSkip = val; } else if (c_oserct_cataxTICKMARKSKIP == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_tickMarkSkip = val; } else if (c_oserct_cataxNOMULTILVLLBL == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_noMultiLvlLbl = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_DispUnitsLbl(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_DispUnitsLbl* poVal = static_cast(poResult); if (c_oserct_dispunitslblLAYOUT == type) { CT_Layout* pNewElem = new CT_Layout; READ1_DEF(length, res, this->ReadCT_Layout, pNewElem); poVal->m_layout = pNewElem; } else if (c_oserct_dispunitslblTX == type) { CT_Tx* pNewElem = new CT_Tx; READ1_DEF(length, res, this->ReadCT_Tx, pNewElem); poVal->m_tx = pNewElem; } else if (c_oserct_dispunitslblSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_dispunitslblTXPR == type) { poVal->m_txPr = new PPTX::Logic::TxBody; poVal->m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, poVal->m_txPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_BuiltInUnit(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CBuiltInUnit* poVal = static_cast(poResult); if (c_oserct_builtinunitVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_DispUnits(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_DispUnits* poVal = static_cast(poResult); if (c_oserct_dispunitsBUILTINUNIT == type) { poVal->m_builtInUnit.Init(); READ1_DEF(length, res, this->ReadCT_BuiltInUnit, poVal->m_builtInUnit.GetPointer()); } else if (c_oserct_dispunitsCUSTUNIT == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_custUnit = pNewElem; } else if (c_oserct_dispunitsDISPUNITSLBL == type) { CT_DispUnitsLbl* pNewElem = new CT_DispUnitsLbl; READ1_DEF(length, res, this->ReadCT_DispUnitsLbl, pNewElem); poVal->m_dispUnitsLbl = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_CrossBetween(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CCrossBetween* poVal = static_cast(poResult); if (c_oserct_crossbetweenVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ValAx(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_ValAx* poVal = static_cast(poResult); if (c_oserct_valaxAXID == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_axId = pNewElem; } else if (c_oserct_valaxSCALING == type) { CT_Scaling* pNewElem = new CT_Scaling; READ1_DEF(length, res, this->ReadCT_Scaling, pNewElem); poVal->m_scaling = pNewElem; } else if (c_oserct_valaxDELETE == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_delete = pNewElem; } else if (c_oserct_valaxAXPOS == type) { poVal->m_axPos.Init(); READ1_DEF(length, res, this->ReadCT_AxPos, poVal->m_axPos.GetPointer()); } else if (c_oserct_valaxMAJORGRIDLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_majorGridlines = pNewElem; } else if (c_oserct_valaxMINORGRIDLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_minorGridlines = pNewElem; } else if (c_oserct_valaxTITLE == type) { CT_Title* pNewElem = new CT_Title; READ1_DEF(length, res, this->ReadCT_Title, pNewElem); poVal->m_title = pNewElem; } else if (c_oserct_valaxNUMFMT == type) { CT_NumFmt* pNewElem = new CT_NumFmt; READ1_DEF(length, res, this->ReadCT_NumFmt, pNewElem); poVal->m_numFmt = pNewElem; } else if (c_oserct_valaxMAJORTICKMARK == type) { poVal->m_majorTickMark.Init(); READ1_DEF(length, res, this->ReadCT_TickMark, poVal->m_majorTickMark.GetPointer()); } else if (c_oserct_valaxMINORTICKMARK == type) { poVal->m_minorTickMark.Init(); READ1_DEF(length, res, this->ReadCT_TickMark, poVal->m_minorTickMark.GetPointer()); } else if (c_oserct_valaxTICKLBLPOS == type) { poVal->m_tickLblPos.Init(); READ1_DEF(length, res, this->ReadCT_TickLblPos, poVal->m_tickLblPos.GetPointer()); } else if (c_oserct_valaxSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_valaxTXPR == type) { poVal->m_txPr = new PPTX::Logic::TxBody; poVal->m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, poVal->m_txPr.GetPointer()); } else if (c_oserct_valaxCROSSAX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_crossAx = pNewElem; } else if (c_oserct_valaxCROSSES == type) { poVal->m_crosses.Init(); READ1_DEF(length, res, this->ReadCT_Crosses, poVal->m_crosses.GetPointer()); } else if (c_oserct_valaxCROSSESAT == type) { double val; READ1_DEF(length, res, this->ReadCT_Double, &val); poVal->m_crossesAt = val; } else if (c_oserct_valaxCROSSBETWEEN == type) { poVal->m_crossBetween.Init(); READ1_DEF(length, res, this->ReadCT_CrossBetween, poVal->m_crossBetween.GetPointer()); } else if (c_oserct_valaxMAJORUNIT == type) { double val; READ1_DEF(length, res, this->ReadCT_Double, &val); poVal->m_majorUnit = val; } else if (c_oserct_valaxMINORUNIT == type) { double val; READ1_DEF(length, res, this->ReadCT_Double, &val); poVal->m_minorUnit = val; } else if (c_oserct_valaxDISPUNITS == type) { CT_DispUnits* pNewElem = new CT_DispUnits; READ1_DEF(length, res, this->ReadCT_DispUnits, pNewElem); poVal->m_dispUnits = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_SizeRepresents(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CSizeRepresents* poVal = static_cast(poResult); if (c_oserct_sizerepresentsVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_BubbleSer(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_BubbleSer* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_bubbleserIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_bubbleserORDER == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_order = pNewElem; } else if (c_oserct_bubbleserTX == type) { CT_SerTx* pNewElem = new CT_SerTx; READ1_DEF(length, res, this->ReadCT_SerTx, pNewElem); poVal->m_tx = pNewElem; } else if (c_oserct_bubbleserSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_bubbleserINVERTIFNEGATIVE == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_invertIfNegative = pNewElem; } else if (c_oserct_bubbleserDPT == type) { CT_DPt* pNewElem = new CT_DPt; READ1_DEF(length, res, this->ReadCT_DPt, pNewElem); poVal->m_dPt.push_back(pNewElem); } else if (c_oserct_bubbleserDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_bubbleserTRENDLINE == type) { CT_Trendline* pNewElem = new CT_Trendline; READ1_DEF(length, res, this->ReadCT_Trendline, pNewElem); poVal->m_trendline.push_back(pNewElem); } else if (c_oserct_bubbleserERRBARS == type) { CT_ErrBars* pNewElem = new CT_ErrBars; READ1_DEF(length, res, this->ReadCT_ErrBars, pNewElem); poVal->m_errBars.push_back(pNewElem); } else if (c_oserct_bubbleserXVAL == type) { CT_AxDataSource* pNewElem = new CT_AxDataSource; READ1_DEF(length, res, this->ReadCT_AxDataSource, pNewElem); poVal->m_xVal = pNewElem; } else if (c_oserct_bubbleserYVAL == type) { CT_NumDataSource* pNewElem = new CT_NumDataSource; READ1_DEF(length, res, this->ReadCT_NumDataSource, pNewElem); poVal->m_yVal = pNewElem; } else if (c_oserct_bubbleserBUBBLESIZE == type) { CT_NumDataSource* pNewElem = new CT_NumDataSource; READ1_DEF(length, res, this->ReadCT_NumDataSource, pNewElem); poVal->m_bubbleSize = pNewElem; } else if (c_oserct_bubbleserBUBBLE3D == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_bubble3D = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_SerTx(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_SerTx* poVal = static_cast(poResult); if (c_oserct_sertxSTRREF == type) { CT_StrRef* pNewElem = new CT_StrRef; READ1_DEF(length, res, this->ReadCT_StrRef, pNewElem); poVal->m_strRef = pNewElem; } else if (c_oserct_sertxV == type) { std::wstring* pNewElem = new std::wstring; *pNewElem = m_oBufferedStream.GetString4(length); poVal->m_v = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_DPt(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_DPt* poVal = static_cast(poResult); if (c_oserct_dptIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_dptINVERTIFNEGATIVE == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_invertIfNegative = pNewElem; } else if (c_oserct_dptMARKER == type) { CT_Marker* pNewElem = new CT_Marker; READ1_DEF(length, res, this->ReadCT_Marker, pNewElem); poVal->m_marker = pNewElem; } else if (c_oserct_dptBUBBLE3D == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_bubble3D = pNewElem; } else if (c_oserct_dptEXPLOSION == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_explosion = pNewElem; } else if (c_oserct_dptSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_dptPICTUREOPTIONS == type) { CT_PictureOptions* pNewElem = new CT_PictureOptions; READ1_DEF(length, res, this->ReadCT_PictureOptions, pNewElem); poVal->m_pictureOptions = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Marker(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Marker* poVal = static_cast(poResult); if (c_oserct_markerSYMBOL == type) { poVal->m_symbol.Init(); READ1_DEF(length, res, this->ReadCT_MarkerStyle, poVal->m_symbol.GetPointer()); } else if (c_oserct_markerSIZE == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedByte, &val); poVal->m_size = val; } else if (c_oserct_markerSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_MarkerStyle(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CMarkerStyle* poVal = static_cast(poResult); if (c_oserct_markerstyleVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_PictureOptions(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_PictureOptions* poVal = static_cast(poResult); if (c_oserct_pictureoptionsAPPLYTOFRONT == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_applyToFront = pNewElem; } else if (c_oserct_pictureoptionsAPPLYTOSIDES == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_applyToSides = pNewElem; } else if (c_oserct_pictureoptionsAPPLYTOEND == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_applyToEnd = pNewElem; } else if (c_oserct_pictureoptionsPICTUREFORMAT == type) { poVal->m_pictureFormat.Init(); READ1_DEF(length, res, this->ReadCT_PictureFormat, poVal->m_pictureFormat.GetPointer()); } else if (c_oserct_pictureoptionsPICTURESTACKUNIT == type) { double val; READ1_DEF(length, res, this->ReadCT_Double, &val); poVal->m_pictureStackUnit = val; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_PictureFormat(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CPictureFormat* poVal = static_cast(poResult); if (c_oserct_pictureformatVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_dataLabelsRange(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::CSeriesDataLabelsRange* pVal = static_cast(poResult); if (type == c_oserct_dataLabelsRangeFormula) { pVal->m_f = m_oBufferedStream.GetString4(length); } else if (type == c_oserct_dataLabelsRangeCache) { pVal->m_dlblRangeCache.Init(); READ1_DEF(length, res, this->ReadCT_StrData, pVal->m_dlblRangeCache.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_filterException(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::CCategoryFilterException* pVal = static_cast(poResult); if (type == c_oserct_filterSqref) { pVal->m_sqref = m_oBufferedStream.GetString4(length); } else if (type == c_oserct_filterSpPr) { pVal->m_spPr = new PPTX::Logic::SpPr; pVal->m_spPr->m_namespace = L"c15"; res = ReadCT_PptxElement(0, length, pVal->m_spPr.GetPointer()); } else if (type == c_oserct_filterExplosion) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); pVal->m_explosion = val; } else if (type == c_oserct_filterInvertIfNegative) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); pVal->m_invertIfNegative = pNewElem; } else if (type == c_oserct_filterBubble3D) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); pVal->m_bubble3D = pNewElem; } else if (type == c_oserct_filterMarker) { pVal->m_marker.Init(); READ1_DEF(length, res, this->ReadCT_Marker, pVal->m_marker.GetPointer()); } else if (type == c_oserct_filterLbl) { pVal->m_dLbl.Init(); READ1_DEF(length, res, this->ReadCT_DLbl, pVal->m_dLbl.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartFiltering(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::CSeriesFiltering* pVal = static_cast(poResult); if (type == c_oserct_dataLabelsRange) { pVal->m_dataLabelsRange.Init(); READ1_DEF(length, res, this->ReadCT_dataLabelsRange, pVal->m_dataLabelsRange.GetPointer()); } else if (type == c_oserct_filteredSeriesTitle) { pVal->m_filteredSeriesTitle.Init(); READ1_DEF(length, res, this->ReadCT_Tx, pVal->m_filteredSeriesTitle.GetPointer()); } else if (type == c_oserct_filteredCategoryTitle) { pVal->m_filteredCategoryTitle.Init(); READ1_DEF(length, res, this->ReadCT_AxDataSource, pVal->m_filteredCategoryTitle.GetPointer()); } else if (type == c_oserct_filteredLineSeries) { pVal->m_filteredLineSeries.Init(); READ1_DEF(length, res, this->ReadCT_LineSer, pVal->m_filteredLineSeries.GetPointer()); } else if (type == c_oserct_filteredScatterSeries) { pVal->m_filteredScatterSeries.Init(); READ1_DEF(length, res, this->ReadCT_ScatterSer, pVal->m_filteredScatterSeries.GetPointer()); } else if (type == c_oserct_filteredRadarSeries) { pVal->m_filteredRadarSeries.Init(); READ1_DEF(length, res, this->ReadCT_RadarSer, pVal->m_filteredRadarSeries.GetPointer()); } else if (type == c_oserct_filteredBarSeries) { pVal->m_filteredBarSeries.Init(); READ1_DEF(length, res, this->ReadCT_BarSer, pVal->m_filteredBarSeries.GetPointer()); } else if (type == c_oserct_filteredAreaSeries) { pVal->m_filteredAreaSeries.Init(); READ1_DEF(length, res, this->ReadCT_AreaSer, pVal->m_filteredAreaSeries.GetPointer()); } else if (type == c_oserct_filteredBubbleSeries) { pVal->m_filteredBubbleSeries.Init(); READ1_DEF(length, res, this->ReadCT_BubbleSer, pVal->m_filteredBubbleSeries.GetPointer()); } else if (type == c_oserct_filteredSurfaceSeries) { pVal->m_filteredSurfaceSeries.Init(); READ1_DEF(length, res, this->ReadCT_SurfaceSer, pVal->m_filteredSurfaceSeries.GetPointer()); } else if (type == c_oserct_filteredPieSeries) { pVal->m_filteredPieSeries.Init(); READ1_DEF(length, res, this->ReadCT_PieSer, pVal->m_filteredPieSeries.GetPointer()); } else if (type == c_oserct_fullRef) { pVal->m_fullRef = m_oBufferedStream.GetString4(length); } else if (type == c_oserct_levelRef) { pVal->m_levelRef = m_oBufferedStream.GetString4(length); } else if (type == c_oserct_formulaRef) { pVal->m_formulaRef = m_oBufferedStream.GetString4(length); } else if (type == c_oserct_categoryFilterExceptions) { pVal->m_categoryFilterExceptions.Init(); READ1_DEF(length, res, this->ReadCT_filterExceptions, pVal->m_categoryFilterExceptions.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_filterExceptions(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::CCategoryFilterExceptions* pVal = static_cast(poResult); if (type == c_oserct_categoryFilterException) { pVal->m_arrItems.push_back(new OOX::Spreadsheet::CCategoryFilterException()); READ1_DEF(length, res, this->ReadCT_filterException, pVal->m_arrItems.back()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadExtensions(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Drawing::COfficeArtExtensionList* pVal = static_cast(poResult); if (type == c_oserct_dataLabel) { pVal->m_arrExt.push_back(new OOX::Drawing::COfficeArtExtension()); pVal->m_arrExt.back()->m_sUri = L"{CE6537A1-D6FC-4f65-9D91-7224C49458BB}"; pVal->m_arrExt.back()->m_oChartDataLabel.Init(); READ1_DEF(length, res, this->ReadCT_DLbl, pVal->m_arrExt.back()->m_oChartDataLabel.GetPointer()); } else if (type == c_oserct_chartFiltering) { pVal->m_arrExt.push_back(new OOX::Drawing::COfficeArtExtension()); pVal->m_arrExt.back()->m_sUri = L"{02D57815-91ED-43cb-92C2-25804820EDAC}"; pVal->m_arrExt.back()->m_oChartFiltering.Init(); READ1_DEF(length, res, this->ReadCT_ChartFiltering, pVal->m_arrExt.back()->m_oChartFiltering.GetPointer()); } else if (type == c_oserct_chartDataDisplayNaAsBlank) { pVal->m_arrExt.push_back(new OOX::Drawing::COfficeArtExtension()); pVal->m_arrExt.back()->m_sUri = L"{56B9EC1D-385E-4148-901F-78D8002777C0}"; pVal->m_arrExt.back()->m_sAdditionalNamespace = L"xmlns:c16r3=\"http://schemas.microsoft.com/office/drawing/2017/03/chart\""; pVal->m_arrExt.back()->m_oDataDisplayNaAsBlank = m_oBufferedStream.GetBool(); } else if (type == c_oserct_chartExternalReference) { pVal->m_arrExt.push_back(new OOX::Drawing::COfficeArtExtension()); pVal->m_arrExt.back()->m_sUri = L"{C3750BE0-5CA9-4D1C-82C7-79D762991C26}"; READ1_DEF(length, res, this->ReadCT_ChartExternalReference, pVal->m_arrExt.back()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExternalReference(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Drawing::COfficeArtExtension* poVal = static_cast(poResult); if (type == c_oserct_chartDataExternalFileKey) { poVal->m_oFileKey = m_oBufferedStream.GetString4(length); } else if (type == c_oserct_chartDataExternalInstanceId) { poVal->m_oInstanceId = m_oBufferedStream.GetString4(length); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_DLbls(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_DLbls* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- switch (type) { case c_oserct_dlblsDLBL: { CT_DLbl* pNewElem = new CT_DLbl; READ1_DEF(length, res, this->ReadCT_DLbl, pNewElem); poVal->m_dLbl.push_back(pNewElem); }break; case c_oserct_dlblsDLBLPOS: { CDLblPos* pNewElem = new CDLblPos; READ1_DEF(length, res, this->ReadCT_DLblPos, pNewElem); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3DLBLPOS; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsDELETE: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3DELETE; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsLEADERLINES: { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3LEADERLINES; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsNUMFMT: { CT_NumFmt* pNewElem = new CT_NumFmt; READ1_DEF(length, res, this->ReadCT_NumFmt, pNewElem); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3NUMFMT; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsSEPARATOR: { std::wstring* pNewElem = new std::wstring; *pNewElem = m_oBufferedStream.GetString4(length); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3SEPARATOR; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsSHOWBUBBLESIZE: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3SHOWBUBBLESIZE; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsSHOWCATNAME: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3SHOWCATNAME; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsSHOWLEADERLINES: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3SHOWLEADERLINES; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsSHOWLEGENDKEY: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3SHOWLEGENDKEY; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsSHOWPERCENT: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3SHOWPERCENT; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsSHOWSERNAME: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3SHOWSERNAME; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsSHOWVAL: { bool *pNewElem = new bool;; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); poVal->m_Items.push_back(pNewElem); ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3SHOWVAL; poVal->m_ItemsElementName0.push_back(eElemtype); }break; case c_oserct_dlblsSPPR: { ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3SPPR; poVal->m_ItemsElementName0.push_back(eElemtype); PPTX::Logic::SpPr * pNewElem = new PPTX::Logic::SpPr(); pNewElem->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, pNewElem); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblsTXPR: { ItemsChoiceType3* eElemtype = new ItemsChoiceType3; *eElemtype = itemschoicetype3TXPR; poVal->m_ItemsElementName0.push_back(eElemtype); PPTX::Logic::TxBody * pNewElem = new PPTX::Logic::TxBody(); pNewElem->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, pNewElem); poVal->m_Items.push_back(pNewElem); }break; default: res = c_oSerConstants::ReadUnknown; } return res; } int BinaryChartReader::ReadCT_DLbl(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_DLbl* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //---------------------------------------------------------------------------------------- switch (type) { case c_oserct_dlblIDX: { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; }break; case c_oserct_dlblDLBLPOS: { CDLblPos* pNewElem = new CDLblPos; READ1_DEF(length, res, this->ReadCT_DLblPos, pNewElem); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4DLBLPOS; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblDELETE: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4DELETE; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblLAYOUT: { CT_Layout* pNewElem = new CT_Layout; READ1_DEF(length, res, this->ReadCT_Layout, pNewElem); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4LAYOUT; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblNUMFMT: { CT_NumFmt* pNewElem = new CT_NumFmt; READ1_DEF(length, res, this->ReadCT_NumFmt, pNewElem); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4NUMFMT; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblSEPARATOR: { std::wstring* pNewElem = new std::wstring; *pNewElem = m_oBufferedStream.GetString4(length); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4SEPARATOR; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblSHOWBUBBLESIZE: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4SHOWBUBBLESIZE; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblSHOWCATNAME: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4SHOWCATNAME; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblSHOWLEGENDKEY: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4SHOWLEGENDKEY; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblSHOWPERCENT: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4SHOWPERCENT; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblSHOWSERNAME: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4SHOWSERNAME; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblSHOWVAL: { bool *pNewElem = new bool; READ1_DEF(length, res, this->ReadCT_Boolean, pNewElem); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4SHOWVAL; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblSPPR: { ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4SPPR; poVal->m_ItemsElementName0.push_back(eElemtype); PPTX::Logic::SpPr *pNewElem = new PPTX::Logic::SpPr; pNewElem->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, pNewElem); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblTX: { CT_Tx* pNewElem = new CT_Tx; READ1_DEF(length, res, this->ReadCT_Tx, pNewElem); ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4TX; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_dlblTXPR: { ItemsChoiceType4* eElemtype = new ItemsChoiceType4; *eElemtype = itemschoicetype4TXPR; poVal->m_ItemsElementName0.push_back(eElemtype); PPTX::Logic::TxBody * pNewElem = new PPTX::Logic::TxBody(); pNewElem->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, pNewElem); poVal->m_Items.push_back(pNewElem); }break; case c_oserct_xForSave: { bool val; READ1_DEF(length, res, this->ReadCT_Boolean, &val); poVal->m_xForSave = val; }break; case c_oserct_showDataLabelsRange: { bool val; READ1_DEF(length, res, this->ReadCT_Boolean, &val); poVal->m_showDataLabelsRange = val; }break; case c_oserct_showLeaderLines: { bool val; READ1_DEF(length, res, this->ReadCT_Boolean, &val); poVal->m_showLeaderLines = val; }break; case c_oserct_leaderLines: { poVal->m_leaderLines = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, poVal->m_leaderLines); }break; default: res = c_oSerConstants::ReadUnknown; } return res; } int BinaryChartReader::ReadCT_DLblPos(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CDLblPos* poVal = static_cast(poResult); poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); return res; } int BinaryChartReader::ReadCT_Trendline(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Trendline* poVal = static_cast(poResult); if (c_oserct_trendlineNAME == type) { std::wstring* pNewElem = new std::wstring; *pNewElem = m_oBufferedStream.GetString4(length); poVal->m_name = pNewElem; } else if (c_oserct_trendlineSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_trendlineTRENDLINETYPE == type) { poVal->m_trendlineType.Init(); READ1_DEF(length, res, this->ReadCT_TrendlineType, poVal->m_trendlineType.GetPointer()); } else if (c_oserct_trendlineORDER == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedByte, &val); poVal->m_order = val; } else if (c_oserct_trendlinePERIOD == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_period = val; } else if (c_oserct_trendlineFORWARD == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_forward = pNewElem; } else if (c_oserct_trendlineBACKWARD == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_backward = pNewElem; } else if (c_oserct_trendlineINTERCEPT == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_intercept = pNewElem; } else if (c_oserct_trendlineDISPRSQR == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_dispRSqr = pNewElem; } else if (c_oserct_trendlineDISPEQ == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_dispEq = pNewElem; } else if (c_oserct_trendlineTRENDLINELBL == type) { CT_TrendlineLbl* pNewElem = new CT_TrendlineLbl; READ1_DEF(length, res, this->ReadCT_TrendlineLbl, pNewElem); poVal->m_trendlineLbl = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_TrendlineType(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CTrendlineType* poVal = static_cast(poResult); if (c_oserct_trendlinetypeVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_TrendlineLbl(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_TrendlineLbl* poVal = static_cast(poResult); if (c_oserct_trendlinelblLAYOUT == type) { CT_Layout* pNewElem = new CT_Layout; READ1_DEF(length, res, this->ReadCT_Layout, pNewElem); poVal->m_layout = pNewElem; } else if (c_oserct_trendlinelblTX == type) { CT_Tx* pNewElem = new CT_Tx; READ1_DEF(length, res, this->ReadCT_Tx, pNewElem); poVal->m_tx = pNewElem; } else if (c_oserct_trendlinelblNUMFMT == type) { CT_NumFmt* pNewElem = new CT_NumFmt; READ1_DEF(length, res, this->ReadCT_NumFmt, pNewElem); poVal->m_numFmt = pNewElem; } else if (c_oserct_trendlinelblSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_trendlinelblTXPR == type) { poVal->m_txPr = new PPTX::Logic::TxBody; poVal->m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, poVal->m_txPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ErrBars(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_ErrBars* poVal = static_cast(poResult); if (c_oserct_errbarsERRDIR == type) { poVal->m_errDir.Init(); READ1_DEF(length, res, this->ReadCT_ErrDir, poVal->m_errDir.GetPointer()); } else if (c_oserct_errbarsERRBARTYPE == type) { poVal->m_errBarType.Init(); READ1_DEF(length, res, this->ReadCT_ErrBarType, poVal->m_errBarType.GetPointer()); } else if (c_oserct_errbarsERRVALTYPE == type) { poVal->m_errValType.Init(); READ1_DEF(length, res, this->ReadCT_ErrValType, poVal->m_errValType.GetPointer()); } else if (c_oserct_errbarsNOENDCAP == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_noEndCap = pNewElem; } else if (c_oserct_errbarsPLUS == type) { CT_NumDataSource* pNewElem = new CT_NumDataSource; READ1_DEF(length, res, this->ReadCT_NumDataSource, pNewElem); poVal->m_plus = pNewElem; } else if (c_oserct_errbarsMINUS == type) { CT_NumDataSource* pNewElem = new CT_NumDataSource; READ1_DEF(length, res, this->ReadCT_NumDataSource, pNewElem); poVal->m_minus = pNewElem; } else if (c_oserct_errbarsVAL == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_val = pNewElem; } else if (c_oserct_errbarsSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ErrDir(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CErrDir* poVal = static_cast(poResult); if (c_oserct_errdirVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ErrBarType(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CErrBarType* poVal = static_cast(poResult); if (c_oserct_errbartypeVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ErrValType(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CErrValType* poVal = static_cast(poResult); if (c_oserct_errvaltypeVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_NumDataSource(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_NumDataSource* poVal = static_cast(poResult); if (c_oserct_numdatasourceNUMLIT == type) { CT_NumData* pNewElem = new CT_NumData; READ1_DEF(length, res, this->ReadCT_NumData, pNewElem); poVal->m_numLit = pNewElem; } else if (c_oserct_numdatasourceNUMREF == type) { CT_NumRef* pNewElem = new CT_NumRef; READ1_DEF(length, res, this->ReadCT_NumRef, pNewElem); poVal->m_numRef = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_NumData(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_NumData* poVal = static_cast(poResult); if (c_oserct_numdataFORMATCODE == type) { std::wstring* pNewElem = new std::wstring; *pNewElem = m_oBufferedStream.GetString4(length); poVal->m_formatCode = pNewElem; } else if (c_oserct_numdataPTCOUNT == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_ptCount = pNewElem; } else if (c_oserct_numdataPT == type) { CT_NumVal* pNewElem = new CT_NumVal; READ1_DEF(length, res, this->ReadCT_NumVal, pNewElem); poVal->m_pt.push_back(pNewElem); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_NumVal(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_NumVal* poVal = static_cast(poResult); if (c_oserct_numvalV == type) { std::wstring* pNewElem = new std::wstring; *pNewElem = m_oBufferedStream.GetString4(length); poVal->m_v = pNewElem; } else if (c_oserct_numvalIDX == type) { poVal->m_idx = (unsigned int)m_oBufferedStream.GetLong(); } else if (c_oserct_numvalFORMATCODE == type) { std::wstring* pNewElem = new std::wstring; *pNewElem = m_oBufferedStream.GetString4(length); poVal->m_formatCode = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_NumRef(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_NumRef* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_numrefF == type) { std::wstring* pNewElem = new std::wstring; *pNewElem = m_oBufferedStream.GetString4(length); poVal->m_f = pNewElem; } else if (c_oserct_numrefNUMCACHE == type) { CT_NumData* pNewElem = new CT_NumData; READ1_DEF(length, res, this->ReadCT_NumData, pNewElem); poVal->m_numCache = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_AxDataSource(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_AxDataSource* poVal = static_cast(poResult); if (c_oserct_axdatasourceMULTILVLSTRREF == type) { CT_MultiLvlStrRef* pNewElem = new CT_MultiLvlStrRef; READ1_DEF(length, res, this->ReadCT_MultiLvlStrRef, pNewElem); poVal->m_multiLvlStrRef = pNewElem; } else if (c_oserct_axdatasourceNUMLIT == type) { CT_NumData* pNewElem = new CT_NumData; READ1_DEF(length, res, this->ReadCT_NumData, pNewElem); poVal->m_numLit = pNewElem; } else if (c_oserct_axdatasourceNUMREF == type) { CT_NumRef* pNewElem = new CT_NumRef; READ1_DEF(length, res, this->ReadCT_NumRef, pNewElem); poVal->m_numRef = pNewElem; } else if (c_oserct_axdatasourceSTRLIT == type) { CT_StrData* pNewElem = new CT_StrData; READ1_DEF(length, res, this->ReadCT_StrData, pNewElem); poVal->m_strLit = pNewElem; } else if (c_oserct_axdatasourceSTRREF == type) { CT_StrRef* pNewElem = new CT_StrRef; READ1_DEF(length, res, this->ReadCT_StrRef, pNewElem); poVal->m_strRef = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_MultiLvlStrRef(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_MultiLvlStrRef* poVal = static_cast(poResult); if (c_oserct_multilvlstrrefF == type) { std::wstring* pNewElem = new std::wstring; *pNewElem = m_oBufferedStream.GetString4(length); poVal->m_f = pNewElem; } else if (c_oserct_multilvlstrrefMULTILVLSTRCACHE == type) { CT_MultiLvlStrData* pNewElem = new CT_MultiLvlStrData; READ1_DEF(length, res, this->ReadCT_MultiLvlStrData, pNewElem); poVal->m_multiLvlStrCache = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_lvl(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_lvl* poVal = static_cast(poResult); if (c_oserct_lvlPT == type) { CT_StrVal* pNewElem = new CT_StrVal; READ1_DEF(length, res, this->ReadCT_StrVal, pNewElem); poVal->m_pt.push_back(pNewElem); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_MultiLvlStrData(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_MultiLvlStrData* poVal = static_cast(poResult); if (c_oserct_multilvlstrdataPTCOUNT == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_ptCount = pNewElem; } else if (c_oserct_multilvlstrdataLVL == type) { CT_lvl* pNewElem = new CT_lvl; READ1_DEF(length, res, this->ReadCT_lvl, pNewElem); poVal->m_lvl.push_back(pNewElem); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_BubbleChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_BubbleChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_bubblechartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_bubblechartSER == type) { CT_BubbleSer* pNewElem = new CT_BubbleSer; READ1_DEF(length, res, this->ReadCT_BubbleSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_bubblechartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_bubblechartBUBBLE3D == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_bubble3D = pNewElem; } else if (c_oserct_bubblechartBUBBLESCALE == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_bubbleScale = val; } else if (c_oserct_bubblechartSHOWNEGBUBBLES == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_showNegBubbles = pNewElem; } else if (c_oserct_bubblechartSIZEREPRESENTS == type) { poVal->m_sizeRepresents.Init(); READ1_DEF(length, res, this->ReadCT_SizeRepresents, poVal->m_sizeRepresents.GetPointer()); } else if (c_oserct_bubblechartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_bandFmts(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_bandFmts* poVal = static_cast(poResult); if (c_oserct_bandfmtsBANDFMT == type) { CT_BandFmt* pNewElem = new CT_BandFmt; READ1_DEF(length, res, this->ReadCT_BandFmt, pNewElem); poVal->m_bandFmt.push_back(pNewElem); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Surface3DChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Surface3DChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_surface3dchartWIREFRAME == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_wireframe = pNewElem; } else if (c_oserct_surface3dchartSER == type) { CT_SurfaceSer* pNewElem = new CT_SurfaceSer; READ1_DEF(length, res, this->ReadCT_SurfaceSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_surface3dchartBANDFMTS == type) { CT_bandFmts* pNewElem = new CT_bandFmts; READ1_DEF(length, res, this->ReadCT_bandFmts, pNewElem); poVal->m_bandFmts = pNewElem; } else if (c_oserct_surface3dchartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_SurfaceSer(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_SurfaceSer* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_surfaceserIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_surfaceserORDER == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_order = pNewElem; } else if (c_oserct_surfaceserTX == type) { CT_SerTx* pNewElem = new CT_SerTx; READ1_DEF(length, res, this->ReadCT_SerTx, pNewElem); poVal->m_tx = pNewElem; } else if (c_oserct_surfaceserSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_surfaceserCAT == type) { CT_AxDataSource* pNewElem = new CT_AxDataSource; READ1_DEF(length, res, this->ReadCT_AxDataSource, pNewElem); poVal->m_cat = pNewElem; } else if (c_oserct_surfaceserVAL == type) { CT_NumDataSource* pNewElem = new CT_NumDataSource; READ1_DEF(length, res, this->ReadCT_NumDataSource, pNewElem); poVal->m_val = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_BandFmt(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_BandFmt* poVal = static_cast(poResult); if (c_oserct_bandfmtIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_bandfmtSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_SurfaceChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_SurfaceChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_surfacechartWIREFRAME == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_wireframe = pNewElem; } else if (c_oserct_surfacechartSER == type) { CT_SurfaceSer* pNewElem = new CT_SurfaceSer; READ1_DEF(length, res, this->ReadCT_SurfaceSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_surfacechartBANDFMTS == type) { CT_bandFmts* pNewElem = new CT_bandFmts; READ1_DEF(length, res, this->ReadCT_bandFmts, pNewElem); poVal->m_bandFmts = pNewElem; } else if (c_oserct_surfacechartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_SplitType(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CSplitType* poVal = static_cast(poResult); if (c_oserct_splittypeVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_OfPieType(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; COfPieType* poVal = static_cast(poResult); if (c_oserct_ofpietypeVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_custSplit(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_custSplit* poVal = static_cast(poResult); if (c_oserct_custsplitSECONDPIEPT == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_secondPiePt.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_OfPieChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_OfPieChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_ofpiechartOFPIETYPE == type) { poVal->m_ofPieType.Init(); READ1_DEF(length, res, this->ReadCT_OfPieType, poVal->m_ofPieType.GetPointer()); } else if (c_oserct_ofpiechartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_ofpiechartSER == type) { CT_PieSer* pNewElem = new CT_PieSer; READ1_DEF(length, res, this->ReadCT_PieSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_ofpiechartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_ofpiechartGAPWIDTH == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_gapWidth = val; } else if (c_oserct_ofpiechartSPLITTYPE == type) { poVal->m_splitType.Init(); READ1_DEF(length, res, this->ReadCT_SplitType, poVal->m_splitType.GetPointer()); } else if (c_oserct_ofpiechartSPLITPOS == type) { double pNewElem; READ1_DEF(length, res, this->ReadCT_Double, &pNewElem); poVal->m_splitPos = pNewElem; } else if (c_oserct_ofpiechartCUSTSPLIT == type) { CT_custSplit* pNewElem = new CT_custSplit; READ1_DEF(length, res, this->ReadCT_custSplit, pNewElem); poVal->m_custSplit = pNewElem; } else if (c_oserct_ofpiechartSECONDPIESIZE == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_secondPieSize = val; } else if (c_oserct_ofpiechartSERLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_serLines.push_back(pNewElem); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_PieSer(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_PieSer* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_pieserIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_pieserORDER == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_order = pNewElem; } else if (c_oserct_pieserTX == type) { CT_SerTx* pNewElem = new CT_SerTx; READ1_DEF(length, res, this->ReadCT_SerTx, pNewElem); poVal->m_tx = pNewElem; } else if (c_oserct_pieserSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_pieserEXPLOSION == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_explosion = pNewElem; } else if (c_oserct_pieserDPT == type) { CT_DPt* pNewElem = new CT_DPt; READ1_DEF(length, res, this->ReadCT_DPt, pNewElem); poVal->m_dPt.push_back(pNewElem); } else if (c_oserct_pieserDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_pieserCAT == type) { CT_AxDataSource* pNewElem = new CT_AxDataSource; READ1_DEF(length, res, this->ReadCT_AxDataSource, pNewElem); poVal->m_cat = pNewElem; } else if (c_oserct_pieserVAL == type) { CT_NumDataSource* pNewElem = new CT_NumDataSource; READ1_DEF(length, res, this->ReadCT_NumDataSource, pNewElem); poVal->m_val = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Bar3DChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Bar3DChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_bar3dchartBARDIR == type) { poVal->m_barDir.Init(); READ1_DEF(length, res, this->ReadCT_BarDir, poVal->m_barDir.GetPointer()); } else if (c_oserct_bar3dchartGROUPING == type) { poVal->m_grouping.Init(); READ1_DEF(length, res, this->ReadCT_BarGrouping, poVal->m_grouping.GetPointer()); } else if (c_oserct_bar3dchartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_bar3dchartSER == type) { CT_BarSer* pNewElem = new CT_BarSer; READ1_DEF(length, res, this->ReadCT_BarSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_bar3dchartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_bar3dchartGAPWIDTH == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_gapWidth = val; } else if (c_oserct_bar3dchartGAPDEPTH == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_gapDepth = val; } else if (c_oserct_bar3dchartSHAPE == type) { poVal->m_shape.Init(); READ1_DEF(length, res, this->ReadCT_Shape, poVal->m_shape.GetPointer()); } else if (c_oserct_bar3dchartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_BarDir(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CBarDir* poVal = static_cast(poResult); poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); return res; } int BinaryChartReader::ReadCT_BarGrouping(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CBarGrouping* poVal = static_cast(poResult); poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); return res; } int BinaryChartReader::ReadCT_BarSer(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_BarSer* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_barserIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_barserORDER == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_order = pNewElem; } else if (c_oserct_barserTX == type) { CT_SerTx* pNewElem = new CT_SerTx; READ1_DEF(length, res, this->ReadCT_SerTx, pNewElem); poVal->m_tx = pNewElem; } else if (c_oserct_barserSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_barserINVERTIFNEGATIVE == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_invertIfNegative = pNewElem; } else if (c_oserct_barserPICTUREOPTIONS == type) { CT_PictureOptions* pNewElem = new CT_PictureOptions; READ1_DEF(length, res, this->ReadCT_PictureOptions, pNewElem); poVal->m_pictureOptions = pNewElem; } else if (c_oserct_barserDPT == type) { CT_DPt* pNewElem = new CT_DPt; READ1_DEF(length, res, this->ReadCT_DPt, pNewElem); poVal->m_dPt.push_back(pNewElem); } else if (c_oserct_barserDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_barserTRENDLINE == type) { CT_Trendline* pNewElem = new CT_Trendline; READ1_DEF(length, res, this->ReadCT_Trendline, pNewElem); poVal->m_trendline.push_back(pNewElem); } else if (c_oserct_barserERRBARS == type) { CT_ErrBars* pNewElem = new CT_ErrBars; READ1_DEF(length, res, this->ReadCT_ErrBars, pNewElem); poVal->m_errBars = pNewElem; } else if (c_oserct_barserCAT == type) { CT_AxDataSource* pNewElem = new CT_AxDataSource; READ1_DEF(length, res, this->ReadCT_AxDataSource, pNewElem); poVal->m_cat = pNewElem; } else if (c_oserct_barserVAL == type) { CT_NumDataSource* pNewElem = new CT_NumDataSource; READ1_DEF(length, res, this->ReadCT_NumDataSource, pNewElem); poVal->m_val = pNewElem; } else if (c_oserct_barserSHAPE == type) { poVal->m_shape.Init(); READ1_DEF(length, res, this->ReadCT_Shape, poVal->m_shape.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Shape(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CShapeType* poVal = static_cast(poResult); poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); return res; } int BinaryChartReader::ReadCT_BarChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_BarChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_barchartBARDIR == type) { poVal->m_barDir.Init(); READ1_DEF(length, res, this->ReadCT_BarDir, poVal->m_barDir.GetPointer()); } else if (c_oserct_barchartGROUPING == type) { poVal->m_grouping.Init(); READ1_DEF(length, res, this->ReadCT_BarGrouping, poVal->m_grouping.GetPointer()); } else if (c_oserct_barchartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_barchartSER == type) { CT_BarSer* pNewElem = new CT_BarSer; READ1_DEF(length, res, this->ReadCT_BarSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_barchartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_barchartGAPWIDTH == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_gapWidth = val; } else if (c_oserct_barchartOVERLAP == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_overlap = val; } else if (c_oserct_barchartSERLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_serLines.push_back(pNewElem); } else if (c_oserct_barchartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_DoughnutChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_DoughnutChart* poVal = static_cast(poResult); if (c_oserct_doughnutchartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_doughnutchartSER == type) { CT_PieSer* pNewElem = new CT_PieSer; READ1_DEF(length, res, this->ReadCT_PieSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_doughnutchartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_doughnutchartFIRSTSLICEANG == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_firstSliceAng = val; } else if (c_oserct_doughnutchartHOLESIZE == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_holeSize = val; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Pie3DChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Pie3DChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_pie3dchartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_pie3dchartSER == type) { CT_PieSer* pNewElem = new CT_PieSer; READ1_DEF(length, res, this->ReadCT_PieSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_pie3dchartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_PieChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_PieChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_piechartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_piechartSER == type) { CT_PieSer* pNewElem = new CT_PieSer; READ1_DEF(length, res, this->ReadCT_PieSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_piechartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_piechartFIRSTSLICEANG == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_firstSliceAng = val; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ScatterSer(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_ScatterSer* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_scatterserIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_scatterserORDER == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_order = pNewElem; } else if (c_oserct_scatterserTX == type) { CT_SerTx* pNewElem = new CT_SerTx; READ1_DEF(length, res, this->ReadCT_SerTx, pNewElem); poVal->m_tx = pNewElem; } else if (c_oserct_scatterserSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_scatterserMARKER == type) { CT_Marker* pNewElem = new CT_Marker; READ1_DEF(length, res, this->ReadCT_Marker, pNewElem); poVal->m_marker = pNewElem; } else if (c_oserct_scatterserDPT == type) { CT_DPt* pNewElem = new CT_DPt; READ1_DEF(length, res, this->ReadCT_DPt, pNewElem); poVal->m_dPt.push_back(pNewElem); } else if (c_oserct_scatterserDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_scatterserTRENDLINE == type) { CT_Trendline* pNewElem = new CT_Trendline; READ1_DEF(length, res, this->ReadCT_Trendline, pNewElem); poVal->m_trendline.push_back(pNewElem); } else if (c_oserct_scatterserERRBARS == type) { CT_ErrBars* pNewElem = new CT_ErrBars; READ1_DEF(length, res, this->ReadCT_ErrBars, pNewElem); poVal->m_errBars.push_back(pNewElem); } else if (c_oserct_scatterserXVAL == type) { CT_AxDataSource* pNewElem = new CT_AxDataSource; READ1_DEF(length, res, this->ReadCT_AxDataSource, pNewElem); poVal->m_xVal = pNewElem; } else if (c_oserct_scatterserYVAL == type) { CT_NumDataSource* pNewElem = new CT_NumDataSource; READ1_DEF(length, res, this->ReadCT_NumDataSource, pNewElem); poVal->m_yVal = pNewElem; } else if (c_oserct_scatterserSMOOTH == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_smooth = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ScatterStyle(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CScatterStyle* poVal = static_cast(poResult); if (c_oserct_scatterstyleVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ScatterChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_ScatterChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_scatterchartSCATTERSTYLE == type) { poVal->m_scatterStyle.Init(); READ1_DEF(length, res, this->ReadCT_ScatterStyle, poVal->m_scatterStyle.GetPointer()); } else if (c_oserct_scatterchartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_scatterchartSER == type) { CT_ScatterSer* pNewElem = new CT_ScatterSer; READ1_DEF(length, res, this->ReadCT_ScatterSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_scatterchartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_scatterchartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_RadarSer(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_RadarSer* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } if (c_oserct_radarserIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_radarserORDER == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_order = pNewElem; } else if (c_oserct_radarserTX == type) { CT_SerTx* pNewElem = new CT_SerTx; READ1_DEF(length, res, this->ReadCT_SerTx, pNewElem); poVal->m_tx = pNewElem; } else if (c_oserct_radarserSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_radarserMARKER == type) { CT_Marker* pNewElem = new CT_Marker; READ1_DEF(length, res, this->ReadCT_Marker, pNewElem); poVal->m_marker = pNewElem; } else if (c_oserct_radarserDPT == type) { CT_DPt* pNewElem = new CT_DPt; READ1_DEF(length, res, this->ReadCT_DPt, pNewElem); poVal->m_dPt.push_back(pNewElem); } else if (c_oserct_radarserDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_radarserCAT == type) { CT_AxDataSource* pNewElem = new CT_AxDataSource; READ1_DEF(length, res, this->ReadCT_AxDataSource, pNewElem); poVal->m_cat = pNewElem; } else if (c_oserct_radarserVAL == type) { CT_NumDataSource* pNewElem = new CT_NumDataSource; READ1_DEF(length, res, this->ReadCT_NumDataSource, pNewElem); poVal->m_val = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_RadarStyle(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CRadarStyle* poVal = static_cast(poResult); if (c_oserct_radarstyleVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_RadarChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_RadarChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_radarchartRADARSTYLE == type) { poVal->m_radarStyle.Init(); READ1_DEF(length, res, this->ReadCT_RadarStyle, poVal->m_radarStyle.GetPointer()); } else if (c_oserct_radarchartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_radarchartSER == type) { CT_RadarSer* pNewElem = new CT_RadarSer; READ1_DEF(length, res, this->ReadCT_RadarSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_radarchartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_radarchartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_StockChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_StockChart* poVal = static_cast(poResult); if (c_oserct_stockchartSER == type) { CT_LineSer* pNewElem = new CT_LineSer; READ1_DEF(length, res, this->ReadCT_LineSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_stockchartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_stockchartDROPLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_dropLines = pNewElem; } else if (c_oserct_stockchartHILOWLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_hiLowLines = pNewElem; } else if (c_oserct_stockchartUPDOWNBARS == type) { CT_UpDownBars* pNewElem = new CT_UpDownBars; READ1_DEF(length, res, this->ReadCT_UpDownBars, pNewElem); poVal->m_upDownBars = pNewElem; } else if (c_oserct_stockchartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_LineSer(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_LineSer* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_lineserIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_lineserORDER == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_order = pNewElem; } else if (c_oserct_lineserTX == type) { CT_SerTx* pNewElem = new CT_SerTx; READ1_DEF(length, res, this->ReadCT_SerTx, pNewElem); poVal->m_tx = pNewElem; } else if (c_oserct_lineserSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_lineserMARKER == type) { CT_Marker* pNewElem = new CT_Marker; READ1_DEF(length, res, this->ReadCT_Marker, pNewElem); poVal->m_marker = pNewElem; } else if (c_oserct_lineserDPT == type) { CT_DPt* pNewElem = new CT_DPt; READ1_DEF(length, res, this->ReadCT_DPt, pNewElem); poVal->m_dPt.push_back(pNewElem); } else if (c_oserct_lineserDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_lineserTRENDLINE == type) { CT_Trendline* pNewElem = new CT_Trendline; READ1_DEF(length, res, this->ReadCT_Trendline, pNewElem); poVal->m_trendline.push_back(pNewElem); } else if (c_oserct_lineserERRBARS == type) { CT_ErrBars* pNewElem = new CT_ErrBars; READ1_DEF(length, res, this->ReadCT_ErrBars, pNewElem); poVal->m_errBars = pNewElem; } else if (c_oserct_lineserCAT == type) { CT_AxDataSource* pNewElem = new CT_AxDataSource; READ1_DEF(length, res, this->ReadCT_AxDataSource, pNewElem); poVal->m_cat = pNewElem; } else if (c_oserct_lineserVAL == type) { CT_NumDataSource* pNewElem = new CT_NumDataSource; READ1_DEF(length, res, this->ReadCT_NumDataSource, pNewElem); poVal->m_val = pNewElem; } else if (c_oserct_lineserSMOOTH == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_smooth = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_UpDownBars(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_UpDownBars* poVal = static_cast(poResult); if (c_oserct_updownbarsGAPWIDTH == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_gapWidth = val; } else if (c_oserct_updownbarsUPBARS == type) { CT_UpDownBar* pNewElem = new CT_UpDownBar; READ1_DEF(length, res, this->ReadCT_UpDownBar, pNewElem); poVal->m_upBars = pNewElem; } else if (c_oserct_updownbarsDOWNBARS == type) { CT_UpDownBar* pNewElem = new CT_UpDownBar; READ1_DEF(length, res, this->ReadCT_UpDownBar, pNewElem); poVal->m_downBars = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_UpDownBar(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_UpDownBar* poVal = static_cast(poResult); if (c_oserct_updownbarSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Line3DChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Line3DChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_line3dchartGROUPING == type) { poVal->m_grouping.Init(); READ1_DEF(length, res, this->ReadCT_Grouping, poVal->m_grouping.GetPointer()); } else if (c_oserct_line3dchartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_line3dchartSER == type) { CT_LineSer* pNewElem = new CT_LineSer; READ1_DEF(length, res, this->ReadCT_LineSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_line3dchartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_line3dchartDROPLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_dropLines = pNewElem; } else if (c_oserct_line3dchartGAPDEPTH == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_gapDepth = val; } else if (c_oserct_line3dchartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Grouping(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CGrouping* poVal = static_cast(poResult); if (c_oserct_groupingVAL == type) { poVal->SetValueFromByte(m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_LineChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_LineChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_linechartGROUPING == type) { poVal->m_grouping.Init(); READ1_DEF(length, res, this->ReadCT_Grouping, poVal->m_grouping.GetPointer()); } else if (c_oserct_linechartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_linechartSER == type) { CT_LineSer* pNewElem = new CT_LineSer; READ1_DEF(length, res, this->ReadCT_LineSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_linechartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_linechartDROPLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_dropLines = pNewElem; } else if (c_oserct_linechartHILOWLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_hiLowLines = pNewElem; } else if (c_oserct_linechartUPDOWNBARS == type) { CT_UpDownBars* pNewElem = new CT_UpDownBars; READ1_DEF(length, res, this->ReadCT_UpDownBars, pNewElem); poVal->m_upDownBars = pNewElem; } else if (c_oserct_linechartMARKER == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_marker = pNewElem; } else if (c_oserct_linechartSMOOTH == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_smooth = pNewElem; } else if (c_oserct_linechartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Area3DChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Area3DChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_area3dchartGROUPING == type) { poVal->m_grouping.Init(); READ1_DEF(length, res, this->ReadCT_Grouping, poVal->m_grouping.GetPointer()); } else if (c_oserct_area3dchartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_area3dchartSER == type) { CT_AreaSer* pNewElem = new CT_AreaSer; READ1_DEF(length, res, this->ReadCT_AreaSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_area3dchartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_area3dchartDROPLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_dropLines = pNewElem; } else if (c_oserct_area3dchartGAPDEPTH == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_gapDepth = val; } else if (c_oserct_area3dchartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_AreaSer(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_AreaSer* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_areaserIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_areaserORDER == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_order = pNewElem; } else if (c_oserct_areaserTX == type) { CT_SerTx* pNewElem = new CT_SerTx; READ1_DEF(length, res, this->ReadCT_SerTx, pNewElem); poVal->m_tx = pNewElem; } else if (c_oserct_areaserSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_areaserPICTUREOPTIONS == type) { CT_PictureOptions* pNewElem = new CT_PictureOptions; READ1_DEF(length, res, this->ReadCT_PictureOptions, pNewElem); poVal->m_pictureOptions = pNewElem; } else if (c_oserct_areaserDPT == type) { CT_DPt* pNewElem = new CT_DPt; READ1_DEF(length, res, this->ReadCT_DPt, pNewElem); poVal->m_dPt.push_back(pNewElem); } else if (c_oserct_areaserDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_areaserTRENDLINE == type) { CT_Trendline* pNewElem = new CT_Trendline; READ1_DEF(length, res, this->ReadCT_Trendline, pNewElem); poVal->m_trendline.push_back(pNewElem); } else if (c_oserct_areaserERRBARS == type) { CT_ErrBars* pNewElem = new CT_ErrBars; READ1_DEF(length, res, this->ReadCT_ErrBars, pNewElem); poVal->m_errBars.push_back(pNewElem); } else if (c_oserct_areaserCAT == type) { CT_AxDataSource* pNewElem = new CT_AxDataSource; READ1_DEF(length, res, this->ReadCT_AxDataSource, pNewElem); poVal->m_cat = pNewElem; } else if (c_oserct_areaserVAL == type) { CT_NumDataSource* pNewElem = new CT_NumDataSource; READ1_DEF(length, res, this->ReadCT_NumDataSource, pNewElem); poVal->m_val = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_AreaChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_AreaChart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //----------------------------------------------------------------------------------------- if (c_oserct_areachartGROUPING == type) { poVal->m_grouping.Init(); READ1_DEF(length, res, this->ReadCT_Grouping, poVal->m_grouping.GetPointer()); } else if (c_oserct_areachartVARYCOLORS == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_varyColors = pNewElem; } else if (c_oserct_areachartSER == type) { CT_AreaSer* pNewElem = new CT_AreaSer; READ1_DEF(length, res, this->ReadCT_AreaSer, pNewElem); poVal->m_ser.push_back(pNewElem); } else if (c_oserct_areachartDLBLS == type) { CT_DLbls* pNewElem = new CT_DLbls; READ1_DEF(length, res, this->ReadCT_DLbls, pNewElem); poVal->m_dLbls = pNewElem; } else if (c_oserct_areachartDROPLINES == type) { CT_ChartLines* pNewElem = new CT_ChartLines; READ1_DEF(length, res, this->ReadCT_ChartLines, pNewElem); poVal->m_dropLines = pNewElem; } else if (c_oserct_areachartAXID == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_axId.push_back(val); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_PlotArea(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_PlotArea* poVal = static_cast(poResult); if (c_oserct_plotareaLAYOUT == type) { CT_Layout* pNewElem = new CT_Layout; READ1_DEF(length, res, this->ReadCT_Layout, pNewElem); poVal->m_layout = pNewElem; } else if (c_oserct_plotareaAREA3DCHART == type) { CT_Area3DChart* pNewElem = new CT_Area3DChart; READ1_DEF(length, res, this->ReadCT_Area3DChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5AREA3DCHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaAREACHART == type) { CT_AreaChart* pNewElem = new CT_AreaChart; READ1_DEF(length, res, this->ReadCT_AreaChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5AREACHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaBAR3DCHART == type) { CT_Bar3DChart* pNewElem = new CT_Bar3DChart; READ1_DEF(length, res, this->ReadCT_Bar3DChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5BAR3DCHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaBARCHART == type) { CT_BarChart* pNewElem = new CT_BarChart; READ1_DEF(length, res, this->ReadCT_BarChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5BARCHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaBUBBLECHART == type) { CT_BubbleChart* pNewElem = new CT_BubbleChart; READ1_DEF(length, res, this->ReadCT_BubbleChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5BUBBLECHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaDOUGHNUTCHART == type) { CT_DoughnutChart* pNewElem = new CT_DoughnutChart; READ1_DEF(length, res, this->ReadCT_DoughnutChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5DOUGHNUTCHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaLINE3DCHART == type) { CT_Line3DChart* pNewElem = new CT_Line3DChart; READ1_DEF(length, res, this->ReadCT_Line3DChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5LINE3DCHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaLINECHART == type) { CT_LineChart* pNewElem = new CT_LineChart; READ1_DEF(length, res, this->ReadCT_LineChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5LINECHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaOFPIECHART == type) { CT_OfPieChart* pNewElem = new CT_OfPieChart; READ1_DEF(length, res, this->ReadCT_OfPieChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5OFPIECHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaPIE3DCHART == type) { CT_Pie3DChart* pNewElem = new CT_Pie3DChart; READ1_DEF(length, res, this->ReadCT_Pie3DChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5PIE3DCHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaPIECHART == type) { CT_PieChart* pNewElem = new CT_PieChart; READ1_DEF(length, res, this->ReadCT_PieChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5PIECHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaRADARCHART == type) { CT_RadarChart* pNewElem = new CT_RadarChart; READ1_DEF(length, res, this->ReadCT_RadarChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5RADARCHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaSCATTERCHART == type) { CT_ScatterChart* pNewElem = new CT_ScatterChart; READ1_DEF(length, res, this->ReadCT_ScatterChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5SCATTERCHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaSTOCKCHART == type) { CT_StockChart* pNewElem = new CT_StockChart; READ1_DEF(length, res, this->ReadCT_StockChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5STOCKCHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaSURFACE3DCHART == type) { CT_Surface3DChart* pNewElem = new CT_Surface3DChart; READ1_DEF(length, res, this->ReadCT_Surface3DChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5SURFACE3DCHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaSURFACECHART == type) { CT_SurfaceChart* pNewElem = new CT_SurfaceChart; READ1_DEF(length, res, this->ReadCT_SurfaceChart, pNewElem); ItemsChoiceType5* eElemtype = new ItemsChoiceType5; *eElemtype = itemschoicetype5SURFACECHART; poVal->m_ItemsElementName0.push_back(eElemtype); poVal->m_Items.push_back(pNewElem); } else if (c_oserct_plotareaCATAX == type) { CT_CatAx* pNewElem = new CT_CatAx; READ1_DEF(length, res, this->ReadCT_CatAx, pNewElem); ItemsChoiceType6* eElemtype = new ItemsChoiceType6; *eElemtype = itemschoicetype6CATAX; poVal->m_ItemsElementName1.push_back(eElemtype); poVal->m_Items1.push_back(pNewElem); } else if (c_oserct_plotareaDATEAX == type) { CT_DateAx* pNewElem = new CT_DateAx; READ1_DEF(length, res, this->ReadCT_DateAx, pNewElem); ItemsChoiceType6* eElemtype = new ItemsChoiceType6; *eElemtype = itemschoicetype6DATEAX; poVal->m_ItemsElementName1.push_back(eElemtype); poVal->m_Items1.push_back(pNewElem); } else if (c_oserct_plotareaSERAX == type) { CT_SerAx* pNewElem = new CT_SerAx; READ1_DEF(length, res, this->ReadCT_SerAx, pNewElem); ItemsChoiceType6* eElemtype = new ItemsChoiceType6; *eElemtype = itemschoicetype6SERAX; poVal->m_ItemsElementName1.push_back(eElemtype); poVal->m_Items1.push_back(pNewElem); } else if (c_oserct_plotareaVALAX == type) { CT_ValAx* pNewElem = new CT_ValAx; READ1_DEF(length, res, this->ReadCT_ValAx, pNewElem); ItemsChoiceType6* eElemtype = new ItemsChoiceType6; *eElemtype = itemschoicetype6VALAX; poVal->m_ItemsElementName1.push_back(eElemtype); poVal->m_Items1.push_back(pNewElem); } else if (c_oserct_plotareaDTABLE == type) { CT_DTable* pNewElem = new CT_DTable; READ1_DEF(length, res, this->ReadCT_DTable, pNewElem); poVal->m_dTable = pNewElem; } else if (c_oserct_plotareaSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Surface(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Surface* poVal = static_cast(poResult); if (c_oserct_surfaceTHICKNESS == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_thickness = val; } else if (c_oserct_surfaceSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_surfacePICTUREOPTIONS == type) { CT_PictureOptions* pNewElem = new CT_PictureOptions; READ1_DEF(length, res, this->ReadCT_PictureOptions, pNewElem); poVal->m_pictureOptions = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_View3D(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_View3D* poVal = static_cast(poResult); if (c_oserct_view3dROTX == type) { int val; READ1_DEF(length, res, this->ReadCT_SignedByte, &val); poVal->m_rotX = val; } else if (c_oserct_view3dHPERCENT == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_hPercent = val; } else if (c_oserct_view3dROTY == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &val); poVal->m_rotY = val; } else if (c_oserct_view3dDEPTHPERCENT == type) { std::wstring val; READ1_DEF(length, res, this->ReadCT_String, &val); poVal->m_depthPercent = val; } else if (c_oserct_view3dRANGAX == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_rAngAx = pNewElem; } else if (c_oserct_view3dPERSPECTIVE == type) { unsigned int val; READ1_DEF(length, res, this->ReadCT_UnsignedByte, &val); poVal->m_perspective = val; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_PivotFmt(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_PivotFmt* poVal = static_cast(poResult); if (c_oserct_pivotfmtIDX == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_idx = pNewElem; } else if (c_oserct_pivotfmtSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr; poVal->m_spPr->m_namespace = L"c"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_pivotfmtTXPR == type) { poVal->m_txPr = new PPTX::Logic::TxBody; poVal->m_txPr->m_name = L"c:txPr"; res = ReadCT_PptxElement(0, length, poVal->m_txPr.GetPointer()); } else if (c_oserct_pivotfmtMARKER == type) { CT_Marker* pNewElem = new CT_Marker; READ1_DEF(length, res, this->ReadCT_Marker, pNewElem); poVal->m_marker = pNewElem; } else if (c_oserct_pivotfmtDLBL == type) { CT_DLbl* pNewElem = new CT_DLbl; READ1_DEF(length, res, this->ReadCT_DLbl, pNewElem); poVal->m_dLbl = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_pivotFmts(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_pivotFmts* poVal = static_cast(poResult); if (c_oserct_pivotfmtsPIVOTFMT == type) { CT_PivotFmt* pNewElem = new CT_PivotFmt; READ1_DEF(length, res, this->ReadCT_PivotFmt, pNewElem); poVal->m_pivotFmt.push_back(pNewElem); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Chart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Chart* poVal = static_cast(poResult); if (type > 0x80) { if (!poVal->m_extLst.IsInit()) poVal->m_extLst.Init(); return ReadExtensions(type, length, poVal->m_extLst.GetPointer()); } //--------------------------------------------------------------------------------------------------------- if (c_oserct_chartTITLE == type) { CT_Title* pNewElem = new CT_Title; READ1_DEF(length, res, this->ReadCT_Title, pNewElem); poVal->m_title = pNewElem; } else if (c_oserct_chartAUTOTITLEDELETED == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_autoTitleDeleted = pNewElem; } else if (c_oserct_chartPIVOTFMTS == type) { CT_pivotFmts* pNewElem = new CT_pivotFmts; READ1_DEF(length, res, this->ReadCT_pivotFmts, pNewElem); poVal->m_pivotFmts = pNewElem; } else if (c_oserct_chartVIEW3D == type) { CT_View3D* pNewElem = new CT_View3D; READ1_DEF(length, res, this->ReadCT_View3D, pNewElem); poVal->m_view3D = pNewElem; } else if (c_oserct_chartFLOOR == type) { CT_Surface* pNewElem = new CT_Surface; READ1_DEF(length, res, this->ReadCT_Surface, pNewElem); poVal->m_floor = pNewElem; } else if (c_oserct_chartSIDEWALL == type) { CT_Surface* pNewElem = new CT_Surface; READ1_DEF(length, res, this->ReadCT_Surface, pNewElem); poVal->m_sideWall = pNewElem; } else if (c_oserct_chartBACKWALL == type) { CT_Surface* pNewElem = new CT_Surface; READ1_DEF(length, res, this->ReadCT_Surface, pNewElem); poVal->m_backWall = pNewElem; } else if (c_oserct_chartPLOTAREA == type) { CT_PlotArea* pNewElem = new CT_PlotArea; READ1_DEF(length, res, this->ReadCT_PlotArea, pNewElem); poVal->m_plotArea = pNewElem; } else if (c_oserct_chartLEGEND == type) { CT_Legend* pNewElem = new CT_Legend; READ1_DEF(length, res, this->ReadCT_Legend, pNewElem); poVal->m_legend = pNewElem; } else if (c_oserct_chartPLOTVISONLY == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_plotVisOnly = pNewElem; } else if (c_oserct_chartDISPBLANKSAS == type) { poVal->m_dispBlanksAs.Init(); READ1_DEF(length, res, this->ReadCT_DispBlanksAs, poVal->m_dispBlanksAs.GetPointer()); } else if (c_oserct_chartSHOWDLBLSOVERMAX == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_showDLblsOverMax = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Protection(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Protection* poVal = static_cast(poResult); if (c_oserct_protectionCHARTOBJECT == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_chartObject = pNewElem; } else if (c_oserct_protectionDATA == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_data = pNewElem; } else if (c_oserct_protectionFORMATTING == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_formatting = pNewElem; } else if (c_oserct_protectionSELECTION == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_selection = pNewElem; } else if (c_oserct_protectionUSERINTERFACE == type) { bool pNewElem; READ1_DEF(length, res, this->ReadCT_Boolean, &pNewElem); poVal->m_userInterface = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_PivotSource(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_PivotSource* poVal = static_cast(poResult); if (c_oserct_pivotsourceNAME == type) { std::wstring* pNewElem = new std::wstring; *pNewElem = m_oBufferedStream.GetString4(length); poVal->m_name = pNewElem; } else if (c_oserct_pivotsourceFMTID == type) { unsigned int pNewElem; READ1_DEF(length, res, this->ReadCT_UnsignedInt, &pNewElem); poVal->m_fmtId = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_Style(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; CT_Style* poVal = static_cast(poResult); if (c_oserct_styleVAL == type) { poVal->m_val = m_oBufferedStream.GetUChar(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadAlternateContent(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; AlternateContent* poVal = static_cast(poResult); if (c_oseralternatecontentCHOICE == type) { AlternateContentChoice* pNewElem = new AlternateContentChoice; READ1_DEF(length, res, this->ReadAlternateContentChoice, pNewElem); poVal->m_Choice.push_back(pNewElem); } else if (c_oseralternatecontentFALLBACK == type) { AlternateContentFallback* pNewElem = new AlternateContentFallback; READ1_DEF(length, res, this->ReadAlternateContentFallback, pNewElem); poVal->m_Fallback = pNewElem; } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadAlternateContentChoice(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; AlternateContentChoice* poVal = static_cast(poResult); if (c_oseralternatecontentchoiceSTYLE == type) { poVal->m_style = new CT_Style; READ1_DEF(length, res, this->ReadCT_Style, poVal->m_style); } else if (c_oseralternatecontentchoiceREQUIRES == type) { poVal->m_Requires = new std::wstring; *poVal->m_Requires = m_oBufferedStream.GetString4(length); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadAlternateContentFallback(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; AlternateContentFallback* poVal = static_cast(poResult); if (c_oseralternatecontentfallbackSTYLE == type) { poVal->m_style = new CT_Style; READ1_DEF(length, res, this->ReadCT_Style, poVal->m_style); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartColors(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::CChartColorsFile* poVal = static_cast(poResult); if (c_oserct_chartcolorsID == type) { poVal->m_oColorStyle.m_id = m_oBufferedStream.GetULong(); } else if (c_oserct_chartcolorsMETH == type) { poVal->m_oColorStyle.m_meth = m_oBufferedStream.GetString4(length); } else if (c_oserct_chartcolorsVARIATION == type) { OOX::Spreadsheet::ChartEx::CVariation *pVariation = new OOX::Spreadsheet::ChartEx::CVariation(); READ1_DEF(length, res, this->ReadCT_ColorsVariation, pVariation); poVal->m_oColorStyle.m_arrItems.push_back(pVariation); } else if (c_oserct_chartcolorsCOLOR == type) { PPTX::Logic::UniColor *pColor = new PPTX::Logic::UniColor(); ReadCT_PptxElement(0, length, pColor); poVal->m_oColorStyle.m_arrItems.push_back(pColor); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ColorsVariation(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CVariation * poVal = static_cast(poResult); if (c_oserct_chartcolorsEFFECT == type) { PPTX::Logic::ColorModifier *pEffect = new PPTX::Logic::ColorModifier(); ReadCT_PptxElement(0, length, pEffect); poVal->m_arrItems.push_back(pEffect); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartStyle(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::CChartStyleFile* poVal = static_cast(poResult); if (c_oserct_chartstyleID == type) { poVal->m_oChartStyle.m_id = m_oBufferedStream.GetULong(); } else if (c_oserct_chartstyleENTRY == type) { poVal->m_oChartStyle.m_arStyleEntries.push_back(new OOX::Spreadsheet::ChartEx::CStyleEntry()); READ1_DEF(length, res, this->ReadCT_StyleEntry, poVal->m_oChartStyle.m_arStyleEntries.back()); } else if (c_oserct_chartstyleMARKERLAYOUT == type) { poVal->m_oChartStyle.m_dataPointMarkerLayout = new OOX::Spreadsheet::ChartEx::CMarkerLayout(); READ1_DEF(length, res, this->ReadCT_StyleMarkerLayout, poVal->m_oChartStyle.m_dataPointMarkerLayout.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_StyleEntry(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CStyleEntry* poVal = static_cast(poResult); if (c_oserct_chartstyleENTRYTYPE == type) { poVal->setTypeStyleEntry(m_oBufferedStream.GetUChar()); } else if (c_oserct_chartstyleLNREF == type) { poVal->m_lnRef.m_name = L"cs:lnRef"; res = ReadCT_PptxElement(0, length, &poVal->m_lnRef); } else if (c_oserct_chartstyleFILLREF == type) { poVal->m_fillRef.m_name = L"cs:fillRef"; res = ReadCT_PptxElement(0, length, &poVal->m_fillRef); } else if (c_oserct_chartstyleEFFECTREF == type) { poVal->m_effectRef.m_name = L"cs:effectRef"; res = ReadCT_PptxElement(0, length, &poVal->m_effectRef); } else if (c_oserct_chartstyleFONTREF == type) { poVal->m_fontRef.m_name = L"cs:fontRef"; res = ReadCT_PptxElement(0, length, &poVal->m_fontRef); } else if (c_oserct_chartstyleDEFPR == type) { poVal->m_defRPr = new PPTX::Logic::RunProperties(); poVal->m_defRPr->m_name = L"cs:defPr"; res = ReadCT_PptxElement(0, length, poVal->m_defRPr.GetPointer()); } else if (c_oserct_chartstyleBODYPR == type) { poVal->m_bodyPr = new PPTX::Logic::BodyPr(); poVal->m_bodyPr->m_namespace = L"cs"; res = ReadCT_PptxElement(0, length, poVal->m_bodyPr.GetPointer()); } else if (c_oserct_chartstyleSPPR == type) { poVal->m_spPr = new PPTX::Logic::SpPr(); poVal->m_spPr->m_namespace = L"cs"; res = ReadCT_PptxElement(0, length, poVal->m_spPr.GetPointer()); } else if (c_oserct_chartstyleLINEWIDTH == type) { poVal->m_lineWidthScale = m_oBufferedStream.GetULong(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_StyleMarkerLayout(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CMarkerLayout* poVal = static_cast(poResult); if (c_oserct_chartstyleMARKERSYMBOL == type) { poVal->m_symbol = (SimpleTypes::Spreadsheet::EChartSymbol)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartstyleMARKERSIZE == type) { poVal->m_size = m_oBufferedStream.GetULong(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExFile(long length, OOX::Spreadsheet::CChartExFile* pChartExFile) { int res = c_oSerConstants::ReadOk; READ1_DEF(length, res, this->ReadCT_ChartExFileContent, pChartExFile); return res; } int BinaryChartReader::ReadCT_ChartExFileContent(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::CChartExFile *pChart = static_cast(poResult); if (c_oserct_chartExSpaceCHART == type) { READ1_DEF(length, res, this->ReadCT_ChartExChart, &pChart->m_oChartSpace.m_chart); } else if (c_oserct_chartExSpaceCHARTDATA == type) { READ1_DEF(length, res, this->ReadCT_ChartExChartData, &pChart->m_oChartSpace.m_chartData); } else if (c_oserct_chartExSpaceCLRMAPOVR == type) { BYTE typeRec1 = m_oBufferedStream.GetUChar(); pChart->m_oChartSpace.m_oClrMapOvr = new PPTX::Logic::ClrMap(); pChart->m_oChartSpace.m_oClrMapOvr->m_name = L"cx:clrMapOvr"; pChart->m_oChartSpace.m_oClrMapOvr->fromPPTY(&m_oBufferedStream); } else if (c_oserct_chartExSpaceSPPR == type) { pChart->m_oChartSpace.m_spPr = new PPTX::Logic::SpPr; pChart->m_oChartSpace.m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pChart->m_oChartSpace.m_spPr.GetPointer()); } else if (c_oserct_chartExSpaceTXPR == type) { pChart->m_oChartSpace.m_txPr = new PPTX::Logic::TxBody; pChart->m_oChartSpace.m_txPr->m_name = L"cx:txPr"; res = ReadCT_PptxElement(0, length, pChart->m_oChartSpace.m_txPr.GetPointer()); } else if (c_oserct_chartspaceXLSXEXTERNAL == type) { OOX::CPath path = m_oBufferedStream.GetString4(length); unsigned int rId = 0; m_pOfficeDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", path.GetPath(), L"External", &rId); m_pOfficeDrawingConverter->m_pImageManager->m_pContentTypes->AddDefault(path.GetExtention()); if (false == pChart->m_oChartSpace.m_chartData.m_externalData.IsInit()) pChart->m_oChartSpace.m_chartData.m_externalData.Init(); pChart->m_oChartSpace.m_chartData.m_externalData->m_id = OOX::RId(rId).ToString(); } else if (c_oserct_chartspaceXLSX == type || c_oserct_chartspaceXLSXZIP == type) { OOX::CSystemUtility::CreateDirectories(m_oSaveParams.sEmbeddingsPath); OOX::CPath pathEmbeddingRelsDir = m_oSaveParams.sEmbeddingsPath + FILE_SEPARATOR_STR + _T("_rels"); OOX::CSystemUtility::CreateDirectories(pathEmbeddingRelsDir.GetPath()); m_pOfficeDrawingConverter->SetDstContentRels(); NSCommon::smart_ptr pXlsxFile; if (c_oserct_chartspaceXLSXZIP == type) { ReadCT_XlsxZip(m_oBufferedStream.GetPointer(0), length, pXlsxFile); } else { ReadCT_XlsxBin(m_oBufferedStream.GetPointer(0), length, pXlsxFile); } m_oBufferedStream.Skip(length); if (pXlsxFile.IsInit()) { OOX::CPath pathDrawingsRels = pathEmbeddingRelsDir.GetPath() + FILE_SEPARATOR_STR + pXlsxFile->m_sOutputFilename + _T(".rels"); m_pOfficeDrawingConverter->SaveDstContentRels(pathDrawingsRels.GetPath()); NSCommon::smart_ptr pFile = pXlsxFile.smart_dynamic_cast(); pChart->AddNoWrite(pFile, L"../embeddings"); unsigned int rId = 0; m_pOfficeDrawingConverter->WriteRels(L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/package", L"../embeddings/" + pXlsxFile->m_sOutputFilename, std::wstring(), &rId); m_pOfficeDrawingConverter->m_pImageManager->m_pContentTypes->AddDefault(pXlsxFile->filename().GetExtention()); if (false == pChart->m_oChartSpace.m_chartData.m_externalData.IsInit()) pChart->m_oChartSpace.m_chartData.m_externalData.Init(); pChart->m_oChartSpace.m_chartData.m_externalData->m_id = OOX::RId(rId).ToString(); } } else if (c_oserct_chartspaceSTYLES == type) { NSCommon::smart_ptr chartstyle = new OOX::Spreadsheet::CChartStyleFile(NULL); READ1_DEF(length, res, ReadCT_ChartStyle, chartstyle.GetPointer()); if (res == c_oSerConstants::ReadOk) { NSCommon::smart_ptr pFile = chartstyle.smart_dynamic_cast(); pChart->Add(pFile); unsigned int rId = 0; m_pOfficeDrawingConverter->WriteRels(L"http://schemas.microsoft.com/office/2011/relationships/chartStyle", chartstyle->m_sOutputFilename, std::wstring(), &rId); } } else if (c_oserct_chartspaceCOLORS == type) { NSCommon::smart_ptr chartcolors = new OOX::Spreadsheet::CChartColorsFile(NULL); READ1_DEF(length, res, ReadCT_ChartColors, chartcolors.GetPointer()); if (res == c_oSerConstants::ReadOk) { NSCommon::smart_ptr pFile = chartcolors.smart_dynamic_cast(); pChart->Add(pFile); unsigned int rId = 0; m_pOfficeDrawingConverter->WriteRels(L"http://schemas.microsoft.com/office/2011/relationships/chartColorStyle", chartcolors->m_sOutputFilename, std::wstring(), &rId); } } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExChart(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CChart *pChart = static_cast(poResult); if (c_oserct_chartExChartPLOTAREA == type) { READ1_DEF(length, res, this->ReadCT_ChartExPlotArea, &pChart->m_plotArea); } else if (c_oserct_chartExChartTITLE == type) { pChart->m_title.Init(); READ1_DEF(length, res, this->ReadCT_ChartExTitle, pChart->m_title.GetPointer()); } else if (c_oserct_chartExChartLEGEND == type) { pChart->m_legend.Init(); READ1_DEF(length, res, this->ReadCT_ChartExLegend, pChart->m_legend.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExChartData(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CChartData *pChartData = static_cast(poResult); if (c_oserct_chartExDATA == type) { pChartData->m_arData.push_back(new OOX::Spreadsheet::ChartEx::CData()); READ1_DEF(length, res, this->ReadCT_ChartExData, pChartData->m_arData.back()); } else if (c_oserct_chartExEXTERNALDATA == type) { if (false == pChartData->m_externalData.IsInit()) pChartData->m_externalData.Init(); READ1_DEF(length, res, this->ReadCT_ChartExExternalData, pChartData->m_externalData.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExData(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CData *pData = static_cast(poResult); if (c_oserct_chartExDataID == type) { pData->m_id = m_oBufferedStream.GetULong(); } else if (c_oserct_chartExDataSTRDIMENSION == type) { OOX::Spreadsheet::ChartEx::CStrDimension *pDimension = new OOX::Spreadsheet::ChartEx::CStrDimension(); READ1_DEF(length, res, this->ReadCT_ChartExDataStrDimension, pDimension); pData->m_arDimension.push_back(dynamic_cast(pDimension)); } else if (c_oserct_chartExDataNUMDIMENSION == type) { OOX::Spreadsheet::ChartEx::CNumDimension *pDimension = new OOX::Spreadsheet::ChartEx::CNumDimension(); READ1_DEF(length, res, this->ReadCT_ChartExDataNumDimension, pDimension); pData->m_arDimension.push_back(dynamic_cast(pDimension)); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExDataStrDimension(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CStrDimension *pDimension = static_cast(poResult); if (c_oserct_chartExDataDimensionTYPE == type) { pDimension->m_type.Init(); pDimension->m_type->SetValue((SimpleTypes::Spreadsheet::EDimensionType)m_oBufferedStream.GetUChar()); } else if (c_oserct_chartExDataDimensionFORMULA == type) { pDimension->m_f.Init(); READ1_DEF(length, res, this->ReadCT_ChartExFormula, pDimension->m_f.GetPointer()); } else if (c_oserct_chartExDataDimensionNF == type) { pDimension->m_nf = m_oBufferedStream.GetString4(length); } else if (c_oserct_chartExDataDimensionSTRINGLEVEL == type) { pDimension->m_levelData.push_back(new OOX::Spreadsheet::ChartEx::CStringLevel()); READ1_DEF(length, res, this->ReadCT_ChartExStringLevel, pDimension->m_levelData.back()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExDataNumDimension(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CNumDimension *pDimension = static_cast(poResult); if (c_oserct_chartExDataDimensionTYPE == type) { pDimension->m_type.Init(); pDimension->m_type->SetValue((SimpleTypes::Spreadsheet::EDimensionType)m_oBufferedStream.GetUChar()); } else if (c_oserct_chartExDataDimensionFORMULA == type) { pDimension->m_f.Init(); READ1_DEF(length, res, this->ReadCT_ChartExFormula, pDimension->m_f.GetPointer()); } else if (c_oserct_chartExDataDimensionNF == type) { pDimension->m_nf = m_oBufferedStream.GetString4(length); } else if (c_oserct_chartExDataDimensionNUMERICLEVEL == type) { pDimension->m_levelData.push_back(new OOX::Spreadsheet::ChartEx::CNumericLevel()); READ1_DEF(length, res, this->ReadCT_ChartExNumericLevel, pDimension->m_levelData.back()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExExternalData(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CExternalData *pChartData = static_cast(poResult); if (c_oserct_chartExExternalAUTOUPDATE == type) { pChartData->m_autoUpdate = m_oBufferedStream.GetBool(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExFormula(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CFormula*pFormula = static_cast(poResult); if (c_oserct_chartExFormulaCONTENT == type) { pFormula->m_content = m_oBufferedStream.GetString4(length); } else if (c_oserct_chartExFormulaDIRECTION == type) { pFormula->m_dir.Init(); pFormula->m_dir->SetValue((SimpleTypes::Spreadsheet::EFormulaDirection)m_oBufferedStream.GetUChar()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExStringLevel(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CStringLevel *pLevel = static_cast(poResult); if (c_oserct_chartExDataLevelNAME == type) { pLevel->m_name = m_oBufferedStream.GetString4(length); } else if (c_oserct_chartExDataLevelCOUNT == type) { pLevel->m_ptCount = m_oBufferedStream.GetLong(); } else if (c_oserct_chartExDataLevelPT == type) { pLevel->m_arPt.push_back(new OOX::Spreadsheet::ChartEx::CStringValue()); READ1_DEF(length, res, this->ReadCT_ChartExStringValue, pLevel->m_arPt.back()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExNumericLevel(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CNumericLevel *pLevel = static_cast(poResult); if (c_oserct_chartExDataLevelNAME == type) { pLevel->m_name = m_oBufferedStream.GetString4(length); } else if (c_oserct_chartExDataLevelCOUNT == type) { pLevel->m_ptCount = m_oBufferedStream.GetLong(); } else if (c_oserct_chartExDataLevelPT == type) { pLevel->m_arPt.push_back(new OOX::Spreadsheet::ChartEx::CNumericValue()); READ1_DEF(length, res, this->ReadCT_ChartExNumericValue, pLevel->m_arPt.back()); } else if (c_oserct_chartExDataLevelFORMATCODE == type) { pLevel->m_formatCode = m_oBufferedStream.GetString4(length); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExStringValue(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CStringValue *pValue = static_cast(poResult); if (c_oserct_chartExDataValueIDX == type) { pValue->m_idx = m_oBufferedStream.GetLong(); } else if (c_oserct_chartExDataValueCONTENT == type) { pValue->m_content = m_oBufferedStream.GetString4(length); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExNumericValue(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CNumericValue *pValue = static_cast(poResult); if (c_oserct_chartExDataValueIDX == type) { pValue->m_idx = m_oBufferedStream.GetLong(); } else if (c_oserct_chartExDataValueCONTENT == type) { pValue->m_content = m_oBufferedStream.GetDoubleReal(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExPlotArea(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CPlotArea *pPlotArea = static_cast(poResult); if (c_oserct_chartExChartAREAREGION == type) { READ1_DEF(length, res, this->ReadCT_ChartExPlotAreaRegion, &pPlotArea->m_plotAreaRegion); } else if (c_oserct_chartExChartAXIS == type) { pPlotArea->m_arAxis.push_back(new OOX::Spreadsheet::ChartEx::CAxis()); READ1_DEF(length, res, this->ReadCT_ChartExAxis, pPlotArea->m_arAxis.back()); } else if (c_oserct_chartExChartSPPR == type) { pPlotArea->m_spPr = new PPTX::Logic::SpPr; pPlotArea->m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pPlotArea->m_spPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExPlotAreaRegion(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CPlotAreaRegion *pPlotAreaRegion = static_cast(poResult); if (c_oserct_chartExAreaPLOTSURFACE == type) { pPlotAreaRegion->m_plotSurface.Init(); READ1_DEF(length, res, this->ReadCT_ChartExPlotSurface, pPlotAreaRegion->m_plotSurface.GetPointer()); } else if (c_oserct_chartExAreaSERIES == type) { pPlotAreaRegion->m_arSeries.push_back(new OOX::Spreadsheet::ChartEx::CSeries()); READ1_DEF(length, res, this->ReadCT_ChartExSeries, pPlotAreaRegion->m_arSeries.back()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExTitle(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CTitle *pTitle = static_cast(poResult); if (c_oserct_chartExTitleTX == type) { pTitle->m_tx.Init(); READ1_DEF(length, res, this->ReadCT_ChartExText, pTitle->m_tx.GetPointer()); } else if (c_oserct_chartExTitleTXPR == type) { pTitle->m_txPr = new PPTX::Logic::TxBody; pTitle->m_txPr->m_name = L"cx:txPr"; res = ReadCT_PptxElement(0, length, pTitle->m_txPr.GetPointer()); } else if (c_oserct_chartExTitleSPPR == type) { pTitle->m_spPr = new PPTX::Logic::SpPr; pTitle->m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pTitle->m_spPr.GetPointer()); } else if (c_oserct_chartExTitlePOS == type) { pTitle->m_pos = (SimpleTypes::Spreadsheet::ESidePos)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExTitleALIGN == type) { pTitle->m_align = (SimpleTypes::Spreadsheet::EPosAlign)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExTitleOVERLAY == type) { pTitle->m_overlay = m_oBufferedStream.GetBool(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExLegend(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CLegend *pLegend = static_cast(poResult); if (c_oserct_chartExLegendTXPR == type) { pLegend->m_txPr = new PPTX::Logic::TxBody; pLegend->m_txPr->m_name = L"cx:txPr"; res = ReadCT_PptxElement(0, length, pLegend->m_txPr.GetPointer()); } else if (c_oserct_chartExLegendSPPR == type) { pLegend->m_spPr = new PPTX::Logic::SpPr; pLegend->m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pLegend->m_spPr.GetPointer()); } else if (c_oserct_chartExLegendPOS == type) { pLegend->m_pos = (SimpleTypes::Spreadsheet::ESidePos)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExLegendALIGN == type) { pLegend->m_align = (SimpleTypes::Spreadsheet::EPosAlign)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExLegendOVERLAY == type) { pLegend->m_overlay = m_oBufferedStream.GetBool(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExText(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CText *pText = static_cast(poResult); if (c_oserct_chartExTextRICH == type) { pText->m_oRich.Init(); pText->m_oRich->m_name = L"cx:rich"; res = ReadCT_PptxElement(0, length, pText->m_oRich.GetPointer()); } else if (c_oserct_chartExTextDATA == type) { pText->m_txData.Init(); READ1_DEF(length, res, this->ReadCT_ChartExTextData, pText->m_txData.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExTextData(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CTextData *pTextData = static_cast(poResult); if (c_oserct_chartExTextDataFORMULA == type) { pTextData->m_oF.Init(); READ1_DEF(length, res, this->ReadCT_ChartExFormula, pTextData->m_oF.GetPointer()); } else if (c_oserct_chartExTextDataVALUE == type) { pTextData->m_oV = m_oBufferedStream.GetString4(length); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExPlotSurface(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CPlotSurface *pPlotSurface = static_cast(poResult); if (c_oserct_chartExPlotSurfaceSPPR == type) { pPlotSurface->m_spPr = new PPTX::Logic::SpPr; pPlotSurface->m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pPlotSurface->m_spPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExSeries(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CSeries *pSeries = static_cast(poResult); if (c_oserct_chartExSeriesDATAPT == type) { pSeries->m_arDataPt.push_back(new OOX::Spreadsheet::ChartEx::CDataPoint()); READ1_DEF(length, res, this->ReadCT_ChartExDataPoint, pSeries->m_arDataPt.back()); } else if (c_oserct_chartExSeriesDATALABELS == type) { pSeries->m_dataLabels.Init(); READ1_DEF(length, res, this->ReadCT_ChartExDataLabels, pSeries->m_dataLabels.GetPointer()); } else if (c_oserct_chartExSeriesLAYOUTPROPS == type) { pSeries->m_layoutPr.Init(); READ1_DEF(length, res, this->ReadCT_ChartExSeriesLayoutProperties, pSeries->m_layoutPr.GetPointer()); } else if (c_oserct_chartExSeriesTEXT == type) { pSeries->m_tx.Init(); READ1_DEF(length, res, this->ReadCT_ChartExText, pSeries->m_tx.GetPointer()); } else if (c_oserct_chartExSeriesAXIS == type) { pSeries->m_arAxisId.push_back(m_oBufferedStream.GetULong()); } else if (c_oserct_chartExSeriesDATAID == type) { pSeries->m_dataId.Init(); pSeries->m_dataId->m_oVal = m_oBufferedStream.GetLong(); } else if (c_oserct_chartExSeriesSPPR == type) { pSeries->m_spPr = new PPTX::Logic::SpPr; pSeries->m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pSeries->m_spPr.GetPointer()); } else if (c_oserct_chartExSeriesLAYOUTID == type) { pSeries->m_oLayoutId = (SimpleTypes::Spreadsheet::ESeriesLayout)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExSeriesHIDDEN == type) { pSeries->m_bHidden = m_oBufferedStream.GetBool(); } else if (c_oserct_chartExSeriesOWNERIDX == type) { pSeries->m_nOwnerIdx = m_oBufferedStream.GetLong(); } else if (c_oserct_chartExSeriesFORMATIDX == type) { pSeries->m_nFormatIdx = m_oBufferedStream.GetLong(); } else if (c_oserct_chartExSeriesUNIQUEID == type) { pSeries->m_sUniqueId = m_oBufferedStream.GetString4(length); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExDataPoint(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CDataPoint *pDataPoint = static_cast(poResult); if (c_oserct_chartExDataPointIDX == type) { pDataPoint->m_idx = m_oBufferedStream.GetLong(); } else if (c_oserct_chartExDataPointSPPR == type) { pDataPoint->m_spPr = new PPTX::Logic::SpPr; pDataPoint->m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pDataPoint->m_spPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExDataLabels(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CDataLabels *pDataLabels = static_cast(poResult); if (c_oserct_chartExDataLabelsPOS == type) { pDataLabels->m_pos = (SimpleTypes::Spreadsheet::EDataLabelPos)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExDataLabelsNUMFMT == type) { pDataLabels->m_numFmt.Init(); READ1_DEF(length, res, this->ReadCT_ChartExNumberFormat, pDataLabels->m_numFmt.GetPointer()); } else if (c_oserct_chartExDataLabelsTXPR == type) { pDataLabels->m_txPr = new PPTX::Logic::TxBody; pDataLabels->m_txPr->m_name = L"cx:txPr"; res = ReadCT_PptxElement(0, length, pDataLabels->m_txPr.GetPointer()); } else if (c_oserct_chartExDataLabelsSPPR == type) { pDataLabels->m_spPr = new PPTX::Logic::SpPr; pDataLabels->m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pDataLabels->m_spPr.GetPointer()); } else if (c_oserct_chartExDataLabelsVISABILITIES == type) { pDataLabels->m_visibility.Init(); READ1_DEF(length, res, this->ReadCT_ChartExDataLabelVisibilities, pDataLabels->m_visibility.GetPointer()); } else if (c_oserct_chartExDataLabelsSEPARATOR == type) { pDataLabels->m_separator = m_oBufferedStream.GetString4(length); } else if (c_oserct_chartExDataLabelsDATALABEL == type) { pDataLabels->m_arDataLabel.push_back(new OOX::Spreadsheet::ChartEx::CDataLabel()); READ1_DEF(length, res, this->ReadCT_ChartExDataLabel, pDataLabels->m_arDataLabel.back()); } else if (c_oserct_chartExDataLabelsDATALABELHIDDEN == type) { pDataLabels->m_arDataLabelHidden.push_back(new OOX::Spreadsheet::ChartEx::CDataLabelHidden()); READ1_DEF(length, res, this->ReadCT_ChartExDataLabelHidden, pDataLabels->m_arDataLabelHidden.back()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExDataLabel(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CDataLabel *pDataLabel = static_cast(poResult); if (c_oserct_chartExDataLabelIDX == type) { pDataLabel->m_idx = m_oBufferedStream.GetLong(); } else if (c_oserct_chartExDataLabelPOS == type) { pDataLabel->m_dataLabelPos = (SimpleTypes::Spreadsheet::EDataLabelPos)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExDataLabelNUMFMT == type) { pDataLabel->m_numFmt.Init(); READ1_DEF(length, res, this->ReadCT_ChartExNumberFormat, pDataLabel->m_numFmt.GetPointer()); } else if (c_oserct_chartExDataLabelTXPR == type) { pDataLabel->m_txPr = new PPTX::Logic::TxBody; pDataLabel->m_txPr->m_name = L"cx:txPr"; res = ReadCT_PptxElement(0, length, pDataLabel->m_txPr.GetPointer()); } else if (c_oserct_chartExDataLabelSPPR == type) { pDataLabel->m_spPr = new PPTX::Logic::SpPr; pDataLabel->m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pDataLabel->m_spPr.GetPointer()); } else if (c_oserct_chartExDataLabelVISABILITIES == type) { pDataLabel->m_visibility.Init(); READ1_DEF(length, res, this->ReadCT_ChartExDataLabelVisibilities, pDataLabel->m_visibility.GetPointer()); } else if (c_oserct_chartExDataLabelSEPARATOR == type) { pDataLabel->m_separator = m_oBufferedStream.GetString4(length); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExDataLabelHidden(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CDataLabelHidden *pDataLabelHidden = static_cast(poResult); if (c_oserct_chartExDataLabelHiddenIDX == type) { pDataLabelHidden->m_idx = m_oBufferedStream.GetLong(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExSeriesLayoutProperties(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CSeriesLayoutProperties *pLayout = static_cast(poResult); if (c_oserct_chartExSeriesLayoutPARENT == type) { pLayout->m_parentLabelLayout.Init(); pLayout->m_parentLabelLayout->m_oVal = (SimpleTypes::Spreadsheet::EParentLabelLayout)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExSeriesLayoutREGION == type) { pLayout->m_regionLabelLayout.Init(); pLayout->m_regionLabelLayout->m_oVal = (SimpleTypes::Spreadsheet::ERegionLabelLayout)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExSeriesLayoutVISABILITIES == type) { pLayout->m_visibility.Init(); READ1_DEF(length, res, this->ReadCT_ChartExSeriesElementVisibilities, pLayout->m_visibility.GetPointer()); } else if (c_oserct_chartExSeriesLayoutAGGREGATION == type) { pLayout->m_aggregation = m_oBufferedStream.GetBool(); } else if (c_oserct_chartExSeriesLayoutBINNING == type) { pLayout->m_binning.Init(); READ1_DEF(length, res, this->ReadCT_ChartExBinning, pLayout->m_binning.GetPointer()); } else if (c_oserct_chartExSeriesLayoutSTATISTIC == type) { pLayout->m_statistics.Init(); READ1_DEF(length, res, this->ReadCT_ChartExStatistics, pLayout->m_statistics.GetPointer()); } else if (c_oserct_chartExSeriesLayoutSUBTOTALS == type) { pLayout->m_subtotals.Init(); READ1_DEF(length, res, this->ReadCT_ChartExSubtotals, pLayout->m_subtotals.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExNumberFormat(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CNumberFormat *pNumberFormat = static_cast(poResult); if (c_oserct_chartExNumberFormatFORMATCODE == type) { pNumberFormat->m_formatCode = m_oBufferedStream.GetString4(length); } else if (c_oserct_chartExNumberFormatSOURCELINKED == type) { pNumberFormat->m_sourceLinked = m_oBufferedStream.GetBool(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExDataLabelVisibilities(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CDataLabelVisibilities *pVisibilities = static_cast(poResult); if (c_oserct_chartExDataLabelVisibilitiesSERIES == type) { pVisibilities->m_seriesName = m_oBufferedStream.GetBool(); } else if (c_oserct_chartExDataLabelVisibilitiesCATEGORY == type) { pVisibilities->m_categoryName = m_oBufferedStream.GetBool(); } else if (c_oserct_chartExDataLabelVisibilitiesVALUE == type) { pVisibilities->m_value = m_oBufferedStream.GetBool(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExBinning(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CBinning *pBinning = static_cast(poResult); if (c_oserct_chartExBinningBINSIZE == type) { pBinning->m_binSize.Init(); pBinning->m_binSize->m_oVal = m_oBufferedStream.GetDoubleReal(); } else if (c_oserct_chartExBinningBINCOUNT == type) { pBinning->m_binCount.Init(); pBinning->m_binCount->m_oVal = m_oBufferedStream.GetLong(); } else if (c_oserct_chartExBinningINTERVAL == type) { pBinning->m_intervalClosed = (SimpleTypes::Spreadsheet::ESidePos)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExBinningUNDERVAL == type) { pBinning->m_underflow = m_oBufferedStream.GetDoubleReal(); } else if (c_oserct_chartExBinningOVERVAL == type) { pBinning->m_overflow = m_oBufferedStream.GetDoubleReal(); } else if (c_oserct_chartExBinningUNDERAUTO == type) { pBinning->m_underflow = (SimpleTypes::Spreadsheet::EDoubleOrAutomatic)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExBinningOVERAUTO == type) { pBinning->m_overflow = (SimpleTypes::Spreadsheet::EDoubleOrAutomatic)m_oBufferedStream.GetUChar(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExStatistics(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CStatistics *pStatistics = static_cast(poResult); if (c_oserct_chartExStatisticsMETHOD == type) { pStatistics->m_quartileMethod = (SimpleTypes::Spreadsheet::EQuartileMethod)m_oBufferedStream.GetUChar(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExSubtotals(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CSubtotals *pSubtotals = static_cast(poResult); if (c_oserct_chartExStatisticsMETHOD == type) { pSubtotals->m_arIdx.push_back(m_oBufferedStream.GetULong()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExSeriesElementVisibilities(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CSeriesElementVisibilities *pVisibilities = static_cast(poResult); if (c_oserct_chartExSeriesVisibilitiesCONNECTOR == type) { pVisibilities->m_connectorLines = m_oBufferedStream.GetBool(); } else if (c_oserct_chartExSeriesVisibilitiesMEANLINE == type) { pVisibilities->m_meanLine = m_oBufferedStream.GetBool(); } else if (c_oserct_chartExSeriesVisibilitiesMEANMARKER == type) { pVisibilities->m_meanMarker = m_oBufferedStream.GetBool(); } else if (c_oserct_chartExSeriesVisibilitiesNONOUTLIERS == type) { pVisibilities->m_nonoutliers = m_oBufferedStream.GetBool(); } else if (c_oserct_chartExSeriesVisibilitiesOUTLIERS == type) { pVisibilities->m_outliers = m_oBufferedStream.GetBool(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExAxis(BYTE type, long length, void* poResult) { OOX::Spreadsheet::ChartEx::CAxis *pAxis = static_cast(poResult); int res = c_oSerConstants::ReadOk; if (c_oserct_chartExAxisID == type) { pAxis->m_id = m_oBufferedStream.GetLong(); } else if (c_oserct_chartExAxisHIDDEN == type) { pAxis->m_hidden = m_oBufferedStream.GetBool(); } else if (c_oserct_chartExAxisCATSCALING == type) { pAxis->m_catScaling.Init(); READ1_DEF(length, res, this->ReadCT_ChartExCatScaling, pAxis->m_catScaling.GetPointer()); } else if (c_oserct_chartExAxisVALSCALING == type) { pAxis->m_valScaling.Init(); READ1_DEF(length, res, this->ReadCT_ChartExValScaling, pAxis->m_valScaling.GetPointer()); } else if (c_oserct_chartExAxisTITLE == type) { pAxis->m_title.Init(); READ1_DEF(length, res, this->ReadCT_ChartExTitle, pAxis->m_title.GetPointer()); } else if (c_oserct_chartExAxisUNIT == type) { pAxis->m_units.Init(); READ1_DEF(length, res, this->ReadCT_ChartExAxisUnit, pAxis->m_units.GetPointer()); } else if (c_oserct_chartExAxisNUMFMT == type) { pAxis->m_numFmt.Init(); READ1_DEF(length, res, this->ReadCT_ChartExNumberFormat, pAxis->m_numFmt.GetPointer()); } else if (c_oserct_chartExAxisMAJORTICK == type) { pAxis->m_majorTickMarks.Init(); pAxis->m_majorTickMarks->m_name = L"cx:majorTickMarks"; READ1_DEF(length, res, this->ReadCT_ChartExTickMarks, pAxis->m_majorTickMarks.GetPointer()); } else if (c_oserct_chartExAxisMINORTICK == type) { pAxis->m_minorTickMarks.Init(); pAxis->m_minorTickMarks->m_name = L"cx:minorTickMarks"; READ1_DEF(length, res, this->ReadCT_ChartExTickMarks, pAxis->m_minorTickMarks.GetPointer()); } else if (c_oserct_chartExAxisMAJORGRID == type) { pAxis->m_majorGridlines.Init(); pAxis->m_majorGridlines->m_name = L"cx:majorGridlines"; READ1_DEF(length, res, this->ReadCT_ChartExGridlines, pAxis->m_majorGridlines.GetPointer()); } else if (c_oserct_chartExAxisMINORGRID == type) { pAxis->m_minorGridlines.Init(); pAxis->m_minorGridlines->m_name = L"cx:minorGridlines"; READ1_DEF(length, res, this->ReadCT_ChartExGridlines, pAxis->m_minorGridlines.GetPointer()); } else if (c_oserct_chartExAxisTICKLABELS == type) { pAxis->m_tickLabels = m_oBufferedStream.GetBool(); } else if (c_oserct_chartExAxisTXPR == type) { pAxis->m_txPr = new PPTX::Logic::TxBody; pAxis->m_txPr->m_name = L"cx:txPr"; res = ReadCT_PptxElement(0, length, pAxis->m_txPr.GetPointer()); } else if (c_oserct_chartExAxisSPPR == type) { pAxis->m_spPr = new PPTX::Logic::SpPr; pAxis->m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pAxis->m_spPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExCatScaling(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CCatScaling *pScaling = static_cast(poResult); if (c_oserct_chartExCatScalingGAPAUTO == type) { pScaling->m_gapWidth = (SimpleTypes::Spreadsheet::EDoubleOrAutomatic)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExCatScalingGAPVAL == type) { pScaling->m_gapWidth = m_oBufferedStream.GetDoubleReal(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExValScaling(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CValScaling *pScaling = static_cast(poResult); if (c_oserct_chartExValScalingMINAUTO == type) { pScaling->m_min = (SimpleTypes::Spreadsheet::EDoubleOrAutomatic)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExValScalingMINVAL == type) { pScaling->m_min = m_oBufferedStream.GetDoubleReal(); } else if (c_oserct_chartExValScalingMAXAUTO == type) { pScaling->m_max = (SimpleTypes::Spreadsheet::EDoubleOrAutomatic)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExValScalingMAXVAL == type) { pScaling->m_max = m_oBufferedStream.GetDoubleReal(); } else if (c_oserct_chartExValScalingMAJUNITAUTO == type) { pScaling->m_majorUnit = (SimpleTypes::Spreadsheet::EDoubleOrAutomatic)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExValScalingMAJUNITVAL == type) { pScaling->m_majorUnit = m_oBufferedStream.GetDoubleReal(); } else if (c_oserct_chartExValScalingMINUNITAUTO == type) { pScaling->m_minorUnit = (SimpleTypes::Spreadsheet::EDoubleOrAutomatic)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExValScalingMINUNITVAL == type) { pScaling->m_minorUnit = m_oBufferedStream.GetDoubleReal(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExAxisUnit(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CAxisUnit *pAxisUnit = static_cast(poResult); if (c_oserct_chartExAxisUnitTYPE == type) { pAxisUnit->m_unit = (SimpleTypes::Spreadsheet::EAxisUnit)m_oBufferedStream.GetUChar(); } else if (c_oserct_chartExAxisUnitLABEL == type) { pAxisUnit->m_unitsLabel.Init(); READ1_DEF(length, res, this->ReadCT_ChartExAxisUnitsLabel, pAxisUnit->m_unitsLabel.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExTickMarks(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CTickMarks *pTickMarks = static_cast(poResult); if (c_oserct_chartExTickMarksTYPE == type) { pTickMarks->m_type = (SimpleTypes::Spreadsheet::ETickMarksType)m_oBufferedStream.GetUChar(); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExGridlines(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CGridlines *pGridlines = static_cast(poResult); if (c_oserct_chartExGridlinesSPPR == type) { pGridlines->m_spPr = new PPTX::Logic::SpPr; pGridlines->m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pGridlines->m_spPr.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } int BinaryChartReader::ReadCT_ChartExAxisUnitsLabel(BYTE type, long length, void* poResult) { int res = c_oSerConstants::ReadOk; OOX::Spreadsheet::ChartEx::CAxisUnitsLabel *pAxisUnitsLabel = static_cast(poResult); if (c_oserct_chartExAxisUnitsLabelSPPR == type) { pAxisUnitsLabel->m_spPr = new PPTX::Logic::SpPr; pAxisUnitsLabel->m_spPr->m_namespace = L"cx"; res = ReadCT_PptxElement(0, length, pAxisUnitsLabel->m_spPr.GetPointer()); } else if (c_oserct_chartExAxisUnitsLabelTXPR == type) { pAxisUnitsLabel->m_txPr = new PPTX::Logic::TxBody; pAxisUnitsLabel->m_txPr->m_name = L"cx:txPr"; res = ReadCT_PptxElement(0, length, pAxisUnitsLabel->m_txPr.GetPointer()); } else if (c_oserct_chartExAxisUnitsLabelTEXT == type) { pAxisUnitsLabel->m_tx.Init(); READ1_DEF(length, res, this->ReadCT_ChartExText, pAxisUnitsLabel->m_tx.GetPointer()); } else res = c_oSerConstants::ReadUnknown; return res; } //--------------------------------------------------------------- BinaryChartWriter::BinaryChartWriter(NSBinPptxRW::CBinaryFileWriter &oBufferedStream, NSBinPptxRW::CDrawingConverter* pOfficeDrawingConverter):m_oBcw(oBufferedStream),m_pOfficeDrawingConverter(pOfficeDrawingConverter) {} void BinaryChartWriter::WriteCT_ChartFile(OOX::Spreadsheet::CChartFile& oChartFile) { CT_ChartSpace& oVal = oChartFile.m_oChartSpace; if (oVal.m_date1904.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspaceDATE1904); WriteCT_Boolean(*oVal.m_date1904); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_lang.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspaceLANG); WriteCT_String(*oVal.m_lang); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_roundedCorners.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspaceROUNDEDCORNERS); WriteCT_Boolean(*oVal.m_roundedCorners); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_AlternateContent) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspaceALTERNATECONTENT); WriteAlternateContent(*oVal.m_AlternateContent); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_style) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspaceSTYLE); WriteCT_Style(*oVal.m_style); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_oClrMapOvr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspaceCLRMAPOVR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_oClrMapOvr); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_pivotSource) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspacePIVOTSOURCE); WriteCT_PivotSource(*oVal.m_pivotSource); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_protection) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspacePROTECTION); WriteCT_Protection(*oVal.m_protection); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_chart) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspaceCHART); WriteCT_Chart(*oVal.m_chart); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspaceSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspaceTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_externalData) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspaceEXTERNALDATA); WriteCT_ExternalData(*oVal.m_externalData); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_printSettings) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspacePRINTSETTINGS); WriteCT_PrintSettings(*oVal.m_printSettings); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); if ((NULL != oVal.m_userShapes) && (oVal.m_userShapes->m_id.IsInit())) { smart_ptr oFile = oChartFile.Find(*oVal.m_userShapes->m_id); if (oFile.IsInit() && OOX::FileTypes::ChartDrawing == oFile->type()) { OOX::CChartDrawing* pDrawing = (OOX::CChartDrawing*)oFile.GetPointer(); smart_ptr oldRels = m_pOfficeDrawingConverter->GetRels(); m_pOfficeDrawingConverter->SetRels(pDrawing); int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartspaceUSERSHAPES); int nCurPos1 = m_oBcw.WriteItemStart(c_oserct_usershapes_COUNT); m_oBcw.m_oStream.WriteLONG(pDrawing->m_arrItems.size()); m_oBcw.WriteItemEnd(nCurPos1); smart_ptr oldRelsStream = m_oBcw.m_oStream.GetRels(); m_oBcw.m_oStream.SetRels(pDrawing); for (size_t i = 0; i < pDrawing->m_arrItems.size(); i++) { OOX::CAbsSizeAnchor* absSize = dynamic_cast(pDrawing->m_arrItems[i]); OOX::CRelSizeAnchor* relSize = dynamic_cast(pDrawing->m_arrItems[i]); int nCurPos2 = m_oBcw.WriteItemStart(relSize ? c_oserct_usershapes_SHAPE_REL : c_oserct_usershapes_SHAPE_ABS); WriteCT_Shape(pDrawing->m_arrItems[i]); m_oBcw.WriteItemEnd(nCurPos2); } m_oBcw.WriteItemEnd(nCurPos); m_oBcw.m_oStream.SetRels(oldRelsStream); m_pOfficeDrawingConverter->SetRels(oldRels); } } } void BinaryChartWriter::WriteCT_Shape(OOX::CSizeAnchor *pVal) { OOX::CAbsSizeAnchor* absSize = dynamic_cast(pVal); OOX::CRelSizeAnchor* relSize = dynamic_cast(pVal); //From int nCurPos = 0; if (pVal->m_oFrom.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oSer_DrawingType::From); WriteCT_FromTo(*pVal->m_oFrom); m_oBcw.WriteItemEnd(nCurPos); } //To if ((relSize) && (relSize->m_oTo.IsInit())) { nCurPos = m_oBcw.WriteItemStart(c_oSer_DrawingType::To); WriteCT_FromTo(*relSize->m_oTo); m_oBcw.WriteItemEnd(nCurPos); } //Ext if ((absSize) && (absSize->m_oExt.IsInit())) { nCurPos = m_oBcw.WriteItemStart(c_oSer_DrawingType::Ext); WriteCT_Ext(*absSize->m_oExt); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_oElement.IsInit()) { m_oBcw.m_oStream.WriteBYTE(c_oSer_DrawingType::pptxDrawing); nCurPos = m_oBcw.WriteItemWithLengthStart(); m_oBcw.m_oStream.StartRecord(0); m_oBcw.m_oStream.WriteRecord2(1, pVal->m_oElement->GetElem()); m_oBcw.m_oStream.EndRecord(); m_oBcw.WriteItemWithLengthEnd(nCurPos); } } void BinaryChartWriter::WriteCT_FromTo(OOX::CFromTo& oFromTo) { if (oFromTo.m_oX.IsInit()) { m_oBcw.m_oStream.WriteBYTE(c_oSer_DrawingPosType::X); m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Double); m_oBcw.m_oStream.WriteDoubleReal(oFromTo.m_oX.get()); } if (oFromTo.m_oY.IsInit()) { m_oBcw.m_oStream.WriteBYTE(c_oSer_DrawingPosType::Y); m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Double); m_oBcw.m_oStream.WriteDoubleReal(oFromTo.m_oY.get()); } } void BinaryChartWriter::WriteCT_Ext(OOX::CExt& oExt) { if (oExt.m_oCx.IsInit()) { m_oBcw.m_oStream.WriteBYTE(c_oSer_DrawingExtType::Cx); m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Double); m_oBcw.m_oStream.WriteDoubleReal(oExt.m_oCx.get()); } if (oExt.m_oCy.IsInit()) { m_oBcw.m_oStream.WriteBYTE(c_oSer_DrawingExtType::Cy); m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Double); m_oBcw.m_oStream.WriteDoubleReal(oExt.m_oCy.get()); } } void BinaryChartWriter::WriteCT_PageSetup(CT_PageSetup& oVal) { if (oVal.m_paperSize.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagesetupPAPERSIZE); m_oBcw.m_oStream.WriteLONG(*oVal.m_paperSize); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_paperHeight.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagesetupPAPERHEIGHT); m_oBcw.m_oStream.WriteStringW4(*oVal.m_paperHeight); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_paperWidth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagesetupPAPERWIDTH); m_oBcw.m_oStream.WriteStringW4(*oVal.m_paperWidth); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_firstPageNumber.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagesetupFIRSTPAGENUMBER); m_oBcw.m_oStream.WriteLONG(*oVal.m_firstPageNumber); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_orientation.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagesetupORIENTATION); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.m_orientation->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_blackAndWhite.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagesetupBLACKANDWHITE); m_oBcw.m_oStream.WriteBOOL(*oVal.m_blackAndWhite); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_draft.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagesetupDRAFT); m_oBcw.m_oStream.WriteBOOL(*oVal.m_draft); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_useFirstPageNumber.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagesetupUSEFIRSTPAGENUMBER); m_oBcw.m_oStream.WriteBOOL(*oVal.m_useFirstPageNumber); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_horizontalDpi.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagesetupHORIZONTALDPI); m_oBcw.m_oStream.WriteLONG(*oVal.m_horizontalDpi); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_verticalDpi.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagesetupVERTICALDPI); m_oBcw.m_oStream.WriteLONG(*oVal.m_verticalDpi); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_copies.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagesetupCOPIES); m_oBcw.m_oStream.WriteLONG(*oVal.m_copies); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_PageMargins(CT_PageMargins& oVal) { if (oVal.m_l.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagemarginsL); m_oBcw.m_oStream.WriteDoubleReal(*oVal.m_l); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_r.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagemarginsR); m_oBcw.m_oStream.WriteDoubleReal(*oVal.m_r); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_t.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagemarginsT); m_oBcw.m_oStream.WriteDoubleReal(*oVal.m_t); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_b.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagemarginsB); m_oBcw.m_oStream.WriteDoubleReal(*oVal.m_b); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_header.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagemarginsHEADER); m_oBcw.m_oStream.WriteDoubleReal(*oVal.m_header); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_footer.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pagemarginsFOOTER); m_oBcw.m_oStream.WriteDoubleReal(*oVal.m_footer); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_HeaderFooter(CT_HeaderFooter& oVal) { if (oVal.m_oddHeader.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_headerfooterODDHEADER); m_oBcw.m_oStream.WriteStringW4(*oVal.m_oddHeader); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_oddFooter.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_headerfooterODDFOOTER); m_oBcw.m_oStream.WriteStringW4(*oVal.m_oddFooter); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_evenHeader.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_headerfooterEVENHEADER); m_oBcw.m_oStream.WriteStringW4(*oVal.m_evenHeader); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_evenFooter.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_headerfooterEVENFOOTER); m_oBcw.m_oStream.WriteStringW4(*oVal.m_evenFooter); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_firstHeader.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_headerfooterFIRSTHEADER); m_oBcw.m_oStream.WriteStringW4(*oVal.m_firstHeader); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_firstFooter.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_headerfooterFIRSTFOOTER); m_oBcw.m_oStream.WriteStringW4(*oVal.m_firstFooter); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_alignWithMargins.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_headerfooterALIGNWITHMARGINS); m_oBcw.m_oStream.WriteBOOL(*oVal.m_alignWithMargins); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_differentOddEven.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_headerfooterDIFFERENTODDEVEN); m_oBcw.m_oStream.WriteBOOL(*oVal.m_differentOddEven); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_differentFirst.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_headerfooterDIFFERENTFIRST); m_oBcw.m_oStream.WriteBOOL(*oVal.m_differentFirst); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_PrintSettings(CT_PrintSettings& oVal) { if (NULL != oVal.m_headerFooter) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_printsettingsHEADERFOOTER); WriteCT_HeaderFooter(*oVal.m_headerFooter); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_pageMargins) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_printsettingsPAGEMARGINS); WriteCT_PageMargins(*oVal.m_pageMargins); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_pageSetup) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_printsettingsPAGESETUP); WriteCT_PageSetup(*oVal.m_pageSetup); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ExternalData(CT_ExternalData& oVal) { if (oVal.m_autoUpdate.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_externaldataAUTOUPDATE); WriteCT_Boolean(*oVal.m_autoUpdate); m_oBcw.WriteItemEnd(nCurPos); } //if (NULL != oVal.m_id) - выше } void BinaryChartWriter::WriteCT_DispBlanksAs(CDispBlanksAs& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dispblanksasVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_LegendEntry(CT_LegendEntry& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_legendentryIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_delete.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_legendentryDELETE); WriteCT_Boolean(*oVal.m_delete); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_legendentryTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_LegendPos(CLegendPos& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_legendposVAL); BYTE nVal = (BYTE)(oVal.GetValue()); m_oBcw.m_oStream.WriteBYTE(nVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_Legend(CT_Legend& oVal) { if (oVal.m_legendPos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_legendLEGENDPOS); WriteCT_LegendPos(*oVal.m_legendPos); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_legendEntry.size(); i < length; ++i) { CT_LegendEntry* pVal = oVal.m_legendEntry[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_legendLEGENDENTRY); WriteCT_LegendEntry(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_layout) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_legendLAYOUT); WriteCT_Layout(*oVal.m_layout); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_overlay.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_legendOVERLAY); WriteCT_Boolean(*oVal.m_overlay); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_legendSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_legendTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_Layout(CT_Layout& oVal) { if (NULL != oVal.m_manualLayout) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_layoutMANUALLAYOUT); WriteCT_ManualLayout(*oVal.m_manualLayout); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_ManualLayout(CT_ManualLayout& oVal) { if (oVal.m_layoutTarget.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_manuallayoutLAYOUTTARGET); WriteCT_LayoutTarget(*oVal.m_layoutTarget); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_xMode.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_manuallayoutXMODE); WriteCT_LayoutMode(*oVal.m_xMode); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_yMode.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_manuallayoutYMODE); WriteCT_LayoutMode(*oVal.m_yMode); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_wMode.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_manuallayoutWMODE); WriteCT_LayoutMode(*oVal.m_wMode); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_hMode.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_manuallayoutHMODE); WriteCT_LayoutMode(*oVal.m_hMode); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_x.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_manuallayoutX); WriteCT_Double(*oVal.m_x); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_y.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_manuallayoutY); WriteCT_Double(*oVal.m_y); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_w.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_manuallayoutW); WriteCT_Double(*oVal.m_w); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_h.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_manuallayoutH); WriteCT_Double(*oVal.m_h); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_LayoutTarget(CLayoutTarget& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_layouttargetVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_LayoutMode(CLayoutMode& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_layoutmodeVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_Boolean(bool oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_booleanVAL); m_oBcw.m_oStream.WriteBOOL(oVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_UnsignedInt(unsigned int oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_unsignedintVAL); m_oBcw.m_oStream.WriteLONG(oVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_UnsignedByte(unsigned char oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_byteVAL); m_oBcw.m_oStream.WriteBYTE(oVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_SignedByte(char oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_byteVAL); m_oBcw.m_oStream.WriteSBYTE(oVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_Double(double oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_doubleVAL); m_oBcw.m_oStream.WriteDoubleReal(oVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_String(std::wstring oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_stringVAL); m_oBcw.m_oStream.WriteStringW4(oVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_DTable(CT_DTable& oVal) { if (oVal.m_showHorzBorder.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dtableSHOWHORZBORDER); WriteCT_Boolean(*oVal.m_showHorzBorder); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_showVertBorder.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dtableSHOWVERTBORDER); WriteCT_Boolean(*oVal.m_showVertBorder); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_showOutline.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dtableSHOWOUTLINE); WriteCT_Boolean(*oVal.m_showOutline); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_showKeys.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dtableSHOWKEYS); WriteCT_Boolean(*oVal.m_showKeys); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dtableSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dtableTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_SerAx(CT_SerAx& oVal) { if (oVal.m_axId.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxAXID); WriteCT_UnsignedInt(*oVal.m_axId); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_scaling) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxSCALING); WriteCT_Scaling(*oVal.m_scaling); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_delete.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxDELETE); WriteCT_Boolean(*oVal.m_delete); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_axPos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxAXPOS); WriteCT_AxPos(*oVal.m_axPos); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_majorGridlines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxMAJORGRIDLINES); WriteCT_ChartLines(*oVal.m_majorGridlines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_minorGridlines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxMINORGRIDLINES); WriteCT_ChartLines(*oVal.m_minorGridlines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_title) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxTITLE); WriteCT_Title(*oVal.m_title); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_numFmt) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxNUMFMT); WriteCT_NumFmt(*oVal.m_numFmt); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_majorTickMark.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxMAJORTICKMARK); WriteCT_TickMark(*oVal.m_majorTickMark); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_minorTickMark.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxMINORTICKMARK); WriteCT_TickMark(*oVal.m_minorTickMark); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_tickLblPos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxTICKLBLPOS); WriteCT_TickLblPos(*oVal.m_tickLblPos); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crossAx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxCROSSAX); WriteCT_UnsignedInt(*oVal.m_crossAx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crosses.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxCROSSES); WriteCT_Crosses(*oVal.m_crosses); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crossesAt.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxCROSSESAT); WriteCT_Double(*oVal.m_crossesAt); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_tickLblSkip.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxTICKLBLSKIP); WriteCT_UnsignedInt(*oVal.m_tickLblSkip); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_tickMarkSkip.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_seraxTICKMARKSKIP); WriteCT_UnsignedInt(*oVal.m_tickMarkSkip); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_Scaling(CT_Scaling& oVal) { if (oVal.m_logBase.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scalingLOGBASE); WriteCT_Double(*oVal.m_logBase); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_orientation.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scalingORIENTATION); WriteCT_Orientation(*oVal.m_orientation); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_max.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scalingMAX); WriteCT_Double(*oVal.m_max); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_min.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scalingMIN); WriteCT_Double(*oVal.m_min); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_Orientation(COrientation& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_orientationVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_AxPos(CAxPos& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_axposVAL); m_oBcw.m_oStream.WriteBYTE(oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_ChartLines(CT_ChartLines& oVal, bool bExt) { if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartlinesSPPR + (bExt ? 0x80 : 0)); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_Title(CT_Title& oVal) { if (NULL != oVal.m_tx) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_titleTX); WriteCT_Tx(*oVal.m_tx); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_layout) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_titleLAYOUT); WriteCT_Layout(*oVal.m_layout); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_overlay.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_titleOVERLAY); WriteCT_Boolean(*oVal.m_overlay); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_titleSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_titleTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_Tx(CT_Tx& oVal) { if (oVal.m_oRich.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_txRICH); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_oRich); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_strRef) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_txSTRREF); WriteCT_StrRef(*oVal.m_strRef); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_StrRef(CT_StrRef& oVal) { if (oVal.m_f.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_strrefF); m_oBcw.m_oStream.WriteStringW4(*oVal.m_f); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_strCache) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_strrefSTRCACHE); WriteCT_StrData(*oVal.m_strCache); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_StrData(CT_StrData& oVal) { if (oVal.m_ptCount.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_strdataPTCOUNT); WriteCT_UnsignedInt(*oVal.m_ptCount); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_pt.size(); i < length; ++i) { CT_StrVal* pVal = oVal.m_pt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_strdataPT); WriteCT_StrVal(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_StrVal(CT_StrVal& oVal) { if (oVal.m_v.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_strvalV); m_oBcw.m_oStream.WriteStringW4(*oVal.m_v); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_strvalIDX); m_oBcw.m_oStream.WriteLONG(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_NumFmt(CT_NumFmt& oVal) { if (oVal.m_formatCode.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numfmtFORMATCODE); m_oBcw.m_oStream.WriteStringW4(*oVal.m_formatCode); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_sourceLinked.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numfmtSOURCELINKED); m_oBcw.m_oStream.WriteBOOL(*oVal.m_sourceLinked); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_TickMark(CTickMark& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_tickmarkVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_TickLblPos(CTickLblPos& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ticklblposVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_Crosses(CCrosses& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_crossesVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_TimeUnit(CTimeUnit& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_timeunitVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_DateAx(CT_DateAx& oVal) { if (oVal.m_axId.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxAXID); WriteCT_UnsignedInt(*oVal.m_axId); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_scaling) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxSCALING); WriteCT_Scaling(*oVal.m_scaling); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_delete.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxDELETE); WriteCT_Boolean(*oVal.m_delete); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_axPos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxAXPOS); WriteCT_AxPos(*oVal.m_axPos); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_majorGridlines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxMAJORGRIDLINES); WriteCT_ChartLines(*oVal.m_majorGridlines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_minorGridlines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxMINORGRIDLINES); WriteCT_ChartLines(*oVal.m_minorGridlines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_title) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxTITLE); WriteCT_Title(*oVal.m_title); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_numFmt) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxNUMFMT); WriteCT_NumFmt(*oVal.m_numFmt); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_majorTickMark.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxMAJORTICKMARK); WriteCT_TickMark(*oVal.m_majorTickMark); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_minorTickMark.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxMINORTICKMARK); WriteCT_TickMark(*oVal.m_minorTickMark); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_tickLblPos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxTICKLBLPOS); WriteCT_TickLblPos(*oVal.m_tickLblPos); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crossAx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxCROSSAX); WriteCT_UnsignedInt(*oVal.m_crossAx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crosses.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxCROSSES); WriteCT_Crosses(*oVal.m_crosses); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crossesAt.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxCROSSESAT); WriteCT_Double(*oVal.m_crossesAt); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_auto.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxAUTO); WriteCT_Boolean(*oVal.m_auto); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_lblOffset.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxLBLOFFSET); WriteCT_String(*oVal.m_lblOffset); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_baseTimeUnit.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxBASETIMEUNIT); WriteCT_TimeUnit(*oVal.m_baseTimeUnit); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_majorUnit.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxMAJORUNIT); WriteCT_Double(*oVal.m_majorUnit); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_majorTimeUnit.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxMAJORTIMEUNIT); WriteCT_TimeUnit(*oVal.m_majorTimeUnit); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_minorUnit.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxMINORUNIT); WriteCT_Double(*oVal.m_minorUnit); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_minorTimeUnit.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dateaxMINORTIMEUNIT); WriteCT_TimeUnit(*oVal.m_minorTimeUnit); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_LblAlgn(CLblAlgn& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lblalgnVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_CatAx(CT_CatAx& oVal) { if (oVal.m_axId.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxAXID); WriteCT_UnsignedInt(*oVal.m_axId); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_scaling) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxSCALING); WriteCT_Scaling(*oVal.m_scaling); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_delete.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxDELETE); WriteCT_Boolean(*oVal.m_delete); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_axPos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxAXPOS); WriteCT_AxPos(*oVal.m_axPos); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_majorGridlines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxMAJORGRIDLINES); WriteCT_ChartLines(*oVal.m_majorGridlines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_minorGridlines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxMINORGRIDLINES); WriteCT_ChartLines(*oVal.m_minorGridlines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_title) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxTITLE); WriteCT_Title(*oVal.m_title); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_numFmt) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxNUMFMT); WriteCT_NumFmt(*oVal.m_numFmt); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_majorTickMark.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxMAJORTICKMARK); WriteCT_TickMark(*oVal.m_majorTickMark); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_minorTickMark.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxMINORTICKMARK); WriteCT_TickMark(*oVal.m_minorTickMark); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_tickLblPos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxTICKLBLPOS); WriteCT_TickLblPos(*oVal.m_tickLblPos); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crossAx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxCROSSAX); WriteCT_UnsignedInt(*oVal.m_crossAx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crosses.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxCROSSES); WriteCT_Crosses(*oVal.m_crosses); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crossesAt.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxCROSSESAT); WriteCT_Double(*oVal.m_crossesAt); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_auto.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxAUTO); WriteCT_Boolean(*oVal.m_auto); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_lblAlgn.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxLBLALGN); WriteCT_LblAlgn(*oVal.m_lblAlgn); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_lblOffset.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxLBLOFFSET); WriteCT_String(*oVal.m_lblOffset); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_tickLblSkip.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxTICKLBLSKIP); WriteCT_UnsignedInt(*oVal.m_tickLblSkip); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_tickMarkSkip.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxTICKMARKSKIP); WriteCT_UnsignedInt(*oVal.m_tickMarkSkip); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_noMultiLvlLbl.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_cataxNOMULTILVLLBL); WriteCT_Boolean(*oVal.m_noMultiLvlLbl); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_DispUnitsLbl(CT_DispUnitsLbl& oVal) { if (NULL != oVal.m_layout) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dispunitslblLAYOUT); WriteCT_Layout(*oVal.m_layout); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_tx) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dispunitslblTX); WriteCT_Tx(*oVal.m_tx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dispunitslblSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dispunitslblTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_BuiltInUnit(CBuiltInUnit& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_builtinunitVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_DispUnits(CT_DispUnits& oVal) { if (oVal.m_builtInUnit.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dispunitsBUILTINUNIT); WriteCT_BuiltInUnit(*oVal.m_builtInUnit); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_custUnit.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dispunitsCUSTUNIT); WriteCT_Double(*oVal.m_custUnit); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_dispUnitsLbl) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dispunitsDISPUNITSLBL); WriteCT_DispUnitsLbl(*oVal.m_dispUnitsLbl); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_CrossBetween(CCrossBetween& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_crossbetweenVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_ValAx(CT_ValAx& oVal) { if (oVal.m_axId.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxAXID); WriteCT_UnsignedInt(*oVal.m_axId); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_scaling) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxSCALING); WriteCT_Scaling(*oVal.m_scaling); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_delete.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxDELETE); WriteCT_Boolean(*oVal.m_delete); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_axPos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxAXPOS); WriteCT_AxPos(*oVal.m_axPos); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_majorGridlines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxMAJORGRIDLINES); WriteCT_ChartLines(*oVal.m_majorGridlines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_minorGridlines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxMINORGRIDLINES); WriteCT_ChartLines(*oVal.m_minorGridlines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_title) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxTITLE); WriteCT_Title(*oVal.m_title); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_numFmt) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxNUMFMT); WriteCT_NumFmt(*oVal.m_numFmt); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_majorTickMark.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxMAJORTICKMARK); WriteCT_TickMark(*oVal.m_majorTickMark); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_minorTickMark.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxMINORTICKMARK); WriteCT_TickMark(*oVal.m_minorTickMark); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_tickLblPos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxTICKLBLPOS); WriteCT_TickLblPos(*oVal.m_tickLblPos); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crossAx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxCROSSAX); WriteCT_UnsignedInt(*oVal.m_crossAx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crosses.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxCROSSES); WriteCT_Crosses(*oVal.m_crosses); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crossesAt.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxCROSSESAT); WriteCT_Double(*oVal.m_crossesAt); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_crossBetween.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxCROSSBETWEEN); WriteCT_CrossBetween(*oVal.m_crossBetween); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_majorUnit.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxMAJORUNIT); WriteCT_Double(*oVal.m_majorUnit); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_minorUnit.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxMINORUNIT); WriteCT_Double(*oVal.m_minorUnit); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_dispUnits) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_valaxDISPUNITS); WriteCT_DispUnits(*oVal.m_dispUnits); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_SizeRepresents(CSizeRepresents& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_sizerepresentsVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_BubbleSer(CT_BubbleSer& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_order.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserORDER); WriteCT_UnsignedInt(*oVal.m_order); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_tx) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserTX); WriteCT_SerTx(*oVal.m_tx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_invertIfNegative.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserINVERTIFNEGATIVE); WriteCT_Boolean(*oVal.m_invertIfNegative); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_dPt.size(); i < length; ++i) { CT_DPt* pVal = oVal.m_dPt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserDPT); WriteCT_DPt(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_trendline.size(); i < length; ++i) { CT_Trendline* pVal = oVal.m_trendline[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserTRENDLINE); WriteCT_Trendline(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } for(size_t i = 0, length = oVal.m_errBars.size(); i < length; ++i) { CT_ErrBars* pVal = oVal.m_errBars[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserERRBARS); WriteCT_ErrBars(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_xVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserXVAL); WriteCT_AxDataSource(*oVal.m_xVal); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_yVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserYVAL); WriteCT_NumDataSource(*oVal.m_yVal); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_bubbleSize) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserBUBBLESIZE); WriteCT_NumDataSource(*oVal.m_bubbleSize); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_bubble3D.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubbleserBUBBLE3D); WriteCT_Boolean(*oVal.m_bubble3D); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_SerTx(CT_SerTx& oVal) { if (NULL != oVal.m_strRef) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_sertxSTRREF); WriteCT_StrRef(*oVal.m_strRef); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_v.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_sertxV); m_oBcw.m_oStream.WriteStringW4(*oVal.m_v); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_DPt(CT_DPt& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dptIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_invertIfNegative.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dptINVERTIFNEGATIVE); WriteCT_Boolean(*oVal.m_invertIfNegative); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_marker) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dptMARKER); WriteCT_Marker(*oVal.m_marker); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_bubble3D.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dptBUBBLE3D); WriteCT_Boolean(*oVal.m_bubble3D); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_explosion.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dptEXPLOSION); WriteCT_UnsignedInt(*oVal.m_explosion); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dptSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_pictureOptions) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dptPICTUREOPTIONS); WriteCT_PictureOptions(*oVal.m_pictureOptions); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_Marker(CT_Marker& oVal) { if (oVal.m_symbol.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_markerSYMBOL); WriteCT_MarkerStyle(*oVal.m_symbol); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_size.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_markerSIZE); WriteCT_UnsignedByte(*oVal.m_size); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_markerSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_MarkerStyle(CMarkerStyle& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_markerstyleVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_PictureOptions(CT_PictureOptions& oVal) { if (oVal.m_applyToFront.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pictureoptionsAPPLYTOFRONT); WriteCT_Boolean(*oVal.m_applyToFront); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_applyToSides.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pictureoptionsAPPLYTOSIDES); WriteCT_Boolean(*oVal.m_applyToSides); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_applyToEnd.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pictureoptionsAPPLYTOEND); WriteCT_Boolean(*oVal.m_applyToEnd); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_pictureFormat.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pictureoptionsPICTUREFORMAT); WriteCT_PictureFormat(*oVal.m_pictureFormat); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_pictureStackUnit.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pictureoptionsPICTURESTACKUNIT); WriteCT_Double(*oVal.m_pictureStackUnit); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_PictureFormat(CPictureFormat& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pictureformatVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_DLbls(CT_DLbls& oVal) { for (size_t i = 0, length = oVal.m_dLbl.size(); i < length; ++i) { CT_DLbl* pVal = oVal.m_dLbl[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsDLBL); WriteCT_DLbl(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } for (size_t i = 0; i < oVal.m_Items.size(); ++i) { ItemsChoiceType3 eType = *oVal.m_ItemsElementName0[i]; toBin(eType, oVal.m_Items[i]); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteExtensions(OOX::Drawing::COfficeArtExtensionList *pVal) { if (!pVal) return; for (size_t i = 0; i < pVal->m_arrExt.size(); ++i) { if (!pVal->m_arrExt[i]) continue; if (pVal->m_arrExt[i]->m_oChartDataLabel.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dataLabel); WriteCT_DLbl(*pVal->m_arrExt[i]->m_oChartDataLabel); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_arrExt[i]->m_oChartFiltering.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartFiltering); WriteChartFiltering(pVal->m_arrExt[i]->m_oChartFiltering.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_arrExt[i]->m_oDataDisplayNaAsBlank.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartDataDisplayNaAsBlank); m_oBcw.m_oStream.WriteBOOL(*pVal->m_arrExt[i]->m_oDataDisplayNaAsBlank); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_arrExt[i]->m_oFileKey.IsInit() || pVal->m_arrExt[i]->m_oInstanceId.IsInit()) { int nCurPos1 = m_oBcw.WriteItemStart(c_oserct_chartExternalReference); if (pVal->m_arrExt[i]->m_oFileKey.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartDataExternalFileKey); m_oBcw.m_oStream.WriteStringW4(*pVal->m_arrExt[i]->m_oFileKey); m_oBcw.WriteItemWithLengthEnd(nCurPos); } if (pVal->m_arrExt[i]->m_oInstanceId.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartDataExternalInstanceId); m_oBcw.m_oStream.WriteStringW4(*pVal->m_arrExt[i]->m_oInstanceId); m_oBcw.WriteItemWithLengthEnd(nCurPos); } m_oBcw.WriteItemEnd(nCurPos1); } } } void BinaryChartWriter::toBin(ItemsChoiceType3 eType, void* pVal) { switch(eType) { case itemschoicetype3DLBLPOS: { CDLblPos* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsDLBLPOS); WriteCT_DLblPos(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3DELETE: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsDELETE); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3LEADERLINES: { CT_ChartLines* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsLEADERLINES); WriteCT_ChartLines(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3NUMFMT: { CT_NumFmt* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsNUMFMT); WriteCT_NumFmt(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3SEPARATOR: { std::wstring* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsSEPARATOR); m_oBcw.m_oStream.WriteStringW4(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3SHOWBUBBLESIZE: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsSHOWBUBBLESIZE); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3SHOWCATNAME: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsSHOWCATNAME); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3SHOWLEADERLINES: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsSHOWLEADERLINES); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3SHOWLEGENDKEY: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsSHOWLEGENDKEY); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3SHOWPERCENT: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsSHOWPERCENT); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3SHOWSERNAME: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsSHOWSERNAME); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3SHOWVAL: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsSHOWVAL); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3SPPR: { PPTX::Logic::SpPr* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsSPPR); m_oBcw.m_oStream.WriteRecord1(0, (*pTypeVal)); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype3TXPR: { PPTX::Logic::TxBody* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblsTXPR); m_oBcw.m_oStream.WriteRecord1(0, (*pTypeVal)); m_oBcw.WriteItemEnd(nCurPos); } } break; } } void BinaryChartWriter::WriteCT_DLbl(CT_DLbl& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < oVal.m_Items.size(); ++i) { ItemsChoiceType4 eType = *oVal.m_ItemsElementName0[i]; toBin(eType, oVal.m_Items[i]); } if (oVal.m_xForSave.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_xForSave); WriteCT_Boolean(*oVal.m_xForSave); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_showDataLabelsRange.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_showDataLabelsRange); WriteCT_Boolean(*oVal.m_showDataLabelsRange); m_oBcw.WriteItemEnd(nCurPos); } //if (NULL != m_dlblFieldTable if (oVal.m_showLeaderLines.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_showLeaderLines); WriteCT_Boolean(*oVal.m_showLeaderLines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_leaderLines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_leaderLines); WriteCT_ChartLines(*oVal.m_leaderLines); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::toBin(ItemsChoiceType4 eType, void* pVal) { switch(eType) { case itemschoicetype4DLBLPOS: { CDLblPos* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblDLBLPOS); WriteCT_DLblPos(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4DELETE: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblDELETE); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4LAYOUT: { CT_Layout* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblLAYOUT); WriteCT_Layout(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4NUMFMT: { CT_NumFmt* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblNUMFMT); WriteCT_NumFmt(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4SEPARATOR: { std::wstring* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblSEPARATOR); m_oBcw.m_oStream.WriteStringW4(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4SHOWBUBBLESIZE: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblSHOWBUBBLESIZE); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4SHOWCATNAME: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblSHOWCATNAME); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4SHOWLEGENDKEY: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblSHOWLEGENDKEY); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4SHOWPERCENT: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblSHOWPERCENT); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4SHOWSERNAME: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblSHOWSERNAME); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4SHOWVAL: { bool* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblSHOWVAL); WriteCT_Boolean(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4SPPR: { PPTX::Logic::SpPr* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblSPPR); m_oBcw.m_oStream.WriteRecord1(0, (*pTypeVal)); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4TX: { CT_Tx* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblTX); WriteCT_Tx(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype4TXPR: { PPTX::Logic::TxBody* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblTXPR); m_oBcw.m_oStream.WriteRecord1(0, (*pTypeVal)); m_oBcw.WriteItemEnd(nCurPos); } } break; } } void BinaryChartWriter::WriteCT_DLblPos(CDLblPos& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dlblposVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_Trendline(CT_Trendline& oVal) { if (oVal.m_name.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlineNAME); m_oBcw.m_oStream.WriteStringW4(*oVal.m_name); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlineSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_trendlineType.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlineTRENDLINETYPE); WriteCT_TrendlineType(*oVal.m_trendlineType); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_order.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlineORDER); WriteCT_UnsignedByte(*oVal.m_order); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_period.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlinePERIOD); WriteCT_UnsignedInt(*oVal.m_period); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_forward.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlineFORWARD); WriteCT_Double(*oVal.m_forward); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_backward.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlineBACKWARD); WriteCT_Double(*oVal.m_backward); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_intercept.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlineINTERCEPT); WriteCT_Double(*oVal.m_intercept); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_dispRSqr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlineDISPRSQR); WriteCT_Boolean(*oVal.m_dispRSqr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_dispEq.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlineDISPEQ); WriteCT_Boolean(*oVal.m_dispEq); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_trendlineLbl) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlineTRENDLINELBL); WriteCT_TrendlineLbl(*oVal.m_trendlineLbl); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_TrendlineType(CTrendlineType& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlinetypeVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_TrendlineLbl(CT_TrendlineLbl& oVal) { if (NULL != oVal.m_layout) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlinelblLAYOUT); WriteCT_Layout(*oVal.m_layout); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_tx) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlinelblTX); WriteCT_Tx(*oVal.m_tx); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_numFmt) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlinelblNUMFMT); WriteCT_NumFmt(*oVal.m_numFmt); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlinelblSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_trendlinelblTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_ErrBars(CT_ErrBars& oVal) { if (oVal.m_errDir.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_errbarsERRDIR); WriteCT_ErrDir(*oVal.m_errDir); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_errBarType.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_errbarsERRBARTYPE); WriteCT_ErrBarType(*oVal.m_errBarType); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_errValType.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_errbarsERRVALTYPE); WriteCT_ErrValType(*oVal.m_errValType); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_noEndCap.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_errbarsNOENDCAP); WriteCT_Boolean(*oVal.m_noEndCap); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_plus) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_errbarsPLUS); WriteCT_NumDataSource(*oVal.m_plus); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_minus) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_errbarsMINUS); WriteCT_NumDataSource(*oVal.m_minus); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_val.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_errbarsVAL); WriteCT_Double(*oVal.m_val); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_errbarsSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_ErrDir(CErrDir& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_errdirVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_ErrBarType(CErrBarType& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_errbartypeVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_ErrValType(CErrValType& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_errvaltypeVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_NumDataSource(CT_NumDataSource& oVal) { if (NULL != oVal.m_numLit) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numdatasourceNUMLIT); WriteCT_NumData(*oVal.m_numLit); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_numRef) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numdatasourceNUMREF); WriteCT_NumRef(*oVal.m_numRef); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_NumData(CT_NumData& oVal) { if (oVal.m_formatCode.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numdataFORMATCODE); m_oBcw.m_oStream.WriteStringW4(*oVal.m_formatCode); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_ptCount.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numdataPTCOUNT); WriteCT_UnsignedInt(*oVal.m_ptCount); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_pt.size(); i < length; ++i) { CT_NumVal* pVal = oVal.m_pt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numdataPT); WriteCT_NumVal(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_NumVal(CT_NumVal& oVal) { if (oVal.m_v.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numvalV); m_oBcw.m_oStream.WriteStringW4(*oVal.m_v); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numvalIDX); m_oBcw.m_oStream.WriteLONG(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_formatCode.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numvalFORMATCODE); m_oBcw.m_oStream.WriteStringW4(*oVal.m_formatCode); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_NumRef(CT_NumRef& oVal) { if (oVal.m_f.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numrefF); m_oBcw.m_oStream.WriteStringW4(*oVal.m_f); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_numCache) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_numrefNUMCACHE); WriteCT_NumData(*oVal.m_numCache); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_AxDataSource(CT_AxDataSource& oVal) { if (NULL != oVal.m_multiLvlStrRef) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_axdatasourceMULTILVLSTRREF); WriteCT_MultiLvlStrRef(*oVal.m_multiLvlStrRef); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_numLit) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_axdatasourceNUMLIT); WriteCT_NumData(*oVal.m_numLit); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_numRef) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_axdatasourceNUMREF); WriteCT_NumRef(*oVal.m_numRef); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_strLit) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_axdatasourceSTRLIT); WriteCT_StrData(*oVal.m_strLit); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_strRef) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_axdatasourceSTRREF); WriteCT_StrRef(*oVal.m_strRef); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_MultiLvlStrRef(CT_MultiLvlStrRef& oVal) { if (oVal.m_f.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_multilvlstrrefF); m_oBcw.m_oStream.WriteStringW4(*oVal.m_f); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_multiLvlStrCache) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_multilvlstrrefMULTILVLSTRCACHE); WriteCT_MultiLvlStrData(*oVal.m_multiLvlStrCache); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_lvl(CT_lvl& oVal) { for(size_t i = 0, length = oVal.m_pt.size(); i < length; ++i) { CT_StrVal* pVal = oVal.m_pt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lvlPT); WriteCT_StrVal(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_MultiLvlStrData(CT_MultiLvlStrData& oVal) { if (oVal.m_ptCount.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_multilvlstrdataPTCOUNT); WriteCT_UnsignedInt(*oVal.m_ptCount); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_lvl.size(); i < length; ++i) { CT_lvl* pVal = oVal.m_lvl[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_multilvlstrdataLVL); WriteCT_lvl(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_BubbleChart(CT_BubbleChart& oVal) { if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubblechartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_BubbleSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubblechartSER); WriteCT_BubbleSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubblechartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_bubble3D.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubblechartBUBBLE3D); WriteCT_Boolean(*oVal.m_bubble3D); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_bubbleScale.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubblechartBUBBLESCALE); WriteCT_String(*oVal.m_bubbleScale); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_showNegBubbles.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubblechartSHOWNEGBUBBLES); WriteCT_Boolean(*oVal.m_showNegBubbles); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_sizeRepresents.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubblechartSIZEREPRESENTS); WriteCT_SizeRepresents(*oVal.m_sizeRepresents); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bubblechartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_bandFmts(CT_bandFmts& oVal) { for(size_t i = 0, length = oVal.m_bandFmt.size(); i < length; ++i) { CT_BandFmt* pVal = oVal.m_bandFmt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bandfmtsBANDFMT); WriteCT_BandFmt(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_Surface3DChart(CT_Surface3DChart& oVal) { if (oVal.m_wireframe.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surface3dchartWIREFRAME); WriteCT_Boolean(*oVal.m_wireframe); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_SurfaceSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surface3dchartSER); WriteCT_SurfaceSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_bandFmts) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surface3dchartBANDFMTS); WriteCT_bandFmts(*oVal.m_bandFmts); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surface3dchartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_SurfaceSer(CT_SurfaceSer& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfaceserIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_order.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfaceserORDER); WriteCT_UnsignedInt(*oVal.m_order); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_tx) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfaceserTX); WriteCT_SerTx(*oVal.m_tx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfaceserSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_cat) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfaceserCAT); WriteCT_AxDataSource(*oVal.m_cat); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_val) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfaceserVAL); WriteCT_NumDataSource(*oVal.m_val); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_BandFmt(CT_BandFmt& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bandfmtIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bandfmtSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_SurfaceChart(CT_SurfaceChart& oVal) { if (oVal.m_wireframe.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfacechartWIREFRAME); WriteCT_Boolean(*oVal.m_wireframe); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_SurfaceSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfacechartSER); WriteCT_SurfaceSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_bandFmts) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfacechartBANDFMTS); WriteCT_bandFmts(*oVal.m_bandFmts); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfacechartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_SplitType(CSplitType& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_splittypeVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_OfPieType(COfPieType& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ofpietypeVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_custSplit(CT_custSplit& oVal) { for(size_t i = 0, length = oVal.m_secondPiePt.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_custsplitSECONDPIEPT); WriteCT_UnsignedInt(oVal.m_secondPiePt[i]); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_OfPieChart(CT_OfPieChart& oVal) { if (oVal.m_ofPieType.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ofpiechartOFPIETYPE); WriteCT_OfPieType(*oVal.m_ofPieType); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ofpiechartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_PieSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ofpiechartSER); WriteCT_PieSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ofpiechartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_gapWidth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ofpiechartGAPWIDTH); WriteCT_String(*oVal.m_gapWidth); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_splitType.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ofpiechartSPLITTYPE); WriteCT_SplitType(*oVal.m_splitType); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_splitPos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ofpiechartSPLITPOS); WriteCT_Double(*oVal.m_splitPos); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_custSplit) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ofpiechartCUSTSPLIT); WriteCT_custSplit(*oVal.m_custSplit); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_secondPieSize.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ofpiechartSECONDPIESIZE); WriteCT_String(*oVal.m_secondPieSize); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_serLines.size(); i < length; ++i) { CT_ChartLines* pVal = oVal.m_serLines[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_ofpiechartSERLINES); WriteCT_ChartLines(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_PieSer(CT_PieSer& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pieserIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_order.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pieserORDER); WriteCT_UnsignedInt(*oVal.m_order); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_tx) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pieserTX); WriteCT_SerTx(*oVal.m_tx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pieserSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_explosion.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pieserEXPLOSION); WriteCT_UnsignedInt(*oVal.m_explosion); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_dPt.size(); i < length; ++i) { CT_DPt* pVal = oVal.m_dPt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pieserDPT); WriteCT_DPt(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pieserDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_cat) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pieserCAT); WriteCT_AxDataSource(*oVal.m_cat); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_val) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pieserVAL); WriteCT_NumDataSource(*oVal.m_val); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_Bar3DChart(CT_Bar3DChart& oVal) { if (oVal.m_barDir.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bar3dchartBARDIR); WriteCT_BarDir(*oVal.m_barDir); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_grouping.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bar3dchartGROUPING); WriteCT_BarGrouping(*oVal.m_grouping); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bar3dchartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_BarSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bar3dchartSER); WriteCT_BarSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bar3dchartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_gapWidth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bar3dchartGAPWIDTH); WriteCT_String(*oVal.m_gapWidth); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_gapDepth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bar3dchartGAPDEPTH); WriteCT_String(*oVal.m_gapDepth); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_shape.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bar3dchartSHAPE); WriteCT_Shape(*oVal.m_shape); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bar3dchartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_BarDir(CBarDir& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bardirVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_BarGrouping(CBarGrouping& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_bargroupingVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_BarSer(CT_BarSer& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_order.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserORDER); WriteCT_UnsignedInt(*oVal.m_order); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_tx) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserTX); WriteCT_SerTx(*oVal.m_tx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_invertIfNegative.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserINVERTIFNEGATIVE); WriteCT_Boolean(*oVal.m_invertIfNegative); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_pictureOptions) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserPICTUREOPTIONS); WriteCT_PictureOptions(*oVal.m_pictureOptions); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_dPt.size(); i < length; ++i) { CT_DPt* pVal = oVal.m_dPt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserDPT); WriteCT_DPt(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_trendline.size(); i < length; ++i) { CT_Trendline* pVal = oVal.m_trendline[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserTRENDLINE); WriteCT_Trendline(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_errBars) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserERRBARS); WriteCT_ErrBars(*oVal.m_errBars); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_cat) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserCAT); WriteCT_AxDataSource(*oVal.m_cat); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_val) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserVAL); WriteCT_NumDataSource(*oVal.m_val); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_shape.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barserSHAPE); WriteCT_Shape(*oVal.m_shape); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_Shape(CShapeType& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_shapeVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_BarChart(CT_BarChart& oVal) { if (oVal.m_barDir.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barchartBARDIR); WriteCT_BarDir(*oVal.m_barDir); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_grouping.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barchartGROUPING); WriteCT_BarGrouping(*oVal.m_grouping); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barchartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_BarSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barchartSER); WriteCT_BarSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barchartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_gapWidth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barchartGAPWIDTH); WriteCT_String(*oVal.m_gapWidth); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_overlap.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barchartOVERLAP); WriteCT_String(*oVal.m_overlap); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_serLines.size(); i < length; ++i) { CT_ChartLines* pVal = oVal.m_serLines[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barchartSERLINES); WriteCT_ChartLines(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } for (size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_barchartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_DoughnutChart(CT_DoughnutChart& oVal) { if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_doughnutchartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_PieSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_doughnutchartSER); WriteCT_PieSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_doughnutchartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_firstSliceAng.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_doughnutchartFIRSTSLICEANG); WriteCT_UnsignedInt(*oVal.m_firstSliceAng); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_holeSize.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_doughnutchartHOLESIZE); WriteCT_String(*oVal.m_holeSize); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_Pie3DChart(CT_Pie3DChart& oVal) { if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pie3dchartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_PieSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pie3dchartSER); WriteCT_PieSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pie3dchartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_PieChart(CT_PieChart& oVal) { if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_piechartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_PieSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_piechartSER); WriteCT_PieSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_piechartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_firstSliceAng.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_piechartFIRSTSLICEANG); WriteCT_UnsignedInt(*oVal.m_firstSliceAng); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_ScatterSer(CT_ScatterSer& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_order.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserORDER); WriteCT_UnsignedInt(*oVal.m_order); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_tx) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserTX); WriteCT_SerTx(*oVal.m_tx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_marker) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserMARKER); WriteCT_Marker(*oVal.m_marker); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_dPt.size(); i < length; ++i) { CT_DPt* pVal = oVal.m_dPt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserDPT); WriteCT_DPt(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_trendline.size(); i < length; ++i) { CT_Trendline* pVal = oVal.m_trendline[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserTRENDLINE); WriteCT_Trendline(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } for(size_t i = 0, length = oVal.m_errBars.size(); i < length; ++i) { CT_ErrBars* pVal = oVal.m_errBars[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserERRBARS); WriteCT_ErrBars(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_xVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserXVAL); WriteCT_AxDataSource(*oVal.m_xVal); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_yVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserYVAL); WriteCT_NumDataSource(*oVal.m_yVal); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_smooth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterserSMOOTH); WriteCT_Boolean(*oVal.m_smooth); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_ScatterStyle(CScatterStyle& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterstyleVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_ScatterChart(CT_ScatterChart& oVal) { if (oVal.m_scatterStyle.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterchartSCATTERSTYLE); WriteCT_ScatterStyle(*oVal.m_scatterStyle); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterchartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_ScatterSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterchartSER); WriteCT_ScatterSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterchartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_scatterchartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_RadarSer(CT_RadarSer& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarserIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_order.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarserORDER); WriteCT_UnsignedInt(*oVal.m_order); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_tx) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarserTX); WriteCT_SerTx(*oVal.m_tx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarserSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_marker) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarserMARKER); WriteCT_Marker(*oVal.m_marker); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_dPt.size(); i < length; ++i) { CT_DPt* pVal = oVal.m_dPt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarserDPT); WriteCT_DPt(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarserDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_cat) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarserCAT); WriteCT_AxDataSource(*oVal.m_cat); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_val) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarserVAL); WriteCT_NumDataSource(*oVal.m_val); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_RadarStyle(CRadarStyle& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarstyleVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_RadarChart(CT_RadarChart& oVal) { if (oVal.m_radarStyle.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarchartRADARSTYLE); WriteCT_RadarStyle(*oVal.m_radarStyle); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarchartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_RadarSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarchartSER); WriteCT_RadarSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarchartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_radarchartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_StockChart(CT_StockChart& oVal) { for(size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_LineSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_stockchartSER); WriteCT_LineSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_stockchartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_dropLines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_stockchartDROPLINES); WriteCT_ChartLines(*oVal.m_dropLines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_hiLowLines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_stockchartHILOWLINES); WriteCT_ChartLines(*oVal.m_hiLowLines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_upDownBars) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_stockchartUPDOWNBARS); WriteCT_UpDownBars(*oVal.m_upDownBars); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_stockchartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_LineSer(CT_LineSer& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_order.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserORDER); WriteCT_UnsignedInt(*oVal.m_order); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_tx) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserTX); WriteCT_SerTx(*oVal.m_tx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_marker) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserMARKER); WriteCT_Marker(*oVal.m_marker); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_dPt.size(); i < length; ++i) { CT_DPt* pVal = oVal.m_dPt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserDPT); WriteCT_DPt(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_trendline.size(); i < length; ++i) { CT_Trendline* pVal = oVal.m_trendline[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserTRENDLINE); WriteCT_Trendline(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_errBars) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserERRBARS); WriteCT_ErrBars(*oVal.m_errBars); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_cat) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserCAT); WriteCT_AxDataSource(*oVal.m_cat); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_val) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserVAL); WriteCT_NumDataSource(*oVal.m_val); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_smooth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_lineserSMOOTH); WriteCT_Boolean(*oVal.m_smooth); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_UpDownBars(CT_UpDownBars& oVal) { if (oVal.m_gapWidth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_updownbarsGAPWIDTH); WriteCT_String(*oVal.m_gapWidth); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_upBars) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_updownbarsUPBARS); WriteCT_UpDownBar(*oVal.m_upBars); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_downBars) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_updownbarsDOWNBARS); WriteCT_UpDownBar(*oVal.m_downBars); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_UpDownBar(CT_UpDownBar& oVal) { if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_updownbarSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_Line3DChart(CT_Line3DChart& oVal) { if (oVal.m_grouping.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_line3dchartGROUPING); WriteCT_Grouping(*oVal.m_grouping); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_line3dchartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_LineSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_line3dchartSER); WriteCT_LineSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_line3dchartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_dropLines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_line3dchartDROPLINES); WriteCT_ChartLines(*oVal.m_dropLines); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_gapDepth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_line3dchartGAPDEPTH); WriteCT_String(*oVal.m_gapDepth); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_line3dchartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_Grouping(CGrouping& oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_groupingVAL); m_oBcw.m_oStream.WriteBYTE((BYTE)oVal.GetValue()); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_LineChart(CT_LineChart& oVal) { if (oVal.m_grouping.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_linechartGROUPING); WriteCT_Grouping(*oVal.m_grouping); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_linechartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_LineSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_linechartSER); WriteCT_LineSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_linechartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_dropLines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_linechartDROPLINES); WriteCT_ChartLines(*oVal.m_dropLines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_hiLowLines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_linechartHILOWLINES); WriteCT_ChartLines(*oVal.m_hiLowLines); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_upDownBars) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_linechartUPDOWNBARS); WriteCT_UpDownBars(*oVal.m_upDownBars); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_marker.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_linechartMARKER); WriteCT_Boolean(*oVal.m_marker); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_smooth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_linechartSMOOTH); WriteCT_Boolean(*oVal.m_smooth); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_linechartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_Area3DChart(CT_Area3DChart& oVal) { if (oVal.m_grouping.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_area3dchartGROUPING); WriteCT_Grouping(*oVal.m_grouping); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_area3dchartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_AreaSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_area3dchartSER); WriteCT_AreaSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_area3dchartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_dropLines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_area3dchartDROPLINES); WriteCT_ChartLines(*oVal.m_dropLines); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_gapDepth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_area3dchartGAPDEPTH); WriteCT_String(*oVal.m_gapDepth); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_area3dchartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_AreaSer(CT_AreaSer& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areaserIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_order.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areaserORDER); WriteCT_UnsignedInt(*oVal.m_order); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_tx) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areaserTX); WriteCT_SerTx(*oVal.m_tx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areaserSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_pictureOptions) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areaserPICTUREOPTIONS); WriteCT_PictureOptions(*oVal.m_pictureOptions); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_dPt.size(); i < length; ++i) { CT_DPt* pVal = oVal.m_dPt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areaserDPT); WriteCT_DPt(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areaserDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0, length = oVal.m_trendline.size(); i < length; ++i) { CT_Trendline* pVal = oVal.m_trendline[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areaserTRENDLINE); WriteCT_Trendline(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } for (size_t i = 0, length = oVal.m_errBars.size(); i < length; ++i) { CT_ErrBars* pVal = oVal.m_errBars[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areaserERRBARS); WriteCT_ErrBars(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_cat) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areaserCAT); WriteCT_AxDataSource(*oVal.m_cat); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_val) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areaserVAL); WriteCT_NumDataSource(*oVal.m_val); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_AreaChart(CT_AreaChart& oVal) { if (oVal.m_grouping.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areachartGROUPING); WriteCT_Grouping(*oVal.m_grouping); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_varyColors.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areachartVARYCOLORS); WriteCT_Boolean(*oVal.m_varyColors); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_ser.size(); i < length; ++i) { CT_AreaSer* pVal = oVal.m_ser[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areachartSER); WriteCT_AreaSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_dLbls) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areachartDLBLS); WriteCT_DLbls(*oVal.m_dLbls); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_dropLines) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areachartDROPLINES); WriteCT_ChartLines(*oVal.m_dropLines); m_oBcw.WriteItemEnd(nCurPos); } for(size_t i = 0, length = oVal.m_axId.size(); i < length; ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_areachartAXID); WriteCT_UnsignedInt(oVal.m_axId[i]); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_PlotArea(CT_PlotArea& oVal) { if (NULL != oVal.m_layout) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaLAYOUT); WriteCT_Layout(*oVal.m_layout); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < oVal.m_Items.size(); ++i) { ItemsChoiceType5 eType = *oVal.m_ItemsElementName0[i]; toBin(eType, oVal.m_Items[i]); } for(size_t i = 0, length = oVal.m_Items1.size(); i < length; ++i) { ItemsChoiceType6 eType = *oVal.m_ItemsElementName1[i]; toBin(eType, oVal.m_Items1[i]); } if (NULL != oVal.m_dTable) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaDTABLE); WriteCT_DTable(*oVal.m_dTable); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::toBin(ItemsChoiceType5 eType, void* pVal){ switch(eType) { case itemschoicetype5AREA3DCHART: { CT_Area3DChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaAREA3DCHART); WriteCT_Area3DChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5AREACHART: { CT_AreaChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaAREACHART); WriteCT_AreaChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5BAR3DCHART: { CT_Bar3DChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaBAR3DCHART); WriteCT_Bar3DChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5BARCHART: { CT_BarChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaBARCHART); WriteCT_BarChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5BUBBLECHART: { CT_BubbleChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaBUBBLECHART); WriteCT_BubbleChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5DOUGHNUTCHART: { CT_DoughnutChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaDOUGHNUTCHART); WriteCT_DoughnutChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5LINE3DCHART: { CT_Line3DChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaLINE3DCHART); WriteCT_Line3DChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5LINECHART: { CT_LineChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaLINECHART); WriteCT_LineChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5OFPIECHART: { CT_OfPieChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaOFPIECHART); WriteCT_OfPieChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5PIE3DCHART: { CT_Pie3DChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaPIE3DCHART); WriteCT_Pie3DChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5PIECHART: { CT_PieChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaPIECHART); WriteCT_PieChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5RADARCHART: { CT_RadarChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaRADARCHART); WriteCT_RadarChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5SCATTERCHART: { CT_ScatterChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaSCATTERCHART); WriteCT_ScatterChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5STOCKCHART: { CT_StockChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaSTOCKCHART); WriteCT_StockChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5SURFACE3DCHART: { CT_Surface3DChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaSURFACE3DCHART); WriteCT_Surface3DChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype5SURFACECHART: { CT_SurfaceChart* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaSURFACECHART); WriteCT_SurfaceChart(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; } } void BinaryChartWriter::toBin(ItemsChoiceType6 eType, void* pVal){ switch(eType) { case itemschoicetype6CATAX: { CT_CatAx* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaCATAX); WriteCT_CatAx(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype6DATEAX: { CT_DateAx* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaDATEAX); WriteCT_DateAx(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype6SERAX: { CT_SerAx* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaSERAX); WriteCT_SerAx(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; case itemschoicetype6VALAX: { CT_ValAx* pTypeVal = static_cast(pVal); if (NULL != pTypeVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_plotareaVALAX); WriteCT_ValAx(*pTypeVal); m_oBcw.WriteItemEnd(nCurPos); } } break; } } void BinaryChartWriter::WriteCT_Surface(CT_Surface& oVal) { if (oVal.m_thickness.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfaceTHICKNESS); WriteCT_String(*oVal.m_thickness); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfaceSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_pictureOptions) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_surfacePICTUREOPTIONS); WriteCT_PictureOptions(*oVal.m_pictureOptions); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_View3D(CT_View3D& oVal) { if (oVal.m_rotX.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_view3dROTX); WriteCT_SignedByte(*oVal.m_rotX); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_hPercent.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_view3dHPERCENT); WriteCT_String(*oVal.m_hPercent); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_rotY.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_view3dROTY); WriteCT_UnsignedInt(*oVal.m_rotY); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_depthPercent.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_view3dDEPTHPERCENT); WriteCT_String(*oVal.m_depthPercent); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_rAngAx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_view3dRANGAX); WriteCT_Boolean(*oVal.m_rAngAx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_perspective.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_view3dPERSPECTIVE); WriteCT_UnsignedByte(*oVal.m_perspective); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_PivotFmt(CT_PivotFmt& oVal) { if (oVal.m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pivotfmtIDX); WriteCT_UnsignedInt(*oVal.m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pivotfmtSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pivotfmtTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_marker) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pivotfmtMARKER); WriteCT_Marker(*oVal.m_marker); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_dLbl) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pivotfmtDLBL); WriteCT_DLbl(*oVal.m_dLbl); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_pivotFmts(CT_pivotFmts& oVal) { for(size_t i = 0, length = oVal.m_pivotFmt.size(); i < length; ++i) { CT_PivotFmt* pVal = oVal.m_pivotFmt[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pivotfmtsPIVOTFMT); WriteCT_PivotFmt(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_Chart(CT_Chart& oVal) { if (NULL != oVal.m_title) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartTITLE); WriteCT_Title(*oVal.m_title); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_autoTitleDeleted.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartAUTOTITLEDELETED); WriteCT_Boolean(*oVal.m_autoTitleDeleted); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_pivotFmts) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartPIVOTFMTS); WriteCT_pivotFmts(*oVal.m_pivotFmts); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_view3D) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartVIEW3D); WriteCT_View3D(*oVal.m_view3D); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_floor) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartFLOOR); WriteCT_Surface(*oVal.m_floor); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_sideWall) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartSIDEWALL); WriteCT_Surface(*oVal.m_sideWall); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_backWall) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartBACKWALL); WriteCT_Surface(*oVal.m_backWall); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_plotArea) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartPLOTAREA); WriteCT_PlotArea(*oVal.m_plotArea); m_oBcw.WriteItemEnd(nCurPos); } if (NULL != oVal.m_legend) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartLEGEND); WriteCT_Legend(*oVal.m_legend); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_plotVisOnly.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartPLOTVISONLY); WriteCT_Boolean(*oVal.m_plotVisOnly); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_dispBlanksAs.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartDISPBLANKSAS); WriteCT_DispBlanksAs(*oVal.m_dispBlanksAs); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_showDLblsOverMax.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartSHOWDLBLSOVERMAX); WriteCT_Boolean(*oVal.m_showDLblsOverMax); m_oBcw.WriteItemEnd(nCurPos); } WriteExtensions(oVal.m_extLst.GetPointer()); } void BinaryChartWriter::WriteCT_Protection(CT_Protection& oVal) { if (oVal.m_chartObject.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_protectionCHARTOBJECT); WriteCT_Boolean(*oVal.m_chartObject); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_data.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_protectionDATA); WriteCT_Boolean(*oVal.m_data); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_formatting.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_protectionFORMATTING); WriteCT_Boolean(*oVal.m_formatting); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_selection.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_protectionSELECTION); WriteCT_Boolean(*oVal.m_selection); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_userInterface.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_protectionUSERINTERFACE); WriteCT_Boolean(*oVal.m_userInterface); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_PivotSource(CT_PivotSource& oVal) { if (oVal.m_name.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pivotsourceNAME); m_oBcw.m_oStream.WriteStringW4(*oVal.m_name); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_fmtId.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_pivotsourceFMTID); WriteCT_UnsignedInt(*oVal.m_fmtId); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_Style(CT_Style& oVal) { if (oVal.m_val.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(oVal.m_namespace == L"c14" ? c_oserct_style1VAL : c_oserct_styleVAL); m_oBcw.m_oStream.WriteBYTE(*oVal.m_val); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteAlternateContent(AlternateContent& oVal) { for (size_t i = 0, length = oVal.m_Choice.size(); i < length; ++i) { AlternateContentChoice* pVal = oVal.m_Choice[i]; if (NULL != pVal) { int nCurPos = m_oBcw.WriteItemStart(c_oseralternatecontentCHOICE); WriteAlternateContentChoice(*pVal); m_oBcw.WriteItemEnd(nCurPos); } } if (NULL != oVal.m_Fallback) { int nCurPos = m_oBcw.WriteItemStart(c_oseralternatecontentFALLBACK); WriteAlternateContentFallback(*oVal.m_Fallback); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteAlternateContentChoice(AlternateContentChoice& oVal) { if (NULL != oVal.m_style) { int nCurPos = m_oBcw.WriteItemStart(c_oseralternatecontentchoiceSTYLE); WriteCT_Style(*oVal.m_style); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_Requires.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oseralternatecontentchoiceREQUIRES); m_oBcw.m_oStream.WriteStringW4(*oVal.m_Requires); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteAlternateContentFallback(AlternateContentFallback& oVal) { if (NULL != oVal.m_style) { int nCurPos = m_oBcw.WriteItemStart(c_oseralternatecontentfallbackSTYLE); WriteCT_Style(*oVal.m_style); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartStyle(OOX::Spreadsheet::CChartStyleFile & oVal) { if (oVal.m_oChartStyle.m_id.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleID); m_oBcw.m_oStream.WriteULONG(*oVal.m_oChartStyle.m_id); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < oVal.m_oChartStyle.m_arStyleEntries.size(); ++i) { if (!oVal.m_oChartStyle.m_arStyleEntries[i]) continue; int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleENTRY); WriteCT_StyleEntry(*oVal.m_oChartStyle.m_arStyleEntries[i]); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_oChartStyle.m_dataPointMarkerLayout.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleMARKERLAYOUT); WriteCT_MarkerLayout(*oVal.m_oChartStyle.m_dataPointMarkerLayout); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_StyleEntry(OOX::Spreadsheet::ChartEx::CStyleEntry & oVal) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleENTRYTYPE); m_oBcw.m_oStream.WriteBYTE(oVal.getTypeStyleEntry()); m_oBcw.WriteItemEnd(nCurPos); nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleLNREF); m_oBcw.m_oStream.WriteRecord1(0, oVal.m_lnRef); m_oBcw.WriteItemEnd(nCurPos); nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleFILLREF); m_oBcw.m_oStream.WriteRecord1(0, oVal.m_fillRef); m_oBcw.WriteItemEnd(nCurPos); nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleEFFECTREF); m_oBcw.m_oStream.WriteRecord1(0, oVal.m_effectRef); m_oBcw.WriteItemEnd(nCurPos); nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleFONTREF); m_oBcw.m_oStream.WriteRecord1(0, oVal.m_fontRef); m_oBcw.WriteItemEnd(nCurPos); if (oVal.m_defRPr.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleDEFPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_defRPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_bodyPr.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleBODYPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_bodyPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_lineWidthScale.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleLINEWIDTH); m_oBcw.m_oStream.WriteDoubleReal(*oVal.m_lineWidthScale); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_MarkerLayout(OOX::Spreadsheet::ChartEx::CMarkerLayout & oVal) { if (oVal.m_symbol.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleMARKERSYMBOL); m_oBcw.m_oStream.WriteBYTE(oVal.m_symbol->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_size.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartstyleMARKERSIZE); m_oBcw.m_oStream.WriteULONG(*oVal.m_size); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartColor(OOX::Spreadsheet::CChartColorsFile & oVal) { if (oVal.m_oColorStyle.m_id.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartcolorsID); m_oBcw.m_oStream.WriteULONG(*oVal.m_oColorStyle.m_id); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_oColorStyle.m_meth.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartcolorsMETH); m_oBcw.m_oStream.WriteStringW4(*oVal.m_oColorStyle.m_meth); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < oVal.m_oColorStyle.m_arrItems.size(); ++i) { OOX::Spreadsheet::ChartEx::CVariation *pVariation = dynamic_cast(oVal.m_oColorStyle.m_arrItems[i]); if (pVariation) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartcolorsVARIATION); WriteCT_Variation(*pVariation); m_oBcw.WriteItemEnd(nCurPos); } else { PPTX::Logic::UniColor *pColor = dynamic_cast(oVal.m_oColorStyle.m_arrItems[i]); if (pColor) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartcolorsCOLOR); m_oBcw.m_oStream.WriteRecord1(0, *pColor); m_oBcw.WriteItemEnd(nCurPos); } } } } void BinaryChartWriter::WriteCT_Variation(OOX::Spreadsheet::ChartEx::CVariation & oVal) { for (size_t i = 0; i < oVal.m_arrItems.size(); ++i) { if (!oVal.m_arrItems[i]) continue; int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartcolorsEFFECT); m_oBcw.m_oStream.WriteRecord1(0, *oVal.m_arrItems[i]); m_oBcw.WriteItemEnd(nCurPos); } } //------------------------------------------------------------------------------------------------------------- void BinaryChartWriter::WriteCT_ChartExFile(OOX::Spreadsheet::CChartExFile & oChartFile) { OOX::Spreadsheet::ChartEx::CChartSpace & oVal = oChartFile.m_oChartSpace; { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSpaceCHARTDATA); WriteCT_ChartExChartData(&oVal.m_chartData); m_oBcw.WriteItemEnd(nCurPos); } { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSpaceCHART); WriteCT_ChartExChart(&oVal.m_chart); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_oClrMapOvr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSpaceCLRMAPOVR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_oClrMapOvr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSpaceSPPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (oVal.m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSpaceTXPR); m_oBcw.m_oStream.WriteRecord2(0, oVal.m_txPr); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExChartData(OOX::Spreadsheet::ChartEx::CChartData *pVal) { if (!pVal) return; for (size_t i = 0; i < pVal->m_arData.size(); ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDATA); WriteCT_ChartExData(pVal->m_arData[i]); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_externalData.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExEXTERNALDATA); WriteCT_ChartExExternalData(pVal->m_externalData.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExChart(OOX::Spreadsheet::ChartEx::CChart *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExChartPLOTAREA); WriteCT_ChartExPlotArea(&pVal->m_plotArea); m_oBcw.WriteItemEnd(nCurPos); if (pVal->m_title.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExChartTITLE); WriteCT_ChartExTitle(pVal->m_title.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_legend.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExChartLEGEND); WriteCT_ChartExLegend(pVal->m_legend.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExData(OOX::Spreadsheet::ChartEx::CData *pVal) { if (!pVal) return; if (pVal->m_id.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataID); m_oBcw.m_oStream.WriteULONG(*pVal->m_id); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < pVal->m_arDimension.size(); ++i) { OOX::Spreadsheet::ChartEx::CStrDimension *pStr = dynamic_cast(pVal->m_arDimension[i]); if (pStr) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataSTRDIMENSION); WriteCT_ChartExDataDimension(pStr); m_oBcw.WriteItemEnd(nCurPos); } else { OOX::Spreadsheet::ChartEx::CNumDimension *pNum = dynamic_cast(pVal->m_arDimension[i]); if (pNum) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataNUMDIMENSION); WriteCT_ChartExDataDimension(pNum); m_oBcw.WriteItemEnd(nCurPos); } } } } void BinaryChartWriter::WriteCT_ChartExDataDimension(OOX::Spreadsheet::ChartEx::CStrDimension *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataDimensionTYPE); m_oBcw.m_oStream.WriteBYTE(pVal->m_type->GetValue()); m_oBcw.WriteItemEnd(nCurPos); if (pVal->m_f.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataDimensionFORMULA); WriteCT_ChartExFormula(pVal->m_f.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_nf.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataDimensionNF); m_oBcw.m_oStream.WriteStringW4(*pVal->m_nf); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < pVal->m_levelData.size(); ++i) { if (pVal->m_levelData[i]) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataDimensionSTRINGLEVEL); WriteCT_ChartExStringLevel(pVal->m_levelData[i]); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_ChartExDataDimension(OOX::Spreadsheet::ChartEx::CNumDimension *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataDimensionTYPE); m_oBcw.m_oStream.WriteBYTE(pVal->m_type->GetValue()); m_oBcw.WriteItemEnd(nCurPos); if (pVal->m_f.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataDimensionFORMULA); WriteCT_ChartExFormula(pVal->m_f.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_nf.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataDimensionNF); m_oBcw.m_oStream.WriteStringW4(*pVal->m_nf); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < pVal->m_levelData.size(); ++i) { if (pVal->m_levelData[i]) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataDimensionNUMERICLEVEL); WriteCT_ChartExNumericLevel(pVal->m_levelData[i]); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_ChartExExternalData(OOX::Spreadsheet::ChartEx::CExternalData *pVal) { if (!pVal) return; if (pVal->m_autoUpdate.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExExternalAUTOUPDATE); m_oBcw.m_oStream.WriteBOOL(*pVal->m_autoUpdate); m_oBcw.WriteItemEnd(nCurPos); } //if (NULL != pVal.m_id) - выше } void BinaryChartWriter::WriteCT_ChartExFormula(OOX::Spreadsheet::ChartEx::CFormula *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExFormulaCONTENT); m_oBcw.m_oStream.WriteStringW4(pVal->m_content); m_oBcw.WriteItemEnd(nCurPos); if (pVal->m_dir.IsInit()) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExFormulaDIRECTION); m_oBcw.m_oStream.WriteBYTE(pVal->m_dir->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExStringLevel(OOX::Spreadsheet::ChartEx::CStringLevel *pVal) { if (!pVal) return; if (pVal->m_name.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLevelNAME); m_oBcw.m_oStream.WriteStringW4(*pVal->m_name); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_ptCount.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLevelCOUNT); m_oBcw.m_oStream.WriteINT(*pVal->m_ptCount); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < pVal->m_arPt.size(); ++i) { if (pVal->m_arPt[i]) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLevelPT); WriteCT_ChartExStringValue(pVal->m_arPt[i]); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_ChartExNumericLevel(OOX::Spreadsheet::ChartEx::CNumericLevel *pVal) { if (!pVal) return; if (pVal->m_name.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLevelNAME); m_oBcw.m_oStream.WriteStringW4(*pVal->m_name); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_ptCount.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLevelCOUNT); m_oBcw.m_oStream.WriteINT(*pVal->m_ptCount); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_formatCode.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLevelFORMATCODE); m_oBcw.m_oStream.WriteStringW4(*pVal->m_formatCode); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < pVal->m_arPt.size(); ++i) { if (pVal->m_arPt[i]) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLevelPT); WriteCT_ChartExNumericValue(pVal->m_arPt[i]); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_ChartExStringValue(OOX::Spreadsheet::ChartEx::CStringValue *pVal) { if (!pVal) return; if (pVal->m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataValueIDX); m_oBcw.m_oStream.WriteLONG(*pVal->m_idx); m_oBcw.WriteItemEnd(nCurPos); } int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataValueCONTENT); m_oBcw.m_oStream.WriteStringW4(pVal->m_content); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_ChartExNumericValue(OOX::Spreadsheet::ChartEx::CNumericValue *pVal) { if (!pVal) return; if (pVal->m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataValueIDX); m_oBcw.m_oStream.WriteLONG(*pVal->m_idx); m_oBcw.WriteItemEnd(nCurPos); } int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataValueCONTENT); m_oBcw.m_oStream.WriteDoubleReal(*pVal->m_content); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCT_ChartExPlotArea(OOX::Spreadsheet::ChartEx::CPlotArea*pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExChartAREAREGION); WriteCT_ChartExPlotAreaRegion(&pVal->m_plotAreaRegion); m_oBcw.WriteItemEnd(nCurPos); for (size_t i = 0; i < pVal->m_arAxis.size(); ++i) { if (pVal->m_arAxis[i]) { nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExChartAXIS); WriteCT_ChartExAxis(pVal->m_arAxis[i]); m_oBcw.WriteItemEnd(nCurPos); } } if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExChartSPPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExTitle(OOX::Spreadsheet::ChartEx::CTitle *pVal) { if (!pVal) return; if (pVal->m_tx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExTitleTX); WriteCT_ChartExText(pVal->m_tx.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExTitleTXPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_txPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExTitleSPPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_pos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExTitlePOS); m_oBcw.m_oStream.WriteBYTE(pVal->m_pos->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_align.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExTitleALIGN); m_oBcw.m_oStream.WriteBYTE(pVal->m_align->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_overlay.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExTitleOVERLAY); m_oBcw.m_oStream.WriteBOOL(*pVal->m_overlay); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExLegend(OOX::Spreadsheet::ChartEx::CLegend *pVal) { if (!pVal) return; if (pVal->m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExLegendTXPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_txPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExLegendSPPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_pos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExLegendPOS); m_oBcw.m_oStream.WriteBYTE(pVal->m_pos->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_align.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExLegendALIGN); m_oBcw.m_oStream.WriteBYTE(pVal->m_align->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_overlay.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExLegendOVERLAY); m_oBcw.m_oStream.WriteBOOL(*pVal->m_overlay); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExPlotAreaRegion(OOX::Spreadsheet::ChartEx::CPlotAreaRegion *pVal) { if (!pVal) return; if (pVal->m_plotSurface.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAreaPLOTSURFACE); WriteCT_ChartExPlotSurface(pVal->m_plotSurface.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < pVal->m_arSeries.size(); ++i) { if (pVal->m_arSeries[i]) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAreaSERIES); WriteCT_ChartExSeries(pVal->m_arSeries[i]); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_ChartExAxis(OOX::Spreadsheet::ChartEx::CAxis *pVal) { if (pVal->m_id.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisID); m_oBcw.m_oStream.WriteLONG(*pVal->m_id); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_hidden.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisHIDDEN); m_oBcw.m_oStream.WriteBOOL(*pVal->m_hidden); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_catScaling.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisCATSCALING); WriteCT_ChartExCatScaling(pVal->m_catScaling.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_valScaling.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisVALSCALING); WriteCT_ChartExValScaling(pVal->m_valScaling.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_title.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisTITLE); WriteCT_ChartExTitle(pVal->m_title.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_units.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisUNIT); WriteCT_ChartExAxisUnit(pVal->m_units.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_numFmt.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisNUMFMT); WriteCT_ChartExNumberFormat(pVal->m_numFmt.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_majorTickMarks.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisMAJORTICK); WriteCT_ChartExTickMarks(pVal->m_majorTickMarks.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_minorTickMarks.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisMINORTICK); WriteCT_ChartExTickMarks(pVal->m_minorTickMarks.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_majorGridlines.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisMAJORGRID); WriteCT_ChartExGridlines(pVal->m_majorGridlines.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_minorGridlines.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisMINORGRID); WriteCT_ChartExGridlines(pVal->m_minorGridlines.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_tickLabels.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisTICKLABELS); m_oBcw.m_oStream.WriteBOOL(*pVal->m_tickLabels); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisTXPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_txPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisSPPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExText(OOX::Spreadsheet::ChartEx::CText *pVal) { if (!pVal) return; if (pVal->m_oRich.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExTextRICH); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_oRich); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_txData.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExTextDATA); WriteCT_ChartExTextData(pVal->m_txData.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExTextData(OOX::Spreadsheet::ChartEx::CTextData *pVal) { if (!pVal) return; if (pVal->m_oF.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExTextDataFORMULA); WriteCT_ChartExFormula(pVal->m_oF.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_oV.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExTextDataVALUE); m_oBcw.m_oStream.WriteStringW4(*pVal->m_oV); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExPlotSurface(OOX::Spreadsheet::ChartEx::CPlotSurface *pVal) { if (!pVal) return; if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExPlotSurfaceSPPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExSeries(OOX::Spreadsheet::ChartEx::CSeries *pVal) { for (size_t i = 0; i < pVal->m_arDataPt.size(); ++i) { if (pVal->m_arDataPt[i]) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesDATAPT); WriteCT_ChartExDataPoint(pVal->m_arDataPt[i]); m_oBcw.WriteItemEnd(nCurPos); } } if (pVal->m_dataLabels.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesDATALABELS); WriteCT_ChartExDataLabels(pVal->m_dataLabels.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_layoutPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesLAYOUTPROPS); WriteCT_ChartExSeriesLayoutProperties(pVal->m_layoutPr.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_tx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesTEXT); WriteCT_ChartExText(pVal->m_tx.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < pVal->m_arAxisId.size(); ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesAXIS); m_oBcw.m_oStream.WriteULONG(pVal->m_arAxisId[i]); m_oBcw.WriteItemEnd(nCurPos); } if ((pVal->m_dataId.IsInit()) && (pVal->m_dataId->m_oVal.IsInit())) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesDATAID); m_oBcw.m_oStream.WriteLONG(*(pVal->m_dataId->m_oVal)); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesSPPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_oLayoutId.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesLAYOUTID); m_oBcw.m_oStream.WriteBYTE(pVal->m_oLayoutId->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_bHidden.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesHIDDEN); m_oBcw.m_oStream.WriteBOOL(*pVal->m_bHidden); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_nOwnerIdx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesOWNERIDX); m_oBcw.m_oStream.WriteLONG(*pVal->m_nOwnerIdx); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_nFormatIdx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesFORMATIDX); m_oBcw.m_oStream.WriteLONG(*pVal->m_nFormatIdx); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_sUniqueId.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesUNIQUEID); m_oBcw.m_oStream.WriteStringW4(*pVal->m_sUniqueId); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExDataPoint(OOX::Spreadsheet::ChartEx::CDataPoint *pVal) { if (pVal->m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataPointIDX); m_oBcw.m_oStream.WriteLONG(*pVal->m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataPointSPPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExDataLabels(OOX::Spreadsheet::ChartEx::CDataLabels *pVal) { if (pVal->m_pos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelsPOS); m_oBcw.m_oStream.WriteBYTE(pVal->m_pos->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_numFmt.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelsNUMFMT); WriteCT_ChartExNumberFormat(pVal->m_numFmt.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelsTXPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_txPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelsSPPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_visibility.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelsVISABILITIES); WriteCT_ChartExDataLabelVisibilities(pVal->m_visibility.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_separator.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelsSEPARATOR); m_oBcw.m_oStream.WriteStringW4(*pVal->m_separator); m_oBcw.WriteItemEnd(nCurPos); } for (size_t i = 0; i < pVal->m_arDataLabel.size(); ++i) { if (pVal->m_arDataLabel[i]) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelsDATALABEL); WriteCT_ChartExDataLabel(pVal->m_arDataLabel[i]); m_oBcw.WriteItemEnd(nCurPos); } } for (size_t i = 0; i < pVal->m_arDataLabelHidden.size(); ++i) { if (pVal->m_arDataLabelHidden[i]) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelsDATALABELHIDDEN); WriteCT_ChartExDataLabelHidden(pVal->m_arDataLabelHidden[i]); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_ChartExDataLabel(OOX::Spreadsheet::ChartEx::CDataLabel *pVal) { if (pVal->m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelIDX); m_oBcw.m_oStream.WriteLONG(*pVal->m_idx); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_dataLabelPos.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelPOS); m_oBcw.m_oStream.WriteBYTE(pVal->m_dataLabelPos->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_numFmt.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelNUMFMT); WriteCT_ChartExNumberFormat(pVal->m_numFmt.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelTXPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_txPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelSPPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_separator.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelSEPARATOR); m_oBcw.m_oStream.WriteStringW4(*pVal->m_separator); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_visibility.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelVISABILITIES); WriteCT_ChartExDataLabelVisibilities(pVal->m_visibility.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExDataLabelHidden(OOX::Spreadsheet::ChartEx::CDataLabelHidden *pVal) { if (pVal->m_idx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelHiddenIDX); m_oBcw.m_oStream.WriteLONG(*pVal->m_idx); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExSeriesLayoutProperties(OOX::Spreadsheet::ChartEx::CSeriesLayoutProperties *pVal) { if ((pVal->m_parentLabelLayout.IsInit()) && (pVal->m_parentLabelLayout->m_oVal.IsInit())) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesLayoutPARENT); m_oBcw.m_oStream.WriteBYTE(pVal->m_parentLabelLayout->m_oVal->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if ((pVal->m_regionLabelLayout.IsInit()) && (pVal->m_regionLabelLayout->m_oVal.IsInit())) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesLayoutREGION); m_oBcw.m_oStream.WriteBYTE(pVal->m_regionLabelLayout->m_oVal->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_visibility.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesLayoutVISABILITIES); WriteCT_ChartExSeriesElementVisibilities(pVal->m_visibility.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_aggregation.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesLayoutAGGREGATION); m_oBcw.m_oStream.WriteBOOL(*pVal->m_aggregation); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_binning.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesLayoutBINNING); WriteCT_ChartExBinning(pVal->m_binning.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_statistics.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesLayoutSTATISTIC); WriteCT_ChartExStatistics(pVal->m_statistics.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_subtotals.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesLayoutSUBTOTALS); WriteCT_ChartExSubtotals(pVal->m_subtotals.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExNumberFormat(OOX::Spreadsheet::ChartEx::CNumberFormat *pVal) { if (pVal->m_formatCode.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExNumberFormatFORMATCODE); m_oBcw.m_oStream.WriteStringW4(*pVal->m_formatCode); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_sourceLinked.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExNumberFormatSOURCELINKED); m_oBcw.m_oStream.WriteBOOL(*pVal->m_sourceLinked); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExDataLabelVisibilities(OOX::Spreadsheet::ChartEx::CDataLabelVisibilities *pVal) { if (pVal->m_seriesName.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelVisibilitiesSERIES); m_oBcw.m_oStream.WriteBOOL(*pVal->m_seriesName); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_categoryName.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelVisibilitiesCATEGORY); m_oBcw.m_oStream.WriteBOOL(*pVal->m_categoryName); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_value.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExDataLabelVisibilitiesVALUE); m_oBcw.m_oStream.WriteBOOL(*pVal->m_value); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExBinning(OOX::Spreadsheet::ChartEx::CBinning *pVal) { if ((pVal->m_binSize.IsInit()) && (pVal->m_binSize->m_oVal.IsInit())) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExBinningBINSIZE); m_oBcw.m_oStream.WriteDoubleReal(pVal->m_binSize->m_oVal->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if ((pVal->m_binCount.IsInit()) && (pVal->m_binCount->m_oVal.IsInit())) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExBinningBINCOUNT); m_oBcw.m_oStream.WriteLONG(*pVal->m_binCount->m_oVal); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_intervalClosed.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExBinningINTERVAL); m_oBcw.m_oStream.WriteBYTE(pVal->m_intervalClosed->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_underflow.IsInit()) { if (pVal->m_underflow->GetValue() == SimpleTypes::Spreadsheet::typeAuto) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExBinningUNDERAUTO); m_oBcw.m_oStream.WriteBYTE(pVal->m_underflow->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } else { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExBinningUNDERVAL); m_oBcw.m_oStream.WriteDoubleReal(pVal->m_underflow->GetDoubleValue()); m_oBcw.WriteItemEnd(nCurPos); } } if (pVal->m_overflow.IsInit()) { if (pVal->m_overflow->GetValue() == SimpleTypes::Spreadsheet::typeAuto) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExBinningOVERAUTO); m_oBcw.m_oStream.WriteBYTE(pVal->m_overflow->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } else { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExBinningOVERVAL); m_oBcw.m_oStream.WriteDoubleReal(pVal->m_overflow->GetDoubleValue()); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_ChartExStatistics(OOX::Spreadsheet::ChartEx::CStatistics *pVal) { if (pVal->m_quartileMethod.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExStatisticsMETHOD); m_oBcw.m_oStream.WriteBYTE(pVal->m_quartileMethod->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExSubtotals(OOX::Spreadsheet::ChartEx::CSubtotals *pVal) { for (size_t i = 0; i < pVal->m_arIdx.size(); ++i) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSubtotalsIDX); m_oBcw.m_oStream.WriteULONG(pVal->m_arIdx[i]); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExSeriesElementVisibilities(OOX::Spreadsheet::ChartEx::CSeriesElementVisibilities *pVal) { if (pVal->m_connectorLines.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesVisibilitiesCONNECTOR); m_oBcw.m_oStream.WriteBOOL(*pVal->m_connectorLines); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_meanLine.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesVisibilitiesMEANLINE); m_oBcw.m_oStream.WriteBOOL(*pVal->m_meanLine); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_meanMarker.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesVisibilitiesMEANMARKER); m_oBcw.m_oStream.WriteBOOL(*pVal->m_meanMarker); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_nonoutliers.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesVisibilitiesNONOUTLIERS); m_oBcw.m_oStream.WriteBOOL(*pVal->m_nonoutliers); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_outliers.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExSeriesVisibilitiesOUTLIERS); m_oBcw.m_oStream.WriteBOOL(*pVal->m_outliers); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExCatScaling(OOX::Spreadsheet::ChartEx::CCatScaling *pVal) { if (!pVal) return; if (pVal->m_gapWidth.IsInit()) { if (pVal->m_gapWidth->GetValue() == SimpleTypes::Spreadsheet::typeAuto) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExCatScalingGAPAUTO); m_oBcw.m_oStream.WriteBYTE(pVal->m_gapWidth->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } else { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExCatScalingGAPVAL); m_oBcw.m_oStream.WriteDoubleReal(pVal->m_gapWidth->GetDoubleValue()); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_ChartExValScaling(OOX::Spreadsheet::ChartEx::CValScaling *pVal) { if (!pVal) return; if (pVal->m_max.IsInit()) { if (pVal->m_max->GetValue() == SimpleTypes::Spreadsheet::typeAuto) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExValScalingMAXAUTO); m_oBcw.m_oStream.WriteBYTE(pVal->m_max->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } else { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExValScalingMAXVAL); m_oBcw.m_oStream.WriteDoubleReal(pVal->m_max->GetDoubleValue()); m_oBcw.WriteItemEnd(nCurPos); } } if (pVal->m_min.IsInit()) { if (pVal->m_min->GetValue() == SimpleTypes::Spreadsheet::typeAuto) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExValScalingMINAUTO); m_oBcw.m_oStream.WriteBYTE(pVal->m_min->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } else { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExValScalingMINVAL); m_oBcw.m_oStream.WriteDoubleReal(pVal->m_min->GetDoubleValue()); m_oBcw.WriteItemEnd(nCurPos); } } if (pVal->m_majorUnit.IsInit()) { if (pVal->m_majorUnit->GetValue() == SimpleTypes::Spreadsheet::typeAuto) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExValScalingMAJUNITAUTO); m_oBcw.m_oStream.WriteBYTE(pVal->m_majorUnit->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } else { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExValScalingMAJUNITVAL); m_oBcw.m_oStream.WriteDoubleReal(pVal->m_majorUnit->GetDoubleValue()); m_oBcw.WriteItemEnd(nCurPos); } } if (pVal->m_minorUnit.IsInit()) { if (pVal->m_minorUnit->GetValue() == SimpleTypes::Spreadsheet::typeAuto) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExValScalingMINUNITAUTO); m_oBcw.m_oStream.WriteBYTE(pVal->m_minorUnit->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } else { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExValScalingMINUNITVAL); m_oBcw.m_oStream.WriteDoubleReal(pVal->m_minorUnit->GetDoubleValue()); m_oBcw.WriteItemEnd(nCurPos); } } } void BinaryChartWriter::WriteCT_ChartExAxisUnit(OOX::Spreadsheet::ChartEx::CAxisUnit *pVal) { if (!pVal) return; if (pVal->m_unitsLabel.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisUnitLABEL); WriteCT_ChartExAxisUnitsLabel(pVal->m_unitsLabel.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_unit.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisUnitTYPE); m_oBcw.m_oStream.WriteBYTE(pVal->m_unit->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExAxisUnitsLabel(OOX::Spreadsheet::ChartEx::CAxisUnitsLabel *pVal) { if (!pVal) return; if (pVal->m_tx.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisUnitsLabelTEXT); WriteCT_ChartExText(pVal->m_tx.GetPointer()); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisUnitsLabelSPPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_txPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExAxisUnitsLabelTXPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_txPr); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExTickMarks(OOX::Spreadsheet::ChartEx::CTickMarks *pVal) { if (!pVal) return; if (pVal->m_type.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExTickMarksTYPE); m_oBcw.m_oStream.WriteBYTE(pVal->m_type->GetValue()); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteCT_ChartExGridlines(OOX::Spreadsheet::ChartEx::CGridlines *pVal) { if (!pVal) return; if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_chartExGridlinesSPPR); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } } void BinaryChartWriter::WriteChartFiltering(OOX::Spreadsheet::CSeriesFiltering *pVal) { if (!pVal) return; WriteDataLabelsRange(pVal->m_dataLabelsRange.GetPointer()); WriteFilteredSeriesTitle(pVal->m_filteredSeriesTitle.GetPointer()); WriteFilteredCategoryTitle(pVal->m_filteredCategoryTitle.GetPointer()); WriteFilteredLineSeries(pVal->m_filteredLineSeries.GetPointer()); WriteFilteredScatterSeries(pVal->m_filteredScatterSeries.GetPointer()); WriteFilteredRadarSeries(pVal->m_filteredRadarSeries.GetPointer()); WriteFilteredBarSeries(pVal->m_filteredBarSeries.GetPointer()); WriteFilteredAreaSeries(pVal->m_filteredAreaSeries.GetPointer()); WriteFilteredBubbleSeries(pVal->m_filteredBubbleSeries.GetPointer()); WriteFilteredSurfaceSeries(pVal->m_filteredSurfaceSeries.GetPointer()); WriteFilteredPieSeries(pVal->m_filteredPieSeries.GetPointer()); WriteFullRef(pVal->m_fullRef.get_value_or(L"")); WriteLevelRef(pVal->m_levelRef.get_value_or(L"")); WriteFormulaRef(pVal->m_formulaRef.get_value_or(L"")); WriteCategoryFilterExceptions(pVal->m_categoryFilterExceptions.GetPointer()); } void BinaryChartWriter::WriteDataLabelsRange(OOX::Spreadsheet::CSeriesDataLabelsRange *pVal) { if (!pVal) return; int nCurPos2 = m_oBcw.WriteItemStart(c_oserct_dataLabelsRange); if (pVal->m_f.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dataLabelsRangeFormula); m_oBcw.m_oStream.WriteStringW4(*pVal->m_f); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_dlblRangeCache.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_dataLabelsRangeCache); WriteCT_StrData(*pVal->m_dlblRangeCache); m_oBcw.WriteItemEnd(nCurPos); } m_oBcw.WriteItemEnd(nCurPos2); } void BinaryChartWriter::WriteFilteredSeriesTitle(OOX::Spreadsheet::CT_Tx *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_filteredSeriesTitle); WriteCT_Tx(*pVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteFilteredCategoryTitle(OOX::Spreadsheet::CT_AxDataSource *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_filteredCategoryTitle); WriteCT_AxDataSource(*pVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteFilteredLineSeries(OOX::Spreadsheet::CT_LineSer *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_filteredLineSeries); WriteCT_LineSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteFilteredScatterSeries(OOX::Spreadsheet::CT_ScatterSer *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_filteredScatterSeries); WriteCT_ScatterSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteFilteredRadarSeries(OOX::Spreadsheet::CT_RadarSer *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_filteredRadarSeries); WriteCT_RadarSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteFilteredBarSeries(OOX::Spreadsheet::CT_BarSer *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_filteredBarSeries); WriteCT_BarSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteFilteredAreaSeries(OOX::Spreadsheet::CT_AreaSer *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_filteredAreaSeries); WriteCT_AreaSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteFilteredBubbleSeries(OOX::Spreadsheet::CT_BubbleSer *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_filteredBubbleSeries); WriteCT_BubbleSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteFilteredSurfaceSeries(OOX::Spreadsheet::CT_SurfaceSer *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_filteredSurfaceSeries); WriteCT_SurfaceSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteFilteredPieSeries(OOX::Spreadsheet::CT_PieSer *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_filteredPieSeries); WriteCT_PieSer(*pVal); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteFullRef(const std::wstring & ref) { if (ref.empty()) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_fullRef); m_oBcw.m_oStream.WriteStringW4(ref); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteLevelRef(const std::wstring & ref) { if (ref.empty()) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_levelRef); m_oBcw.m_oStream.WriteStringW4(ref); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteFormulaRef(const std::wstring & ref) { if (ref.empty()) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_formulaRef); m_oBcw.m_oStream.WriteStringW4(ref); m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCategoryFilterExceptions(OOX::Spreadsheet::CCategoryFilterExceptions *pVal) { if (!pVal) return; int nCurPos = m_oBcw.WriteItemStart(c_oserct_categoryFilterExceptions); for (size_t i = 0; i < pVal->m_arrItems.size(); ++i) { int nCurPos1 = m_oBcw.WriteItemStart(c_oserct_categoryFilterException); WriteCategoryFilterException(pVal->m_arrItems[i]); m_oBcw.WriteItemEnd(nCurPos1); } m_oBcw.WriteItemEnd(nCurPos); } void BinaryChartWriter::WriteCategoryFilterException(OOX::Spreadsheet::CCategoryFilterException *pVal) { if (!pVal) return; if (pVal->m_sqref.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_filterSqref); m_oBcw.m_oStream.WriteStringW4(*pVal->m_sqref); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_spPr.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_filterSpPr); m_oBcw.m_oStream.WriteRecord2(0, pVal->m_spPr); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_explosion.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_filterExplosion); WriteCT_UnsignedInt(*pVal->m_explosion); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_invertIfNegative.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_filterInvertIfNegative); WriteCT_Boolean(*pVal->m_invertIfNegative); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_bubble3D.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_filterBubble3D); WriteCT_Boolean(*pVal->m_bubble3D); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_marker.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_filterMarker); WriteCT_Marker(*pVal->m_marker); m_oBcw.WriteItemEnd(nCurPos); } if (pVal->m_dLbl.IsInit()) { int nCurPos = m_oBcw.WriteItemStart(c_oserct_filterLbl); WriteCT_DLbl(*pVal->m_dLbl); m_oBcw.WriteItemEnd(nCurPos); } } }