|
|
//
// Compression stuff
//
typedef enum { CompressNone, CompressMrci1, CompressMrci2, CompressMax } CompressionType;
typedef BOOL(WINAPI COMPRESSNOTIFICATIONA)( IN PCSTR FileName, IN LONGLONG FileSize, OUT PBOOL ExtractFile, IN OUT PCSTR *NewFileName ); typedef COMPRESSNOTIFICATIONA *PCOMPRESSNOTIFICATIONA;
typedef BOOL(WINAPI COMPRESSNOTIFICATIONW)( IN PCWSTR FileName, IN LONGLONG FileSize, OUT PBOOL ExtractFile, IN OUT PCWSTR *NewFileName ); typedef COMPRESSNOTIFICATIONW *PCOMPRESSNOTIFICATIONW;
typedef struct { HANDLE CurrFileHandle; UINT FirstFileIndex; UINT CurrFileIndex; LONGLONG MaxFileSize; LONGLONG CurrFileSize; LONGLONG FilesStored; PCSTR StorePath; PCSTR MainFilePattern; PBYTE ReadBuffer; PBYTE CompBuffer; PBYTE ExtraBuffer; } COMPRESS_HANDLEA, *PCOMPRESS_HANDLEA;
typedef struct { HANDLE CurrFileHandle; UINT FirstFileIndex; UINT CurrFileIndex; LONGLONG MaxFileSize; LONGLONG CurrFileSize; LONGLONG FilesStored; PCWSTR StorePath; PCWSTR MainFilePattern; PBYTE ReadBuffer; PBYTE CompBuffer; PBYTE ExtraBuffer; } COMPRESS_HANDLEW, *PCOMPRESS_HANDLEW;
BOOL CompressCreateHandleA ( IN PCSTR StorePath, IN PCSTR MainFilePattern, IN UINT StartIndex, IN LONGLONG MaxFileSize, OUT PCOMPRESS_HANDLEA CompressedHandle );
BOOL CompressCreateHandleW ( IN PCWSTR StorePath, IN PCWSTR MainFilePattern, IN UINT StartIndex, IN LONGLONG MaxFileSize, OUT PCOMPRESS_HANDLEW CompressedHandle );
BOOL CompressOpenHandleA ( IN PCSTR StorePath, IN PCSTR MainFilePattern, IN UINT StartIndex, OUT PCOMPRESS_HANDLEA CompressedHandle );
BOOL CompressOpenHandleW ( IN PCWSTR StorePath, IN PCWSTR MainFilePattern, IN UINT StartIndex, OUT PCOMPRESS_HANDLEW CompressedHandle );
BOOL CompressFlushAndCloseHandleA ( IN OUT PCOMPRESS_HANDLEA CompressedHandle );
BOOL CompressFlushAndCloseHandleW ( IN OUT PCOMPRESS_HANDLEW CompressedHandle );
VOID CompressCleanupHandleA ( IN OUT PCOMPRESS_HANDLEA CompressedHandle );
VOID CompressCleanupHandleW ( IN OUT PCOMPRESS_HANDLEW CompressedHandle );
BOOL CompressAddFileToHandleA ( IN PCSTR FileName, IN PCSTR StoredName, IN OUT PCOMPRESS_HANDLEA CompressedHandle );
BOOL CompressAddFileToHandleW ( IN PCWSTR FileName, IN PCWSTR StoredName, IN OUT PCOMPRESS_HANDLEW CompressedHandle );
BOOL CompressExtractAllFilesA ( IN PCSTR ExtractPath, IN OUT PCOMPRESS_HANDLEA CompressedHandle, IN PCOMPRESSNOTIFICATIONA CompressNotification OPTIONAL );
BOOL CompressExtractAllFilesW ( IN PCWSTR ExtractPath, IN OUT PCOMPRESS_HANDLEW CompressedHandle, IN PCOMPRESSNOTIFICATIONW CompressNotification OPTIONAL );
BOOL CompressSetErrorMode ( IN BOOL ErrorMode );
#ifndef UNICODE
#define COMPRESS_HANDLE COMPRESS_HANDLEA
#define PCOMPRESS_HANDLE PCOMPRESS_HANDLEA
#define COMPRESSNOTIFICATION COMPRESSNOTIFICATIONA
#define PCOMPRESSNOTIFICATION PCOMPRESSNOTIFICATIONA
#define CompressCreateHandle CompressCreateHandleA
#define CompressOpenHandle CompressOpenHandleA
#define CompressFlushAndCloseHandle CompressFlushAndCloseHandleA
#define CompressCleanupHandle CompressCleanupHandleA
#define CompressAddFileToHandle CompressAddFileToHandleA
#define CompressExtractAllFiles CompressExtractAllFilesA
#else
#define COMPRESS_HANDLE COMPRESS_HANDLEW
#define PCOMPRESS_HANDLE PCOMPRESS_HANDLEW
#define COMPRESSNOTIFICATION COMPRESSNOTIFICATIONW
#define PCOMPRESSNOTIFICATION PCOMPRESSNOTIFICATIONW
#define CompressCreateHandle CompressCreateHandleW
#define CompressOpenHandle CompressOpenHandleW
#define CompressFlushAndCloseHandle CompressFlushAndCloseHandleW
#define CompressCleanupHandle CompressCleanupHandleW
#define CompressAddFileToHandle CompressAddFileToHandleW
#define CompressExtractAllFiles CompressExtractAllFilesW
#endif
|