Determinando o formato de saída de um descompactador
[O recurso associado a esta página, Gerenciador de Compactação de Vídeo, é um recurso herdado. A Microsoft recomenda fortemente que o novo código não use esse recurso.]
O exemplo a seguir determina o tamanho do buffer necessário para os dados que especificam o formato de descompactação usando a macro ICDecompressGetFormatSize , aloca um buffer do tamanho apropriado usando a função GlobalAlloc e recupera as informações de formato de descompactação usando a 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);
O exemplo a seguir mostra como um aplicativo pode usar a macro ICDecompressQuery para determinar se um descompactador pode manipular os formatos de entrada e saída.
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.
}
O fragmento de código a seguir mostra como obter as informações da paleta usando a macro ICDecompressGetPalette .
ICDecompressGetPalette(hIC, lpbiIn, lpbiOut);
// Move up to the palette.
lpPalette = (LPBYTE)lpbiOut + lpbi->biSize;