source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/icm.h@ 1170

Last change on this file since 1170 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 20.9 KB
Line 
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _ICM_H_
7#define _ICM_H_
8
9#include <_mingw_unicode.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15 typedef char COLOR_NAME[32];
16 typedef COLOR_NAME *PCOLOR_NAME,*LPCOLOR_NAME;
17
18 typedef struct tagNAMED_PROFILE_INFO {
19 DWORD dwFlags;
20 DWORD dwCount;
21 DWORD dwCountDevCoordinates;
22 COLOR_NAME szPrefix;
23 COLOR_NAME szSuffix;
24 } NAMED_PROFILE_INFO;
25 typedef NAMED_PROFILE_INFO *PNAMED_PROFILE_INFO,*LPNAMED_PROFILE_INFO;
26
27#define MAX_COLOR_CHANNELS 8
28
29 struct GRAYCOLOR {
30 WORD gray;
31 };
32
33 struct RGBCOLOR {
34 WORD red;
35 WORD green;
36 WORD blue;
37 };
38
39 struct CMYKCOLOR {
40 WORD cyan;
41 WORD magenta;
42 WORD yellow;
43 WORD black;
44 };
45
46 struct XYZCOLOR {
47 WORD X;
48 WORD Y;
49 WORD Z;
50 };
51
52 struct YxyCOLOR {
53 WORD Y;
54 WORD x;
55 WORD y;
56 };
57
58 struct LabCOLOR {
59 WORD L;
60 WORD a;
61 WORD b;
62 };
63
64 struct GENERIC3CHANNEL {
65 WORD ch1;
66 WORD ch2;
67 WORD ch3;
68 };
69
70 struct NAMEDCOLOR {
71 DWORD dwIndex;
72 };
73
74 struct HiFiCOLOR {
75 BYTE channel[MAX_COLOR_CHANNELS];
76 };
77
78 typedef union tagCOLOR {
79 struct GRAYCOLOR gray;
80 struct RGBCOLOR rgb;
81 struct CMYKCOLOR cmyk;
82 struct XYZCOLOR XYZ;
83 struct YxyCOLOR Yxy;
84 struct LabCOLOR Lab;
85 struct GENERIC3CHANNEL gen3ch;
86 struct NAMEDCOLOR named;
87 struct HiFiCOLOR hifi;
88 struct {
89 DWORD reserved1;
90 VOID *reserved2;
91 };
92 } COLOR;
93 typedef COLOR *PCOLOR,*LPCOLOR;
94
95 typedef enum {
96 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,
97 COLOR_8_CHANNEL,COLOR_NAMED
98 } COLORTYPE;
99 typedef COLORTYPE *PCOLORTYPE,*LPCOLORTYPE;
100
101 typedef enum {
102 BM_x555RGB = 0x0000,BM_x555XYZ = 0x0101,BM_x555Yxy,BM_x555Lab,BM_x555G3CH,BM_RGBTRIPLETS = 0x0002,BM_BGRTRIPLETS = 0x0004,BM_XYZTRIPLETS = 0x0201,
103 BM_YxyTRIPLETS,BM_LabTRIPLETS,BM_G3CHTRIPLETS,BM_5CHANNEL,BM_6CHANNEL,BM_7CHANNEL,BM_8CHANNEL,BM_GRAY,BM_xRGBQUADS = 0x0008,BM_xBGRQUADS = 0x0010,
104 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,
105 BM_16b_RGB = 0x000A,BM_16b_XYZ = 0x0501,BM_16b_Yxy,BM_16b_Lab,BM_16b_G3CH,BM_16b_GRAY,BM_565RGB = 0x0001
106 } BMFORMAT;
107 typedef BMFORMAT *PBMFORMAT,*LPBMFORMAT;
108
109 typedef WINBOOL (WINAPI *PBMCALLBACKFN)(ULONG,ULONG,LPARAM);
110 typedef PBMCALLBACKFN LPBMCALLBACKFN;
111
112 typedef struct tagPROFILEHEADER {
113 DWORD phSize;
114 DWORD phCMMType;
115 DWORD phVersion;
116 DWORD phClass;
117 DWORD phDataColorSpace;
118 DWORD phConnectionSpace;
119 DWORD phDateTime[3];
120 DWORD phSignature;
121 DWORD phPlatform;
122 DWORD phProfileFlags;
123 DWORD phManufacturer;
124 DWORD phModel;
125 DWORD phAttributes[2];
126 DWORD phRenderingIntent;
127 CIEXYZ phIlluminant;
128 DWORD phCreator;
129 BYTE phReserved[44];
130 } PROFILEHEADER;
131 typedef PROFILEHEADER *PPROFILEHEADER,*LPPROFILEHEADER;
132
133#define CLASS_MONITOR 'mntr'
134#define CLASS_PRINTER 'prtr'
135#define CLASS_SCANNER 'scnr'
136#define CLASS_LINK 'link'
137#define CLASS_ABSTRACT 'abst'
138#define CLASS_COLORSPACE 'spac'
139#define CLASS_NAMED 'nmcl'
140
141#define SPACE_XYZ 'XYZ '
142#define SPACE_Lab 'Lab '
143#define SPACE_Luv 'Luv '
144#define SPACE_YCbCr 'YCbr'
145#define SPACE_Yxy 'Yxy '
146#define SPACE_RGB 'RGB '
147#define SPACE_GRAY 'GRAY'
148#define SPACE_HSV 'HSV '
149#define SPACE_HLS 'HLS '
150#define SPACE_CMYK 'CMYK'
151#define SPACE_CMY 'CMY '
152#define SPACE_2_CHANNEL '2CLR'
153#define SPACE_3_CHANNEL '3CLR'
154#define SPACE_4_CHANNEL '4CLR'
155#define SPACE_5_CHANNEL '5CLR'
156#define SPACE_6_CHANNEL '6CLR'
157#define SPACE_7_CHANNEL '7CLR'
158#define SPACE_8_CHANNEL '8CLR'
159
160#define FLAG_EMBEDDEDPROFILE 0x00000001
161#define FLAG_DEPENDENTONDATA 0x00000002
162
163#define ATTRIB_TRANSPARENCY 0x00000001
164#define ATTRIB_MATTE 0x00000002
165
166#define INTENT_PERCEPTUAL 0
167#define INTENT_RELATIVE_COLORIMETRIC 1
168#define INTENT_SATURATION 2
169#define INTENT_ABSOLUTE_COLORIMETRIC 3
170
171 typedef struct tagPROFILE {
172 DWORD dwType;
173 PVOID pProfileData;
174 DWORD cbDataSize;
175 } PROFILE;
176 typedef PROFILE *PPROFILE,*LPPROFILE;
177
178#define PROFILE_FILENAME 1
179#define PROFILE_MEMBUFFER 2
180
181#define PROFILE_READ 1
182#define PROFILE_READWRITE 2
183
184 typedef HANDLE HPROFILE;
185 typedef HPROFILE *PHPROFILE;
186 typedef HANDLE HTRANSFORM;
187
188#define INDEX_DONT_CARE 0
189
190#define CMM_FROM_PROFILE INDEX_DONT_CARE
191#define CMM_WINDOWS_DEFAULT 'Win '
192
193 typedef DWORD TAGTYPE;
194 typedef TAGTYPE *PTAGTYPE,*LPTAGTYPE;
195
196#define ENUM_TYPE_VERSION 0x0300
197
198 typedef struct tagENUMTYPEA {
199 DWORD dwSize;
200 DWORD dwVersion;
201 DWORD dwFields;
202 PCSTR pDeviceName;
203 DWORD dwMediaType;
204 DWORD dwDitheringMode;
205 DWORD dwResolution[2];
206 DWORD dwCMMType;
207 DWORD dwClass;
208 DWORD dwDataColorSpace;
209 DWORD dwConnectionSpace;
210 DWORD dwSignature;
211 DWORD dwPlatform;
212 DWORD dwProfileFlags;
213 DWORD dwManufacturer;
214 DWORD dwModel;
215 DWORD dwAttributes[2];
216 DWORD dwRenderingIntent;
217 DWORD dwCreator;
218 DWORD dwDeviceClass;
219 } ENUMTYPEA,*PENUMTYPEA,*LPENUMTYPEA;
220
221 typedef struct tagENUMTYPEW {
222 DWORD dwSize;
223 DWORD dwVersion;
224 DWORD dwFields;
225 PCWSTR pDeviceName;
226 DWORD dwMediaType;
227 DWORD dwDitheringMode;
228 DWORD dwResolution[2];
229 DWORD dwCMMType;
230 DWORD dwClass;
231 DWORD dwDataColorSpace;
232 DWORD dwConnectionSpace;
233 DWORD dwSignature;
234 DWORD dwPlatform;
235 DWORD dwProfileFlags;
236 DWORD dwManufacturer;
237 DWORD dwModel;
238 DWORD dwAttributes[2];
239 DWORD dwRenderingIntent;
240 DWORD dwCreator;
241 DWORD dwDeviceClass;
242 } ENUMTYPEW,*PENUMTYPEW,*LPENUMTYPEW;
243
244#define ET_DEVICENAME 0x00000001
245#define ET_MEDIATYPE 0x00000002
246#define ET_DITHERMODE 0x00000004
247#define ET_RESOLUTION 0x00000008
248#define ET_CMMTYPE 0x00000010
249#define ET_CLASS 0x00000020
250#define ET_DATACOLORSPACE 0x00000040
251#define ET_CONNECTIONSPACE 0x00000080
252#define ET_SIGNATURE 0x00000100
253#define ET_PLATFORM 0x00000200
254#define ET_PROFILEFLAGS 0x00000400
255#define ET_MANUFACTURER 0x00000800
256#define ET_MODEL 0x00001000
257#define ET_ATTRIBUTES 0x00002000
258#define ET_RENDERINGINTENT 0x00004000
259#define ET_CREATOR 0x00008000
260#define ET_DEVICECLASS 0x00010000
261
262#define PROOF_MODE 0x00000001
263#define NORMAL_MODE 0x00000002
264#define BEST_MODE 0x00000003
265#define ENABLE_GAMUT_CHECKING 0x00010000
266#define USE_RELATIVE_COLORIMETRIC 0x00020000
267#define FAST_TRANSLATE 0x00040000
268#define RESERVED 0x80000000
269
270#define CSA_A 1
271#define CSA_ABC 2
272#define CSA_DEF 3
273#define CSA_DEFG 4
274#define CSA_GRAY 5
275#define CSA_RGB 6
276#define CSA_CMYK 7
277#define CSA_Lab 8
278
279#define CMM_WIN_VERSION 0
280#define CMM_IDENT 1
281#define CMM_DRIVER_VERSION 2
282#define CMM_DLL_VERSION 3
283#define CMM_VERSION 4
284#define CMM_DESCRIPTION 5
285#define CMM_LOGOICON 6
286
287#define CMS_FORWARD 0
288#define CMS_BACKWARD 1
289
290#define COLOR_MATCH_VERSION 0x0200
291
292#define CMS_DISABLEICM 1
293#define CMS_ENABLEPROOFING 2
294
295#define CMS_SETRENDERINTENT 4
296#define CMS_SETPROOFINTENT 8
297#define CMS_SETMONITORPROFILE 0x10
298#define CMS_SETPRINTERPROFILE 0x20
299#define CMS_SETTARGETPROFILE 0x40
300
301#define CMS_USEHOOK 0x80
302#define CMS_USEAPPLYCALLBACK 0x100
303#define CMS_USEDESCRIPTION 0x200
304
305#define CMS_DISABLEINTENT 0x400
306#define CMS_DISABLERENDERINTENT 0x800
307
308#define CMS_MONITOROVERFLOW __MSABI_LONG(0x80000000)
309#define CMS_PRINTEROVERFLOW __MSABI_LONG(0x40000000)
310#define CMS_TARGETOVERFLOW __MSABI_LONG(0x20000000)
311
312 struct _tagCOLORMATCHSETUPW;
313 struct _tagCOLORMATCHSETUPA;
314
315 typedef WINBOOL (WINAPI *PCMSCALLBACKW)(struct _tagCOLORMATCHSETUPW *,LPARAM);
316 typedef WINBOOL (WINAPI *PCMSCALLBACKA)(struct _tagCOLORMATCHSETUPA *,LPARAM);
317
318 typedef struct _tagCOLORMATCHSETUPW {
319 DWORD dwSize;
320 DWORD dwVersion;
321 DWORD dwFlags;
322 HWND hwndOwner;
323 PCWSTR pSourceName;
324 PCWSTR pDisplayName;
325 PCWSTR pPrinterName;
326 DWORD dwRenderIntent;
327 DWORD dwProofingIntent;
328 PWSTR pMonitorProfile;
329 DWORD ccMonitorProfile;
330 PWSTR pPrinterProfile;
331 DWORD ccPrinterProfile;
332 PWSTR pTargetProfile;
333 DWORD ccTargetProfile;
334 DLGPROC lpfnHook;
335 LPARAM lParam;
336 PCMSCALLBACKW lpfnApplyCallback;
337 LPARAM lParamApplyCallback;
338 } COLORMATCHSETUPW,*PCOLORMATCHSETUPW,*LPCOLORMATCHSETUPW;
339
340 typedef struct _tagCOLORMATCHSETUPA {
341 DWORD dwSize;
342 DWORD dwVersion;
343 DWORD dwFlags;
344 HWND hwndOwner;
345 PCSTR pSourceName;
346 PCSTR pDisplayName;
347 PCSTR pPrinterName;
348 DWORD dwRenderIntent;
349 DWORD dwProofingIntent;
350 PSTR pMonitorProfile;
351 DWORD ccMonitorProfile;
352 PSTR pPrinterProfile;
353 DWORD ccPrinterProfile;
354 PSTR pTargetProfile;
355 DWORD ccTargetProfile;
356 DLGPROC lpfnHook;
357 LPARAM lParam;
358 PCMSCALLBACKA lpfnApplyCallback;
359 LPARAM lParamApplyCallback;
360 } COLORMATCHSETUPA,*PCOLORMATCHSETUPA,*LPCOLORMATCHSETUPA;
361
362 HPROFILE WINAPI OpenColorProfileA(PPROFILE,DWORD,DWORD,DWORD);
363 HPROFILE WINAPI OpenColorProfileW(PPROFILE,DWORD,DWORD,DWORD);
364 WINBOOL WINAPI CloseColorProfile(HPROFILE);
365 WINBOOL WINAPI GetColorProfileFromHandle(HPROFILE,PBYTE,PDWORD);
366 WINBOOL WINAPI IsColorProfileValid(HPROFILE,PBOOL);
367 WINBOOL WINAPI CreateProfileFromLogColorSpaceA(LPLOGCOLORSPACEA,PBYTE*);
368 WINBOOL WINAPI CreateProfileFromLogColorSpaceW(LPLOGCOLORSPACEW,PBYTE*);
369 WINBOOL WINAPI GetCountColorProfileElements(HPROFILE,PDWORD);
370 WINBOOL WINAPI GetColorProfileHeader(HPROFILE,PPROFILEHEADER);
371 WINBOOL WINAPI GetColorProfileElementTag(HPROFILE,DWORD,PTAGTYPE);
372 WINBOOL WINAPI IsColorProfileTagPresent(HPROFILE,TAGTYPE,PBOOL);
373 WINBOOL WINAPI GetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID,PBOOL);
374 WINBOOL WINAPI SetColorProfileHeader(HPROFILE,PPROFILEHEADER);
375 WINBOOL WINAPI SetColorProfileElementSize(HPROFILE,TAGTYPE,DWORD);
376 WINBOOL WINAPI SetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID);
377 WINBOOL WINAPI SetColorProfileElementReference(HPROFILE,TAGTYPE,TAGTYPE);
378 WINBOOL WINAPI GetPS2ColorSpaceArray (HPROFILE,DWORD,DWORD,PBYTE,PDWORD,PBOOL);
379 WINBOOL WINAPI GetPS2ColorRenderingIntent(HPROFILE,DWORD,PBYTE,PDWORD);
380 WINBOOL WINAPI GetPS2ColorRenderingDictionary(HPROFILE,DWORD,PBYTE,PDWORD,PBOOL);
381 WINBOOL WINAPI GetNamedProfileInfo(HPROFILE,PNAMED_PROFILE_INFO);
382 WINBOOL WINAPI ConvertColorNameToIndex(HPROFILE,PCOLOR_NAME,PDWORD,DWORD);
383 WINBOOL WINAPI ConvertIndexToColorName(HPROFILE,PDWORD,PCOLOR_NAME,DWORD);
384 WINBOOL WINAPI CreateDeviceLinkProfile(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,PBYTE*,DWORD);
385 HTRANSFORM WINAPI CreateColorTransformA(LPLOGCOLORSPACEA,HPROFILE,HPROFILE,DWORD);
386 HTRANSFORM WINAPI CreateColorTransformW(LPLOGCOLORSPACEW,HPROFILE,HPROFILE,DWORD);
387 HTRANSFORM WINAPI CreateMultiProfileTransform(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,DWORD);
388 WINBOOL WINAPI DeleteColorTransform(HTRANSFORM);
389 WINBOOL WINAPI TranslateBitmapBits(HTRANSFORM,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PVOID,BMFORMAT,DWORD,PBMCALLBACKFN,LPARAM);
390 WINBOOL WINAPI CheckBitmapBits(HTRANSFORM ,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PBYTE,PBMCALLBACKFN,LPARAM);
391 WINBOOL WINAPI TranslateColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PCOLOR,COLORTYPE);
392 WINBOOL WINAPI CheckColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PBYTE);
393 DWORD WINAPI GetCMMInfo(HTRANSFORM,DWORD);
394 WINBOOL WINAPI RegisterCMMA(PCSTR,DWORD,PCSTR);
395 WINBOOL WINAPI RegisterCMMW(PCWSTR,DWORD,PCWSTR);
396 WINBOOL WINAPI UnregisterCMMA(PCSTR,DWORD);
397 WINBOOL WINAPI UnregisterCMMW(PCWSTR,DWORD);
398 WINBOOL WINAPI SelectCMM(DWORD);
399 WINBOOL WINAPI GetColorDirectoryA(PCSTR pMachineName,PSTR pBuffer,PDWORD pdwSize);
400 WINBOOL WINAPI GetColorDirectoryW(PCWSTR pMachineName,PWSTR pBuffer,PDWORD pdwSize);
401 WINBOOL WINAPI InstallColorProfileA(PCSTR,PCSTR);
402 WINBOOL WINAPI InstallColorProfileW(PCWSTR,PCWSTR);
403 WINBOOL WINAPI UninstallColorProfileA(PCSTR,PCSTR,WINBOOL);
404 WINBOOL WINAPI UninstallColorProfileW(PCWSTR,PCWSTR,WINBOOL);
405 WINBOOL WINAPI EnumColorProfilesA(PCSTR,PENUMTYPEA,PBYTE,PDWORD,PDWORD);
406 WINBOOL WINAPI EnumColorProfilesW(PCWSTR,PENUMTYPEW,PBYTE,PDWORD,PDWORD);
407 WINBOOL WINAPI SetStandardColorSpaceProfileA(PCSTR,DWORD,PCSTR);
408 WINBOOL WINAPI SetStandardColorSpaceProfileW(PCWSTR,DWORD,PCWSTR);
409 WINBOOL WINAPI GetStandardColorSpaceProfileA(PCSTR pMachineName,DWORD dwSCS,PSTR pBuffer,PDWORD pcbSize);
410 WINBOOL WINAPI GetStandardColorSpaceProfileW(PCWSTR pMachineName,DWORD dwSCS,PWSTR pBuffer,PDWORD pcbSize);
411 WINBOOL WINAPI AssociateColorProfileWithDeviceA(PCSTR,PCSTR,PCSTR);
412 WINBOOL WINAPI AssociateColorProfileWithDeviceW(PCWSTR,PCWSTR,PCWSTR);
413 WINBOOL WINAPI DisassociateColorProfileFromDeviceA(PCSTR,PCSTR,PCSTR);
414 WINBOOL WINAPI DisassociateColorProfileFromDeviceW(PCWSTR,PCWSTR,PCWSTR);
415 WINBOOL WINAPI SetupColorMatchingW(PCOLORMATCHSETUPW pcms);
416 WINBOOL WINAPI SetupColorMatchingA(PCOLORMATCHSETUPA pcms);
417
418#define ENUMTYPE __MINGW_NAME_AW(ENUMTYPE)
419#define PENUMTYPE __MINGW_NAME_AW(PENUMTYPE)
420#define COLORMATCHSETUP __MINGW_NAME_AW(COLORMATCHSETUP)
421#define PCOLORMATCHSETUP __MINGW_NAME_AW(PCOLORMATCHSETUP)
422#define LPCOLORMATCHSETUP __MINGW_NAME_AW(LPCOLORMATCHSETUP)
423#define PCMSCALLBACK __MINGW_NAME_AW(PCMSCALLBACK)
424
425#define CreateColorTransform __MINGW_NAME_AW(CreateColorTransform)
426#define OpenColorProfile __MINGW_NAME_AW(OpenColorProfile)
427#define CreateProfileFromLogColorSpace __MINGW_NAME_AW(CreateProfileFromLogColorSpace)
428#define RegisterCMM __MINGW_NAME_AW(RegisterCMM)
429#define UnregisterCMM __MINGW_NAME_AW(UnregisterCMM)
430#define GetColorDirectory __MINGW_NAME_AW(GetColorDirectory)
431#define InstallColorProfile __MINGW_NAME_AW(InstallColorProfile)
432#define UninstallColorProfile __MINGW_NAME_AW(UninstallColorProfile)
433#define AssociateColorProfileWithDevice __MINGW_NAME_AW(AssociateColorProfileWithDevice)
434#define DisassociateColorProfileFromDevice __MINGW_NAME_AW(DisassociateColorProfileFromDevice)
435#define EnumColorProfiles __MINGW_NAME_AW(EnumColorProfiles)
436#define SetStandardColorSpaceProfile __MINGW_NAME_AW(SetStandardColorSpaceProfile)
437#define GetStandardColorSpaceProfile __MINGW_NAME_AW(GetStandardColorSpaceProfile)
438#define SetupColorMatching __MINGW_NAME_AW(SetupColorMatching)
439
440 typedef HANDLE HCMTRANSFORM;
441 typedef PVOID LPDEVCHARACTER;
442
443 WINBOOL WINAPI CMCheckColors(HCMTRANSFORM hcmTransform,LPCOLOR lpaInputColors,DWORD nColors,COLORTYPE ctInput,LPBYTE lpaResult);
444 WINBOOL WINAPI CMCheckColorsInGamut(HCMTRANSFORM hcmTransform,RGBTRIPLE *lpaRGBTriple,LPBYTE lpaResult,UINT nCount);
445 WINBOOL WINAPI CMCheckRGBs(HCMTRANSFORM hcmTransform,LPVOID lpSrcBits,BMFORMAT bmInput,DWORD dwWidth,DWORD dwHeight,DWORD dwStride,LPBYTE lpaResult,PBMCALLBACKFN pfnCallback,LPARAM ulCallbackData);
446 WINBOOL WINAPI CMConvertColorNameToIndex(HPROFILE hProfile,PCOLOR_NAME paColorName,PDWORD paIndex,DWORD dwCount);
447 WINBOOL WINAPI CMConvertIndexToColorName(HPROFILE hProfile,PDWORD paIndex,PCOLOR_NAME paColorName,DWORD dwCount);
448 WINBOOL WINAPI CMCreateDeviceLinkProfile(PHPROFILE pahProfiles,DWORD nProfiles,PDWORD padwIntents,DWORD nIntents,DWORD dwFlags,LPBYTE *lpProfileData);
449 HCMTRANSFORM WINAPI CMCreateMultiProfileTransform(PHPROFILE pahProfiles,DWORD nProfiles,PDWORD padwIntents,DWORD nIntents,DWORD dwFlags);
450 WINBOOL WINAPI CMCreateProfile(LPLOGCOLORSPACEA lpColorSpace,LPDEVCHARACTER *lpProfileData);
451 WINBOOL WINAPI CMCreateProfileW(LPLOGCOLORSPACEW lpColorSpace,LPDEVCHARACTER *lpProfileData);
452 HCMTRANSFORM WINAPI CMCreateTransform(LPLOGCOLORSPACEA lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter);
453 HCMTRANSFORM WINAPI CMCreateTransformW(LPLOGCOLORSPACEW lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter);
454 HCMTRANSFORM WINAPI CMCreateTransformExt(LPLOGCOLORSPACEA lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter,DWORD dwFlags);
455 HCMTRANSFORM WINAPI CMCreateTransformExtW(LPLOGCOLORSPACEW lpColorSpace,LPDEVCHARACTER lpDevCharacter,LPDEVCHARACTER lpTargetDevCharacter,DWORD dwFlags);
456 WINBOOL WINAPI CMDeleteTransform(HCMTRANSFORM hcmTransform);
457 DWORD WINAPI CMGetInfo(DWORD dwInfo);
458 WINBOOL WINAPI CMGetNamedProfileInfo(HPROFILE hProfile,PNAMED_PROFILE_INFO pNamedProfileInfo);
459 WINBOOL WINAPI CMGetPS2ColorRenderingDictionary(HPROFILE hProfile,DWORD dwIntent,LPBYTE lpBuffer,LPDWORD lpcbSize,LPBOOL lpbBinary);
460 WINBOOL WINAPI CMGetPS2ColorRenderingIntent(HPROFILE hProfile,DWORD dwIntent,LPBYTE lpBuffer,LPDWORD lpcbSize);
461 WINBOOL WINAPI CMGetPS2ColorSpaceArray(HPROFILE hProfile,DWORD dwIntent,DWORD dwCSAType,LPBYTE lpBuffer,LPDWORD lpcbSize,LPBOOL lpbBinary);
462 WINBOOL WINAPI CMIsProfileValid(HPROFILE hProfile,LPBOOL lpbValid);
463 WINBOOL WINAPI CMTranslateColors(HCMTRANSFORM hcmTransform,LPCOLOR lpaInputColors,DWORD nColors,COLORTYPE ctInput,LPCOLOR lpaOutputColors,COLORTYPE ctOutput);
464 WINBOOL WINAPI CMTranslateRGB(HCMTRANSFORM hcmTransform,COLORREF ColorRef,LPCOLORREF lpColorRef,DWORD dwFlags);
465 WINBOOL WINAPI CMTranslateRGBs(HCMTRANSFORM hcmTransform,LPVOID lpSrcBits,BMFORMAT bmInput,DWORD dwWidth,DWORD dwHeight,DWORD dwStride,LPVOID lpDestBits,BMFORMAT bmOutput,DWORD dwTranslateDirection);
466 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);
467
468#if (_WIN32_WINNT >= 0x0600)
469 typedef enum tagCOLORDATATYPE {
470 COLOR_BYTE = 1,
471 COLOR_WORD,
472 COLOR_FLOAT,
473 COLOR_S2DOT13FIXED,
474 COLOR_10b_R10G10B10A2,
475 COLOR_10b_R10G10B10A2_XR
476} COLORDATATYPE, *PCOLORDATATYPE, *LPCOLORDATATYPE;
477
478#define INTENT_PERCEPTUAL 0
479#define INTENT_RELATIVE_COLORIMETRIC 1
480#define INTENT_SATURATION 2
481#define INTENT_ABSOLUTE_COLORIMETRIC 3
482
483typedef enum tagCOLORPROFILESUBTYPE {
484 CPST_PERCEPTUAL = INTENT_PERCEPTUAL,
485 CPST_RELATIVE_COLORIMETRIC = INTENT_RELATIVE_COLORIMETRIC,
486 CPST_SATURATION = INTENT_SATURATION,
487 CPST_ABSOLUTE_COLORIMETRIC = INTENT_ABSOLUTE_COLORIMETRIC,
488 CPST_NONE,
489 CPST_RGB_WORKING_SPACE,
490 CPST_CUSTOM_WORKING_SPACE
491} COLORPROFILESUBTYPE, *PCOLORPROFILESUBTYPE, *LPCOLORPROFILESUBTYPE;
492
493typedef enum tagCOLORPROFILETYPE {
494 CPT_ICC = 0,
495 CPT_DMP = 1,
496 CPT_CAMP = 2,
497 CPT_GMMP = 3
498} COLORPROFILETYPE, *PCOLORPROFILETYPE, *LPCOLORPROFILETYPE;
499
500typedef enum tagWCS_PROFILE_MANAGEMENT_SCOPE {
501 WCS_PROFILE_MANAGEMENT_SCOPE_SYSTEM_WIDE = 0,
502 WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER
503} WCS_PROFILE_MANAGEMENT_SCOPE;
504
505WINBOOL WINAPI WcsAssociateColorProfileWithDevice(
506 WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
507 PCWSTR pProfileName,
508 PCWSTR pDeviceName
509);
510
511WINBOOL WINAPI WcsCheckColors(
512 HTRANSFORM hColorTransform,
513 DWORD nColors,
514 DWORD nInputChannels,
515 COLORDATATYPE cdtInput,
516 DWORD cbInput,
517 PVOID pInputData,
518 PBYTE paResult
519);
520
521HPROFILE WINAPI WcsCreateIccProfile(
522 HPROFILE hWcsProfile,
523 DWORD dwOptions
524);
525
526WINBOOL WINAPI WcsDisassociateColorProfileFromDevice(
527 WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
528 PCWSTR pProfileName,
529 PCWSTR pDeviceName
530);
531
532WINBOOL WINAPI WcsEnumColorProfiles(
533 WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
534 PENUMTYPEW pEnumRecord,
535 PBYTE pBuffer,
536 DWORD dwSize,
537 PDWORD pnProfiles
538);
539
540WINBOOL WINAPI WcsEnumColorProfilesSize(
541 WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
542 PENUMTYPEW pEnumRecord,
543 PDWORD pdwSize
544);
545
546WINBOOL WINAPI WcsGetDefaultColorProfile(
547 WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
548 PCWSTR pDeviceName,
549 COLORPROFILETYPE cptColorProfileType,
550 COLORPROFILESUBTYPE cpstColorProfileSubType,
551 DWORD dwProfileID,
552 DWORD cbProfileName,
553 LPWSTR pProfileName
554);
555
556WINBOOL WINAPI WcsGetDefaultColorProfileSize(
557 WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
558 PCWSTR pDeviceName,
559 COLORPROFILETYPE cptColorProfileType,
560 COLORPROFILESUBTYPE cpstColorProfileSubType,
561 DWORD dwProfileID,
562 PDWORD pcbProfileName
563);
564
565WINBOOL WINAPI WcsGetDefaultRenderingIntent(
566 WCS_PROFILE_MANAGEMENT_SCOPE scope,
567 PDWORD pdwRenderingIntent
568);
569
570WINBOOL WINAPI WcsGetUsePerUserProfiles(
571 LPCWSTR pDeviceName,
572 DWORD dwDeviceClass,
573 WINBOOL *pUsePerUserProfiles
574);
575
576#define WcsOpenColorProfile __MINGW_NAME_AW(WcsOpenColorProfile)
577
578HPROFILE WINAPI WcsOpenColorProfileA(
579 PPROFILE pCDMPProfile,
580 PPROFILE pCAMPProfile,
581 PPROFILE pGMMPProfile,
582 DWORD dwDesiredAccess,
583 DWORD dwShareMode,
584 DWORD dwCreationMode,
585 DWORD dwFlags
586);
587
588HPROFILE WINAPI WcsOpenColorProfileW(
589 PPROFILE pCDMPProfile,
590 PPROFILE pCAMPProfile,
591 PPROFILE pGMMPProfile,
592 DWORD dwDesiredAccess,
593 DWORD dwShareMode,
594 DWORD dwCreationMode,
595 DWORD dwFlags
596);
597
598WINBOOL WINAPI WcsSetDefaultColorProfile(
599 WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
600 PCWSTR pDeviceName,
601 COLORPROFILETYPE cptColorProfileType,
602 COLORPROFILESUBTYPE cpstColorProfileSubType,
603 DWORD dwProfileID,
604 LPCWSTR pProfileName
605);
606
607WINBOOL WINAPI WcsSetDefaultRenderingIntent(
608 WCS_PROFILE_MANAGEMENT_SCOPE scope,
609 DWORD dwRenderingIntent
610);
611
612WINBOOL WINAPI WcsSetUsePerUserProfiles(
613 LPCWSTR pDeviceName,
614 DWORD dwDeviceClass,
615 WINBOOL usePerUserProfiles
616);
617
618WINBOOL WINAPI WcsTranslateColors(
619 HTRANSFORM hColorTransform,
620 DWORD nColors,
621 DWORD nInputChannels,
622 COLORDATATYPE cdtInput,
623 DWORD cbInput,
624 PVOID pInputData,
625 DWORD nOutputChannels,
626 COLORDATATYPE cdtOutput,
627 DWORD cbOutput,
628 PVOID pOutputData
629);
630
631#endif /*(_WIN32_WINNT >= 0x0600)*/
632
633#ifdef __cplusplus
634}
635#endif
636#endif
Note: See TracBrowser for help on using the repository browser.