L_GetICCTagData

#include "ltkrn.h"
#include "ltclr.h"

L_LTCLR_API L_INT L_GetICCTagData(pICCProfile, pTagData, uTagSignature)

pICCPROFILEEXT pICCProfile;

/* pointer to a structure */

L_UCHAR * pTagData;

/* pointer to a buffer */

L_UINT32 uTagSignature;

/* a value that indicates the tag signature */

Gets a tag from the ICC profile.

Parameter

Description

pICCProfile

Pointer to the ICCPROFILEEXT structure that contains the tag to get.

pTagData

Pointer to a buffer to be updated with the tag data.

uTagSignature

A value that indicates the signature of the tag to get from the ICC profile. Possible values include private tags and the values listed in ICCTAGSIGNATURE. Signatures of private tags must be registered with the ICC.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

The pTagData pointer should point to a structure of the same type as the tag type to be retrieved by this function. In case of a private tag type, the pTagData must point to a structure of type ICCTAG_UNKNOWN_TYPE.

If only the tag is private, this function returns ERROR_ICC_UNKNOWN_TAG. If only the tag type is private, this function returns ERROR_ICC_UNKNOWN_TYPE. If both the tag and the type are private, this function returns ERROR_ICC_UNKNOWN_TAG_AND_TYPE. In all three of these cases however, the pTagData parameter is updated correctly with the tag in the ICC profile.

Required DLLs and Libraries

LTCLR

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Windows 95 / 98 / Me, Windows 2000 / XP.

See Also

Functions:

L_InitICCProfile, L_FreeICCProfile, L_SaveICCProfile, L_LoadICCProfile, L_FillICCProfileStructure, L_FillICCProfileFromICCFile, L_InitICCHeader, L_SetICCCMMType, L_SetICCDeviceClass, L_SetICCColorSpace, L_SetICCConnectionSpace, L_SetICCPrimaryPlatform, L_SetICCFlags, L_SetICCDevManufacturer, L_SetICCDevModel, L_SetICCDeviceAttributes, L_SetICCRenderingIntent, L_SetICCCreator, L_SetICCDateTime, L_SetICCProfileId, L_2bFixed2bNumberToDouble, L_U8Fixed8NumberToDouble, L_DoubleToU8Fixed8Number, L_DoubleTo2bFixed2bNumber, L_SetICCTagData, L_CreateICCTagData, L_DeleteICCTag, L_GenerateICCFile, L_GenerateICCPointer, L_GetICCTagTypeSig, L_FreeICCTagType, L_ConvertParametricCurveTypeToBuffer, L_ConvertCurveTypeToBuffer, L_ConvertCLUTToBuffer, L_GetParametricCurveNumberOfParameters

Topics:

Using ICC Profile Functions

 

ICC Profile Functions: Tags

Example

This example will load an ICC profile, get a tag, and then free the ICCPROFILEEXT structure.

 L_INT GetICCTagDataExample(pICCPROFILEEXT pIccProfile)
{
   L_INT nRet;
   ICCTAG_XYZ_TYPE iccXyzType;

   // Get Calibration Date and Time tag
   nRet = L_GetICCTagData(pIccProfile, (L_UCHAR*) &iccXyzType, MediaWhitePointTag);
   if(nRet != SUCCESS &&
      nRet != ERROR_ICC_UNKNOWN_TAG_AND_TYPE &&
      nRet != ERROR_ICC_UNKNOWN_TAG &&
      nRet != ERROR_ICC_UNKNOWN_TYPE)
      return nRet;

   L_FreeICCTagType((L_UCHAR*) &iccXyzType, XYZTypeSig);

   return SUCCESS;
}