壓縮函式 (compressapi.h)
接受資訊區塊並加以壓縮。
語法
BOOL Compress(
[in] COMPRESSOR_HANDLE CompressorHandle,
[in] LPCVOID UncompressedData,
[in] SIZE_T UncompressedDataSize,
[out] PVOID CompressedBuffer,
[in] SIZE_T CompressedBufferSize,
[out] PSIZE_T CompressedDataSize
);
參數
[in] CompressorHandle
CreateCompressor所傳回的壓縮器控制碼。
[in] UncompressedData
包含要壓縮的資訊區塊。 UncompressedDataSize會提供未壓縮區塊位元組的大小。
[in] UncompressedDataSize
未壓縮資訊的位元組大小。
[out] CompressedBuffer
接收壓縮資訊的緩衝區。 Buffer 的位元組大小上限是由 CompressedBufferSize所指定。
[in] CompressedBufferSize
接收壓縮資訊的緩衝區位元組大小上限。
[out] CompressedDataSize
所接收壓縮資訊的實際位元組大小。
傳回值
如果函式成功,則傳回非零的值。 如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
如果壓縮演算法因某些內部原因而失敗, 則 GetLastError 的錯誤可能會 ERROR_FUNCTION_FAILED。 如果系統找不到壓縮演算法控制碼,則可以 ERROR_INVALID_HANDLE錯誤。 如果輸出緩衝區太小而無法保存壓縮的資料,則錯誤可能會 ERROR_INSUFFICIENT_BUFFER。
如果 CompressedBuffer 輸出緩衝區太小而無法保存壓縮的資料,則函式會失敗,而且 GetLastError 的錯誤可以 ERROR_INSUFFICIENT_BUFFER。 在此情況下, CompressedDataSize 參數會以 CompressedBuffer 的大小接收,以確保該輸入緩衝區成功。 您可以將 CompressedBufferSize 設定為零,以決定要配置的輸出緩衝區大小。
規格需求
最低支援的用戶端 | Windows 8 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | compressapi.h |
程式庫 | Cabinet.lib |
Dll | Cabinet.dll |