1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef SC_RECHEAD_HXX 25 #define SC_RECHEAD_HXX 26 27 #include <tools/stream.hxx> 28 29 // ID's fuer Dateien: 30 31 #define SCID_SIZES 0x4200 32 33 #define SCID_POOLS 0x4210 34 #define SCID_DOCPOOL 0x4211 35 #define SCID_STYLEPOOL 0x4212 36 #define SCID_NEWPOOLS 0x4213 // ID fuer SC 3.0a 37 #define SCID_EDITPOOL 0x4214 38 39 #define SCID_DOCUMENT 0x4220 40 #define SCID_DOCFLAGS 0x4221 41 #define SCID_TABLE 0x4222 42 #define SCID_DRAWING 0x4223 43 #define SCID_RANGENAME 0x4224 44 #define SCID_DBAREAS 0x4225 45 #define SCID_PIVOT 0x4226 46 #define SCID_CHARTS 0x4227 47 #define SCID_NUMFORMAT 0x4228 48 #define SCID_DOCOPTIONS 0x4229 49 #define SCID_VIEWOPTIONS 0x422a 50 #define SCID_PRINTSETUP 0x422b 51 #define SCID_CHARSET 0x422c 52 #define SCID_NEWDOCUMENT 0x422d // ID fuer SC 3.0a 53 #define SCID_DDELINKS 0x422e 54 #define SCID_AREALINKS 0x422f 55 #define SCID_CONDFORMATS 0x4230 56 #define SCID_VALIDATION 0x4231 57 #define SCID_COLNAMERANGES 0x4232 58 #define SCID_ROWNAMERANGES 0x4233 59 #define SCID_DETOPLIST 0x4234 60 #define SCID_CONSOLIDATA 0x4235 61 #define SCID_CHANGETRACK 0x4236 62 #define SCID_CHGVIEWSET 0x4237 63 #define SCID_LINKUPMODE 0x4238 64 #define SCID_DATAPILOT 0x4239 65 66 #define SCID_COLUMNS 0x4240 67 #define SCID_COLROWFLAGS 0x4241 68 #define SCID_TABOPTIONS 0x4242 69 #define SCID_TABLINK 0x4243 70 71 #define SCID_COLDATA 0x4250 72 #define SCID_COLNOTES 0x4251 73 #define SCID_COLATTRIB 0x4252 74 75 #define SCID_DRAWPOOL 0x4260 76 #define SCID_DRAWMODEL 0x4261 77 78 79 80 // Dateiversion 81 // Falls das obere Byte inkrementiert wird, wird das Doc von 82 // aelteren SCs nicht mehr geladen! 83 84 #define SC_INITIAL_VERSION 0x0001 85 #define SC_FORMULA_LCLVER 0x0002 // Formalen mit lokaler VerNr 86 //-------------------------------- 87 #define SC_NEW_TOKEN_ARRAYS 0x0003 // neues TokenArray-Format 88 #define SC_FORMULA_VALUES 0x0004 // Werte in Formelzellen 89 #define SC_FORMULA_VALUES2 0x0005 // Werte in Formelzellen 90 #define SC_DATABYTES 0x0006 // Datenbytes, kleine Tables 91 #define SC_DATABYTES2 0x0007 // Datenbytes, kleine Tables 92 #define SC_NUMFMT 0x0008 // Zahlenformat an Formelzelle 93 #define SC_NEWIF 0x0009 // neue Codierung von ocIf (komp.) 94 //-------------------------------- 95 #define SC_RELATIVE_REFS 0x0010 // relative Referenzen 96 #define SC_SUBTOTAL_FLAG 0x0011 // bSubTotal der Formelzelle 97 #define SC_COLROWNAME_RANGEPAIR 0x0012 // ColRowNameRanges als ScRangePair 98 //-------------------------------- 99 #define SC_31_EXPORT_VER 0x0012 // Version bei 3.1-Export 100 //-------------------------------- ab 4.0 101 #define SC_32K_ROWS 0x0100 // 32000 Zeilen - inkompatibel 102 #define SC_FONTCHARSET 0x0101 // Font-CharSets muessen stimmen 103 //-------------------------------- 104 #define SC_40_EXPORT_VER 0x0101 // Version bei 4.0-Export 105 //-------------------------------- ab 5.0 106 #define SC_RECALC_MODE_BITS 0x0201 // TokenArray RecalcMode 107 #define SC_MATRIX_DOUBLEREF 0x0202 // DoubleRef implizite Schnittmenge 108 #define SC_VERSION_EDITPOOL 0x0203 // EditCells mit EditPool 109 #define SC_SUBTOTAL_BUGFIX 0x0204 // bSubTotal der Formelzelle wirklich 110 //-------------------------------- ab 5.2 111 #define SC_CONVERT_RECALC_ON_LOAD 0x0205 // #73616# CONVERT function recalculated on each load 112 //-------------------------------- 113 #define SC_CURRENT_VERSION 0x0205 114 115 116 // alles ueber SC_31_EXPORT_VER muss auch beim Speichern abgefragt werden, 117 // weil 3.1-Export diese Versionsnummer schreibt. 118 119 // btw: 10 nach 09 ist kein Zaehlfehler sondern eine absichtliche Luecke, 120 // weil nicht klar war, wie lange die RelRefs Entwicklung dauern wuerde.. :) 121 122 class SvStream; 123 124 // ----------------------------------------------------------------------- 125 126 // Header mit Groessenangaben fuer mehrere Objekte 127 128 class ScMultipleReadHeader 129 { 130 private: 131 SvStream& rStream; 132 sal_uInt8* pBuf; 133 SvMemoryStream* pMemStream; 134 sal_uLong nEndPos; 135 sal_uLong nEntryEnd; 136 sal_uLong nTotalEnd; 137 138 public: 139 ScMultipleReadHeader(SvStream& rNewStream); 140 ~ScMultipleReadHeader(); 141 142 void StartEntry(); 143 void EndEntry(); 144 sal_uLong BytesLeft() const; 145 }; 146 147 class ScMultipleWriteHeader 148 { 149 private: 150 SvStream& rStream; 151 SvMemoryStream aMemStream; 152 sal_uLong nDataPos; 153 sal_uInt32 nDataSize; 154 sal_uLong nEntryStart; 155 156 public: 157 ScMultipleWriteHeader(SvStream& rNewStream, sal_uInt32 nDefault = 0); 158 ~ScMultipleWriteHeader(); 159 160 void StartEntry(); 161 void EndEntry(); 162 }; 163 164 #endif 165 166 167