Files
core/ASCOfficeDocFile/DocDocxConverter/FileInformationBlock.h
Alexander.Trofimov 04d197375c change license to 2017
2017-01-17 18:17:26 +03:00

1240 lines
52 KiB
C++

/*
* (c) Copyright Ascensio System SIA 2010-2017
*
* 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 Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* 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
*
*/
#pragma once
#include "VirtualStreamReader.h"
#include "../../ASCOfficeXlsFile2/source/XlsFormat/Crypt/Decryptor.h"
namespace DocFileFormat
{
typedef enum FibVersion
{
Fib1993 = 0x0065, // Word 6.0
Fib1995 = 0x0068, // Word 7.0 (95)
Fib1996 = 0x0069, // Word 8.0 (97)
Fib1997 = 0x00C1,
Fib2000 = 0x00D9,
Fib2002 = 0x0101,
Fib2003 = 0x010C,
Fib2007 = 0x0112
} FibVersion;
typedef struct FibBase
{
FibBase() :
wIdent(0), nFib(Fib1997), lid(0), pnNext(0), fDot(false), fGlsy(false), fComplex(false), fHasPic(false),
cQuickSaves(0), fEncrypted(false), fWhichTblStm(false), fReadOnlyRecommended(false), fWriteReservation(false),
fExtChar(false), fLoadOverwrite(false), fFarEast(false), fObfuscation(false), nFibBack(0), lKey(0), envr(0), fMac(false),
fEmptySpecial(false), fLoadOverridePage(false), fFutureSavedUndo(false), fWord97Saved(false), fcMin(0), fcMac(0) {}
//------------------------------------------------------------
WORD wIdent;
FibVersion nFib;
WORD lid;
WORD pnNext;
bool fDot;
bool fGlsy;
bool fComplex;
bool fHasPic;
WORD cQuickSaves;
bool fEncrypted;
bool fWhichTblStm;
bool fReadOnlyRecommended;
bool fWriteReservation;
bool fExtChar;
bool fLoadOverwrite;
bool fFarEast;
bool fObfuscation;
WORD nFibBack;
int lKey;
unsigned char envr;
bool fMac;
bool fEmptySpecial;
bool fLoadOverridePage;
bool fFutureSavedUndo;
bool fWord97Saved;
int fcMin;
int fcMac;
} FibBase;
typedef struct RgW97
{
WORD lidFE;
} RgW97;
typedef struct RgLw97
{
RgLw97() : cbMac(0), ccpText(0), ccpFtn(0), ccpHdr(0), ccpAtn(0), ccpEdn(0), ccpTxbx(0), ccpHdrTxbx(0) {}
//----------------------
int cbMac;
int ccpText;
int ccpFtn;
int ccpHdr;
int ccpAtn;
int ccpEdn;
int ccpTxbx;
int ccpHdrTxbx;
} RgLw97;
typedef struct FibWord97
{
FibWord97() :
fcStshfOrig (0), lcbStshfOrig (0), fcStshf (0), lcbStshf (0), fcPlcffndRef (0), lcbPlcffndRef (0),
fcPlcffndTxt (0), lcbPlcffndTxt (0), fcPlcfandRef (0), lcbPlcfandRef (0), fcPlcfandTxt (0), lcbPlcfandTxt (0),
fcPlcfSed (0), lcbPlcfSed (0), fcPlcPad (0), lcbPlcPad (0), fcPlcfPhe (0), lcbPlcfPhe (0),
fcSttbfGlsy (0), lcbSttbfGlsy (0), fcPlcfGlsy (0), lcbPlcfGlsy (0), fcPlcfHdd (0), lcbPlcfHdd (0),
fcPlcfBteChpx (0), lcbPlcfBteChpx (0), fcPlcfBtePapx (0), lcbPlcfBtePapx (0), fcPlcfSea (0), lcbPlcfSea (0),
fcSttbfFfn (0), lcbSttbfFfn (0), fcPlcfFldMom (0), lcbPlcfFldMom (0), fcPlcfFldHdr (0), lcbPlcfFldHdr (0),
fcPlcfFldFtn (0), lcbPlcfFldFtn (0), fcPlcfFldAtn (0), lcbPlcfFldAtn (0), fcPlcfFldMcr (0), lcbPlcfFldMcr (0),
fcSttbfBkmk (0), lcbSttbfBkmk (0), fcPlcfBkf (0), lcbPlcfBkf (0), fcPlcfBkl (0), lcbPlcfBkl (0),
fcCmds (0), lcbCmds (0), fcSttbfMcr (0), lcbSttbfMcr (0), fcPrDrvr (0), lcbPrDrvr (0),
fcPrEnvPort (0), lcbPrEnvPort (0), fcPrEnvLand (0), lcbPrEnvLand (0), fcWss (0), lcbWss (0),
fcDop (0), lcbDop (0), fcSttbfAssoc (0), lcbSttbfAssoc (0), fcClx (0), lcbClx (0),
fcPlcfPgdFtn (0), lcbPlcfPgdFtn (0), fcAutosaveSource (0), lcbAutosaveSource (0), fcGrpXstAtnOwners (0), lcbGrpXstAtnOwners (0),
fcSttbfAtnBkmk (0), lcbSttbfAtnBkmk (0), fcPlcSpaMom (0), lcbPlcSpaMom (0), fcPlcSpaHdr (0), lcbPlcSpaHdr (0),
fcPlcfAtnBkf (0), lcbPlcfAtnBkf (0), fcPlcfAtnBkl (0), lcbPlcfAtnBkl (0), fcPms (0), lcbPms (0),
fcFormFldSttbs (0), lcbFormFldSttbs (0), fcPlcfendRef (0), lcbPlcfendRef (0), fcPlcfendTxt (0), lcbPlcfendTxt (0),
fcPlcfFldEdn (0), lcbPlcfFldEdn (0), fcDggInfo (0), lcbDggInfo (0), fcSttbfRMark (0), lcbSttbfRMark (0),
fcSttbfCaption (0), lcbSttbfCaption (0), fcSttbfAutoCaption (0), lcbSttbfAutoCaption (0), fcPlcfWkb (0), lcbPlcfWkb (0),
fcPlcfSpl (0), lcbPlcfSpl (0), fcPlcftxbxTxt (0), lcbPlcftxbxTxt (0), fcPlcfFldTxbx (0), lcbPlcfFldTxbx (0),
fcPlcfHdrtxbxTxt (0), lcbPlcfHdrtxbxTxt (0), fcPlcffldHdrTxbx (0), lcbPlcffldHdrTxbx (0), fcStwUser (0), lcbStwUser (0),
fcSttbTtmbd (0), lcbSttbTtmbd (0), fcCookieData (0), lcbCookieData (0), fcPgdMotherOldOld (0), lcbPgdMotherOldOld (0),
fcBkdMotherOldOld (0), lcbBkdMotherOldOld (0), fcPgdFtnOldOld (0), lcbPgdFtnOldOld (0),fcBkdFtnOldOld (0), lcbBkdFtnOldOld (0),
fcPgdEdnOldOld (0), lcbPgdEdnOldOld (0), fcBkdEdnOldOld (0), lcbBkdEdnOldOld (0),fcSttbfIntlFld (0), lcbSttbfIntlFld (0),
fcRouteSlip (0), lcbRouteSlip (0), fcSttbSavedBy (0), lcbSttbSavedBy (0), fcSttbFnm (0), lcbSttbFnm (0),
fcPlfLst (0), lcbPlfLst (0), fcPlfLfo (0), lcbPlfLfo (0), fcPlcfTxbxBkd (0), lcbPlcfTxbxBkd (0),
fcPlcfTxbxHdrBkd (0), lcbPlcfTxbxHdrBkd (0), fcDocUndoWord9 (0), lcbDocUndoWord9 (0),fcRgbUse (0), lcbRgbUse (0),
fcUsp (0), lcbUsp (0), fcUskf (0), lcbUskf (0), fcPlcupcRgbUse (0), lcbPlcupcRgbUse (0),
fcPlcupcUsp (0), lcbPlcupcUsp (0), fcSttbGlsyStyle (0), lcbSttbGlsyStyle (0), fcPlgosl (0), lcbPlgosl (0),
fcPlcocx (0), lcbPlcocx (0), fcPlcfBteLvc (0), lcbPlcfBteLvc (0), dwLowDateTime (0), dwHighDateTime (0),
fcPlcfLvcPre10 (0), lcbPlcfLvcPre10 (0), fcPlcfAsumy (0), lcbPlcfAsumy (0), fcPlcfGram (0), lcbPlcfGram (0),
fcSttbListNames (0), lcbSttbListNames (0), fcSttbfUssr (0), lcbSttbfUssr (0) {}
//-----------------------------------------------------------------
unsigned int fcStshfOrig;
unsigned int lcbStshfOrig;
unsigned int fcStshf;
unsigned int lcbStshf;
unsigned int fcPlcffndRef;
unsigned int lcbPlcffndRef;
unsigned int fcPlcffndTxt;
unsigned int lcbPlcffndTxt;
unsigned int fcPlcfandRef;
unsigned int lcbPlcfandRef;
unsigned int fcPlcfandTxt;
unsigned int lcbPlcfandTxt;
unsigned int fcPlcfSed;
unsigned int lcbPlcfSed;
unsigned int fcPlcPad;
unsigned int lcbPlcPad;
unsigned int fcPlcfPhe;
unsigned int lcbPlcfPhe;
unsigned int fcSttbfGlsy;
unsigned int lcbSttbfGlsy;
unsigned int fcPlcfGlsy;
unsigned int lcbPlcfGlsy;
unsigned int fcPlcfHdd;
unsigned int lcbPlcfHdd;
unsigned int fcPlcfBteChpx;
unsigned int lcbPlcfBteChpx;
unsigned int fcPlcfBtePapx;
unsigned int lcbPlcfBtePapx;
unsigned int fcPlcfSea;
unsigned int lcbPlcfSea;
unsigned int fcSttbfFfn;
unsigned int lcbSttbfFfn;
unsigned int fcPlcfFldMom;
unsigned int lcbPlcfFldMom;
unsigned int fcPlcfFldHdr;
unsigned int lcbPlcfFldHdr;
unsigned int fcPlcfFldFtn;
unsigned int lcbPlcfFldFtn;
unsigned int fcPlcfFldAtn;
unsigned int lcbPlcfFldAtn;
unsigned int fcPlcfFldMcr;
unsigned int lcbPlcfFldMcr;
unsigned int fcSttbfBkmk;
unsigned int lcbSttbfBkmk;
unsigned int fcPlcfBkf;
unsigned int lcbPlcfBkf;
unsigned int fcPlcfBkl;
unsigned int lcbPlcfBkl;
unsigned int fcCmds;
unsigned int lcbCmds;
unsigned int fcSttbfMcr;
unsigned int lcbSttbfMcr;
unsigned int fcPrDrvr;
unsigned int lcbPrDrvr;
unsigned int fcPrEnvPort;
unsigned int lcbPrEnvPort;
unsigned int fcPrEnvLand;
unsigned int lcbPrEnvLand;
unsigned int fcWss;
unsigned int lcbWss;
unsigned int fcDop;
unsigned int lcbDop;
unsigned int fcSttbfAssoc;
unsigned int lcbSttbfAssoc;
unsigned int fcClx;
unsigned int lcbClx;
unsigned int fcPlcfPgdFtn;
unsigned int lcbPlcfPgdFtn;
unsigned int fcAutosaveSource;
unsigned int lcbAutosaveSource;
unsigned int fcGrpXstAtnOwners;
unsigned int lcbGrpXstAtnOwners;
unsigned int fcSttbfAtnBkmk;
unsigned int lcbSttbfAtnBkmk;
unsigned int fcPlcSpaMom;
unsigned int lcbPlcSpaMom;
unsigned int fcPlcSpaHdr;
unsigned int lcbPlcSpaHdr;
unsigned int fcPlcfAtnBkf;
unsigned int lcbPlcfAtnBkf;
unsigned int fcPlcfAtnBkl;
unsigned int lcbPlcfAtnBkl;
unsigned int fcPms;
unsigned int lcbPms;
unsigned int fcFormFldSttbs;
unsigned int lcbFormFldSttbs;
unsigned int fcPlcfendRef;
unsigned int lcbPlcfendRef;
unsigned int fcPlcfendTxt;
unsigned int lcbPlcfendTxt;
unsigned int fcPlcfFldEdn;
unsigned int lcbPlcfFldEdn;
unsigned int fcDggInfo;
unsigned int lcbDggInfo;
unsigned int fcSttbfRMark;
unsigned int lcbSttbfRMark;
unsigned int fcSttbfCaption;
unsigned int lcbSttbfCaption;
unsigned int fcSttbfAutoCaption;
unsigned int lcbSttbfAutoCaption;
unsigned int fcPlcfWkb;
unsigned int lcbPlcfWkb;
unsigned int fcPlcfSpl;
unsigned int lcbPlcfSpl;
unsigned int fcPlcftxbxTxt;
unsigned int lcbPlcftxbxTxt;
unsigned int fcPlcfFldTxbx;
unsigned int lcbPlcfFldTxbx;
unsigned int fcPlcfHdrtxbxTxt;
unsigned int lcbPlcfHdrtxbxTxt;
unsigned int fcPlcffldHdrTxbx;
unsigned int lcbPlcffldHdrTxbx;
unsigned int fcStwUser;
unsigned int lcbStwUser;
unsigned int fcSttbTtmbd;
unsigned int lcbSttbTtmbd;
unsigned int fcCookieData;
unsigned int lcbCookieData;
unsigned int fcPgdMotherOldOld;
unsigned int lcbPgdMotherOldOld;
unsigned int fcBkdMotherOldOld;
unsigned int lcbBkdMotherOldOld;
unsigned int fcPgdFtnOldOld;
unsigned int lcbPgdFtnOldOld;
unsigned int fcBkdFtnOldOld;
unsigned int lcbBkdFtnOldOld;
unsigned int fcPgdEdnOldOld;
unsigned int lcbPgdEdnOldOld;
unsigned int fcBkdEdnOldOld;
unsigned int lcbBkdEdnOldOld;
unsigned int fcSttbfIntlFld;
unsigned int lcbSttbfIntlFld;
unsigned int fcRouteSlip;
unsigned int lcbRouteSlip;
unsigned int fcSttbSavedBy;
unsigned int lcbSttbSavedBy;
unsigned int fcSttbFnm;
unsigned int lcbSttbFnm;
unsigned int fcPlfLst;
unsigned int lcbPlfLst;
unsigned int fcPlfLfo;
unsigned int lcbPlfLfo;
unsigned int fcPlcfTxbxBkd;
unsigned int lcbPlcfTxbxBkd;
unsigned int fcPlcfTxbxHdrBkd;
unsigned int lcbPlcfTxbxHdrBkd;
unsigned int fcDocUndoWord9;
unsigned int lcbDocUndoWord9;
unsigned int fcRgbUse;
unsigned int lcbRgbUse;
unsigned int fcUsp;
unsigned int lcbUsp;
unsigned int fcUskf;
unsigned int lcbUskf;
unsigned int fcPlcupcRgbUse;
unsigned int lcbPlcupcRgbUse;
unsigned int fcPlcupcUsp;
unsigned int lcbPlcupcUsp;
unsigned int fcSttbGlsyStyle;
unsigned int lcbSttbGlsyStyle;
unsigned int fcPlgosl;
unsigned int lcbPlgosl;
unsigned int fcPlcocx;
unsigned int lcbPlcocx;
unsigned int fcPlcfBteLvc;
unsigned int lcbPlcfBteLvc;
unsigned int dwLowDateTime;
unsigned int dwHighDateTime;
unsigned int fcPlcfLvcPre10;
unsigned int lcbPlcfLvcPre10;
unsigned int fcPlcfAsumy;
unsigned int lcbPlcfAsumy;
unsigned int fcPlcfGram;
unsigned int lcbPlcfGram;
unsigned int fcSttbListNames;
unsigned int lcbSttbListNames;
unsigned int fcSttbfUssr;
unsigned int lcbSttbfUssr;
} FibWord97;
typedef struct FibWord2000
{
unsigned int fcPlcfTch;
unsigned int lcbPlcfTch;
unsigned int fcRmdThreading;
unsigned int lcbRmdThreading;
unsigned int fcMid;
unsigned int lcbMid;
unsigned int fcSttbRgtplc;
unsigned int lcbSttbRgtplc;
unsigned int fcMsoEnvelope;
unsigned int lcbMsoEnvelope;
unsigned int fcPlcfLad;
unsigned int lcbPlcfLad;
unsigned int fcRgDofr;
unsigned int lcbRgDofr;
unsigned int fcPlcosl;
unsigned int lcbPlcosl;
unsigned int fcPlcfCookieOld;
unsigned int lcbPlcfCookieOld;
unsigned int fcPgdMotherOld;
unsigned int lcbPgdMotherOld;
unsigned int fcBkdMotherOld;
unsigned int lcbBkdMotherOld;
unsigned int fcPgdFtnOld;
unsigned int lcbPgdFtnOld;
unsigned int fcBkdFtnOld;
unsigned int lcbBkdFtnOld;
unsigned int fcPgdEdnOld;
unsigned int lcbPgdEdnOld;
unsigned int fcBkdEdnOld;
unsigned int lcbBkdEdnOld;
} FibWord2000;
typedef struct FibWord2002
{
unsigned int fcPlcfPgp;
unsigned int lcbPlcfPgp;
unsigned int fcPlcfuim;
unsigned int lcbPlcfuim;
unsigned int fcPlfguidUim;
unsigned int lcbPlfguidUim;
unsigned int fcAtrdExtra;
unsigned int lcbAtrdExtra;
unsigned int fcPlrsid;
unsigned int lcbPlrsid;
unsigned int fcSttbfBkmkFactoid;
unsigned int lcbSttbfBkmkFactoid;
unsigned int fcPlcfBkfFactoid;
unsigned int lcbPlcfBkfFactoid;
unsigned int fcPlcfcookie;
unsigned int lcbPlcfcookie;
unsigned int fcPlcfBklFactoid;
unsigned int lcbPlcfBklFactoid;
unsigned int fcFactoidData;
unsigned int lcbFactoidData;
unsigned int fcDocUndo;
unsigned int lcbDocUndo;
unsigned int fcSttbfBkmkFcc;
unsigned int lcbSttbfBkmkFcc;
unsigned int fcPlcfBkfFcc;
unsigned int lcbPlcfBkfFcc;
unsigned int fcPlcfBklFcc;
unsigned int lcbPlcfBklFcc;
unsigned int fcSttbfbkmkBPRepairs;
unsigned int lcbSttbfbkmkBPRepairs;
unsigned int fcPlcfbkfBPRepairs;
unsigned int lcbPlcfbkfBPRepairs;
unsigned int fcPlcfbklBPRepairs;
unsigned int lcbPlcfbklBPRepairs;
unsigned int fcPmsNew;
unsigned int lcbPmsNew;
unsigned int fcODSO;
unsigned int lcbODSO;
unsigned int fcPlcfpmiOldXP;
unsigned int lcbPlcfpmiOldXP;
unsigned int fcPlcfpmiNewXP;
unsigned int lcbPlcfpmiNewXP;
unsigned int fcPlcfpmiMixedXP;
unsigned int lcbPlcfpmiMixedXP;
unsigned int fcPlcffactoid;
unsigned int lcbPlcffactoid;
unsigned int fcPlcflvcOldXP;
unsigned int lcbPlcflvcOldXP;
unsigned int fcPlcflvcNewXP;
unsigned int lcbPlcflvcNewXP;
unsigned int fcPlcflvcMixedXP;
unsigned int lcbPlcflvcMixedXP;
} FibWord2002;
typedef struct FibWord2003
{
unsigned int fcHplxsdr;
unsigned int lcbHplxsdr;
unsigned int fcSttbfBkmkSdt;
unsigned int lcbSttbfBkmkSdt;
unsigned int fcPlcfBkfSdt;
unsigned int lcbPlcfBkfSdt;
unsigned int fcPlcfBklSdt;
unsigned int lcbPlcfBklSdt;
unsigned int fcCustomXForm;
unsigned int lcbCustomXForm;
unsigned int fcSttbfBkmkProt;
unsigned int lcbSttbfBkmkProt;
unsigned int fcPlcfBkfProt;
unsigned int lcbPlcfBkfProt;
unsigned int fcPlcfBklProt;
unsigned int lcbPlcfBklProt;
unsigned int fcSttbProtUser;
unsigned int lcbSttbProtUser;
unsigned int fcPlcfpmiOld;
unsigned int lcbPlcfpmiOld;
unsigned int fcPlcfpmiOldInline;
unsigned int lcbPlcfpmiOldInline;
unsigned int fcPlcfpmiNew;
unsigned int lcbPlcfpmiNew;
unsigned int fcPlcfpmiNewInline;
unsigned int lcbPlcfpmiNewInline;
unsigned int fcPlcflvcOld;
unsigned int lcbPlcflvcOld;
unsigned int fcPlcflvcOldInline;
unsigned int lcbPlcflvcOldInline;
unsigned int fcPlcflvcNew;
unsigned int lcbPlcflvcNew;
unsigned int fcPlcflvcNewInline;
unsigned int lcbPlcflvcNewInline;
unsigned int fcPgdMother;
unsigned int lcbPgdMother;
unsigned int fcBkdMother;
unsigned int lcbBkdMother;
unsigned int fcAfdMother;
unsigned int lcbAfdMother;
unsigned int fcPgdFtn;
unsigned int lcbPgdFtn;
unsigned int fcBkdFtn;
unsigned int lcbBkdFtn;
unsigned int fcAfdFtn;
unsigned int lcbAfdFtn;
unsigned int fcPgdEdn;
unsigned int lcbPgdEdn;
unsigned int fcBkdEdn;
unsigned int lcbBkdEdn;
unsigned int fcAfdEdn;
unsigned int lcbAfdEdn;
unsigned int fcAfd;
unsigned int lcbAfd;
} FibWord2003;
typedef struct FibWord2007
{
unsigned int fcPlcfmthd;
unsigned int lcbPlcfmthd;
unsigned int fcSttbfBkmkMoveFrom;
unsigned int lcbSttbfBkmkMoveFrom;
unsigned int fcPlcfBkfMoveFrom;
unsigned int lcbPlcfBkfMoveFrom;
unsigned int fcPlcfBklMoveFrom;
unsigned int lcbPlcfBklMoveFrom;
unsigned int fcSttbfBkmkMoveTo;
unsigned int lcbSttbfBkmkMoveTo;
unsigned int fcPlcfBkfMoveTo;
unsigned int lcbPlcfBkfMoveTo;
unsigned int fcPlcfBklMoveTo;
unsigned int lcbPlcfBklMoveTo;
unsigned int fcSttbfBkmkArto;
unsigned int lcbSttbfBkmkArto;
unsigned int fcPlcfBkfArto;
unsigned int lcbPlcfBkfArto;
unsigned int fcPlcfBklArto;
unsigned int lcbPlcfBklArto;
unsigned int fcArtoData;
unsigned int lcbArtoData;
unsigned int fcOssTheme;
unsigned int lcbOssTheme;
unsigned int fcColorSchemeMapping;
unsigned int lcbColorSchemeMapping;
} FibWord2007;
struct FibNew
{
FibNew() : nFibNew(Fib1997), cQuickSavesNew(0) {}
FibVersion nFibNew;
WORD cQuickSavesNew;
};
class FileInformationBlock
{
public:
bool m_bOlderVersion;
int m_CodePage;
FibBase m_FibBase;
RgW97 m_RgW97;
RgLw97 m_RgLw97;
FibWord97 m_FibWord97;
FibWord2000 m_FibWord2000;
FibWord2002 m_FibWord2002;
FibWord2003 m_FibWord2003;
FibWord2007 m_FibWord2007;
FibNew m_FibNew;
WORD csw;
WORD cslw;
WORD cbRgFcLcb;
WORD cswNew;
void reset( VirtualStreamReader reader )
{
if (m_FibBase.nFib > 0 && m_FibBase.nFib <= Fib1995)
{
m_RgLw97.cbMac = reader.ReadInt32();//32
/*m_FibWord97.fcSpare0 = */reader.ReadInt32();
/*m_FibWord97.fcSpare1 = */reader.ReadInt32();
/*m_FibWord97.fcSpare2 = */reader.ReadInt32();
/*m_FibWord97.fcSpare3 = */reader.ReadInt32(); //48
m_RgLw97.ccpText = reader.ReadInt32();
m_RgLw97.ccpFtn = reader.ReadInt32();
m_RgLw97.ccpHdr = reader.ReadInt32();
/*m_FibWord97.ccpMcr = */reader.ReadInt32();
m_RgLw97.ccpAtn = reader.ReadInt32();
m_RgLw97.ccpEdn = reader.ReadInt32();
m_RgLw97.ccpTxbx = reader.ReadInt32();
m_RgLw97.ccpHdrTxbx = reader.ReadInt32();
/*m_FibWord97.ccpSpare2 = */reader.ReadInt32(); //84
m_FibWord97.fcStshfOrig = reader.ReadInt32();
m_FibWord97.lcbStshfOrig = reader.ReadInt32();
m_FibWord97.fcStshf = reader.ReadInt32();
m_FibWord97.lcbStshf = reader.ReadInt32();
m_FibWord97.fcPlcffndRef = reader.ReadInt32();
m_FibWord97.lcbPlcffndRef = reader.ReadInt32();
m_FibWord97.lcbPlcfandTxt = reader.ReadInt32();//112
m_FibWord97.lcbPlcffndTxt = reader.ReadInt32();
m_FibWord97.fcPlcfandRef = reader.ReadInt32();
m_FibWord97.lcbPlcfandRef = reader.ReadInt32();
m_FibWord97.fcPlcfandTxt = reader.ReadInt32();
m_FibWord97.lcbPlcfandTxt = reader.ReadInt32();
m_FibWord97.fcPlcfSed = reader.ReadInt32(); //136
m_FibWord97.lcbPlcfSed = reader.ReadInt32();
m_FibWord97.fcPlcPad = reader.ReadInt32();
m_FibWord97.lcbPlcPad = reader.ReadInt32();
m_FibWord97.fcPlcfPhe = reader.ReadInt32();
m_FibWord97.lcbPlcfPhe = reader.ReadInt32();
m_FibWord97.fcSttbfGlsy = reader.ReadInt32();
m_FibWord97.lcbSttbfGlsy = reader.ReadInt32();
m_FibWord97.fcPlcfGlsy = reader.ReadInt32();
m_FibWord97.lcbPlcfGlsy = reader.ReadInt32();
m_FibWord97.fcPlcfHdd = reader.ReadInt32();
m_FibWord97.lcbPlcfHdd = reader.ReadInt32();
m_FibWord97.fcPlcfBteChpx = reader.ReadInt32();
m_FibWord97.lcbPlcfBteChpx = reader.ReadInt32();
m_FibWord97.fcPlcfBtePapx = reader.ReadInt32();
m_FibWord97.lcbPlcfBtePapx = reader.ReadInt32();
m_FibWord97.fcPlcfSea = reader.ReadInt32();
m_FibWord97.lcbPlcfSea = reader.ReadInt32();
m_FibWord97.fcSttbfFfn = reader.ReadInt32();
m_FibWord97.lcbSttbfFfn = reader.ReadInt32();
m_FibWord97.fcPlcfFldMom = reader.ReadInt32(); //216
m_FibWord97.lcbPlcfFldMom = reader.ReadInt32();
m_FibWord97.fcPlcfFldHdr = reader.ReadInt32();
m_FibWord97.lcbPlcfFldHdr = reader.ReadInt32();
m_FibWord97.fcPlcfFldFtn = reader.ReadInt32();
m_FibWord97.lcbPlcfFldFtn = reader.ReadInt32();
m_FibWord97.fcPlcfFldAtn = reader.ReadInt32();
m_FibWord97.lcbPlcfFldAtn = reader.ReadInt32();
m_FibWord97.fcPlcfFldMcr = reader.ReadInt32();
m_FibWord97.lcbPlcfFldMcr = reader.ReadInt32();
m_FibWord97.fcSttbfBkmk = reader.ReadInt32();
m_FibWord97.lcbSttbfBkmk = reader.ReadInt32();
m_FibWord97.fcPlcfBkf = reader.ReadInt32();
m_FibWord97.lcbPlcfBkf = reader.ReadInt32();
m_FibWord97.fcPlcfBkl = reader.ReadInt32();
m_FibWord97.lcbPlcfBkl = reader.ReadInt32();
m_FibWord97.fcCmds = reader.ReadInt32();
m_FibWord97.lcbCmds = reader.ReadInt32();
/*m_FibWord97.fcPlcMcr = */reader.ReadInt32();
/*m_FibWord97.lcbPlcMcr = */reader.ReadInt32();
m_FibWord97.fcSttbfMcr = reader.ReadInt32();
m_FibWord97.lcbSttbfMcr = reader.ReadInt32();
m_FibWord97.fcPrDrvr = reader.ReadInt32();
m_FibWord97.lcbPrDrvr = reader.ReadInt32();
m_FibWord97.fcPrEnvPort = reader.ReadInt32();
m_FibWord97.lcbPrEnvPort = reader.ReadInt32(); //316
m_FibWord97.fcPrEnvLand = reader.ReadInt32();
m_FibWord97.lcbPrEnvLand = reader.ReadInt32();
m_FibWord97.fcWss = reader.ReadInt32();
m_FibWord97.lcbWss = reader.ReadInt32();
m_FibWord97.fcDop = reader.ReadInt32();
m_FibWord97.lcbDop = reader.ReadInt32();
m_FibWord97.fcSttbfAssoc = reader.ReadInt32();
m_FibWord97.lcbSttbfAssoc = reader.ReadInt32();
m_FibWord97.fcClx = reader.ReadInt32();
m_FibWord97.lcbClx = reader.ReadInt32();
m_FibWord97.fcPlcfPgdFtn = reader.ReadInt32();
m_FibWord97.lcbPlcfPgdFtn = reader.ReadInt32();
m_FibWord97.fcAutosaveSource = reader.ReadInt32();
m_FibWord97.lcbAutosaveSource = reader.ReadInt32();
m_FibWord97.fcGrpXstAtnOwners = reader.ReadInt32();
m_FibWord97.lcbGrpXstAtnOwners = reader.ReadInt32();
m_FibWord97.fcSttbfAtnBkmk = reader.ReadInt32();
m_FibWord97.lcbSttbfAtnBkmk = reader.ReadInt32();
/*m_FibWord97.wSpare4Fib = */reader.ReadInt16(); //392
/*m_FibWord97.pnChpFirst = */reader.ReadInt16();
/*m_FibWord97.pnPapFirst = */reader.ReadInt16();
/*m_FibWord97.cpnBteChp = */reader.ReadInt16();
/*m_FibWord97.cpnBtePap = */reader.ReadInt16();
m_FibWord97.fcPlcSpaMom = reader.ReadInt32();
m_FibWord97.lcbPlcSpaMom = reader.ReadInt32();
m_FibWord97.fcPlcSpaHdr = reader.ReadInt32(); /*fcPlcfdoaHdr*/
m_FibWord97.lcbPlcSpaHdr = reader.ReadInt32(); /*lcbPlcfdoaHdr*/
/*m_FibWord97.fcUnused1 =*/ reader.ReadInt32();
/*m_FibWord97.lcbUnused1 =*/ reader.ReadInt32();
/*m_FibWord97.fcUnused2 =*/ reader.ReadInt32();
/*m_FibWord97.lcbUnused2 =*/ reader.ReadInt32();
m_FibWord97.fcPlcfAtnBkf = reader.ReadInt32();
m_FibWord97.lcbPlcfAtnBkf = reader.ReadInt32();
m_FibWord97.fcPlcfAtnBkl = reader.ReadInt32();
m_FibWord97.lcbPlcfAtnBkl = reader.ReadInt32();
m_FibWord97.fcPms = reader.ReadInt32();
m_FibWord97.lcbPms = reader.ReadInt32();
m_FibWord97.fcFormFldSttbs/*f*/ = reader.ReadInt32();
m_FibWord97.lcbFormFldSttbs/*f*/= reader.ReadInt32();
m_FibWord97.fcPlcfendRef = reader.ReadInt32(); //466
m_FibWord97.lcbPlcfendRef = reader.ReadInt32();
m_FibWord97.fcPlcfendTxt = reader.ReadInt32();
m_FibWord97.lcbPlcfendTxt = reader.ReadInt32();
m_FibWord97.fcPlcfFldEdn = reader.ReadInt32();
m_FibWord97.lcbPlcfFldEdn = reader.ReadInt32();
/*m_FibWord97.fcPlcfpgdEdn =*/ reader.ReadInt32();
/*m_FibWord97.lcbPlcfpgdEdn =*/ reader.ReadInt32();
/*m_FibWord97.fcUnused3 =*/ reader.ReadInt32();
/*m_FibWord97.lcbUnused3 =*/ reader.ReadInt32();
m_FibWord97.fcSttbfRMark = reader.ReadInt32();
m_FibWord97.lcbSttbfRMark = reader.ReadInt32();
m_FibWord97.fcSttbfCaption = reader.ReadInt32();
m_FibWord97.lcbSttbfCaption = reader.ReadInt32();
m_FibWord97.fcSttbfAutoCaption = reader.ReadInt32();
m_FibWord97.lcbSttbfAutoCaption = reader.ReadInt32();
m_FibWord97.fcPlcfWkb = reader.ReadInt32(); //530
m_FibWord97.lcbPlcfWkb = reader.ReadInt32();
/*m_FibWord97.fcUnused4 =*/ reader.ReadInt32();
/*m_FibWord97.lcbUnused4 =*/ reader.ReadInt32();
m_FibWord97.fcPlcftxbxTxt = reader.ReadInt32();
m_FibWord97.lcbPlcftxbxTxt = reader.ReadInt32();
m_FibWord97.fcPlcfFldTxbx = reader.ReadInt32();
m_FibWord97.lcbPlcfFldTxbx = reader.ReadInt32();
m_FibWord97.fcPlcfHdrtxbxTxt = reader.ReadInt32();
m_FibWord97.lcbPlcfHdrtxbxTxt = reader.ReadInt32();
m_FibWord97.fcPlcffldHdrTxbx = reader.ReadInt32();
m_FibWord97.lcbPlcffldHdrTxbx = reader.ReadInt32();
m_FibWord97.fcStwUser = reader.ReadInt32();
m_FibWord97.lcbStwUser = reader.ReadInt32();
m_FibWord97.fcSttbTtmbd = reader.ReadInt32();
m_FibWord97.lcbSttbTtmbd = reader.ReadInt32();
/*m_FibWord97.fcPlcunused = */reader.ReadInt32();
/*m_FibWord97.lcbUnused = */reader.ReadInt32();
m_FibWord97.fcPgdMotherOldOld = reader.ReadInt32(); /*fcpgdMother.fcPgd*/ //602
m_FibWord97.lcbPgdMotherOldOld = reader.ReadInt32(); /*fcPgdMother.lcbPgd*/
m_FibWord97.fcBkdMotherOldOld = reader.ReadInt32(); /*fcPgdMother.fcBkd*/
m_FibWord97.lcbBkdMotherOldOld = reader.ReadInt32(); /*fcPgdMother.lcbBkd*/ // ???? size 2 ????
m_FibWord97.fcPgdFtnOldOld = reader.ReadInt32(); /*fcPgdFtn.fcPgd*/
m_FibWord97.lcbPgdFtnOldOld = reader.ReadInt32(); /*rgfcpgdFtn.lcbPgd*/
m_FibWord97.fcBkdFtnOldOld = reader.ReadInt32(); /*rgfcpgdFtn.fcBkd*/
m_FibWord97.lcbBkdFtnOldOld = reader.ReadInt32(); /*rgfcpgdFtn.lcbBkd*/
m_FibWord97.fcPgdEdnOldOld = reader.ReadInt32(); /*fcpgdFtn.fcPgd*/
m_FibWord97.lcbPgdEdnOldOld = reader.ReadInt32(); /*rgfcpgdFtn.lcbPgd*/
m_FibWord97.fcBkdEdnOldOld = reader.ReadInt32(); /*rgfcpgdFtn.fcBkd*/
m_FibWord97.lcbBkdEdnOldOld = reader.ReadInt32(); /*rgfcpgdFtn.lcbBkd*/
m_FibWord97.fcSttbfIntlFld = reader.ReadInt32();
m_FibWord97.lcbSttbfIntlFld = reader.ReadInt32();
m_FibWord97.fcRouteSlip = reader.ReadInt32(); //656
m_FibWord97.lcbRouteSlip = reader.ReadInt32();
m_FibWord97.fcSttbSavedBy = reader.ReadInt32();
m_FibWord97.lcbSttbSavedBy = reader.ReadInt32();
m_FibWord97.fcSttbFnm = reader.ReadInt32();
m_FibWord97.lcbSttbFnm = reader.ReadInt32(); //676
}
if (m_FibBase.nFib > Fib1995 || m_FibBase.nFib == 0)
{
reader.ReadBytes(8, false); //68
m_RgLw97.ccpText = reader.ReadInt32(); //76
m_RgLw97.ccpFtn = reader.ReadInt32(); //80
m_RgLw97.ccpHdr = reader.ReadInt32(); //84
reader.ReadBytes( 4, false ); //88
m_RgLw97.ccpAtn = reader.ReadInt32(); //92
m_RgLw97.ccpEdn = reader.ReadInt32(); //96
m_RgLw97.ccpTxbx = reader.ReadInt32(); //100
m_RgLw97.ccpHdrTxbx = reader.ReadInt32(); //104
reader.ReadBytes(44, false); //108
cbRgFcLcb = reader.ReadUInt16(); //152
//Read the FibRgFcLcb97
m_FibWord97.fcStshfOrig = reader.ReadUInt32(); //154
m_FibWord97.lcbStshfOrig = reader.ReadUInt32(); //158
m_FibWord97.fcStshf = reader.ReadUInt32(); //162
m_FibWord97.lcbStshf = reader.ReadUInt32(); //166
m_FibWord97.fcPlcffndRef = reader.ReadUInt32(); //170
m_FibWord97.lcbPlcffndRef = reader.ReadUInt32(); //174
m_FibWord97.fcPlcffndTxt = reader.ReadUInt32(); //178
m_FibWord97.lcbPlcffndTxt = reader.ReadUInt32(); //182
m_FibWord97.fcPlcfandRef = reader.ReadUInt32(); //186
m_FibWord97.lcbPlcfandRef = reader.ReadUInt32(); //190
m_FibWord97.fcPlcfandTxt = reader.ReadUInt32(); //194
m_FibWord97.lcbPlcfandTxt = reader.ReadUInt32(); //198
m_FibWord97.fcPlcfSed = reader.ReadUInt32(); //202
m_FibWord97.lcbPlcfSed = reader.ReadUInt32(); //206
m_FibWord97.fcPlcPad = reader.ReadUInt32(); //210
m_FibWord97.lcbPlcPad = reader.ReadUInt32(); //214
m_FibWord97.fcPlcfPhe = reader.ReadUInt32(); //218
m_FibWord97.lcbPlcfPhe = reader.ReadUInt32(); //222
m_FibWord97.fcSttbfGlsy = reader.ReadUInt32(); //226
m_FibWord97.lcbSttbfGlsy = reader.ReadUInt32(); //230
m_FibWord97.fcPlcfGlsy = reader.ReadUInt32(); //234
m_FibWord97.lcbPlcfGlsy = reader.ReadUInt32(); //238
m_FibWord97.fcPlcfHdd = reader.ReadUInt32(); //242
m_FibWord97.lcbPlcfHdd = reader.ReadUInt32(); //246
m_FibWord97.fcPlcfBteChpx = reader.ReadUInt32(); //250
m_FibWord97.lcbPlcfBteChpx = reader.ReadUInt32(); //254
m_FibWord97.fcPlcfBtePapx = reader.ReadUInt32(); //258
m_FibWord97.lcbPlcfBtePapx = reader.ReadUInt32(); //262
m_FibWord97.fcPlcfSea = reader.ReadUInt32(); //266
m_FibWord97.lcbPlcfSea = reader.ReadUInt32(); //270
m_FibWord97.fcSttbfFfn = reader.ReadUInt32(); //274
m_FibWord97.lcbSttbfFfn = reader.ReadUInt32(); //278
m_FibWord97.fcPlcfFldMom = reader.ReadUInt32(); //282
m_FibWord97.lcbPlcfFldMom = reader.ReadUInt32(); //286
m_FibWord97.fcPlcfFldHdr = reader.ReadUInt32(); //290
m_FibWord97.lcbPlcfFldHdr = reader.ReadUInt32(); //294
m_FibWord97.fcPlcfFldFtn = reader.ReadUInt32(); //298
m_FibWord97.lcbPlcfFldFtn = reader.ReadUInt32(); //302
m_FibWord97.fcPlcfFldAtn = reader.ReadUInt32(); //306
m_FibWord97.lcbPlcfFldAtn = reader.ReadUInt32(); //310
m_FibWord97.fcPlcfFldMcr = reader.ReadUInt32(); //314
m_FibWord97.lcbPlcfFldMcr = reader.ReadUInt32(); //318
m_FibWord97.fcSttbfBkmk = reader.ReadUInt32(); //322
m_FibWord97.lcbSttbfBkmk = reader.ReadUInt32(); //326
m_FibWord97.fcPlcfBkf = reader.ReadUInt32(); //330
m_FibWord97.lcbPlcfBkf = reader.ReadUInt32(); //334
m_FibWord97.fcPlcfBkl = reader.ReadUInt32(); //338
m_FibWord97.lcbPlcfBkl = reader.ReadUInt32(); //342
m_FibWord97.fcCmds = reader.ReadUInt32(); //346
m_FibWord97.lcbCmds = reader.ReadUInt32(); //350
reader.ReadUInt32(); // 354
reader.ReadUInt32(); // 358
m_FibWord97.fcSttbfMcr = reader.ReadUInt32(); // 362
m_FibWord97.lcbSttbfMcr = reader.ReadUInt32(); // 366
m_FibWord97.fcPrDrvr = reader.ReadUInt32(); // 370
m_FibWord97.lcbPrDrvr = reader.ReadUInt32(); // 374
m_FibWord97.fcPrEnvPort = reader.ReadUInt32(); // 378
m_FibWord97.lcbPrEnvPort = reader.ReadUInt32(); // 382
m_FibWord97.fcPrEnvLand = reader.ReadUInt32(); // 386
m_FibWord97.lcbPrEnvLand = reader.ReadUInt32(); // 390
m_FibWord97.fcWss = reader.ReadUInt32(); // 394
m_FibWord97.lcbWss = reader.ReadUInt32(); // 398
m_FibWord97.fcDop = reader.ReadUInt32(); // 402
m_FibWord97.lcbDop = reader.ReadUInt32(); // 406
m_FibWord97.fcSttbfAssoc = reader.ReadUInt32(); // 410
m_FibWord97.lcbSttbfAssoc = reader.ReadUInt32(); // 414
m_FibWord97.fcClx = reader.ReadUInt32(); // 418
m_FibWord97.lcbClx = reader.ReadUInt32(); // 422
m_FibWord97.fcPlcfPgdFtn = reader.ReadUInt32(); // 426
m_FibWord97.lcbPlcfPgdFtn = reader.ReadUInt32(); // 430
m_FibWord97.fcAutosaveSource = reader.ReadUInt32(); // 434
m_FibWord97.lcbAutosaveSource = reader.ReadUInt32(); // 438
m_FibWord97.fcGrpXstAtnOwners = reader.ReadUInt32(); // 442
m_FibWord97.lcbGrpXstAtnOwners = reader.ReadUInt32(); // 446
m_FibWord97.fcSttbfAtnBkmk = reader.ReadUInt32(); // 450
m_FibWord97.lcbSttbfAtnBkmk = reader.ReadUInt32(); // 454
reader.ReadUInt32(); //458
reader.ReadUInt32(); //462
reader.ReadUInt32(); //466
reader.ReadUInt32(); //470
m_FibWord97.fcPlcSpaMom = reader.ReadUInt32(); //474
m_FibWord97.lcbPlcSpaMom = reader.ReadUInt32(); //478
m_FibWord97.fcPlcSpaHdr = reader.ReadUInt32(); //482
m_FibWord97.lcbPlcSpaHdr = reader.ReadUInt32(); //486
m_FibWord97.fcPlcfAtnBkf = reader.ReadUInt32(); //490
m_FibWord97.lcbPlcfAtnBkf = reader.ReadUInt32(); //494
m_FibWord97.fcPlcfAtnBkl = reader.ReadUInt32(); //498
m_FibWord97.lcbPlcfAtnBkl = reader.ReadUInt32(); //502
m_FibWord97.fcPms = reader.ReadUInt32(); //506
m_FibWord97.lcbPms = reader.ReadUInt32(); //510
m_FibWord97.fcFormFldSttbs = reader.ReadUInt32(); //514
m_FibWord97.lcbFormFldSttbs = reader.ReadUInt32(); //518
m_FibWord97.fcPlcfendRef = reader.ReadUInt32(); //522
m_FibWord97.lcbPlcfendRef = reader.ReadUInt32(); //526
m_FibWord97.fcPlcfendTxt = reader.ReadUInt32(); //530
m_FibWord97.lcbPlcfendTxt = reader.ReadUInt32(); //534
m_FibWord97.fcPlcfFldEdn = reader.ReadUInt32(); //538
m_FibWord97.lcbPlcfFldEdn = reader.ReadUInt32(); //542
reader.ReadUInt32(); //546
reader.ReadUInt32(); //550
m_FibWord97.fcDggInfo = reader.ReadUInt32(); //554
m_FibWord97.lcbDggInfo = reader.ReadUInt32(); //558
m_FibWord97.fcSttbfRMark = reader.ReadUInt32(); //562
m_FibWord97.lcbSttbfRMark = reader.ReadUInt32(); //566
m_FibWord97.fcSttbfCaption = reader.ReadUInt32(); //570
m_FibWord97.lcbSttbfCaption = reader.ReadUInt32(); //574
m_FibWord97.fcSttbfAutoCaption = reader.ReadUInt32(); //578
m_FibWord97.lcbSttbfAutoCaption = reader.ReadUInt32(); //582
m_FibWord97.fcPlcfWkb = reader.ReadUInt32(); //586
m_FibWord97.lcbPlcfWkb = reader.ReadUInt32(); //590
m_FibWord97.fcPlcfSpl = reader.ReadUInt32(); //594
m_FibWord97.lcbPlcfSpl = reader.ReadUInt32(); //598
m_FibWord97.fcPlcftxbxTxt = reader.ReadUInt32(); //602
m_FibWord97.lcbPlcftxbxTxt = reader.ReadUInt32(); //606
m_FibWord97.fcPlcfFldTxbx = reader.ReadUInt32(); //610
m_FibWord97.lcbPlcfFldTxbx = reader.ReadUInt32(); //614
m_FibWord97.fcPlcfHdrtxbxTxt = reader.ReadUInt32(); //618
m_FibWord97.lcbPlcfHdrtxbxTxt = reader.ReadUInt32(); //622
m_FibWord97.fcPlcffldHdrTxbx = reader.ReadUInt32(); //626
m_FibWord97.lcbPlcffldHdrTxbx = reader.ReadUInt32(); //630
m_FibWord97.fcStwUser = reader.ReadUInt32(); //634
m_FibWord97.lcbStwUser = reader.ReadUInt32(); //638
m_FibWord97.fcSttbTtmbd = reader.ReadUInt32(); //642
m_FibWord97.lcbSttbTtmbd = reader.ReadUInt32(); //646
m_FibWord97.fcCookieData = reader.ReadUInt32(); //650
m_FibWord97.lcbCookieData = reader.ReadUInt32(); //654
m_FibWord97.fcPgdMotherOldOld = reader.ReadUInt32(); //658
m_FibWord97.lcbPgdMotherOldOld = reader.ReadUInt32(); //662
m_FibWord97.fcBkdMotherOldOld = reader.ReadUInt32(); //666
m_FibWord97.lcbBkdMotherOldOld = reader.ReadUInt32(); //670
m_FibWord97.fcPgdFtnOldOld = reader.ReadUInt32(); //674
m_FibWord97.lcbPgdFtnOldOld = reader.ReadUInt32(); //678
m_FibWord97.fcBkdFtnOldOld = reader.ReadUInt32(); //682
m_FibWord97.lcbBkdFtnOldOld = reader.ReadUInt32(); //686
m_FibWord97.fcPgdEdnOldOld = reader.ReadUInt32(); //690
m_FibWord97.lcbPgdEdnOldOld = reader.ReadUInt32(); //694
m_FibWord97.fcBkdEdnOldOld = reader.ReadUInt32(); //698
m_FibWord97.lcbBkdEdnOldOld = reader.ReadUInt32(); //702
m_FibWord97.fcSttbfIntlFld = reader.ReadUInt32(); //706
m_FibWord97.lcbSttbfIntlFld = reader.ReadUInt32(); //710
m_FibWord97.fcRouteSlip = reader.ReadUInt32(); //714
m_FibWord97.lcbRouteSlip = reader.ReadUInt32(); //718
m_FibWord97.fcSttbSavedBy = reader.ReadUInt32(); //722
m_FibWord97.lcbSttbSavedBy = reader.ReadUInt32(); //726
m_FibWord97.fcSttbFnm = reader.ReadUInt32(); //730
m_FibWord97.lcbSttbFnm = reader.ReadUInt32(); //734
m_FibWord97.fcPlfLst = reader.ReadUInt32(); //738
m_FibWord97.lcbPlfLst = reader.ReadUInt32(); //742
m_FibWord97.fcPlfLfo = reader.ReadUInt32(); //746
m_FibWord97.lcbPlfLfo = reader.ReadUInt32(); //750
m_FibWord97.fcPlcfTxbxBkd = reader.ReadUInt32(); //754
m_FibWord97.lcbPlcfTxbxBkd = reader.ReadUInt32(); //758
m_FibWord97.fcPlcfTxbxHdrBkd = reader.ReadUInt32(); //762
m_FibWord97.lcbPlcfTxbxHdrBkd = reader.ReadUInt32(); //766
m_FibWord97.fcDocUndoWord9 = reader.ReadUInt32(); //770
m_FibWord97.lcbDocUndoWord9 = reader.ReadUInt32(); //774
m_FibWord97.fcRgbUse = reader.ReadUInt32(); //778
m_FibWord97.lcbRgbUse = reader.ReadUInt32(); //782
m_FibWord97.fcUsp = reader.ReadUInt32(); //786
m_FibWord97.lcbUsp = reader.ReadUInt32(); //790
m_FibWord97.fcUskf = reader.ReadUInt32(); //794
m_FibWord97.lcbUskf = reader.ReadUInt32(); //798
m_FibWord97.fcPlcupcRgbUse = reader.ReadUInt32(); //802
m_FibWord97.lcbPlcupcRgbUse = reader.ReadUInt32(); //806
m_FibWord97.fcPlcupcUsp = reader.ReadUInt32(); //810
m_FibWord97.lcbPlcupcUsp = reader.ReadUInt32(); //814
m_FibWord97.fcSttbGlsyStyle = reader.ReadUInt32(); //818
m_FibWord97.lcbSttbGlsyStyle = reader.ReadUInt32(); //822
m_FibWord97.fcPlgosl = reader.ReadUInt32(); //826
m_FibWord97.lcbPlgosl = reader.ReadUInt32(); //830
m_FibWord97.fcPlcocx = reader.ReadUInt32(); //834
m_FibWord97.lcbPlcocx = reader.ReadUInt32(); //838
m_FibWord97.fcPlcfBteLvc = reader.ReadUInt32(); //842
m_FibWord97.lcbPlcfBteLvc = reader.ReadUInt32(); //846
m_FibWord97.dwLowDateTime = reader.ReadUInt32(); //850
m_FibWord97.dwHighDateTime = reader.ReadUInt32(); //854
m_FibWord97.fcPlcfLvcPre10 = reader.ReadUInt32(); //858
m_FibWord97.lcbPlcfLvcPre10 = reader.ReadUInt32(); //862
m_FibWord97.fcPlcfAsumy = reader.ReadUInt32(); //866
m_FibWord97.lcbPlcfAsumy = reader.ReadUInt32(); //870
m_FibWord97.fcPlcfGram = reader.ReadUInt32(); //874
m_FibWord97.lcbPlcfGram = reader.ReadUInt32(); //878
m_FibWord97.fcSttbListNames = reader.ReadUInt32(); //882
m_FibWord97.lcbSttbListNames = reader.ReadUInt32(); //886
m_FibWord97.fcSttbfUssr = reader.ReadUInt32(); //890
m_FibWord97.lcbSttbfUssr = reader.ReadUInt32(); //894
}
if (m_FibBase.nFib >= Fib2000)
{
//Read also the FibRgFcLcb2000
m_FibWord2000.fcPlcfTch = reader.ReadUInt32(); //898
m_FibWord2000.lcbPlcfTch = reader.ReadUInt32(); //902
m_FibWord2000.fcRmdThreading = reader.ReadUInt32(); //906
m_FibWord2000.lcbRmdThreading = reader.ReadUInt32(); //910
m_FibWord2000.fcMid = reader.ReadUInt32(); //914
m_FibWord2000.lcbMid = reader.ReadUInt32(); //918
m_FibWord2000.fcSttbRgtplc = reader.ReadUInt32(); //922
m_FibWord2000.lcbSttbRgtplc = reader.ReadUInt32(); //926
m_FibWord2000.fcMsoEnvelope = reader.ReadUInt32(); //930
m_FibWord2000.lcbMsoEnvelope = reader.ReadUInt32(); //934
m_FibWord2000.fcPlcfLad = reader.ReadUInt32(); //938
m_FibWord2000.lcbPlcfLad = reader.ReadUInt32(); //942
m_FibWord2000.fcRgDofr = reader.ReadUInt32(); //946
m_FibWord2000.lcbRgDofr = reader.ReadUInt32(); //950
m_FibWord2000.fcPlcosl = reader.ReadUInt32(); //954
m_FibWord2000.lcbPlcosl = reader.ReadUInt32(); //958
m_FibWord2000.fcPlcfCookieOld = reader.ReadUInt32(); //962
m_FibWord2000.lcbPlcfCookieOld = reader.ReadUInt32(); //966
m_FibWord2000.fcPgdMotherOld = reader.ReadUInt32(); //970
m_FibWord2000.lcbPgdMotherOld = reader.ReadUInt32(); //974
m_FibWord2000.fcBkdMotherOld = reader.ReadUInt32(); //978
m_FibWord2000.lcbBkdMotherOld = reader.ReadUInt32(); //982
m_FibWord2000.fcPgdFtnOld = reader.ReadUInt32(); //986
m_FibWord2000.lcbPgdFtnOld = reader.ReadUInt32(); //990
m_FibWord2000.fcBkdFtnOld = reader.ReadUInt32(); //994
m_FibWord2000.lcbBkdFtnOld = reader.ReadUInt32(); //998
m_FibWord2000.fcPgdEdnOld = reader.ReadUInt32(); //1002
m_FibWord2000.lcbPgdEdnOld = reader.ReadUInt32(); //1006
m_FibWord2000.fcBkdEdnOld = reader.ReadUInt32(); //1010
m_FibWord2000.lcbBkdEdnOld = reader.ReadUInt32(); //1014
}
if ( m_FibBase.nFib >= Fib2002 )
{
//Read also the fibRgFcLcb2002
reader.ReadUInt32(); //1018
reader.ReadUInt32(); //1022
m_FibWord2002.fcPlcfPgp = reader.ReadUInt32(); //1026
m_FibWord2002.lcbPlcfPgp = reader.ReadUInt32(); //1030
m_FibWord2002.fcPlcfuim = reader.ReadUInt32(); //1034
m_FibWord2002.lcbPlcfuim = reader.ReadUInt32(); //1038
m_FibWord2002.fcPlfguidUim = reader.ReadUInt32(); //1042
m_FibWord2002.lcbPlfguidUim = reader.ReadUInt32(); //1046
m_FibWord2002.fcAtrdExtra = reader.ReadUInt32(); //1050
m_FibWord2002.lcbAtrdExtra = reader.ReadUInt32(); //1054
m_FibWord2002.fcPlrsid = reader.ReadUInt32(); //1058
m_FibWord2002.lcbPlrsid = reader.ReadUInt32(); //1062
m_FibWord2002.fcSttbfBkmkFactoid = reader.ReadUInt32(); //1066
m_FibWord2002.lcbSttbfBkmkFactoid = reader.ReadUInt32(); //1070
m_FibWord2002.fcPlcfBkfFactoid = reader.ReadUInt32(); //1074
m_FibWord2002.lcbPlcfBkfFactoid = reader.ReadUInt32(); //1078
m_FibWord2002.fcPlcfcookie = reader.ReadUInt32(); //1082
m_FibWord2002.lcbPlcfcookie = reader.ReadUInt32(); //1086
m_FibWord2002.fcPlcfBklFactoid = reader.ReadUInt32(); //1090
m_FibWord2002.lcbPlcfBklFactoid = reader.ReadUInt32(); //1094
m_FibWord2002.fcFactoidData = reader.ReadUInt32(); //1098
m_FibWord2002.lcbFactoidData = reader.ReadUInt32(); //1102
m_FibWord2002.fcDocUndo = reader.ReadUInt32(); //1106
m_FibWord2002.lcbDocUndo = reader.ReadUInt32(); //1110
m_FibWord2002.fcSttbfBkmkFcc = reader.ReadUInt32(); //1114
m_FibWord2002.lcbSttbfBkmkFcc = reader.ReadUInt32(); //1118
m_FibWord2002.fcPlcfBkfFcc = reader.ReadUInt32(); //1122
m_FibWord2002.lcbPlcfBkfFcc = reader.ReadUInt32(); //1126
m_FibWord2002.fcPlcfBklFcc = reader.ReadUInt32(); //1130
m_FibWord2002.lcbPlcfBklFcc = reader.ReadUInt32(); //1134
m_FibWord2002.fcSttbfbkmkBPRepairs = reader.ReadUInt32(); //1138
m_FibWord2002.lcbSttbfbkmkBPRepairs = reader.ReadUInt32(); //1142
m_FibWord2002.fcPlcfbkfBPRepairs = reader.ReadUInt32(); //1146
m_FibWord2002.lcbPlcfbkfBPRepairs = reader.ReadUInt32(); //1150
m_FibWord2002.fcPlcfbklBPRepairs = reader.ReadUInt32(); //1154
m_FibWord2002.lcbPlcfbklBPRepairs = reader.ReadUInt32(); //1158
m_FibWord2002.fcPmsNew = reader.ReadUInt32(); //1162
m_FibWord2002.lcbPmsNew = reader.ReadUInt32(); //1166
m_FibWord2002.fcODSO = reader.ReadUInt32(); //1170
m_FibWord2002.lcbODSO = reader.ReadUInt32(); //1174
m_FibWord2002.fcPlcfpmiOldXP = reader.ReadUInt32(); //1178
m_FibWord2002.lcbPlcfpmiOldXP = reader.ReadUInt32(); //1182
m_FibWord2002.fcPlcfpmiNewXP = reader.ReadUInt32(); //1186
m_FibWord2002.lcbPlcfpmiNewXP = reader.ReadUInt32(); //1190
m_FibWord2002.fcPlcfpmiMixedXP = reader.ReadUInt32(); //1194
m_FibWord2002.lcbPlcfpmiMixedXP = reader.ReadUInt32(); //1198
reader.ReadUInt32(); //1202
reader.ReadUInt32(); //1206
m_FibWord2002.fcPlcffactoid = reader.ReadUInt32(); //1210
m_FibWord2002.lcbPlcffactoid = reader.ReadUInt32(); //1214
m_FibWord2002.fcPlcflvcOldXP = reader.ReadUInt32(); //1218
m_FibWord2002.lcbPlcflvcOldXP = reader.ReadUInt32(); //1222
m_FibWord2002.fcPlcflvcNewXP = reader.ReadUInt32(); //1226
m_FibWord2002.lcbPlcflvcNewXP = reader.ReadUInt32(); //1230
m_FibWord2002.fcPlcflvcMixedXP = reader.ReadUInt32(); //1234
m_FibWord2002.lcbPlcflvcMixedXP = reader.ReadUInt32(); //1238
}
if ( m_FibBase.nFib >= Fib2003 )
{
//Read also the fibRgFcLcb2003
m_FibWord2003.fcHplxsdr = reader.ReadUInt32();
m_FibWord2003.lcbHplxsdr = reader.ReadUInt32();
m_FibWord2003.fcSttbfBkmkSdt = reader.ReadUInt32();
m_FibWord2003.lcbSttbfBkmkSdt = reader.ReadUInt32();
m_FibWord2003.fcPlcfBkfSdt = reader.ReadUInt32();
m_FibWord2003.lcbPlcfBkfSdt = reader.ReadUInt32();
m_FibWord2003.fcPlcfBklSdt = reader.ReadUInt32();
m_FibWord2003.lcbPlcfBklSdt = reader.ReadUInt32();
m_FibWord2003.fcCustomXForm = reader.ReadUInt32();
m_FibWord2003.lcbCustomXForm = reader.ReadUInt32();
m_FibWord2003.fcSttbfBkmkProt = reader.ReadUInt32();
m_FibWord2003.lcbSttbfBkmkProt = reader.ReadUInt32();
m_FibWord2003.fcPlcfBkfProt = reader.ReadUInt32();
m_FibWord2003.lcbPlcfBkfProt = reader.ReadUInt32();
m_FibWord2003.fcPlcfBklProt = reader.ReadUInt32();
m_FibWord2003.lcbPlcfBklProt = reader.ReadUInt32();
m_FibWord2003.fcSttbProtUser = reader.ReadUInt32();
m_FibWord2003.lcbSttbProtUser = reader.ReadUInt32();
reader.ReadUInt32();
reader.ReadUInt32();
m_FibWord2003.fcPlcfpmiOld = reader.ReadUInt32();
m_FibWord2003.lcbPlcfpmiOld = reader.ReadUInt32();
m_FibWord2003.fcPlcfpmiOldInline = reader.ReadUInt32();
m_FibWord2003.lcbPlcfpmiOldInline = reader.ReadUInt32();
m_FibWord2003.fcPlcfpmiNew = reader.ReadUInt32();
m_FibWord2003.lcbPlcfpmiNew = reader.ReadUInt32();
m_FibWord2003.fcPlcfpmiNewInline = reader.ReadUInt32();
m_FibWord2003.lcbPlcfpmiNewInline = reader.ReadUInt32();
m_FibWord2003.fcPlcflvcOld = reader.ReadUInt32();
m_FibWord2003.lcbPlcflvcOld = reader.ReadUInt32();
m_FibWord2003.fcPlcflvcOldInline = reader.ReadUInt32();
m_FibWord2003.lcbPlcflvcOldInline = reader.ReadUInt32();
m_FibWord2003.fcPlcflvcNew = reader.ReadUInt32();
m_FibWord2003.lcbPlcflvcNew = reader.ReadUInt32();
m_FibWord2003.fcPlcflvcNewInline = reader.ReadUInt32();
m_FibWord2003.lcbPlcflvcNewInline = reader.ReadUInt32();
m_FibWord2003.fcPgdMother = reader.ReadUInt32();
m_FibWord2003.lcbPgdMother = reader.ReadUInt32();
m_FibWord2003.fcBkdMother = reader.ReadUInt32();
m_FibWord2003.lcbBkdMother = reader.ReadUInt32();
m_FibWord2003.fcAfdMother = reader.ReadUInt32();
m_FibWord2003.lcbAfdMother = reader.ReadUInt32();
m_FibWord2003.fcPgdFtn = reader.ReadUInt32();
m_FibWord2003.lcbPgdFtn = reader.ReadUInt32();
m_FibWord2003.fcBkdFtn = reader.ReadUInt32();
m_FibWord2003.lcbBkdFtn = reader.ReadUInt32();
m_FibWord2003.fcAfdFtn = reader.ReadUInt32();
m_FibWord2003.lcbAfdFtn = reader.ReadUInt32();
m_FibWord2003.fcPgdEdn = reader.ReadUInt32();
m_FibWord2003.lcbPgdEdn = reader.ReadUInt32();
m_FibWord2003.fcBkdEdn = reader.ReadUInt32();
m_FibWord2003.lcbBkdEdn = reader.ReadUInt32();
m_FibWord2003.fcAfdEdn = reader.ReadUInt32();
m_FibWord2003.lcbAfdEdn = reader.ReadUInt32();
m_FibWord2003.fcAfd = reader.ReadUInt32();
m_FibWord2003.lcbAfd = reader.ReadUInt32();
}
if ( m_FibBase.nFib >= Fib2007 )
{
//Read also the fibRgFcLcb2007
m_FibWord2007.fcPlcfmthd = reader.ReadUInt32();
m_FibWord2007.lcbPlcfmthd = reader.ReadUInt32();
m_FibWord2007.fcSttbfBkmkMoveFrom = reader.ReadUInt32();
m_FibWord2007.lcbSttbfBkmkMoveFrom = reader.ReadUInt32();
m_FibWord2007.fcPlcfBkfMoveFrom = reader.ReadUInt32();
m_FibWord2007.lcbPlcfBkfMoveFrom = reader.ReadUInt32();
m_FibWord2007.fcPlcfBklMoveFrom = reader.ReadUInt32();
m_FibWord2007.lcbPlcfBklMoveFrom = reader.ReadUInt32();
m_FibWord2007.fcSttbfBkmkMoveTo = reader.ReadUInt32();
m_FibWord2007.lcbSttbfBkmkMoveTo = reader.ReadUInt32();
m_FibWord2007.fcPlcfBkfMoveTo = reader.ReadUInt32();
m_FibWord2007.lcbPlcfBkfMoveTo = reader.ReadUInt32();
m_FibWord2007.fcPlcfBklMoveTo = reader.ReadUInt32();
m_FibWord2007.lcbPlcfBklMoveTo = reader.ReadUInt32();
reader.ReadUInt32();
reader.ReadUInt32();
reader.ReadUInt32();
reader.ReadUInt32();
reader.ReadUInt32();
reader.ReadUInt32();
m_FibWord2007.fcSttbfBkmkArto = reader.ReadUInt32();
m_FibWord2007.lcbSttbfBkmkArto = reader.ReadUInt32();
m_FibWord2007.fcPlcfBkfArto = reader.ReadUInt32();
m_FibWord2007.lcbPlcfBkfArto = reader.ReadUInt32();
m_FibWord2007.fcPlcfBklArto = reader.ReadUInt32();
m_FibWord2007.lcbPlcfBklArto = reader.ReadUInt32();
m_FibWord2007.fcArtoData = reader.ReadUInt32();
m_FibWord2007.lcbArtoData = reader.ReadUInt32();
reader.ReadUInt32();
reader.ReadUInt32();
reader.ReadUInt32();
reader.ReadUInt32();
reader.ReadUInt32();
reader.ReadUInt32();
m_FibWord2007.fcOssTheme = reader.ReadUInt32();
m_FibWord2007.lcbOssTheme = reader.ReadUInt32();
m_FibWord2007.fcColorSchemeMapping = reader.ReadUInt32();
m_FibWord2007.lcbColorSchemeMapping = reader.ReadUInt32();
}
cswNew = reader.ReadUInt16();
if (cswNew != 0)
{
//Read the FibRgCswNew
m_FibNew.nFibNew = (FibVersion)reader.ReadUInt16();
if (m_FibNew.nFibNew == 0) m_FibNew.nFibNew = Fib1997;
m_FibNew.cQuickSavesNew = reader.ReadUInt16();
}
}
FileInformationBlock( VirtualStreamReader reader )
{
m_bOlderVersion = false;
m_CodePage = 1250;
unsigned int flag16 = 0;
unsigned char flag8 = 0;
//read the FIB base
m_FibBase.wIdent = reader.ReadUInt16(); //0
m_FibBase.nFib = (FibVersion)reader.ReadUInt16(); //2
reader.ReadBytes( 2, false ); //4 //nProduct
m_FibBase.lid = reader.ReadUInt16(); //6
m_FibBase.pnNext = reader.ReadInt16(); //8
flag16 = reader.ReadUInt16(); //10
m_FibBase.fDot = FormatUtils::BitmaskToBool((int)flag16, 0x0001);
m_FibBase.fGlsy = FormatUtils::BitmaskToBool((int)flag16, 0x0002);
m_FibBase.fComplex = FormatUtils::BitmaskToBool((int)flag16, 0x0002);
m_FibBase.fHasPic = FormatUtils::BitmaskToBool((int)flag16, 0x0008);
m_FibBase.cQuickSaves = (WORD)(((int)flag16 & 0x00F0) >> 4);
m_FibBase.fEncrypted = FormatUtils::BitmaskToBool((int)flag16, 0x0100);
m_FibBase.fWhichTblStm = FormatUtils::BitmaskToBool((int)flag16, 0x0200);
m_FibBase.fReadOnlyRecommended = FormatUtils::BitmaskToBool((int)flag16, 0x0400);
m_FibBase.fWriteReservation = FormatUtils::BitmaskToBool((int)flag16, 0x0800);
m_FibBase.fExtChar = FormatUtils::BitmaskToBool((int)flag16, 0x1000);
m_FibBase.fLoadOverwrite = FormatUtils::BitmaskToBool((int)flag16, 0x2000);
m_FibBase.fFarEast = FormatUtils::BitmaskToBool((int)flag16, 0x4000);
m_FibBase.fObfuscation = FormatUtils::BitmaskToBool((int)flag16, 0x8000);
m_FibBase.nFibBack = reader.ReadUInt16(); //12
m_FibBase.lKey = reader.ReadInt32(); //14
m_FibBase.envr = reader.ReadByte(); //18
flag8 = reader.ReadByte(); //19
m_FibBase.fMac = FormatUtils::BitmaskToBool((int)flag8, 0x01);
m_FibBase.fEmptySpecial = FormatUtils::BitmaskToBool((int)flag8, 0x02);
m_FibBase.fLoadOverridePage = FormatUtils::BitmaskToBool((int)flag8, 0x04);
m_FibBase.fFutureSavedUndo = FormatUtils::BitmaskToBool((int)flag8, 0x08);
m_FibBase.fWord97Saved = FormatUtils::BitmaskToBool((int)flag8, 0x10);
reader.ReadBytes( 4, false ); //20
m_FibBase.fcMin = reader.ReadInt32(); //24
m_FibBase.fcMac = reader.ReadInt32(); //28
if (m_FibBase.nFib > Fib1995)
csw = reader.ReadUInt16(); //32
if (m_FibBase.nFib > Fib1995 || m_FibBase.nFib == 0)
{
//read the RgW97
reader.ReadBytes( 26, false ); //34
m_RgW97.lidFE = reader.ReadUInt16(); //60
cslw = reader.ReadUInt16(); //62
//read the RgLW97
m_RgLw97.cbMac = reader.ReadInt32(); //64
}
reset(reader);
}
};
}