The following example shows you how to use the entry points when creating a KcsProfileFormat derivative.
extern long
KcsDLOpenPfmtCount = 0; /* Global initialization - constructor can be used */
KcsStatus KcsInitPfmt(long libMajor, long libMinor, long *myMajor, long
*myMinor) { // Set up the return values *myMajor = KCS_MAJOR_VERSION;
*myMinor = KCS_MINOR_VERSION; //Check the major version if (libMajor !=
KCS_MAJOR_VERSION) return (KCS_CMM_MAJOR_VERSION_MISMATCH); //Currently,
if minor version of library is less than the KCMS // minor version, return
an error. if (libMinor != KCS_MINOR_VERSION) return
(KCS_CMM_MINOR_VERSION_MISMATCH); //Library guarantees if your minor version
number is greater than //KCMS minor version number, it will handle it. No
more init. return(KCS_SUCCESS); } /* Clean up global initialization */
KcsStatus KcsCleanupPfmt() { KcsStatus sStat; return(KCS_SUCCESS); } /*
Create a profile format derivative based on information passed in, * there is
profile data associated with it. Corresponds to the * KcsCreateProfile() API
call. */ KcsProfileFormat * KcsCreatePfmtBlnk(KcsStatus *aStat, KcsId aCmmId,
KcsVersion aCmmVersion, KcsId aProfId, KcsVersion aProfileVersion) {
//Create the new derivative return(new KcsProfileFormatInterColor3_0(aStat,
aCmmId, aCmmVersion, aProfId, aProfileVersion)); } /* Create a profile
format derivative using the supplied IO. * Corresponds to the
KcsLoadProfile() API call. */ KcsProfileFormat * KcsCreatePfmt(KcsStatus
*aStat, KcsIO *aIO) { //Create the new derivative return(new
KcsProfileFormatInterColor3_0(aStat, aIO));
}