/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



#ifndef OOX_XLS_BIFFHELPER_HXX
#define OOX_XLS_BIFFHELPER_HXX

#include "oox/helper/binarystreambase.hxx"

namespace oox { class SequenceInputStream; }

namespace oox {
namespace xls {

class BiffInputStream;

// BIFF12 record identifiers ==================================================

const sal_Int32 BIFF12_ID_ARRAY             = 0x01AA;
const sal_Int32 BIFF12_ID_AUTOFILTER        = 0x00A1;
const sal_Int32 BIFF12_ID_AUTOSORTSCOPE     = 0x01CB;
const sal_Int32 BIFF12_ID_BINARYINDEXBLOCK  = 0x002A;
const sal_Int32 BIFF12_ID_BINARYINDEXROWS   = 0x0028;
const sal_Int32 BIFF12_ID_BOOKVIEWS         = 0x0087;
const sal_Int32 BIFF12_ID_BORDER            = 0x002E;
const sal_Int32 BIFF12_ID_BORDERS           = 0x0265;
const sal_Int32 BIFF12_ID_BRK               = 0x018C;
const sal_Int32 BIFF12_ID_CALCPR            = 0x009D;
const sal_Int32 BIFF12_ID_CELL_BLANK        = 0x0001;
const sal_Int32 BIFF12_ID_CELL_BOOL         = 0x0004;
const sal_Int32 BIFF12_ID_CELL_DOUBLE       = 0x0005;
const sal_Int32 BIFF12_ID_CELL_ERROR        = 0x0003;
const sal_Int32 BIFF12_ID_CELL_RK           = 0x0002;
const sal_Int32 BIFF12_ID_CELL_RSTRING      = 0x003E;
const sal_Int32 BIFF12_ID_CELL_SI           = 0x0007;
const sal_Int32 BIFF12_ID_CELL_STRING       = 0x0006;
const sal_Int32 BIFF12_ID_CELLSTYLE         = 0x0030;
const sal_Int32 BIFF12_ID_CELLSTYLES        = 0x026B;
const sal_Int32 BIFF12_ID_CELLSTYLEXFS      = 0x0272;
const sal_Int32 BIFF12_ID_CELLXFS           = 0x0269;
const sal_Int32 BIFF12_ID_CFCOLOR           = 0x0234;
const sal_Int32 BIFF12_ID_CFRULE            = 0x01CF;
const sal_Int32 BIFF12_ID_CHARTPAGESETUP    = 0x028C;
const sal_Int32 BIFF12_ID_CHARTPROTECTION   = 0x029D;
const sal_Int32 BIFF12_ID_CHARTSHEETPR      = 0x028B;
const sal_Int32 BIFF12_ID_CHARTSHEETVIEW    = 0x008D;
const sal_Int32 BIFF12_ID_CHARTSHEETVIEWS   = 0x008B;
const sal_Int32 BIFF12_ID_COL               = 0x003C;
const sal_Int32 BIFF12_ID_COLBREAKS         = 0x018A;
const sal_Int32 BIFF12_ID_COLOR             = 0x023C;
const sal_Int32 BIFF12_ID_COLORS            = 0x01D9;
const sal_Int32 BIFF12_ID_COLORSCALE        = 0x01D5;
const sal_Int32 BIFF12_ID_COLS              = 0x0186;
const sal_Int32 BIFF12_ID_COMMENT           = 0x027B;
const sal_Int32 BIFF12_ID_COMMENTAUTHOR     = 0x0278;
const sal_Int32 BIFF12_ID_COMMENTAUTHORS    = 0x0276;
const sal_Int32 BIFF12_ID_COMMENTLIST       = 0x0279;
const sal_Int32 BIFF12_ID_COMMENTS          = 0x0274;
const sal_Int32 BIFF12_ID_COMMENTTEXT       = 0x027D;
const sal_Int32 BIFF12_ID_CONDFORMATTING    = 0x01CD;
const sal_Int32 BIFF12_ID_CONNECTION        = 0x00C9;
const sal_Int32 BIFF12_ID_CONNECTIONS       = 0x01AD;
const sal_Int32 BIFF12_ID_CONTROL           = 0x0284;
const sal_Int32 BIFF12_ID_CONTROLS          = 0x0283;
const sal_Int32 BIFF12_ID_CUSTOMCHARTVIEW   = 0x028F;
const sal_Int32 BIFF12_ID_CUSTOMCHARTVIEWS  = 0x028D;
const sal_Int32 BIFF12_ID_CUSTOMFILTER      = 0x00AE;
const sal_Int32 BIFF12_ID_CUSTOMFILTERS     = 0x00AC;
const sal_Int32 BIFF12_ID_CUSTOMSHEETVIEW   = 0x01A7;
const sal_Int32 BIFF12_ID_CUSTOMSHEETVIEWS  = 0x01A6;
const sal_Int32 BIFF12_ID_CUSTOMWORKBOOKVIEW= 0x018D;
const sal_Int32 BIFF12_ID_DATABAR           = 0x01D3;
const sal_Int32 BIFF12_ID_DATATABLE         = 0x01AC;
const sal_Int32 BIFF12_ID_DATAVALIDATION    = 0x0040;
const sal_Int32 BIFF12_ID_DATAVALIDATIONS   = 0x023D;
const sal_Int32 BIFF12_ID_DDEITEMVALUES     = 0x0242;
const sal_Int32 BIFF12_ID_DDEITEM_BOOL      = 0x0248;
const sal_Int32 BIFF12_ID_DDEITEM_DOUBLE    = 0x0244;
const sal_Int32 BIFF12_ID_DDEITEM_ERROR     = 0x0245;
const sal_Int32 BIFF12_ID_DDEITEM_STRING    = 0x0246;
const sal_Int32 BIFF12_ID_DEFINEDNAME       = 0x0027;
const sal_Int32 BIFF12_ID_DIMENSION         = 0x0094;
const sal_Int32 BIFF12_ID_DISCRETEFILTER    = 0x00A7;
const sal_Int32 BIFF12_ID_DISCRETEFILTERS   = 0x00A5;
const sal_Int32 BIFF12_ID_DRAWING           = 0x0226;
const sal_Int32 BIFF12_ID_DXF               = 0x01FB;
const sal_Int32 BIFF12_ID_DXFS              = 0x01F9;
const sal_Int32 BIFF12_ID_EXTCELL_BLANK     = 0x016F;
const sal_Int32 BIFF12_ID_EXTCELL_BOOL      = 0x0171;
const sal_Int32 BIFF12_ID_EXTCELL_DOUBLE    = 0x0170;
const sal_Int32 BIFF12_ID_EXTCELL_ERROR     = 0x0172;
const sal_Int32 BIFF12_ID_EXTCELL_STRING    = 0x0173;
const sal_Int32 BIFF12_ID_EXTERNALADDIN     = 0x029B;
const sal_Int32 BIFF12_ID_EXTERNALBOOK      = 0x0168;
const sal_Int32 BIFF12_ID_EXTERNALNAME      = 0x0241;
const sal_Int32 BIFF12_ID_EXTERNALREF       = 0x0163;
const sal_Int32 BIFF12_ID_EXTERNALREFS      = 0x0161;
const sal_Int32 BIFF12_ID_EXTERNALSELF      = 0x0165;
const sal_Int32 BIFF12_ID_EXTERNALSAME      = 0x0166;
const sal_Int32 BIFF12_ID_EXTERNALSHEETS    = 0x016A;
const sal_Int32 BIFF12_ID_EXTROW            = 0x016E;
const sal_Int32 BIFF12_ID_EXTSHEETDATA      = 0x016B;
const sal_Int32 BIFF12_ID_EXTERNALNAMEFLAGS = 0x024A;
const sal_Int32 BIFF12_ID_EXTSHEETNAMES     = 0x0167;
const sal_Int32 BIFF12_ID_FILESHARING       = 0x0224;
const sal_Int32 BIFF12_ID_FILEVERSION       = 0x0080;
const sal_Int32 BIFF12_ID_FILL              = 0x002D;
const sal_Int32 BIFF12_ID_FILLS             = 0x025B;
const sal_Int32 BIFF12_ID_FILTERCOLUMN      = 0x00A3;
const sal_Int32 BIFF12_ID_FONT              = 0x002B;
const sal_Int32 BIFF12_ID_FONTS             = 0x0263;
const sal_Int32 BIFF12_ID_FORMULA_STRING    = 0x0008;
const sal_Int32 BIFF12_ID_FORMULA_DOUBLE    = 0x0009;
const sal_Int32 BIFF12_ID_FORMULA_BOOL      = 0x000A;
const sal_Int32 BIFF12_ID_FORMULA_ERROR     = 0x000B;
const sal_Int32 BIFF12_ID_FUNCTIONGROUP     = 0x0299;
const sal_Int32 BIFF12_ID_FUNCTIONGROUPS    = 0x0298;
const sal_Int32 BIFF12_ID_HEADERFOOTER      = 0x01DF;
const sal_Int32 BIFF12_ID_HYPERLINK         = 0x01EE;
const sal_Int32 BIFF12_ID_ICONSET           = 0x01D1;
const sal_Int32 BIFF12_ID_INDEXEDCOLORS     = 0x0235;
const sal_Int32 BIFF12_ID_INPUTCELLS        = 0x01F8;
const sal_Int32 BIFF12_ID_LEGACYDRAWING     = 0x0227;
const sal_Int32 BIFF12_ID_MERGECELL         = 0x00B0;
const sal_Int32 BIFF12_ID_MERGECELLS        = 0x00B1;
const sal_Int32 BIFF12_ID_MRUCOLORS         = 0x0239;
const sal_Int32 BIFF12_ID_MULTCELL_BLANK    = 0x000C;
const sal_Int32 BIFF12_ID_MULTCELL_BOOL     = 0x000F;
const sal_Int32 BIFF12_ID_MULTCELL_DOUBLE   = 0x0010;
const sal_Int32 BIFF12_ID_MULTCELL_ERROR    = 0x000E;
const sal_Int32 BIFF12_ID_MULTCELL_RK       = 0x000D;
const sal_Int32 BIFF12_ID_MULTCELL_RSTRING  = 0x003D;
const sal_Int32 BIFF12_ID_MULTCELL_SI       = 0x0012;
const sal_Int32 BIFF12_ID_MULTCELL_STRING   = 0x0011;
const sal_Int32 BIFF12_ID_NUMFMT            = 0x002C;
const sal_Int32 BIFF12_ID_NUMFMTS           = 0x0267;
const sal_Int32 BIFF12_ID_OLEOBJECT         = 0x027F;
const sal_Int32 BIFF12_ID_OLEOBJECTS        = 0x027E;
const sal_Int32 BIFF12_ID_OLESIZE           = 0x0225;
const sal_Int32 BIFF12_ID_PAGEMARGINS       = 0x01DC;
const sal_Int32 BIFF12_ID_PAGESETUP         = 0x01DE;
const sal_Int32 BIFF12_ID_PANE              = 0x0097;
const sal_Int32 BIFF12_ID_PCDEFINITION      = 0x00B3;
const sal_Int32 BIFF12_ID_PCDFDISCRETEPR    = 0x00E1;
const sal_Int32 BIFF12_ID_PCDFGROUPITEMS    = 0x00DD;
const sal_Int32 BIFF12_ID_PCDFIELD          = 0x00B7;
const sal_Int32 BIFF12_ID_PCDFIELDGROUP     = 0x00DB;
const sal_Int32 BIFF12_ID_PCDFIELDS         = 0x00B5;
const sal_Int32 BIFF12_ID_PCDFRANGEPR       = 0x00DF;
const sal_Int32 BIFF12_ID_PCDFSHAREDITEMS   = 0x00BD;
const sal_Int32 BIFF12_ID_PCDSHEETSOURCE    = 0x00BB;
const sal_Int32 BIFF12_ID_PCDSOURCE         = 0x00B9;
const sal_Int32 BIFF12_ID_PCITEM_ARRAY      = 0x00BF;
const sal_Int32 BIFF12_ID_PCITEM_BOOL       = 0x0016;
const sal_Int32 BIFF12_ID_PCITEM_DATE       = 0x0019;
const sal_Int32 BIFF12_ID_PCITEM_DOUBLE     = 0x0015;
const sal_Int32 BIFF12_ID_PCITEM_ERROR      = 0x0017;
const sal_Int32 BIFF12_ID_PCITEM_INDEX      = 0x001A;
const sal_Int32 BIFF12_ID_PCITEM_MISSING    = 0x0014;
const sal_Int32 BIFF12_ID_PCITEM_STRING     = 0x0018;
const sal_Int32 BIFF12_ID_PCITEMA_BOOL      = 0x001D;
const sal_Int32 BIFF12_ID_PCITEMA_DATE      = 0x0020;
const sal_Int32 BIFF12_ID_PCITEMA_DOUBLE    = 0x001C;
const sal_Int32 BIFF12_ID_PCITEMA_ERROR     = 0x001E;
const sal_Int32 BIFF12_ID_PCITEMA_MISSING   = 0x001B;
const sal_Int32 BIFF12_ID_PCITEMA_STRING    = 0x001F;
const sal_Int32 BIFF12_ID_PCRECORD          = 0x0021;
const sal_Int32 BIFF12_ID_PCRECORDDT        = 0x0022;
const sal_Int32 BIFF12_ID_PCRECORDS         = 0x00C1;
const sal_Int32 BIFF12_ID_PHONETICPR        = 0x0219;
const sal_Int32 BIFF12_ID_PICTURE           = 0x0232;
const sal_Int32 BIFF12_ID_PIVOTAREA         = 0x00F7;
const sal_Int32 BIFF12_ID_PIVOTCACHE        = 0x0182;
const sal_Int32 BIFF12_ID_PIVOTCACHES       = 0x0180;
const sal_Int32 BIFF12_ID_PRINTOPTIONS      = 0x01DD;
const sal_Int32 BIFF12_ID_PTCOLFIELDS       = 0x0137;
const sal_Int32 BIFF12_ID_PTDATAFIELD       = 0x0125;
const sal_Int32 BIFF12_ID_PTDATAFIELDS      = 0x0127;
const sal_Int32 BIFF12_ID_PTDEFINITION      = 0x0118;
const sal_Int32 BIFF12_ID_PTFIELD           = 0x011D;
const sal_Int32 BIFF12_ID_PTFIELDS          = 0x011F;
const sal_Int32 BIFF12_ID_PTFILTER          = 0x0259;
const sal_Int32 BIFF12_ID_PTFILTERS         = 0x0257;
const sal_Int32 BIFF12_ID_PTFITEM           = 0x011A;
const sal_Int32 BIFF12_ID_PTFITEMS          = 0x011B;
const sal_Int32 BIFF12_ID_PTLOCATION        = 0x013A;
const sal_Int32 BIFF12_ID_PTPAGEFIELD       = 0x0121;
const sal_Int32 BIFF12_ID_PTPAGEFIELDS      = 0x0123;
const sal_Int32 BIFF12_ID_PTREFERENCE       = 0x00FB;
const sal_Int32 BIFF12_ID_PTREFERENCEITEM   = 0x017E;
const sal_Int32 BIFF12_ID_PTREFERENCES      = 0x00F9;
const sal_Int32 BIFF12_ID_PTROWFIELDS       = 0x0135;
const sal_Int32 BIFF12_ID_QUERYTABLE        = 0x01BF;
const sal_Int32 BIFF12_ID_QUERYTABLEREFRESH = 0x01C1;
const sal_Int32 BIFF12_ID_RGBCOLOR          = 0x01DB;
const sal_Int32 BIFF12_ID_ROW               = 0x0000;
const sal_Int32 BIFF12_ID_ROWBREAKS         = 0x0188;
const sal_Int32 BIFF12_ID_SCENARIO          = 0x01F6;
const sal_Int32 BIFF12_ID_SCENARIOS         = 0x01F4;
const sal_Int32 BIFF12_ID_SELECTION         = 0x0098;
const sal_Int32 BIFF12_ID_SHAREDFMLA        = 0x01AB;
const sal_Int32 BIFF12_ID_SHEET             = 0x009C;
const sal_Int32 BIFF12_ID_SHEETDATA         = 0x0091;
const sal_Int32 BIFF12_ID_SHEETFORMATPR     = 0x01E5;
const sal_Int32 BIFF12_ID_SHEETPR           = 0x0093;
const sal_Int32 BIFF12_ID_SHEETPROTECTION   = 0x0217;
const sal_Int32 BIFF12_ID_SHEETS            = 0x008F;
const sal_Int32 BIFF12_ID_SHEETVIEW         = 0x0089;
const sal_Int32 BIFF12_ID_SHEETVIEWS        = 0x0085;
const sal_Int32 BIFF12_ID_SI                = 0x0013;
const sal_Int32 BIFF12_ID_SST               = 0x009F;
const sal_Int32 BIFF12_ID_STYLESHEET        = 0x0116;
const sal_Int32 BIFF12_ID_TABLE             = 0x0157;
const sal_Int32 BIFF12_ID_TABLEPART         = 0x0295;
const sal_Int32 BIFF12_ID_TABLEPARTS        = 0x0294;
const sal_Int32 BIFF12_ID_TABLESTYLEINFO    = 0x0201;
const sal_Int32 BIFF12_ID_TABLESTYLES       = 0x01FC;
const sal_Int32 BIFF12_ID_TOP10FILTER       = 0x00AA;
const sal_Int32 BIFF12_ID_VOLTYPE           = 0x0204;
const sal_Int32 BIFF12_ID_VOLTYPEMAIN       = 0x0206;
const sal_Int32 BIFF12_ID_VOLTYPES          = 0x0202;
const sal_Int32 BIFF12_ID_VOLTYPESTP        = 0x020A;
const sal_Int32 BIFF12_ID_VOLTYPETR         = 0x020B;
const sal_Int32 BIFF12_ID_WEBPR             = 0x0105;
const sal_Int32 BIFF12_ID_WEBPRTABLES       = 0x0107;
const sal_Int32 BIFF12_ID_WORKBOOK          = 0x0083;
const sal_Int32 BIFF12_ID_WORKBOOKPR        = 0x0099;
const sal_Int32 BIFF12_ID_WORKBOOKVIEW      = 0x009E;
const sal_Int32 BIFF12_ID_WORKSHEET         = 0x0081;
const sal_Int32 BIFF12_ID_XF                = 0x002F;

// BIFF2-BIFF8 record identifiers =============================================

/** An enumeration for all binary Excel file format types (BIFF types). */
enum BiffType
{
    BIFF2 = 0,                  /// MS Excel 2.1.
    BIFF3,                      /// MS Excel 3.0.
    BIFF4,                      /// MS Excel 4.0.
    BIFF5,                      /// MS Excel 5.0, MS Excel 7.0 (95).
    BIFF8,                      /// MS Excel 8.0 (97), 9.0 (2000), 10.0 (XP), 11.0 (2003).
    BIFF_UNKNOWN                /// Unknown BIFF version.
};

const sal_uInt16 BIFF2_MAXRECSIZE           = 2080;
const sal_uInt16 BIFF8_MAXRECSIZE           = 8224;

// record identifiers ---------------------------------------------------------

const sal_uInt16 BIFF2_ID_ARRAY             = 0x0021;
const sal_uInt16 BIFF3_ID_ARRAY             = 0x0221;
const sal_uInt16 BIFF_ID_AUTOFILTER         = 0x009D;
const sal_uInt16 BIFF2_ID_BLANK             = 0x0001;
const sal_uInt16 BIFF3_ID_BLANK             = 0x0201;
const sal_uInt16 BIFF2_ID_BOF               = 0x0009;
const sal_uInt16 BIFF3_ID_BOF               = 0x0209;
const sal_uInt16 BIFF4_ID_BOF               = 0x0409;
const sal_uInt16 BIFF5_ID_BOF               = 0x0809;
const sal_uInt16 BIFF_ID_BOOKBOOL           = 0x00DA;
const sal_uInt16 BIFF_ID_BOOKEXT            = 0x0863;
const sal_uInt16 BIFF2_ID_BOOLERR           = 0x0005;
const sal_uInt16 BIFF3_ID_BOOLERR           = 0x0205;
const sal_uInt16 BIFF_ID_BOTTOMMARGIN       = 0x0029;
const sal_uInt16 BIFF_ID_CALCCOUNT          = 0x000C;
const sal_uInt16 BIFF_ID_CALCMODE           = 0x000D;
const sal_uInt16 BIFF_ID_CFHEADER           = 0x01B0;
const sal_uInt16 BIFF_ID_CFRULE             = 0x01B1;
const sal_uInt16 BIFF_ID_CFRULE12           = 0x087A;
const sal_uInt16 BIFF_ID_CFRULEEXT          = 0x087B;
const sal_uInt16 BIFF_ID_CH3DDATAFORMAT     = 0x105F;
const sal_uInt16 BIFF_ID_CHAREA             = 0x101A;
const sal_uInt16 BIFF_ID_CHAREAFORMAT       = 0x100A;
const sal_uInt16 BIFF_ID_CHATTACHEDLABEL    = 0x100C;
const sal_uInt16 BIFF_ID_CHAXESSET          = 0x1041;
const sal_uInt16 BIFF_ID_CHAXIS             = 0x101D;
const sal_uInt16 BIFF_ID_CHAXISLINE         = 0x1021;
const sal_uInt16 BIFF_ID_CHBAR              = 0x1017;
const sal_uInt16 BIFF_ID_CHBEGIN            = 0x1033;
const sal_uInt16 BIFF_ID_CHCHART            = 0x1002;
const sal_uInt16 BIFF_ID_CHCHART3D          = 0x103A;
const sal_uInt16 BIFF_ID_CHCHARTLINE        = 0x101C;
const sal_uInt16 BIFF_ID_CHDATAFORMAT       = 0x1006;
const sal_uInt16 BIFF_ID_CHDATERANGE        = 0x1062;
const sal_uInt16 BIFF_ID_CHDEFAULTTEXT      = 0x1024;
const sal_uInt16 BIFF_ID_CHDROPBAR          = 0x103D;
const sal_uInt16 BIFF_ID_CHECKCOMPAT        = 0x088C;
const sal_uInt16 BIFF_ID_CHEND              = 0x1034;
const sal_uInt16 BIFF_ID_CHESCHERFORMAT     = 0x1066;
const sal_uInt16 BIFF_ID_CHFONT             = 0x1026;
const sal_uInt16 BIFF_ID_CHFORMAT           = 0x104E;
const sal_uInt16 BIFF_ID_CHFORMATRUNS       = 0x1050;
const sal_uInt16 BIFF_ID_CHFRAME            = 0x1032;
const sal_uInt16 BIFF_ID_CHFRAMEPOS         = 0x104F;
const sal_uInt16 BIFF_ID_CHFRBLOCKBEGIN     = 0x0852;
const sal_uInt16 BIFF_ID_CHFRBLOCKEND       = 0x0853;
const sal_uInt16 BIFF_ID_CHFRCATEGORYPROPS  = 0x0856;
const sal_uInt16 BIFF_ID_CHFREXTPROPS       = 0x089E;
const sal_uInt16 BIFF_ID_CHFREXTPROPSCONT   = 0x089F;
const sal_uInt16 BIFF_ID_CHFRINFO           = 0x0850;
const sal_uInt16 BIFF_ID_CHFRLABELPROPS     = 0x086B;
const sal_uInt16 BIFF_ID_CHFRLAYOUT         = 0x089D;
const sal_uInt16 BIFF_ID_CHFRPLOTAREALAYOUT = 0x08A7;
const sal_uInt16 BIFF_ID_CHFRSHAPEPROPS     = 0x08A4;
const sal_uInt16 BIFF_ID_CHFRTEXTPROPS      = 0x08A5;
const sal_uInt16 BIFF_ID_CHFRUNITPROPS      = 0x0857;
const sal_uInt16 BIFF_ID_CHFRWRAPPER        = 0x0851;
const sal_uInt16 BIFF_ID_CHLABELRANGE       = 0x1020;
const sal_uInt16 BIFF_ID_CHLEGEND           = 0x1015;
const sal_uInt16 BIFF_ID_CHLINE             = 0x1018;
const sal_uInt16 BIFF_ID_CHLINEFORMAT       = 0x1007;
const sal_uInt16 BIFF_ID_CHMARKERFORMAT     = 0x1009;
const sal_uInt16 BIFF_ID_CHOBJECTLINK       = 0x1027;
const sal_uInt16 BIFF_ID_CHPICFORMAT        = 0x103C;
const sal_uInt16 BIFF_ID_CHPIE              = 0x1019;
const sal_uInt16 BIFF_ID_CHPIEEXT           = 0x1061;
const sal_uInt16 BIFF_ID_CHPIEFORMAT        = 0x100B;
const sal_uInt16 BIFF_ID_CHPIVOTFLAGS       = 0x0859;
const sal_uInt16 BIFF5_ID_CHPIVOTREF        = 0x1048;
const sal_uInt16 BIFF8_ID_CHPIVOTREF        = 0x0858;
const sal_uInt16 BIFF_ID_CHPLOTFRAME        = 0x1035;
const sal_uInt16 BIFF_ID_CHPLOTGROWTH       = 0x1064;
const sal_uInt16 BIFF_ID_CHPROPERTIES       = 0x1044;
const sal_uInt16 BIFF_ID_CHRADARLINE        = 0x103E;
const sal_uInt16 BIFF_ID_CHRADARAREA        = 0x1040;
const sal_uInt16 BIFF_ID_CHSCATTER          = 0x101B;
const sal_uInt16 BIFF_ID_CHSERERRORBAR      = 0x105B;
const sal_uInt16 BIFF_ID_CHSERGROUP         = 0x1045;
const sal_uInt16 BIFF_ID_CHSERIES           = 0x1003;
const sal_uInt16 BIFF_ID_CHSERIESFORMAT     = 0x105D;
const sal_uInt16 BIFF_ID_CHSERPARENT        = 0x104A;
const sal_uInt16 BIFF_ID_CHSERTRENDLINE     = 0x104B;
const sal_uInt16 BIFF_ID_CHSOURCELINK       = 0x1051;
const sal_uInt16 BIFF_ID_CHSTRING           = 0x100D;
const sal_uInt16 BIFF_ID_CHSURFACE          = 0x103F;
const sal_uInt16 BIFF_ID_CHTEXT             = 0x1025;
const sal_uInt16 BIFF_ID_CHTICK             = 0x101E;
const sal_uInt16 BIFF_ID_CHTYPEGROUP        = 0x1014;
const sal_uInt16 BIFF_ID_CHVALUERANGE       = 0x101F;
const sal_uInt16 BIFF_ID_CODENAME           = 0x01BA;
const sal_uInt16 BIFF_ID_CODEPAGE           = 0x0042;
const sal_uInt16 BIFF_ID_COLINFO            = 0x007D;
const sal_uInt16 BIFF_ID_COLUMNDEFAULT      = 0x0020;
const sal_uInt16 BIFF_ID_COLWIDTH           = 0x0024;
const sal_uInt16 BIFF_ID_COMPRESSPICS       = 0x089B;
const sal_uInt16 BIFF_ID_CONNECTION         = 0x0876;
const sal_uInt16 BIFF_ID_CONT               = 0x003C;
const sal_uInt16 BIFF_ID_COORDLIST          = 0x00A9;
const sal_uInt16 BIFF_ID_COUNTRY            = 0x008C;
const sal_uInt16 BIFF_ID_CRN                = 0x005A;
const sal_uInt16 BIFF2_ID_DATATABLE         = 0x0036;
const sal_uInt16 BIFF3_ID_DATATABLE         = 0x0236;
const sal_uInt16 BIFF2_ID_DATATABLE2        = 0x0037;
const sal_uInt16 BIFF_ID_DATAVALIDATION     = 0x01BE;
const sal_uInt16 BIFF_ID_DATAVALIDATIONS    = 0x01B2;
const sal_uInt16 BIFF_ID_DATEMODE           = 0x0022;
const sal_uInt16 BIFF_ID_DBCELL             = 0x00D7;
const sal_uInt16 BIFF_ID_DBQUERY            = 0x00DC;
const sal_uInt16 BIFF_ID_DCONBINAME         = 0x01B5;
const sal_uInt16 BIFF_ID_DCONNAME           = 0x0052;
const sal_uInt16 BIFF_ID_DCONREF            = 0x0051;
const sal_uInt16 BIFF_ID_DEFCOLWIDTH        = 0x0055;
const sal_uInt16 BIFF2_ID_DEFINEDNAME       = 0x0018;
const sal_uInt16 BIFF3_ID_DEFINEDNAME       = 0x0218;
const sal_uInt16 BIFF5_ID_DEFINEDNAME       = 0x0018;
const sal_uInt16 BIFF2_ID_DEFROWHEIGHT      = 0x0025;
const sal_uInt16 BIFF3_ID_DEFROWHEIGHT      = 0x0225;
const sal_uInt16 BIFF_ID_DELTA              = 0x0010;
const sal_uInt16 BIFF2_ID_DIMENSION         = 0x0000;
const sal_uInt16 BIFF3_ID_DIMENSION         = 0x0200;
const sal_uInt16 BIFF_ID_DXF                = 0x088D;
const sal_uInt16 BIFF_ID_EOF                = 0x000A;
const sal_uInt16 BIFF_ID_EXTERNALBOOK       = 0x01AE;
const sal_uInt16 BIFF2_ID_EXTERNALNAME      = 0x0023;
const sal_uInt16 BIFF3_ID_EXTERNALNAME      = 0x0223;
const sal_uInt16 BIFF5_ID_EXTERNALNAME      = 0x0023;
const sal_uInt16 BIFF_ID_EXTERNSHEET        = 0x0017;
const sal_uInt16 BIFF_ID_EXTSST             = 0x00FF;
const sal_uInt16 BIFF_ID_FILEPASS           = 0x002F;
const sal_uInt16 BIFF_ID_FILESHARING        = 0x005B;
const sal_uInt16 BIFF_ID_FILTERCOLUMN       = 0x009E;
const sal_uInt16 BIFF_ID_FILTERMODE         = 0x009B;
const sal_uInt16 BIFF2_ID_FONT              = 0x0031;
const sal_uInt16 BIFF3_ID_FONT              = 0x0231;
const sal_uInt16 BIFF5_ID_FONT              = 0x0031;
const sal_uInt16 BIFF_ID_FONTCOLOR          = 0x0045;
const sal_uInt16 BIFF_ID_FOOTER             = 0x0015;
const sal_uInt16 BIFF_ID_FORCEFULLCALC      = 0x08A3;
const sal_uInt16 BIFF2_ID_FORMAT            = 0x001E;
const sal_uInt16 BIFF4_ID_FORMAT            = 0x041E;
const sal_uInt16 BIFF2_ID_FORMULA           = 0x0006;
const sal_uInt16 BIFF3_ID_FORMULA           = 0x0206;
const sal_uInt16 BIFF4_ID_FORMULA           = 0x0406;
const sal_uInt16 BIFF5_ID_FORMULA           = 0x0006;
const sal_uInt16 BIFF_ID_GUTS               = 0x0080;
const sal_uInt16 BIFF_ID_HCENTER            = 0x0083;
const sal_uInt16 BIFF_ID_HEADER             = 0x0014;
const sal_uInt16 BIFF_ID_HEADERFOOTER       = 0x089C;
const sal_uInt16 BIFF_ID_HIDEOBJ            = 0x008D;
const sal_uInt16 BIFF_ID_HORPAGEBREAKS      = 0x001B;
const sal_uInt16 BIFF_ID_HYPERLINK          = 0x01B8;
const sal_uInt16 BIFF3_ID_IMGDATA           = 0x007F;
const sal_uInt16 BIFF8_ID_IMGDATA           = 0x00E9;
const sal_uInt16 BIFF2_ID_INDEX             = 0x000B;
const sal_uInt16 BIFF3_ID_INDEX             = 0x020B;
const sal_uInt16 BIFF2_ID_INTEGER           = 0x0002;
const sal_uInt16 BIFF_ID_INTERFACEHDR       = 0x00E1;
const sal_uInt16 BIFF_ID_ITERATION          = 0x0011;
const sal_uInt16 BIFF_ID_IXFE               = 0x0044;
const sal_uInt16 BIFF2_ID_LABEL             = 0x0004;
const sal_uInt16 BIFF3_ID_LABEL             = 0x0204;
const sal_uInt16 BIFF_ID_LABELRANGES        = 0x015F;
const sal_uInt16 BIFF_ID_LABELSST           = 0x00FD;
const sal_uInt16 BIFF_ID_LEFTMARGIN         = 0x0026;
const sal_uInt16 BIFF_ID_MERGEDCELLS        = 0x00E5;
const sal_uInt16 BIFF_ID_MSODRAWING         = 0x00EC;
const sal_uInt16 BIFF_ID_MSODRAWINGGROUP    = 0x00EB;
const sal_uInt16 BIFF_ID_MSODRAWINGSEL      = 0x00ED;
const sal_uInt16 BIFF_ID_MTHREADSETTINGS    = 0x089A;
const sal_uInt16 BIFF_ID_MULTBLANK          = 0x00BE;
const sal_uInt16 BIFF_ID_MULTRK             = 0x00BD;
const sal_uInt16 BIFF_ID_NOTE               = 0x001C;
const sal_uInt16 BIFF_ID_NOTESOUND          = 0x0096;
const sal_uInt16 BIFF2_ID_NUMBER            = 0x0003;
const sal_uInt16 BIFF3_ID_NUMBER            = 0x0203;
const sal_uInt16 BIFF_ID_OBJ                = 0x005D;
const sal_uInt16 BIFF_ID_OBJECTPROTECT      = 0x0063;
const sal_uInt16 BIFF_ID_OLESIZE            = 0x00DE;
const sal_uInt16 BIFF_ID_PAGELAYOUTVIEW     = 0x088B;
const sal_uInt16 BIFF_ID_PAGESETUP          = 0x00A1;
const sal_uInt16 BIFF_ID_PALETTE            = 0x0092;
const sal_uInt16 BIFF_ID_PANE               = 0x0041;
const sal_uInt16 BIFF_ID_PARAMQUERY         = 0x00DC;
const sal_uInt16 BIFF_ID_PASSWORD           = 0x0013;
const sal_uInt16 BIFF_ID_PCDEFINITION       = 0x00C6;
const sal_uInt16 BIFF_ID_PCDEFINITION2      = 0x0122;
const sal_uInt16 BIFF_ID_PCDFDISCRETEPR     = 0x00D9;
const sal_uInt16 BIFF_ID_PCDFIELD           = 0x00C7;
const sal_uInt16 BIFF_ID_PCDFIELDINDEX      = 0x0103;
const sal_uInt16 BIFF_ID_PCDFORMULAFIELD    = 0x00F9;
const sal_uInt16 BIFF_ID_PCDFRANGEPR        = 0x00D8;
const sal_uInt16 BIFF_ID_PCDFSQLTYPE        = 0x01BB;
const sal_uInt16 BIFF_ID_PCDSOURCE          = 0x00E3;
const sal_uInt16 BIFF_ID_PCITEM_BOOL        = 0x00CA;
const sal_uInt16 BIFF_ID_PCITEM_DATE        = 0x00CE;
const sal_uInt16 BIFF_ID_PCITEM_DOUBLE      = 0x00C9;
const sal_uInt16 BIFF_ID_PCITEM_ERROR       = 0x00CB;
const sal_uInt16 BIFF_ID_PCITEM_INDEXLIST   = 0x00C8;
const sal_uInt16 BIFF_ID_PCITEM_INTEGER     = 0x00CC;
const sal_uInt16 BIFF_ID_PCITEM_MISSING     = 0x00CF;
const sal_uInt16 BIFF_ID_PCITEM_STRING      = 0x00CD;
const sal_uInt16 BIFF_ID_PHONETICPR         = 0x00EF;
const sal_uInt16 BIFF_ID_PICTURE            = 0x00E9;
const sal_uInt16 BIFF_ID_PIVOTCACHE         = 0x00D5;
const sal_uInt16 BIFF_ID_PRECISION          = 0x000E;
const sal_uInt16 BIFF_ID_PRINTGRIDLINES     = 0x002B;
const sal_uInt16 BIFF_ID_PRINTHEADERS       = 0x002A;
const sal_uInt16 BIFF_ID_PROJEXTSHEET       = 0x00A3;
const sal_uInt16 BIFF_ID_PROTECT            = 0x0012;
const sal_uInt16 BIFF_ID_PTDATAFIELD        = 0x00C5;
const sal_uInt16 BIFF_ID_PTDEFINITION       = 0x00B0;
const sal_uInt16 BIFF_ID_PTDEFINITION2      = 0x00F1;
const sal_uInt16 BIFF_ID_PTFIELD            = 0x00B1;
const sal_uInt16 BIFF_ID_PTFIELD2           = 0x0100;
const sal_uInt16 BIFF_ID_PTFITEM            = 0x00B2;
const sal_uInt16 BIFF_ID_PTPAGEFIELDS       = 0x00B6;
const sal_uInt16 BIFF_ID_PTROWCOLFIELDS     = 0x00B4;
const sal_uInt16 BIFF_ID_PTROWCOLITEMS      = 0x00B5;
const sal_uInt16 BIFF_ID_QUERYTABLE         = 0x01AD;
const sal_uInt16 BIFF_ID_QUERYTABLEREFRESH  = 0x0802;
const sal_uInt16 BIFF_ID_QUERYTABLESETTINGS = 0x0803;
const sal_uInt16 BIFF_ID_QUERYTABLESTRING   = 0x0804;
const sal_uInt16 BIFF_ID_RECALCID           = 0x01C1;
const sal_uInt16 BIFF_ID_REFMODE            = 0x000F;
const sal_uInt16 BIFF_ID_RIGHTMARGIN        = 0x0027;
const sal_uInt16 BIFF_ID_RK                 = 0x027E;
const sal_uInt16 BIFF2_ID_ROW               = 0x0008;
const sal_uInt16 BIFF3_ID_ROW               = 0x0208;
const sal_uInt16 BIFF_ID_RSTRING            = 0x00D6;
const sal_uInt16 BIFF_ID_SAVERECALC         = 0x005F;
const sal_uInt16 BIFF_ID_SCENARIO           = 0x00AF;
const sal_uInt16 BIFF_ID_SCENARIOS          = 0x00AE;
const sal_uInt16 BIFF_ID_SCL                = 0x00A0;
const sal_uInt16 BIFF_ID_SCENPROTECT        = 0x00DD;
const sal_uInt16 BIFF_ID_SCREENTIP          = 0x0800;
const sal_uInt16 BIFF_ID_SELECTION          = 0x001D;
const sal_uInt16 BIFF_ID_SHAREDFEATHEAD     = 0x0867;
const sal_uInt16 BIFF_ID_SHAREDFMLA         = 0x04BC;
const sal_uInt16 BIFF_ID_SHEET              = 0x0085;
const sal_uInt16 BIFF_ID_SHEETEXT           = 0x0862;
const sal_uInt16 BIFF_ID_SHEETHEADER        = 0x008F;
const sal_uInt16 BIFF_ID_SHEETPR            = 0x0081;
const sal_uInt16 BIFF_ID_SST                = 0x00FC;
const sal_uInt16 BIFF_ID_STANDARDWIDTH      = 0x0099;
const sal_uInt16 BIFF2_ID_STRING            = 0x0007;
const sal_uInt16 BIFF3_ID_STRING            = 0x0207;
const sal_uInt16 BIFF_ID_STYLE              = 0x0293;
const sal_uInt16 BIFF_ID_STYLEEXT           = 0x0892;
const sal_uInt16 BIFF_ID_TABLESTYLES        = 0x088E;
const sal_uInt16 BIFF_ID_THEME              = 0x0896;
const sal_uInt16 BIFF_ID_TOPMARGIN          = 0x0028;
const sal_uInt16 BIFF_ID_TXO                = 0x01B6;
const sal_uInt16 BIFF_ID_UNCALCED           = 0x005E;
const sal_uInt16 BIFF_ID_USESELFS           = 0x0160;
const sal_uInt16 BIFF_ID_VBAPROJECT         = 0x00D3;
const sal_uInt16 BIFF_ID_VBAPROJECTEMPTY    = 0x01BD;
const sal_uInt16 BIFF_ID_VCENTER            = 0x0084;
const sal_uInt16 BIFF_ID_VERPAGEBREAKS      = 0x001A;
const sal_uInt16 BIFF_ID_WINDOW1            = 0x003D;
const sal_uInt16 BIFF2_ID_WINDOW2           = 0x003E;
const sal_uInt16 BIFF3_ID_WINDOW2           = 0x023E;
const sal_uInt16 BIFF_ID_WRITEACCESS        = 0x005C;
const sal_uInt16 BIFF_ID_XCT                = 0x0059;
const sal_uInt16 BIFF2_ID_XF                = 0x0043;
const sal_uInt16 BIFF3_ID_XF                = 0x0243;
const sal_uInt16 BIFF4_ID_XF                = 0x0443;
const sal_uInt16 BIFF5_ID_XF                = 0x00E0;
const sal_uInt16 BIFF_ID_XFCRC              = 0x087C;
const sal_uInt16 BIFF_ID_XFEXT              = 0x087D;

const sal_uInt16 BIFF_ID_UNKNOWN            = SAL_MAX_UINT16;

// OBJ subrecord identifiers --------------------------------------------------

const sal_uInt16 BIFF_ID_OBJEND             = 0x0000;   /// End of OBJ.
const sal_uInt16 BIFF_ID_OBJMACRO           = 0x0004;   /// Macro link.
const sal_uInt16 BIFF_ID_OBJBUTTON          = 0x0005;   /// Button data.
const sal_uInt16 BIFF_ID_OBJGMO             = 0x0006;   /// Group marker.
const sal_uInt16 BIFF_ID_OBJCF              = 0x0007;   /// Clipboard format.
const sal_uInt16 BIFF_ID_OBJFLAGS           = 0x0008;   /// Option flags.
const sal_uInt16 BIFF_ID_OBJPICTFMLA        = 0x0009;   /// OLE link formula.
const sal_uInt16 BIFF_ID_OBJCBLS            = 0x000A;   /// Check box/radio button data.
const sal_uInt16 BIFF_ID_OBJRBO             = 0x000B;   /// Radio button group data.
const sal_uInt16 BIFF_ID_OBJSBS             = 0x000C;   /// Scroll bar data.
const sal_uInt16 BIFF_ID_OBJNTS             = 0x000C;   /// Note data.
const sal_uInt16 BIFF_ID_OBJSBSFMLA         = 0x000E;   /// Scroll bar/list box/combo box cell link.
const sal_uInt16 BIFF_ID_OBJGBODATA         = 0x000F;   /// Group box data.
const sal_uInt16 BIFF_ID_OBJEDODATA         = 0x0010;   /// Edit box data.
const sal_uInt16 BIFF_ID_OBJRBODATA         = 0x0011;   /// Radio button group data.
const sal_uInt16 BIFF_ID_OBJCBLSDATA        = 0x0012;   /// Check box/radio button data.
const sal_uInt16 BIFF_ID_OBJLBSDATA         = 0x0013;   /// List box/combo box data.
const sal_uInt16 BIFF_ID_OBJCBLSFMLA        = 0x0014;   /// Check box/radio button cell link.
const sal_uInt16 BIFF_ID_OBJCMO             = 0x0015;   /// Common object settings.

// record constants -----------------------------------------------------------

const sal_uInt16 BIFF_BOF_BIFF2             = 0x0200;
const sal_uInt16 BIFF_BOF_BIFF3             = 0x0300;
const sal_uInt16 BIFF_BOF_BIFF4             = 0x0400;
const sal_uInt16 BIFF_BOF_BIFF5             = 0x0500;
const sal_uInt16 BIFF_BOF_BIFF8             = 0x0600;

const sal_uInt8 BIFF_ERR_NULL               = 0x00;
const sal_uInt8 BIFF_ERR_DIV0               = 0x07;
const sal_uInt8 BIFF_ERR_VALUE              = 0x0F;
const sal_uInt8 BIFF_ERR_REF                = 0x17;
const sal_uInt8 BIFF_ERR_NAME               = 0x1D;
const sal_uInt8 BIFF_ERR_NUM                = 0x24;
const sal_uInt8 BIFF_ERR_NA                 = 0x2A;

const sal_uInt8 BIFF_DATATYPE_EMPTY         = 0;
const sal_uInt8 BIFF_DATATYPE_DOUBLE        = 1;
const sal_uInt8 BIFF_DATATYPE_STRING        = 2;
const sal_uInt8 BIFF_DATATYPE_BOOL          = 4;
const sal_uInt8 BIFF_DATATYPE_ERROR         = 16;

const sal_uInt8 BIFF_BOOLERR_BOOL           = 0;
const sal_uInt8 BIFF_BOOLERR_ERROR          = 1;

// BIFF8 unicode strings ------------------------------------------------------

const sal_uInt8 BIFF_STRF_16BIT             = 0x01;
const sal_uInt8 BIFF_STRF_PHONETIC          = 0x04;
const sal_uInt8 BIFF_STRF_RICH              = 0x08;
const sal_uInt8 BIFF_STRF_UNKNOWN           = 0xF2;

// ============================================================================

/** Static helper functions for BIFF filters. */
class BiffHelper
{
public:
    // conversion -------------------------------------------------------------

