Funzione Compress (compressapi.h)

Accetta un blocco di informazioni e lo comprime.

Sintassi

BOOL Compress(
  [in]  COMPRESSOR_HANDLE CompressorHandle,
  [in]  LPCVOID           UncompressedData,
  [in]  SIZE_T            UncompressedDataSize,
  [out] PVOID             CompressedBuffer,
  [in]  SIZE_T            CompressedBufferSize,
  [out] PSIZE_T           CompressedDataSize
);

Parametri

[in] CompressorHandle

Handle a un compressore restituito da CreateCompressor.

[in] UncompressedData

Contiene il blocco di informazioni da comprimere. Le dimensioni in byte del blocco non compresso vengono date da UncompressedDataSize.

[in] UncompressedDataSize

Dimensioni in byte delle informazioni non compresse.

[out] CompressedBuffer

Buffer che riceve le informazioni compresse. Le dimensioni massime in byte del buffer vengono date da CompressedBufferSize.

[in] CompressedBufferSize

Dimensione massima in byte del buffer che riceve le informazioni compresse.

[out] CompressedDataSize

Dimensioni effettive in byte delle informazioni compresse ricevute.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero. Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Se l'algoritmo di compressione non riesce per qualche motivo interno, l'errore di GetLastError può essere ERROR_FUNCTION_FAILED. Se il sistema non riesce a individuare l'handle dell'algoritmo di compressione, l'errore può essere ERROR_INVALID_HANDLE. Se il buffer di output è troppo piccolo per contenere i dati compressi, l'errore può essere ERROR_INSUFFICIENT_BUFFER.

Se il buffer di output CompressedBuffer è troppo piccolo per contenere i dati compressi, la funzione ha esito negativo e l'errore da GetLastError può essere ERROR_INSUFFICIENT_BUFFER. In questo caso, il parametro CompressedDataSize riceve le dimensioni necessarie per garantire l'esito positivo del buffer di input. È possibile impostare CompressedBufferSize su zero per determinare le dimensioni del buffer di output da allocare.

Requisiti

   
Client minimo supportato Windows 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione compressapi.h
Libreria Cabinet.lib
DLL Cabinet.dll

Vedi anche

Funzioni API di compressione