Share via


Compress, fonction (compressapi.h)

Prend un bloc d’informations et les compresse.

Syntaxe

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

Paramètres

[in] CompressorHandle

Poignée à un compresseur retourné par CreateCompressor.

[in] UncompressedData

Contient le bloc d’informations à compresser. La taille en octets du bloc non compressé est donnée par UncompressedDataSize.

[in] UncompressedDataSize

Taille en octets des informations non compressées.

[out] CompressedBuffer

Mémoire tampon qui reçoit les informations compressées. La taille maximale en octets de la mémoire tampon est donnée par CompressedBufferSize.

[in] CompressedBufferSize

Taille maximale en octets de la mémoire tampon qui reçoit les informations compressées.

[out] CompressedDataSize

Taille réelle, en octets, des informations compressées reçues.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro. Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Si l’algorithme de compression échoue pour une raison interne, l’erreur de GetLastError peut être ERROR_FUNCTION_FAILED. Si le système ne peut pas localiser le handle de l’algorithme de compression, l’erreur peut être ERROR_INVALID_HANDLE. Si la mémoire tampon de sortie est trop petite pour contenir les données compressées, l’erreur peut être ERROR_INSUFFICIENT_BUFFER.

Si la mémoire tampon de sortie CompressedBuffer est trop petite pour contenir les données compressées, la fonction échoue et l’erreur de GetLastError peut être ERROR_INSUFFICIENT_BUFFER. Dans ce cas, le paramètre CompressedDataSize reçoit avec la taille dont le CompressedBuffer a besoin pour garantir la réussite de cette mémoire tampon d’entrée. Vous pouvez définir CompressedBufferSize sur zéro pour déterminer la taille de la mémoire tampon de sortie à allouer.

Configuration requise

   
Client minimal pris en charge Windows 8 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête compressapi.h
Bibliothèque Cabinet.lib
DLL Cabinet.dll

Voir aussi

Fonctions de l’API de compression