    /** Converts the passed packed number to a double. */
    static double       calcDoubleFromRk( sal_Int32 nRkValue );
    /** Converts the passed double to a packed number, returns true on success. */
    static bool         calcRkFromDouble( sal_Int32& ornRkValue, double fValue );

    /** Converts the passed BIFF error to a double containing the respective Calc error code. */
    static double       calcDoubleFromError( sal_uInt8 nErrorCode );

    /** Returns a text encoding from an Windows code page.
        @return  The corresponding text encoding or RTL_TEXTENCODING_DONTKNOW. */
    static rtl_TextEncoding calcTextEncodingFromCodePage( sal_uInt16 nCodePage );
    /** Returns a Windows code page from a text encoding. */
    static sal_uInt16   calcCodePageFromTextEncoding( rtl_TextEncoding eTextEnc );

    // BIFF12 import ----------------------------------------------------------
    
    /** Reads a BIFF12 string with leading 16-bit or 32-bit length field. */
    static ::rtl::OUString readString( SequenceInputStream& rStrm, bool b32BitLen = true, bool bAllowNulChars = false );

    // BIFF2-BIFF8 import -----------------------------------------------------

    /** Returns true, if the current record of the stream is a BOF record. */
    static bool         isBofRecord( BiffInputStream& rStrm );

    /** Skips a block of records up to the specified end record.

        Skips all records until next end record. When this function returns,
        the stream points to the end record, and the next call of the function
        startNextRecord() at the stream will start the record following the end
        record.

        The identifier of the record that is active while this function is
        called is used as start record identifier. This identifier is used to
        correctly skip embedded record blocks with the same start and end
        record identifier.

        @return  True = stream points to the end record.
     */
    static bool         skipRecordBlock( BiffInputStream& rStrm, sal_uInt16 nEndRecId );

    /** Imports a picture from an IMGDATA record. */
    static void         importImgData( StreamDataSequence& orDataSeq, BiffInputStream& rStrm, BiffType eBiff );

private:
                        BiffHelper();   // not implemented
                        ~BiffHelper();  // not implemented
};

// ----------------------------------------------------------------------------

/** BIFF12 stream operator for an ::rtl::OUString, reads 32-bit string length and Unicode array. */
inline SequenceInputStream& operator>>( SequenceInputStream& rStrm, ::rtl::OUString& orString )
{
    orString = BiffHelper::readString( rStrm );
    return rStrm;
}

// ============================================================================

} // namespace xls
} // namespace oox

#endif
