/*
 * Copyright (C) 2007 Google (Evan Stade)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#ifndef _GDIPLUSIMAGING_H
#define _GDIPLUSIMAGING_H

DEFINE_GUID(ImageFormatUndefined, 0xb96b3ca9, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
DEFINE_GUID(ImageFormatMemoryBMP, 0xb96b3caa, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
DEFINE_GUID(ImageFormatBMP,       0xb96b3cab, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
DEFINE_GUID(ImageFormatEMF,       0xb96b3cac, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
DEFINE_GUID(ImageFormatWMF,       0xb96b3cad, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
DEFINE_GUID(ImageFormatJPEG,      0xb96b3cae, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
DEFINE_GUID(ImageFormatPNG,       0xb96b3caf, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
DEFINE_GUID(ImageFormatGIF,       0xb96b3cb0, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
DEFINE_GUID(ImageFormatTIFF,      0xb96b3cb1, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
DEFINE_GUID(ImageFormatEXIF,      0xb96b3cb2, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
DEFINE_GUID(ImageFormatIcon,      0xb96b3cb5, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);

enum ImageLockMode
{
    ImageLockModeRead           = 1,
    ImageLockModeWrite          = 2,
    ImageLockModeUserInputBuf   = 4
};

#ifdef __cplusplus
class EncoderParameter
{
public:
    GUID    Guid;
    ULONG   NumberOfValues;
    ULONG   Type;
    VOID*   Value;
};

class EncoderParameters
{
public:
    UINT Count;
    EncoderParameter Parameter[1];
};

class ImageCodecInfo
{
public:
    CLSID Clsid;
    GUID  FormatID;
    const WCHAR* CodecName;
    const WCHAR* DllName;
    const WCHAR* FormatDescription;
    const WCHAR* FilenameExtension;
    const WCHAR* MimeType;
    DWORD Flags;
    DWORD Version;
    DWORD SigCount;
    DWORD SigSize;
    const BYTE* SigPattern;
    const BYTE* SigMask;
};

class BitmapData
{
public:
    UINT Width;
    UINT Height;
    INT Stride;
    PixelFormat PixelFormat;
    VOID* Scan0;
    UINT_PTR Reserved;
};

class ImageItemData
{
public:
    UINT  Size;
    UINT  Position;
    VOID* Desc;
    UINT  DescSize;
    VOID* Data;
    UINT  DataSize;
    UINT  Cookie;
};

class PropertyItem
{
public:
    PROPID id;
    ULONG  length;
    WORD   type;
    VOID*  value;
};

#else /* end of c++ typedefs */

typedef enum ImageLockMode ImageLockMode;

typedef struct EncoderParameter
{
    GUID Guid;
    ULONG NumberOfValues;
    ULONG Type;
    VOID* Value;
} EncoderParameter;

typedef struct EncoderParameters
{
    UINT Count;
    EncoderParameter Parameter[1];
} EncoderParameters;

typedef struct ImageCodecInfo
{
    CLSID Clsid;
    GUID  FormatID;
    const WCHAR* CodecName;
    const WCHAR* DllName;
    const WCHAR* FormatDescription;
    const WCHAR* FilenameExtension;
    const WCHAR* MimeType;
    DWORD Flags;
    DWORD Version;
    DWORD SigCount;
    DWORD SigSize;
    const BYTE* SigPattern;
    const BYTE* SigMask;
} ImageCodecInfo;

typedef struct BitmapData
{
    UINT Width;
    UINT Height;
    INT Stride;
    PixelFormat PixelFormat;
    VOID* Scan0;
    UINT_PTR Reserved; /* undocumented: stores the lock mode */
} BitmapData;

typedef struct ImageItemData
{
    UINT  Size;
    UINT  Position;
    VOID* Desc;
    UINT  DescSize;
    VOID* Data;
    UINT  DataSize;
    UINT  Cookie;
} ImageItemData;

typedef struct PropertyItem
{
    PROPID id;
    ULONG  length;
    WORD   type;
    VOID*  value;
} PropertyItem;

#endif /* end of c typedefs */

