Поделиться через


Функция 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

См. также раздел

Функции API сжатия