共用方式為


壓縮函式 (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

另請參閱

壓縮 API 函式