コンプレッサーの出力フォーマットの決定
[このページに関連付けられている機能 Video Compression Manager は、従来の機能です。 Microsoft では、新しいコードではこの機能を使用しないことを強くお勧めします。
次の例では、 ICCompressGetFormat サイズ マクロを使用して、圧縮形式を指定するデータに必要なバッファー サイズを決定し、 GlobalAlloc 関数を使用して適切なサイズのバッファーを割り当て、 ICCompressGetFormat マクロを使用して圧縮形式情報を取得します。
LPBITMAPINFOHEADER lpbiIn, lpbiOut;
// *lpbiIn must be initialized to the input format.
dwFormatSize = ICCompressGetFormatSize(hIC, lpbiIn);
h = GlobalAlloc(GHND, dwFormatSize);
lpbiOut = (LPBITMAPINFOHEADER)GlobalLock(h);
ICCompressGetFormat(hIC, lpbiIn, lpbiOut);
次の例では 、ICCompressQuery マクロを使用して、コンプレッサーが入力および出力形式を処理できるかどうかを判断します。
LPBITMAPINFOHEADER lpbiIn, lpbiOut;
// Both *lpbiIn and *lpbiOut must be initialized to the respective
// formats.
if (ICCompressQuery(hIC, lpbiIn, lpbiOut) == ICERR_OK)
{
// Format is supported; use the compressor.
}
次の例では 、ICCompressGetSize マクロを使用してバッファー サイズを決定し、 GlobalAlloc を使用してそのサイズのバッファーを割り当てます。
// Find the worst-case buffer size.
dwCompressBufferSize = ICCompressGetSize(hIC, lpbiIn, lpbiOut);
// Allocate a buffer and get lpOutput to point to it.
h = GlobalAlloc(GHND, dwCompressBufferSize);
lpOutput = (LPVOID)GlobalLock(h);