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

Consulte también

Funciones de API de compresión