确定压缩器输出格式
[与此页面关联的功能 “视频压缩管理器”是一项旧功能。 Microsoft 强烈建议新代码不使用此功能。]
以下示例使用 ICCompressGetFormat 大小宏来确定指定压缩格式的数据所需的缓冲区大小,使用 GlobalAlloc 函数分配适当大小的缓冲区,并使用 ICCompressGetFormat 宏检索压缩格式信息。
LPBITMAPINFOHEADER lpbiIn, lpbiOut;
// *lpbiIn must be initialized to the input format.
dwFormatSize = ICCompressGetFormatSize(hIC, lpbiIn);
h = GlobalAlloc(GHND, dwFormatSize);
lpbiOut = (LPBITMAPINFOHEADER)GlobalLock(h);
ICCompressGetFormat(hIC, lpbiIn, lpbiOut);
以下示例使用 ICCompressQuery 宏来确定压缩器是否可以处理输入和输出格式。
LPBITMAPINFOHEADER lpbiIn, lpbiOut;
// Both *lpbiIn and *lpbiOut must be initialized to the respective
// formats.
if (ICCompressQuery(hIC, lpbiIn, lpbiOut) == ICERR_OK)
{
// Format is supported; use the compressor.
}
以下示例使用 ICCompressGetSize 宏来确定缓冲区大小,并使用 GlobalAlloc 分配该大小的缓冲区。
// Find the worst-case buffer size.
dwCompressBufferSize = ICCompressGetSize(hIC, lpbiIn, lpbiOut);
// Allocate a buffer and get lpOutput to point to it.
h = GlobalAlloc(GHND, dwCompressBufferSize);
lpOutput = (LPVOID)GlobalLock(h);