493 lines
18 KiB
C
493 lines
18 KiB
C
|
/**
|
||
|
* This file has no copyright assigned and is placed in the Public Domain.
|
||
|
* This file is part of the w64 mingw-runtime package.
|
||
|
* No warranty is given; refer to the file DISCLAIMER within this package.
|
||
|
*/
|
||
|
#ifndef _ICM_H_
|
||
|
#define _ICM_H_
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
typedef char COLOR_NAME[32];
|
||
|
typedef COLOR_NAME *PCOLOR_NAME,*LPCOLOR_NAME;
|
||
|
|
||
|
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,*LPNAMED_PROFILE_INFO;
|
||
|
|
||
|
#define MAX_COLOR_CHANNELS 8
|
||
|
|
||
|
struct GRAYCOLOR {
|
||
|
WORD gray;
|
||
|
};
|
||
|
|
||
|
struct RGBCOLOR {
|
||
|
WORD red;
|
||
|
WORD green;
|
||
|
WORD blue;
|
||
|
};
|
||
|
|
||
|
struct CMYKCOLOR {
|
||
|
WORD cyan;
|
||
|
WORD magenta;
|
||
|
WORD yellow;
|
||
|
WORD black;
|
||
|
};
|
||
|
|
||
|
struct XYZCOLOR {
|
||
|
WORD X;
|
||
|
WORD Y;
|
||
|
WORD Z;
|
||
|
};
|
||
|
|
||
|
struct YxyCOLOR {
|
||
|
WORD Y;
|
||
|
WORD x;
|
||
|
WORD y;
|
||
|
};
|
||
|
|
||
|
struct LabCOLOR {
|
||
|
WORD L;
|
||
|
WORD a;
|
||
|
WORD b;
|
||
|
};
|
||
|
|
||
|
struct GENERIC3CHANNEL {
|
||
|
WORD ch1;
|
||
|
WORD ch2;
|
||
|
WORD ch3;
|
||
|
};
|
||
|
|
||
|
struct NAMEDCOLOR {
|
||
|
DWORD dwIndex;
|
||
|
};
|
||
|
|
||
|
struct HiFiCOLOR {
|
||
|
BYTE channel[MAX_COLOR_CHANNELS];
|
||
|
};
|
||
|
|
||
|
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,*LPCOLOR;
|
||
|
|
||
|
typedef enum {
|
||
|
COLOR_GRAY = 1,COLOR_RGB,COLOR_XYZ,COLOR_Yxy,COLOR_Lab,COLOR_3_CHANNEL,COLOR_CMYK,COLOR_5_CHANNEL,COLOR_6_CHANNEL,COLOR_7_CHANNEL,
|
||
|
COLOR_8_CHANNEL,COLOR_NAMED
|
||
|
} COLORTYPE;
|
||
|
typedef COLORTYPE *PCOLORTYPE,*LPCOLORTYPE;
|
||
|
|
||
|
typedef enum {
|
||
|
BM_x555RGB = 0x0000,BM_x555XYZ = 0x0101,BM_x555Yxy,BM_x555Lab,BM_x555G3CH,BM_RGBTRIPLETS = 0x0002,BM_BGRTRIPLETS = 0x0004,BM_XYZTRIPLETS = 0x0201,
|
||
|
BM_YxyTRIPLETS,BM_LabTRIPLETS,BM_G3CHTRIPLETS,BM_5CHANNEL,BM_6CHANNEL,BM_7CHANNEL,BM_8CHANNEL,BM_GRAY,BM_xRGBQUADS = 0x0008,BM_xBGRQUADS = 0x0010,
|
||
|
BM_xG3CHQUADS = 0x0304,BM_KYMCQUADS,BM_CMYKQUADS = 0x0020,BM_10b_RGB = 0x0009,BM_10b_XYZ = 0x0401,BM_10b_Yxy,BM_10b_Lab,BM_10b_G3CH,BM_NAMED_INDEX,
|
||
|
BM_16b_RGB = 0x000A,BM_16b_XYZ = 0x0501,BM_16b_Yxy,BM_16b_Lab,BM_16b_G3CH,BM_16b_GRAY,BM_565RGB = 0x0001
|
||
|
} BMFORMAT;
|
||
|
typedef BMFORMAT *PBMFORMAT,*LPBMFORMAT;
|
||
|
|
||
|
typedef WINBOOL (WINAPI *PBMCALLBACKFN)(ULONG,ULONG,LPARAM);
|
||
|
typedef PBMCALLBACKFN LPBMCALLBACKFN;
|
||
|
|
||
|
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,*LPPROFILEHEADER;
|
||
|
|
||
|
#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'
|
||
|
|
||
|
#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'
|
||
|
|
||
|
#define FLAG_EMBEDDEDPROFILE 0x00000001
|
||
|
#define FLAG_DEPENDENTONDATA 0x00000002
|
||
|
|
||
|
#define ATTRIB_TRANSPARENCY 0x00000001
|
||
|
#define ATTRIB_MATTE 0x00000002
|
||
|
|
||
|
#define INTENT_PERCEPTUAL 0
|
||
|
#define INTENT_RELATIVE_COLORIMETRIC 1
|
||
|
#define INTENT_SATURATION 2
|
||
|
#define INTENT_ABSOLUTE_COLORIMETRIC 3
|
||
|
|
||
|
typedef struct tagPROFILE {
|
||
|
DWORD dwType;
|
||
|
PVOID pProfileData;
|
||
|
DWORD cbDataSize;
|
||
|
} PROFILE;
|
||
|
typedef PROFILE *PPROFILE,*LPPROFILE;
|
||
|
|
||
|
#define PROFILE_FILENAME 1
|
||
|
#define PROFILE_MEMBUFFER 2
|
||
|
|
||
|
#define PROFILE_READ 1
|
||
|
#define PROFILE_READWRITE 2
|
||
|
|
||
|
typedef HANDLE HPROFILE;
|
||
|
typedef HPROFILE *PHPROFILE;
|
||
|
typedef HANDLE HTRANSFORM;
|
||
|
|
||
|
#define INDEX_DONT_CARE 0
|
||
|
|
||
|
#define CMM_FROM_PROFILE INDEX_DONT_CARE
|
||
|
#define CMM_WINDOWS_DEFAULT 'Win '
|
||
|
|
||
|
typedef DWORD TAGTYPE;
|
||
|
typedef TAGTYPE *PTAGTYPE,*LPTAGTYPE;
|
||
|
|
||
|
#define ENUM_TYPE_VERSION 0x0300
|
||
|
|
||
|
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,*PENUMTYPEA,*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,*PENUMTYPEW,*LPENUMTYPEW;
|
||
|
|
||
|
#define ET_DEVICENAME 0x00000001
|
||
|
#define ET_MEDIATYPE 0x00000002
|
||
|
#define ET_DITHERMODE 0x00000004
|
||
|
#define ET_RESOLUTION 0x00000008
|
||
|
#define ET_CMMTYPE 0x00000010
|
||
|
#define ET_CLASS 0x00000020
|
||
|
#define ET_DATACOLORSPACE 0x00000040
|
||
|
#define ET_CONNECTIONSPACE 0x00000080
|
||
|
#define ET_SIGNATURE 0x00000100
|
||
|
#define ET_PLATFORM 0x00000200
|
||
|
#define ET_PROFILEFLAGS 0x00000400
|
||
|
#define ET_MANUFACTURER 0x00000800
|
||
|
#define ET_MODEL 0x00001000
|
||
|
#define ET_ATTRIBUTES 0x00002000
|
||
|
#define ET_RENDERINGINTENT 0x00004000
|
||
|
#define ET_CREATOR 0x00008000
|
||
|
#define ET_DEVICECLASS 0x00010000
|
||
|
|
||
|
#define PROOF_MODE 0x00000001
|
||
|
#define NORMAL_MODE 0x00000002
|
||
|
#define BEST_MODE 0x00000003
|
||
|
#define ENABLE_GAMUT_CHECKING 0x00010000
|
||
|
#define USE_RELATIVE_COLORIMETRIC 0x00020000
|
||
|
#define FAST_TRANSLATE 0x00040000
|
||
|
#define RESERVED 0x80000000
|
||
|
|
||
|
#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
|
||
|
|
||
|
#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
|
||
|
|
||
|
#define CMS_FORWARD 0
|
||
|
#define CMS_BACKWARD 1
|
||
|
|
||
|
#define COLOR_MATCH_VERSION 0x0200
|
||
|
|
||
|
#define CMS_DISABLEICM 1
|
||
|
#define CMS_ENABLEPROOFING 2
|
||
|
|
||
|
#define CMS_SETRENDERINTENT 4
|
||
|
#define CMS_SETPROOFINTENT 8
|
||
|
#define CMS_SETMONITORPROFILE 0x10
|
||
|
#define CMS_SETPRINTERPROFILE 0x20
|
||
|
#define CMS_SETTARGETPROFILE 0x40
|
||
|
|
||
|
#define CMS_USEHOOK 0x80
|
||
|
#define CMS_USEAPPLYCALLBACK 0x100
|
||
|
#define CMS_USEDESCRIPTION 0x200
|
||
|
|
||
|
#define CMS_DISABLEINTENT 0x400
|
||
|
#define CMS_DISABLERENDERINTENT 0x800
|
||
|
|
||
|
#define CMS_MONITOROVERFLOW 0x80000000L
|
||
|
#define CMS_PRINTEROVERFLOW 0x40000000L
|
||
|
#define CMS_TARGETOVERFLOW 0x20000000L
|
||
|
|
||
|
struct _tagCOLORMATCHSETUPW;
|
||
|
struct _tagCOLORMATCHSETUPA;
|
||
|
|
||
|
typedef WINBOOL (WINAPI *PCMSCALLBACKW)(struct _tagCOLORMATCHSETUPW *,LPARAM);
|
||
|
typedef WINBOOL (WINAPI *PCMSCALLBACKA)(struct _tagCOLORMATCHSETUPA *,LPARAM);
|
||
|
|
||
|
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;
|
||
|
|
||
|
typedef struct _tagCOLORMATCHSETUPA {
|
||
|
DWORD dwSize;
|
||
|
DWORD dwVersion;
|
||
|
DWORD dwFlags;
|
||
|
HWND hwndOwner;
|
||
|
PCSTR pSourceName;
|
||
|
PCSTR pDisplayName;
|
||
|
PCSTR pPrinterName;
|
||
|
DWORD dwRenderIntent;
|
||
|
DWORD dwProofingIntent;
|
||
|
PSTR pMonitorProfile;
|
||
|
DWORD ccMonitorProfile;
|
||
|
PSTR pPrinterProfile;
|
||
|
DWORD ccPrinterProfile;
|
||
|
PSTR pTargetProfile;
|
||
|
DWORD ccTargetProfile;
|
||
|
DLGPROC lpfnHook;
|
||
|
LPARAM lParam;
|
||
|
PCMSCALLBACKA lpfnApplyCallback;
|
||
|
LPARAM lParamApplyCallback;
|
||
|
} COLORMATCHSETUPA,*PCOLORMATCHSETUPA,*LPCOLORMATCHSETUPA;
|
||
|
|
||
|
HPROFILE WINAPI OpenColorProfileA(PPROFILE,DWORD,DWORD,DWORD);
|
||
|
HPROFILE WINAPI OpenColorProfileW(PPROFILE,DWORD,DWORD,DWORD);
|
||
|
WINBOOL WINAPI CloseColorProfile(HPROFILE);
|
||
|
WINBOOL WINAPI GetColorProfileFromHandle(HPROFILE,PBYTE,PDWORD);
|
||
|
WINBOOL WINAPI IsColorProfileValid(HPROFILE,PBOOL);
|
||
|
WINBOOL WINAPI CreateProfileFromLogColorSpaceA(LPLOGCOLORSPACEA,PBYTE*);
|
||
|
WINBOOL WINAPI CreateProfileFromLogColorSpaceW(LPLOGCOLORSPACEW,PBYTE*);
|
||
|
WINBOOL WINAPI GetCountColorProfileElements(HPROFILE,PDWORD);
|
||
|
WINBOOL WINAPI GetColorProfileHeader(HPROFILE,PPROFILEHEADER);
|
||
|
WINBOOL WINAPI GetColorProfileElementTag(HPROFILE,DWORD,PTAGTYPE);
|
||
|
WINBOOL WINAPI IsColorProfileTagPresent(HPROFILE,TAGTYPE,PBOOL);
|
||
|
WINBOOL WINAPI GetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID,PBOOL);
|
||
|
WINBOOL WINAPI SetColorProfileHeader(HPROFILE,PPROFILEHEADER);
|
||
|
WINBOOL WINAPI SetColorProfileElementSize(HPROFILE,TAGTYPE,DWORD);
|
||
|
WINBOOL WINAPI SetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID);
|
||
|
WINBOOL WINAPI SetColorProfileElementReference(HPROFILE,TAGTYPE,TAGTYPE);
|
||
|
WINBOOL WINAPI GetPS2ColorSpaceArray (HPROFILE,DWORD,DWORD,PBYTE,PDWORD,PBOOL);
|
||
|
WINBOOL WINAPI GetPS2ColorRenderingIntent(HPROFILE,DWORD,PBYTE,PDWORD);
|
||
|
WINBOOL WINAPI GetPS2ColorRenderingDictionary(HPROFILE,DWORD,PBYTE,PDWORD,PBOOL);
|
||
|
WINBOOL WINAPI GetNamedProfileInfo(HPROFILE,PNAMED_PROFILE_INFO);
|
||
|
WINBOOL WINAPI ConvertColorNameToIndex(HPROFILE,PCOLOR_NAME,PDWORD,DWORD);
|
||
|
WINBOOL WINAPI ConvertIndexToColorName(HPROFILE,PDWORD,PCOLOR_NAME,DWORD);
|
||
|
WINBOOL WINAPI CreateDeviceLinkProfile(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,PBYTE*,DWORD);
|
||
|
HTRANSFORM WINAPI CreateColorTransformA(LPLOGCOLORSPACEA,HPROFILE,HPROFILE,DWORD);
|
||
|
HTRANSFORM WINAPI CreateColorTransformW(LPLOGCOLORSPACEW,HPROFILE,HPROFILE,DWORD);
|
||
|
HTRANSFORM WINAPI CreateMultiProfileTransform(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,DWORD);
|
||
|
WINBOOL WINAPI DeleteColorTransform(HTRANSFORM);
|
||
|
WINBOOL WINAPI TranslateBitmapBits(HTRANSFORM,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PVOID,BMFORMAT,DWORD,PBMCALLBACKFN,LPARAM);
|
||
|
WINBOOL WINAPI CheckBitmapBits(HTRANSFORM ,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PBYTE,PBMCALLBACKFN,LPARAM);
|
||
|
WINBOOL WINAPI TranslateColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PCOLOR,COLORTYPE);
|
||
|
WINBOOL WINAPI CheckColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PBYTE);
|
||
|
DWORD WINAPI GetCMMInfo(HTRANSFORM,DWORD);
|
||
|
WINBOOL WINAPI RegisterCMMA(PCSTR,DWORD,PCSTR);
|
||
|
WINBOOL WINAPI RegisterCMMW(PCWSTR,DWORD,PCWSTR);
|
||
|
WINBOOL WINAPI UnregisterCMMA(PCSTR,DWORD);
|
||
|
WINBOOL WINAPI UnregisterCMMW(PCWSTR,DWORD);
|
||
|
WINBOOL WINAPI SelectCMM(DWORD);
|
||
|
WINBOOL WINAPI GetColorDirectoryA(PCSTR pMachineName,PSTR pBuffer,PDWORD pdwSize);
|
||
|
WINBOOL WINAPI GetColorDirectoryW(PCWSTR pMachineName,PWSTR pBuffer,PDWORD pdwSize);
|
||
|
WINBOOL WINAPI InstallColorProfileA(PCSTR,PCSTR);
|
||
|
WINBOOL WINAPI InstallColorProfileW(PCWSTR,PCWSTR);
|
||
|
WINBOOL WINAPI UninstallColorProfileA(PCSTR,PCSTR,WINBOOL);
|
||
|
WINBOOL WINAPI UninstallColorProfileW(PCWSTR,PCWSTR,WINBOOL);
|
||
|
WINBOOL WINAPI EnumColorProfilesA(PCSTR,PENUMTYPEA,PBYTE,PDWORD,PDWORD);
|
||
|
WINBOOL WINAPI EnumColorProfilesW(PCWSTR,PENUMTYPEW,PBYTE,PDWORD,PDWORD);
|
||
|
WINBOOL WINAPI SetStandardColorSpaceProfileA(PCSTR,DWORD,PCSTR);
|
||
|
WINBOOL WINAPI SetStandardColorSpaceProfileW(PCWSTR,DWORD,PCWSTR);
|
||
|
WINBOOL WINAPI GetStandardColorSpaceProfileA(PCSTR pMachineName,DWORD dwSCS,PSTR pBuffer,PDWORD pcbSize);
|
||
|
WINBOOL WINAPI GetStandardColorSpaceProfileW(PCWSTR pMachineName,DWORD dwSCS,PWSTR pBuffer,PDWORD pcbSize);
|
||
|
WINBOOL WINAPI AssociateColorProfileWithDeviceA(PCSTR,PCSTR,PCSTR);
|
||
|
WINBOOL WINAPI AssociateColorProfileWithDeviceW(PCWSTR,PCWSTR,PCWSTR);
|
||
|
WINBOOL WINAPI DisassociateColorProfileFromDeviceA(PCSTR,PCSTR,PCSTR);
|
||
|
WINBOOL WINAPI DisassociateColorProfileFromDeviceW(PCWSTR,PCWSTR,PCWSTR);
|
||
|
WINBOOL WINAPI SetupColorMatchingW(PCOLORMATCHSETUPW pcms);
|
||
|
WINBOOL WINAPI SetupColorMatchingA(PCOLORMATCHSETUPA pcms);
|
||
|
|
||
|
#ifdef UNICODE
|
||
|
#define ENUMTYPE ENUMTYPEW
|
||
|
#define PENUMTYPE PENUMTYPEW
|
||
|
#define COLORMATCHSETUP COLORMATCHSETUPW
|
||
|
#define PCOLORMATCHSETUP PCOLORMATCHSETUPW
|
||
|
#define LPCOLORMATCHSETUP LPCOLORMATCHSETUPW
|
||
|
#define PCMSCALLBACK PCMSCALLBACKW
|
||
|
#define CreateColorTransform CreateColorTransformW
|
||
|
#define OpenColorProfile OpenColorProfileW
|
||
|
#define CreateProfileFromLogColorSpace CreateProfileFromLogColorSpaceW
|
||
|
#define RegisterCMM RegisterCMMW
|
||
|
#define UnregisterCMM UnregisterCMMW
|
||
|
#define GetColorDirectory GetColorDirectoryW
|
||
|
#define InstallColorProfile InstallColorProfileW
|
||
|
#define UninstallColorProfile UninstallColorProfileW
|
||
|
#define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceW
|
||
|
#define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceW
|
||
|
#define EnumColorProfiles EnumColorProfilesW
|
||
|
#define SetStandardColorSpaceProfile SetStandardColorSpaceProfileW
|
||
|
#define GetStandardColorSpaceProfile GetStandardColorSpaceProfileW
|
||
|
#define SetupColorMatching SetupColorMatchingW
|
||
|
|
||
|
#else
|
||
|
#define ENUMTYPE ENUMTYPEA
|
||
|
#define PENUMTYPE PENUMTYPEA
|
||
|
#define COLORMATCHSETUP COLORMATCHSETUPA
|
||
|
#define PCOLORMATCHSETUP PCOLORMATCHSETUPA
|
||
|
#define LPCOLORMATCHSETUP LPCOLORMATCHSETUPA
|
||
|
#define PCMSCALLBACK PCMSCALLBACKA
|
||
|
#define CreateColorTransform CreateColorTransformA
|
||
|
#define OpenColorProfile OpenColorProfileA
|
||
|
#define CreateProfileFromLogColorSpace CreateProfileFromLogColorSpaceA
|
||
|
#define RegisterCMM RegisterCMMA
|
||
|
#define UnregisterCMM UnregisterCMMA
|
||
|
#define GetColorDirectory GetColorDirectoryA
|
||
|
#define InstallColorProfile InstallColorProfileA
|
||
|
#define UninstallColorProfile UninstallColorProfileA
|
||
|
#define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceA
|
||
|
#define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceA
|
||
|
#define EnumColorProfiles EnumColorProfilesA
|
||
|
#define SetStandardColorSpaceProfile SetStandardColorSpaceProfileA
|
||
|
#define GetStandardColorSpaceProfile GetStandardColorSpaceProfileA
|
||
|
#define SetupColorMatching SetupColorMatchingA
|
||
|
#endif
|
||
|
|
||
|
typedef HANDLE HCMTRANSFORM;
|
||
|
typedef PVOID LPDEVCHARACTER;
|
||
|
|
||
|
WINBOOL WINAPI CMCheckColors(HCMTRANSFORM hcmTransform,LPCOLOR lpaInputColors,DWORD nColors,COLORTYPE ctInput,LPBYTE lpaResult);
|
||
|
WINBOOL WINAPI CMCheckColorsInGamut(HCMTRANSFORM hcmTransform,RGBTRIPLE *lpaRGBTriple,LPBYTE lpaResult,UINT nCount);
|
||
|
WINBOOL WINAPI CMCheckRGBs(HCMTRANSFORM hcmTransform,LPVOID lpSrcBits,BMFORMAT bmInput,DWORD dwWidth,DWORD dwHeight,DWORD dwStride,LPBYTE lpaResult,PBMCALLBACKFN pfnCallback,LPARAM ulCallbackData);
|
||
|
WINBOOL WINAPI CMConvertColorNameToIndex(HPROFILE hProfile,PCOLOR_NAME paColorName,PDWORD paIndex,DWORD dwCount);
|
||
|
WINBOOL WINAPI CMConvertIndexToColorName(HPROFILE hProfile,PDWORD paIndex,PCOLOR_NAME paColorName,DWORD dwCount);
|
||
|
WINBOOL WINAPI CMCreateDeviceLinkProfile(PHPROFILE pahProfiles,DWORD nProfiles,PDWORD padwIntents,DWORD nIntents,DWORD dwFlags,LPBYTE *lpProfileData);
|
||
|
HCMTRANSFORM WINAPI CMCreateMultiProfileTransform(PHPROFILE pahProfiles,DWORD nProfiles,PDWORD padwIntents,DWORD nIntents,DWORD dwFlags);
|
||
|
WINBOOL WINAPI CMCreateProfile(LPLOGCOLORSPACEA lpColorSpace,LPDEVCHARACTER *lpProfileData);
|
||
|
WINBOOL WINAPI CMCreateProfileW(LPLOGCOLORSPACEW lpColorSpace,LPDEVCHARACTER *lpProfileData);
|
||
|
HCMTRANSFORM WINAPI CMCreateTransform(LPLOGCOLORSPACEA lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter);
|
||
|
HCMTRANSFORM WINAPI CMCreateTransformW(LPLOGCOLORSPACEW lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter);
|
||
|
HCMTRANSFORM WINAPI CMCreateTransformExt(LPLOGCOLORSPACEA lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter,DWORD dwFlags);
|
||
|
HCMTRANSFORM WINAPI CMCreateTransformExtW(LPLOGCOLORSPACEW lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter,DWORD dwFlags);
|
||
|
WINBOOL WINAPI CMDeleteTransform(HCMTRANSFORM hcmTransform);
|
||
|
DWORD WINAPI CMGetInfo(DWORD dwInfo);
|
||
|
WINBOOL WINAPI CMGetNamedProfileInfo(HPROFILE hProfile,PNAMED_PROFILE_INFO pNamedProfileInfo);
|
||
|
WINBOOL WINAPI CMGetPS2ColorRenderingDictionary(HPROFILE hProfile,DWORD dwIntent,LPBYTE lpBuffer,LPDWORD lpcbSize,LPBOOL lpbBinary);
|
||
|
WINBOOL WINAPI CMGetPS2ColorRenderingIntent(HPROFILE hProfile,DWORD dwIntent,LPBYTE lpBuffer,LPDWORD lpcbSize);
|
||
|
WINBOOL WINAPI CMGetPS2ColorSpaceArray(HPROFILE hProfile,DWORD dwIntent,DWORD dwCSAType,LPBYTE lpBuffer,LPDWORD lpcbSize,LPBOOL lpbBinary);
|
||
|
WINBOOL WINAPI CMIsProfileValid(HPROFILE hProfile,LPBOOL lpbValid);
|
||
|
WINBOOL WINAPI CMTranslateColors(HCMTRANSFORM hcmTransform,LPCOLOR lpaInputColors,DWORD nColors,COLORTYPE ctInput,LPCOLOR lpaOutputColors,COLORTYPE ctOutput);
|
||
|
WINBOOL WINAPI CMTranslateRGB(HCMTRANSFORM hcmTransform,COLORREF ColorRef,LPCOLORREF lpColorRef,DWORD dwFlags);
|
||
|
WINBOOL WINAPI CMTranslateRGBs(HCMTRANSFORM hcmTransform,LPVOID lpSrcBits,BMFORMAT bmInput,DWORD dwWidth,DWORD dwHeight,DWORD dwStride,LPVOID lpDestBits,BMFORMAT bmOutput,DWORD dwTranslateDirection);
|
||
|
WINBOOL WINAPI CMTranslateRGBsExt(HCMTRANSFORM hcmTransform,LPVOID lpSrcBits,BMFORMAT bmInput,DWORD dwWidth,DWORD dwHeight,DWORD dwInputStride,LPVOID lpDestBits,BMFORMAT bmOutput,DWORD dwOutputStride,LPBMCALLBACKFN lpfnCallback,LPARAM ulCallbackData);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
#endif
|