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;