Training
Learning path
MD-102 Configure profiles for user and devices - Training
This learning path explores Intune device profiles, the benefits of user profiles and how to synchronize profile data across multiple devices.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Overview of the Windows Color System technology.
To develop Windows Color System, you need these headers:
For programming guidance for this technology, see:
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. |
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. |
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. |
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) |
Training
Learning path
MD-102 Configure profiles for user and devices - Training
This learning path explores Intune device profiles, the benefits of user profiles and how to synchronize profile data across multiple devices.