Поделиться через


Определение формата вывода распаковки

[Функция, связанная с этой страницей, Диспетчер сжатия видео, является устаревшей функцией. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код не использовал эту функцию.]

В следующем примере определяется размер буфера, необходимый для данных, определяющих формат распаковки с помощью макроса ICDecompressGetFormatSize , выделяется буфер соответствующего размера с помощью функции GlobalAlloc и извлекается информация о формате распаковки с помощью макроса 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); 
 

В следующем примере показано, как приложение может использовать макрос ICDecompressQuery , чтобы определить, может ли декомпрессор обрабатывать форматы входных и выходных данных.

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

В следующем фрагменте кода показано, как получить сведения о палитре с помощью макроса ICDecompressGetPalette .

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