KcsEvaluate() takes an additional argument that describes the operation to be performed on the profile. This argument is an operation hint. For example, your application can tell KcsEvaluate() to convert data in the forward direction (KcsOpForward), such as from the scanner to the printer. Data also can be converted in the reverse direction, such as from the monitor to the scanner. The reverse operation (KcsOpReverse), when it is available in a profile, inverts the function performed by KcsOpForward. However, KcsEvaluate()rarely performs an exact inverse, because information is lost when color data is transformed. In other words, if your application performs a KcsOpForward and then a KcsOpReverse of a profile on the same buffer, the result is almost equivalent to what it started with before KcsOpForward. Some quality may be lost.
Only one of these operation hint bits can be set at a time for KcsEvaluate(), unlike general load hints for which any combination can be set at the same time. As part of the
KcsLoadHints data type, the operation hints signify the required set of operations available to use with the profile. By contrast, KcsEvaluate() uses only the single operation that the application wants to perform.
See "Operation Hint Constants" for more information on operation hints.