void ExtRst::load(CFRecord& record) { record.skipNunBytes(2); // reserved record >> cb; size_t data_start = record.getRdPtr(); record >> phs; rphssub.sz = cb; record >> rphssub; for(unsigned short i = 0; i < rphssub.getRunsNumber(); ++i) { PhRuns run; record >> run; rgphruns.push_back(run); } size_t data_end = record.getRdPtr(); if(data_end - data_start != cb) { //ОШИБКА - нехватило Continue records - нужно найти место где именно и подзагрузить if ((data_end - data_start) < cb ) record.skipNunBytes( cb - (data_end - data_start)); // trash for unknown reason else record.RollRdPtrBack((data_end - data_start) - cb); } }
void FtMacro::load(CFRecord& record) { short ft; record >> ft; if (ft != 0x0004) { record.RollRdPtrBack(2); return; } fExist = true; fmla.load(record); }
void FtEdoData::load(CFRecord& record) { unsigned short ft, cb; record >> ft >> cb; if ( ft != 0x0010 && cb != 0x0008) { record.RollRdPtrBack(4); return; } fExist = true; record >> ivtEdit >> fMultiLine >> fVScroll >> id; }
void FtCf::load(CFRecord& record) { //record.skipNunBytes(4); // reserved unsigned short ft, cb; record >> ft; // OpenOffice f**k!!! if (ft == 0) record.RollRdPtrBack(2); else { record >> cb; record >> cf; } }
void FtNts::load(CFRecord& record) { unsigned short ft, cb; record >> ft >> cb; if ( ft != 0x000d && cb != 0x0016) { record.RollRdPtrBack(4); return; } fExist = true; _GUID_ guid_num; record >> guid_num >> fSharedNote; guid = STR::guid2bstr(guid_num); record.skipNunBytes(4); }
void FtSbs::load(CFRecord& record) { unsigned short ft, cb; record >> ft >> cb; if ( ft != 0x000c && cb != 0x0014) { record.RollRdPtrBack(4); return; } fExist = true; record.skipNunBytes(4); // unused1 unsigned short flags; record >> iVal >> iMin >> iMax >> dInc >> dPage >> fHoriz >> dxScroll >> flags; fDraw = GETBIT(flags, 0); fDrawSliderOnly = GETBIT(flags, 1); fTrackElevator = GETBIT(flags, 2); fNo3d = GETBIT(flags, 3); }