Important: The information in this document is obsolete and should not be used for new development.
MyCMMGetPS2ColorRenderingIntent
Handles thekCMMGetPS2ColorRenderingIntentrequest by obtaining the rendering intent from the source profile.A CMM may respond to the
kCMMGetPS2ColorRenderingIntentrequest code, but it is not required to do so. The ColorSync Manager sends this request code to your CMM on behalf of an application that called theCMGetPS2ColorRenderingIntentfunction. The ColorSync Manager dispatches this request to the Component Manager, which calls your CMM to service the request. A CMM typically responds to thekCMMGetPS2ColorRenderingIntentrequest code by calling a CMM-defined function (for example,MyCMMGetPS2ColorRenderingIntent) to handle the request.The MyCMMGetPS2ColorRenderingIntent function is a color management module-defined subroutine.
pascal CMError MyCMMGetPS2ColorRenderingIntent( ComponentInstance CMSession, CMProfileRef srcProf, unsigned long flags, CMFlattenUPP proc, void *refCon);
CMSession- A handle to your CMM's storage for the instance of your component associated with the calling application or device driver.
srcProf- A profile reference to the source profile whose header contains the rendering intent.
flags- Reserved for future use.
proc- A pointer to a function supplied by the calling application or device driver. Your
MyCMMGetPS2ColorRenderingIntentfunction calls this function repeatedly as necessary until you have passed all the source profile's rendering intent data to this function.
refCon- A reference constant, containing data specified by the calling application or device driver, that your
MyCMMGetPS2ColorRenderingIntentfunction must pass to theMyColorSyncDataTransferfunction.- function result
- A result code of type CMError. See "Result Codes" (page 3-172) for a list of ColorSync-specific result codes.
DISCUSSION
Only for special cases should a custom CMM need to support this request code. If your CMM supports this function, yourMyCMMGetPS2ColorRenderingIntentfunction must obtain the rendering intent from the source profile whose reference is passed to your function in thesrcProfparameter. The byte stream containing the rendering intent data that your function passes to theMyColorSyncDataTransferfunction is used as the operand to the PostScriptfindRenderingIntentoperator.Your function must allocate a
databuffer in which to pass the rendering intent data to theMyColorSyncDataTransferfunction supplied by the calling application or driver. YourMyCMMGetPS2ColorRenderingIntentfunction must call theMyColorSyncDataTransferfunction repeatedly until you have passed all the data to it.Here is the prototype for the
MyColorSyncDataTransferfunction pointed to by theprocparameter:
pascal OSErr MyColorSyncDataTransfer( long command, long *size, void *data, void *refCon);YourMyCMMGetPS2ColorRenderingIntentfunction communicates with theMyColorSyncDataTransferfunction using a command parameter to identify the operation to perform. Your function should call theMyColorSyncDataTransferfunction first with theopenWriteSpoolcommand to direct theMyColorSyncDataTransferfunction to begin the process of writing the profile color-rendering intent element data you pass it in thedatabuffer. Next, you should call theMyColorSyncDataTransferfunction with thewriteSpoolcommand. After theMyColorSyncDataTransferfunction returns in thesizeparameter the amount of data it actually read, you should call theMyColorSyncDataTransferfunction again with thewriteSpoolcommand, repeating this process as often as necessary until all the color-rendering intent data is transferred. After the data is transferred, you should call theMyColorSyncDataTransferfunction with thecloseSpoolcommand.When your function calls the
MyColorSyncDataTransferfunction, it passes in thedatabuffer the profile data to transfer to theMyColorSyncDataTransferfunction and the size in bytes of the buffered data in thesizeparameter. TheMyColorSyncDataTransferfunction may not always write all the data you pass it in thedatabuffer. Therefore, on return theMyColorSyncDataTransferfunction command passes back in thesizeparameter the number of bytes it actually wrote. YourMyCMMGetPS2ColorRenderingIntentfunction keeps track of the number of bytes of remaining color-rendering intent element data.Each time your
MyCMMGetPS2ColorRenderingIntentfunction calls theMyColorSyncDataTransferfunction, you pass it the reference constant passed to your function in the reference constant parameter.SEE ALSO
For information about PostScript operations, see the PostScript Language Manual, second edition.
 
  
  
 