mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-19 07:38:47 +08:00
git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@65645 954022d7-b5bf-4e40-9824-e11837661b57
76 lines
1.6 KiB
C++
76 lines
1.6 KiB
C++
#pragma once
|
|
#include "../Reader/Records.h"
|
|
|
|
class CRecordStyleTextPropAtom : public CUnknownRecord
|
|
{
|
|
public:
|
|
// íóæíî åùå õðàíèòü ïîçèöèþ â ñòðèìå,
|
|
// óêàçàòåëü íà íà÷àëî
|
|
LONG m_lOffsetInStream;
|
|
|
|
// ïðîñòî äàííûå. áóäóò îáíîâëÿòüñÿ ïî ìåðå ïðèáûòèÿ
|
|
// Text.Bytes/Chars.Atom
|
|
DWORD m_lCount;
|
|
|
|
public:
|
|
std::vector<CTextPFRun_ppt> m_arrPFs;
|
|
std::vector<CTextCFRun_ppt> m_arrCFs;
|
|
|
|
public:
|
|
|
|
CRecordStyleTextPropAtom()
|
|
{
|
|
m_lCount = 0;
|
|
m_lOffsetInStream = 0;
|
|
}
|
|
|
|
~CRecordStyleTextPropAtom()
|
|
{
|
|
m_lCount = 0;
|
|
}
|
|
|
|
void ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pStream)
|
|
{
|
|
m_oHeader = oHeader;
|
|
StreamUtils::StreamPosition(m_lOffsetInStream, pStream);
|
|
|
|
DWORD lMemCount = 0;
|
|
DWORD lCountItems = 0;
|
|
|
|
if (0 == m_lCount)
|
|
{
|
|
StreamUtils::StreamSeek(m_lOffsetInStream + m_oHeader.RecLen, pStream);
|
|
return;
|
|
}
|
|
|
|
while (lMemCount < m_lCount + 1)
|
|
{
|
|
CTextPFRun_ppt elm;
|
|
m_arrPFs.push_back(elm);
|
|
m_arrPFs[lCountItems].LoadFromStream(pStream);
|
|
lMemCount += m_arrPFs[lCountItems].m_lCount;
|
|
|
|
++lCountItems;
|
|
}
|
|
|
|
lMemCount = 0;
|
|
lCountItems = 0;
|
|
while (lMemCount < m_lCount + 1)
|
|
{
|
|
CTextCFRun_ppt elm;
|
|
m_arrCFs.push_back(elm);
|
|
|
|
m_arrCFs[lCountItems].LoadFromStream(pStream);
|
|
lMemCount += m_arrCFs[lCountItems].m_lCount;
|
|
|
|
++lCountItems;
|
|
}
|
|
|
|
// íà âñÿêèé ñëó÷àé...
|
|
// çäåñü êîãäà òåêñò ñíà÷àëà äðóãîé (ò.å. íàïðèìåð - placeholder â ìàñòåðå) -
|
|
// òî ó íàñ íåïðàâèëüíî âûñòàâèëñÿ m_lCount...
|
|
StreamUtils::StreamSeek(m_lOffsetInStream + m_oHeader.RecLen, pStream);
|
|
}
|
|
|
|
};
|