Función Compress (compressapi.h)
Toma un bloque de información y lo comprime.
Sintaxis
BOOL Compress(
[in] COMPRESSOR_HANDLE CompressorHandle,
[in] LPCVOID UncompressedData,
[in] SIZE_T UncompressedDataSize,
[out] PVOID CompressedBuffer,
[in] SIZE_T CompressedBufferSize,
[out] PSIZE_T CompressedDataSize
);
Parámetros
[in] CompressorHandle
Asa a un compresor devuelto por CreateCompressor.
[in] UncompressedData
Contiene el bloque de información que se va a comprimir. El tamaño en bytes del bloque sin comprimir lo da UncompressedDataSize.
[in] UncompressedDataSize
Tamaño en bytes de la información sin comprimir.
[out] CompressedBuffer
Búfer que recibe la información comprimida. CompressedBufferSize asigna el tamaño máximo en bytes del búfer.
[in] CompressedBufferSize
Tamaño máximo en bytes del búfer que recibe la información comprimida.
[out] CompressedDataSize
Tamaño real en bytes de la información comprimida recibida.
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es distinto de cero. Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Comentarios
Si se produce un error en el algoritmo de compresión por algún motivo interno, el error de GetLastError puede ser ERROR_FUNCTION_FAILED. Si el sistema no encuentra el identificador del algoritmo de compresión, el error puede ser ERROR_INVALID_HANDLE. Si el búfer de salida es demasiado pequeño para contener los datos comprimidos, el error puede ser ERROR_INSUFFICIENT_BUFFER.
Si el búfer de salida CompressedBuffer es demasiado pequeño para contener los datos comprimidos, se produce un error en la función y se puede ERROR_INSUFFICIENT_BUFFER el error de GetLastError. En este caso, el parámetro CompressedDataSize recibe con el tamaño que debe tener compressedBuffer para garantizar que el búfer de entrada se haya realizado correctamente. Puede establecer CompressedBufferSize en cero para determinar el tamaño del búfer de salida que se va a asignar.
Requisitos
Cliente mínimo compatible | Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | compressapi.h |
Library | Cabinet.lib |
Archivo DLL | Cabinet.dll |