COLORMATCHSETUPW structure (icm.h)

The COLORMATCHSETUP structure contains information that the SetupColorMatchingW function uses to initialize the ColorManagement dialog box. After the user closes the dialog box, SetupColorMatching returns information about the user's selection in this structure.

Syntax

typedef struct _tagCOLORMATCHSETUPW {
  DWORD         dwSize;
  DWORD         dwVersion;
  DWORD         dwFlags;
  HWND          hwndOwner;
  PCWSTR        pSourceName;
  PCWSTR        pDisplayName;
  PCWSTR        pPrinterName;
  DWORD         dwRenderIntent;
  DWORD         dwProofingIntent;
  PWSTR         pMonitorProfile;
  DWORD         ccMonitorProfile;
  PWSTR         pPrinterProfile;
  DWORD         ccPrinterProfile;
  PWSTR         pTargetProfile;
  DWORD         ccTargetProfile;
  DLGPROC       lpfnHook;
  LPARAM        lParam;
  PCMSCALLBACKW lpfnApplyCallback;
  LPARAM        lParamApplyCallback;
} COLORMATCHSETUPW, *PCOLORMATCHSETUPW, *LPCOLORMATCHSETUPW;

Members

dwSize

Size of the structure. Should be set to sizeof ( COLORMATCHSETUP ).

dwVersion

Version of the COLORMATCHSETUP structure. This should be set to COLOR_MATCH_VERSION.

dwFlags

A set of bit flags used to initialize the dialog box. If set to 0 on entry, all controls assume their default states.

When the dialog box returns, these flags are set to indicate the user's input.

This member can be set using a combination of the following flags.

Flag Meaning
CMS_DISABLEICM If set on entry, this flag indicates that the "Enable Color Management" check box is cleared, disabling all other controls. If set on exit, it means that the user does not wish color management performed.
CMS_ENABLEPROOFING If set on entry, this flag indicates that the Proofing controls are to be enabled, and the Proofing check box is checked. If set on exit, it means that the user wishes to perform color management for a different target device than the selected printer.
CMS_SETRENDERINTENT If set on entry, this flag indicates that the dwRenderIntent member contains the value to use to initialize the Rendering Intent control. Otherwise, the control defaults to Picture rendering. This flag is set on exit if WCS is enabled.
CMS_SETPROOFINTENT Ignored unless CMS_ENABLEPROOFING is also set. If set on entry, and CMS_ENABLEPROOFING is also set, this flag indicates that the dwProofingIntent member is to be used to initialize the Target Rendering Intent control. Otherwise, the control defaults to Picture rendering. This flag is set on exit if proofing is enabled.
CMS_SETMONITORPROFILE If set on entry, this flag indicates that the color management profile named in the pMonitorProfile member is to be the initial selection in the monitor profile control. If the specified profile is not associated with the monitor, this flag is ignored, and the default profile for the monitor is used.
CMS_SETPRINTERPROFILE If set on entry, this flag indicates that the color management profile named in the pPrinterProfile member is to be the initial selection in the printer profile control. If the specified profile is not associated with the printer, this flag is ignored, and the default profile for the printer is used.
CMS_SETTARGETPROFILE If set on entry, this flag indicates that the color profile named in the pTargetProfile member is to be the initial selection in the target profile control. If the specified profile is not installed, this flag is ignored, and the default profile for the printer is used. If the printer has no default profile, then the first profile in alphabetical order will be displayed.
CMS_USEHOOK This flag specifies that the lpfnHook member contains the address of a hook procedure, and the lParam member contains a value to be passed to the hook procedure when the WM_INITDIALOG message is sent.
CMS_MONITOROVERFLOW This flag is set on exit if color management is to be enabled and the buffer size given in ccMonitorProfile is insufficient for the selected profile name. GetLastError returns ERROR_INSUFFICIENT_BUFFER in such a case.
CMS_PRINTERROVERFLOW This flag is set on exit if color management is to be enabled and the buffer size given in ccPrinterProfile is insufficient for the selected profile name. GetLastError returns ERROR_INSUFFICIENT_BUFFER in such a case.
CMS_TARGETOVERFLOW This flag is set on exit if proofing is to be enabled and the buffer size given in ccTargetProfile is insufficient for the selected profile name. GetLastError returns ERROR_INSUFFICIENT_BUFFER in such a case.
CMS_USEAPPLYCALLBACK If set on entry, this flag indicates that the SetupColorMatching function should call the function PCMSCALLBACKW. The address of the callback function is contained in lpfnApplyCallback.
CMS_USEDESCRIPTION If set on entry, this flag instructs the SetupColorMatching function to retrieve the profile description contained in the profile description tags (See ICC Profile Format Specification v3.4). It will insert them into the Monitor Profile, Printer Profile, Emulated Device Profile edit boxes in the Color Management common dialog box.

