This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/icm.h

710 lines
25 KiB
C
Raw Normal View History

/*
* icm.h Image Color Management (ICM) functions
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#ifndef _ICM_H_
#define _ICM_H_
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Primitive data types */
typedef char COLOR_NAME[32];
typedef COLOR_NAME *PCOLOR_NAME;
typedef COLOR_NAME *LPCOLOR_NAME;
typedef HANDLE HPROFILE;
typedef HPROFILE *PHPROFILE;
typedef HANDLE HTRANSFORM;
typedef DWORD TAGTYPE;
typedef TAGTYPE *PTAGTYPE;
typedef TAGTYPE *LPTAGTYPE;
typedef HANDLE HCMTRANSFORM;
typedef PVOID LPDEVCHARACTER;
/* Maximum number of color channels */
#define MAX_COLOR_CHANNELS 8
/* Rendering intents */
#define INTENT_PERCEPTUAL 0
#define INTENT_RELATIVE_COLORIMETRIC 1
#define INTENT_SATURATION 2
#define INTENT_ABSOLUTE_COLORIMETRIC 3
/* Profile class values */
#define CLASS_MONITOR 'mntr'
#define CLASS_PRINTER 'prtr'
#define CLASS_SCANNER 'scnr'
#define CLASS_LINK 'link'
#define CLASS_ABSTRACT 'abst'
#define CLASS_COLORSPACE 'spac'
#define CLASS_NAMED 'nmcl'
#if (NTDDI_VERSION >= 0x06000000)
#define CLASS_CAMP 'camp'
#define CLASS_GMMP 'gmmp'
#endif
/* Color space values */
#define SPACE_XYZ 'XYZ '
#define SPACE_Lab 'Lab '
#define SPACE_Luv 'Luv '
#define SPACE_YCbCr 'YCbr'
#define SPACE_Yxy 'Yxy '
#define SPACE_RGB 'RGB '
#define SPACE_GRAY 'GRAY'
#define SPACE_HSV 'HSV '
#define SPACE_HLS 'HLS '
#define SPACE_CMYK 'CMYK'
#define SPACE_CMY 'CMY '
#define SPACE_2_CHANNEL '2CLR'
#define SPACE_3_CHANNEL '3CLR'
#define SPACE_4_CHANNEL '4CLR'
#define SPACE_5_CHANNEL '5CLR'
#define SPACE_6_CHANNEL '6CLR'
#define SPACE_7_CHANNEL '7CLR'
#define SPACE_8_CHANNEL '8CLR'
/* Profile flags */
#define FLAG_EMBEDDEDPROFILE 0x00000001L
#define FLAG_DEPENDENTONDATA 0x00000002L
#if (NTDDI_VERSION >= 0x06000000)
#define FLAG_ENABLE_CHROMATIC_ADAPTATION 0x02000000L
#endif
/* Profile attribute flags */
#define ATTRIB_TRANSPARENCY 0x00000001L
#define ATTRIB_MATTE 0x00000002L
/* Profile types */
#define PROFILE_FILENAME 1L
#define PROFILE_MEMBUFFER 2L
/* Profile access modes */
#define PROFILE_READ 1L
#define PROFILE_READWRITE 2L
/* CMM special values */
#define INDEX_DONT_CARE 0
#define CMM_FROM_PROFILE INDEX_DONT_CARE
#define CMM_WINDOWS_DEFAULT 'Win '
/* Enumeration type version number */
#define ENUM_TYPE_VERSION 0x0300
/* Enumeration type fields */
#define ET_DEVICENAME 0x00000001L
#define ET_MEDIATYPE 0x00000002L
#define ET_DITHERMODE 0x00000004L
#define ET_RESOLUTION 0x00000008L
#define ET_CMMTYPE 0x00000010L
#define ET_CLASS 0x00000020L
#define ET_DATACOLORSPACE 0x00000040L
#define ET_CONNECTIONSPACE 0x00000080L
#define ET_SIGNATURE 0x00000100L
#define ET_PLATFORM 0x00000200L
#define ET_PROFILEFLAGS 0x00000400L
#define ET_MANUFACTURER 0x00000800L
#define ET_MODEL 0x00001000L
#define ET_ATTRIBUTES 0x00002000L
#define ET_RENDERINGINTENT 0x00004000L
#define ET_CREATOR 0x00008000L
#define ET_DEVICECLASS 0x00010000L
/* Color transform modes */
#define PROOF_MODE 0x00000001L
#define NORMAL_MODE 0x00000002L
#define BEST_MODE 0x00000003L
#define ENABLE_GAMUT_CHECKING 0x00010000L
#define USE_RELATIVE_COLORIMETRIC 0x00020000L
#define FAST_TRANSLATE 0x00040000L
#if (NTDDI_VERSION >= 0x06000000)
#define PRESERVEBLACK 0x00100000L
#define WCS_ALWAYS 0x00200000L
#define SEQUENTIAL_TRANSFORM 0x80800000L
#endif
/* GetPS2ColorSpaceArray() constants */
#define CSA_A 1
#define CSA_ABC 2
#define CSA_DEF 3
#define CSA_DEFG 4
#define CSA_GRAY 5
#define CSA_RGB 6
#define CSA_CMYK 7
#define CSA_Lab 8
/* CMGetInfo() constants */
#define CMM_WIN_VERSION 0
#define CMM_IDENT 1
#define CMM_DRIVER_VERSION 2
#define CMM_DLL_VERSION 3
#define CMM_VERSION 4
#define CMM_DESCRIPTION 5
#define CMM_LOGOICON 6
/* CMTranslateRGBs() constants */
#define CMS_FORWARD 0
#define CMS_BACKWARD 1
/* SetupColorMatching() constants */
#define COLOR_MATCH_VERSION 0x0200
/* Color matching flags */
#define CMS_DISABLEICM 0x00000001L
#define CMS_ENABLEPROOFING 0x00000002L
#define CMS_SETRENDERINTENT 0x00000004L
#define CMS_SETPROOFINTENT 0x00000008L
#define CMS_SETMONITORPROFILE 0x00000010L
#define CMS_SETPRINTERPROFILE 0x00000020L
#define CMS_SETTARGETPROFILE 0x00000040L
#define CMS_USEHOOK 0x00000080L
#define CMS_USEAPPLYCALLBACK 0x00000100L
#define CMS_USEDESCRIPTION 0x00000200L
#define CMS_DISABLEINTENT 0x00000400L
#define CMS_DISABLERENDERINTENT 0x00000800L
#define CMS_MONITOROVERFLOW 0x80000000L
#define CMS_PRINTEROVERFLOW 0x40000000L
#define CMS_TARGETOVERFLOW 0x20000000L
/* WcsOpenColorProfile() flags */
#if (NTDDI_VERSION >= 0x06000000)
#define DONT_USE_EMBEDDED_WCS_PROFILES 0x00000001L
#endif
/* WcsCreateIccProfile() flags */
#if (NTDDI_VERSION >= 0x06000000)
#define WCS_DEFAULT 0x00000000L
#define WCS_ICCONLY 0x00010000L
#endif
/* ICC tag types */
#if (NTDDI_VERSION >= 0x06000000)
#define WCS_EMBEDDED_TAG_SIGNATURE 'MS00'
#define WCS_EMBEDDED_TAG_TYPE_SIGNATURE 'MS10'
#endif
/* Named profile information */
typedef struct tagNAMED_PROFILE_INFO {
DWORD dwFlags;
DWORD dwCount;
DWORD dwCountDevCoordinates;
COLOR_NAME szPrefix;
COLOR_NAME szSuffix;
} NAMED_PROFILE_INFO;
typedef NAMED_PROFILE_INFO *PNAMED_PROFILE_INFO;
typedef NAMED_PROFILE_INFO *LPNAMED_PROFILE_INFO;
/* Gray color */
struct GRAYCOLOR {
WORD gray;
};
/* RGB color */
struct RGBCOLOR {
WORD red;
WORD green;
WORD blue;
} RGBCOLOR;
/* CMYK color */
struct CMYKCOLOR {
WORD cyan;
WORD magenta;
WORD yellow;
WORD black;
};
/* XYZ color */
struct XYZCOLOR {
WORD X;
WORD Y;
WORD Z;
};
/* Yxy color */
struct YxyCOLOR {
WORD Y;
WORD x;
WORD y;
};
/* Lab color */
struct LabCOLOR {
WORD L;
WORD a;
WORD b;
};
/* Generic 3-channel color */
struct GENERIC3CHANNEL {
WORD ch1;
WORD ch2;
WORD ch3;
};
/* Named color */
struct NAMEDCOLOR {
DWORD dwIndex;
};
/* HiFi color */
struct HiFiCOLOR {
BYTE channel[MAX_COLOR_CHANNELS];
};
/* Color */
typedef union tagCOLOR {
struct GRAYCOLOR gray;
struct RGBCOLOR rgb;
struct CMYKCOLOR cmyk;
struct XYZCOLOR XYZ;
struct YxyCOLOR Yxy;
struct LabCOLOR Lab;
struct GENERIC3CHANNEL gen3ch;
struct NAMEDCOLOR named;
struct HiFiCOLOR hifi;
struct {
DWORD reserved1;
VOID *reserved2;
};
} COLOR;
typedef COLOR *PCOLOR;
typedef COLOR *LPCOLOR;
/* Color types */
typedef enum {
COLOR_GRAY = 1,
COLOR_RGB = 2,
COLOR_XYZ = 3,
COLOR_Yxy = 4,
COLOR_Lab = 5,
COLOR_3_CHANNEL = 6,
COLOR_CMYK = 7,
COLOR_5_CHANNEL = 8,
COLOR_6_CHANNEL = 9,
COLOR_7_CHANNEL = 10,
COLOR_8_CHANNEL = 11,
COLOR_NAMED = 12
} COLORTYPE;
typedef COLORTYPE *PCOLORTYPE;
typedef COLORTYPE *LPCOLORTYPE;
/* Color profile types */
#if (NTDDI_VERSION >= 0x06000000)
typedef enum {
CPT_ICC = 0,
CPT_DMP = 1,
CPT_CAMP = 2,
CPT_GMMP = 3
} COLORPROFILETYPE;
typedef COLORPROFILETYPE *PCOLORPROFILETYPE;
typedef COLORPROFILETYPE *LPCOLORPROFILETYPE;
#endif
/* Color profile subtypes */
#if (NTDDI_VERSION >= 0x06000000)
typedef enum {
CPST_PERCEPTUAL = INTENT_PERCEPTUAL,
CPST_RELATIVE_COLORIMETRIC = INTENT_RELATIVE_COLORIMETRIC,
CPST_SATURATION = INTENT_SATURATION,
CPST_ABSOLUTE_COLORIMETRIC = INTENT_ABSOLUTE_COLORIMETRIC,
CPST_NONE = 4,
CPST_RGB_WORKING_SPACE = 5,
CPST_CUSTOM_WORKING_SPACE = 6
} COLORPROFILESUBTYPE;
typedef COLORPROFILESUBTYPE *PCOLORPROFILESUBTYPE;
typedef COLORPROFILESUBTYPE *LPCOLORPROFILESUBTYPE;
#endif
/* Color data types */
#if (NTDDI_VERSION >= 0x06000000)
typedef enum {
COLOR_BYTE = 1,
COLOR_WORD = 2,
COLOR_FLOAT = 3,
COLOR_S2DOT13FIXED = 4,
COLOR_10b_R10G10B10A2 = 5,
COLOR_10b_R10G10B10A2_XR = 6,
COLOR_FLOAT16 = 7
} COLORDATATYPE;
typedef COLORDATATYPE *PCOLORDATATYPE;
typedef COLORDATATYPE *LPCOLORDATATYPE;
#endif
/* Bitmap formats */
typedef enum {
BM_x555RGB = 0x0000,
BM_x555XYZ = 0x0101,
BM_x555Yxy = 0x0102,
BM_x555Lab = 0x0103,
BM_x555G3CH = 0x0104,
BM_RGBTRIPLETS = 0x0002,
BM_BGRTRIPLETS = 0x0004,
BM_XYZTRIPLETS = 0x0201,
BM_YxyTRIPLETS = 0x0202,
BM_LabTRIPLETS = 0x0203,
BM_G3CHTRIPLETS = 0x0204,
BM_5CHANNEL = 0x0205,
BM_6CHANNEL = 0x0206,
BM_7CHANNEL = 0x0207,
BM_8CHANNEL = 0x0208,
BM_GRAY = 0x0209,
BM_xRGBQUADS = 0x0008,
BM_xBGRQUADS = 0x0010,
BM_xG3CHQUADS = 0x0304,
BM_KYMCQUADS = 0x0305,
BM_CMYKQUADS = 0x0020,
BM_10b_RGB = 0x0009,
BM_10b_XYZ = 0x0401,
BM_10b_Yxy = 0x0402,
BM_10b_Lab = 0x0403,
BM_10b_G3CH = 0x0404,
BM_NAMED_INDEX = 0x0405,
BM_16b_RGB = 0x000A,
BM_16b_XYZ = 0x0501,
BM_16b_Yxy = 0x0502,
BM_16b_Lab = 0x0503,
BM_16b_G3CH = 0x0504,
BM_16b_GRAY = 0x0505,
BM_565RGB = 0x0001,
BM_32b_scRGB = 0x0601,
BM_32b_scARGB = 0x0602,
BM_S2DOT13FIXED_scRGB = 0x0603,
BM_S2DOT13FIXED_scARGB = 0x0604,
BM_R10G10B10A2 = 0x0701,
BM_R10G10B10A2_XR = 0x0702,
BM_R16G16B16A16_FLOAT = 0x0703
} BMFORMAT;
typedef BMFORMAT *PBMFORMAT;
typedef BMFORMAT *LPBMFORMAT;
/* Bitmap callback */
typedef BOOL (WINAPI *PBMCALLBACKFN)( ULONG, ULONG, LPARAM );
typedef PBMCALLBACKFN LPBMCALLBACKFN;
/* Profile header */
typedef struct tagPROFILEHEADER {
DWORD phSize;
DWORD phCMMType;
DWORD phVersion;
DWORD phClass;
DWORD phDataColorSpace;
DWORD phConnectionSpace;
DWORD phDateTime[3];
DWORD phSignature;
DWORD phPlatform;
DWORD phProfileFlags;
DWORD phManufacturer;
DWORD phModel;
DWORD phAttributes[2];
DWORD phRenderingIntent;
CIEXYZ phIlluminant;
DWORD phCreator;
BYTE phReserved[44];
} PROFILEHEADER;
typedef PROFILEHEADER *PPROFILEHEADER;
typedef PROFILEHEADER *LPPROFILEHEADER;
/* Profile */
typedef struct tagPROFILE {
DWORD dwType;
PVOID pProfileData;
DWORD cbDataSize;
} PROFILE;
typedef PROFILE *PPROFILE;
typedef PROFILE *LPPROFILE;
/* Enumeration type */
typedef struct tagENUMTYPEA {
DWORD dwSize;
DWORD dwVersion;
DWORD dwFields;
PCSTR pDeviceName;
DWORD dwMediaType;
DWORD dwDitheringMode;
DWORD dwResolution[2];
DWORD dwCMMType;
DWORD dwClass;
DWORD dwDataColorSpace;
DWORD dwConnectionSpace;
DWORD dwSignature;
DWORD dwPlatform;
DWORD dwProfileFlags;
DWORD dwManufacturer;
DWORD dwModel;
DWORD dwAttributes[2];
DWORD dwRenderingIntent;
DWORD dwCreator;
DWORD dwDeviceClass;
} ENUMTYPEA;
typedef ENUMTYPEA *PENUMTYPEA;
typedef ENUMTYPEA *LPENUMTYPEA;
typedef struct tagENUMTYPEW {
DWORD dwSize;
DWORD dwVersion;
DWORD dwFields;
PCWSTR pDeviceName;
DWORD dwMediaType;
DWORD dwDitheringMode;
DWORD dwResolution[2];
DWORD dwCMMType;
DWORD dwClass;
DWORD dwDataColorSpace;
DWORD dwConnectionSpace;
DWORD dwSignature;
DWORD dwPlatform;
DWORD dwProfileFlags;
DWORD dwManufacturer;
DWORD dwModel;
DWORD dwAttributes[2];
DWORD dwRenderingIntent;
DWORD dwCreator;
DWORD dwDeviceClass;
} ENUMTYPEW;
typedef ENUMTYPEW *PENUMTYPEW;
typedef ENUMTYPEW *LPENUMTYPEW;
#ifdef UNICODE
typedef ENUMTYPEW ENUMTYPE;
typedef PENUMTYPEW PENUMTYPE;
#else
typedef ENUMTYPEA ENUMTYPE;
typedef PENUMTYPEA PENUMTYPE;
#endif
/* WCS profile management scopes */
#if (NTDDI_VERSION >= 0x06000000)
typedef enum {
WCS_PROFILE_MANAGEMENT_SCOPE_SYSTEM_WIDE = 0,
WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER = 1
} WCS_PROFILE_MANAGEMENT_SCOPE;
#endif
/* Color matching callback */
typedef BOOL (WINAPI *PCMSCALLBACKA)( struct _tagCOLORMATCHSETUPA *, LPARAM );
typedef BOOL (WINAPI *PCMSCALLBACKW)( struct _tagCOLORMATCHSETUPW *, LPARAM );
#ifdef UNICODE
#define PCMSCALLBACK PCMSCALLBACKW
#else
#define PCMSCALLBACK PCMSCALLBACKA
#endif
/* Color matching setup information */
typedef struct _tagCOLORMATCHSETUPA {
DWORD dwSize;
DWORD dwVersion;
DWORD dwFlags;
HWND hwndOwner;
PCSTR pSourceName;
PCSTR pDisplayName;
PCSTR pPrinterName;
DWORD dwRenderIntent;
DWORD dwProofingIntent;
PWSTR pMonitorProfile;
DWORD ccMonitorProfile;
PWSTR pPrinterProfile;
DWORD ccPrinterProfile;
PSTR pTargetProfile;
DWORD ccTargetProfile;
DLGPROC lpfnHook;
LPARAM lParam;
PCMSCALLBACKA lpfnApplyCallback;
LPARAM lParamApplyCallback;
} COLORMATCHSETUPA;
typedef COLORMATCHSETUPA *PCOLORMATCHSETUPA;
typedef COLORMATCHSETUPA *LPCOLORMATCHSETUPA;
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;
typedef COLORMATCHSETUPW *PCOLORMATCHSETUPW;
typedef COLORMATCHSETUPW *LPCOLORMATCHSETUPW;
#ifdef UNICODE
typedef COLORMATCHSETUPW COLORMATCHSETUP;
typedef PCOLORMATCHSETUPW PCOLORMATCHSETUP;
typedef LPCOLORMATCHSETUPW LPCOLORMATCHSETUP;
#else
typedef COLORMATCHSETUPA COLORMATCHSETUP;
typedef PCOLORMATCHSETUPA PCOLORMATCHSETUP;
typedef LPCOLORMATCHSETUPA LPCOLORMATCHSETUP;
#endif
/* Functions in MSCMS.DLL */
BOOL WINAPI AssociateColorProfileWithDeviceA( PCSTR, PCSTR, PCSTR );
BOOL WINAPI AssociateColorProfileWithDeviceW( PCWSTR, PCWSTR, PCWSTR );
BOOL WINAPI CheckBitmapBits( HTRANSFORM, PVOID, BMFORMAT, DWORD, DWORD, DWORD, PBYTE, PBMCALLBACKFN, LPARAM );
BOOL WINAPI CheckColors( HTRANSFORM, PCOLOR, DWORD, COLORTYPE, PBYTE );
BOOL WINAPI CloseColorProfile( HPROFILE );
BOOL WINAPI ConvertColorNameToIndex( HPROFILE, PCOLOR_NAME, PDWORD, DWORD );
BOOL WINAPI ConvertIndexToColorName( HPROFILE, PDWORD, PCOLOR_NAME, DWORD );
BOOL WINAPI CreateProfileFromLogColorSpaceA( LPLOGCOLORSPACEA, PBYTE * );
BOOL WINAPI CreateProfileFromLogColorSpaceW( LPLOGCOLORSPACEW, PBYTE * );
HTRANSFORM WINAPI CreateColorTransformA( LPLOGCOLORSPACEA, HPROFILE, HPROFILE, DWORD );
HTRANSFORM WINAPI CreateColorTransformW( LPLOGCOLORSPACEW, HPROFILE, HPROFILE, DWORD );
BOOL WINAPI CreateDeviceLinkProfile( PHPROFILE, DWORD, PDWORD, DWORD, DWORD, PBYTE *, DWORD );
HTRANSFORM WINAPI CreateMultiPlatformTransform( PHPROFILE, DWORD, PDWORD, DWORD, DWORD, DWORD );
BOOL WINAPI DeleteColorTransform( HTRANSFORM );
BOOL WINAPI DisassociateColorProfileFromDeviceA( PCSTR, PCSTR, PCSTR );
BOOL WINAPI DisassociateColorProfileFromDeviceW( PCWSTR, PCWSTR, PCWSTR );
BOOL WINAPI EnumColorProfilesA( PCSTR, PENUMTYPEA, PBYTE, PDWORD, PDWORD );
BOOL WINAPI EnumColorProfilesW( PCWSTR, PENUMTYPEW, PBYTE, PDWORD, PDWORD );
DWORD WINAPI GetCMMInfo( HTRANSFORM, DWORD );
BOOL WINAPI GetColorDirectoryA( PCSTR, PSTR, PDWORD );
BOOL WINAPI GetColorDirectoryW( PCWSTR, PWSTR, PDWORD );
BOOL WINAPI GetColorProfileElement( HPROFILE, TAGTYPE, DWORD, PDWORD, PVOID, PBOOL );
BOOL WINAPI GetColorProfileElementTag( HPROFILE, DWORD, PTAGTYPE );
BOOL WINAPI GetColorProfileFromHandle( HPROFILE, PBYTE, PDWORD );
BOOL WINAPI GetColorProfileHeader( HPROFILE, PPROFILEHEADER );
BOOL WINAPI GetCountColorProfileElements( HPROFILE, PDWORD );
BOOL WINAPI GetNamedProfileInfo( HPROFILE, PNAMED_PROFILE_INFO );
BOOL WINAPI GetPS2ColorRenderingDictionary( HPROFILE, DWORD, PBYTE, PDWORD, PBOOL );
BOOL WINAPI GetPS2ColorRenderingIntent( HPROFILE, DWORD, PBYTE, PDWORD );
BOOL WINAPI GetPS2ColorSpaceArray( HPROFILE, DWORD, DWORD, PBYTE, PDWORD, PBOOL );
BOOL WINAPI GetStandardColorSpaceProfileA( PCSTR, DWORD, PSTR, PDWORD );
BOOL WINAPI GetStandardColorSpaceProfileW( PCWSTR, DWORD, PWSTR, PDWORD );
BOOL WINAPI InstallColorProfileA( PCSTR, PCSTR );
BOOL WINAPI InstallColorProfileW( PCWSTR, PCWSTR );
BOOL WINAPI IsColorProfileTagPresent( HPROFILE, TAGTYPE, PBOOL );
BOOL WINAPI IsColorProfileValid( HPROFILE, PBOOL );
HPROFILE WINAPI OpenColorProfileA( PPROFILE, DWORD, DWORD, DWORD );
HPROFILE WINAPI OpenColorProfileW( PPROFILE, DWORD, DWORD, DWORD );
BOOL WINAPI RegisterCMMA( PCSTR, DWORD, PCSTR );
BOOL WINAPI RegisterCMMW( PCWSTR, DWORD, PCWSTR );
BOOL WINAPI SelectCMM( DWORD );
BOOL WINAPI SetColorProfileElement( HPROFILE, TAGTYPE, DWORD, PDWORD, PVOID );
BOOL WINAPI SetColorProfileElementReference( HPROFILE, TAGTYPE, TAGTYPE );
BOOL WINAPI SetColorProfileElementSize( HPROFILE, TAGTYPE, DWORD );
BOOL WINAPI SetColorProfileHeader( HPROFILE, PPROFILEHEADER );
BOOL WINAPI SetStandardColorSpaceBufferA( PCSTR, DWORD, PCSTR );
BOOL WINAPI SetStandardColorSpaceBufferW( PCWSTR, DWORD, PCWSTR );
BOOL WINAPI TransformBitmapBits( HTRANSFORM, PVOID, BMFORMAT, DWORD, DWORD, DWORD, PVOID, BMFORMAT, DWORD, PBMCALLBACKFN, LPARAM );
BOOL WINAPI TranslateColors( HTRANSFORM, PCOLOR, DWORD, COLORTYPE, PCOLOR, COLORTYPE );
BOOL WINAPI UninstallColorProfileA( PCSTR, PCSTR, BOOL );
BOOL WINAPI UninstallColorProfileW( PCWSTR, PCWSTR, BOOL );
BOOL WINAPI UnregisterCMMA( PCSTR, DWORD );
BOOL WINAPI UnregisterCMMW( PCWSTR, DWORD );
#if (NTDDI_VERSION >= 0x06000000)
BOOL WINAPI WcsAssociateColorProfileWithDevice( WCS_PROFILE_MANAGEMENT_SCOPE, PCWSTR, PCWSTR );
BOOL WINAPI WcsCheckColors( HTRANSFORM, DWORD, DWORD, COLORDATATYPE, DWORD, PVOID, PBYTE );
HPROFILE WINAPI WcsCreateIccProfile( HPROFILE, DWORD );
BOOL WINAPI WcsDisassociateColorProfileFromDevice( WCS_PROFILE_MANAGEMENT_SCOPE, PCWSTR, PCWSTR );
BOOL WINAPI WcsEnumColorProfiles( WCS_PROFILE_MANAGEMENT_SCOPE, PENUMTYPEW, PBYTE, DWORD, PDWORD );
BOOL WINAPI WcsEnumColorProfilesSize( WCS_PROFILE_MANAGEMENT_SCOPE, PENUMTYPEW, PDWORD );
BOOL WINAPI WcsGetDefaultColorProfile( WCS_PROFILE_MANAGEMENT_SCOPE, PCWSTR, COLORPROFILETYPE, COLORPROFILESUBTYPE, DWORD, DWORD, LPWSTR );
BOOL WINAPI WcsGetDefaultColorProfileSize( WCS_PROFILE_MANAGEMENT_SCOPE, PCWSTR, COLORPROFILETYPE, COLORPROFILESUBTYPE, DWORD, PDWORD );
BOOL WINAPI WcsGetDefaultRenderingIntent( WCS_PROFILE_MANAGEMENT_SCOPE, PDWORD );
BOOL WINAPI WcsGetUsePerUserProfiles( LPCWSTR, DWORD, PBOOL );
HPROFILE WINAPI WcsOpenColorProfileA( PPROFILE, PPROFILE, PPROFILE, DWORD, DWORD, DWORD, DWORD );
HPROFILE WINAPI WcsOpenColorProfileW( PPROFILE, PPROFILE, PPROFILE, DWORD, DWORD, DWORD, DWORD );
BOOL WINAPI WcsSetDefaultColorProfile( WCS_PROFILE_MANAGEMENT_SCOPE, PCWSTR, COLORPROFILETYPE, COLORPROFILESUBTYPE, DWORD, LPCWSTR );
BOOL WINAPI WcsSetDefaultRenderingIntent( WCS_PROFILE_MANAGEMENT_SCOPE, DWORD );
BOOL WINAPI WcsSetUsePerUserProfiles( LPCWSTR, DWORD, BOOL );
BOOL WINAPI WcsTranslateColors( HTRANSFORM, DWORD, DWORD, COLORDATATYPE, DWORD, PVOID, DWORD, COLORDATATYPE, DWORD, PVOID );
#endif
#if (NTDDI_VERSION >= 0x06010000)
BOOL WINAPI WcsGetCalibrationManagementState( BOOL * );
BOOL WINAPI WcsSetCalibrationManagementState( BOOL );
#endif
/* Functions in ICMUI.DLL */
BOOL WINAPI SetupColorMatchingA( PCOLORMATCHSETUPA );
BOOL WINAPI SetupColorMatchingW( PCOLORMATCHSETUPW );
/* Functions in ICM32.DLL */
BOOL WINAPI CMCheckColors( HCMTRANSFORM, LPCOLOR, DWORD, COLORTYPE, LPBYTE );
BOOL WINAPI CMCheckColorsInGamut( HCMTRANSFORM, RGBTRIPLE *, LPBYTE, UINT );
BOOL WINAPI CMCheckRGBs( HCMTRANSFORM, LPVOID, BMFORMAT, DWORD, DWORD, DWORD, LPBYTE, PBMCALLBACKFN, LPARAM );
BOOL WINAPI CMConvertColorNameToIndex( HPROFILE, PCOLOR_NAME, PDWORD, DWORD );
BOOL WINAPI CMConvertIndexToColorName( HPROFILE, PDWORD, PCOLOR_NAME, DWORD );
BOOL WINAPI CMCreateDeviceLinkProfile( PHPROFILE, DWORD, PDWORD, DWORD, DWORD, LPBYTE * );
HCMTRANSFORM WINAPI CMCreateMultiProfileTransform( PHPROFILE, DWORD, PDWORD, DWORD, DWORD );
BOOL WINAPI CMCreateProfile( LPLOGCOLORSPACEA, LPDEVCHARACTER * );
BOOL WINAPI CMCreateProfileW( LPLOGCOLORSPACEW, LPDEVCHARACTER * );
HCMTRANSFORM WINAPI CMCreateTransform( LPLOGCOLORSPACEA, LPDEVCHARACTER, LPDEVCHARACTER );
HCMTRANSFORM WINAPI CMCreateTransformExt( LPLOGCOLORSPACEA, LPDEVCHARACTER, LPDEVCHARACTER, DWORD );
HCMTRANSFORM WINAPI CMCreateTransformExtW( LPLOGCOLORSPACEW, LPDEVCHARACTER, LPDEVCHARACTER, DWORD );
HCMTRANSFORM WINAPI CMCreateTransformW( LPLOGCOLORSPACEW, LPDEVCHARACTER, LPDEVCHARACTER );
BOOL WINAPI CMDeleteTransform( HCMTRANSFORM );
DWORD WINAPI CMGetInfo( DWORD );
BOOL WINAPI CMGetNamedProfileInfo( HPROFILE, PNAMED_PROFILE_INFO );
BOOL WINAPI CMIsProfileValid( HPROFILE, LPBOOL );
BOOL WINAPI CMTranslateColors( HCMTRANSFORM, LPCOLOR, DWORD, COLORTYPE, LPCOLOR, COLORTYPE );
BOOL WINAPI CMTranslateRGB( HCMTRANSFORM, COLORREF, LPCOLORREF, DWORD );
BOOL WINAPI CMTranslateRGBs( HCMTRANSFORM, LPVOID, BMFORMAT, DWORD, DWORD, DWORD, LPVOID, BMFORMAT, DWORD );
BOOL WINAPI CMTranslateRGBsExt( HCMTRANSFORM, LPVOID, BMFORMAT, DWORD, DWORD, DWORD, LPVOID, BMFORMAT, DWORD, LPBMCALLBACKFN, LPARAM );
/* Map generic function names to the appropriate ANSI or Unicode version. */
#ifdef UNICODE
#define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceW
#define CreateColorTransform CreateColorTransformW
#define CreateProfileFromLogColorSpace CreateProfileFromLogColorSpaceW
#define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceW
#define EnumColorProfiles EnumColorProfilesW
#define GetColorDirectory GetColorDirectoryW
#define GetStandardColorSpaceProfile GetStandardColorSpaceProfileW
#define InstallColorProfile InstallColorProfileW
#define OpenColorProfile OpenColorProfileW
#define RegisterCMM RegisterCMMW
#define SetStandardColorSpaceProfile SetStandardColorSpaceProfileW
#define SetupColorMatching SetupColorMatchingW
#define UninstallColorProfile UninstallColorProfileW
#define UnregisterCMM UnregisterCMMW
#if (NTDDI_VERSION >= 0x06000000)
#define WcsOpenColorProfile WcsOpenColorProfileW
#endif
#else
#define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceA
#define CreateColorTransform CreateColorTransformA
#define CreateProfileFromLogColorSpace CreateProfileFromLogColorSpaceA
#define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceA
#define EnumColorProfiles EnumColorProfilesA
#define GetColorDirectory GetColorDirectoryA
#define GetStandardColorSpaceProfile GetStandardColorSpaceProfileA
#define InstallColorProfile InstallColorProfileA
#define OpenColorProfile OpenColorProfileA
#define RegisterCMM RegisterCMMA
#define SetStandardColorSpaceProfile SetStandardColorSpaceProfileA
#define SetupColorMatching SetupColorMatchingA
#define UninstallColorProfile UninstallColorProfileA
#define UnregisterCMM UnregisterCMMA
#if (NTDDI_VERSION >= 0x06000000)
#define WcsOpenColorProfile WcsOpenColorProfileA
#endif
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _ICM_H_ */