/* property types */
#define PropertyTagTypeByte       1
#define PropertyTagTypeASCII      2
#define PropertyTagTypeShort      3
#define PropertyTagTypeLong       4
#define PropertyTagTypeRational   5
#define PropertyTagTypeUndefined  7
#define PropertyTagTypeSLONG      9
#define PropertyTagTypeSRational 10

/* property IDs */
#define PropertyTagExifIFD                0x8769
#define PropertyTagGpsIFD                 0x8825

#define PropertyTagNewSubfileType         0x00FE
#define PropertyTagSubfileType            0x00FF
#define PropertyTagImageWidth             0x0100
#define PropertyTagImageHeight            0x0101
#define PropertyTagBitsPerSample          0x0102
#define PropertyTagCompression            0x0103
#define PropertyTagPhotometricInterp      0x0106
#define PropertyTagThreshHolding          0x0107
#define PropertyTagCellWidth              0x0108
#define PropertyTagCellHeight             0x0109
#define PropertyTagFillOrder              0x010A
#define PropertyTagDocumentName           0x010D
#define PropertyTagImageDescription       0x010E
#define PropertyTagEquipMake              0x010F
#define PropertyTagEquipModel             0x0110
#define PropertyTagStripOffsets           0x0111
#define PropertyTagOrientation            0x0112
#define PropertyTagSamplesPerPixel        0x0115
#define PropertyTagRowsPerStrip           0x0116
#define PropertyTagStripBytesCount        0x0117
#define PropertyTagMinSampleValue         0x0118
#define PropertyTagMaxSampleValue         0x0119
#define PropertyTagXResolution            0x011A
#define PropertyTagYResolution            0x011B
#define PropertyTagPlanarConfig           0x011C
#define PropertyTagPageName               0x011D
#define PropertyTagXPosition              0x011E
#define PropertyTagYPosition              0x011F
#define PropertyTagFreeOffset             0x0120
#define PropertyTagFreeByteCounts         0x0121
#define PropertyTagGrayResponseUnit       0x0122
#define PropertyTagGrayResponseCurve      0x0123
#define PropertyTagT4Option               0x0124
#define PropertyTagT6Option               0x0125
#define PropertyTagResolutionUnit         0x0128
#define PropertyTagPageNumber             0x0129
#define PropertyTagTransferFuncition      0x012D
#define PropertyTagSoftwareUsed           0x0131
#define PropertyTagDateTime               0x0132
#define PropertyTagArtist                 0x013B
#define PropertyTagHostComputer           0x013C
#define PropertyTagPredictor              0x013D
#define PropertyTagWhitePoint             0x013E
#define PropertyTagPrimaryChromaticities  0x013F
#define PropertyTagColorMap               0x0140
#define PropertyTagHalftoneHints          0x0141
#define PropertyTagTileWidth              0x0142
#define PropertyTagTileLength             0x0143
#define PropertyTagTileOffset             0x0144
#define PropertyTagTileByteCounts         0x0145
#define PropertyTagInkSet                 0x014C
#define PropertyTagInkNames               0x014D
#define PropertyTagNumberOfInks           0x014E
#define PropertyTagDotRange               0x0150
#define PropertyTagTargetPrinter          0x0151
#define PropertyTagExtraSamples           0x0152
#define PropertyTagSampleFormat           0x0153
#define PropertyTagSMinSampleValue        0x0154
#define PropertyTagSMaxSampleValue        0x0155
#define PropertyTagTransferRange          0x0156

#define PropertyTagJPEGProc               0x0200
#define PropertyTagJPEGInterFormat        0x0201
#define PropertyTagJPEGInterLength        0x0202
#define PropertyTagJPEGRestartInterval    0x0203
#define PropertyTagJPEGLosslessPredictors 0x0205
#define PropertyTagJPEGPointTransforms    0x0206
#define PropertyTagJPEGQTables            0x0207
#define PropertyTagJPEGDCTables           0x0208
#define PropertyTagJPEGACTables           0x0209

