|  | /** | 
|  | * 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 <windef.h> | 
|  |  | 
|  | #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 |