From 5a0226e972c9b3a7bdd8a7625bd240028bebd6f5 Mon Sep 17 00:00:00 2001 From: ElenaSubbotina Date: Tue, 23 Mar 2021 17:24:24 +0300 Subject: [PATCH] for bug #44144 --- .../DocDocxConverter/FormFieldData.cpp | 34 +- .../DocDocxConverter/FormFieldDataMapping.h | 73 +++- ASCOfficeDocxFile2/BinReader/Readers.cpp | 5 + ASCOfficeDocxFile2/BinWriter/BinWriters.cpp | 7 + .../Source/DocxFormat/Logic/FldChar.h | 326 ++++++++---------- 5 files changed, 253 insertions(+), 192 deletions(-) diff --git a/ASCOfficeDocFile/DocDocxConverter/FormFieldData.cpp b/ASCOfficeDocFile/DocDocxConverter/FormFieldData.cpp index f51f4f3103..efb9e5eb28 100644 --- a/ASCOfficeDocFile/DocDocxConverter/FormFieldData.cpp +++ b/ASCOfficeDocFile/DocDocxConverter/FormFieldData.cpp @@ -88,7 +88,11 @@ void FormFieldData::_FFData::read(VirtualStreamReader *reader) hps = reader->ReadUInt16(); xstzName = readXstz(reader); - xstzTextDef = readXstz(reader); + + if (iType == 0) + { + xstzTextDef = readXstz(reader); + } wDef = reader->ReadUInt16(); @@ -97,6 +101,11 @@ void FormFieldData::_FFData::read(VirtualStreamReader *reader) xstzStatText = readXstz(reader); xstzEntryMcr = readXstz(reader); xstzExitMcr = readXstz(reader); + + if (iType == 2) + { + //hsttbDropList + } } FormFieldData::FormFieldData( int type, const CharacterPropertyExceptions* chpx, POLE::Stream* stream, int nWordVersion ) { @@ -115,6 +124,18 @@ FormFieldData::FormFieldData( int type, const CharacterPropertyExceptions* chpx, { } break; + case sprmCHps: + { + } + break; + case sprmCHpsBi: + { + } + break; + case sprmCCv: + { + } + break; case sprmCFFldVanish: { } @@ -124,6 +145,15 @@ FormFieldData::FormFieldData( int type, const CharacterPropertyExceptions* chpx, fc = FormatUtils::BytesToInt32( iter->Arguments, 0, iter->argumentsSize ); } break; + case sprmCRsidProp: + { + }break; + case sprmCFBold: + { + }break; + case sprmCIco: + { + }break; case sprmCRsidText: { rsid = FormatUtils::IntToFormattedWideString(FormatUtils::BytesToInt32(iter->Arguments, 0, iter->argumentsSize), L"%08X"); @@ -148,7 +178,7 @@ FormFieldData::FormFieldData( int type, const CharacterPropertyExceptions* chpx, int lcb = reader.ReadUInt32(); int cbHeader = reader.ReadUInt16(); - if (cbHeader != 0x44) return; + if (cbHeader != 0x44) return; //ignored reader.ReadBytes(62, false); diff --git a/ASCOfficeDocFile/DocDocxConverter/FormFieldDataMapping.h b/ASCOfficeDocFile/DocDocxConverter/FormFieldDataMapping.h index d0f4df798e..adbe6acaad 100644 --- a/ASCOfficeDocFile/DocDocxConverter/FormFieldDataMapping.h +++ b/ASCOfficeDocFile/DocDocxConverter/FormFieldDataMapping.h @@ -63,17 +63,80 @@ namespace DocFileFormat m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.xstzName); m_pXmlWriter->WriteNodeEnd(L"w:name", true, true ); + m_pXmlWriter->WriteNodeBegin(L"w:enabled", true); + if (ffData->FFData.fProt) + m_pXmlWriter->WriteAttribute(L"w:val", 0); + m_pXmlWriter->WriteNodeEnd(L"w:enabled", true, true); + m_pXmlWriter->WriteNodeBegin( L"w:calcOnExit", true); m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.fRecalc); m_pXmlWriter->WriteNodeEnd(L"w:calcOnExit", true, true ); - m_pXmlWriter->WriteNodeBegin( L"w:textInput"); + if (false == ffData->FFData.xstzHelpText.empty()) + { + m_pXmlWriter->WriteNodeBegin(L"w:helpText", true); + m_pXmlWriter->WriteAttribute(L"w:type", ffData->FFData.fOwnHelp ? L"text" : L"autoText"); + m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.xstzHelpText); + m_pXmlWriter->WriteNodeEnd(L"w:helpText", true, true); + } + if (false == ffData->FFData.xstzStatText.empty()) + { + m_pXmlWriter->WriteNodeBegin(L"w:statusText", true); + m_pXmlWriter->WriteAttribute(L"w:type", ffData->FFData.fOwnStat ? L"text" : L"autoText"); + m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.xstzStatText); + m_pXmlWriter->WriteNodeEnd(L"w:statusText", true, true); + } + if (false == ffData->FFData.xstzEntryMcr.empty()) + { + m_pXmlWriter->WriteNodeBegin(L"w:entryMacro", true); + m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.xstzEntryMcr); + m_pXmlWriter->WriteNodeEnd(L"w:entryMacro", true, true); + } + if (false == ffData->FFData.xstzExitMcr.empty()) + { + m_pXmlWriter->WriteNodeBegin(L"w:exitMacro", true); + m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.xstzExitMcr); + m_pXmlWriter->WriteNodeEnd(L"w:exitMacro", true, true); + } + if (ffData->FFData.iType == 1) + { + m_pXmlWriter->WriteNodeBegin(L"w:checkBox"); - m_pXmlWriter->WriteNodeBegin( L"w:maxLength", true); - m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.cch_field); - m_pXmlWriter->WriteNodeEnd(L"w:maxLength", true, true ); + if (ffData->FFData.iSize) + { + m_pXmlWriter->WriteNodeBegin(L"w:size", true); + m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.hps); + m_pXmlWriter->WriteNodeEnd(L"w:size", true, true); + } + else + { + m_pXmlWriter->WriteNodeBegin(L"w:sizeAuto", true); + m_pXmlWriter->WriteNodeEnd(L"w:sizeAuto", true, true); + } - m_pXmlWriter->WriteNodeEnd( L"w:textInput" ); + m_pXmlWriter->WriteNodeBegin(L"w:default", true); + m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.wDef); + m_pXmlWriter->WriteNodeEnd(L"w:default", true, true); + + m_pXmlWriter->WriteNodeEnd(L"w:checkBox"); + } + else if (ffData->FFData.iType == 2) + { + m_pXmlWriter->WriteNodeBegin(L"w:ddList"); + + + m_pXmlWriter->WriteNodeEnd(L"w:ddList"); + } + else + { + m_pXmlWriter->WriteNodeBegin(L"w:textInput"); + + m_pXmlWriter->WriteNodeBegin(L"w:maxLength", true); + m_pXmlWriter->WriteAttribute(L"w:val", ffData->FFData.cch_field); + m_pXmlWriter->WriteNodeEnd(L"w:maxLength", true, true); + + m_pXmlWriter->WriteNodeEnd(L"w:textInput"); + } m_pXmlWriter->WriteNodeEnd( L"w:ffData" ); } diff --git a/ASCOfficeDocxFile2/BinReader/Readers.cpp b/ASCOfficeDocxFile2/BinReader/Readers.cpp index a7f258572e..39f281d963 100644 --- a/ASCOfficeDocxFile2/BinReader/Readers.cpp +++ b/ASCOfficeDocxFile2/BinReader/Readers.cpp @@ -5072,6 +5072,11 @@ int Binary_DocumentTableReader::ReadFldChar(BYTE type, long length, void* poResu pFldChar->m_oFldCharType.Init(); pFldChar->m_oFldCharType->SetValue((SimpleTypes::EFldCharType)m_oBufferedStream.GetUChar()); } + else if (c_oSer_FldSimpleType::FFData == type) + { + pFldChar->m_oFFData.Init(); + READ1_DEF(length, res, this->ReadFFData, pFldChar->m_oFFData.GetPointer()); + } else res = c_oSerConstants::ReadUnknown; return res; diff --git a/ASCOfficeDocxFile2/BinWriter/BinWriters.cpp b/ASCOfficeDocxFile2/BinWriter/BinWriters.cpp index b05d433ae2..bb016a9768 100644 --- a/ASCOfficeDocxFile2/BinWriter/BinWriters.cpp +++ b/ASCOfficeDocxFile2/BinWriter/BinWriters.cpp @@ -3909,6 +3909,13 @@ void BinaryDocumentTableWriter::WriteFldChar(OOX::Logic::CFldChar* pFldChar) m_oBcw.m_oStream.WriteBYTE((BYTE)pFldChar->m_oFldCharType->GetValue()); m_oBcw.WriteItemWithLengthEnd(nCurPos); } +//FFData + if (pFldChar->m_oFFData.IsInit()) + { + nCurPos = m_oBcw.WriteItemStart(c_oSer_FldSimpleType::FFData); + WriteFFData(pFldChar->m_oFFData.get()); + m_oBcw.WriteItemWithLengthEnd(nCurPos); + } } void BinaryDocumentTableWriter::WriteFldSimple(OOX::Logic::CFldSimple* pFldSimple) { diff --git a/Common/DocxFormat/Source/DocxFormat/Logic/FldChar.h b/Common/DocxFormat/Source/DocxFormat/Logic/FldChar.h index d500708062..6dde101d9a 100644 --- a/Common/DocxFormat/Source/DocxFormat/Logic/FldChar.h +++ b/Common/DocxFormat/Source/DocxFormat/Logic/FldChar.h @@ -30,9 +30,6 @@ * */ #pragma once -#ifndef OOX_LOGIC_FLD_CHAR_INCLUDE_H_ -#define OOX_LOGIC_FLD_CHAR_INCLUDE_H_ - #include "../WritingElement.h" #include "../../Base/Nullable.h" #include "../../Common/SimpleTypes_Word.h" @@ -56,11 +53,11 @@ namespace ComplexTypes { } - virtual void FromXML(XmlUtils::CXmlNode& oNode) + virtual void FromXML(XmlUtils::CXmlNode& oNode) { - XmlMacroReadAttributeBase( oNode, _T("w:val"), m_oVal ); + XmlMacroReadAttributeBase( oNode, L"w:val", m_oVal ); } - virtual void FromXML(XmlUtils::CXmlLiteReader& oReader) + virtual void FromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes(oReader); @@ -73,9 +70,9 @@ namespace ComplexTypes if ( m_oVal.IsInit() ) { - sResult += _T("w:val=\""); + sResult += L"w:val=\""; sResult += m_oVal->ToString(); - sResult += _T("\" "); + sResult += L"\" "; } return sResult; @@ -84,9 +81,8 @@ namespace ComplexTypes void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { - // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) - WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:val"), m_oVal ) + WritingElement_ReadAttributes_ReadSingle( oReader, L"w:val", m_oVal ) WritingElement_ReadAttributes_End( oReader ) } @@ -109,12 +105,12 @@ namespace ComplexTypes { } - virtual void FromXML(XmlUtils::CXmlNode& oNode) + virtual void FromXML(XmlUtils::CXmlNode& oNode) { - XmlMacroReadAttributeBase( oNode, _T("w:type"), m_oType ); - XmlMacroReadAttributeBase( oNode, _T("w:val"), m_oVal ); + XmlMacroReadAttributeBase( oNode, L"w:type", m_oType ); + XmlMacroReadAttributeBase( oNode, L"w:val", m_oVal ); } - virtual void FromXML(XmlUtils::CXmlLiteReader& oReader) + virtual void FromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes(oReader); @@ -127,16 +123,16 @@ namespace ComplexTypes if ( m_oVal.IsInit() ) { - sResult += _T("w:val=\""); + sResult += L"w:val=\""; sResult += m_oVal->ToString(); - sResult += _T("\" "); + sResult += L"\" "; } if ( m_oType.IsInit() ) { - sResult += _T("w:type=\""); + sResult += L"w:type=\""; sResult += m_oType->ToString(); - sResult += _T("\" "); + sResult += L"\" "; } return sResult; @@ -145,10 +141,9 @@ namespace ComplexTypes void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { - // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) - WritingElement_ReadAttributes_Read_if ( oReader, _T("w:type"), m_oType ) - WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:val"), m_oVal ) + WritingElement_ReadAttributes_Read_if ( oReader, L"w:type", m_oType ) + WritingElement_ReadAttributes_Read_else_if( oReader, L"w:val", m_oVal ) WritingElement_ReadAttributes_End( oReader ) } @@ -172,11 +167,11 @@ namespace ComplexTypes { } - virtual void FromXML(XmlUtils::CXmlNode& oNode) + virtual void FromXML(XmlUtils::CXmlNode& oNode) { - XmlMacroReadAttributeBase( oNode, _T("w:val"), m_oVal ); + XmlMacroReadAttributeBase( oNode, L"w:val", m_oVal ); } - virtual void FromXML(XmlUtils::CXmlLiteReader& oReader) + virtual void FromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes(oReader); @@ -189,9 +184,9 @@ namespace ComplexTypes if ( m_oVal.IsInit() ) { - sResult += _T("w:val=\""); + sResult += L"w:val=\""; sResult += m_oVal->ToString(); - sResult += _T("\" "); + sResult += L"\" "; } return sResult; @@ -200,9 +195,8 @@ namespace ComplexTypes void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { - // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) - WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:val"), m_oVal ) + WritingElement_ReadAttributes_ReadSingle( oReader, L"w:val", m_oVal ) WritingElement_ReadAttributes_End( oReader ) } @@ -225,12 +219,12 @@ namespace ComplexTypes { } - virtual void FromXML(XmlUtils::CXmlNode& oNode) + virtual void FromXML(XmlUtils::CXmlNode& oNode) { - XmlMacroReadAttributeBase( oNode, _T("w:type"), m_oType ); - XmlMacroReadAttributeBase( oNode, _T("w:val"), m_oVal ); + XmlMacroReadAttributeBase( oNode, L"w:type", m_oType ); + XmlMacroReadAttributeBase( oNode, L"w:val", m_oVal ); } - virtual void FromXML(XmlUtils::CXmlLiteReader& oReader) + virtual void FromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes(oReader); @@ -243,16 +237,16 @@ namespace ComplexTypes if ( m_oVal.IsInit() ) { - sResult += _T("w:val=\""); + sResult += L"w:val=\""; sResult += m_oVal->ToString(); - sResult += _T("\" "); + sResult += L"\" "; } if ( m_oType.IsInit() ) { - sResult += _T("w:type=\""); + sResult += L"w:type=\""; sResult += m_oType->ToString(); - sResult += _T("\" "); + sResult += L"\" "; } return sResult; @@ -261,10 +255,9 @@ namespace ComplexTypes void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { - // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) - WritingElement_ReadAttributes_Read_if ( oReader, _T("w:type"), m_oType ) - WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:val"), m_oVal ) + WritingElement_ReadAttributes_Read_if ( oReader, L"w:type", m_oType ) + WritingElement_ReadAttributes_Read_else_if( oReader, L"w:val", m_oVal ) WritingElement_ReadAttributes_End( oReader ) } @@ -290,7 +283,7 @@ namespace ComplexTypes virtual void FromXML(XmlUtils::CXmlNode& oNode) { - XmlMacroReadAttributeBase( oNode, _T("w:val"), m_oVal ); + XmlMacroReadAttributeBase( oNode, L"w:val", m_oVal ); } virtual void FromXML(XmlUtils::CXmlLiteReader& oReader) { @@ -305,9 +298,9 @@ namespace ComplexTypes if ( m_oVal.IsInit() ) { - sResult += _T("w:val=\""); + sResult += L"w:val=\""; sResult += m_oVal->ToString(); - sResult += _T("\" "); + sResult += L"\" "; } return sResult; @@ -316,9 +309,8 @@ namespace ComplexTypes void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { - // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) - WritingElement_ReadAttributes_ReadSingle( oReader, _T("w:val"), m_oVal ) + WritingElement_ReadAttributes_ReadSingle( oReader, L"w:val", m_oVal ) WritingElement_ReadAttributes_End( oReader ) } @@ -354,8 +346,6 @@ namespace OOX virtual ~CFFCheckBox() { } - - public: const CFFCheckBox &operator=(const XmlUtils::CXmlNode &oNode) { fromXML( (XmlUtils::CXmlNode&) oNode ); @@ -366,17 +356,15 @@ namespace OOX fromXML( (XmlUtils::CXmlLiteReader&)oReader ); return *this; } - public: - - virtual void fromXML(XmlUtils::CXmlNode& oNode) + virtual void fromXML(XmlUtils::CXmlNode& oNode) { XmlUtils::CXmlNode oChild; - WritingElement_ReadNode( oNode, oChild, _T("w:checked"), m_oChecked ); - WritingElement_ReadNode( oNode, oChild, _T("w:default"), m_oDefault ); - WritingElement_ReadNode( oNode, oChild, _T("w:size"), m_oSize ); - WritingElement_ReadNode( oNode, oChild, _T("w:sizeAuto"), m_oSizeAuto ); + WritingElement_ReadNode( oNode, oChild, L"w:checked", m_oChecked ); + WritingElement_ReadNode( oNode, oChild, L"w:default", m_oDefault ); + WritingElement_ReadNode( oNode, oChild, L"w:size", m_oSize ); + WritingElement_ReadNode( oNode, oChild, L"w:sizeAuto", m_oSizeAuto ); } - virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) + virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) { if ( oReader.IsEmptyNode() ) return; @@ -385,26 +373,26 @@ namespace OOX while( oReader.ReadNextSiblingNode( nParentDepth ) ) { std::wstring sName = oReader.GetName(); - if ( _T("w:checked") == sName ) + if ( L"w:checked" == sName ) m_oChecked = oReader; - else if ( _T("w:default") == sName ) + else if ( L"w:default" == sName ) m_oDefault = oReader; - else if ( _T("w:size") == sName ) + else if ( L"w:size" == sName ) m_oSize = oReader; - else if ( _T("w:sizeAuto") == sName ) + else if ( L"w:sizeAuto" == sName ) m_oSizeAuto = oReader; } } - virtual std::wstring toXML() const + virtual std::wstring toXML() const { - std::wstring sResult = _T(""); + std::wstring sResult = L""; - WritingElement_WriteNode_1( _T(""); + sResult += L""; return sResult; } @@ -414,8 +402,6 @@ namespace OOX } public: - - // Childs nullable > m_oChecked; nullable > m_oDefault; nullable m_oSize; @@ -453,8 +439,6 @@ namespace OOX } m_arrListEntry.clear(); } - - public: const CFFDDList &operator=(const XmlUtils::CXmlNode &oNode) { ClearItems(); @@ -466,17 +450,14 @@ namespace OOX fromXML( (XmlUtils::CXmlLiteReader&)oReader ); return *this; } - - public: - - virtual void fromXML(XmlUtils::CXmlNode& oNode) + virtual void fromXML(XmlUtils::CXmlNode& oNode) { XmlUtils::CXmlNode oChild; - WritingElement_ReadNode( oNode, oChild, _T("w:default"), m_oDefault ); - WritingElement_ReadNode( oNode, oChild, _T("w:result"), m_oResult ); + WritingElement_ReadNode( oNode, oChild, L"w:default", m_oDefault ); + WritingElement_ReadNode( oNode, oChild, L"w:result", m_oResult ); XmlUtils::CXmlNodes oListEntryNodes; - if ( oNode.GetNodes( _T("w:listEntry"), oListEntryNodes ) ) + if ( oNode.GetNodes( L"w:listEntry", oListEntryNodes ) ) { XmlUtils::CXmlNode oListEntryNode; for ( int nIndex = 0; nIndex < oListEntryNodes.GetCount(); nIndex++ ) @@ -489,7 +470,7 @@ namespace OOX } } } - virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) + virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) { if ( oReader.IsEmptyNode() ) return; @@ -498,33 +479,33 @@ namespace OOX while( oReader.ReadNextSiblingNode( nParentDepth ) ) { std::wstring sName = oReader.GetName(); - if ( _T("w:default") == sName ) + if ( L"w:default" == sName ) m_oDefault = oReader; - else if ( _T("w:result") == sName ) + else if ( L"w:result" == sName ) m_oResult = oReader; - else if ( _T("w:listEntry") == sName ) + else if ( L"w:listEntry" == sName ) { ComplexTypes::Word::String *oListEntry = new ComplexTypes::Word::String(oReader); if (oListEntry) m_arrListEntry.push_back( oListEntry ); } } } - virtual std::wstring toXML() const + virtual std::wstring toXML() const { - std::wstring sResult = _T(""); + std::wstring sResult = L""; - WritingElement_WriteNode_1( _T("ToString(); - sResult += _T("/>"); + sResult += L"/>"; } - sResult += _T(""); + sResult += L""; return sResult; } @@ -535,7 +516,6 @@ namespace OOX public: - // Childs nullable m_oDefault; nullable m_oResult; std::vector m_arrListEntry; @@ -561,8 +541,6 @@ namespace OOX virtual ~CFFTextInput() { } - - public: const CFFTextInput &operator=(const XmlUtils::CXmlNode &oNode) { fromXML( (XmlUtils::CXmlNode&) oNode ); @@ -573,18 +551,15 @@ namespace OOX fromXML( (XmlUtils::CXmlLiteReader&)oReader ); return *this; } - - public: - - virtual void fromXML(XmlUtils::CXmlNode& oNode) + virtual void fromXML(XmlUtils::CXmlNode& oNode) { XmlUtils::CXmlNode oChild; - WritingElement_ReadNode( oNode, oChild, _T("w:default"), m_oDefault ); - WritingElement_ReadNode( oNode, oChild, _T("w:format"), m_oFormat ); - WritingElement_ReadNode( oNode, oChild, _T("w:maxLength"), m_oMaxLength ); - WritingElement_ReadNode( oNode, oChild, _T("w:type"), m_oType ); + WritingElement_ReadNode( oNode, oChild, L"w:default", m_oDefault ); + WritingElement_ReadNode( oNode, oChild, L"w:format", m_oFormat ); + WritingElement_ReadNode( oNode, oChild, L"w:maxLength", m_oMaxLength ); + WritingElement_ReadNode( oNode, oChild, L"w:type", m_oType ); } - virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) + virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) { if ( oReader.IsEmptyNode() ) return; @@ -593,26 +568,26 @@ namespace OOX while( oReader.ReadNextSiblingNode( nParentDepth ) ) { std::wstring sName = oReader.GetName(); - if ( _T("w:default") == sName ) + if ( L"w:default" == sName ) m_oDefault = oReader; - else if ( _T("w:format") == sName ) + else if ( L"w:format" == sName ) m_oFormat = oReader; - else if ( _T("w:maxLength") == sName ) + else if ( L"w:maxLength" == sName ) m_oMaxLength = oReader; - else if ( _T("w:type") == sName ) + else if ( L"w:type" == sName ) m_oType = oReader; } } - virtual std::wstring toXML() const + virtual std::wstring toXML() const { - std::wstring sResult = _T(""); + std::wstring sResult = L""; - WritingElement_WriteNode_1( _T(""); + sResult += L""; return sResult; } @@ -623,7 +598,6 @@ namespace OOX public: - // Childs nullable m_oDefault; nullable m_oFormat; nullable m_oMaxLength; @@ -651,8 +625,6 @@ namespace OOX virtual ~CFFData() { } - - public: const CFFData &operator=(const XmlUtils::CXmlNode &oNode) { fromXML( (XmlUtils::CXmlNode&) oNode ); @@ -663,26 +635,23 @@ namespace OOX fromXML( (XmlUtils::CXmlLiteReader&)oReader ); return *this; } - - public: - - virtual void fromXML(XmlUtils::CXmlNode& oNode) + virtual void fromXML(XmlUtils::CXmlNode& oNode) { XmlUtils::CXmlNode oChild; - WritingElement_ReadNode( oNode, oChild, _T("w:calcOnExit"), m_oCalcOnExit ); - WritingElement_ReadNode( oNode, oChild, _T("w:checkBox"), m_oCheckBox ); - WritingElement_ReadNode( oNode, oChild, _T("w:ddList"), m_oDDList ); - WritingElement_ReadNode( oNode, oChild, _T("w:enabled"), m_oEnabled ); - WritingElement_ReadNode( oNode, oChild, _T("w:entryMacro"), m_oEntryMacro ); - WritingElement_ReadNode( oNode, oChild, _T("w:exitMacro"), m_oExitMacro ); - WritingElement_ReadNode( oNode, oChild, _T("w:helpText"), m_oHelpText ); - WritingElement_ReadNode( oNode, oChild, _T("w:label"), m_oLabel ); - WritingElement_ReadNode( oNode, oChild, _T("w:name"), m_oName ); - WritingElement_ReadNode( oNode, oChild, _T("w:statusText"), m_oStatusText ); - WritingElement_ReadNode( oNode, oChild, _T("w:tabIndex"), m_oTabIndex ); - WritingElement_ReadNode( oNode, oChild, _T("w:textInput"), m_oTextInput ); + WritingElement_ReadNode( oNode, oChild, L"w:calcOnExit", m_oCalcOnExit ); + WritingElement_ReadNode( oNode, oChild, L"w:checkBox", m_oCheckBox ); + WritingElement_ReadNode( oNode, oChild, L"w:ddList", m_oDDList ); + WritingElement_ReadNode( oNode, oChild, L"w:enabled", m_oEnabled ); + WritingElement_ReadNode( oNode, oChild, L"w:entryMacro", m_oEntryMacro ); + WritingElement_ReadNode( oNode, oChild, L"w:exitMacro", m_oExitMacro ); + WritingElement_ReadNode( oNode, oChild, L"w:helpText", m_oHelpText ); + WritingElement_ReadNode( oNode, oChild, L"w:label", m_oLabel ); + WritingElement_ReadNode( oNode, oChild, L"w:name", m_oName ); + WritingElement_ReadNode( oNode, oChild, L"w:statusText", m_oStatusText ); + WritingElement_ReadNode( oNode, oChild, L"w:tabIndex", m_oTabIndex ); + WritingElement_ReadNode( oNode, oChild, L"w:textInput", m_oTextInput ); } - virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) + virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) { if ( oReader.IsEmptyNode() ) return; @@ -692,38 +661,38 @@ namespace OOX { std::wstring sName = oReader.GetName(); - if ( _T("w:calcOnExit") == sName ) m_oCalcOnExit = oReader; - else if ( _T("w:checkBox") == sName ) m_oCheckBox = oReader; - else if ( _T("w:ddList") == sName ) m_oDDList = oReader; - else if ( _T("w:enabled") == sName ) m_oEnabled = oReader; - else if ( _T("w:entryMacro") == sName ) m_oEntryMacro = oReader; - else if ( _T("w:exitMacro") == sName ) m_oExitMacro = oReader; - else if ( _T("w:helpText") == sName ) m_oHelpText = oReader; - else if ( _T("w:label") == sName ) m_oLabel = oReader; - else if ( _T("w:name") == sName ) m_oName = oReader; - else if ( _T("w:statusText") == sName ) m_oStatusText = oReader; - else if ( _T("w:tabIndex") == sName ) m_oTabIndex = oReader; - else if ( _T("w:textInput") == sName ) m_oTextInput = oReader; + if ( L"w:calcOnExit" == sName ) m_oCalcOnExit = oReader; + else if ( L"w:checkBox" == sName ) m_oCheckBox = oReader; + else if ( L"w:ddList" == sName ) m_oDDList = oReader; + else if ( L"w:enabled" == sName ) m_oEnabled = oReader; + else if ( L"w:entryMacro" == sName ) m_oEntryMacro = oReader; + else if ( L"w:exitMacro" == sName ) m_oExitMacro = oReader; + else if ( L"w:helpText" == sName ) m_oHelpText = oReader; + else if ( L"w:label" == sName ) m_oLabel = oReader; + else if ( L"w:name" == sName ) m_oName = oReader; + else if ( L"w:statusText" == sName ) m_oStatusText = oReader; + else if ( L"w:tabIndex" == sName ) m_oTabIndex = oReader; + else if ( L"w:textInput" == sName ) m_oTextInput = oReader; } } - virtual std::wstring toXML() const + virtual std::wstring toXML() const { - std::wstring sResult = _T(""); + std::wstring sResult = L""; - WritingElement_WriteNode_1( _T(""); + sResult += L""; return sResult; } @@ -734,7 +703,6 @@ namespace OOX public: - // Childs nullable > m_oCalcOnExit; nullable m_oCheckBox; nullable m_oDDList; @@ -769,8 +737,6 @@ namespace OOX virtual ~CFldChar() { } - - public: const CFldChar &operator=(const XmlUtils::CXmlNode &oNode) { fromXML( (XmlUtils::CXmlNode&) oNode ); @@ -781,19 +747,16 @@ namespace OOX fromXML( (XmlUtils::CXmlLiteReader&)oReader ); return *this; } - - public: - - virtual void fromXML(XmlUtils::CXmlNode& oNode) + virtual void fromXML(XmlUtils::CXmlNode& oNode) { - XmlMacroReadAttributeBase( oNode, _T("w:dirty"), m_oDirty ); - XmlMacroReadAttributeBase( oNode, _T("w:fldCharType"), m_oFldCharType ); - XmlMacroReadAttributeBase( oNode, _T("w:fldLock"), m_oFldLock ); + XmlMacroReadAttributeBase( oNode, L"w:dirty", m_oDirty ); + XmlMacroReadAttributeBase( oNode, L"w:fldCharType", m_oFldCharType ); + XmlMacroReadAttributeBase( oNode, L"w:fldLock", m_oFldLock ); XmlUtils::CXmlNode oChild; - WritingElement_ReadNode( oNode, oChild, _T("w:ffData"), m_oFFData ); + WritingElement_ReadNode( oNode, oChild, L"w:ffData", m_oFFData ); } - virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) + virtual void fromXML(XmlUtils::CXmlLiteReader& oReader) { ReadAttributes( oReader ); @@ -806,27 +769,27 @@ namespace OOX std::wstring sName = oReader.GetName(); WritingElement *pItem = NULL; - if ( _T("w:ffData") == sName ) + if ( L"w:ffData" == sName ) m_oFFData = oReader; } } - virtual std::wstring toXML() const + virtual std::wstring toXML() const { - std::wstring sResult = _T(""); + sResult += L">"; sResult += m_oFFData->toXML(); - sResult += _T(""); + sResult += L""; } else { - sResult += _T("/>"); + sResult += L"/>"; } return sResult; @@ -839,28 +802,21 @@ namespace OOX void ReadAttributes(XmlUtils::CXmlLiteReader& oReader) { - // Читаем атрибуты WritingElement_ReadAttributes_Start( oReader ) - - WritingElement_ReadAttributes_Read_if ( oReader, _T("w:dirty"), m_oDirty ) - WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:fldCharType"), m_oFldCharType ) - WritingElement_ReadAttributes_Read_else_if( oReader, _T("w:fldLock"), m_oFldLock ) - + WritingElement_ReadAttributes_Read_if ( oReader, L"w:dirty", m_oDirty ) + WritingElement_ReadAttributes_Read_else_if( oReader, L"w:fldCharType", m_oFldCharType ) + WritingElement_ReadAttributes_Read_else_if( oReader, L"w:fldLock", m_oFldLock ) WritingElement_ReadAttributes_End( oReader ) } public: - // Attributes nullable > m_oDirty; nullable > m_oFldCharType; nullable > m_oFldLock; - // Childs nullable m_oFFData; }; } // namespace Logic } // namespace OOX - -#endif // OOX_LOGIC_FLD_CHAR_INCLUDE_H_