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));
}