convert all of the gdiplus stuff to lowercase
[reactos.git] / reactos / w32api / include / gdiplusimaging.h
1 /*
2 * GdiPlusImaging.h
3 *
4 * Windows GDI+
5 *
6 * This file is part of the w32api package.
7 *
8 * THIS SOFTWARE IS NOT COPYRIGHTED
9 *
10 * This source code is offered for use in the public domain. You may
11 * use, modify or distribute it freely.
12 *
13 * This code is distributed in the hope that it will be useful but
14 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
15 * DISCLAIMED. This includes but is not limited to warranties of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 */
18
19 #ifndef _GDIPLUSIMAGING_H
20 #define _GDIPLUSIMAGING_H
21
22 #if __GNUC__ >= 3
23 #pragma GCC system_header
24 #endif
25
26 DEFINE_GUID(ImageFormatBMP, 0xb96b3cab,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
27 DEFINE_GUID(ImageFormatEMF, 0xb96b3cac,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
28 DEFINE_GUID(ImageFormatEXIF, 0xb96b3cb2,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
29 DEFINE_GUID(ImageFormatGIF, 0xb96b3cb0,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
30 DEFINE_GUID(ImageFormatIcon, 0xb96b3cb5,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
31 DEFINE_GUID(ImageFormatJPEG, 0xb96b3cae,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
32 DEFINE_GUID(ImageFormatMemoryBMP, 0xb96b3caa,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
33 DEFINE_GUID(ImageFormatPNG, 0xb96b3caf,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
34 DEFINE_GUID(ImageFormatTIFF, 0xb96b3cb1,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
35 DEFINE_GUID(ImageFormatUndefined, 0xb96b3ca9,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
36 DEFINE_GUID(ImageFormatWMF, 0xb96b3cad,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
37
38 DEFINE_GUID(FrameDimensionPage, 0x7462dc86,0x6180,0x4c7e,0x8e,0x3f,0xee,0x73,0x33,0xa7,0xa4,0x83);
39 DEFINE_GUID(FrameDimensionTime, 0x6aedbd6d,0x3fb5,0x418a,0x83,0xa6,0x7f,0x45,0x22,0x9d,0xc8,0x72);
40
41 DEFINE_GUID(EncoderChrominanceTable,0xf2e455dc,0x09b3,0x4316,0x82,0x60,0x67,0x6a,0xda,0x32,0x48,0x1c);
42 DEFINE_GUID(EncoderColorDepth, 0x66087055,0xad66,0x4c7c,0x9a,0x18,0x38,0xa2,0x31,0x0b,0x83,0x37);
43 DEFINE_GUID(EncoderCompression, 0xe09d739d,0xccd4,0x44ee,0x8e,0xba,0x3f,0xbf,0x8b,0xe4,0xfc,0x58);
44 DEFINE_GUID(EncoderLuminanceTable,0xedb33bce,0x0266,0x4a77,0xb9,0x04,0x27,0x21,0x60,0x99,0xe7,0x17);
45 DEFINE_GUID(EncoderQuality, 0x1d5be4b5,0xfa4a,0x452d,0x9c,0xdd,0x5d,0xb3,0x51,0x05,0xe7,0xeb);
46 DEFINE_GUID(EncoderRenderMethod, 0x6d42c53a,0x229a,0x4825,0x8b,0xb7,0x5c,0x99,0xe2,0xb9,0xa8,0xb8);
47 DEFINE_GUID(EncoderSaveFlag,0x292266fc,0xac40,0x47bf,0x8c, 0xfc, 0xa8, 0x5b, 0x89, 0xa6, 0x55, 0xde);
48 DEFINE_GUID(EncoderScanMethod, 0x3a4e2661,0x3109,0x4e56,0x85,0x36,0x42,0xc1,0x56,0xe7,0xdc,0xfa);
49 DEFINE_GUID(EncoderTransformation,0x8d0eb2d1,0xa58e,0x4ea8,0xaa,0x14,0x10,0x80,0x74,0xb7,0xb6,0xf9);
50 DEFINE_GUID(EncoderVersion, 0x24d18c76,0x814a,0x41a4,0xbf,0x53,0x1c,0x21,0x9c,0xcc,0xf7,0x97);
51
52 #define PropertyTagTypeASCII 2
53 #define PropertyTagTypeByte 1
54 #define PropertyTagTypeLong 4
55 #define PropertyTagTypeRational 5
56 #define PropertyTagTypeShort 3
57 #define PropertyTagTypeSLONG 9
58 #define PropertyTagTypeSRational 10
59 #define PropertyTagTypeUndefined 7
60
61 #define PropertyTagGpsVer 0x0000
62 #define PropertyTagGpsLatitudeRef 0x0001
63 #define PropertyTagGpsLatitude 0x0002
64 #define PropertyTagGpsLongitudeRef 0x0003
65 #define PropertyTagGpsLongitude 0x0004
66 #define PropertyTagGpsAltitudeRef 0x0005
67 #define PropertyTagGpsAltitude 0x0006
68 #define PropertyTagGpsGpsTime 0x0007
69 #define PropertyTagGpsGpsSatellites 0x0008
70 #define PropertyTagGpsGpsStatus 0x0009
71 #define PropertyTagGpsGpsMeasureMode 0x000A
72 #define PropertyTagGpsGpsDop 0x000B
73 #define PropertyTagGpsSpeedRef 0x000C
74 #define PropertyTagGpsSpeed 0x000D
75 #define PropertyTagGpsTrackRef 0x000E
76 #define PropertyTagGpsTrack 0x000F
77 #define PropertyTagGpsImgDirRef 0x0010
78 #define PropertyTagGpsImgDir 0x0011
79 #define PropertyTagGpsMapDatum 0x0012
80 #define PropertyTagGpsDestLatRef 0x0013
81 #define PropertyTagGpsDestLat 0x0014
82 #define PropertyTagGpsDestLongRef 0x0015
83 #define PropertyTagGpsDestLong 0x0016
84 #define PropertyTagGpsDestBearRef 0x0017
85 #define PropertyTagGpsDestBear 0x0018
86 #define PropertyTagGpsDestDistRef 0x0019
87 #define PropertyTagGpsDestDist 0x001A
88 #define PropertyTagNewSubfileType 0x00FE
89 #define PropertyTagSubfileType 0x00FF
90 #define PropertyTagImageWidth 0x0100
91 #define PropertyTagImageHeight 0x0101
92 #define PropertyTagBitsPerSample 0x0102
93 #define PropertyTagCompression 0x0103
94 #define PropertyTagPhotometricInterp 0x0106
95 #define PropertyTagThreshHolding 0x0107
96 #define PropertyTagCellWidth 0x0108
97 #define PropertyTagCellHeight 0x0109
98 #define PropertyTagFillOrder 0x010A
99 #define PropertyTagDocumentName 0x010D
100 #define PropertyTagImageDescription 0x010E
101 #define PropertyTagEquipMake 0x010F
102 #define PropertyTagEquipModel 0x0110
103 #define PropertyTagStripOffsets 0x0111
104 #define PropertyTagOrientation 0x0112
105 #define PropertyTagSamplesPerPixel 0x0115
106 #define PropertyTagRowsPerStrip 0x0116
107 #define PropertyTagStripBytesCount 0x0117
108 #define PropertyTagMinSampleValue 0x0118
109 #define PropertyTagMaxSampleValue 0x0119
110 #define PropertyTagXResolution 0x011A
111 #define PropertyTagYResolution 0x011B
112 #define PropertyTagPlanarConfig 0x011C
113 #define PropertyTagPageName 0x011D
114 #define PropertyTagXPosition 0x011E
115 #define PropertyTagYPosition 0x011F
116 #define PropertyTagFreeOffset 0x0120
117 #define PropertyTagFreeByteCounts 0x0121
118 #define PropertyTagGrayResponseUnit 0x0122
119 #define PropertyTagGrayResponseCurve 0x0123
120 #define PropertyTagT4Option 0x0124
121 #define PropertyTagT6Option 0x0125
122 #define PropertyTagResolutionUnit 0x0128
123 #define PropertyTagPageNumber 0x0129
124 #define PropertyTagTransferFuncition 0x012D
125 #define PropertyTagSoftwareUsed 0x0131
126 #define PropertyTagDateTime 0x0132
127 #define PropertyTagArtist 0x013B
128 #define PropertyTagHostComputer 0x013C
129 #define PropertyTagPredictor 0x013D
130 #define PropertyTagWhitePoint 0x013E
131 #define PropertyTagPrimaryChromaticities 0x013F
132 #define PropertyTagColorMap 0x0140
133 #define PropertyTagHalftoneHints 0x0141
134 #define PropertyTagTileWidth 0x0142
135 #define PropertyTagTileLength 0x0143
136 #define PropertyTagTileOffset 0x0144
137 #define PropertyTagTileByteCounts 0x0145
138 #define PropertyTagInkSet 0x014C
139 #define PropertyTagInkNames 0x014D
140 #define PropertyTagNumberOfInks 0x014E
141 #define PropertyTagDotRange 0x0150
142 #define PropertyTagTargetPrinter 0x0151
143 #define PropertyTagExtraSamples 0x0152
144 #define PropertyTagSampleFormat 0x0153
145 #define PropertyTagSMinSampleValue 0x0154
146 #define PropertyTagSMaxSampleValue 0x0155
147 #define PropertyTagTransferRange 0x0156
148 #define PropertyTagJPEGProc 0x0200
149 #define PropertyTagJPEGInterFormat 0x0201
150 #define PropertyTagJPEGInterLength 0x0202
151 #define PropertyTagJPEGRestartInterval 0x0203
152 #define PropertyTagJPEGLosslessPredictors 0x0205
153 #define PropertyTagJPEGPointTransforms 0x0206
154 #define PropertyTagJPEGQTables 0x0207
155 #define PropertyTagJPEGDCTables 0x0208
156 #define PropertyTagJPEGACTables 0x0209
157 #define PropertyTagYCbCrCoefficients 0x0211
158 #define PropertyTagYCbCrSubsampling 0x0212
159 #define PropertyTagYCbCrPositioning 0x0213
160 #define PropertyTagREFBlackWhite 0x0214
161 #define PropertyTagGamma 0x0301
162 #define PropertyTagICCProfileDescriptor 0x0302
163 #define PropertyTagSRGBRenderingIntent 0x0303
164 #define PropertyTagImageTitle 0x0320
165 #define PropertyTagResolutionXUnit 0x5001
166 #define PropertyTagResolutionYUnit 0x5002
167 #define PropertyTagResolutionXLengthUnit 0x5003
168 #define PropertyTagResolutionYLengthUnit 0x5004
169 #define PropertyTagPrintFlags 0x5005
170 #define PropertyTagPrintFlagsVersion 0x5006
171 #define PropertyTagPrintFlagsCrop 0x5007
172 #define PropertyTagPrintFlagsBleedWidth 0x5008
173 #define PropertyTagPrintFlagsBleedWidthScale 0x5009
174 #define PropertyTagHalftoneLPI 0x500A
175 #define PropertyTagHalftoneLPIUnit 0x500B
176 #define PropertyTagHalftoneDegree 0x500C
177 #define PropertyTagHalftoneShape 0x500D
178 #define PropertyTagHalftoneMisc 0x500E
179 #define PropertyTagHalftoneScreen 0x500F
180 #define PropertyTagJPEGQuality 0x5010
181 #define PropertyTagGridSize 0x5011
182 #define PropertyTagThumbnailFormat 0x5012
183 #define PropertyTagThumbnailWidth 0x5013
184 #define PropertyTagThumbnailHeight 0x5014
185 #define PropertyTagThumbnailColorDepth 0x5015
186 #define PropertyTagThumbnailPlanes 0x5016
187 #define PropertyTagThumbnailRawBytes 0x5017
188 #define PropertyTagThumbnailSize 0x5018
189 #define PropertyTagThumbnailCompressedSize 0x5019
190 #define PropertyTagColorTransferFunction 0x501A
191 #define PropertyTagThumbnailData 0x501B
192 #define PropertyTagThumbnailImageWidth 0x5020
193 #define PropertyTagThumbnailImageHeight 0x5021
194 #define PropertyTagThumbnailBitsPerSample 0x5022
195 #define PropertyTagThumbnailCompression 0x5023
196 #define PropertyTagThumbnailPhotometricInterp 0x5024
197 #define PropertyTagThumbnailImageDescription 0x5025
198 #define PropertyTagThumbnailEquipMake 0x5026
199 #define PropertyTagThumbnailEquipModel 0x5027
200 #define PropertyTagThumbnailStripOffsets 0x5028
201 #define PropertyTagThumbnailOrientation 0x5029
202 #define PropertyTagThumbnailSamplesPerPixel 0x502A
203 #define PropertyTagThumbnailRowsPerStrip 0x502B
204 #define PropertyTagThumbnailStripBytesCount 0x502C
205 #define PropertyTagThumbnailResolutionX 0x502D
206 #define PropertyTagThumbnailResolutionY 0x502E
207 #define PropertyTagThumbnailPlanarConfig 0x502F
208 #define PropertyTagThumbnailResolutionUnit 0x5030
209 #define PropertyTagThumbnailTransferFunction 0x5031
210 #define PropertyTagThumbnailSoftwareUsed 0x5032
211 #define PropertyTagThumbnailDateTime 0x5033
212 #define PropertyTagThumbnailArtist 0x5034
213 #define PropertyTagThumbnailWhitePoint 0x5035
214 #define PropertyTagThumbnailPrimaryChromaticities 0x5036
215 #define PropertyTagThumbnailYCbCrCoefficients 0x5037
216 #define PropertyTagThumbnailYCbCrSubsampling 0x5038
217 #define PropertyTagThumbnailYCbCrPositioning 0x5039
218 #define PropertyTagThumbnailRefBlackWhite 0x503A
219 #define PropertyTagThumbnailCopyRight 0x503B
220 #define PropertyTagLuminanceTable 0x5090
221 #define PropertyTagChrominanceTable 0x5091
222 #define PropertyTagFrameDelay 0x5100
223 #define PropertyTagLoopCount 0x5101
224 #define PropertyTagPixelUnit 0x5110
225 #define PropertyTagPixelPerUnitX 0x5111
226 #define PropertyTagPixelPerUnitY 0x5112
227 #define PropertyTagPaletteHistogram 0x5113
228 #define PropertyTagCopyright 0x8298
229 #define PropertyTagExifExposureTime 0x829A
230 #define PropertyTagExifFNumber 0x829D
231 #define PropertyTagExifIFD 0x8769
232 #define PropertyTagICCProfile 0x8773
233 #define PropertyTagExifExposureProg 0x8822
234 #define PropertyTagExifSpectralSense 0x8824
235 #define PropertyTagGpsIFD 0x8825
236 #define PropertyTagExifISOSpeed 0x8827
237 #define PropertyTagExifOECF 0x8828
238 #define PropertyTagExifVer 0x9000
239 #define PropertyTagExifDTOrig 0x9003
240 #define PropertyTagExifDTDigitized 0x9004
241 #define PropertyTagExifCompConfig 0x9101
242 #define PropertyTagExifCompBPP 0x9102
243 #define PropertyTagExifShutterSpeed 0x9201
244 #define PropertyTagExifAperture 0x9202
245 #define PropertyTagExifBrightness 0x9203
246 #define PropertyTagExifExposureBias 0x9204
247 #define PropertyTagExifMaxAperture 0x9205
248 #define PropertyTagExifSubjectDist 0x9206
249 #define PropertyTagExifMeteringMode 0x9207
250 #define PropertyTagExifLightSource 0x9208
251 #define PropertyTagExifFlash 0x9209
252 #define PropertyTagExifFocalLength 0x920A
253 #define PropertyTagExifMakerNote 0x927C
254 #define PropertyTagExifUserComment 0x9286
255 #define PropertyTagExifDTSubsec 0x9290
256 #define PropertyTagExifDTOrigSS 0x9291
257 #define PropertyTagExifDTDigSS 0x9292
258 #define PropertyTagExifFPXVer 0xA000
259 #define PropertyTagExifColorSpace 0xA001
260 #define PropertyTagExifPixXDim 0xA002
261 #define PropertyTagExifPixYDim 0xA003
262 #define PropertyTagExifRelatedWav 0xA004
263 #define PropertyTagExifInterop 0xA005
264 #define PropertyTagExifFlashEnergy 0xA20B
265 #define PropertyTagExifSpatialFR 0xA20C
266 #define PropertyTagExifFocalXRes 0xA20E
267 #define PropertyTagExifFocalYRes 0xA20F
268 #define PropertyTagExifFocalResUnit 0xA210
269 #define PropertyTagExifSubjectLoc 0xA214
270 #define PropertyTagExifExposureIndex 0xA215
271 #define PropertyTagExifSensingMethod 0xA217
272 #define PropertyTagExifFileSource 0xA300
273 #define PropertyTagExifSceneType 0xA301
274 #define PropertyTagExifCfaPattern 0xA302
275
276
277 class BitmapData
278 {
279 public:
280 UINT Width;
281 UINT Height;
282 INT Stride;
283 PixelFormat PixelFormat1;
284 VOID *Scan0;
285 UINT_PTR Reserved;
286 };
287
288
289 class EncoderParameter
290 {
291 public:
292 GUID Guid;
293 ULONG NumberOfValues;
294 ULONG Type;
295 VOID *Value;
296 };
297
298
299 class EncoderParameters
300 {
301 public:
302 UINT Count;
303 EncoderParameter Parameter[1];
304 };
305
306
307 class ImageCodecInfo
308 {
309 public:
310 CLSID Clsid;
311 GUID FormatID;
312 WCHAR *CodecName;
313 WCHAR *DllName;
314 WCHAR *FormatDescription;
315 WCHAR *FilenameExtension;
316 WCHAR *MimeType;
317 DWORD Flags;
318 DWORD Version;
319 DWORD SigCount;
320 DWORD SigSize;
321 BYTE *SigPattern;
322 BYTE *SigMask;
323 };
324
325 class ImageItemData
326 {
327 public:
328 UINT Size;
329 UINT Position;
330 VOID *Desc;
331 UINT DescSize;
332 UINT *Data;
333 UINT DataSize;
334 UINT Cookie;
335 };
336
337
338 class PropertyItem
339 {
340 public:
341 PROPID id;
342 ULONG length;
343 WORD type;
344 VOID *value;
345 };
346
347 #endif /* _GDIPLUSIMAGING_H */