Condividi tramite


Determinazione del formato di output di un decompressore

[La funzionalità associata a questa pagina, Gestione compressione video, è una funzionalità legacy. Microsoft consiglia vivamente che il nuovo codice non usi questa funzionalità.

Nell'esempio seguente viene determinata la dimensione del buffer necessaria per i dati che specificano il formato di decompressione usando la macro ICDecompressGetFormatSize , alloca un buffer delle dimensioni appropriate usando la funzione GlobalAlloc e recupera le informazioni sul formato di decompressione usando 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); 
 

Nell'esempio seguente viene illustrato come un'applicazione può usare la macro ICDecompressQuery per determinare se un decompressore può gestire i formati di input e output.

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. 
    
} 
 

Il frammento di codice seguente illustra come ottenere le informazioni sulla tavolozza usando la macro ICDecompressGetPalette .

ICDecompressGetPalette(hIC, lpbiIn, lpbiOut); 
 
// Move up to the palette. 
lpPalette = (LPBYTE)lpbiOut + lpbi->biSize;