Freigeben über


Compress-Funktion (compressapi.h)

Nimmt einen Informationsblock auf und komprimiert ihn.

Syntax

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

Parameter

[in] CompressorHandle

Handle an einen Kompressor, der von CreateCompressor zurückgegeben wird.

[in] UncompressedData

Enthält den Informationsblock, der komprimiert werden soll. Die Größe des unkomprimierten Blocks in Bytes wird von UncompressedDataSize angegeben.

[in] UncompressedDataSize

Größe der nicht komprimierten Informationen in Byte.

[out] CompressedBuffer

Der Puffer, der die komprimierten Informationen empfängt. Die maximale Größe des Puffers in Bytes wird von CompressedBufferSize angegeben.

[in] CompressedBufferSize

Maximale Größe in Bytes des Puffers, der die komprimierten Informationen empfängt.

[out] CompressedDataSize

Tatsächliche Größe der empfangenen komprimierten Informationen in Byte.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null. Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Wenn der Komprimierungsalgorithmus aus einem internen Grund fehlschlägt, kann der Fehler von GetLastErrorERROR_FUNCTION_FAILED werden. Wenn das System das Komprimierungsalgorithmushandle nicht finden kann, kann der Fehler ERROR_INVALID_HANDLE werden. Wenn der Ausgabepuffer zu klein ist, um die komprimierten Daten zu speichern, kann der Fehler ERROR_INSUFFICIENT_BUFFER werden.

Wenn der CompressedBuffer-Ausgabepuffer zu klein ist, um die komprimierten Daten zu speichern, schlägt die Funktion fehl, und der Fehler von GetLastError kann ERROR_INSUFFICIENT_BUFFER werden. In diesem Fall empfängt der Parameter CompressedDataSize die Größe, die der CompressedBuffer benötigen, um den Erfolg für diesen Eingabepuffer zu gewährleisten. Sie können CompressedBufferSize auf Null festlegen, um die Größe des zuzuordnenden Ausgabepuffers zu bestimmen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 8 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile compressapi.h
Bibliothek Cabinet.lib
DLL Cabinet.dll

Weitere Informationen

Komprimierungs-API-Funktionen