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
|
---|
12 | extern "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 |
|
---|
483 | typedef 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 |
|
---|
493 | typedef enum tagCOLORPROFILETYPE {
|
---|
494 | CPT_ICC = 0,
|
---|
495 | CPT_DMP = 1,
|
---|
496 | CPT_CAMP = 2,
|
---|
497 | CPT_GMMP = 3
|
---|
498 | } COLORPROFILETYPE, *PCOLORPROFILETYPE, *LPCOLORPROFILETYPE;
|
---|
499 |
|
---|
500 | typedef 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 |
|
---|
505 | WINBOOL WINAPI WcsAssociateColorProfileWithDevice(
|
---|
506 | WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
|
---|
507 | PCWSTR pProfileName,
|
---|
508 | PCWSTR pDeviceName
|
---|
509 | );
|
---|
510 |
|
---|
511 | WINBOOL 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 |
|
---|
521 | HPROFILE WINAPI WcsCreateIccProfile(
|
---|
522 | HPROFILE hWcsProfile,
|
---|
523 | DWORD dwOptions
|
---|
524 | );
|
---|
525 |
|
---|
526 | WINBOOL WINAPI WcsDisassociateColorProfileFromDevice(
|
---|
527 | WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
|
---|
528 | PCWSTR pProfileName,
|
---|
529 | PCWSTR pDeviceName
|
---|
530 | );
|
---|
531 |
|
---|
532 | WINBOOL WINAPI WcsEnumColorProfiles(
|
---|
533 | WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
|
---|
534 | PENUMTYPEW pEnumRecord,
|
---|
535 | PBYTE pBuffer,
|
---|
536 | DWORD dwSize,
|
---|
537 | PDWORD pnProfiles
|
---|
538 | );
|
---|
539 |
|
---|
540 | WINBOOL WINAPI WcsEnumColorProfilesSize(
|
---|
541 | WCS_PROFILE_MANAGEMENT_SCOPE profileManagementScope,
|
---|
542 | PENUMTYPEW pEnumRecord,
|
---|
543 | PDWORD pdwSize
|
---|
544 | );
|
---|
545 |
|
---|
546 | WINBOOL 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 |
|
---|
556 | WINBOOL 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 |
|
---|
565 | WINBOOL WINAPI WcsGetDefaultRenderingIntent(
|
---|
566 | WCS_PROFILE_MANAGEMENT_SCOPE scope,
|
---|
567 | PDWORD pdwRenderingIntent
|
---|
568 | );
|
---|
569 |
|
---|
570 | WINBOOL WINAPI WcsGetUsePerUserProfiles(
|
---|
571 | LPCWSTR pDeviceName,
|
---|
572 | DWORD dwDeviceClass,
|
---|
573 | WINBOOL *pUsePerUserProfiles
|
---|
574 | );
|
---|
575 |
|
---|
576 | #define WcsOpenColorProfile __MINGW_NAME_AW(WcsOpenColorProfile)
|
---|
577 |
|
---|
578 | HPROFILE 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 |
|
---|
588 | HPROFILE 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 |
|
---|
598 | WINBOOL 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 |
|
---|
607 | WINBOOL WINAPI WcsSetDefaultRenderingIntent(
|
---|
608 | WCS_PROFILE_MANAGEMENT_SCOPE scope,
|
---|
609 | DWORD dwRenderingIntent
|
---|
610 | );
|
---|
611 |
|
---|
612 | WINBOOL WINAPI WcsSetUsePerUserProfiles(
|
---|
613 | LPCWSTR pDeviceName,
|
---|
614 | DWORD dwDeviceClass,
|
---|
615 | WINBOOL usePerUserProfiles
|
---|
616 | );
|
---|
617 |
|
---|
618 | WINBOOL 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
|
---|