Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 |