source: Daodan/MinGW/include/icm.h@ 1095

Last change on this file since 1095 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 12.8 KB
Line 
1#ifndef _ICM_H
2#define _ICM_H
3#if __GNUC__ >= 3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
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
64
65DECLARE_HANDLE(HPROFILE);
66typedef HPROFILE *PHPROFILE,*LPHPROFILE;
67DECLARE_HANDLE(HTRANSFORM);\
68
69typedef BOOL (CALLBACK *PBMCALLBACKFN)(ULONG,ULONG,LPARAM);
70struct _tagCOLORMATCHSETUPA;
71struct _tagCOLORMATCHSETUPW;
72typedef BOOL (CALLBACK *PCMSCALLBACKA)(struct _tagCOLORMATCHSETUPA*,LPARAM);
73typedef BOOL (CALLBACK *PCMSCALLBACKW)(struct _tagCOLORMATCHSETUPW*,LPARAM);
74
75typedef CHAR COLOR_NAME[32];
76typedef COLOR_NAME *PCOLOR_NAME,*LPCOLOR_NAME;
77typedef DWORD TAGTYPE,*PTAGTYPE,*LPTAGTYPE;
78typedef enum
79{
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;
115typedef enum
116{
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;
130struct GRAYCOLOR {
131 WORD gray;
132};
133struct RGBCOLOR {
134 WORD red;
135 WORD green;
136 WORD blue;
137};
138struct CMYKCOLOR {
139 WORD cyan;
140 WORD magenta;
141 WORD yellow;
142 WORD black;
143};
144struct XYZCOLOR {
145 WORD X;
146 WORD Y;
147 WORD Z;
148};
149struct YxyCOLOR {
150 WORD Y;
151 WORD x;
152 WORD y;
153};
154struct LabCOLOR {
155 WORD L;
156 WORD a;
157 WORD b;
158};
159struct GENERIC3CHANNEL {
160 WORD ch1;
161 WORD ch2;
162 WORD ch3;
163};
164struct NAMEDCOLOR {
165 DWORD dwIndex;
166};
167struct HiFiCOLOR {
168 BYTE channel[MAX_COLOR_CHANNELS];
169};
170typedef 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;
181typedef 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;
202typedef 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;
223typedef 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;
245typedef 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;
267typedef 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;
274typedef struct tagPROFILE {
275 DWORD dwType;
276 PVOID pProfileData;
277 DWORD cbDataSize;
278} PROFILE,*PPROFILE,*LPPROFILE;
279typedef 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;
298
299BOOL WINAPI AssociateColorProfileWithDeviceA(PCSTR,PCSTR,PCSTR);
300BOOL WINAPI AssociateColorProfileWithDeviceW(PCWSTR,PCWSTR,PCWSTR);
301BOOL WINAPI CheckBitmapBits(HTRANSFORM,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PBYTE,PBMCALLBACKFN,LPARAM);
302BOOL WINAPI CheckColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PBYTE);
303BOOL WINAPI CloseColorProfile(HPROFILE);
304BOOL WINAPI ConvertColorNameToIndex(HPROFILE,PCOLOR_NAME,PDWORD,DWORD);
305BOOL WINAPI ConvertIndexToColorName(HPROFILE,PDWORD,PCOLOR_NAME,DWORD);
306HTRANSFORM WINAPI CreateColorTransformA(LPLOGCOLORSPACEA,HPROFILE,HPROFILE,DWORD);
307HTRANSFORM WINAPI CreateColorTransformW(LPLOGCOLORSPACEW,HPROFILE,HPROFILE,DWORD);
308BOOL WINAPI CreateDeviceLinkProfile(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,PBYTE*,DWORD);
309HTRANSFORM WINAPI CreateMultiProfileTransform(PHPROFILE,DWORD,PDWORD,DWORD,DWORD,DWORD);
310BOOL WINAPI CreateProfileFromLogColorSpaceA(LPLOGCOLORSPACEA,PBYTE*);
311BOOL WINAPI CreateProfileFromLogColorSpaceW(LPLOGCOLORSPACEW,PBYTE*);
312BOOL WINAPI DeleteColorTransform(HTRANSFORM);
313BOOL WINAPI DisassociateColorProfileFromDeviceA(PCSTR,PCSTR,PCSTR);
314BOOL WINAPI DisassociateColorProfileFromDeviceW(PCWSTR,PCWSTR,PCWSTR);
315BOOL WINAPI EnumColorProfilesA(PCSTR,PENUMTYPEA,PBYTE,PDWORD,PDWORD);
316BOOL WINAPI EnumColorProfilesW(PCWSTR,PENUMTYPEW,PBYTE,PDWORD,PDWORD);
317DWORD WINAPI GetCMMInfo(HTRANSFORM,DWORD);
318BOOL WINAPI GetColorDirectoryA(PCSTR,PSTR,PDWORD);
319BOOL WINAPI GetColorDirectoryW(PCWSTR,PWSTR,PDWORD);
320BOOL WINAPI GetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID,PBOOL);
321BOOL WINAPI GetColorProfileElementTag(HPROFILE,DWORD,PTAGTYPE);
322BOOL WINAPI GetColorProfileFromHandle(HPROFILE,PBYTE,PDWORD);
323BOOL WINAPI GetColorProfileHeader(HPROFILE,PPROFILEHEADER);
324BOOL WINAPI GetCountColorProfileElements(HPROFILE,PDWORD);
325BOOL WINAPI GetNamedProfileInfo(HPROFILE,PNAMED_PROFILE_INFO);
326BOOL WINAPI GetPS2ColorRenderingDictionary(HPROFILE,DWORD,PBYTE,PDWORD,PBOOL);
327BOOL WINAPI GetPS2ColorRenderingIntent(HPROFILE,DWORD,PBYTE,PDWORD);
328BOOL WINAPI GetPS2ColorSpaceArray(HPROFILE,DWORD,DWORD,PBYTE,PDWORD,PBOOL);
329BOOL WINAPI GetStandardColorSpaceProfileA(PCSTR,DWORD,PSTR,PDWORD);
330BOOL WINAPI GetStandardColorSpaceProfileW(PCWSTR,DWORD,PWSTR,PDWORD);
331BOOL WINAPI InstallColorProfileA(PCSTR,PCSTR);
332BOOL WINAPI InstallColorProfileW(PCWSTR,PCWSTR);
333BOOL WINAPI IsColorProfileTagPresent(HPROFILE,TAGTYPE,PBOOL);
334BOOL WINAPI IsColorProfileValid(HPROFILE,PBOOL);
335HPROFILE WINAPI OpenColorProfileA(PPROFILE,DWORD,DWORD,DWORD);
336HPROFILE WINAPI OpenColorProfileW(PPROFILE,DWORD,DWORD,DWORD);
337BOOL WINAPI RegisterCMMA(PCSTR,DWORD,PCSTR);
338BOOL WINAPI RegisterCMMW(PCWSTR,DWORD,PCWSTR);
339BOOL WINAPI SelectCMM(DWORD);
340BOOL WINAPI SetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID);
341BOOL WINAPI SetColorProfileElementReference(HPROFILE,TAGTYPE,TAGTYPE);
342BOOL WINAPI SetColorProfileElementSize(HPROFILE,TAGTYPE,DWORD);
343BOOL WINAPI SetColorProfileHeader(HPROFILE,PPROFILEHEADER);
344BOOL WINAPI SetStandardColorSpaceProfileA(PCSTR,DWORD,PCSTR);
345BOOL WINAPI SetStandardColorSpaceProfileW(PCWSTR,DWORD,PCSTR);
346BOOL WINAPI SetupColorMatchingA(PCOLORMATCHSETUPA);
347BOOL WINAPI SetupColorMatchingW(PCOLORMATCHSETUPW);
348BOOL WINAPI TranslateBitmapBits(HTRANSFORM,PVOID,BMFORMAT,DWORD,DWORD,DWORD,PVOID,BMFORMAT,DWORD,PBMCALLBACKFN,ULONG);
349BOOL WINAPI TranslateColors(HTRANSFORM,PCOLOR,DWORD,COLORTYPE,PCOLOR,COLORTYPE);
350BOOL WINAPI UninstallColorProfileA(PCSTR,PCSTR,BOOL);
351BOOL WINAPI UninstallColorProfileW(PCWSTR,PCWSTR,BOOL);
352BOOL WINAPI UnregisterCMMA(PCSTR,DWORD);
353BOOL WINAPI UnregisterCMMW(PCWSTR,DWORD);
354
355#ifdef UNICODE
356typedef PCMSCALLBACKW PCMSCALLBACK;
357typedef COLORMATCHSETUPW COLORMATCHSETUP,*PCOLORMATCHSETUP,*LPCOLORMATCHSETUP;
358typedef 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 */
374typedef PCMSCALLBACKA PCMSCALLBACK;
375typedef COLORMATCHSETUPA COLORMATCHSETUP,*PCOLORMATCHSETUP,*LPCOLORMATCHSETUP;
376typedef 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 */
392
393#endif /* (_WIN32_WINDOWS >= 0x0410 || _WIN32_WINNT >= 0x0500) */
394
395#ifdef __cplusplus
396}
397#endif
398
399#endif /* _ICM_H */
Note: See TracBrowser for help on using the repository browser.