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
接收压缩信息的缓冲区。 Buffer 的最大大小(以字节为单位)由 CompressedBufferSize 提供。
[in] CompressedBufferSize
接收压缩信息的缓冲区的最大大小(以字节为单位)。
[out] CompressedDataSize
接收的压缩信息的实际大小(以字节为单位)。
返回值
如果该函数成功,则返回值为非零值。 如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
如果压缩算法由于某种内部原因而失败,则可以ERROR_FUNCTION_FAILED来自 GetLastError 的错误。 如果系统找不到压缩算法句柄,则可以 ERROR_INVALID_HANDLE错误。 如果输出缓冲区太小而无法容纳压缩的数据,则可能会 ERROR_INSUFFICIENT_BUFFER错误。
如果 CompressedBuffer 输出缓冲区太小而无法容纳压缩的数据,则函数会失败,并且可能会ERROR_INSUFFICIENT_BUFFER来自 GetLastError 的错误。 在这种情况下, CompressedDataSize 参数接收的大小为 CompressedBuffer 保证该输入缓冲区成功所需的大小。 可以将 CompressedBufferSize 设置为零,以确定要分配的输出缓冲区的大小。
要求
最低受支持的客户端 | Windows 8 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2012 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | compressapi.h |
Library | Cabinet.lib |
DLL | Cabinet.dll |