LCOV - code coverage report
Current view: top level - sc/source/filter/inc - biffhelper.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 3 0.0 %
Date: 2012-08-25 Functions: 0 1 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : #ifndef OOX_XLS_BIFFHELPER_HXX
      30                 :            : #define OOX_XLS_BIFFHELPER_HXX
      31                 :            : 
      32                 :            : #include "oox/helper/binarystreambase.hxx"
      33                 :            : 
      34                 :            : namespace oox { class SequenceInputStream; }
      35                 :            : 
      36                 :            : namespace oox {
      37                 :            : namespace xls {
      38                 :            : 
      39                 :            : class BiffInputStream;
      40                 :            : 
      41                 :            : // BIFF12 record identifiers ==================================================
      42                 :            : 
      43                 :            : const sal_Int32 BIFF12_ID_ARRAY             = 0x01AA;
      44                 :            : const sal_Int32 BIFF12_ID_AUTOFILTER        = 0x00A1;
      45                 :            : const sal_Int32 BIFF12_ID_AUTOSORTSCOPE     = 0x01CB;
      46                 :            : const sal_Int32 BIFF12_ID_BINARYINDEXBLOCK  = 0x002A;
      47                 :            : const sal_Int32 BIFF12_ID_BINARYINDEXROWS   = 0x0028;
      48                 :            : const sal_Int32 BIFF12_ID_BOOKVIEWS         = 0x0087;
      49                 :            : const sal_Int32 BIFF12_ID_BORDER            = 0x002E;
      50                 :            : const sal_Int32 BIFF12_ID_BORDERS           = 0x0265;
      51                 :            : const sal_Int32 BIFF12_ID_BRK               = 0x018C;
      52                 :            : const sal_Int32 BIFF12_ID_CALCPR            = 0x009D;
      53                 :            : const sal_Int32 BIFF12_ID_CELL_BLANK        = 0x0001;
      54                 :            : const sal_Int32 BIFF12_ID_CELL_BOOL         = 0x0004;
      55                 :            : const sal_Int32 BIFF12_ID_CELL_DOUBLE       = 0x0005;
      56                 :            : const sal_Int32 BIFF12_ID_CELL_ERROR        = 0x0003;
      57                 :            : const sal_Int32 BIFF12_ID_CELL_RK           = 0x0002;
      58                 :            : const sal_Int32 BIFF12_ID_CELL_RSTRING      = 0x003E;
      59                 :            : const sal_Int32 BIFF12_ID_CELL_SI           = 0x0007;
      60                 :            : const sal_Int32 BIFF12_ID_CELL_STRING       = 0x0006;
      61                 :            : const sal_Int32 BIFF12_ID_CELLSTYLE         = 0x0030;
      62                 :            : const sal_Int32 BIFF12_ID_CELLSTYLES        = 0x026B;
      63                 :            : const sal_Int32 BIFF12_ID_CELLSTYLEXFS      = 0x0272;
      64                 :            : const sal_Int32 BIFF12_ID_CELLXFS           = 0x0269;
      65                 :            : const sal_Int32 BIFF12_ID_CFCOLOR           = 0x0234;
      66                 :            : const sal_Int32 BIFF12_ID_CFRULE            = 0x01CF;
      67                 :            : const sal_Int32 BIFF12_ID_CHARTPAGESETUP    = 0x028C;
      68                 :            : const sal_Int32 BIFF12_ID_CHARTPROTECTION   = 0x029D;
      69                 :            : const sal_Int32 BIFF12_ID_CHARTSHEETPR      = 0x028B;
      70                 :            : const sal_Int32 BIFF12_ID_CHARTSHEETVIEW    = 0x008D;
      71                 :            : const sal_Int32 BIFF12_ID_CHARTSHEETVIEWS   = 0x008B;
      72                 :            : const sal_Int32 BIFF12_ID_COL               = 0x003C;
      73                 :            : const sal_Int32 BIFF12_ID_COLBREAKS         = 0x018A;
      74                 :            : const sal_Int32 BIFF12_ID_COLOR             = 0x023C;
      75                 :            : const sal_Int32 BIFF12_ID_COLORS            = 0x01D9;
      76                 :            : const sal_Int32 BIFF12_ID_COLORSCALE        = 0x01D5;
      77                 :            : const sal_Int32 BIFF12_ID_COLS              = 0x0186;
      78                 :            : const sal_Int32 BIFF12_ID_COMMENT           = 0x027B;
      79                 :            : const sal_Int32 BIFF12_ID_COMMENTAUTHOR     = 0x0278;
      80                 :            : const sal_Int32 BIFF12_ID_COMMENTAUTHORS    = 0x0276;
      81                 :            : const sal_Int32 BIFF12_ID_COMMENTLIST       = 0x0279;
      82                 :            : const sal_Int32 BIFF12_ID_COMMENTS          = 0x0274;
      83                 :            : const sal_Int32 BIFF12_ID_COMMENTTEXT       = 0x027D;
      84                 :            : const sal_Int32 BIFF12_ID_CONDFORMATTING    = 0x01CD;
      85                 :            : const sal_Int32 BIFF12_ID_CONNECTION        = 0x00C9;
      86                 :            : const sal_Int32 BIFF12_ID_CONNECTIONS       = 0x01AD;
      87                 :            : const sal_Int32 BIFF12_ID_CONTROL           = 0x0284;
      88                 :            : const sal_Int32 BIFF12_ID_CONTROLS          = 0x0283;
      89                 :            : const sal_Int32 BIFF12_ID_CUSTOMCHARTVIEW   = 0x028F;
      90                 :            : const sal_Int32 BIFF12_ID_CUSTOMCHARTVIEWS  = 0x028D;
      91                 :            : const sal_Int32 BIFF12_ID_CUSTOMFILTER      = 0x00AE;
      92                 :            : const sal_Int32 BIFF12_ID_CUSTOMFILTERS     = 0x00AC;
      93                 :            : const sal_Int32 BIFF12_ID_CUSTOMSHEETVIEW   = 0x01A7;
      94                 :            : const sal_Int32 BIFF12_ID_CUSTOMSHEETVIEWS  = 0x01A6;
      95                 :            : const sal_Int32 BIFF12_ID_CUSTOMWORKBOOKVIEW= 0x018D;
      96                 :            : const sal_Int32 BIFF12_ID_DATABAR           = 0x01D3;
      97                 :            : const sal_Int32 BIFF12_ID_DATATABLE         = 0x01AC;
      98                 :            : const sal_Int32 BIFF12_ID_DATAVALIDATION    = 0x0040;
      99                 :            : const sal_Int32 BIFF12_ID_DATAVALIDATIONS   = 0x023D;
     100                 :            : const sal_Int32 BIFF12_ID_DDEITEMVALUES     = 0x0242;
     101                 :            : const sal_Int32 BIFF12_ID_DDEITEM_BOOL      = 0x0248;
     102                 :            : const sal_Int32 BIFF12_ID_DDEITEM_DOUBLE    = 0x0244;
     103                 :            : const sal_Int32 BIFF12_ID_DDEITEM_ERROR     = 0x0245;
     104                 :            : const sal_Int32 BIFF12_ID_DDEITEM_STRING    = 0x0246;
     105                 :            : const sal_Int32 BIFF12_ID_DEFINEDNAME       = 0x0027;
     106                 :            : const sal_Int32 BIFF12_ID_DIMENSION         = 0x0094;
     107                 :            : const sal_Int32 BIFF12_ID_DISCRETEFILTER    = 0x00A7;
     108                 :            : const sal_Int32 BIFF12_ID_DISCRETEFILTERS   = 0x00A5;
     109                 :            : const sal_Int32 BIFF12_ID_DRAWING           = 0x0226;
     110                 :            : const sal_Int32 BIFF12_ID_DXF               = 0x01FB;
     111                 :            : const sal_Int32 BIFF12_ID_DXFS              = 0x01F9;
     112                 :            : const sal_Int32 BIFF12_ID_EXTCELL_BLANK     = 0x016F;
     113                 :            : const sal_Int32 BIFF12_ID_EXTCELL_BOOL      = 0x0171;
     114                 :            : const sal_Int32 BIFF12_ID_EXTCELL_DOUBLE    = 0x0170;
     115                 :            : const sal_Int32 BIFF12_ID_EXTCELL_ERROR     = 0x0172;
     116                 :            : const sal_Int32 BIFF12_ID_EXTCELL_STRING    = 0x0173;
     117                 :            : const sal_Int32 BIFF12_ID_EXTERNALADDIN     = 0x029B;
     118                 :            : const sal_Int32 BIFF12_ID_EXTERNALBOOK      = 0x0168;
     119                 :            : const sal_Int32 BIFF12_ID_EXTERNALNAME      = 0x0241;
     120                 :            : const sal_Int32 BIFF12_ID_EXTERNALREF       = 0x0163;
     121                 :            : const sal_Int32 BIFF12_ID_EXTERNALREFS      = 0x0161;
     122                 :            : const sal_Int32 BIFF12_ID_EXTERNALSELF      = 0x0165;
     123                 :            : const sal_Int32 BIFF12_ID_EXTERNALSAME      = 0x0166;
     124                 :            : const sal_Int32 BIFF12_ID_EXTERNALSHEETS    = 0x016A;
     125                 :            : const sal_Int32 BIFF12_ID_EXTROW            = 0x016E;
     126                 :            : const sal_Int32 BIFF12_ID_EXTSHEETDATA      = 0x016B;
     127                 :            : const sal_Int32 BIFF12_ID_EXTERNALNAMEFLAGS = 0x024A;
     128                 :            : const sal_Int32 BIFF12_ID_EXTSHEETNAMES     = 0x0167;
     129                 :            : const sal_Int32 BIFF12_ID_FILESHARING       = 0x0224;
     130                 :            : const sal_Int32 BIFF12_ID_FILEVERSION       = 0x0080;
     131                 :            : const sal_Int32 BIFF12_ID_FILL              = 0x002D;
     132                 :            : const sal_Int32 BIFF12_ID_FILLS             = 0x025B;
     133                 :            : const sal_Int32 BIFF12_ID_FILTERCOLUMN      = 0x00A3;
     134                 :            : const sal_Int32 BIFF12_ID_FONT              = 0x002B;
     135                 :            : const sal_Int32 BIFF12_ID_FONTS             = 0x0263;
     136                 :            : const sal_Int32 BIFF12_ID_FORMULA_STRING    = 0x0008;
     137                 :            : const sal_Int32 BIFF12_ID_FORMULA_DOUBLE    = 0x0009;
     138                 :            : const sal_Int32 BIFF12_ID_FORMULA_BOOL      = 0x000A;
     139                 :            : const sal_Int32 BIFF12_ID_FORMULA_ERROR     = 0x000B;
     140                 :            : const sal_Int32 BIFF12_ID_FUNCTIONGROUP     = 0x0299;
     141                 :            : const sal_Int32 BIFF12_ID_FUNCTIONGROUPS    = 0x0298;
     142                 :            : const sal_Int32 BIFF12_ID_HEADERFOOTER      = 0x01DF;
     143                 :            : const sal_Int32 BIFF12_ID_HYPERLINK         = 0x01EE;
     144                 :            : const sal_Int32 BIFF12_ID_ICONSET           = 0x01D1;
     145                 :            : const sal_Int32 BIFF12_ID_INDEXEDCOLORS     = 0x0235;
     146                 :            : const sal_Int32 BIFF12_ID_INPUTCELLS        = 0x01F8;
     147                 :            : const sal_Int32 BIFF12_ID_LEGACYDRAWING     = 0x0227;
     148                 :            : const sal_Int32 BIFF12_ID_MERGECELL         = 0x00B0;
     149                 :            : const sal_Int32 BIFF12_ID_MERGECELLS        = 0x00B1;
     150                 :            : const sal_Int32 BIFF12_ID_MRUCOLORS         = 0x0239;
     151                 :            : const sal_Int32 BIFF12_ID_MULTCELL_BLANK    = 0x000C;
     152                 :            : const sal_Int32 BIFF12_ID_MULTCELL_BOOL     = 0x000F;
     153                 :            : const sal_Int32 BIFF12_ID_MULTCELL_DOUBLE   = 0x0010;
     154                 :            : const sal_Int32 BIFF12_ID_MULTCELL_ERROR    = 0x000E;
     155                 :            : const sal_Int32 BIFF12_ID_MULTCELL_RK       = 0x000D;
     156                 :            : const sal_Int32 BIFF12_ID_MULTCELL_RSTRING  = 0x003D;
     157                 :            : const sal_Int32 BIFF12_ID_MULTCELL_SI       = 0x0012;
     158                 :            : const sal_Int32 BIFF12_ID_MULTCELL_STRING   = 0x0011;
     159                 :            : const sal_Int32 BIFF12_ID_NUMFMT            = 0x002C;
     160                 :            : const sal_Int32 BIFF12_ID_NUMFMTS           = 0x0267;
     161                 :            : const sal_Int32 BIFF12_ID_OLEOBJECT         = 0x027F;
     162                 :            : const sal_Int32 BIFF12_ID_OLEOBJECTS        = 0x027E;
     163                 :            : const sal_Int32 BIFF12_ID_OLESIZE           = 0x0225;
     164                 :            : const sal_Int32 BIFF12_ID_PAGEMARGINS       = 0x01DC;
     165                 :            : const sal_Int32 BIFF12_ID_PAGESETUP         = 0x01DE;
     166                 :            : const sal_Int32 BIFF12_ID_PANE              = 0x0097;
     167                 :            : const sal_Int32 BIFF12_ID_PCDEFINITION      = 0x00B3;
     168                 :            : const sal_Int32 BIFF12_ID_PCDFDISCRETEPR    = 0x00E1;
     169                 :            : const sal_Int32 BIFF12_ID_PCDFGROUPITEMS    = 0x00DD;
     170                 :            : const sal_Int32 BIFF12_ID_PCDFIELD          = 0x00B7;
     171                 :            : const sal_Int32 BIFF12_ID_PCDFIELDGROUP     = 0x00DB;
     172                 :            : const sal_Int32 BIFF12_ID_PCDFIELDS         = 0x00B5;
     173                 :            : const sal_Int32 BIFF12_ID_PCDFRANGEPR       = 0x00DF;
     174                 :            : const sal_Int32 BIFF12_ID_PCDFSHAREDITEMS   = 0x00BD;
     175                 :            : const sal_Int32 BIFF12_ID_PCDSHEETSOURCE    = 0x00BB;
     176                 :            : const sal_Int32 BIFF12_ID_PCDSOURCE         = 0x00B9;
     177                 :            : const sal_Int32 BIFF12_ID_PCITEM_ARRAY      = 0x00BF;
     178                 :            : const sal_Int32 BIFF12_ID_PCITEM_BOOL       = 0x0016;
     179                 :            : const sal_Int32 BIFF12_ID_PCITEM_DATE       = 0x0019;
     180                 :            : const sal_Int32 BIFF12_ID_PCITEM_DOUBLE     = 0x0015;
     181                 :            : const sal_Int32 BIFF12_ID_PCITEM_ERROR      = 0x0017;
     182                 :            : const sal_Int32 BIFF12_ID_PCITEM_INDEX      = 0x001A;
     183                 :            : const sal_Int32 BIFF12_ID_PCITEM_MISSING    = 0x0014;
     184                 :            : const sal_Int32 BIFF12_ID_PCITEM_STRING     = 0x0018;
     185                 :            : const sal_Int32 BIFF12_ID_PCITEMA_BOOL      = 0x001D;
     186                 :            : const sal_Int32 BIFF12_ID_PCITEMA_DATE      = 0x0020;
     187                 :            : const sal_Int32 BIFF12_ID_PCITEMA_DOUBLE    = 0x001C;
     188                 :            : const sal_Int32 BIFF12_ID_PCITEMA_ERROR     = 0x001E;
     189                 :            : const sal_Int32 BIFF12_ID_PCITEMA_MISSING   = 0x001B;
     190                 :            : const sal_Int32 BIFF12_ID_PCITEMA_STRING    = 0x001F;
     191                 :            : const sal_Int32 BIFF12_ID_PCRECORD          = 0x0021;
     192                 :            : const sal_Int32 BIFF12_ID_PCRECORDDT        = 0x0022;
     193                 :            : const sal_Int32 BIFF12_ID_PCRECORDS         = 0x00C1;
     194                 :            : const sal_Int32 BIFF12_ID_PHONETICPR        = 0x0219;
     195                 :            : const sal_Int32 BIFF12_ID_PICTURE           = 0x0232;
     196                 :            : const sal_Int32 BIFF12_ID_PIVOTAREA         = 0x00F7;
     197                 :            : const sal_Int32 BIFF12_ID_PIVOTCACHE        = 0x0182;
     198                 :            : const sal_Int32 BIFF12_ID_PIVOTCACHES       = 0x0180;
     199                 :            : const sal_Int32 BIFF12_ID_PRINTOPTIONS      = 0x01DD;
     200                 :            : const sal_Int32 BIFF12_ID_PTCOLFIELDS       = 0x0137;
     201                 :            : const sal_Int32 BIFF12_ID_PTDATAFIELD       = 0x0125;
     202                 :            : const sal_Int32 BIFF12_ID_PTDATAFIELDS      = 0x0127;
     203                 :            : const sal_Int32 BIFF12_ID_PTDEFINITION      = 0x0118;
     204                 :            : const sal_Int32 BIFF12_ID_PTFIELD           = 0x011D;
     205                 :            : const sal_Int32 BIFF12_ID_PTFIELDS          = 0x011F;
     206                 :            : const sal_Int32 BIFF12_ID_PTFILTER          = 0x0259;
     207                 :            : const sal_Int32 BIFF12_ID_PTFILTERS         = 0x0257;
     208                 :            : const sal_Int32 BIFF12_ID_PTFITEM           = 0x011A;
     209                 :            : const sal_Int32 BIFF12_ID_PTFITEMS          = 0x011B;
     210                 :            : const sal_Int32 BIFF12_ID_PTLOCATION        = 0x013A;
     211                 :            : const sal_Int32 BIFF12_ID_PTPAGEFIELD       = 0x0121;
     212                 :            : const sal_Int32 BIFF12_ID_PTPAGEFIELDS      = 0x0123;
     213                 :            : const sal_Int32 BIFF12_ID_PTREFERENCE       = 0x00FB;
     214                 :            : const sal_Int32 BIFF12_ID_PTREFERENCEITEM   = 0x017E;
     215                 :            : const sal_Int32 BIFF12_ID_PTREFERENCES      = 0x00F9;
     216                 :            : const sal_Int32 BIFF12_ID_PTROWFIELDS       = 0x0135;
     217                 :            : const sal_Int32 BIFF12_ID_QUERYTABLE        = 0x01BF;
     218                 :            : const sal_Int32 BIFF12_ID_QUERYTABLEREFRESH = 0x01C1;
     219                 :            : const sal_Int32 BIFF12_ID_RGBCOLOR          = 0x01DB;
     220                 :            : const sal_Int32 BIFF12_ID_ROW               = 0x0000;
     221                 :            : const sal_Int32 BIFF12_ID_ROWBREAKS         = 0x0188;
     222                 :            : const sal_Int32 BIFF12_ID_SCENARIO          = 0x01F6;
     223                 :            : const sal_Int32 BIFF12_ID_SCENARIOS         = 0x01F4;
     224                 :            : const sal_Int32 BIFF12_ID_SELECTION         = 0x0098;
     225                 :            : const sal_Int32 BIFF12_ID_SHAREDFMLA        = 0x01AB;
     226                 :            : const sal_Int32 BIFF12_ID_SHEET             = 0x009C;
     227                 :            : const sal_Int32 BIFF12_ID_SHEETDATA         = 0x0091;
     228                 :            : const sal_Int32 BIFF12_ID_SHEETFORMATPR     = 0x01E5;
     229                 :            : const sal_Int32 BIFF12_ID_SHEETPR           = 0x0093;
     230                 :            : const sal_Int32 BIFF12_ID_SHEETPROTECTION   = 0x0217;
     231                 :            : const sal_Int32 BIFF12_ID_SHEETS            = 0x008F;
     232                 :            : const sal_Int32 BIFF12_ID_SHEETVIEW         = 0x0089;
     233                 :            : const sal_Int32 BIFF12_ID_SHEETVIEWS        = 0x0085;
     234                 :            : const sal_Int32 BIFF12_ID_SI                = 0x0013;
     235                 :            : const sal_Int32 BIFF12_ID_SST               = 0x009F;
     236                 :            : const sal_Int32 BIFF12_ID_STYLESHEET        = 0x0116;
     237                 :            : const sal_Int32 BIFF12_ID_TABLE             = 0x0157;
     238                 :            : const sal_Int32 BIFF12_ID_TABLEPART         = 0x0295;
     239                 :            : const sal_Int32 BIFF12_ID_TABLEPARTS        = 0x0294;
     240                 :            : const sal_Int32 BIFF12_ID_TABLESTYLEINFO    = 0x0201;
     241                 :            : const sal_Int32 BIFF12_ID_TABLESTYLES       = 0x01FC;
     242                 :            : const sal_Int32 BIFF12_ID_TOP10FILTER       = 0x00AA;
     243                 :            : const sal_Int32 BIFF12_ID_VOLTYPE           = 0x0204;
     244                 :            : const sal_Int32 BIFF12_ID_VOLTYPEMAIN       = 0x0206;
     245                 :            : const sal_Int32 BIFF12_ID_VOLTYPES          = 0x0202;
     246                 :            : const sal_Int32 BIFF12_ID_VOLTYPESTP        = 0x020A;
     247                 :            : const sal_Int32 BIFF12_ID_VOLTYPETR         = 0x020B;
     248                 :            : const sal_Int32 BIFF12_ID_WEBPR             = 0x0105;
     249                 :            : const sal_Int32 BIFF12_ID_WEBPRTABLES       = 0x0107;
     250                 :            : const sal_Int32 BIFF12_ID_WORKBOOK          = 0x0083;
     251                 :            : const sal_Int32 BIFF12_ID_WORKBOOKPR        = 0x0099;
     252                 :            : const sal_Int32 BIFF12_ID_WORKBOOKVIEW      = 0x009E;
     253                 :            : const sal_Int32 BIFF12_ID_WORKSHEET         = 0x0081;
     254                 :            : const sal_Int32 BIFF12_ID_XF                = 0x002F;
     255                 :            : 
     256                 :            : // BIFF2-BIFF8 record identifiers =============================================
     257                 :            : 
     258                 :            : /** An enumeration for all binary Excel file format types (BIFF types). */
     259                 :            : enum BiffType
     260                 :            : {
     261                 :            :     BIFF2 = 0,                  /// MS Excel 2.1.
     262                 :            :     BIFF3,                      /// MS Excel 3.0.
     263                 :            :     BIFF4,                      /// MS Excel 4.0.
     264                 :            :     BIFF5,                      /// MS Excel 5.0, MS Excel 7.0 (95).
     265                 :            :     BIFF8,                      /// MS Excel 8.0 (97), 9.0 (2000), 10.0 (XP), 11.0 (2003).
     266                 :            :     BIFF_UNKNOWN                /// Unknown BIFF version.
     267                 :            : };
     268                 :            : 
     269                 :            : const sal_uInt16 BIFF2_MAXRECSIZE           = 2080;
     270                 :            : const sal_uInt16 BIFF8_MAXRECSIZE           = 8224;
     271                 :            : 
     272                 :            : // record identifiers ---------------------------------------------------------
     273                 :            : 
     274                 :            : const sal_uInt16 BIFF2_ID_ARRAY             = 0x0021;
     275                 :            : const sal_uInt16 BIFF3_ID_ARRAY             = 0x0221;
     276                 :            : const sal_uInt16 BIFF_ID_AUTOFILTER         = 0x009D;
     277                 :            : const sal_uInt16 BIFF2_ID_BLANK             = 0x0001;
     278                 :            : const sal_uInt16 BIFF3_ID_BLANK             = 0x0201;
     279                 :            : const sal_uInt16 BIFF2_ID_BOF               = 0x0009;
     280                 :            : const sal_uInt16 BIFF3_ID_BOF               = 0x0209;
     281                 :            : const sal_uInt16 BIFF4_ID_BOF               = 0x0409;
     282                 :            : const sal_uInt16 BIFF5_ID_BOF               = 0x0809;
     283                 :            : const sal_uInt16 BIFF_ID_BOOKBOOL           = 0x00DA;
     284                 :            : const sal_uInt16 BIFF_ID_BOOKEXT            = 0x0863;
     285                 :            : const sal_uInt16 BIFF2_ID_BOOLERR           = 0x0005;
     286                 :            : const sal_uInt16 BIFF3_ID_BOOLERR           = 0x0205;
     287                 :            : const sal_uInt16 BIFF_ID_BOTTOMMARGIN       = 0x0029;
     288                 :            : const sal_uInt16 BIFF_ID_CALCCOUNT          = 0x000C;
     289                 :            : const sal_uInt16 BIFF_ID_CALCMODE           = 0x000D;
     290                 :            : const sal_uInt16 BIFF_ID_CFHEADER           = 0x01B0;
     291                 :            : const sal_uInt16 BIFF_ID_CFRULE             = 0x01B1;
     292                 :            : const sal_uInt16 BIFF_ID_CFRULE12           = 0x087A;
     293                 :            : const sal_uInt16 BIFF_ID_CFRULEEXT          = 0x087B;
     294                 :            : const sal_uInt16 BIFF_ID_CH3DDATAFORMAT     = 0x105F;
     295                 :            : const sal_uInt16 BIFF_ID_CHAREA             = 0x101A;
     296                 :            : const sal_uInt16 BIFF_ID_CHAREAFORMAT       = 0x100A;
     297                 :            : const sal_uInt16 BIFF_ID_CHATTACHEDLABEL    = 0x100C;
     298                 :            : const sal_uInt16 BIFF_ID_CHAXESSET          = 0x1041;
     299                 :            : const sal_uInt16 BIFF_ID_CHAXIS             = 0x101D;
     300                 :            : const sal_uInt16 BIFF_ID_CHAXISLINE         = 0x1021;
     301                 :            : const sal_uInt16 BIFF_ID_CHBAR              = 0x1017;
     302                 :            : const sal_uInt16 BIFF_ID_CHBEGIN            = 0x1033;
     303                 :            : const sal_uInt16 BIFF_ID_CHCHART            = 0x1002;
     304                 :            : const sal_uInt16 BIFF_ID_CHCHART3D          = 0x103A;
     305                 :            : const sal_uInt16 BIFF_ID_CHCHARTLINE        = 0x101C;
     306                 :            : const sal_uInt16 BIFF_ID_CHDATAFORMAT       = 0x1006;
     307                 :            : const sal_uInt16 BIFF_ID_CHDATERANGE        = 0x1062;
     308                 :            : const sal_uInt16 BIFF_ID_CHDEFAULTTEXT      = 0x1024;
     309                 :            : const sal_uInt16 BIFF_ID_CHDROPBAR          = 0x103D;
     310                 :            : const sal_uInt16 BIFF_ID_CHECKCOMPAT        = 0x088C;
     311                 :            : const sal_uInt16 BIFF_ID_CHEND              = 0x1034;
     312                 :            : const sal_uInt16 BIFF_ID_CHESCHERFORMAT     = 0x1066;
     313                 :            : const sal_uInt16 BIFF_ID_CHFONT             = 0x1026;
     314                 :            : const sal_uInt16 BIFF_ID_CHFORMAT           = 0x104E;
     315                 :            : const sal_uInt16 BIFF_ID_CHFORMATRUNS       = 0x1050;
     316                 :            : const sal_uInt16 BIFF_ID_CHFRAME            = 0x1032;
     317                 :            : const sal_uInt16 BIFF_ID_CHFRAMEPOS         = 0x104F;
     318                 :            : const sal_uInt16 BIFF_ID_CHFRBLOCKBEGIN     = 0x0852;
     319                 :            : const sal_uInt16 BIFF_ID_CHFRBLOCKEND       = 0x0853;
     320                 :            : const sal_uInt16 BIFF_ID_CHFRCATEGORYPROPS  = 0x0856;
     321                 :            : const sal_uInt16 BIFF_ID_CHFREXTPROPS       = 0x089E;
     322                 :            : const sal_uInt16 BIFF_ID_CHFREXTPROPSCONT   = 0x089F;
     323                 :            : const sal_uInt16 BIFF_ID_CHFRINFO           = 0x0850;
     324                 :            : const sal_uInt16 BIFF_ID_CHFRLABELPROPS     = 0x086B;
     325                 :            : const sal_uInt16 BIFF_ID_CHFRLAYOUT         = 0x089D;
     326                 :            : const sal_uInt16 BIFF_ID_CHFRPLOTAREALAYOUT = 0x08A7;
     327                 :            : const sal_uInt16 BIFF_ID_CHFRSHAPEPROPS     = 0x08A4;
     328                 :            : const sal_uInt16 BIFF_ID_CHFRTEXTPROPS      = 0x08A5;
     329                 :            : const sal_uInt16 BIFF_ID_CHFRUNITPROPS      = 0x0857;
     330                 :            : const sal_uInt16 BIFF_ID_CHFRWRAPPER        = 0x0851;
     331                 :            : const sal_uInt16 BIFF_ID_CHLABELRANGE       = 0x1020;
     332                 :            : const sal_uInt16 BIFF_ID_CHLEGEND           = 0x1015;
     333                 :            : const sal_uInt16 BIFF_ID_CHLINE             = 0x1018;
     334                 :            : const sal_uInt16 BIFF_ID_CHLINEFORMAT       = 0x1007;
     335                 :            : const sal_uInt16 BIFF_ID_CHMARKERFORMAT     = 0x1009;
     336                 :            : const sal_uInt16 BIFF_ID_CHOBJECTLINK       = 0x1027;
     337                 :            : const sal_uInt16 BIFF_ID_CHPICFORMAT        = 0x103C;
     338                 :            : const sal_uInt16 BIFF_ID_CHPIE              = 0x1019;
     339                 :            : const sal_uInt16 BIFF_ID_CHPIEEXT           = 0x1061;
     340                 :            : const sal_uInt16 BIFF_ID_CHPIEFORMAT        = 0x100B;
     341                 :            : const sal_uInt16 BIFF_ID_CHPIVOTFLAGS       = 0x0859;
     342                 :            : const sal_uInt16 BIFF5_ID_CHPIVOTREF        = 0x1048;
     343                 :            : const sal_uInt16 BIFF8_ID_CHPIVOTREF        = 0x0858;
     344                 :            : const sal_uInt16 BIFF_ID_CHPLOTFRAME        = 0x1035;
     345                 :            : const sal_uInt16 BIFF_ID_CHPLOTGROWTH       = 0x1064;
     346                 :            : const sal_uInt16 BIFF_ID_CHPROPERTIES       = 0x1044;
     347                 :            : const sal_uInt16 BIFF_ID_CHRADARLINE        = 0x103E;
     348                 :            : const sal_uInt16 BIFF_ID_CHRADARAREA        = 0x1040;
     349                 :            : const sal_uInt16 BIFF_ID_CHSCATTER          = 0x101B;
     350                 :            : const sal_uInt16 BIFF_ID_CHSERERRORBAR      = 0x105B;
     351                 :            : const sal_uInt16 BIFF_ID_CHSERGROUP         = 0x1045;
     352                 :            : const sal_uInt16 BIFF_ID_CHSERIES           = 0x1003;
     353                 :            : const sal_uInt16 BIFF_ID_CHSERIESFORMAT     = 0x105D;
     354                 :            : const sal_uInt16 BIFF_ID_CHSERPARENT        = 0x104A;
     355                 :            : const sal_uInt16 BIFF_ID_CHSERTRENDLINE     = 0x104B;
     356                 :            : const sal_uInt16 BIFF_ID_CHSOURCELINK       = 0x1051;
     357                 :            : const sal_uInt16 BIFF_ID_CHSTRING           = 0x100D;
     358                 :            : const sal_uInt16 BIFF_ID_CHSURFACE          = 0x103F;
     359                 :            : const sal_uInt16 BIFF_ID_CHTEXT             = 0x1025;
     360                 :            : const sal_uInt16 BIFF_ID_CHTICK             = 0x101E;
     361                 :            : const sal_uInt16 BIFF_ID_CHTYPEGROUP        = 0x1014;
     362                 :            : const sal_uInt16 BIFF_ID_CHVALUERANGE       = 0x101F;
     363                 :            : const sal_uInt16 BIFF_ID_CODENAME           = 0x01BA;
     364                 :            : const sal_uInt16 BIFF_ID_CODEPAGE           = 0x0042;
     365                 :            : const sal_uInt16 BIFF_ID_COLINFO            = 0x007D;
     366                 :            : const sal_uInt16 BIFF_ID_COLUMNDEFAULT      = 0x0020;
     367                 :            : const sal_uInt16 BIFF_ID_COLWIDTH           = 0x0024;
     368                 :            : const sal_uInt16 BIFF_ID_COMPRESSPICS       = 0x089B;
     369                 :            : const sal_uInt16 BIFF_ID_CONNECTION         = 0x0876;
     370                 :            : const sal_uInt16 BIFF_ID_CONT               = 0x003C;
     371                 :            : const sal_uInt16 BIFF_ID_COORDLIST          = 0x00A9;
     372                 :            : const sal_uInt16 BIFF_ID_COUNTRY            = 0x008C;
     373                 :            : const sal_uInt16 BIFF_ID_CRN                = 0x005A;
     374                 :            : const sal_uInt16 BIFF2_ID_DATATABLE         = 0x0036;
     375                 :            : const sal_uInt16 BIFF3_ID_DATATABLE         = 0x0236;
     376                 :            : const sal_uInt16 BIFF2_ID_DATATABLE2        = 0x0037;
     377                 :            : const sal_uInt16 BIFF_ID_DATAVALIDATION     = 0x01BE;
     378                 :            : const sal_uInt16 BIFF_ID_DATAVALIDATIONS    = 0x01B2;
     379                 :            : const sal_uInt16 BIFF_ID_DATEMODE           = 0x0022;
     380                 :            : const sal_uInt16 BIFF_ID_DBCELL             = 0x00D7;
     381                 :            : const sal_uInt16 BIFF_ID_DBQUERY            = 0x00DC;
     382                 :            : const sal_uInt16 BIFF_ID_DCONBINAME         = 0x01B5;
     383                 :            : const sal_uInt16 BIFF_ID_DCONNAME           = 0x0052;
     384                 :            : const sal_uInt16 BIFF_ID_DCONREF            = 0x0051;
     385                 :            : const sal_uInt16 BIFF_ID_DEFCOLWIDTH        = 0x0055;
     386                 :            : const sal_uInt16 BIFF2_ID_DEFINEDNAME       = 0x0018;
     387                 :            : const sal_uInt16 BIFF3_ID_DEFINEDNAME       = 0x0218;
     388                 :            : const sal_uInt16 BIFF5_ID_DEFINEDNAME       = 0x0018;
     389                 :            : const sal_uInt16 BIFF2_ID_DEFROWHEIGHT      = 0x0025;
     390                 :            : const sal_uInt16 BIFF3_ID_DEFROWHEIGHT      = 0x0225;
     391                 :            : const sal_uInt16 BIFF_ID_DELTA              = 0x0010;
     392                 :            : const sal_uInt16 BIFF2_ID_DIMENSION         = 0x0000;
     393                 :            : const sal_uInt16 BIFF3_ID_DIMENSION         = 0x0200;
     394                 :            : const sal_uInt16 BIFF_ID_DXF                = 0x088D;
     395                 :            : const sal_uInt16 BIFF_ID_EOF                = 0x000A;
     396                 :            : const sal_uInt16 BIFF_ID_EXTERNALBOOK       = 0x01AE;
     397                 :            : const sal_uInt16 BIFF2_ID_EXTERNALNAME      = 0x0023;
     398                 :            : const sal_uInt16 BIFF3_ID_EXTERNALNAME      = 0x0223;
     399                 :            : const sal_uInt16 BIFF5_ID_EXTERNALNAME      = 0x0023;
     400                 :            : const sal_uInt16 BIFF_ID_EXTERNSHEET        = 0x0017;
     401                 :            : const sal_uInt16 BIFF_ID_EXTSST             = 0x00FF;
     402                 :            : const sal_uInt16 BIFF_ID_FILEPASS           = 0x002F;
     403                 :            : const sal_uInt16 BIFF_ID_FILESHARING        = 0x005B;
     404                 :            : const sal_uInt16 BIFF_ID_FILTERCOLUMN       = 0x009E;
     405                 :            : const sal_uInt16 BIFF_ID_FILTERMODE         = 0x009B;
     406                 :            : const sal_uInt16 BIFF2_ID_FONT              = 0x0031;
     407                 :            : const sal_uInt16 BIFF3_ID_FONT              = 0x0231;
     408                 :            : const sal_uInt16 BIFF5_ID_FONT              = 0x0031;
     409                 :            : const sal_uInt16 BIFF_ID_FONTCOLOR          = 0x0045;
     410                 :            : const sal_uInt16 BIFF_ID_FOOTER             = 0x0015;
     411                 :            : const sal_uInt16 BIFF_ID_FORCEFULLCALC      = 0x08A3;
     412                 :            : const sal_uInt16 BIFF2_ID_FORMAT            = 0x001E;
     413                 :            : const sal_uInt16 BIFF4_ID_FORMAT            = 0x041E;
     414                 :            : const sal_uInt16 BIFF2_ID_FORMULA           = 0x0006;
     415                 :            : const sal_uInt16 BIFF3_ID_FORMULA           = 0x0206;
     416                 :            : const sal_uInt16 BIFF4_ID_FORMULA           = 0x0406;
     417                 :            : const sal_uInt16 BIFF5_ID_FORMULA           = 0x0006;
     418                 :            : const sal_uInt16 BIFF_ID_GUTS               = 0x0080;
     419                 :            : const sal_uInt16 BIFF_ID_HCENTER            = 0x0083;
     420                 :            : const sal_uInt16 BIFF_ID_HEADER             = 0x0014;
     421                 :            : const sal_uInt16 BIFF_ID_HEADERFOOTER       = 0x089C;
     422                 :            : const sal_uInt16 BIFF_ID_HIDEOBJ            = 0x008D;
     423                 :            : const sal_uInt16 BIFF_ID_HORPAGEBREAKS      = 0x001B;
     424                 :            : const sal_uInt16 BIFF_ID_HYPERLINK          = 0x01B8;
     425                 :            : const sal_uInt16 BIFF3_ID_IMGDATA           = 0x007F;
     426                 :            : const sal_uInt16 BIFF8_ID_IMGDATA           = 0x00E9;
     427                 :            : const sal_uInt16 BIFF2_ID_INDEX             = 0x000B;
     428                 :            : const sal_uInt16 BIFF3_ID_INDEX             = 0x020B;
     429                 :            : const sal_uInt16 BIFF2_ID_INTEGER           = 0x0002;
     430                 :            : const sal_uInt16 BIFF_ID_INTERFACEHDR       = 0x00E1;
     431                 :            : const sal_uInt16 BIFF_ID_ITERATION          = 0x0011;
     432                 :            : const sal_uInt16 BIFF_ID_IXFE               = 0x0044;
     433                 :            : const sal_uInt16 BIFF2_ID_LABEL             = 0x0004;
     434                 :            : const sal_uInt16 BIFF3_ID_LABEL             = 0x0204;
     435                 :            : const sal_uInt16 BIFF_ID_LABELRANGES        = 0x015F;
     436                 :            : const sal_uInt16 BIFF_ID_LABELSST           = 0x00FD;
     437                 :            : const sal_uInt16 BIFF_ID_LEFTMARGIN         = 0x0026;
     438                 :            : const sal_uInt16 BIFF_ID_MERGEDCELLS        = 0x00E5;
     439                 :            : const sal_uInt16 BIFF_ID_MSODRAWING         = 0x00EC;
     440                 :            : const sal_uInt16 BIFF_ID_MSODRAWINGGROUP    = 0x00EB;
     441                 :            : const sal_uInt16 BIFF_ID_MSODRAWINGSEL      = 0x00ED;
     442                 :            : const sal_uInt16 BIFF_ID_MTHREADSETTINGS    = 0x089A;
     443                 :            : const sal_uInt16 BIFF_ID_MULTBLANK          = 0x00BE;
     444                 :            : const sal_uInt16 BIFF_ID_MULTRK             = 0x00BD;
     445                 :            : const sal_uInt16 BIFF_ID_NOTE               = 0x001C;
     446                 :            : const sal_uInt16 BIFF_ID_NOTESOUND          = 0x0096;
     447                 :            : const sal_uInt16 BIFF2_ID_NUMBER            = 0x0003;
     448                 :            : const sal_uInt16 BIFF3_ID_NUMBER            = 0x0203;
     449                 :            : const sal_uInt16 BIFF_ID_OBJ                = 0x005D;
     450                 :            : const sal_uInt16 BIFF_ID_OBJECTPROTECT      = 0x0063;
     451                 :            : const sal_uInt16 BIFF_ID_OLESIZE            = 0x00DE;
     452                 :            : const sal_uInt16 BIFF_ID_PAGELAYOUTVIEW     = 0x088B;
     453                 :            : const sal_uInt16 BIFF_ID_PAGESETUP          = 0x00A1;
     454                 :            : const sal_uInt16 BIFF_ID_PALETTE            = 0x0092;
     455                 :            : const sal_uInt16 BIFF_ID_PANE               = 0x0041;
     456                 :            : const sal_uInt16 BIFF_ID_PARAMQUERY         = 0x00DC;
     457                 :            : const sal_uInt16 BIFF_ID_PASSWORD           = 0x0013;
     458                 :            : const sal_uInt16 BIFF_ID_PCDEFINITION       = 0x00C6;
     459                 :            : const sal_uInt16 BIFF_ID_PCDEFINITION2      = 0x0122;
     460                 :            : const sal_uInt16 BIFF_ID_PCDFDISCRETEPR     = 0x00D9;
     461                 :            : const sal_uInt16 BIFF_ID_PCDFIELD           = 0x00C7;
     462                 :            : const sal_uInt16 BIFF_ID_PCDFIELDINDEX      = 0x0103;
     463                 :            : const sal_uInt16 BIFF_ID_PCDFORMULAFIELD    = 0x00F9;
     464                 :            : const sal_uInt16 BIFF_ID_PCDFRANGEPR        = 0x00D8;
     465                 :            : const sal_uInt16 BIFF_ID_PCDFSQLTYPE        = 0x01BB;
     466                 :            : const sal_uInt16 BIFF_ID_PCDSOURCE          = 0x00E3;
     467                 :            : const sal_uInt16 BIFF_ID_PCITEM_BOOL        = 0x00CA;
     468                 :            : const sal_uInt16 BIFF_ID_PCITEM_DATE        = 0x00CE;
     469                 :            : const sal_uInt16 BIFF_ID_PCITEM_DOUBLE      = 0x00C9;
     470                 :            : const sal_uInt16 BIFF_ID_PCITEM_ERROR       = 0x00CB;
     471                 :            : const sal_uInt16 BIFF_ID_PCITEM_INDEXLIST   = 0x00C8;
     472                 :            : const sal_uInt16 BIFF_ID_PCITEM_INTEGER     = 0x00CC;
     473                 :            : const sal_uInt16 BIFF_ID_PCITEM_MISSING     = 0x00CF;
     474                 :            : const sal_uInt16 BIFF_ID_PCITEM_STRING      = 0x00CD;
     475                 :            : const sal_uInt16 BIFF_ID_PHONETICPR         = 0x00EF;
     476                 :            : const sal_uInt16 BIFF_ID_PICTURE            = 0x00E9;
     477                 :            : const sal_uInt16 BIFF_ID_PIVOTCACHE         = 0x00D5;
     478                 :            : const sal_uInt16 BIFF_ID_PRECISION          = 0x000E;
     479                 :            : const sal_uInt16 BIFF_ID_PRINTGRIDLINES     = 0x002B;
     480                 :            : const sal_uInt16 BIFF_ID_PRINTHEADERS       = 0x002A;
     481                 :            : const sal_uInt16 BIFF_ID_PROJEXTSHEET       = 0x00A3;
     482                 :            : const sal_uInt16 BIFF_ID_PROTECT            = 0x0012;
     483                 :            : const sal_uInt16 BIFF_ID_PTDATAFIELD        = 0x00C5;
     484                 :            : const sal_uInt16 BIFF_ID_PTDEFINITION       = 0x00B0;
     485                 :            : const sal_uInt16 BIFF_ID_PTDEFINITION2      = 0x00F1;
     486                 :            : const sal_uInt16 BIFF_ID_PTFIELD            = 0x00B1;
     487                 :            : const sal_uInt16 BIFF_ID_PTFIELD2           = 0x0100;
     488                 :            : const sal_uInt16 BIFF_ID_PTFITEM            = 0x00B2;
     489                 :            : const sal_uInt16 BIFF_ID_PTPAGEFIELDS       = 0x00B6;
     490                 :            : const sal_uInt16 BIFF_ID_PTROWCOLFIELDS     = 0x00B4;
     491                 :            : const sal_uInt16 BIFF_ID_PTROWCOLITEMS      = 0x00B5;
     492                 :            : const sal_uInt16 BIFF_ID_QUERYTABLE         = 0x01AD;
     493                 :            : const sal_uInt16 BIFF_ID_QUERYTABLEREFRESH  = 0x0802;
     494                 :            : const sal_uInt16 BIFF_ID_QUERYTABLESETTINGS = 0x0803;
     495                 :            : const sal_uInt16 BIFF_ID_QUERYTABLESTRING   = 0x0804;
     496                 :            : const sal_uInt16 BIFF_ID_RECALCID           = 0x01C1;
     497                 :            : const sal_uInt16 BIFF_ID_REFMODE            = 0x000F;
     498                 :            : const sal_uInt16 BIFF_ID_RIGHTMARGIN        = 0x0027;
     499                 :            : const sal_uInt16 BIFF_ID_RK                 = 0x027E;
     500                 :            : const sal_uInt16 BIFF2_ID_ROW               = 0x0008;
     501                 :            : const sal_uInt16 BIFF3_ID_ROW               = 0x0208;
     502                 :            : const sal_uInt16 BIFF_ID_RSTRING            = 0x00D6;
     503                 :            : const sal_uInt16 BIFF_ID_SAVERECALC         = 0x005F;
     504                 :            : const sal_uInt16 BIFF_ID_SCENARIO           = 0x00AF;
     505                 :            : const sal_uInt16 BIFF_ID_SCENARIOS          = 0x00AE;
     506                 :            : const sal_uInt16 BIFF_ID_SCL                = 0x00A0;
     507                 :            : const sal_uInt16 BIFF_ID_SCENPROTECT        = 0x00DD;
     508                 :            : const sal_uInt16 BIFF_ID_SCREENTIP          = 0x0800;
     509                 :            : const sal_uInt16 BIFF_ID_SELECTION          = 0x001D;
     510                 :            : const sal_uInt16 BIFF_ID_SHAREDFEATHEAD     = 0x0867;
     511                 :            : const sal_uInt16 BIFF_ID_SHAREDFMLA         = 0x04BC;
     512                 :            : const sal_uInt16 BIFF_ID_SHEET              = 0x0085;
     513                 :            : const sal_uInt16 BIFF_ID_SHEETEXT           = 0x0862;
     514                 :            : const sal_uInt16 BIFF_ID_SHEETHEADER        = 0x008F;
     515                 :            : const sal_uInt16 BIFF_ID_SHEETPR            = 0x0081;
     516                 :            : const sal_uInt16 BIFF_ID_SST                = 0x00FC;
     517                 :            : const sal_uInt16 BIFF_ID_STANDARDWIDTH      = 0x0099;
     518                 :            : const sal_uInt16 BIFF2_ID_STRING            = 0x0007;
     519                 :            : const sal_uInt16 BIFF3_ID_STRING            = 0x0207;
     520                 :            : const sal_uInt16 BIFF_ID_STYLE              = 0x0293;
     521                 :            : const sal_uInt16 BIFF_ID_STYLEEXT           = 0x0892;
     522                 :            : const sal_uInt16 BIFF_ID_TABLESTYLES        = 0x088E;
     523                 :            : const sal_uInt16 BIFF_ID_THEME              = 0x0896;
     524                 :            : const sal_uInt16 BIFF_ID_TOPMARGIN          = 0x0028;
     525                 :            : const sal_uInt16 BIFF_ID_TXO                = 0x01B6;
     526                 :            : const sal_uInt16 BIFF_ID_UNCALCED           = 0x005E;
     527                 :            : const sal_uInt16 BIFF_ID_USESELFS           = 0x0160;
     528                 :            : const sal_uInt16 BIFF_ID_VBAPROJECT         = 0x00D3;
     529                 :            : const sal_uInt16 BIFF_ID_VBAPROJECTEMPTY    = 0x01BD;
     530                 :            : const sal_uInt16 BIFF_ID_VCENTER            = 0x0084;
     531                 :            : const sal_uInt16 BIFF_ID_VERPAGEBREAKS      = 0x001A;
     532                 :            : const sal_uInt16 BIFF_ID_WINDOW1            = 0x003D;
     533                 :            : const sal_uInt16 BIFF2_ID_WINDOW2           = 0x003E;
     534                 :            : const sal_uInt16 BIFF3_ID_WINDOW2           = 0x023E;
     535                 :            : const sal_uInt16 BIFF_ID_WRITEACCESS        = 0x005C;
     536                 :            : const sal_uInt16 BIFF_ID_XCT                = 0x0059;
     537                 :            : const sal_uInt16 BIFF2_ID_XF                = 0x0043;
     538                 :            : const sal_uInt16 BIFF3_ID_XF                = 0x0243;
     539                 :            : const sal_uInt16 BIFF4_ID_XF                = 0x0443;
     540                 :            : const sal_uInt16 BIFF5_ID_XF                = 0x00E0;
     541                 :            : const sal_uInt16 BIFF_ID_XFCRC              = 0x087C;
     542                 :            : const sal_uInt16 BIFF_ID_XFEXT              = 0x087D;
     543                 :            : 
     544                 :            : const sal_uInt16 BIFF_ID_UNKNOWN            = SAL_MAX_UINT16;
     545                 :            : 
     546                 :            : // OBJ subrecord identifiers --------------------------------------------------
     547                 :            : 
     548                 :            : const sal_uInt16 BIFF_ID_OBJEND             = 0x0000;   /// End of OBJ.
     549                 :            : const sal_uInt16 BIFF_ID_OBJMACRO           = 0x0004;   /// Macro link.
     550                 :            : const sal_uInt16 BIFF_ID_OBJBUTTON          = 0x0005;   /// Button data.
     551                 :            : const sal_uInt16 BIFF_ID_OBJGMO             = 0x0006;   /// Group marker.
     552                 :            : const sal_uInt16 BIFF_ID_OBJCF              = 0x0007;   /// Clipboard format.
     553                 :            : const sal_uInt16 BIFF_ID_OBJFLAGS           = 0x0008;   /// Option flags.
     554                 :            : const sal_uInt16 BIFF_ID_OBJPICTFMLA        = 0x0009;   /// OLE link formula.
     555                 :            : const sal_uInt16 BIFF_ID_OBJCBLS            = 0x000A;   /// Check box/radio button data.
     556                 :            : const sal_uInt16 BIFF_ID_OBJRBO             = 0x000B;   /// Radio button group data.
     557                 :            : const sal_uInt16 BIFF_ID_OBJSBS             = 0x000C;   /// Scroll bar data.
     558                 :            : const sal_uInt16 BIFF_ID_OBJNTS             = 0x000C;   /// Note data.
     559                 :            : const sal_uInt16 BIFF_ID_OBJSBSFMLA         = 0x000E;   /// Scroll bar/list box/combo box cell link.
     560                 :            : const sal_uInt16 BIFF_ID_OBJGBODATA         = 0x000F;   /// Group box data.
     561                 :            : const sal_uInt16 BIFF_ID_OBJEDODATA         = 0x0010;   /// Edit box data.
     562                 :            : const sal_uInt16 BIFF_ID_OBJRBODATA         = 0x0011;   /// Radio button group data.
     563                 :            : const sal_uInt16 BIFF_ID_OBJCBLSDATA        = 0x0012;   /// Check box/radio button data.
     564                 :            : const sal_uInt16 BIFF_ID_OBJLBSDATA         = 0x0013;   /// List box/combo box data.
     565                 :            : const sal_uInt16 BIFF_ID_OBJCBLSFMLA        = 0x0014;   /// Check box/radio button cell link.
     566                 :            : const sal_uInt16 BIFF_ID_OBJCMO             = 0x0015;   /// Common object settings.
     567                 :            : 
     568                 :            : // record constants -----------------------------------------------------------
     569                 :            : 
     570                 :            : const sal_uInt16 BIFF_BOF_BIFF2             = 0x0200;
     571                 :            : const sal_uInt16 BIFF_BOF_BIFF3             = 0x0300;
     572                 :            : const sal_uInt16 BIFF_BOF_BIFF4             = 0x0400;
     573                 :            : const sal_uInt16 BIFF_BOF_BIFF5             = 0x0500;
     574                 :            : const sal_uInt16 BIFF_BOF_BIFF8             = 0x0600;
     575                 :            : 
     576                 :            : const sal_uInt8 BIFF_ERR_NULL               = 0x00;
     577                 :            : const sal_uInt8 BIFF_ERR_DIV0               = 0x07;
     578                 :            : const sal_uInt8 BIFF_ERR_VALUE              = 0x0F;
     579                 :            : const sal_uInt8 BIFF_ERR_REF                = 0x17;
     580                 :            : const sal_uInt8 BIFF_ERR_NAME               = 0x1D;
     581                 :            : const sal_uInt8 BIFF_ERR_NUM                = 0x24;
     582                 :            : const sal_uInt8 BIFF_ERR_NA                 = 0x2A;
     583                 :            : 
     584                 :            : const sal_uInt8 BIFF_DATATYPE_EMPTY         = 0;
     585                 :            : const sal_uInt8 BIFF_DATATYPE_DOUBLE        = 1;
     586                 :            : const sal_uInt8 BIFF_DATATYPE_STRING        = 2;
     587                 :            : const sal_uInt8 BIFF_DATATYPE_BOOL          = 4;
     588                 :            : const sal_uInt8 BIFF_DATATYPE_ERROR         = 16;
     589                 :            : 
     590                 :            : const sal_uInt8 BIFF_BOOLERR_BOOL           = 0;
     591                 :            : const sal_uInt8 BIFF_BOOLERR_ERROR          = 1;
     592                 :            : 
     593                 :            : // BIFF8 unicode strings ------------------------------------------------------
     594                 :            : 
     595                 :            : const sal_uInt8 BIFF_STRF_16BIT             = 0x01;
     596                 :            : const sal_uInt8 BIFF_STRF_PHONETIC          = 0x04;
     597                 :            : const sal_uInt8 BIFF_STRF_RICH              = 0x08;
     598                 :            : const sal_uInt8 BIFF_STRF_UNKNOWN           = 0xF2;
     599                 :            : 
     600                 :            : // ============================================================================
     601                 :            : 
     602                 :            : /** Static helper functions for BIFF filters. */
     603                 :            : class BiffHelper
     604                 :            : {
     605                 :            : public:
     606                 :            :     // conversion -------------------------------------------------------------
     607                 :            : 
     608                 :            :     /** Converts the passed packed number to a double. */
     609                 :            :     static double       calcDoubleFromRk( sal_Int32 nRkValue );
     610                 :            : 
     611                 :            :     /** Converts the passed BIFF error to a double containing the respective Calc error code. */
     612                 :            :     static double       calcDoubleFromError( sal_uInt8 nErrorCode );
     613                 :            : 
     614                 :            :     // BIFF12 import ----------------------------------------------------------
     615                 :            : 
     616                 :            :     /** Reads a BIFF12 string with leading 16-bit or 32-bit length field. */
     617                 :            :     static ::rtl::OUString readString( SequenceInputStream& rStrm, bool b32BitLen = true, bool bAllowNulChars = false );
     618                 :            : 
     619                 :            :     // BIFF2-BIFF8 import -----------------------------------------------------
     620                 :            : 
     621                 :            :     /** Returns true, if the current record of the stream is a BOF record. */
     622                 :            :     static bool         isBofRecord( BiffInputStream& rStrm );
     623                 :            : 
     624                 :            :     /** Skips a block of records up to the specified end record.
     625                 :            : 
     626                 :            :         Skips all records until next end record. When this function returns,
     627                 :            :         the stream points to the end record, and the next call of the function
     628                 :            :         startNextRecord() at the stream will start the record following the end
     629                 :            :         record.
     630                 :            : 
     631                 :            :         The identifier of the record that is active while this function is
     632                 :            :         called is used as start record identifier. This identifier is used to
     633                 :            :         correctly skip embedded record blocks with the same start and end
     634                 :            :         record identifier.
     635                 :            : 
     636                 :            :         @return  True = stream points to the end record.
     637                 :            :      */
     638                 :            :     static bool         skipRecordBlock( BiffInputStream& rStrm, sal_uInt16 nEndRecId );
     639                 :            : 
     640                 :            : private:
     641                 :            :                         BiffHelper();   // not implemented
     642                 :            :                         ~BiffHelper();  // not implemented
     643                 :            : };
     644                 :            : 
     645                 :            : // ----------------------------------------------------------------------------
     646                 :            : 
     647                 :            : /** BIFF12 stream operator for an ::rtl::OUString, reads 32-bit string length and Unicode array. */
     648                 :          0 : inline SequenceInputStream& operator>>( SequenceInputStream& rStrm, ::rtl::OUString& orString )
     649                 :            : {
     650                 :          0 :     orString = BiffHelper::readString( rStrm );
     651                 :          0 :     return rStrm;
     652                 :            : }
     653                 :            : 
     654                 :            : // ============================================================================
     655                 :            : 
     656                 :            : } // namespace xls
     657                 :            : } // namespace oox
     658                 :            : 
     659                 :            : #endif
     660                 :            : 
     661                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10