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;