cmTranslateRGBsExt 函数 (icm.h)
将位图从一种定义的格式转换为不同的已定义格式,并定期调用回调函数(如果指定了回调函数),以报告进度并允许调用应用程序终止转换。
语法
BOOL CMTranslateRGBsExt(
HCMTRANSFORM hcmTransform,
LPVOID lpSrcBits,
BMFORMAT bmInput,
DWORD dwWidth,
DWORD dwHeight,
DWORD dwInputStride,
LPVOID lpDestBits,
BMFORMAT bmOutput,
DWORD dwOutputStride,
LPBMCALLBACKFN lpfnCallback,
LPARAM ulCallbackData
);
parameters
hcmTransform
指定要使用的颜色转换。
lpSrcBits
指向要转换的位图的指针。
bmInput
指定输入位图格式。
dwWidth
指定输入位图中每个扫描行的像素数。
dwHeight
指定输入位图中的扫描行数。
dwInputStride
指定从输入位图中一个扫描行的开头到下一个扫描行的开头的字节数。 如果 dwInputStride 设置为零,则 CMM 应假定扫描行已填充为 DWORD 对齐。
lpDestBits
指向要放置转换位图的目标缓冲区。
bmOutput
指定输出位图格式。
dwOutputStride
指定从输入位图中一个扫描行的开头到下一个扫描行的开头的字节数。 如果 dwOutputStride 设置为零,则 CMM 应填充扫描行,使其与 DWORD 对齐。
lpfnCallback
指向 由 CMTranslateRGBsExt 定期调用的应用程序提供的回调函数的指针,以报告进度并允许调用进程取消转换。 (请参阅 ICMProgressProcCallback.)
ulCallbackData
传递回回调函数的数据,例如,用于标识报告进度的转换。
返回值
如果此函数成功,则返回值为 TRUE。
如果此函数失败,则返回值为 FALSE ,CMM 应调用 SetLastError ,将最后一个错误设置为 Winerror.h 中定义的有效错误值。
注解
导出此函数需要每个 CMM。
写入目标缓冲区时,CMM 应确保扫描行填充为 DWORD 对齐。
如果输入和输出格式与颜色转换不兼容,则此函数将失败。
如果输入和输出位图格式均为 3 个通道,每个像素 4 个字节(例如BM_xRGBQUADS),则应保留第四个字节并将其复制到输出缓冲区。
如果回调函数返回零,应取消处理, CMTranslateRGBsExt 应返回零以指示失败;输出缓冲区可以部分填充。
请注意,此函数必须支持就地转换。 也就是说,每当输出的内存占用小于或等于输入的内存占用量时,此函数必须能够转换位图颜色,即使源缓冲区和目标缓冲区相同。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | icm.h |