Функция Compress (compressapi.h)
Принимает блок сведений и сжимает его.
Синтаксис
BOOL Compress(
[in] COMPRESSOR_HANDLE CompressorHandle,
[in] LPCVOID UncompressedData,
[in] SIZE_T UncompressedDataSize,
[out] PVOID CompressedBuffer,
[in] SIZE_T CompressedBufferSize,
[out] PSIZE_T CompressedDataSize
);
Параметры
[in] CompressorHandle
Дескриптор для компрессора, возвращенного CreateCompressor.
[in] UncompressedData
Содержит блок сведений, который требуется сжать. Размер несжатого блока в байтах задается uncompressedDataSize.
[in] UncompressedDataSize
Размер несжатой информации в байтах.
[out] CompressedBuffer
Буфер, получающий сжатые сведения. Максимальный размер буфера в байтах задается параметром CompressedBufferSize.
[in] CompressedBufferSize
Максимальный размер буфера, получающего сжатые сведения, в байтах.
[out] CompressedDataSize
Фактический размер полученных сжатых сведений в байтах.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение. Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Если алгоритм сжатия по какой-либо внутренней причине завершается сбоем, можно ERROR_FUNCTION_FAILED ошибку getLastError. Если системе не удается найти дескриптор алгоритма сжатия, ошибка может быть ERROR_INVALID_HANDLE. Если выходной буфер слишком мал для хранения сжатых данных, ошибка может быть ERROR_INSUFFICIENT_BUFFER.
Если выходной буфер CompressedBuffer слишком мал для хранения сжатых данных, функция завершается сбоем и ошибка getLastError может быть ERROR_INSUFFICIENT_BUFFER. В этом случае параметр CompressedDataSize получает с размером, который должен иметь compressedBuffer , чтобы гарантировать успешное выполнение входного буфера. Чтобы определить размер выделяемого буфера вывода, можно задать для свойства CompressedBufferSize нулевое значение.
Требования
Минимальная версия клиента | Windows 8 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2012 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | compressapi.h |
Библиотека | Cab.lib |
DLL | Cabinet.dll |