DrvQueryColorProfile function (winddiui.h)
The DrvQueryColorProfile function allows a printer interface DLL to specify an ICC profile to use for color management.
Syntax
BOOL DrvQueryColorProfile(
HANDLE hPrinter,
[in] PDEVMODEW pdevmode,
ULONG ulQueryMode,
[out] VOID *pvProfileData,
[out] ULONG *pcbProfileData,
[out] FLONG *pflProfileData
);
Parameters
hPrinter
Caller-supplied printer handle.
[in] pdevmode
Caller-supplied pointer to a DEVMODEW structure.
ulQueryMode
One of the following caller-supplied bit flags, indicating the type of profile to be specified.
Flag | Definition |
---|---|
QCP_DEVICEPROFILE | The caller is requesting a device profile. |
QCP_SOURCEPROFILE | The caller is requesting a source profile. |
[out] pvProfileData
Caller-supplied pointer to a buffer to receive profile information.
[out] pcbProfileData
Caller-supplied pointer to a value representing the size, in bytes, of the buffer pointed to by pvProfileData.
[out] pflProfileData
One of the following function-supplied bit flags, indicating the type of information the function is returning.
Flag | Definition |
---|---|
QCP_PROFILEDISK | The function is returning the file name of an ICC profile in the buffer pointed to by pvProfileData. |
QCP_PROFILEMEMORY | The function is returning profile data in the buffer pointed to by pvProfileData. |
Return value
If the operation succeeds, the function returns TRUE; otherwise, it returns FALSE.
Remarks
A printer interface DLL can optionally provide a DrvQueryColorProfile function. If the function is provided, GDI calls it if ICM has been enabled for a print job. The function's purpose is to determine and specify an ICC profile that is appropriate for use with the print job.
If a driver's printer interface DLL does not provide a DrvQueryColorProfile function, or if the function returns FALSE, GDI attempts to find a profile. For more information, see Locating ICC Profiles.
If the output buffer size specified by pcbProfileData is too small, the driver should overwrite the size value supplied by pcbProfileData with the required buffer size, call SetLastError(ERROR_INSUFFICIENT_BUFFER), and return FALSE.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | winddiui.h (include Winddiui.h) |