[This is preliminary documentation and subject to change.]
The CMTranslateRGBsExt function translates a bitmap from one defined format into a different defined format and calls a callback function periodically, if one is specified, to report progress and permit the calling application to terminate the translation.
BOOL WINAPI CMTranslateRGBsExt(
HCMTRANSFORM hcmTransform,
LPVOID lpSrcBits,
BMFORMAT bmInput,
DWORD dwWidth,
DWORD dwHeight,
DWORD dwInputStride,
LPVOID lpDestBits,
BMFORMAT bmOutput,
DWORD dwOutputStride,
LPBMCALLBACKFN lpfnCallback,
ULONG ulCallbackData
);
If this function succeeds, the return value is TRUE.
If this function fails, the return value is FALSE and the CMM should call SetLastError to set the last error to a valid error value defined in Winerror.h.
Every CMM is required to export this function.
When writing into the destination buffer, the CMM should make sure that scan lines are padded to be DWORD-aligned.
If the input and output formats are not compatible with the color transform, this function fails.
If both input and output bitmap formats are 3 channel, 4 bytes per pixel as in the case of BM_xRGBQUADS, the fourth bytes should be preserved and copied to the output buffer.
If the callback function returns zero, processing should be cancelled and CMTranslateRGBsExt should return zero to indicate failure; the output buffer may be partially filled.
Note that this function must support in-place translation. That is, whenever the memory footprint of the output is less than or equal to the memory footprint of the input, this function must be able to translate the bitmap colors even if the source and destination buffers are the same.
Windows NT: Requires version 5.0 or later.
Windows: Requires Windows 98.
Windows CE: Unsupported.
Header: Declared in wingdi.h.
Import Library: Use gdi32.lib.
Color Management Overview, ICM 2.0 Functions, ICMProgressProcCallback, Windows Bitmap Header Structures