Install w32api-3.13-mingw32-dev.tar.gz
[git/jnareb-git.git] / mingw / include / icm.h
bloba18c8e5e3d24ad742b021b03f02d612e45b5757c
1 #ifndef _ICM_H
2 #define _ICM_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
11 #if (_WIN32_WINDOWS >= 0x0410 || _WIN32_WINNT >= 0x0500)
12 #define MAX_COLOR_CHANNELS 8
13 #define PROFILE_FILENAME 1
14 #define PROFILE_MEMBUFFER 2
15 #define PROFILE_READ 1
16 #define PROFILE_READWRITE 2
17 #define CLASS_SCANNER 0x73636E72
18 #define CLASS_MONITOR 0x6D6E7472
19 #define CLASS_PRINTER 0x70727472
20 #define CLASS_LINK 0x6C696E6B
21 #define CLASS_COLORSPAC 0x73706163
22 #define CLASS_ABSTRACT 0x61627374
23 #define CLASS_NAMED 0x6E6D636C
24 #define SPACE_XYZ 0x58595A20
25 #define SPACE_Lab 0x4C616220
26 #define SPACE_Luv 0x4C757620
27 #define SPACE_YCbCr 0x59436272
28 #define SPACE_Yxy 0x59787920
29 #define SPACE_RGB 0x52474220
30 #define SPACE_GRAY 0x47524159
31 #define SPACE_HSV 0x48535620
32 #define SPACE_HLS 0x484C5320
33 #define SPACE_CMYK 0x434D594B
34 #define SPACE_CMY 0x434D5920
35 #define SPACE_2_CHANNEL 0x32434C52
36 #define SPACE_3_CHANNEL 0x33434C52
37 #define SPACE_4_CHANNEL 0x34434C52
38 #define SPACE_5_CHANNEL 0x35434C52
39 #define SPACE_6_CHANNEL 0x36434C52
40 #define SPACE_7_CHANNEL 0x37434C52
41 #define SPACE_8_CHANNEL 0x38434C52
42 #define FLAG_EMBEDDEDPROFILE 1
43 #define FLAG_DEPENDENTONDATA 2
44 #define ATTRIB_TRANSPARENCY 1
45 #define ATTRIB_MATTE 2
46 #define INTENT_PERCEPTUAL 0
47 #define INTENT_RELATIVE_COLORIMETRIC 1
48 #define INTENT_SATURATION 2
49 #define INTENT_ABSOLUTE_COLORIMETRIC 3
50 #define COLOR_MATCH_VERSION 0x200
51 #define CMS_DISABLEICM 0x1
52 #define CMS_ENABLEPROOFING 0x2
53 #define CMS_SETRENDERINTENT 0x4
54 #define CMS_SETPROOFINTENT 0x8
55 #define CMS_SETMONITORPROFILE 0x10
56 #define CMS_SETPRINTERPROFILE 0x20
57 #define CMS_SETTARGETPROFILE 0x40
58 #define CMS_USEHOOK 0x80
59 #define CMS_USEAPPLYCALLBACK 0x100
60 #define CMS_USEDESCRIPTION 0x200
61 #define CMS_TARGETOVERFLOW 0x20000000
62 #define CMS_PRINTERROVERFLOW 0x40000000
63 #define CMS_MONITOROVERFLOW 0x80000000
65 DECLARE_HANDLE(HPROFILE);
66 typedef HPROFILE *PHPROFILE,*LPHPROFILE;
67 DECLARE_HANDLE(HTRANSFORM);\
69 typedef BOOL (CALLBACK *PBMCALLBACKFN)(ULONG,ULONG,LPARAM);
70 struct _tagCOLORMATCHSETUPA;
71 struct _tagCOLORMATCHSETUPW;
72 typedef BOOL (CALLBACK *PCMSCALLBACKA)(struct _tagCOLORMATCHSETUPA*,LPARAM);
73 typedef BOOL (CALLBACK *PCMSCALLBACKW)(struct _tagCOLORMATCHSETUPW*,LPARAM);
75 typedef CHAR COLOR_NAME[32];
76 typedef COLOR_NAME *PCOLOR_NAME,*LPCOLOR_NAME;
77 typedef DWORD TAGTYPE,*PTAGTYPE,*LPTAGTYPE;
78 typedef enum
80 BM_x555RGB = 0x0000,
81 BM_x555XYZ = 0x0101,
82 BM_x555Yxy,
83 BM_x555Lab,
84 BM_x555G3CH,
85 BM_RGBTRIPLETS = 0x0002,
86 BM_BGRTRIPLETS = 0x0004,
87 BM_XYZTRIPLETS = 0x0201,
88 BM_YxyTRIPLETS,
89 BM_LabTRIPLETS,
90 BM_G3CHTRIPLETS,
91 BM_5CHANNEL,
92 BM_6CHANNEL,
93 BM_7CHANNEL,
94 BM_8CHANNEL,
95 BM_GRAY,
96 BM_xRGBQUADS = 0x0008,
97 BM_xBGRQUADS = 0x0010,
98 BM_xG3CHQUADS = 0x0304,
99 BM_KYMCQUADS,
100 BM_CMYKQUADS = 0x0020,
101 BM_10b_RGB = 0x0009,
102 BM_10b_XYZ = 0x0401,
103 BM_10b_Yxy,
104 BM_10b_Lab,
105 BM_10b_G3CH,
106 BM_NAMED_INDEX,
107 BM_16b_RGB = 0x000A,
108 BM_16b_XYZ = 0x0501,
109 BM_16b_Yxy,
110 BM_16b_Lab,
111 BM_16b_G3CH,
112 BM_16b_GRAY,
113 BM_565RGB = 0x0001
114 } BMFORMAT,*PBMFORMAT,*LPBMFORMAT;
115 typedef enum
117 COLOR_GRAY = 1,
118 COLOR_RGB,
119 COLOR_XYZ,
120 COLOR_Yxy,
121 COLOR_Lab,
122 COLOR_3_CHANNEL,
123 COLOR_CMYK,
124 COLOR_5_CHANNEL,
125 COLOR_6_CHANNEL,
126 COLOR_7_CHANNEL,
127 COLOR_8_CHANNEL,
128 COLOR_NAMED
129 } COLORTYPE,*PCOLORTYPE,*LPCOLORTYPE;
130 struct GRAYCOLOR {
131 WORD gray;
133 struct RGBCOLOR {
134 WORD red;
135 WORD green;
136 WORD blue;
138 struct CMYKCOLOR {
139 WORD cyan;
140 WORD magenta;
141 WORD yellow;
142 WORD black;
144 struct XYZCOLOR {
145 WORD X;
146 WORD Y;
147 WORD Z;
149 struct YxyCOLOR {
150 WORD Y;
151 WORD x;
152 WORD y;
154 struct LabCOLOR {
155 WORD L;
156 WORD a;
157 WORD b;
159 struct GENERIC3CHANNEL {
160 WORD ch1;
161 WORD ch2;
162 WORD ch3;
164 struct NAMEDCOLOR {
165 DWORD dwIndex;
167 struct HiFiCOLOR {
168 BYTE channel[MAX_COLOR_CHANNELS];
170 typedef union tagCOLOR {
171 struct GRAYCOLOR gray;
172 struct RGBCOLOR rgb;
173 struct CMYKCOLOR cmyk;
174 struct XYZCOLOR XYZ;
175 struct YxyCOLOR Yxy;
176 struct LabCOLOR Lab;
177 struct GENERIC3CHANNEL gen3ch;
178 struct NAMEDCOLOR named;
179 struct HiFiCOLOR hifi;
180 } COLOR,*PCOLOR,*LPCOLOR;
181 typedef struct _tagCOLORMATCHSETUPA {
182 DWORD dwSize;
183 DWORD dwVersion;
184 DWORD dwFlags;
185 HWND hwndOwner;
186 PCSTR pSourceName;
187 PCSTR pDisplayName;
188 PCSTR pPrinterName;
189 DWORD dwRenderIntent;
190 DWORD dwProofingIntent;
191 PSTR pMonitorProfile;
192 DWORD ccMonitorProfile;
193 PSTR pPrinterProfile;
194 DWORD ccPrinterProfile;
195 PSTR pTargetProfile;
196 DWORD ccTargetProfile;
197 DLGPROC lpfnHook;
198 LPARAM lParam;
199 PCMSCALLBACKA lpfnApplyCallback;
200 LPARAM lParamApplyCallback;
201 } COLORMATCHSETUPA,*PCOLORMATCHSETUPA,*LPCOLORMATCHSETUPA;
202 typedef struct _tagCOLORMATCHSETUPW {
203 DWORD dwSize;
204 DWORD dwVersion;
205 DWORD dwFlags;
206 HWND hwndOwner;
207 PCWSTR pSourceName;
208 PCWSTR pDisplayName;
209 PCWSTR pPrinterName;
210 DWORD dwRenderIntent;
211 DWORD dwProofingIntent;
212 PWSTR pMonitorProfile;
213 DWORD ccMonitorProfile;
214 PWSTR pPrinterProfile;
215 DWORD ccPrinterProfile;
216 PWSTR pTargetProfile;
217 DWORD ccTargetProfile;
218 DLGPROC lpfnHook;
219 LPARAM lParam;
220 PCMSCALLBACKW lpfnApplyCallback;
221 LPARAM lParamApplyCallback;
222 } COLORMATCHSETUPW,*PCOLORMATCHSETUPW,*LPCOLORMATCHSETUPW;
223 typedef struct tagENUMTYPEW {
224 DWORD dwSize;
225 DWORD dwVersion;
226 DWORD dwFields;
227 PCWSTR pDeviceName;
228 DWORD dwMediaType;
229 DWORD dwDitheringMode;
230 DWORD dwResolution[2];
231 DWORD dwCMMType;
232 DWORD dwClass;
233 DWORD dwDataColorSpace;
234 DWORD dwConnectionSpace;
235 DWORD dwSignature;
236 DWORD dwPlatform;
237 DWORD dwProfileFlags;
238 DWORD dwManufacturer;
239 DWORD dwModel;
240 DWORD dwAttributes[2];
241 DWORD dwRenderingIntent;
242 DWORD dwCreator;
243 DWORD dwDeviceClass;
244 } ENUMTYPEW,*PENUMTYPEW,*LPENUMTYPEW;
245 typedef struct tagENUMTYPEA {
246 DWORD dwSize;
247 DWORD dwVersion;
248 DWORD dwFields;
249 PCSTR pDeviceName;
250 DWORD dwMediaType;
251 DWORD dwDitheringMode;
252 DWORD dwResolution[2];
253 DWORD dwCMMType;
254 DWORD dwClass;
255 DWORD dwDataColorSpace;
256 DWORD dwConnectionSpace;
257 DWORD dwSignature;
258 DWORD dwPlatform;
259 DWORD dwProfileFlags;
260 DWORD dwManufacturer;
261 DWORD dwModel;
262 DWORD dwAttributes[2];
263 DWORD dwRenderingIntent;
264 DWORD dwCreator;
265 DWORD dwDeviceClass;
266 } ENUMTYPEA,*PENUMTYPEA,*LPENUMTYPEA;
267 typedef struct tagNAMED_PROFILE_INFO{
268 DWORD dwFlags;
269 DWORD dwCount;
270 DWORD dwCountDevCoordinates;
271 COLOR_NAME szPrefix;
272 COLOR_NAME szSuffix;
273 } NAMED_PROFILE_INFO,*PNAMED_PROFILE_INFO,*LPNAMED_PROFILE_INFO;
274 typedef struct tagPROFILE {
275 DWORD dwType;
276 PVOID pProfileData;
277 DWORD cbDataSize;
278 } PROFILE,*PPROFILE,*LPPROFILE;
279 typedef struct tagPROFILEHEADER {
280 DWORD phSize;
281 DWORD phCMMType;
282 DWORD phVersion;
283 DWORD phClass;
284 DWORD phDataColorSpace;
285 DWORD phConnectionSpace;
286 DWORD phDateTime[3];
287 DWORD phSignature;
288 DWORD phPlatform;
289 DWORD phProfileFlags;
290 DWORD phManufacturer;
291 DWORD phModel;
292 DWORD phAttributes[2];
293 DWORD phRenderingIntent;
294 CIEXYZ phIlluminant;
295 DWORD phCreator;
296 BYTE phReserved[44];
297 } PROFILEHEADER,*PPROFILEHEADER,*LPPROFILEHEADER;
299 BOOL WINAPI AssociateColorProfileWithDeviceA(PCSTR,PCSTR,PCSTR);
300 BOOL WINAPI AssociateColorProfileWithDeviceW(PCWSTR,PCWSTR,PCWSTR);
301 BOOL WINAPI CheckBitmapBits(HTRANSFORM,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PBYTE,PBMCALLBACKFN,LPARAM);
302 BOOL WINAPI CheckColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PBYTE);
303 BOOL WINAPI CloseColorProfile(HPROFILE);
304 BOOL WINAPI ConvertColorNameToIndex(HPROFILE,PCOLOR_NAME,PDWORD,DWORD);
305 BOOL WINAPI ConvertIndexToColorName(HPROFILE,PDWORD,PCOLOR_NAME,DWORD);
306 HTRANSFORM WINAPI CreateColorTransformA(LPLOGCOLORSPACEA,HPROFILE,HPROFILE,DWORD);
307 HTRANSFORM WINAPI CreateColorTransformW(LPLOGCOLORSPACEW,HPROFILE,HPROFILE,DWORD);
308 BOOL WINAPI CreateDeviceLinkProfile(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,PBYTE*,DWORD);
309 HTRANSFORM WINAPI CreateMultiProfileTransform(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,DWORD);
310 BOOL WINAPI CreateProfileFromLogColorSpaceA(LPLOGCOLORSPACEA,PBYTE*);
311 BOOL WINAPI CreateProfileFromLogColorSpaceW(LPLOGCOLORSPACEW,PBYTE*);
312 BOOL WINAPI DeleteColorTransform(HTRANSFORM);
313 BOOL WINAPI DisassociateColorProfileFromDeviceA(PCSTR,PCSTR,PCSTR);
314 BOOL WINAPI DisassociateColorProfileFromDeviceW(PCWSTR,PCWSTR,PCWSTR);
315 BOOL WINAPI EnumColorProfilesA(PCSTR,PENUMTYPEA,PBYTE,PDWORD,PDWORD);
316 BOOL WINAPI EnumColorProfilesW(PCWSTR,PENUMTYPEW,PBYTE,PDWORD,PDWORD);
317 DWORD WINAPI GetCMMInfo(HTRANSFORM,DWORD);
318 BOOL WINAPI GetColorDirectoryA(PCSTR,PSTR,PDWORD);
319 BOOL WINAPI GetColorDirectoryW(PCWSTR,PWSTR,PDWORD);
320 BOOL WINAPI GetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID,PBOOL);
321 BOOL WINAPI GetColorProfileElementTag(HPROFILE,DWORD,PTAGTYPE);
322 BOOL WINAPI GetColorProfileFromHandle(HPROFILE,PBYTE,PDWORD);
323 BOOL WINAPI GetColorProfileHeader(HPROFILE,PPROFILEHEADER);
324 BOOL WINAPI GetCountColorProfileElements(HPROFILE,PDWORD);
325 BOOL WINAPI GetNamedProfileInfo(HPROFILE,PNAMED_PROFILE_INFO);
326 BOOL WINAPI GetPS2ColorRenderingDictionary(HPROFILE,DWORD,PBYTE,PDWORD,PBOOL);
327 BOOL WINAPI GetPS2ColorRenderingIntent(HPROFILE,DWORD,PBYTE,PDWORD);
328 BOOL WINAPI GetPS2ColorSpaceArray(HPROFILE,DWORD,DWORD,PBYTE,PDWORD,PBOOL);
329 BOOL WINAPI GetStandardColorSpaceProfileA(PCSTR,DWORD,PSTR,PDWORD);
330 BOOL WINAPI GetStandardColorSpaceProfileW(PCWSTR,DWORD,PWSTR,PDWORD);
331 BOOL WINAPI InstallColorProfileA(PCSTR,PCSTR);
332 BOOL WINAPI InstallColorProfileW(PCWSTR,PCWSTR);
333 BOOL WINAPI IsColorProfileTagPresent(HPROFILE,TAGTYPE,PBOOL);
334 BOOL WINAPI IsColorProfileValid(HPROFILE,PBOOL);
335 HPROFILE WINAPI OpenColorProfileA(PPROFILE,DWORD,DWORD,DWORD);
336 HPROFILE WINAPI OpenColorProfileW(PPROFILE,DWORD,DWORD,DWORD);
337 BOOL WINAPI RegisterCMMA(PCSTR,DWORD,PCSTR);
338 BOOL WINAPI RegisterCMMW(PCWSTR,DWORD,PCWSTR);
339 BOOL WINAPI SelectCMM(DWORD);
340 BOOL WINAPI SetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID);
341 BOOL WINAPI SetColorProfileElementReference(HPROFILE,TAGTYPE,TAGTYPE);
342 BOOL WINAPI SetColorProfileElementSize(HPROFILE,TAGTYPE,DWORD);
343 BOOL WINAPI SetColorProfileHeader(HPROFILE,PPROFILEHEADER);
344 BOOL WINAPI SetStandardColorSpaceProfileA(PCSTR,DWORD,PCSTR);
345 BOOL WINAPI SetStandardColorSpaceProfileW(PCWSTR,DWORD,PCSTR);
346 BOOL WINAPI SetupColorMatchingA(PCOLORMATCHSETUPA);
347 BOOL WINAPI SetupColorMatchingW(PCOLORMATCHSETUPW);
348 BOOL WINAPI TranslateBitmapBits(HTRANSFORM,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PVOID,BMFORMAT,DWORD,PBMCALLBACKFN,ULONG);
349 BOOL WINAPI TranslateColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PCOLOR,COLORTYPE);
350 BOOL WINAPI UninstallColorProfileA(PCSTR,PCSTR,BOOL);
351 BOOL WINAPI UninstallColorProfileW(PCWSTR,PCWSTR,BOOL);
352 BOOL WINAPI UnregisterCMMA(PCSTR,DWORD);
353 BOOL WINAPI UnregisterCMMW(PCWSTR,DWORD);
355 #ifdef UNICODE
356 typedef PCMSCALLBACKW PCMSCALLBACK;
357 typedef COLORMATCHSETUPW COLORMATCHSETUP,*PCOLORMATCHSETUP,*LPCOLORMATCHSETUP;
358 typedef ENUMTYPEW ENUMTYPE,*PENUMTYPE,*LPENUMTYPE;
359 #define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceW
360 #define CreateColorTransform CreateColorTransformW
361 #define CreateProfileFromLogColorSpace CreateProfileFromLogColorSpaceW
362 #define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceW
363 #define EnumColorProfiles EnumColorProfilesW
364 #define GetColorDirectory GetColorDirectoryW
365 #define GetStandardColorSpaceProfile GetStandardColorSpaceProfileW
366 #define InstallColorProfile InstallColorProfileW
367 #define OpenColorProfile OpenColorProfileW
368 #define RegisterCMM RegisterCMMW
369 #define SetStandardColorSpaceProfile SetStandardColorSpaceProfileW
370 #define SetupColorMatching SetupColorMatchingW
371 #define UninstallColorProfile UninstallColorProfileW
372 #define UnregisterCMM UnregisterCMMW
373 #else /* UNICODE */
374 typedef PCMSCALLBACKA PCMSCALLBACK;
375 typedef COLORMATCHSETUPA COLORMATCHSETUP,*PCOLORMATCHSETUP,*LPCOLORMATCHSETUP;
376 typedef ENUMTYPEA ENUMTYPE,*PENUMTYPE,*LPENUMTYPE;
377 #define AssociateColorProfileWithDevice AssociateColorProfileWithDeviceA
378 #define CreateColorTransform CreateColorTransformA
379 #define CreateProfileFromLogColorSpace CreateProfileFromLogColorSpaceA
380 #define DisassociateColorProfileFromDevice DisassociateColorProfileFromDeviceA
381 #define EnumColorProfiles EnumColorProfilesA
382 #define GetColorDirectory GetColorDirectoryA
383 #define GetStandardColorSpaceProfile GetStandardColorSpaceProfileA
384 #define InstallColorProfile InstallColorProfileA
385 #define OpenColorProfile OpenColorProfileA
386 #define RegisterCMM RegisterCMMA
387 #define SetStandardColorSpaceProfile SetStandardColorSpaceProfileA
388 #define SetupColorMatching SetupColorMatchingA
389 #define UninstallColorProfile UninstallColorProfileA
390 #define UnregisterCMM UnregisterCMMA
391 #endif /* !UNICODE */
393 #endif /* (_WIN32_WINDOWS >= 0x0410 || _WIN32_WINNT >= 0x0500) */
395 #ifdef __cplusplus
397 #endif
399 #endif /* _ICM_H */