diff options
Diffstat (limited to 'binfilter/bf_sfx2/source/bastyp/etcp.h')
-rw-r--r-- | binfilter/bf_sfx2/source/bastyp/etcp.h | 519 |
1 files changed, 519 insertions, 0 deletions
diff --git a/binfilter/bf_sfx2/source/bastyp/etcp.h b/binfilter/bf_sfx2/source/bastyp/etcp.h new file mode 100644 index 000000000000..df69b844b753 --- /dev/null +++ b/binfilter/bf_sfx2/source/bastyp/etcp.h @@ -0,0 +1,519 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif + + + +#ifndef UCHAR +typedef unsigned char UCHAR; +#endif + +#ifndef USHORT +typedef unsigned short USHORT; +#endif + + + +/* max filename length (bytes): don't change */ + +#define ETCP_MAX_FILENAME_LENGTH 255 + + + +/* VB file attributes */ + +#define ETCP_ATTR_NORMAL 0 /* normal file */ +#define ETCP_ATTR_READONLY 1 /* read-only */ +#define ETCP_ATTR_HIDDEN 2 /* hidden */ +#define ETCP_ATTR_SYSTEM 4 /* system */ +#define ETCP_ATTR_VOLUME 8 /* disk volume label */ +#define ETCP_ATTR_DIRECTORY 16 /* subdirectory */ +#define ETCP_ATTR_ARCHIVE 32 /* archive */ + + + +/* Archive type constants. */ + +#define ETCP_ARCHIVE_UNKNOWN 0 /* unknown */ +#define ETCP_ARCHIVE_ZIP 1 /* .ZIP archive, PK format */ +#define ETCP_ARCHIVE_ZIP_ETMV 2 /* .ZIP multi-volume archive, EllTech format */ +#define ETCP_ARCHIVE_ZIP_PKMV 3 /* .ZIP multi-volume archive, PK format */ +#define ETCP_ARCHIVE_ZIP_IMMV 4 /* .ZIP multi-volume archive, Inner Media format */ +#define ETCP_ARCHIVE_LZH 5 /* .LZH archive (LHA/LHARC format) */ +#define ETCP_ARCHIVE_ARJ 6 /* .ARJ archive */ +#define ETCP_ARCHIVE_ZOO 7 /* .ZOO archive */ +#define ETCP_ARCHIVE_ARC 8 /* .ARC archive */ +#define ETCP_ARCHIVE_ZIP_EXE 13 /* .EXE archive, PKZIP self-extracting format */ + + + +/* If the user status routine decides to let us handle it after all... */ + +#define ETCP_YOU_DO_IT -10000 + + + +/* Status display constants. */ + +#define ETCP_OPERATION_ZIP 0 /* zipping */ +#define ETCP_OPERATION_UNZIP 1 /* unzipping */ +#define ETCP_OPERATION_DELETE 2 /* deleting */ +#define ETCP_OPERATION_TEST 3 /* testing */ + + + +/* Status display message type constants. */ + +#define ETCP_MESSAGETYPE_ERROR 0 /* error */ +#define ETCP_MESSAGETYPE_QUERY 1 /* query */ +#define ETCP_MESSAGETYPE_STATUS 2 /* status or progress report */ + + + +/* Status Operation and MhZip .Action constants */ + +#define ETCP_ACTION_NONE 0 +#define ETCP_ACTION_EXAMINE 1 /* directory services */ +#define ETCP_ACTION_ADD 2 /* add files to an archive */ +#define ETCP_ACTION_UPDATE 3 /* update an archive */ +#define ETCP_ACTION_FRESHEN 4 /* freshen an archive */ +#define ETCP_ACTION_DELETE 5 /* delete files from an archive */ +#define ETCP_ACTION_EXTRACT 6 /* extract files from an archive */ +#define ETCP_ACTION_TEST 7 /* test archive files without extracting */ + +/* Constants for query codes (MhZip_Prompt event) and CPrint callbacks */ + +#define ETCP_QUERY_INSERT_DISK 1 /* insert a specific disk # in a MV set */ +#define ETCP_QUERY_OVERWRITE 2 /* overwrite confirmation */ +#define ETCP_QUERY_INSERT_LAST 3 /* insert the last disk in a PK-compatible MV set */ + +/* MhZip .OverWrite property constants */ + +#define ETCP_OVERWRITE_PROMPT 0 +#define ETCP_OVERWRITE_ALWAYS 1 +#define ETCP_OVERWRITE_NEVER 2 + +/* MhZip .EntryTypes property constants */ + +#define ETCP_ENTRIES_FILES 0 +#define ETCP_ENTRIES_DIRVOL 1 +#define ETCP_ENTRIES_ALL 2 + +/* MhZip .ExtractFreshen property constants */ + +#define ETCP_EXFR_ALL 0 +#define ETCP_EXFR_NEWEREXISTS 1 +#define ETCP_EXFR_NEWER 2 + +/* MhZip .FileArchiveBit property constants */ + +#define ETCP_FAB_IGNORE 0 +#define ETCP_FAB_ONLYIFSET 1 +#define ETCP_FAB_ALLRESET 2 +#define ETCP_FAB_ONLYIFSETRESET 3 + +/* MhZip .IncludeHidSys property constants */ + +#define ETCP_HIDSYS_EXCLUDE 0 +#define ETCP_HIDSYS_HIDDEN 1 +#define ETCP_HIDSYS_SYSTEM 2 +#define ETCP_HIDSYS_BOTH 3 + +/* MhZip .StorePath property constants */ + +#define ETCP_PATHS_NONE 0 +#define ETCP_PATH_RECURSED 1 +#define ETCP_PATH_SPECIFIEDRECURSED 2 + +/* MhZip .ZipFileDate property constants */ +#define ETCP_ZIPDATE_CURRENT 0 +#define ETCP_ZIPDATE_ORIGINAL 1 +#define ETCP_ZIPDATE_LATEST 2 + +/* constants for error codes */ + +#define ETCP_ERR_NOT_ENOUGH_MEMORY 108 /* not enough memory */ +#define ETCP_ERR_INVALID_HANDLE 106 /* invalid (file or archive) handle */ +#define ETCP_ERR_ACCESS_DENIED 105 /* access denied (file error of some sort) */ +#define ETCP_ERR_PATH_NOT_FOUND 103 /* path not found (or unable to create subdirectory) */ +#define ETCP_ERR_FILE_NOT_FOUND 102 /* file not found */ +#define ETCP_ERR_NO_PROBLEM 0 /* (no error) */ +#define ETCP_ERR_UNKNOWN_ARCHIVE_TYPE -1 /* not a .ZIP archive */ +#define ETCP_ERR_INVALID_ARCHIVE_DIR -2 /* error in archive directory */ +#define ETCP_ERR_UNKNOWN_METHOD -3 /* unknown compression method */ +#define ETCP_ERR_USER_ABORT -4 /* the user wants to cancel */ +#define ETCP_ERR_NO_FILES_FOUND -7 /* no (more) matching files */ +#define ETCP_ERR_INCOMPLETE -8 /* unable to complete request */ +#define ETCP_ERR_INVALID_SWITCH -9 /* invalid switch option */ +#define ETCP_ERR_DISK_FULL -10 /* write error (disk full?) */ +#define ETCP_ERR_READ_PAST_END -11 /* read error (read past end?) */ +#define ETCP_ERR_INVALID_OFFSET -12 /* invalid starting offset for EtUnZipPtr */ +#define ETCP_ERR_OVERFLOW -18 /* overflow (integer > 32767 or string too long) */ +#define ETCP_ERR_NOTHING_TO_DO -19 /* no action specified [might want to respond by popping up help] */ +#define ETCP_ERR_SWITCH_CONFLICT -20 /* conflicting switches were specified */ +#define ETCP_ERR_TOO_MANY_FILES -21 /* too many files to process (more than 65535 or too many for multi-vol dir) */ +#define ETCP_ERR_INVALID_DATE -22 /* invalid date specified */ +#define ETCP_ERR_BAD_FILE_MODE -23 /* invalid file mode specified */ +#define ETCP_ERR_BAD_PASSWORD -24 /* incorrect password */ +#define ETCP_ERR_BAD_CRC -25 /* computed CRC doesn't match recorded CRC */ +#define ETCP_ERR_NOT_WITH_MV -26 /* function not supported for multi-volume or alien archives */ +#define ETCP_ERR_CANT_CONTINUE -27 /* can't continue (.ZIP was modified between Et4ZipFindNext calls) */ +#define ETCP_ERR_NOT_REMOVABLE -28 /* selected multi-volume format requires removable disks for target files */ + + + +/* constants for .ZIP file open mode */ + +#define ETCP_OPEN_ANY 0 /* open for r/w; create if need be */ +#define ETCP_OPEN_READONLY 1 /* open for read (only) */ +#define ETCP_OPEN_READWRITE 2 /* open for read/write */ +#define ETCP_OPEN_CREATE 3 /* create; open for read/write */ + + + +/* Constants for zip method specification. These are not the same as the numbers used in the .ZIP + * itself-- the problem being that the .ZIP methods are partially given by numbers, and partially + * by assorted flags, which is a nuisance to handle. Internally, we use these single well-defined + * constants instead, and convert back and forth when dealing with the .ZIP file headers directly. */ + +#define ETCP_METHOD_NONE 0 +#define ETCP_METHOD_DEFLATE0 1 +#define ETCP_METHOD_DEFLATE1 2 +#define ETCP_METHOD_DEFLATE2 3 +#define ETCP_METHOD_DEFLATE3 4 +#define ETCP_METHOD_SCRUNCH 5 +#define ETCP_METHOD_IMPLODE 6 +#define ETCP_METHOD_HUFFMAN 7 +#define ETCP_METHOD_MASH 8 +#define ETCP_METHOD_SHRINK 9 + + + +typedef struct tagCENTRALDIRREC +{ + DWORD cdrSignature; /* signature/I.D. */ + USHORT cdrCreationOS; /* PK version used to create archive */ + USHORT cdrExtractVer; /* PK version needed to extract file */ + USHORT cdrGenPurFlag; /* misc flags */ + short cdrMethod; /* compression method */ + USHORT cdrFTime; /* file time, in DOS format */ + USHORT cdrFDate; /* file date, in DOS format */ + long cdrCRC32; /* CRC of file */ + long cdrCompSize; /* compressed size of file */ + long cdrUncompSize; /* uncompressed size of file */ + USHORT cdrFileNameLen; /* length of file name */ + USHORT cdrExtraFieldLen; /* length of extra field */ + USHORT cdrCommentLen; /* length of file comment */ + USHORT cdrDiskNumStart; /* starting disk number [0..n] */ + USHORT cdrIntFileAttr; /* internal file attribute (.ZIP internal attr) */ + DWORD cdrExtFileAttr; /* external file attribute (includes DOS attr) */ + long cdrLocalHeader; /* file pointer to local header structure */ +} CENTRALDIRREC, FAR * lpCENTRALDIRREC; + +typedef struct tagENDOFCENTRALDIRREC +{ + DWORD ecdSignature; /* signature/I.D. */ + USHORT ecdDiskNum; /* current disk number [0..n] */ + USHORT ecdDiskWCD; /* disk # with start of central dir */ + USHORT ecdNumThisDisk; /* # of entries in central dir on this disk */ + USHORT ecdTotalCD; /* total # of entries in central dir */ + long ecdCDSize; /* size of central dir (bytes) */ + long ecdCDOffset; /* offset of central dir on 1st disk with same */ + USHORT ecdCommentLen; /* strlen of zip file comment */ +} ENDOFCENTRALDIRREC, FAR * lpENDOFCENTRALDIRREC; + +typedef struct tagCOMPINFO +{ + UCHAR ciZipFileName[ETCP_MAX_FILENAME_LENGTH]; /* name of .ZIP file being processed */ + UCHAR ciFileName[ETCP_MAX_FILENAME_LENGTH]; /* name of the file being processed (added to .ZIP, deleted from .ZIP, or whatever) */ + short ciOperation; /* operation: 0 zip, 1 unzip, 2 delete, 3 test */ + long ciTotalSize; /* total number of bytes to process */ + long ciCurrentByte; /* current byte being processed */ + long ciCompSize; /* compressed size */ + short ciMethod; /* compression method */ + short ciPass; /* pass number [1..n] */ + long ciPassSize; /* total bytes this pass */ + short ciMessageType; /* message type (status, error, query) */ + short ciMessageCode; /* message number (if error message) */ + short ciDiskNumber; /* disk number (for multi-volume query) */ +} COMPINFO; + +typedef struct tagMORECOMPINFO +{ + USHORT ciFDate; // file date, in DOS format + USHORT ciFTime; // file time, in DOS format + // There may be additional data added on to the end of this structure in the future... +} MORECOMPINFO, FAR * lpMORECOMPINFO; + + + +/* prototypes */ + +short FAR PASCAL Et4AddUnZipPathFilter (LPSTR sOldPath, LPSTR sNewPath); + +void FAR PASCAL Et4Cancel (); + +void FAR PASCAL Et4CompressDosDate (short wMonth, short wDay, short wYear, + USHORT FAR * wDate); + +void FAR PASCAL Et4CompressDosTime (short wHour, short wMinute, short wSecond, + USHORT FAR * wTime); + +void FAR PASCAL Et4CPrintHook (FARPROC CPrintRoutine); + +short FAR PASCAL Et4CrLfToLf (LPSTR sInFile, LPSTR sOutFile); + +short FAR PASCAL Et4DirExist (LPSTR sDirName); + +short FAR PASCAL Et4DosGetFileTime (LPSTR sFileName, USHORT FAR * lpwDate, + USHORT FAR * lpwTime); + +short FAR PASCAL Et4DosSetFileTime (LPSTR sFileName, USHORT wDate, + USHORT wTime); + +void FAR PASCAL Et4ExpandDosDate (USHORT wDate, short FAR * wMonth, + short FAR * wDay, short FAR * wYear); + +void FAR PASCAL Et4ExpandDosTime (USHORT wTime, short FAR * wHour, + short FAR * wMinute, short FAR * wSecond); + +short FAR PASCAL Et4ExtendedCPrintInfo (short wcbBuffer, void * lpBuffer); + +short FAR PASCAL Et4GetCPrint (); + +short FAR PASCAL Et4GetDoEvents (); + +short FAR PASCAL Et4GetParsePlace (); + +short FAR PASCAL Et4GetParseType (); + +short FAR PASCAL Et4IdentifyFile (LPSTR sZipFile, short FAR * wArchiveType); + +short FAR PASCAL Et4LfToCrLf (LPSTR sInFile, LPSTR sOutFile, short fCtrlZ); + +short FAR PASCAL Et4MakeSFX (LPSTR sZipFile, LPSTR sSfxFile, short iOverwrite, + short iEncryptedOk, short iDestPathDialog, short iStartDialog, + short iEndDialog, LPSTR sAutoExecFile); + +short FAR PASCAL Et4QUnZip (LPSTR sZipFile, LPSTR sDestination, + LPSTR sFileSpec, LPSTR sSwitches); + +short FAR PASCAL Et4QZip (LPSTR sZipFile, LPSTR sFileSpec, LPSTR sSwitches); + +void FAR PASCAL Et4SetCPrint (short StatusDisplay); + +void FAR PASCAL Et4SetDoEvents (short DoEvents); + +void FAR PASCAL Et4SetParseType (short wChoice); + +short FAR PASCAL Et4UnZip (HFILE FAR * hZipFile, LPSTR sDestination, + LPSTR asFileSpec, LPSTR asExcludeSpec, LPSTR sSwitches); + +short FAR PASCAL Et4UnZipPtr (HFILE hZipFile, UCHAR FAR * dPtr, + long dStartingOffset, long dcbBytesWanted, LPSTR sInternalName, + LPSTR sSwitches); + +short FAR PASCAL Et4Zip (HFILE FAR * hZipFile, LPSTR asFileSpec, + LPSTR asExcludeSpec, LPSTR sSwitches); + +void FAR PASCAL Et4ZipClose (HFILE FAR * hZipFile); + +short FAR PASCAL Et4ZipComment (HFILE hZipFile, LPSTR sComment, + UINT wMaxCommentLen); + +short FAR PASCAL Et4ZipCount (HFILE hZipFile, UINT FAR * wFileCount); + +short FAR PASCAL Et4ZipCreateMV (LPSTR sZipFile, USHORT wZipType, + DWORD dcbFirstDisk, DWORD dcbNextDisk, HFILE FAR * hZipFile); + +short FAR PASCAL Et4ZipFindFirst (HFILE hZipFile, CENTRALDIRREC FAR * cdr, + LPSTR sFile, LPSTR sExtraField, USHORT MaxExtraFieldLen, LPSTR sComment, + USHORT MaxCommentLen); + +short FAR PASCAL Et4ZipFindNext (HFILE hZipFile, CENTRALDIRREC FAR * cdr, + LPSTR sFile, LPSTR sExtraField, USHORT MaxExtraFieldLen, LPSTR sComment, + USHORT MaxCommentLen); + +short FAR PASCAL Et4ZipNewComment (HFILE hZipFile, LPSTR sComment); + +short FAR PASCAL Et4ZipNewFileComment (HFILE FAR * hZipFile, LPSTR sFileName, + LPSTR sFileComment); + +short FAR PASCAL Et4ZipOpen (LPSTR sZipFile, USHORT wFileMode, + HFILE FAR * hZipFile); + +short FAR PASCAL Et4ZipPercent (long dcbUncompressedSize, + long dcbCompressedSize); + +short FAR PASCAL Et4ZipPtr (HFILE FAR * hZipFile, UCHAR FAR * dPtr, + long dcbBytesLeft, LPSTR sInternalName, LPSTR sSwitches); + + + +/* prototypes for low-level compression routines */ + +long WINAPI EtCompress (UCHAR FAR * SrcPtr, long SrcLen, + UCHAR FAR * DestPtr, long DestLen, int CompSpeed); + +long WINAPI EtCRC32A (UCHAR FAR * SrcPtr, long Bytes, long StartingCRC); + +void WINAPI EtDecryptData (void FAR * DataPtr, long DataSize); + +short WINAPI EtDeflate (short MaxCompares, short StaticFlag, + UCHAR FAR * InBufPtr, long InStart, long FAR * InSize, + UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, BOOL EndOfInput, + UCHAR FAR * Ptr1, UCHAR FAR * Ptr2, UCHAR FAR * Ptr3); + +void WINAPI EtDeflateBufSize (long FAR * BufSize1, long FAR * BufSize2, + long FAR * BufSize3); + +void WINAPI EtDeflateInit (UCHAR FAR * BufPtr1, UCHAR FAR * BufPtr2, + UCHAR FAR * BufPtr3); + +void WINAPI EtEncryptData (void FAR * DataPtr, long DataSize); + +short WINAPI EtHuffman (UCHAR FAR * InBufPtr, long InStart, long FAR * InSize, + UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +long WINAPI EtHuffmanBufSize (); + +void WINAPI EtHuffmanInit (UCHAR FAR * BufPtr); + +short WINAPI EtHuffmanScan (UCHAR FAR * InBufPtr, long InStart, + long FAR * InSize, UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +long WINAPI EtHuffmanUCBufSize (); + +short WINAPI EtHuffmanUC (UCHAR FAR * InBufPtr, long InStart, + long FAR * InSize, UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +void WINAPI EtHuffmanUCInit (UCHAR FAR * BufPtr); + +short WINAPI EtImplode (UCHAR FAR * InBufPtr, long InStart, long FAR * InSize, + UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +long WINAPI EtImplodeBufSize (); + +void WINAPI EtImplodeInit (UCHAR FAR * BufPtr); + +short WINAPI EtImplodeScan (UCHAR FAR * InBufPtr, long InStart, + long FAR * InSize, UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +short WINAPI EtImplodeUC (UCHAR FAR * InBufPtr, long InStart, + long FAR * InSize, UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +long WINAPI EtImplodeUCBufSize (); + +void WINAPI EtImplodeUCParams (short ThreeTrees, short EightKWindow); + +void WINAPI EtImplodeUCInit (UCHAR FAR * BufPtr); + +short WINAPI EtInflateUC (UCHAR FAR * InBufPtr, long InStart, + long FAR * InSize, UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +long WINAPI EtInflateUCBufSize (); + +void WINAPI EtInflateUCInit (UCHAR FAR * BufPtr); + +void WINAPI EtInitHeader (void FAR * HeaderPtr, long FileCRC32); + +void WINAPI EtInitKeys (UCHAR FAR * PassPtr, short PassSize); + +short WINAPI EtMash (UCHAR FAR * InBufPtr, long InStart, long FAR * InSize, + UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +long WINAPI EtMashBufSize (); + +void WINAPI EtMashInit (); + +void WINAPI EtMashParams (); + +short WINAPI EtMashUC (UCHAR FAR * InBufPtr, long InStart, long FAR * InSize, + UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +long WINAPI EtMashUCBufSize (); + +void WINAPI EtMashUCInit (UCHAR FAR * BufPtr); + +void WINAPI EtMashUCParams (short MaxBits, short RleFirst); + +short WINAPI EtScrunch (UCHAR FAR * InBufPtr, long InStart, long FAR * InSize, + UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +long WINAPI EtScrunchBufSize (); + +void WINAPI EtScrunchInit (UCHAR FAR * BufPtr); + +short WINAPI EtScrunchUC (UCHAR FAR * InBufPtr, long InStart, + long FAR * InSize, UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +long WINAPI EtScrunchUCBufSize (); + +void WINAPI EtScrunchUCInit (UCHAR FAR * BufPtr); + +short WINAPI EtShrink (UCHAR FAR * InBufPtr, long InStart, long FAR * InSize, + UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +long WINAPI EtShrinkBufSize (); + +void WINAPI EtShrinkInit (UCHAR FAR * BufPtr); + +short WINAPI EtShrinkUC (UCHAR FAR * InBufPtr, long InStart, long FAR * InSize, + UCHAR FAR * OutBufPtr, long OutStart, long FAR * OutSize, + UCHAR FAR * IntVarPtr, BOOL EndOfInput); + +long WINAPI EtShrinkUCBufSize (); + +void WINAPI EtShrinkUCInit (UCHAR FAR * BufPtr); + +long WINAPI EtUnCompress (UCHAR FAR * StrPtr, long SrcLen, + UCHAR FAR * DestPtr, long DestLen); + + + +#ifdef __cplusplus +} +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |