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: */
|