Set the miter limit in the DC state.
[wine] / include / icm.h
1 /*
2  * Copyright 2004 (C) Mike McCormack
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #ifndef __WINE_ICM_H
20 #define __WINE_ICM_H
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 typedef HANDLE HPROFILE;
27 typedef HPROFILE *PHPROFILE;
28 typedef HANDLE HTRANSFORM;
29
30 typedef DWORD TAGTYPE, *PTAGTYPE, *LPTAGTYPE;
31
32 typedef enum
33 {
34     BM_x555RGB     = 0x00,
35     BM_565RGB      = 0x01,
36     BM_RGBTRIPLETS = 0x02,
37     BM_BGRTRIPLETS = 0x04,
38     BM_xRGBQUADS   = 0x08,
39     BM_10b_RGB     = 0x09,
40     BM_16b_RGB     = 0x0a,
41     BM_xBGRQUADS   = 0x10,
42     BM_CMYKQUADS   = 0x20,
43     BM_x555XYZ     = 0x101,
44     BM_x555Yxz,
45     BM_x555Lab,
46     BM_x555G3CH,
47     BM_XYZTRIPLETS = 0x201,
48     BM_YxyTRIPLETS,
49     BM_LabTRIPLETS,
50     BM_G3CHTRIPLETS,
51     BM_5CHANNEL,
52     BM_6CHANNEL,
53     BM_7CHANNEL,
54     BM_8CHANNEL,
55     BM_GRAY,
56     BM_xXYZQUADS   = 0x301,
57     BM_xYxyQUADS,
58     BM_xLabQUADS,
59     BM_xG3CHQUADS,
60     BM_KYMCQUADS,
61     BM_10b_XYZ     = 0x401,
62     BM_10b_Yxy,
63     BM_10b_Lab,
64     BM_10b_G3CH,
65     BM_NAMED_INDEX,
66     BM_16b_XYZ     = 0x501,
67     BM_16b_Yxy,
68     BM_16b_Lab,
69     BM_16b_G3CH,
70     BM_16b_GRAY,
71 } BMFORMAT, *PBMFORMAT, *LPBMFORMAT;
72
73 typedef BOOL (CALLBACK *PBMCALLBACKFN)(ULONG,ULONG,LPARAM);
74 typedef PBMCALLBACKFN LPPBMCALLBACKFN;
75
76 typedef struct tagPROFILEHEADER
77 {
78     DWORD phSize;
79     DWORD phCMMType;
80     DWORD phVersion;
81     DWORD phClass;
82     DWORD phDataColorSpace;
83     DWORD phConnectionSpace;
84     DWORD phDateTime[3];
85     DWORD phSignature;
86     DWORD phPlatform;
87     DWORD phProfileFlags;
88     DWORD phManufacturer;
89     DWORD phModel;
90     DWORD phAttributes;
91     DWORD phRenderingIntent;
92     CIEXYZ phIlluminant;
93     DWORD phCreator;
94     BYTE phReserved[44];
95 } PROFILEHEADER, *PPROFILEHEADER, *LPPROFILEHEADER;
96
97 typedef struct tagPROFILE
98 {
99     DWORD dwType;
100     PVOID pProfileData;
101     DWORD cbDataSize;
102 } PROFILE, *PPROFILE, *LPPROFILE;
103
104
105 struct _tagCOLORMATCHSETUPA;
106 struct _tagCOLORMATCHSETUPW;
107
108 typedef BOOL (WINAPI *PCMSCALLBACKA)(struct _tagCOLORMATCHSETUPA*,LPARAM);
109 typedef BOOL (WINAPI *PCMSCALLBACKW)(struct _tagCOLORMATCHSETUPW*,LPARAM);
110
111 typedef struct _tagCOLORMATCHSETUPA
112 {
113     DWORD dwSize;
114     DWORD dwVersion;
115     DWORD dwFlags;
116     HWND  hwndOwner;
117     PCSTR pSourceName;
118     PCSTR pDisplayName;
119     PCSTR pPrinterName;
120     DWORD dwRenderIntent;
121     DWORD dwProofingIntent;
122     PSTR  pMonitorProfile;
123     DWORD ccMonitorProfile;
124     PSTR  pPrinterProfile;
125     DWORD ccPrinterProfile;
126     PSTR  pTargetProfile;
127     DWORD ccTargetProfile;
128     DLGPROC lpfnHook;
129     LPARAM lParam;
130     PCMSCALLBACKA lpfnApplyCallback;
131     LPARAM lParamApplyCallback;
132 } COLORMATCHSETUPA, *PCOLORMATCHSETUPA, *LPCOLORMATCHSETUPA;
133
134 typedef struct _tagCOLORMATCHSETUPW
135 {
136     DWORD dwSize;
137     DWORD dwVersion;
138     DWORD dwFlags;
139     HWND  hwndOwner;
140     PCWSTR pSourceName;
141     PCWSTR pDisplayName;
142     PCWSTR pPrinterName;
143     DWORD dwRenderIntent;
144     DWORD dwProofingIntent;
145     PWSTR  pMonitorProfile;
146     DWORD ccMonitorProfile;
147     PWSTR  pPrinterProfile;
148     DWORD ccPrinterProfile;
149     PWSTR  pTargetProfile;
150     DWORD ccTargetProfile;
151     DLGPROC lpfnHook;
152     LPARAM lParam;
153     PCMSCALLBACKW lpfnApplyCallback;
154     LPARAM lParamApplyCallback;
155 } COLORMATCHSETUPW, *PCOLORMATCHSETUPW, *LPCOLORMATCHSETUPW;
156
157 BOOL       WINAPI CloseColorProfile(HPROFILE);
158 BOOL       WINAPI GetColorDirectoryA(PCSTR,PSTR,PDWORD);
159 BOOL       WINAPI GetColorDirectoryW(PCWSTR,PWSTR,PDWORD);
160 #define    GetColorDirectory WINELIB_NAME_AW(GetColorDirectory)
161 BOOL       WINAPI GetColorProfileElement(HPROFILE,TAGTYPE,DWORD,PDWORD,PVOID,PBOOL);
162 BOOL       WINAPI GetColorProfileElementTag(HPROFILE,DWORD,PTAGTYPE);
163 BOOL       WINAPI GetCountColorProfileElements(HPROFILE,PDWORD);
164 BOOL       WINAPI GetStandardColorSpaceProfileA(PCSTR,DWORD,PSTR,PDWORD);
165 BOOL       WINAPI GetStandardColorSpaceProfileW(PCWSTR,DWORD,PWSTR,PDWORD);
166 #define    GetStandardColorSpaceProfile WINELIB_NAME_AW(GetStandardColorSpaceProfile)
167 BOOL       WINAPI InstallColorProfileA(PCSTR,PCSTR);
168 BOOL       WINAPI InstallColorProfileW(PCWSTR,PCWSTR);
169 #define    InstallColorProfile WINELIB_NAME_AW(InstallColorProfile)
170 BOOL       WINAPI IsColorProfileTagPresent(HPROFILE,TAGTYPE,PBOOL);
171 BOOL       WINAPI IsColorProfileValid(HPROFILE,PBOOL);
172 HPROFILE   WINAPI OpenColorProfileA(PPROFILE,DWORD,DWORD,DWORD);
173 HPROFILE   WINAPI OpenColorProfileW(PPROFILE,DWORD,DWORD,DWORD);
174 #define    OpenColorProfile WINELIB_NAME_AW(OpenColorProfile)
175 BOOL       WINAPI SetupColorMatchingA(PCOLORMATCHSETUPA);
176 BOOL       WINAPI SetupColorMatchingW(PCOLORMATCHSETUPW);
177 #define    SetupColorMatching WINELIB_NAME_AW(SetupColorMatching)
178 BOOL       WINAPI UninstallColorProfileA(PCSTR,PCSTR,BOOL);
179 BOOL       WINAPI UninstallColorProfileW(PCWSTR,PCWSTR,BOOL);
180 #define    UninstallColorProfile WINELIB_NAME_AW(UninstallColorProfile)
181
182 #define PROFILE_FILENAME    1
183 #define PROFILE_MEMBUFFER   2
184
185 #define PROFILE_READ        1
186 #define PROFILE_READWRITE   2
187
188 #ifdef __cplusplus
189 }
190 #endif
191
192 #endif /* __WINE_ICM_H */