Define the following global variables:
LColor clr;CONVERSION_PARAMS params;BYTE RGBColor[3];BYTE ColorSpace[4];
Set the conversion options by filling a CONVERSION_PARAMS structure:
memset(¶ms, 0, sizeof(CONVERSION_PARAMS));params.uStructSize = sizeof(CONVERSION_PARAMS);params.nMethod = USE_CUSTOM_ICC;params.nActiveMethod = USE_CUSTOM_ICC;params.pWpoint = (LPWHITEPOINT)malloc(sizeof(WHITEPOINT));params.pWpoint->nWhitePoint = CIELAB_D50;params.pMemInputProfile = NULL;params.pMemOutputProfile = NULL;lstrcpy(params.sInputProfile, TEXT("C:\\MyCMYKProfile.ICM"));lstrcpy(params.sOutputProfile, TEXT("C:\\MyRGBProfile.ICM"));
Initialize the color conversion object with LColor::Initialize():
clr.Initialize(CCS_CMYK, CCS_RGB, ¶ms); Now, do the conversion:
ColorSpace[0] = 100;ColorSpace[1] = 100;ColorSpace[2] = 100;ColorSpace[3] = 100;clr.Convert(ColorSpace, RGBColor, 1, 1, 0, 0);
At the end, free the color conversion object:
clr.Free();