Determinar el formato de salida de un descompresor
[La característica asociada a esta página, Administrador de compresión de vídeo, es una característica heredada. Microsoft recomienda encarecidamente que el nuevo código no use esta característica.
En el ejemplo siguiente se determina el tamaño del búfer necesario para los datos que especifican el formato de descompresión mediante la macro ICDecompressGetFormatSize , se asigna un búfer del tamaño adecuado mediante la función GlobalAlloc y se recupera la información de formato de descompresión mediante la macro 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);
En el ejemplo siguiente se muestra cómo una aplicación puede usar la macro ICDecompressQuery para determinar si un descompresor puede controlar los formatos de entrada y salida.
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.
}
En el fragmento de código siguiente se muestra cómo obtener la información de la paleta mediante la macro ICDecompressGetPalette .
ICDecompressGetPalette(hIC, lpbiIn, lpbiOut);
// Move up to the palette.
lpPalette = (LPBYTE)lpbiOut + lpbi->biSize;