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 |