/** * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER within this package. */ #ifndef _COMPRESSAPI_ #define _COMPRESSAPI_ #include #if NTDDI_VERSION >= 0x06020000 #define COMPRESS_ALGORITHM_INVALID 0 #define COMPRESS_ALGORITHM_NULL 1 #define COMPRESS_ALGORITHM_MSZIP 2 #define COMPRESS_ALGORITHM_XPRESS 3 #define COMPRESS_ALGORITHM_XPRESS_HUFF 4 #define COMPRESS_ALGORITHM_LZMS 5 #define COMPRESS_ALGORITHM_MAX 6 #define COMPRESS_RAW (1 << 29) #ifdef __cplusplus extern "C" { #endif typedef enum { COMPRESS_INFORMATION_CLASS_INVALID = 0, COMPRESS_INFORMATION_CLASS_BLOCK_SIZE, COMPRESS_INFORMATION_CLASS_LEVEL } COMPRESS_INFORMATION_CLASS; DECLARE_HANDLE (COMPRESSOR_HANDLE); typedef COMPRESSOR_HANDLE *PCOMPRESSOR_HANDLE; typedef COMPRESSOR_HANDLE DECOMPRESSOR_HANDLE; typedef COMPRESSOR_HANDLE *PDECOMPRESSOR_HANDLE; typedef PVOID (__cdecl *PFN_COMPRESS_ALLOCATE) (PVOID UserContext, SIZE_T Size); typedef VOID (__cdecl *PFN_COMPRESS_FREE) (PVOID UserContext, PVOID Memory); typedef struct _COMPRESS_ALLOCATION_ROUTINES { PFN_COMPRESS_ALLOCATE Allocate; PFN_COMPRESS_FREE Free; PVOID UserContext; } COMPRESS_ALLOCATION_ROUTINES,*PCOMPRESS_ALLOCATION_ROUTINES; WINBOOL WINAPI CloseCompressor (COMPRESSOR_HANDLE CompressorHandle); WINBOOL WINAPI CloseDecompressor (DECOMPRESSOR_HANDLE DecompressorHandle); WINBOOL WINAPI Compress (COMPRESSOR_HANDLE CompressorHandle, PVOID UncompressedData, SIZE_T UncompressedDataSize, PVOID CompressedBuffer, SIZE_T CompressedBufferSize, PSIZE_T CompressedDataSize); WINBOOL WINAPI CreateCompressor (DWORD Algorithm, PCOMPRESS_ALLOCATION_ROUTINES AllocationRoutines, PCOMPRESSOR_HANDLE CompressorHandle); WINBOOL WINAPI CreateDecompressor (DWORD Algorithm, PCOMPRESS_ALLOCATION_ROUTINES AllocationRoutines, PDECOMPRESSOR_HANDLE DecompressorHandle); WINBOOL WINAPI Decompress (DECOMPRESSOR_HANDLE DecompressorHandle, PVOID CompressedData, SIZE_T CompressedDataSize, PVOID UncompressedBuffer, SIZE_T UncompressedBufferSize, PSIZE_T UncompressedDataSize); WINBOOL WINAPI QueryCompressorInformation (COMPRESSOR_HANDLE CompressorHandle, COMPRESS_INFORMATION_CLASS CompressInformationClass, PVOID CompressInformation, SIZE_T CompressInformationSize); WINBOOL WINAPI QueryDecompressorInformation (DECOMPRESSOR_HANDLE DecompressorHandle, COMPRESS_INFORMATION_CLASS CompressInformationClass, PVOID CompressInformation, SIZE_T CompressInformationSize); WINBOOL WINAPI ResetCompressor (COMPRESSOR_HANDLE CompressorHandle); WINBOOL WINAPI ResetDecompressor (DECOMPRESSOR_HANDLE DecompressorHandle); WINBOOL WINAPI SetCompressorInformation (COMPRESSOR_HANDLE CompressorHandle, COMPRESS_INFORMATION_CLASS CompressInformationClass, PVOID CompressInformation, SIZE_T CompressInformationSize); WINBOOL WINAPI SetDecompressorInformation (DECOMPRESSOR_HANDLE DecompressorHandle, COMPRESS_INFORMATION_CLASS CompressInformationClass, PVOID CompressInformation, SIZE_T CompressInformationSize); #ifdef __cplusplus } #endif #endif #endif