1*b1cdbd2cSJim Jagielski/************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_package_zip_ZipConstants_idl__ 24*b1cdbd2cSJim Jagielski#define __com_sun_star_package_zip_ZipConstants_idl__ 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski 28*b1cdbd2cSJim Jagielski//============================================================================= 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielskimodule com { module sun { module star { module packages { module zip { 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielski//============================================================================= 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski/** defines the constants used by the ZIP interfaces. 35*b1cdbd2cSJim Jagielski */ 36*b1cdbd2cSJim Jagielskipublished constants ZipConstants 37*b1cdbd2cSJim Jagielski{ 38*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 39*b1cdbd2cSJim Jagielski /** Compression method for the deflate algorithm (the only one currently 40*b1cdbd2cSJim Jagielski supported). 41*b1cdbd2cSJim Jagielski */ 42*b1cdbd2cSJim Jagielski const short DEFLATED = 8; 43*b1cdbd2cSJim Jagielski 44*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 45*b1cdbd2cSJim Jagielski /** Compression level for no compression. 46*b1cdbd2cSJim Jagielski */ 47*b1cdbd2cSJim Jagielski const short NO_COMPRESSION = 0; 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 50*b1cdbd2cSJim Jagielski /** Compression level for fastest compression 51*b1cdbd2cSJim Jagielski */ 52*b1cdbd2cSJim Jagielski const short BEST_SPEED = 1; 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 55*b1cdbd2cSJim Jagielski /** Compression level for best compression 56*b1cdbd2cSJim Jagielski */ 57*b1cdbd2cSJim Jagielski const short BEST_COMPRESSION = 9; 58*b1cdbd2cSJim Jagielski 59*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 60*b1cdbd2cSJim Jagielski /** Default compression level. 61*b1cdbd2cSJim Jagielski */ 62*b1cdbd2cSJim Jagielski const short DEFAULT_COMPRESSION = -1; 63*b1cdbd2cSJim Jagielski 64*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 65*b1cdbd2cSJim Jagielski /** Compression strategy best used for data consisting mostly of small 66*b1cdbd2cSJim Jagielski values with a somewhat random distribution. Forces more Huffman 67*b1cdbd2cSJim Jagielski coding and less string matching. 68*b1cdbd2cSJim Jagielski */ 69*b1cdbd2cSJim Jagielski const short FILTERED = 1; 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 72*b1cdbd2cSJim Jagielski /** Compression strategy for Huffman coding only. 73*b1cdbd2cSJim Jagielski */ 74*b1cdbd2cSJim Jagielski const short HUFFMAN_ONLY = 2; 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 77*b1cdbd2cSJim Jagielski /** Default compression strategy 78*b1cdbd2cSJim Jagielski */ 79*b1cdbd2cSJim Jagielski const short DEFAULT_STRATEGY = 0; 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 82*b1cdbd2cSJim Jagielski /** entry is uncompressed 83*b1cdbd2cSJim Jagielski */ 84*b1cdbd2cSJim Jagielski const short STORED = 0; 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 87*b1cdbd2cSJim Jagielski /** entry is uncompressed 88*b1cdbd2cSJim Jagielski */ 89*b1cdbd2cSJim Jagielski const short DEF_MEM_LEVEL = 8; 90*b1cdbd2cSJim Jagielski 91*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 92*b1cdbd2cSJim Jagielski /** Header Signature: "PK\003\004" 93*b1cdbd2cSJim Jagielski */ 94*b1cdbd2cSJim Jagielski const long LOCSIG = 0x04034b50; 95*b1cdbd2cSJim Jagielski 96*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 97*b1cdbd2cSJim Jagielski /** Header Signature: "PK\007\008" 98*b1cdbd2cSJim Jagielski */ 99*b1cdbd2cSJim Jagielski const long EXTSIG = 0x08074b50; 100*b1cdbd2cSJim Jagielski 101*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 102*b1cdbd2cSJim Jagielski /** Header Signature: "PK\001\002" 103*b1cdbd2cSJim Jagielski */ 104*b1cdbd2cSJim Jagielski const long CENSIG = 0x02014b50; 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 107*b1cdbd2cSJim Jagielski /** Header Signature: "PK\005\006" 108*b1cdbd2cSJim Jagielski */ 109*b1cdbd2cSJim Jagielski const long ENDSIG = 0x06054b50; 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 112*b1cdbd2cSJim Jagielski /** Header Signature: "PK\007\008" 113*b1cdbd2cSJim Jagielski */ 114*b1cdbd2cSJim Jagielski const long SPANSIG = 0x08074b50; 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 117*b1cdbd2cSJim Jagielski /** LOC header size in bytes (including signatures) 118*b1cdbd2cSJim Jagielski */ 119*b1cdbd2cSJim Jagielski const short LOCHDR = 30; 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 122*b1cdbd2cSJim Jagielski /** EXT header size in bytes (including signatures) 123*b1cdbd2cSJim Jagielski */ 124*b1cdbd2cSJim Jagielski const short EXTHDR = 16; 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 127*b1cdbd2cSJim Jagielski /** CEN header size in bytes (including signatures) 128*b1cdbd2cSJim Jagielski */ 129*b1cdbd2cSJim Jagielski const short CENHDR = 46; 130*b1cdbd2cSJim Jagielski 131*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 132*b1cdbd2cSJim Jagielski /** END header size in bytes (including signatures) 133*b1cdbd2cSJim Jagielski */ 134*b1cdbd2cSJim Jagielski const short ENDHDR = 22; 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 137*b1cdbd2cSJim Jagielski /// LOC LOC LOC 138*b1cdbd2cSJim Jagielski /** LOC header field "version needed to extract" offset 139*b1cdbd2cSJim Jagielski */ 140*b1cdbd2cSJim Jagielski const short LOCVER = 4; 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 143*b1cdbd2cSJim Jagielski /** LOC header field "general purpose bit flags" offset 144*b1cdbd2cSJim Jagielski */ 145*b1cdbd2cSJim Jagielski const short LOCFLG = 6; 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 148*b1cdbd2cSJim Jagielski /** LOC header field "compression method" offset 149*b1cdbd2cSJim Jagielski */ 150*b1cdbd2cSJim Jagielski const short LOCHOW = 8; 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 153*b1cdbd2cSJim Jagielski /** LOC header field "modification time" offset 154*b1cdbd2cSJim Jagielski */ 155*b1cdbd2cSJim Jagielski const short LOCTIM = 10; 156*b1cdbd2cSJim Jagielski 157*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 158*b1cdbd2cSJim Jagielski /** LOC header field "crc of uncompressed data" offset 159*b1cdbd2cSJim Jagielski */ 160*b1cdbd2cSJim Jagielski const short LOCCRC = 14; 161*b1cdbd2cSJim Jagielski 162*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 163*b1cdbd2cSJim Jagielski /** LOC header field "compressed data size" offset 164*b1cdbd2cSJim Jagielski */ 165*b1cdbd2cSJim Jagielski const short LOCSIZ = 18; 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 168*b1cdbd2cSJim Jagielski /** LOC header field "uncompressed data size" offset 169*b1cdbd2cSJim Jagielski */ 170*b1cdbd2cSJim Jagielski const short LOCLEN = 22; 171*b1cdbd2cSJim Jagielski 172*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 173*b1cdbd2cSJim Jagielski /** LOC header field "filename length" offset 174*b1cdbd2cSJim Jagielski */ 175*b1cdbd2cSJim Jagielski const short LOCNAM = 26; 176*b1cdbd2cSJim Jagielski 177*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 178*b1cdbd2cSJim Jagielski /** LOC header field "extra field length" offset 179*b1cdbd2cSJim Jagielski */ 180*b1cdbd2cSJim Jagielski const short LOCEXT = 28; 181*b1cdbd2cSJim Jagielski 182*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 183*b1cdbd2cSJim Jagielski /** EXT header field "crc of uncompressed data" offsets 184*b1cdbd2cSJim Jagielski */ 185*b1cdbd2cSJim Jagielski const short EXTCRC = 4; 186*b1cdbd2cSJim Jagielski 187*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 188*b1cdbd2cSJim Jagielski /** EXT header field "compressed size" offsets 189*b1cdbd2cSJim Jagielski */ 190*b1cdbd2cSJim Jagielski const short EXTSIZ = 8; 191*b1cdbd2cSJim Jagielski 192*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 193*b1cdbd2cSJim Jagielski /** EXT header field "uncompressed size" offsets 194*b1cdbd2cSJim Jagielski */ 195*b1cdbd2cSJim Jagielski const short EXTLEN = 12; 196*b1cdbd2cSJim Jagielski 197*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 198*b1cdbd2cSJim Jagielski /** CEN header field "version made by" offset 199*b1cdbd2cSJim Jagielski */ 200*b1cdbd2cSJim Jagielski const short CENVEM = 4; 201*b1cdbd2cSJim Jagielski 202*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 203*b1cdbd2cSJim Jagielski /** CEN header field "version needed to extract" offset 204*b1cdbd2cSJim Jagielski */ 205*b1cdbd2cSJim Jagielski const short CENVER = 6; 206*b1cdbd2cSJim Jagielski 207*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 208*b1cdbd2cSJim Jagielski /** CEN header field "general purpose bit flags" offset 209*b1cdbd2cSJim Jagielski */ 210*b1cdbd2cSJim Jagielski const short CENFLG = 8; 211*b1cdbd2cSJim Jagielski 212*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 213*b1cdbd2cSJim Jagielski /** CEN header field "compression method" offset 214*b1cdbd2cSJim Jagielski */ 215*b1cdbd2cSJim Jagielski const short CENHOW = 10; 216*b1cdbd2cSJim Jagielski 217*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 218*b1cdbd2cSJim Jagielski /** CEN header field "modification time" offset 219*b1cdbd2cSJim Jagielski */ 220*b1cdbd2cSJim Jagielski const short CENTIM = 12; 221*b1cdbd2cSJim Jagielski 222*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 223*b1cdbd2cSJim Jagielski /** CEN header field "modification time" offset 224*b1cdbd2cSJim Jagielski */ 225*b1cdbd2cSJim Jagielski const short CENDAT = 14; 226*b1cdbd2cSJim Jagielski 227*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 228*b1cdbd2cSJim Jagielski /** CEN header field "crc of uncompressed data" offset 229*b1cdbd2cSJim Jagielski */ 230*b1cdbd2cSJim Jagielski const short CENCRC = 16; 231*b1cdbd2cSJim Jagielski 232*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 233*b1cdbd2cSJim Jagielski /** CEN header field "compressed size" offset 234*b1cdbd2cSJim Jagielski */ 235*b1cdbd2cSJim Jagielski const short CENSIZ = 20; 236*b1cdbd2cSJim Jagielski 237*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 238*b1cdbd2cSJim Jagielski /** CEN header field "uncompressed size" offset 239*b1cdbd2cSJim Jagielski */ 240*b1cdbd2cSJim Jagielski const short CENLEN = 24; 241*b1cdbd2cSJim Jagielski 242*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 243*b1cdbd2cSJim Jagielski /** CEN header field "length of filename" offset 244*b1cdbd2cSJim Jagielski */ 245*b1cdbd2cSJim Jagielski const short CENNAM = 28; 246*b1cdbd2cSJim Jagielski 247*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 248*b1cdbd2cSJim Jagielski /** CEN header field "length of extra field" offset 249*b1cdbd2cSJim Jagielski */ 250*b1cdbd2cSJim Jagielski const short CENEXT = 30; 251*b1cdbd2cSJim Jagielski 252*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 253*b1cdbd2cSJim Jagielski /** CEN header field "file comment length" offset 254*b1cdbd2cSJim Jagielski */ 255*b1cdbd2cSJim Jagielski const short CENCOM = 32; 256*b1cdbd2cSJim Jagielski 257*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 258*b1cdbd2cSJim Jagielski /** CEN header field "disk number start" offset 259*b1cdbd2cSJim Jagielski */ 260*b1cdbd2cSJim Jagielski const short CENDSK = 34; 261*b1cdbd2cSJim Jagielski 262*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 263*b1cdbd2cSJim Jagielski /** CEN header field "internal file attributes" offset 264*b1cdbd2cSJim Jagielski */ 265*b1cdbd2cSJim Jagielski const short CENATT = 36; 266*b1cdbd2cSJim Jagielski 267*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 268*b1cdbd2cSJim Jagielski /** CEN header field "external file attributes" offset 269*b1cdbd2cSJim Jagielski */ 270*b1cdbd2cSJim Jagielski const short CENATX = 38; 271*b1cdbd2cSJim Jagielski 272*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 273*b1cdbd2cSJim Jagielski /** CEN header field "offset of local header" offset 274*b1cdbd2cSJim Jagielski */ 275*b1cdbd2cSJim Jagielski const short CENOFF = 42; 276*b1cdbd2cSJim Jagielski 277*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 278*b1cdbd2cSJim Jagielski /** END header field "number of entries on this disk" offset 279*b1cdbd2cSJim Jagielski */ 280*b1cdbd2cSJim Jagielski const short ENDSUB = 8; 281*b1cdbd2cSJim Jagielski 282*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 283*b1cdbd2cSJim Jagielski /** END header field "total number of entries" offset 284*b1cdbd2cSJim Jagielski */ 285*b1cdbd2cSJim Jagielski const short ENDTOT = 10; 286*b1cdbd2cSJim Jagielski 287*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 288*b1cdbd2cSJim Jagielski /** END header field "central directory size" offset 289*b1cdbd2cSJim Jagielski */ 290*b1cdbd2cSJim Jagielski const short ENDSIZ = 12; 291*b1cdbd2cSJim Jagielski 292*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 293*b1cdbd2cSJim Jagielski /** END header field "central directory offset" offset 294*b1cdbd2cSJim Jagielski */ 295*b1cdbd2cSJim Jagielski const short ENDOFF = 16; 296*b1cdbd2cSJim Jagielski 297*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------- 298*b1cdbd2cSJim Jagielski /** END header field "size of zip file comment" offset 299*b1cdbd2cSJim Jagielski */ 300*b1cdbd2cSJim Jagielski const short ENDCOM = 20; 301*b1cdbd2cSJim Jagielski 302*b1cdbd2cSJim Jagielski}; 303*b1cdbd2cSJim Jagielski//============================================================================= 304*b1cdbd2cSJim Jagielski 305*b1cdbd2cSJim Jagielski}; }; }; }; }; 306*b1cdbd2cSJim Jagielski 307*b1cdbd2cSJim Jagielski#endif 308