确定解压缩器的输出格式

[与此页面关联的功能 视频压缩管理器是一项旧功能。 Microsoft 强烈建议新代码不使用此功能。]

以下示例确定使用 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;