104 lines
3 KiB
C
104 lines
3 KiB
C
/*******************************************************************
|
|
***** Header for Decompression Library (condensed from API.H and RETCODES.H)
|
|
********************************************************************/
|
|
|
|
/*** API.H: Extern procs for the decompression library. ***/
|
|
|
|
typedef int (far * PFNWFROMW)(int);
|
|
|
|
|
|
LONG
|
|
LcbCopyFile(
|
|
HANDLE fhSrc,
|
|
HANDLE fhDest,
|
|
PFNWFROMW pfn,
|
|
INT cProgTicks
|
|
);
|
|
|
|
LONG
|
|
LcbDecompFile(
|
|
HANDLE fhSrc,
|
|
HANDLE fhDest,
|
|
PFNWFROMW pfn,
|
|
INT cProgTicks
|
|
);
|
|
|
|
//
|
|
// Diamond routines.
|
|
//
|
|
|
|
BOOL
|
|
InitDiamond(
|
|
VOID
|
|
);
|
|
|
|
VOID
|
|
TermDiamond(
|
|
VOID
|
|
);
|
|
|
|
BOOL
|
|
IsDiamondFile(
|
|
IN PSTR FileName
|
|
);
|
|
|
|
LONG
|
|
DecompDiamondFile(
|
|
PSTR SourceFileName,
|
|
HANDLE TargetFileHandle,
|
|
PFNWFROMW ProgressCallback,
|
|
INT NumberOfTicks
|
|
);
|
|
|
|
|
|
/* global variables for file header info before writing or after reading */
|
|
extern SHORT vwAlgType;
|
|
extern LONG vlcbSrcLength;
|
|
extern BOOL vfChecksum;
|
|
extern USHORT vusChecksum;
|
|
extern USHORT vcbArgs;
|
|
extern BYTE * vrgbArgs;
|
|
extern CHAR vszBaseName[9];
|
|
extern CHAR vszExtension[4];
|
|
extern SZ vszText;
|
|
extern USHORT vcbText;
|
|
|
|
|
|
|
|
/*** RETCODES.H: Return Codes for compression module for Setup Toolkit. ***/
|
|
|
|
|
|
/* error codes - quick check is anything less than rcNoError */
|
|
#define rcNoError 0 /* no errors */
|
|
#define rcNoHeader (-1) /* no header (eg no magic value) */
|
|
#define rcUnknownAlgType (-2) /* wAlgType doesn't match knowns */
|
|
#define rcBadHeader (-3) /* header too short or bad value */
|
|
#define rcFilenamesTooLong (-4) /* filenames bigger than 8.3 */
|
|
|
|
#define rcReadError (-5) /* reading error with fhSrc */
|
|
#define rcReadSeekError (-6) /* seeking error with fhSrc */
|
|
|
|
#define rcWriteError (-7) /* writing error with fhDest */
|
|
#define rcWriteSeekError (-8) /* seeking error with fhDest */
|
|
#define rcDestPatchError (-9) /* patching error with fhDest */
|
|
|
|
#define rcCompChecksumBad (-10) /* compressed checksums mismatch */
|
|
#define rcDecompChecksumBad (-11) /* decompressed checksums mismatch */
|
|
#define rcCompLengthBad (-12) /* compressed length mismatch */
|
|
#define rcDecompLengthBad (-13) /* decompressed length mismatch */
|
|
|
|
#define rcGenericCompError (-14) /* internal compression error */
|
|
#define rcGenericDecompError (-15) /* internal decompression error */
|
|
|
|
#define rcSplitSizeTooSmall (-16) /* split size too small for header */
|
|
|
|
#define rcOutOfMemory (-17) /* unable to alloc a buffer */
|
|
|
|
#define rcDiskFull (-18) /* target is full */
|
|
#define rcUserQuit (-19) /* user quit during decomp */
|
|
|
|
/* each code below here has a standard header */
|
|
#define wAlgTypeNil (-1) /* no algorithm type (never found) */
|
|
#define wAlgTypeZK1 2 /* Steve Zeck compression algorithm */
|
|
#define wAlgTypeJJJ1 3 /* Jeff J. Johnson algorithm */
|