CMCreateProfile function (icm.h)

[CMCreateProfile is no longer available for use as of Windows Vista.]

Creates a display color profile from a LOGCOLORSPACEA structure.


BOOL CMCreateProfile(
  LPDEVCHARACTER   *lpProfileData



Pointer to a color logical space, of which the lcsFilename member will be NULL.


Pointer to a pointer to a buffer. If successful the function allocates and fills this buffer. It is the calling application's responsibility to free this buffer when it is no longer needed.

Return value

Beginning with Windows Vista, the default CMM (Icm32.dll) will return FALSE and GetLastError will report ERROR_NOT_SUPPORTED.

Windows Server 2003, Windows XP and Windows 2000:

If this function succeeds, the return value is TRUE.

If this function fails, the return value is FALSE. Call GetLastError to retrieve the error.


Beginning with Windows Vista, CMM Implementors are no longer required to implement this method.

Windows Server 2003, Windows XP and Windows 2000:

The Unicode version of this function is CMCreateProfileW.

Only the Windows default CMM is required to export this function; it is optional for all other CMMs.

If a CMM does not support CMCreateProfile, Windows uses the default CMM to create the profile.

The CMM should set all header fields to sensible defaults. This profile should be usable as the input profile in a transform.

The calling application must free the buffer allocated by this function and pointed to by the lpProfileData parameter. Use GlobalFree to free the buffer.


Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Header icm.h

See also