圧縮解除器の出力形式の決定
[このページに関連付けられている機能 Video Compression Manager は、従来の機能です。 Microsoft では、新しいコードではこの機能を使用しないことを強くお勧めします。
次の例では、 ICDecompressGetFormatSize マクロを使用して圧縮解除形式を指定するデータに必要なバッファー サイズを決定し、 GlobalAlloc 関数を使用して適切なサイズのバッファーを割り当て、 ICDecompressGetFormat マクロを使用して圧縮解除形式の情報を取得します。
LPBITMAPINFOHEADER lpbiIn, lpbiOut;
// Assume *lpbiIn points to the input (compressed) format.
dwFormatSize = ICDecompressGetFormatSize(hIC, lpbiIn);
h = GlobalAlloc(GHND, dwFormatSize);
lpbiOut = (LPBITMAPINFOHEADER)GlobalLock(h);
ICDecompressGetFormat(hIC, lpbiIn, lpbiOut);
次の例は、アプリケーションで ICDecompressQuery マクロを使用して、圧縮解除プログラムが入力形式と出力形式を処理できるかどうかを判断する方法を示しています。
LPBITMAPINFOHEADER lpbiIn, lpbiOut;
// Assume *lpbiIn & *lpbiOut are initialized to the respective
// formats.
if (ICDecompressQuery(hIC, lpbiIn, lpbiOut) == ICERR_OK)
{
// Format is supported - use the decompressor.
}
次のコード フラグメントは、 ICDecompressGetPalette マクロを使用してパレット情報を取得する方法を示しています。
ICDecompressGetPalette(hIC, lpbiIn, lpbiOut);
// Move up to the palette.
lpPalette = (LPBYTE)lpbiOut + lpbi->biSize;