Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

526 lines
23 KiB

  1. /**************************************************************************\
  2. *
  3. * Copyright (c) 1999-2000 Microsoft Corporation
  4. *
  5. * Module Name:
  6. *
  7. * GdiplusImaging.h
  8. *
  9. * Abstract:
  10. *
  11. * GDI+ Imaging GUIDs
  12. *
  13. \**************************************************************************/
  14. #ifndef _GDIPLUSIMAGING_H
  15. #define _GDIPLUSIMAGING_H
  16. //---------------------------------------------------------------------------
  17. // Image file format identifiers
  18. //---------------------------------------------------------------------------
  19. DEFINE_GUID(ImageFormatUndefined, 0xb96b3ca9,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
  20. DEFINE_GUID(ImageFormatMemoryBMP, 0xb96b3caa,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
  21. DEFINE_GUID(ImageFormatBMP, 0xb96b3cab,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
  22. DEFINE_GUID(ImageFormatEMF, 0xb96b3cac,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
  23. DEFINE_GUID(ImageFormatWMF, 0xb96b3cad,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
  24. DEFINE_GUID(ImageFormatJPEG, 0xb96b3cae,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
  25. DEFINE_GUID(ImageFormatPNG, 0xb96b3caf,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
  26. DEFINE_GUID(ImageFormatGIF, 0xb96b3cb0,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
  27. DEFINE_GUID(ImageFormatTIFF, 0xb96b3cb1,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(ImageFormatIcon, 0xb96b3cb5,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e);
  30. //---------------------------------------------------------------------------
  31. // Predefined multi-frame dimension IDs
  32. //---------------------------------------------------------------------------
  33. DEFINE_GUID(FrameDimensionTime, 0x6aedbd6d,0x3fb5,0x418a,0x83,0xa6,0x7f,0x45,0x22,0x9d,0xc8,0x72);
  34. DEFINE_GUID(FrameDimensionResolution, 0x84236f7b,0x3bd3,0x428f,0x8d,0xab,0x4e,0xa1,0x43,0x9c,0xa3,0x15);
  35. DEFINE_GUID(FrameDimensionPage, 0x7462dc86,0x6180,0x4c7e,0x8e,0x3f,0xee,0x73,0x33,0xa7,0xa4,0x83);
  36. //---------------------------------------------------------------------------
  37. // Property sets
  38. //---------------------------------------------------------------------------
  39. DEFINE_GUID(FormatIDImageInformation, 0xe5836cbe,0x5eef,0x4f1d,0xac,0xde,0xae,0x4c,0x43,0xb6,0x08,0xce);
  40. DEFINE_GUID(FormatIDJpegAppHeaders, 0x1c4afdcd,0x6177,0x43cf,0xab,0xc7,0x5f,0x51,0xaf,0x39,0xee,0x85);
  41. //---------------------------------------------------------------------------
  42. // Encoder parameter sets
  43. //---------------------------------------------------------------------------
  44. DEFINE_GUID(EncoderCompression, 0xe09d739d,0xccd4,0x44ee,0x8e,0xba,0x3f,0xbf,0x8b,0xe4,0xfc,0x58);
  45. DEFINE_GUID(EncoderColorDepth, 0x66087055,0xad66,0x4c7c,0x9a,0x18,0x38,0xa2,0x31,0x0b,0x83,0x37);
  46. DEFINE_GUID(EncoderScanMethod, 0x3a4e2661,0x3109,0x4e56,0x85,0x36,0x42,0xc1,0x56,0xe7,0xdc,0xfa);
  47. DEFINE_GUID(EncoderVersion, 0x24d18c76,0x814a,0x41a4,0xbf,0x53,0x1c,0x21,0x9c,0xcc,0xf7,0x97);
  48. DEFINE_GUID(EncoderRenderMethod, 0x6d42c53a,0x229a,0x4825,0x8b,0xb7,0x5c,0x99,0xe2,0xb9,0xa8,0xb8);
  49. DEFINE_GUID(EncoderQuality, 0x1d5be4b5,0xfa4a,0x452d,0x9c,0xdd,0x5d,0xb3,0x51,0x05,0xe7,0xeb);
  50. DEFINE_GUID(EncoderTransformation,0x8d0eb2d1,0xa58e,0x4ea8,0xaa,0x14,0x10,0x80,0x74,0xb7,0xb6,0xf9);
  51. DEFINE_GUID(EncoderLuminanceTable,0xedb33bce,0x0266,0x4a77,0xb9,0x04,0x27,0x21,0x60,0x99,0xe7,0x17);
  52. DEFINE_GUID(EncoderChrominanceTable,0xf2e455dc,0x09b3,0x4316,0x82,0x60,0x67,0x6a,0xda,0x32,0x48,0x1c);
  53. DEFINE_GUID(EncoderSaveFlag,0x292266fc,0xac40,0x47bf,0x8c, 0xfc, 0xa8, 0x5b, 0x89, 0xa6, 0x55, 0xde);
  54. DEFINE_GUID(CodecIImageBytes,0x025d1823,0x6c7d,0x447b,0xbb, 0xdb, 0xa3, 0xcb, 0xc3, 0xdf, 0xa2, 0xfc);
  55. MIDL_INTERFACE("025D1823-6C7D-447B-BBDB-A3CBC3DFA2FC")
  56. IImageBytes : public IUnknown
  57. {
  58. public:
  59. // Return total number of bytes in the IStream
  60. STDMETHOD(CountBytes)(
  61. OUT UINT *pcb
  62. ) = 0;
  63. // Locks "cb" bytes, starting from "ulOffset" in the stream, and returns the
  64. // pointer to the beginning of the locked memory chunk in "ppvBytes"
  65. STDMETHOD(LockBytes)(
  66. IN UINT cb,
  67. IN ULONG ulOffset,
  68. OUT const VOID ** ppvBytes
  69. ) = 0;
  70. // Unlocks "cb" bytes, pointed by "pvBytes", starting from "ulOffset" in the
  71. // stream
  72. STDMETHOD(UnlockBytes)(
  73. IN const VOID *pvBytes,
  74. IN UINT cb,
  75. IN ULONG ulOffset
  76. ) = 0;
  77. };
  78. //--------------------------------------------------------------------------
  79. // ImageCodecInfo structure
  80. //--------------------------------------------------------------------------
  81. class ImageCodecInfo
  82. {
  83. public:
  84. CLSID Clsid;
  85. GUID FormatID;
  86. const WCHAR* CodecName;
  87. const WCHAR* DllName;
  88. const WCHAR* FormatDescription;
  89. const WCHAR* FilenameExtension;
  90. const WCHAR* MimeType;
  91. DWORD Flags;
  92. DWORD Version;
  93. DWORD SigCount;
  94. DWORD SigSize;
  95. const BYTE* SigPattern;
  96. const BYTE* SigMask;
  97. };
  98. //--------------------------------------------------------------------------
  99. // Information flags about image codecs
  100. //--------------------------------------------------------------------------
  101. enum ImageCodecFlags
  102. {
  103. ImageCodecFlagsEncoder = 0x00000001,
  104. ImageCodecFlagsDecoder = 0x00000002,
  105. ImageCodecFlagsSupportBitmap = 0x00000004,
  106. ImageCodecFlagsSupportVector = 0x00000008,
  107. ImageCodecFlagsSeekableEncode = 0x00000010,
  108. ImageCodecFlagsBlockingDecode = 0x00000020,
  109. ImageCodecFlagsBuiltin = 0x00010000,
  110. ImageCodecFlagsSystem = 0x00020000,
  111. ImageCodecFlagsUser = 0x00040000
  112. };
  113. //---------------------------------------------------------------------------
  114. // Access modes used when calling Image::LockBits
  115. //---------------------------------------------------------------------------
  116. enum ImageLockMode
  117. {
  118. ImageLockModeRead = 0x0001,
  119. ImageLockModeWrite = 0x0002,
  120. ImageLockModeUserInputBuf= 0x0004
  121. };
  122. //---------------------------------------------------------------------------
  123. // Information about image pixel data
  124. //---------------------------------------------------------------------------
  125. class BitmapData
  126. {
  127. public:
  128. UINT Width;
  129. UINT Height;
  130. INT Stride;
  131. PixelFormat PixelFormat;
  132. VOID* Scan0;
  133. UINT_PTR Reserved;
  134. };
  135. //---------------------------------------------------------------------------
  136. // Image flags
  137. //---------------------------------------------------------------------------
  138. enum ImageFlags
  139. {
  140. ImageFlagsNone = 0,
  141. // Low-word: shared with SINKFLAG_x
  142. ImageFlagsScalable = 0x0001,
  143. ImageFlagsHasAlpha = 0x0002,
  144. ImageFlagsHasTranslucent = 0x0004,
  145. ImageFlagsPartiallyScalable = 0x0008,
  146. // Low-word: color space definition
  147. ImageFlagsColorSpaceRGB = 0x0010,
  148. ImageFlagsColorSpaceCMYK = 0x0020,
  149. ImageFlagsColorSpaceGRAY = 0x0040,
  150. ImageFlagsColorSpaceYCBCR = 0x0080,
  151. ImageFlagsColorSpaceYCCK = 0x0100,
  152. // Low-word: image size info
  153. ImageFlagsHasRealDPI = 0x1000,
  154. ImageFlagsHasRealPixelSize = 0x2000,
  155. // High-word
  156. ImageFlagsReadOnly = 0x00010000,
  157. ImageFlagsCaching = 0x00020000
  158. };
  159. enum RotateFlipType
  160. {
  161. RotateNoneFlipNone = 0,
  162. Rotate90FlipNone = 1,
  163. Rotate180FlipNone = 2,
  164. Rotate270FlipNone = 3,
  165. RotateNoneFlipX = 4,
  166. Rotate90FlipX = 5,
  167. Rotate180FlipX = 6,
  168. Rotate270FlipX = 7,
  169. RotateNoneFlipY = Rotate180FlipX,
  170. Rotate90FlipY = Rotate270FlipX,
  171. Rotate180FlipY = RotateNoneFlipX,
  172. Rotate270FlipY = Rotate90FlipX,
  173. RotateNoneFlipXY = Rotate180FlipNone,
  174. Rotate90FlipXY = Rotate270FlipNone,
  175. Rotate180FlipXY = RotateNoneFlipNone,
  176. Rotate270FlipXY = Rotate90FlipNone
  177. };
  178. //---------------------------------------------------------------------------
  179. // Encoder Parameter structure
  180. //---------------------------------------------------------------------------
  181. class EncoderParameter
  182. {
  183. public:
  184. GUID Guid; // GUID of the parameter
  185. ULONG NumberOfValues; // Number of the parameter values
  186. ULONG Type; // Value type, like ValueTypeLONG etc.
  187. VOID* Value; // A pointer to the parameter values
  188. };
  189. //---------------------------------------------------------------------------
  190. // Encoder Parameters structure
  191. //---------------------------------------------------------------------------
  192. class EncoderParameters
  193. {
  194. public:
  195. UINT Count; // Number of parameters in this structure
  196. EncoderParameter Parameter[1]; // Parameter values
  197. };
  198. //---------------------------------------------------------------------------
  199. // Property Item
  200. //---------------------------------------------------------------------------
  201. class PropertyItem
  202. {
  203. public:
  204. PROPID id; // ID of this property
  205. ULONG length; // Length of the property value, in bytes
  206. WORD type; // Type of the value, as one of TAG_TYPE_XXX
  207. // defined above
  208. VOID* value; // property value
  209. };
  210. //---------------------------------------------------------------------------
  211. // Image property types
  212. //---------------------------------------------------------------------------
  213. #define PropertyTagTypeByte 1
  214. #define PropertyTagTypeASCII 2
  215. #define PropertyTagTypeShort 3
  216. #define PropertyTagTypeLong 4
  217. #define PropertyTagTypeRational 5
  218. #define PropertyTagTypeUndefined 7
  219. #define PropertyTagTypeSLONG 9
  220. #define PropertyTagTypeSRational 10
  221. //---------------------------------------------------------------------------
  222. // Image property ID tags
  223. //---------------------------------------------------------------------------
  224. #define PropertyTagExifIFD 0x8769
  225. #define PropertyTagGpsIFD 0x8825
  226. #define PropertyTagNewSubfileType 0x00FE
  227. #define PropertyTagSubfileType 0x00FF
  228. #define PropertyTagImageWidth 0x0100
  229. #define PropertyTagImageHeight 0x0101
  230. #define PropertyTagBitsPerSample 0x0102
  231. #define PropertyTagCompression 0x0103
  232. #define PropertyTagPhotometricInterp 0x0106
  233. #define PropertyTagThreshHolding 0x0107
  234. #define PropertyTagCellWidth 0x0108
  235. #define PropertyTagCellHeight 0x0109
  236. #define PropertyTagFillOrder 0x010A
  237. #define PropertyTagDocumentName 0x010D
  238. #define PropertyTagImageDescription 0x010E
  239. #define PropertyTagEquipMake 0x010F
  240. #define PropertyTagEquipModel 0x0110
  241. #define PropertyTagStripOffsets 0x0111
  242. #define PropertyTagOrientation 0x0112
  243. #define PropertyTagSamplesPerPixel 0x0115
  244. #define PropertyTagRowsPerStrip 0x0116
  245. #define PropertyTagStripBytesCount 0x0117
  246. #define PropertyTagMinSampleValue 0x0118
  247. #define PropertyTagMaxSampleValue 0x0119
  248. #define PropertyTagXResolution 0x011A // Image resolution in width direction
  249. #define PropertyTagYResolution 0x011B // Image resolution in height direction
  250. #define PropertyTagPlanarConfig 0x011C // Image data arrangement
  251. #define PropertyTagPageName 0x011D
  252. #define PropertyTagXPosition 0x011E
  253. #define PropertyTagYPosition 0x011F
  254. #define PropertyTagFreeOffset 0x0120
  255. #define PropertyTagFreeByteCounts 0x0121
  256. #define PropertyTagGrayResponseUnit 0x0122
  257. #define PropertyTagGrayResponseCurve 0x0123
  258. #define PropertyTagT4Option 0x0124
  259. #define PropertyTagT6Option 0x0125
  260. #define PropertyTagResolutionUnit 0x0128 // Unit of X and Y resolution
  261. #define PropertyTagPageNumber 0x0129
  262. #define PropertyTagTransferFuncition 0x012D
  263. #define PropertyTagSoftwareUsed 0x0131
  264. #define PropertyTagDateTime 0x0132
  265. #define PropertyTagArtist 0x013B
  266. #define PropertyTagHostComputer 0x013C
  267. #define PropertyTagPredictor 0x013D
  268. #define PropertyTagWhitePoint 0x013E
  269. #define PropertyTagPrimaryChromaticities 0x013F
  270. #define PropertyTagColorMap 0x0140
  271. #define PropertyTagHalftoneHints 0x0141
  272. #define PropertyTagTileWidth 0x0142
  273. #define PropertyTagTileLength 0x0143
  274. #define PropertyTagTileOffset 0x0144
  275. #define PropertyTagTileByteCounts 0x0145
  276. #define PropertyTagInkSet 0x014C
  277. #define PropertyTagInkNames 0x014D
  278. #define PropertyTagNumberOfInks 0x014E
  279. #define PropertyTagDotRange 0x0150
  280. #define PropertyTagTargetPrinter 0x0151
  281. #define PropertyTagExtraSamples 0x0152
  282. #define PropertyTagSampleFormat 0x0153
  283. #define PropertyTagSMinSampleValue 0x0154
  284. #define PropertyTagSMaxSampleValue 0x0155
  285. #define PropertyTagTransferRange 0x0156
  286. #define PropertyTagJPEGProc 0x0200
  287. #define PropertyTagJPEGInterFormat 0x0201
  288. #define PropertyTagJPEGInterLength 0x0202
  289. #define PropertyTagJPEGRestartInterval 0x0203
  290. #define PropertyTagJPEGLosslessPredictors 0x0205
  291. #define PropertyTagJPEGPointTransforms 0x0206
  292. #define PropertyTagJPEGQTables 0x0207
  293. #define PropertyTagJPEGDCTables 0x0208
  294. #define PropertyTagJPEGACTables 0x0209
  295. #define PropertyTagYCbCrCoefficients 0x0211
  296. #define PropertyTagYCbCrSubsampling 0x0212
  297. #define PropertyTagYCbCrPositioning 0x0213
  298. #define PropertyTagREFBlackWhite 0x0214
  299. #define PropertyTagICCProfile 0x8773 // This TAG is defined by ICC
  300. // for embedded ICC in TIFF
  301. #define PropertyTagGamma 0x0301
  302. #define PropertyTagICCProfileDescriptor 0x0302
  303. #define PropertyTagSRGBRenderingIntent 0x0303
  304. #define PropertyTagImageTitle 0x0320
  305. #define PropertyTagCopyright 0x8298
  306. // Extra TAGs (Like Adobe Image Information tags etc.)
  307. #define PropertyTagResolutionXUnit 0x5001
  308. #define PropertyTagResolutionYUnit 0x5002
  309. #define PropertyTagResolutionXLengthUnit 0x5003
  310. #define PropertyTagResolutionYLengthUnit 0x5004
  311. #define PropertyTagPrintFlags 0x5005
  312. #define PropertyTagPrintFlagsVersion 0x5006
  313. #define PropertyTagPrintFlagsCrop 0x5007
  314. #define PropertyTagPrintFlagsBleedWidth 0x5008
  315. #define PropertyTagPrintFlagsBleedWidthScale 0x5009
  316. #define PropertyTagHalftoneLPI 0x500A
  317. #define PropertyTagHalftoneLPIUnit 0x500B
  318. #define PropertyTagHalftoneDegree 0x500C
  319. #define PropertyTagHalftoneShape 0x500D
  320. #define PropertyTagHalftoneMisc 0x500E
  321. #define PropertyTagHalftoneScreen 0x500F
  322. #define PropertyTagJPEGQuality 0x5010
  323. #define PropertyTagGridSize 0x5011
  324. #define PropertyTagThumbnailFormat 0x5012 // 1 = JPEG, 0 = RAW RGB
  325. #define PropertyTagThumbnailWidth 0x5013
  326. #define PropertyTagThumbnailHeight 0x5014
  327. #define PropertyTagThumbnailColorDepth 0x5015
  328. #define PropertyTagThumbnailPlanes 0x5016
  329. #define PropertyTagThumbnailRawBytes 0x5017
  330. #define PropertyTagThumbnailSize 0x5018
  331. #define PropertyTagThumbnailCompressedSize 0x5019
  332. #define PropertyTagColorTransferFunction 0x501A
  333. #define PropertyTagThumbnailData 0x501B// RAW thumbnail bits in
  334. // JPEG format or RGB format
  335. // depends on
  336. // PropertyTagThumbnailFormat
  337. // Thumbnail related TAGs
  338. #define PropertyTagThumbnailImageWidth 0x5020 // Thumbnail width
  339. #define PropertyTagThumbnailImageHeight 0x5021 // Thumbnail height
  340. #define PropertyTagThumbnailBitsPerSample 0x5022 // Number of bits per
  341. // component
  342. #define PropertyTagThumbnailCompression 0x5023 // Compression Scheme
  343. #define PropertyTagThumbnailPhotometricInterp 0x5024 // Pixel composition
  344. #define PropertyTagThumbnailImageDescription 0x5025 // Image Tile
  345. #define PropertyTagThumbnailEquipMake 0x5026 // Manufacturer of Image
  346. // Input equipment
  347. #define PropertyTagThumbnailEquipModel 0x5027 // Model of Image input
  348. // equipment
  349. #define PropertyTagThumbnailStripOffsets 0x5028 // Image data location
  350. #define PropertyTagThumbnailOrientation 0x5029 // Orientation of image
  351. #define PropertyTagThumbnailSamplesPerPixel 0x502A // Number of components
  352. #define PropertyTagThumbnailRowsPerStrip 0x502B // Number of rows per strip
  353. #define PropertyTagThumbnailStripBytesCount 0x502C // Bytes per compressed
  354. // strip
  355. #define PropertyTagThumbnailResolutionX 0x502D // Resolution in width
  356. // direction
  357. #define PropertyTagThumbnailResolutionY 0x502E // Resolution in height
  358. // direction
  359. #define PropertyTagThumbnailPlanarConfig 0x502F // Image data arrangement
  360. #define PropertyTagThumbnailResolutionUnit 0x5030 // Unit of X and Y
  361. // Resolution
  362. #define PropertyTagThumbnailTransferFunction 0x5031 // Transfer function
  363. #define PropertyTagThumbnailSoftwareUsed 0x5032 // Software used
  364. #define PropertyTagThumbnailDateTime 0x5033 // File change date and
  365. // time
  366. #define PropertyTagThumbnailArtist 0x5034 // Person who created the
  367. // image
  368. #define PropertyTagThumbnailWhitePoint 0x5035 // White point chromaticity
  369. #define PropertyTagThumbnailPrimaryChromaticities 0x5036
  370. // Chromaticities of
  371. // primaries
  372. #define PropertyTagThumbnailYCbCrCoefficients 0x5037 // Color space transforma-
  373. // tion coefficients
  374. #define PropertyTagThumbnailYCbCrSubsampling 0x5038 // Subsampling ratio of Y
  375. // to C
  376. #define PropertyTagThumbnailYCbCrPositioning 0x5039 // Y and C position
  377. #define PropertyTagThumbnailRefBlackWhite 0x503A // Pair of black and white
  378. // reference values
  379. #define PropertyTagThumbnailCopyRight 0x503B // CopyRight holder
  380. #define PropertyTagLuminanceTable 0x5090
  381. #define PropertyTagChrominanceTable 0x5091
  382. #define PropertyTagFrameDelay 0x5100
  383. #define PropertyTagLoopCount 0x5101
  384. #define PropertyTagPixelUnit 0x5110 // Unit specifier for pixel/unit
  385. #define PropertyTagPixelPerUnitX 0x5111 // Pixels per unit in X
  386. #define PropertyTagPixelPerUnitY 0x5112 // Pixels per unit in Y
  387. #define PropertyTagPaletteHistogram 0x5113 // Palette histogram
  388. // EXIF specific tag
  389. #define PropertyTagExifExposureTime 0x829A
  390. #define PropertyTagExifFNumber 0x829D
  391. #define PropertyTagExifExposureProg 0x8822
  392. #define PropertyTagExifSpectralSense 0x8824
  393. #define PropertyTagExifISOSpeed 0x8827
  394. #define PropertyTagExifOECF 0x8828
  395. #define PropertyTagExifVer 0x9000
  396. #define PropertyTagExifDTOrig 0x9003 // Date & time of original
  397. #define PropertyTagExifDTDigitized 0x9004 // Date & time of digital data generation
  398. #define PropertyTagExifCompConfig 0x9101
  399. #define PropertyTagExifCompBPP 0x9102
  400. #define PropertyTagExifShutterSpeed 0x9201
  401. #define PropertyTagExifAperture 0x9202
  402. #define PropertyTagExifBrightness 0x9203
  403. #define PropertyTagExifExposureBias 0x9204
  404. #define PropertyTagExifMaxAperture 0x9205
  405. #define PropertyTagExifSubjectDist 0x9206
  406. #define PropertyTagExifMeteringMode 0x9207
  407. #define PropertyTagExifLightSource 0x9208
  408. #define PropertyTagExifFlash 0x9209
  409. #define PropertyTagExifFocalLength 0x920A
  410. #define PropertyTagExifMakerNote 0x927C
  411. #define PropertyTagExifUserComment 0x9286
  412. #define PropertyTagExifDTSubsec 0x9290 // Date & Time subseconds
  413. #define PropertyTagExifDTOrigSS 0x9291 // Date & Time original subseconds
  414. #define PropertyTagExifDTDigSS 0x9292 // Date & TIme digitized subseconds
  415. #define PropertyTagExifFPXVer 0xA000
  416. #define PropertyTagExifColorSpace 0xA001
  417. #define PropertyTagExifPixXDim 0xA002
  418. #define PropertyTagExifPixYDim 0xA003
  419. #define PropertyTagExifRelatedWav 0xA004 // related sound file
  420. #define PropertyTagExifInterop 0xA005
  421. #define PropertyTagExifFlashEnergy 0xA20B
  422. #define PropertyTagExifSpatialFR 0xA20C // Spatial Frequency Response
  423. #define PropertyTagExifFocalXRes 0xA20E // Focal Plane X Resolution
  424. #define PropertyTagExifFocalYRes 0xA20F // Focal Plane Y Resolution
  425. #define PropertyTagExifFocalResUnit 0xA210 // Focal Plane Resolution Unit
  426. #define PropertyTagExifSubjectLoc 0xA214
  427. #define PropertyTagExifExposureIndex 0xA215
  428. #define PropertyTagExifSensingMethod 0xA217
  429. #define PropertyTagExifFileSource 0xA300
  430. #define PropertyTagExifSceneType 0xA301
  431. #define PropertyTagExifCfaPattern 0xA302
  432. #define PropertyTagGpsVer 0x0000
  433. #define PropertyTagGpsLatitudeRef 0x0001
  434. #define PropertyTagGpsLatitude 0x0002
  435. #define PropertyTagGpsLongitudeRef 0x0003
  436. #define PropertyTagGpsLongitude 0x0004
  437. #define PropertyTagGpsAltitudeRef 0x0005
  438. #define PropertyTagGpsAltitude 0x0006
  439. #define PropertyTagGpsGpsTime 0x0007
  440. #define PropertyTagGpsGpsSatellites 0x0008
  441. #define PropertyTagGpsGpsStatus 0x0009
  442. #define PropertyTagGpsGpsMeasureMode 0x00A
  443. #define PropertyTagGpsGpsDop 0x000B // Measurement precision
  444. #define PropertyTagGpsSpeedRef 0x000C
  445. #define PropertyTagGpsSpeed 0x000D
  446. #define PropertyTagGpsTrackRef 0x000E
  447. #define PropertyTagGpsTrack 0x000F
  448. #define PropertyTagGpsImgDirRef 0x0010
  449. #define PropertyTagGpsImgDir 0x0011
  450. #define PropertyTagGpsMapDatum 0x0012
  451. #define PropertyTagGpsDestLatRef 0x0013
  452. #define PropertyTagGpsDestLat 0x0014
  453. #define PropertyTagGpsDestLongRef 0x0015
  454. #define PropertyTagGpsDestLong 0x0016
  455. #define PropertyTagGpsDestBearRef 0x0017
  456. #define PropertyTagGpsDestBear 0x0018
  457. #define PropertyTagGpsDestDistRef 0x0019
  458. #define PropertyTagGpsDestDist 0x001A
  459. #endif