Compartilhar via


Função Compress (compressapi.h)

Pega um bloco de informações e compacta-o.

Sintaxe

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

Identificador para um compressor retornado por CreateCompressor.

[in] UncompressedData

Contém o bloco de informações que deve ser compactado. O tamanho em bytes do bloco descompactado é dado por UncompressedDataSize.

[in] UncompressedDataSize

Tamanho em bytes das informações descompactadas.

[out] CompressedBuffer

O buffer que recebe as informações compactadas. O tamanho máximo em bytes do buffer é fornecido por CompressedBufferSize.

[in] CompressedBufferSize

Tamanho máximo em bytes do buffer que recebe as informações compactadas.

[out] CompressedDataSize

Tamanho real em bytes das informações compactadas recebidas.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero. Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Se o algoritmo de compactação falhar por algum motivo interno, o erro de GetLastError poderá ser ERROR_FUNCTION_FAILED. Se o sistema não conseguir localizar o identificador do algoritmo de compactação, o erro poderá ser ERROR_INVALID_HANDLE. Se o buffer de saída for muito pequeno para conter os dados compactados, o erro poderá ser ERROR_INSUFFICIENT_BUFFER.

Se o buffer de saída CompressedBuffer for muito pequeno para conter os dados compactados, a função falhará e o erro de GetLastError poderá ser ERROR_INSUFFICIENT_BUFFER. Nesse caso, o parâmetro CompressedDataSize recebe com o tamanho que o CompressedBuffer precisa ser para garantir o sucesso desse buffer de entrada. Você pode definir CompressedBufferSize como zero para determinar o tamanho do buffer de saída a ser alocado.

Requisitos

   
Cliente mínimo com suporte Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho compressapi.h
Biblioteca Cabinet.lib
DLL Cabinet.dll

Confira também

Funções da API de compactação