710 lines
25 KiB
C
710 lines
25 KiB
C
/*
|
|
* 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_ */
|