Windows Color System
Overview of the Windows Color System technology.
To develop Windows Color System, you need these headers:
For programming guidance for this technology, see:
Enumerations
BMFORMAT The values of the BMFORMAT enumerated type are used by several WCS functions to indicate the format that particular bitmaps are in. |
COLORDATATYPE Used by WCS functions to indicate the data type of vector content. |
COLORPROFILESUBTYPE Specifies the subtype of the color profile. |
COLORPROFILETYPE Specifies the type of color profile. |
COLORTYPE The values of the COLORTYPE enumeration are used by several WCS functions. Variables of type COLOR are defined in the color spaces enumerated by the COLORTYPE enumeration. |
WCS_PROFILE_MANAGEMENT_SCOPE Specifies the scope of a profile management operation, such as associating a profile with a device. |
Functions
AssociateColorProfileWithDeviceA Associates a specified color profile with a specified device. (ANSI) |
AssociateColorProfileWithDeviceW Associates a specified color profile with a specified device. (Unicode) |
CheckBitmapBits Checks whether the pixels in a specified bitmap lie within the output gamut of a specified transform. |
CheckColors Determines whether the colors in an array lie within the output gamut of a specified transform. |
CheckColorsInGamut The CheckColorsInGamut function determines whether a specified set of RGB triples lies in the output gamut of a specified device. The RGB triples are interpreted in the input logical color space. |
CloseColorProfile Closes an open profile handle. |
CMCheckColors Determines whether given colors lie within the output gamut of a specified transform. |
CMCheckColorsInGamut Determines whether specified RGB triples lie in the output gamut of a specified transform. |
CMCheckRGBs Checks bitmap colors against an output gamut. |
CMConvertColorNameToIndex Converts color names in a named color space to index numbers in a color profile. |
CMConvertIndexToColorName Transforms indices in a color space to an array of names in a named color space. (CMConvertIndexToColorName) |
CMCreateDeviceLinkProfile Creates a device link profile in the format specified by the International Color Consortium in its ICC Profile Format Specification. |
CMCreateMultiProfileTransform Accepts an array of profiles or a single device link profile and creates a color transform. This transform is a mapping from the color space specified by the first profile to that of the second profile and so on to the last one. |
CMCreateProfile Creates a display color profile from a LOGCOLORSPACEA structure. |
CMCreateProfileW Creates a display color profile from a LOGCOLORSPACEW structure. |
CMCreateTransform Deprecated. There is no replacement API because this one was no longer being used. Developers of alternate CMM modules are not required to implement it. (CMCreateTransform) |
CMCreateTransformExt Creates a color transform that maps from an input LOGCOLORSPACEA to an optional target space and then to an output device, using a set of flags that define how the transform should be created. |
CMCreateTransformExtW Creates a color transform that maps from an input LOGCOLORSPACEW to an optional target space and then to an output device, using a set of flags that define how the transform should be created. |
CMCreateTransformW Deprecated. There is no replacement API because this one was no longer being used. Developers of alternate CMM modules are not required to implement it. (CMCreateTransformW) |
CMDeleteTransform Deletes a specified color transform, and frees any memory associated with it. |
CMGetInfo Retrieves various information about the color management module (CMM). |
CMGetNamedProfileInfo Retrieves information about the specified named color profile. |
CMGetPS2ColorRenderingDictionary CMGetPS2ColorRenderingDictionary and the additional parameters associated with it are to be determined. |
CMGetPS2ColorRenderingIntent Retrieves the PostScript Level 2 color rendering intent from a profile. |
CMGetPS2ColorSpaceArray CMGetPS2ColorSpaceArray and the parameters, returns, and remarks associated with it are to be determined. |
CMIsProfileValid Reports whether the given profile is a valid ICC profile that can be used for color management. |
CMTranslateColors Translates an array of colors from a source color space to a destination color space using a color transform. |
CMTranslateRGB Translates an application-supplied RGBQuad into the device color space. |
CMTranslateRGBs Translates a bitmap from one color space to another using a color transform. |
CMTranslateRGBsExt Translates a bitmap from one defined format into a different defined format and calls a callback function periodically, if one is specified, to report progress and permit the calling application to terminate the translation. |
CMYK The CMYK macro creates a CMYK color value by combining the specified cyan, magenta, yellow, and black values. |
ColorCorrectPalette The ColorCorrectPalette function corrects the entries of a palette using the WCS 1.0 parameters in the specified device context. |
ColorimetricToDeviceColors Returns the appropriate XYZ colors in response to the specified number of colors, channels, device colors and the proprietary plug-in algorithms. (IDeviceModelPlugIn.ColorimetricToDeviceColors) |
ColorimetricToDeviceColorsWithBlack Returns the appropriate device colors in response to the incoming number of colors, channels, black information, Commission Internationale l'Eclairge XYZ (CIEXYZ) colors and the proprietary plug-in algorithms. |
ColorMatchToTarget The ColorMatchToTarget function enables you to preview colors as they would appear on the target device. |
ColorProfileAddDisplayAssociation ColorProfileAddDisplayAssociation associates an installed color profile with a specified display in the given scope. |
ColorProfileGetDisplayDefault ColorProfileGetDisplayDefault gets the default color profile for a given display in the specified scope. |
ColorProfileGetDisplayList ColorProfileGetDisplayList retrieves the list of profiles associated with a given display in the specified scope. |
ColorProfileGetDisplayUserScope ColorProfileGetDisplayUserScope gets the currently selected color profile scope of the provided display - either user or system. |
ColorProfileRemoveDisplayAssociation ColorProfileRemoveDisplayAssociation disassociates an installed color profile from a specified display in the given scope. |
ColorProfileSetDisplayDefaultAssociation ColorProfileSetDisplayDefaultAssociation sets an installed color profile as the default profile for a specified display in the given scope. |
ConvertColorNameToIndex Converts color names in a named color space to index numbers in an International Color Consortium (ICC) color profile. |
ConvertIndexToColorName Transforms indices in a color space to an array of names in a named color space. (ConvertIndexToColorName) |
CreateColorSpaceA The CreateColorSpace function creates a logical color space. (ANSI) |
CreateColorSpaceW The CreateColorSpace function creates a logical color space. (Unicode) |
CreateColorTransformA Creates a color transform that applications can use to perform color management. (ANSI) |
CreateColorTransformW Creates a color transform that applications can use to perform color management. (Unicode) |
CreateDeviceLinkProfile Creates an International Color Consortium (ICC) device link profile from a set of color profiles, using the specified intents. |
CreateMultiProfileTransform Accepts an array of profiles or a single device link profile and creates a color transform that applications can use to perform color mapping. |
CreateProfileFromLogColorSpaceA Converts a logical color space to a device profile. (ANSI) |
CreateProfileFromLogColorSpaceW Converts a logical color space to a device profile. (Unicode) |
DeleteColorSpace The DeleteColorSpace function removes and destroys a specified color space. |
DeleteColorTransform Deletes a given color transform. |
DeviceToColorimetricColors Returns the appropriate XYZ colors in response to the specified number of colors, channels, device colors and the proprietary plug-in algorithms. (IDeviceModelPlugIn.DeviceToColorimetricColors) |
DisassociateColorProfileFromDeviceA Disassociates a specified color profile with a specified device on a specified computer. (ANSI) |
DisassociateColorProfileFromDeviceW Disassociates a specified color profile with a specified device on a specified computer. (Unicode) |
EnumColorProfilesA Enumerates all the profiles satisfying the given enumeration criteria. (ANSI) |
EnumColorProfilesW Enumerates all the profiles satisfying the given enumeration criteria. (Unicode) |
EnumICMProfilesA The EnumICMProfiles function enumerates the different output color profiles that the system supports for a given device context. (ANSI) |
EnumICMProfilesW The EnumICMProfiles function enumerates the different output color profiles that the system supports for a given device context. (Unicode) |
GetCMMInfo Retrieves various information about the color management module (CMM) that created the specified color transform. |
GetColorDirectoryA Retrieves the path of the Windows COLOR directory on a specified machine. (ANSI) |
GetColorDirectoryW Retrieves the path of the Windows COLOR directory on a specified machine. (Unicode) |
GetColorProfileElement Copies data from a specified tagged profile element of a specified color profile into a buffer. |
GetColorProfileElementTag Retrieves the tag name specified by dwIndex in the tag table of a given International Color Consortium (ICC) color profile, where dwIndex is a one-based index into that table. |
GetColorProfileFromHandle Given a handle to an open color profile, the GetColorProfileFromHandle function copies the contents of the profile into a buffer supplied by the application. If the handle is a Windows Color System (WCS) handle, then the DMP is returned and the CAMP and GMMP associated with the HPROFILE are ignored. |
GetColorProfileHeader Retrieves or derives ICC header structure from either ICC color profile or WCS XML profile. Drivers and applications should assume returning TRUE only indicates that a properly structured header is returned. Each tag will still need to be validated independently using either legacy ICM2 APIs or XML schema APIs. |
GetColorSpace The GetColorSpace function retrieves the handle to the input color space from a specified device context. |
GetCountColorProfileElements Retrieves the number of tagged elements in a given color profile. |
GetCValue The GetCValue macro retrieves the cyan color value from a CMYK color value. |
GetDeviceGammaRamp The GetDeviceGammaRamp function gets the gamma ramp on direct color display boards having drivers that support downloadable gamma ramps in hardware. |
GetGamutBoundaryMesh Returns the triangular mesh from the plug-in. This function is used to compute the GamutBoundaryDescription. |
GetGamutBoundaryMeshSize Returns the required data structure sizes for the GetGamutBoundaryMesh function. |
GetICMProfileA The GetICMProfile function retrieves the file name of the current output color profile for a specified device context. (ANSI) |
GetICMProfileW The GetICMProfile function retrieves the file name of the current output color profile for a specified device context. (Unicode) |
GetKValue The GetKValue macro retrieves the black color value from a CMYK color value. |
GetLogColorSpaceA The GetLogColorSpace function retrieves the color space definition identified by a specified handle. (ANSI) |
GetLogColorSpaceW The GetLogColorSpace function retrieves the color space definition identified by a specified handle. (Unicode) |
GetMValue The GetMValue macro retrieves the magenta color value from a CMYK color value. |
GetNamedProfileInfo Retrieves information about the International Color Consortium (ICC) named color profile that is specified in the first parameter. |
GetNeutralAxis The IDeviceModelPlugIn::GetNeutralAxis return the XYZ colorimetry of sample points along the device's neutral axis. |
GetNeutralAxisSize The IDeviceModelPlugIn::GetNeutralAxisSize function returns the number of data points along the neutral axis that are returned by the GetNeutralAxis function. |
GetNumChannels Returns the number of device channels in the parameter pNumChannels. |
GetPrimarySamples Returns the measurement color for the primary sample. |
GetPS2ColorRenderingDictionary Retrieves the PostScript Level 2 color rendering dictionary from the specified ICC color profile. |
GetPS2ColorRenderingIntent Retrieves the PostScript Level 2 color rendering intent from an ICC color profile. |
GetPS2ColorSpaceArray Retrieves the PostScript Level 2 color space array from an ICC color profile. |
GetStandardColorSpaceProfileA Retrieves the color profile registered for the specified standard color space. (ANSI) |
GetStandardColorSpaceProfileW Retrieves the color profile registered for the specified standard color space. (Unicode) |
GetYValue The GetYValue macro retrieves the yellow color value from a CMYK color value. |
ICMENUMPROCA The EnumICMProfilesProcCallback callback is an application-defined callback function that processes color profile data from EnumICMProfiles . (ANSI) |
ICMENUMPROCW The EnumICMProfilesProcCallback callback is an application-defined callback function that processes color profile data from EnumICMProfiles . (Unicode) |
Initialize Takes a pointer to a Stream that contains the whole device model plug-in as input, and initializes any internal parameters required by the plug-in. |
Initialize Initializes a gamut map model profile (GMMP) by using the specified source and destination gamut boundary descriptions and optional source and destination device model plug-ins. |
InstallColorProfileA Installs a given profile for use on a specified machine. The profile is also copied to the COLOR directory. (ANSI) |
InstallColorProfileW Installs a given profile for use on a specified machine. The profile is also copied to the COLOR directory. (Unicode) |
IsColorProfileTagPresent Reports whether a specified International Color Consortium (ICC) tag is present in the specified color profile. |
IsColorProfileValid Allows you to determine whether the specified profile is a valid International Color Consortium (ICC) profile, or a valid Windows Color System (WCS) profile handle that can be used for color management. |
OpenColorProfileA Creates a handle to a specified color profile. The handle can then be used in other profile management functions. (ANSI) |
OpenColorProfileW Creates a handle to a specified color profile. The handle can then be used in other profile management functions. (Unicode) |
PBMCALLBACKFN TBD (PBMCALLBACKFN) |
PCMSCALLBACKA *PCMSCALLBACKA* (or ApplyCallbackFunction) is a callback function that you implement that updates the WCS configuration data while the dialog box displayed by the SetupColorMatchingW function is executing. |
PCMSCALLBACKW *PCMSCALLBACKW* (or ApplyCallbackFunction) is a callback function that you implement that updates the WCS configuration data while the dialog box displayed by the SetupColorMatchingW function is executing. |
RegisterCMMA Associates a specified identification value with the specified color management module dynamic link library (CMM DLL). When this ID appears in a color profile, Windows can then locate the corresponding CMM so as to create a transform. (ANSI) |
RegisterCMMW Associates a specified identification value with the specified color management module dynamic link library (CMM DLL). When this ID appears in a color profile, Windows can then locate the corresponding CMM so as to create a transform. (Unicode) |
SelectCMM Allows you to select the preferred color management module (CMM) to use. |
SetColorProfileElement Sets the element data for a tagged profile element in an ICC color profile. |
SetColorProfileElementReference Creates in a specified ICC color profile a new tag that references the same data as an existing tag. |
SetColorProfileElementSize Sets the size of a tagged element in an ICC color profile. |
SetColorProfileHeader Sets the header data in a specified ICC color profile. |
SetColorSpace The SetColorSpace function defines the input color space for a given device context. |
SetDeviceGammaRamp The SetDeviceGammaRamp function sets the gamma ramp on direct color display boards having drivers that support downloadable gamma ramps in hardware. |
SetICMMode The SetICMMode function causes Image Color Management to be enabled, disabled, or queried on a given device context (DC). |
SetICMProfileA The SetICMProfile function sets a specified color profile as the output profile for a specified device context (DC). (ANSI) |
SetICMProfileW The SetICMProfile function sets a specified color profile as the output profile for a specified device context (DC). (Unicode) |
SetStandardColorSpaceProfileA Registers a specified profile for a given standard color space. The profile can be queried using GetStandardColorSpaceProfileW. (ANSI) |
SetStandardColorSpaceProfileW Registers a specified profile for a given standard color space. The profile can be queried using GetStandardColorSpaceProfileW. (Unicode) |
SetTransformDeviceModelInfo Provides the plug-in with parameters to determine where in the transform sequence the specific plug-in occurs. |
SetupColorMatchingA Creates a Color Management dialog box that lets the user choose whether to enable color management and, if so, provides control over the color profiles used and over the rendering intent. (ANSI) |
SetupColorMatchingW Creates a Color Management dialog box that lets the user choose whether to enable color management and, if so, provides control over the color profiles used and over the rendering intent. (Unicode) |
SourceToDestinationAppearanceColors Returns the appropriate gamut-mapped appearance colors in response to the specified number of colors and the CIEJCh colors. |
TranslateBitmapBits Translates the colors of a bitmap having a defined format so as to produce another bitmap in a requested format. |
TranslateColors Translates an array of colors from the source color space to the destination color space as defined by a color transform. |
UninstallColorProfileA Removes a specified color profile from a specified computer. Associated files are optionally deleted from the system. (ANSI) |
UninstallColorProfileW Removes a specified color profile from a specified computer. Associated files are optionally deleted from the system. (Unicode) |
UnregisterCMMA Dissociates a specified ID value from a given color management module dynamic-link library (CMM DLL). (ANSI) |
UnregisterCMMW Dissociates a specified ID value from a given color management module dynamic-link library (CMM DLL). (Unicode) |
UpdateICMRegKeyA The UpdateICMRegKey function manages color profiles and Color Management Modules in the system. (ANSI) |
UpdateICMRegKeyW The UpdateICMRegKey function manages color profiles and Color Management Modules in the system. (Unicode) |
WcsAssociateColorProfileWithDevice WcsAssociateColorProfileWithDevice associates a specified WCS color profile with a specified device. |
WcsCheckColors Determines whether the colors in an array are within the output gamut of a specified WCS color transform. |
WcsCreateIccProfile Converts a WCS profile into an International Color Consortium (ICC) profile. |
WcsDisassociateColorProfileFromDevice Disassociates a specified WCS color profile from a specified device on a computer. |
WcsEnumColorProfiles Enumerates all color profiles that satisfy the enumeration criteria in the specified profile management scope. |
WcsEnumColorProfilesSize Returns the size, in bytes, of the buffer that is required by the WcsEnumColorProfiles function to enumerate color profiles. |
WcsGetCalibrationManagementState Determines whether system management of the display calibration state is enabled. |
WcsGetDefaultColorProfile Retrieves the default color profile for a device, or for a device-independent default if the device is not specified. |
WcsGetDefaultColorProfileSize Returns the size, in bytes, of the default color profile name (including the NULL terminator), for a device. |
WcsGetDefaultRenderingIntent Retrieves the default rendering intent in the specified profile management scope. |
WcsGetUsePerUserProfiles Determines whether the user chose to use a per-user profile association list for the specified device. |
WcsOpenColorProfileA Creates a handle to a specified color profile. (ANSI) |
WcsOpenColorProfileW Creates a handle to a specified color profile. (Unicode) |
WcsSetCalibrationManagementState Enables or disables system management of the display calibration state. |
WcsSetDefaultColorProfile Sets the default color profile name for the specified profile type in the specified profile management scope. |
WcsSetDefaultRenderingIntent Sets the default rendering intent in the specified profile management scope. |
WcsSetUsePerUserProfiles Enables a user to specify whether or not to use a per-user profile association list for the specified device. |
WcsTranslateColors Translates an array of colors from the source color space to the destination color space as defined by a color transform. |
Interfaces
IDeviceModelPlugIn Describes the methods that are defined for the IDeviceModelPlugIn Component Object Model (COM) interface. |
IGamutMapModelPlugIn Describes the methods that are defined for the IGamutMapModelPlugIn Component Object Model (COM) interface. |
Structures
BlackInformation Contains information for device models that have a black color channel. |
CIEXYZ The CIEXYZ structure contains the x,y, and z coordinates of a specific color in a specified color space. |
CIEXYZTRIPLE The CIEXYZTRIPLE structure contains the x,y, and z coordinates of the three colors that correspond to the red, green, and blue endpoints for a specified logical color space. |
CMYKCOLOR Description of the CMYKCOLOR structure. |
COLOR Description of the COLOR union. |
COLORMATCHSETUPA The COLORMATCHSETUP structure contains information that the SetupColorMatchingW function uses to initialize the ColorManagement dialog box. (ANSI) |
COLORMATCHSETUPW The COLORMATCHSETUP structure contains information that the SetupColorMatchingW function uses to initialize the ColorManagement dialog box. (Unicode) |
ENUMTYPEA Contains information that defines the profile enumeration constraints. (ANSI) |
ENUMTYPEW Contains information that defines the profile enumeration constraints. (Unicode) |
GamutBoundaryDescription Defines a gamut boundary. |
GamutShell Contains information that defines a gamut shell, which is represented by a list of indexed triangles. The vertex buffer contains the vertices data. |
GamutShellTriangle Contains three vertex indices for accessing a vertex buffer. |
GENERIC3CHANNEL TBD (GENERIC3CHANNEL) |
GRAYCOLOR Description of the GRAYCOLOR structure. |
HiFiCOLOR Description of the HiFiCOLOR structure. |
JabColorF JabColorF (wcsplugin.h) is a structure. |
JChColorF JChColorF (wcsplugin.h) is a structure. |
LabCOLOR TBD (LabCOLOR) |
LOGCOLORSPACEA The LOGCOLORSPACE structure contains information that defines a logical color space. (ANSI) |
LOGCOLORSPACEW The LOGCOLORSPACE structure contains information that defines a logical color space. (Unicode) |
NAMED_PROFILE_INFO The NAMED_PROFILE_INFO structure is used to store information about a named color profile. |
NAMEDCOLOR TBD (NAMEDCOLOR) |
PrimaryJabColors This structure contains eight primary colors in Jab coordinates. |
PrimaryXYZColors This structure contains eight primary colors in XYZ coordinates. |
PROFILE Contains information that defines a color profile. |
PROFILEHEADER Contains information that describes the contents of a device profile file. This header occurs at the beginning of a device profile file. |
RGBCOLOR TBD (RGBCOLOR) |
XYZCOLOR TBD (XYZCOLOR) |
XYZColorF XYZColorF (wcsplugin.h) is a structure. |
YxyCOLOR TBD (YxyCOLOR) |