mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-18 11:33:24 +08:00
git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@65296 954022d7-b5bf-4e40-9824-e11837661b57
85 lines
1.8 KiB
C++
85 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#include "PPTDocumentInfoOneUser.h"
|
|
|
|
class CPPTDocumentInfo
|
|
{
|
|
public:
|
|
CCurrentUser m_oCurrentUser;
|
|
std::vector<CPPTUserInfo*> m_arUsers;
|
|
CString m_strFileDirectory;
|
|
std::map<int, std::wstring> m_mapStoreImageFile;
|
|
|
|
public:
|
|
|
|
CPPTDocumentInfo() : m_oCurrentUser(), m_arUsers()
|
|
{
|
|
m_strFileDirectory = _T("");
|
|
}
|
|
|
|
~CPPTDocumentInfo()
|
|
{
|
|
Clear();
|
|
}
|
|
|
|
void Clear()
|
|
{
|
|
size_t nCount = m_arUsers.size();
|
|
while(0 != nCount)
|
|
{
|
|
if (NULL != m_arUsers[nCount-1])
|
|
delete m_arUsers[nCount-1];
|
|
|
|
m_arUsers.pop_back();
|
|
--nCount;
|
|
}
|
|
}
|
|
|
|
void ReadFromStream(CRecordCurrentUserAtom* pCurrentUser, POLE::Stream* pStream, CStringW strFolderMem)
|
|
{
|
|
m_oCurrentUser.FromAtom(pCurrentUser);
|
|
|
|
DWORD offsetToEdit = m_oCurrentUser.m_nOffsetToCurrentEdit;
|
|
SRecordHeader oHeader;
|
|
CRecordUserEditAtom oUserAtom;
|
|
|
|
Clear();
|
|
|
|
size_t nCountUsers = 0;
|
|
|
|
while (0 < offsetToEdit)
|
|
{
|
|
StreamUtils::StreamSeek(offsetToEdit, pStream);
|
|
|
|
oHeader.ReadFromStream(pStream);
|
|
oUserAtom.ReadFromStream(oHeader, pStream);
|
|
|
|
CPPTUserInfo* pInfo = new CPPTUserInfo();
|
|
pInfo->m_strFileDirectory = m_strFileDirectory;
|
|
|
|
bool bRes = pInfo->ReadFromStream(&oUserAtom, pStream, strFolderMem);
|
|
|
|
offsetToEdit = pInfo->m_oUser.m_nOffsetLastEdit;
|
|
|
|
if (!bRes)
|
|
{
|
|
delete pInfo;
|
|
continue;
|
|
}
|
|
|
|
m_arUsers.push_back(pInfo);
|
|
// òåïåðü íóæíî âûñòàâèòü ó íåãî ïàðàìåòðû äëÿ äðóãèõ þçåðîâ
|
|
pInfo->m_pDocumentInfo = this;
|
|
pInfo->m_lIndexThisUser = m_arUsers.size() - 1;
|
|
|
|
pInfo = NULL;
|
|
}
|
|
// òåïåðü íóæíî ó âñåõ ñäåëàòü FromDocument...èëè òîëüêî äëÿ ÏÎÑËÅÄÍÅÃÎ ïîëüçîâàòåëÿ ??? (îñòàëüíûå òî íå íóæíû)
|
|
//for (int i = 0; i < m_arUsers.size(); ++i)
|
|
if (m_arUsers.size() > 0)
|
|
{
|
|
m_arUsers[0]->FromDocument();
|
|
}
|
|
}
|
|
};
|