hwndOwner

The window handle to the owner of the dialog box, or NULL if the dialog box has no owner.

pSourceName

Pointer to an application-specified string which describes the source profile of the item for which color management is to be performed. If this is NULL, the Image Source control displays the name of the Windows default color profile.

pDisplayName

Points to a string naming the monitor to be used for color management. If this is not the name of a valid monitor, the first enumerated monitor is used.

pPrinterName

Points to a string naming the printer on which the image is to be rendered. If this is not a valid printer name, the default printer is used and named in the dialog.

dwRenderIntent

The type of color management desired. Valid values are:

INTENT_PERCEPTUAL

INTENT_SATURATION

INTENT_RELATIVE_COLORIMETRIC

INTENT_ABSOLUTE_COLORIMETRIC

For more information, see Rendering intents.

dwProofingIntent

The type of color management desired for the proofed image. Valid values are:

INTENT_PERCEPTUAL

INTENT_SATURATION

INTENT_RELATIVE_COLORIMETRIC

INTENT_ABSOLUTE_COLORIMETRIC

For more information, see Rendering intents.

pMonitorProfile

Pointer to a buffer in which to place the name of the user-selected monitor profile. If the CMS_SETMONITORPROFILE flag is used, this flag can also be used to select a profile other than the monitor default when the dialog is first displayed.

ccMonitorProfile

The size of the buffer pointed to by the pMonitorProfile member, in characters. If the buffer is not large enough to hold the selected name, the name is truncated to this size, and ERROR_INSUFFICIENT_BUFFER is returned. A buffer of MAX_PATH size always works.

pPrinterProfile

Points to a buffer in which to place the name of the user-selected printer profile. If the CMS_SETPRINTERPROFILE flag is used, this flag can also be used to select a profile other than the printer default when the dialog is first displayed.

ccPrinterProfile

The size of the buffer pointed to by the pPrinterProfile member, in characters. If the buffer is not large enough to hold the selected name, the name is truncated to this size, and ERROR_INSUFFICIENT_BUFFER is returned. A buffer of MAX_PATH size always works.

pTargetProfile

Points to a buffer in which to place the name of the user-selected target profile for proofing. If the CMS_SETTARGETPROFILE flag is used, this flag can also be used to select a profile other than the printer default when the dialog is first displayed.

ccTargetProfile

The size of the buffer pointed to by the pTargetProfile member, in characters. If the buffer is not large enough to hold the selected name, the name is truncated to this size, and ERROR_INSUFFICIENT_BUFFER is returned. A buffer of MAX_PATH size always works.

lpfnHook

If the CMS_USEHOOK flag is set, this member is the address of a dialog procedure (see DialogProc ) that can filter or handle messages for the dialog. The hook procedure receives no messages issued before WM_INITDIALOG. It is called on the WM_INITDIALOG message after the system-provided dialog procedure has processed the message. On all other messages, the hook procedure receives the message before the system-provided procedure. If the hook procedure returns TRUE to these messages, the system-provided procedure is not called.

The hook procedure may call the EndDialog function.

lParam

If the CMS_USEHOOK flag is set, this member is passed to the application-provided hook procedure as the lParam parameter when the WM_INITDIALOG message is processed.

lpfnApplyCallback

Contains a pointer to a callback function that is invoked when the Apply button of the Color Management dialog box is selected. If no callback function is provided, this member should be set to NULL. See PCMSCALLBACKW.

lParamApplyCallback

Contains a value that will be passed to the function ApplyCallbackFunction through its lParam parameter. The meaning and content of the value is specified by the application.

Requirements

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

See also