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 |