#define PropertyTagYCbCrCoefficients      0x0211
#define PropertyTagYCbCrSubsampling       0x0212
#define PropertyTagYCbCrPositioning       0x0213
#define PropertyTagREFBlackWhite          0x0214

#define PropertyTagICCProfile          0x8773

#define PropertyTagGamma                0x0301
#define PropertyTagICCProfileDescriptor 0x0302
#define PropertyTagSRGBRenderingIntent  0x0303

#define PropertyTagImageTitle          0x0320
#define PropertyTagCopyright           0x8298

#define PropertyTagResolutionXUnit            0x5001
#define PropertyTagResolutionYUnit            0x5002
#define PropertyTagResolutionXLengthUnit      0x5003
#define PropertyTagResolutionYLengthUnit      0x5004
#define PropertyTagPrintFlags                 0x5005
#define PropertyTagPrintFlagsVersion          0x5006
#define PropertyTagPrintFlagsCrop             0x5007
#define PropertyTagPrintFlagsBleedWidth       0x5008
#define PropertyTagPrintFlagsBleedWidthScale  0x5009
#define PropertyTagHalftoneLPI                0x500A
#define PropertyTagHalftoneLPIUnit            0x500B
#define PropertyTagHalftoneDegree             0x500C
#define PropertyTagHalftoneShape              0x500D
#define PropertyTagHalftoneMisc               0x500E
#define PropertyTagHalftoneScreen             0x500F
#define PropertyTagJPEGQuality                0x5010
#define PropertyTagGridSize                   0x5011
#define PropertyTagThumbnailFormat            0x5012
#define PropertyTagThumbnailWidth             0x5013
#define PropertyTagThumbnailHeight            0x5014
#define PropertyTagThumbnailColorDepth        0x5015
#define PropertyTagThumbnailPlanes            0x5016
#define PropertyTagThumbnailRawBytes          0x5017
#define PropertyTagThumbnailSize              0x5018
#define PropertyTagThumbnailCompressedSize    0x5019
#define PropertyTagColorTransferFunction      0x501A
#define PropertyTagThumbnailData              0x501B

#define PropertyTagThumbnailImageWidth        0x5020
#define PropertyTagThumbnailImageHeight       0x5021
#define PropertyTagThumbnailBitsPerSample     0x5022
#define PropertyTagThumbnailCompression       0x5023
#define PropertyTagThumbnailPhotometricInterp 0x5024
#define PropertyTagThumbnailImageDescription  0x5025
#define PropertyTagThumbnailEquipMake         0x5026
#define PropertyTagThumbnailEquipModel        0x5027
#define PropertyTagThumbnailStripOffsets      0x5028
#define PropertyTagThumbnailOrientation       0x5029
#define PropertyTagThumbnailSamplesPerPixel   0x502A
#define PropertyTagThumbnailRowsPerStrip      0x502B
#define PropertyTagThumbnailStripBytesCount   0x502C
#define PropertyTagThumbnailResolutionX       0x502D
#define PropertyTagThumbnailResolutionY       0x502E
#define PropertyTagThumbnailPlanarConfig      0x502F
#define PropertyTagThumbnailResolutionUnit    0x5030
#define PropertyTagThumbnailTransferFunction  0x5031
#define PropertyTagThumbnailSoftwareUsed      0x5032
#define PropertyTagThumbnailDateTime          0x5033
#define PropertyTagThumbnailArtist            0x5034
#define PropertyTagThumbnailWhitePoint        0x5035
#define PropertyTagThumbnailPrimaryChromaticities 0x5036
#define PropertyTagThumbnailYCbCrCoefficients 0x5037
#define PropertyTagThumbnailYCbCrSubsampling  0x5038
#define PropertyTagThumbnailYCbCrPositioning  0x5039
#define PropertyTagThumbnailRefBlackWhite     0x503A
#define PropertyTagThumbnailCopyRight         0x503B

#define PropertyTagLuminanceTable    0x5090
#define PropertyTagChrominanceTable  0x5091

#define PropertyTagFrameDelay        0x5100
#define PropertyTagLoopCount         0x5101

