Compress 関数 (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

圧縮する情報のブロックを格納します。 非圧縮ブロックのサイズ (バイト単位) は、 CompressedDataSize によって指定されます。

[in] UncompressedDataSize

圧縮されていない情報のサイズ (バイト単位)。

[out] CompressedBuffer

圧縮された情報を受け取るバッファー。 バッファーの最大サイズ (バイト単位) は、 CompressedBufferSize によって指定されます。

[in] CompressedBufferSize

圧縮された情報を受け取るバッファーの最大サイズ (バイト単位)。

[out] CompressedDataSize

受信した圧縮情報の実際のサイズ (バイト単位)。

戻り値

関数が成功すると、戻り値は 0 以外になります。 関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

何らかの内部的な理由で圧縮アルゴリズムが失敗した場合、 GetLastError からの エラーが ERROR_FUNCTION_FAILEDされる可能性があります。 システムで圧縮アルゴリズム ハンドルが見つからない場合は、エラーを ERROR_INVALID_HANDLEできます。 出力バッファーが小さすぎて圧縮データを保持できない場合は、エラーが ERROR_INSUFFICIENT_BUFFER可能性があります。

CompressedBuffer 出力バッファーが小さすぎて圧縮データを保持できない場合、関数は失敗し、GetLastError からのエラーをERROR_INSUFFICIENT_BUFFERできます。 この場合、 CompressedDataSize パラメーターは、その入力バッファーの成功を保証するために CompressedBuffer が必要なサイズで受け取ります。 CompressedBufferSize を 0 に設定して、割り当てる出力バッファーのサイズを決定できます。

要件

   
サポートされている最小のクライアント Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー compressapi.h
Library Cabinet.lib
[DLL] Cabinet.dll

関連項目

圧縮 API 関数