#define PropertyTagPixelUnit         0x5110
#define PropertyTagPixelPerUnitX     0x5111
#define PropertyTagPixelPerUnitY     0x5112
#define PropertyTagPaletteHistogram  0x5113

#define PropertyTagExifExposureTime  0x829A
#define PropertyTagExifFNumber       0x829D

#define PropertyTagExifExposureProg  0x8822
#define PropertyTagExifSpectralSense 0x8824
#define PropertyTagExifISOSpeed      0x8827
#define PropertyTagExifOECF          0x8828

#define PropertyTagExifVer           0x9000
#define PropertyTagExifDTOrig        0x9003
#define PropertyTagExifDTDigitized   0x9004

#define PropertyTagExifCompConfig    0x9101
#define PropertyTagExifCompBPP       0x9102

#define PropertyTagExifShutterSpeed  0x9201
#define PropertyTagExifAperture      0x9202
#define PropertyTagExifBrightness    0x9203
#define PropertyTagExifExposureBias  0x9204
#define PropertyTagExifMaxAperture   0x9205
#define PropertyTagExifSubjectDist   0x9206
#define PropertyTagExifMeteringMode  0x9207
#define PropertyTagExifLightSource   0x9208
#define PropertyTagExifFlash         0x9209
#define PropertyTagExifFocalLength   0x920A
#define PropertyTagExifMakerNote     0x927C
#define PropertyTagExifUserComment   0x9286
#define PropertyTagExifDTSubsec      0x9290
#define PropertyTagExifDTOrigSS      0x9291
#define PropertyTagExifDTDigSS       0x9292

#define PropertyTagExifFPXVer        0xA000
#define PropertyTagExifColorSpace    0xA001
#define PropertyTagExifPixXDim       0xA002
#define PropertyTagExifPixYDim       0xA003
#define PropertyTagExifRelatedWav    0xA004
#define PropertyTagExifInterop       0xA005
#define PropertyTagExifFlashEnergy   0xA20B
#define PropertyTagExifSpatialFR     0xA20C
#define PropertyTagExifFocalXRes     0xA20E
#define PropertyTagExifFocalYRes     0xA20F
#define PropertyTagExifFocalResUnit  0xA210
#define PropertyTagExifSubjectLoc    0xA214
#define PropertyTagExifExposureIndex 0xA215
#define PropertyTagExifSensingMethod 0xA217
#define PropertyTagExifFileSource    0xA300
#define PropertyTagExifSceneType     0xA301
#define PropertyTagExifCfaPattern    0xA302

#define PropertyTagGpsVer            0x0000
#define PropertyTagGpsLatitudeRef    0x0001
#define PropertyTagGpsLatitude       0x0002
#define PropertyTagGpsLongitudeRef   0x0003
#define PropertyTagGpsLongitude      0x0004
#define PropertyTagGpsAltitudeRef    0x0005
#define PropertyTagGpsAltitude       0x0006
#define PropertyTagGpsGpsTime        0x0007
#define PropertyTagGpsGpsSatellites  0x0008
#define PropertyTagGpsGpsStatus      0x0009
#define PropertyTagGpsGpsMeasureMode 0x000A
#define PropertyTagGpsGpsDop         0x000B
#define PropertyTagGpsSpeedRef       0x000C
#define PropertyTagGpsSpeed          0x000D
#define PropertyTagGpsTrackRef       0x000E
#define PropertyTagGpsTrack          0x000F
#define PropertyTagGpsImgDirRef      0x0010
#define PropertyTagGpsImgDir         0x0011
#define PropertyTagGpsMapDatum       0x0012
#define PropertyTagGpsDestLatRef     0x0013
#define PropertyTagGpsDestLat        0x0014
#define PropertyTagGpsDestLongRef    0x0015
#define PropertyTagGpsDestLong       0x0016
#define PropertyTagGpsDestBearRef    0x0017
#define PropertyTagGpsDestBear       0x0018
#define PropertyTagGpsDestDistRef    0x0019
#define PropertyTagGpsDestDist       0x001A

#endif /* _GDIPLUSIMAGING_H */
