// CodeGear C++Builder
// Copyright (c) 1995, 2015 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'imageenio.pas' rev: 30.00 (Windows)

#ifndef ImageenioHPP
#define ImageenioHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <Winapi.Windows.hpp>
#include <Winapi.Messages.hpp>
#include <System.SysUtils.hpp>
#include <System.Classes.hpp>
#include <Vcl.Graphics.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.Forms.hpp>
#include <ieview.hpp>
#include <imageenproc.hpp>
#include <Vcl.ExtCtrls.hpp>
#include <hyiedefs.hpp>
#include <hyieutils.hpp>
#include <Vcl.Dialogs.hpp>
#include <System.Types.hpp>
#include <System.UITypes.hpp>
#include <iexAcquire.hpp>
#include <ietwain.hpp>
#include <iexDCIM.hpp>
#include <iewia.hpp>
#include <ieds.hpp>
#include <iemmf.hpp>
#include <Vcl.Printers.hpp>

//-- user supplied -----------------------------------------------------------

namespace Imageenio
{
//-- forward type declarations -----------------------------------------------
struct TStreamJpegHeader;
struct PCXSHead;
struct TIFFSHead;
class DELPHICLASS TIOParamsVals;
struct TAviStreamInfoA_Ex;
struct TAviStreamInfoW_Ex;
class DELPHICLASS TIOPrintPreviewParams;
class DELPHICLASS TImageEnIO;
class DELPHICLASS TIEFileFormatInfo;
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TIETextFormat : unsigned char { ietfPascal, ietfHex, ietfBase64, ietfASCIIArt };

typedef void __fastcall (__closure *TIEAcquireBitmapEvent)(System::TObject* Sender, Hyieutils::TIEBitmap* ABitmap, bool &Handled);

typedef void __fastcall (__closure *TIEAfterAcquireBitmapEvent)(System::TObject* Sender, int index);

enum DECLSPEC_DENUM TIEJpegTransform : unsigned char { jtNone, jtCut, jtHorizFlip, jtVertFlip, jtTranspose, jtTransverse, jtRotate90, jtRotate180, jtRotate270 };

enum DECLSPEC_DENUM TIEJpegCopyMarkers : unsigned char { jcCopyNone, jcCopyComments, jcCopyAll };

struct DECLSPEC_DRECORD TStreamJpegHeader
{
public:
	System::StaticArray<char, 5> ID;
	int dim;
};


struct DECLSPEC_DRECORD PCXSHead
{
public:
	System::StaticArray<char, 5> ID;
	int dim;
};


struct DECLSPEC_DRECORD TIFFSHead
{
public:
	System::StaticArray<char, 5> ID;
	int dim;
};


enum DECLSPEC_DENUM Imageenio__1 : unsigned char { ppALL, ppAUTO, ppJPEG, ppTIFF, ppGIF, ppBMP, ppPCX, ppPNG, ppTGA, ppJ2000 };

typedef System::Set<Imageenio__1, Imageenio__1::ppALL, Imageenio__1::ppJ2000> TPreviewParams;

enum DECLSPEC_DENUM TIOPreviewsParamsItems : unsigned char { ioppDefaultLockPreview, ioppApplyButton };

typedef System::Set<TIOPreviewsParamsItems, TIOPreviewsParamsItems::ioppDefaultLockPreview, TIOPreviewsParamsItems::ioppApplyButton> TIOPreviewsParams;

enum DECLSPEC_DENUM TIEVerticalPos : unsigned char { ievpTop, ievpCenter, ievpBottom };

enum DECLSPEC_DENUM TIEHorizontalPos : unsigned char { iehpLeft, iehpCenter, iehpRight };

enum DECLSPEC_DENUM TIESize : unsigned char { iesNormal, iesFitToPage, iesFitToPageStretch, iesFillPage, iesSpecifiedSize };

enum DECLSPEC_DENUM TIECreateAVIFileResult : unsigned char { ieaviOK, ieaviNOCOMPRESSOR, ieaviMEMORY, ieaviUNSUPPORTED };

enum DECLSPEC_DENUM TIOPSCompression : unsigned char { ioPS_RLE, ioPS_G4FAX, ioPS_G3FAX2D, ioPS_JPEG };

enum DECLSPEC_DENUM TIOPDFCompression : unsigned char { ioPDF_UNCOMPRESSED, ioPDF_RLE, ioPDF_G4FAX, ioPDF_G3FAX2D, ioPDF_JPEG, ioPDF_LZW };

enum DECLSPEC_DENUM TIOPDFPaperSize : unsigned char { iepA0, iepA1, iepA2, iepA3, iepA4, iepA5, iepA6, iepB5, iepLetter, iepLegal, iepLedger, iepTabloid, iepUnknown };

enum DECLSPEC_DENUM TIOTIFFCompression : unsigned char { ioTIFF_UNCOMPRESSED, ioTIFF_CCITT1D, ioTIFF_G3FAX1D, ioTIFF_G3FAX2D, ioTIFF_G4FAX, ioTIFF_LZW, ioTIFF_OLDJPEG, ioTIFF_JPEG, ioTIFF_PACKBITS, ioTIFF_ZIP, ioTIFF_DEFLATE, ioTIFF_UNKNOWN };

enum DECLSPEC_DENUM TIOTIFFPhotometInterpret : unsigned char { ioTIFF_WHITEISZERO, ioTIFF_BLACKISZERO, ioTIFF_RGB, ioTIFF_RGBPALETTE, ioTIFF_TRANSPMASK, ioTIFF_CMYK, ioTIFF_YCBCR, ioTIFF_CIELAB };

enum DECLSPEC_DENUM TIOJPEGColorspace : unsigned char { ioJPEG_RGB, ioJPEG_GRAYLEV, ioJPEG_YCbCr, ioJPEG_CMYK, ioJPEG_YCbCrK };

enum DECLSPEC_DENUM TIOJ2000ColorSpace : unsigned char { ioJ2000_GRAYLEV, ioJ2000_RGB, ioJ2000_YCbCr };

enum DECLSPEC_DENUM TIOJ2000ScalableBy : unsigned char { ioJ2000_Rate, ioJ2000_Resolution };

enum DECLSPEC_DENUM TIOJPEGDctMethod : unsigned char { ioJPEG_ISLOW, ioJPEG_IFAST, ioJPEG_FLOAT };

enum DECLSPEC_DENUM TIOJPEGCromaSubsampling : unsigned char { ioJPEG_MEDIUM, ioJPEG_HIGH, ioJPEG_NONE };

enum DECLSPEC_DENUM TIOJPEGScale : unsigned char { ioJPEG_AUTOCALC, ioJPEG_FULLSIZE, ioJPEG_HALF, ioJPEG_QUARTER, ioJPEG_EIGHTH };

enum DECLSPEC_DENUM TIOBMPVersion : unsigned char { ioBMP_BM, ioBMP_BM3, ioBMP_BMOS2V1, ioBMP_BMOS2V2 };

enum DECLSPEC_DENUM TIOBMPCompression : unsigned char { ioBMP_UNCOMPRESSED, ioBMP_RLE };

enum DECLSPEC_DENUM TIOPCXCompression : unsigned char { ioPCX_UNCOMPRESSED, ioPCX_RLE };

enum DECLSPEC_DENUM TIOPNGFilter : unsigned char { ioPNG_FILTER_NONE, ioPNG_FILTER_SUB, ioPNG_FILTER_PAETH, ioPNG_FILTER_UP, ioPNG_FILTER_AVG, ioPNG_FILTER_ALL };

enum DECLSPEC_DENUM TIEGIFAction : unsigned char { ioGIF_None, ioGIF_DontRemove, ioGIF_DrawBackground, ioGIF_RestorePrev };

typedef int TIOFileType;

typedef System::StaticArray<System::Types::TSize, 16> TIOICOSizes;

typedef System::StaticArray<int, 16> TIOICOBitCount;

enum DECLSPEC_DENUM TIOBMPRAWChannelOrder : unsigned char { coRGB, coBGR };

enum DECLSPEC_DENUM TIOBMPRAWDataFormat : unsigned char { dfBinary, dfTextDecimal, dfTextHex };

enum DECLSPEC_DENUM TIOBMPRAWPlanes : unsigned char { plInterleaved, plPlanar };

enum DECLSPEC_DENUM TIOByteOrder : unsigned char { ioBigEndian, ioLittleEndian };

enum DECLSPEC_DENUM TIEDicomRange : unsigned char { iedrAdjust, iedrSetBlackWhite };

enum DECLSPEC_DENUM TIEDicomCompression : unsigned char { iedcUncompressed_Implicit, iedcUncompressed, iedcUncompressed_BE, iedcRLE, iedcLSJPEG1, iedcLSJPEG2, iedcJPEG, iedcJPEG12Bit, iedcJPEG2000, iedcMPEG };

class PASCALIMPLEMENTATION TIOParamsVals : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	TImageEnIO* fImageEnIO;
	Hyieutils::TIEDictionary* fDict;
	int fBitsPerSample;
	System::WideString fFileName;
	int fSamplesPerPixel;
	int fWidth;
	int fHeight;
	int fDpiX;
	int fDpiY;
	int fFileType;
	int fImageIndex;
	int fImageCount;
	bool fGetThumbnail;
	bool fIsResource;
	bool fEnableAdjustOrientation;
	int fOriginalWidth;
	int fOriginalHeight;
	TIOTIFFCompression fTIFF_Compression;
	int fTIFF_ImageIndex;
	int fTIFF_SubIndex;
	int fTIFF_NewSubfileType;
	TIOTIFFPhotometInterpret fTIFF_PhotometInterpret;
	int fTIFF_PlanarConf;
	int fTIFF_XPos;
	int fTIFF_YPos;
	int fTIFF_GetTile;
	System::AnsiString fTIFF_DocumentName;
	System::AnsiString fTIFF_ImageDescription;
	System::AnsiString fTIFF_PageName;
	int fTIFF_PageNumber;
	int fTIFF_PageCount;
	int fTIFF_Orientation;
	Hyiedefs::TTIFFLZWDecompFunc fTIFF_LZWDecompFunc;
	Hyiedefs::TTIFFLZWCompFunc fTIFF_LZWCompFunc;
	bool fTIFF_EnableAdjustOrientation;
	int fTIFF_JPEGQuality;
	TIOJPEGColorspace fTIFF_JPEGColorSpace;
	int fTIFF_ZIPCompression;
	int fTIFF_StripCount;
	int fTIFF_ImageCount;
	int fTIFF_FillOrder;
	TIOByteOrder fTIFF_ByteOrder;
	Hyiedefs::TIEArrayOfByte fTIFF_PhotoshopImageResources;
	Hyiedefs::TIEArrayOfByte fTIFF_PhotoshopImageSourceData;
	bool fTIFF_BigTIFF;
	int fDCX_ImageIndex;
	System::AnsiString fGIF_Version;
	int fGIF_ImageIndex;
	int fGIF_XPos;
	int fGIF_YPos;
	int fGIF_DelayTime;
	bool fGIF_FlagTranspColor;
	Hyiedefs::TRGB fGIF_TranspColor;
	bool fGIF_Interlaced;
	int fGIF_WinWidth;
	int fGIF_WinHeight;
	Hyiedefs::TRGB fGIF_Background;
	int fGIF_Ratio;
	System::Classes::TStringList* fGIF_Comments;
	TIEGIFAction fGIF_Action;
	bool fGIF_RAWLoad;
	Hyiedefs::TGIFLZWDecompFunc fGIF_LZWDecompFunc;
	Hyiedefs::TGIFLZWCompFunc fGIF_LZWCompFunc;
	int fGIF_ImageCount;
	TIOJPEGColorspace fJPEG_ColorSpace;
	int fJPEG_Quality;
	TIOJPEGDctMethod fJPEG_DCTMethod;
	TIOJPEGCromaSubsampling fJPEG_CromaSubsampling;
	bool fJPEG_OptimalHuffman;
	int fJPEG_Smooth;
	bool fJPEG_Progressive;
	TIOJPEGScale fJPEG_Scale;
	Hyieutils::TIEMarkerList* fJPEG_MarkerList;
	int fJPEG_Scale_Used;
	int fJPEG_WarningTot;
	int fJPEG_WarningCode;
	bool fJPEG_EnableAdjustOrientation;
	bool fJPEG_GetExifThumbnail;
	TIOJ2000ColorSpace fJ2000_ColorSpace;
	double fJ2000_Rate;
	TIOJ2000ScalableBy fJ2000_ScalableBy;
	int fPCX_Version;
	TIOPCXCompression fPCX_Compression;
	TIOBMPVersion fBMP_Version;
	TIOBMPCompression fBMP_Compression;
	bool fBMP_HandleTransparency;
	int fICO_ImageIndex;
	Hyiedefs::TRGB fICO_Background;
	int fCUR_ImageIndex;
	int fCUR_XHotSpot;
	int fCUR_YHotSpot;
	Hyiedefs::TRGB fCUR_Background;
	bool fPNG_Interlaced;
	Hyiedefs::TRGB fPNG_Background;
	TIOPNGFilter fPNG_Filter;
	int fPNG_Compression;
	System::Classes::TStringList* fPNG_TextKeys;
	System::Classes::TStringList* fPNG_TextValues;
	Hyieutils::TIEDicomTags* fDICOM_Tags;
	double fDICOM_WindowCenterOffset;
	TIEDicomRange fDICOM_Range;
	int fDICOM_JPEGQuality;
	double fDICOM_J2000Rate;
	double fDICOM_RescaleIntercept;
	double fDICOM_RescaleSlope;
	int fTGA_XPos;
	int fTGA_YPos;
	bool fTGA_Compressed;
	System::AnsiString fTGA_Descriptor;
	System::AnsiString fTGA_Author;
	System::TDateTime fTGA_Date;
	System::AnsiString fTGA_ImageName;
	Hyiedefs::TRGB fTGA_Background;
	double fTGA_AspectRatio;
	double fTGA_Gamma;
	bool fTGA_GrayLevel;
	Hyieutils::TIEIPTCInfoList* fIPTC_Info;
	Hyieutils::TIEImagingAnnot* fImagingAnnot;
	Hyieutils::TIEImageEnAnnot* fImageEnAnnot;
	System::Classes::TStringList* fPXM_Comments;
	System::Classes::TList* fEXIF_Tags;
	bool fEXIF_HasEXIFData;
	int fEXIF_Orientation;
	Hyieutils::TIEBitmap* fEXIF_Bitmap;
	System::AnsiString fEXIF_ImageDescription;
	System::AnsiString fEXIF_Make;
	System::AnsiString fEXIF_Model;
	double fEXIF_XResolution;
	double fEXIF_YResolution;
	int fEXIF_ResolutionUnit;
	System::AnsiString fEXIF_Software;
	System::AnsiString fEXIF_Artist;
	System::AnsiString fEXIF_DateTime;
	System::StaticArray<double, 2> fEXIF_WhitePoint;
	System::StaticArray<double, 6> fEXIF_PrimaryChromaticities;
	System::StaticArray<double, 3> fEXIF_YCbCrCoefficients;
	int fEXIF_YCbCrPositioning;
	System::StaticArray<double, 6> fEXIF_ReferenceBlackWhite;
	System::AnsiString fEXIF_Copyright;
	double fEXIF_ExposureTime;
	double fEXIF_FNumber;
	int fEXIF_ExposureProgram;
	System::StaticArray<int, 2> fEXIF_ISOSpeedRatings;
	System::AnsiString fEXIF_ExifVersion;
	System::AnsiString fEXIF_DateTimeOriginal;
	System::AnsiString fEXIF_DateTimeDigitized;
	double fEXIF_CompressedBitsPerPixel;
	double fEXIF_ShutterSpeedValue;
	double fEXIF_ApertureValue;
	double fEXIF_BrightnessValue;
	double fEXIF_ExposureBiasValue;
	double fEXIF_MaxApertureValue;
	double fEXIF_SubjectDistance;
	int fEXIF_MeteringMode;
	int fEXIF_LightSource;
	int fEXIF_Flash;
	double fEXIF_FocalLength;
	System::AnsiString fEXIF_SubsecTime;
	System::AnsiString fEXIF_SubsecTimeOriginal;
	System::AnsiString fEXIF_SubsecTimeDigitized;
	System::AnsiString fEXIF_FlashPixVersion;
	int fEXIF_ColorSpace;
	int fEXIF_ExifImageWidth;
	int fEXIF_ExifImageHeight;
	System::AnsiString fEXIF_RelatedSoundFile;
	double fEXIF_FocalPlaneXResolution;
	double fEXIF_FocalPlaneYResolution;
	int fEXIF_FocalPlaneResolutionUnit;
	double fEXIF_ExposureIndex;
	int fEXIF_SensingMethod;
	int fEXIF_FileSource;
	int fEXIF_SceneType;
	System::WideString fEXIF_UserComment;
	System::AnsiString fEXIF_UserCommentCode;
	Hyieutils::TIETagsHandler* fEXIF_MakerNote;
	int fEXIF_XPRating;
	System::WideString fEXIF_XPTitle;
	System::WideString fEXIF_XPComment;
	System::WideString fEXIF_XPAuthor;
	System::WideString fEXIF_XPKeywords;
	System::WideString fEXIF_XPSubject;
	int fEXIF_ExposureMode;
	int fEXIF_WhiteBalance;
	double fEXIF_DigitalZoomRatio;
	int fEXIF_FocalLengthIn35mmFilm;
	int fEXIF_SceneCaptureType;
	int fEXIF_GainControl;
	int fEXIF_Contrast;
	int fEXIF_Saturation;
	int fEXIF_Sharpness;
	int fEXIF_SubjectDistanceRange;
	System::AnsiString fEXIF_ImageUniqueID;
	System::AnsiString fEXIF_GPSVersionID;
	System::AnsiString fEXIF_GPSLatitudeRef;
	double fEXIF_GPSLatitudeDegrees;
	double fEXIF_GPSLatitudeMinutes;
	double fEXIF_GPSLatitudeSeconds;
	System::AnsiString fEXIF_GPSLongitudeRef;
	double fEXIF_GPSLongitudeDegrees;
	double fEXIF_GPSLongitudeMinutes;
	double fEXIF_GPSLongitudeSeconds;
	System::AnsiString fEXIF_GPSAltitudeRef;
	double fEXIF_GPSAltitude;
	double fEXIF_GPSTimeStampHour;
	double fEXIF_GPSTimeStampMinute;
	double fEXIF_GPSTimeStampSecond;
	System::AnsiString fEXIF_GPSSatellites;
	System::AnsiString fEXIF_GPSStatus;
	System::AnsiString fEXIF_GPSMeasureMode;
	double fEXIF_GPSDOP;
	System::AnsiString fEXIF_GPSSpeedRef;
	double fEXIF_GPSSpeed;
	System::AnsiString fEXIF_GPSTrackRef;
	double fEXIF_GPSTrack;
	System::AnsiString fEXIF_GPSImgDirectionRef;
	double fEXIF_GPSImgDirection;
	System::AnsiString fEXIF_GPSMapDatum;
	System::AnsiString fEXIF_GPSDestLatitudeRef;
	double fEXIF_GPSDestLatitudeDegrees;
	double fEXIF_GPSDestLatitudeMinutes;
	double fEXIF_GPSDestLatitudeSeconds;
	System::AnsiString fEXIF_GPSDestLongitudeRef;
	double fEXIF_GPSDestLongitudeDegrees;
	double fEXIF_GPSDestLongitudeMinutes;
	double fEXIF_GPSDestLongitudeSeconds;
	System::AnsiString fEXIF_GPSDestBearingRef;
	double fEXIF_GPSDestBearing;
	System::AnsiString fEXIF_GPSDestDistanceRef;
	double fEXIF_GPSDestDistance;
	System::AnsiString fEXIF_GPSDateStamp;
	System::AnsiString fEXIF_InteropIndex;
	System::AnsiString fEXIF_InteropVersion;
	int fAVI_FrameCount;
	double fAVI_FrameDelayTime;
	int fMEDIAFILE_FrameCount;
	double fMEDIAFILE_FrameDelayTime;
	int fPS_PaperWidth;
	int fPS_PaperHeight;
	TIOPSCompression fPS_Compression;
	System::AnsiString fPS_Title;
	int fPDF_PaperWidth;
	int fPDF_PaperHeight;
	TIOPDFCompression fPDF_Compression;
	System::AnsiString fPDF_Title;
	System::AnsiString fPDF_Author;
	System::AnsiString fPDF_Subject;
	System::AnsiString fPDF_Keywords;
	System::AnsiString fPDF_Creator;
	System::AnsiString fPDF_Producer;
	bool fRAW_HalfSize;
	double fRAW_Gamma;
	double fRAW_Bright;
	double fRAW_RedScale;
	double fRAW_BlueScale;
	bool fRAW_QuickInterpolate;
	bool fRAW_UseAutoWB;
	bool fRAW_UseCameraWB;
	bool fRAW_FourColorRGB;
	System::AnsiString fRAW_Camera;
	bool fRAW_GetExifThumbnail;
	bool fRAW_AutoAdjustColors;
	System::AnsiString fRAW_ExtraParams;
	TIOBMPRAWChannelOrder fBMPRAW_ChannelOrder;
	TIOBMPRAWPlanes fBMPRAW_Planes;
	int fBMPRAW_RowAlign;
	int fBMPRAW_HeaderSize;
	TIOBMPRAWDataFormat fBMPRAW_DataFormat;
	bool fPSD_LoadLayers;
	bool fPSD_ReplaceLayers;
	bool fPSD_HasPremultipliedAlpha;
	bool fPSD_LargeDocumentFormat;
	System::AnsiString fPSD_SelectLayer;
	double fHDP_ImageQuality;
	bool fHDP_Lossless;
	System::AnsiString fXMP_Info;
	System::UnicodeString __fastcall GetFileTypeStr(void);
	void __fastcall SetEXIF_WhitePoint(int index, double v);
	double __fastcall GetEXIF_WhitePoint(int index);
	void __fastcall SetEXIF_PrimaryChromaticities(int index, double v);
	double __fastcall GetEXIF_PrimaryChromaticities(int index);
	void __fastcall SetEXIF_YCbCrCoefficients(int index, double v);
	double __fastcall GetEXIF_YCbCrCoefficients(int index);
	void __fastcall SetEXIF_ReferenceBlackWhite(int index, double v);
	double __fastcall GetEXIF_ReferenceBlackWhite(int index);
	void __fastcall SetEXIF_ISOSpeedRatings(int index, int v);
	int __fastcall GetEXIF_ISOSpeedRatings(int index);
	void __fastcall SetDpi(int Value);
	void __fastcall SetTIFF_Orientation(int Value);
	void __fastcall SetEXIF_Orientation(int Value);
	void __fastcall SetEXIF_XResolution(double Value);
	void __fastcall SetEXIF_YResolution(double Value);
	Hyieutils::TIEICC* __fastcall GetInputICC(void);
	Hyieutils::TIEICC* __fastcall GetOutputICC(void);
	Hyieutils::TIEICC* __fastcall GetDefaultICC(void);
	Hyieutils::TIEImagingAnnot* __fastcall GetImagingAnnot(void);
	void __fastcall SetImageIndex(int value);
	void __fastcall SetImageCount(int value);
	void __fastcall SetGetThumbnail(bool value);
	void __fastcall SetIsResource(bool value);
	void __fastcall SetJPEG_GetExifThumbnail(bool value);
	void __fastcall SetRAW_GetExifThumbnail(bool value);
	void __fastcall SetEnableAdjustOrientation(bool value);
	void __fastcall EXIFTagsAdd(int tag);
	void __fastcall EXIFTagsDel(int tag);
	void __fastcall SetEXIF_ExposureTime(double value);
	void __fastcall SetEXIF_FNumber(double value);
	void __fastcall SetEXIF_ExposureProgram(int value);
	void __fastcall SetEXIF_CompressedBitsPerPixel(double value);
	void __fastcall SetEXIF_ShutterSpeedValue(double value);
	void __fastcall SetEXIF_ApertureValue(double value);
	void __fastcall SetEXIF_BrightnessValue(double value);
	void __fastcall SetEXIF_ExposureBiasValue(double value);
	void __fastcall SetEXIF_MaxApertureValue(double value);
	void __fastcall SetEXIF_SubjectDistance(double value);
	void __fastcall SetEXIF_MeteringMode(int value);
	void __fastcall SetEXIF_LightSource(int value);
	void __fastcall SetEXIF_Flash(int value);
	void __fastcall SetEXIF_FocalLength(double value);
	void __fastcall SetEXIF_ColorSpace(int value);
	void __fastcall SetEXIF_ExifImageWidth(int value);
	void __fastcall SetEXIF_ExifImageHeight(int value);
	void __fastcall SetEXIF_FocalPlaneXResolution(double value);
	void __fastcall SetEXIF_FocalPlaneYResolution(double value);
	void __fastcall SetEXIF_FocalPlaneResolutionUnit(int value);
	void __fastcall SetEXIF_ExposureIndex(double value);
	void __fastcall SetEXIF_SensingMethod(int value);
	void __fastcall SetEXIF_FileSource(int value);
	void __fastcall SetEXIF_SceneType(int value);
	void __fastcall SetDpiX(int Value);
	void __fastcall SetDpiY(int Value);
	double __fastcall GetEXIF_GPSLatitude(void);
	void __fastcall SetEXIF_GPSLatitude(double value);
	double __fastcall GetEXIF_GPSLongitude(void);
	void __fastcall SetEXIF_GPSLongitude(double value);
	System::TDateTime __fastcall GetEXIF_DateTime2(void);
	void __fastcall SetEXIF_DateTime2(const System::TDateTime Value);
	System::TDateTime __fastcall GetEXIF_DateTimeOriginal2(void);
	void __fastcall SetEXIF_DateTimeOriginal2(const System::TDateTime Value);
	System::TDateTime __fastcall GetEXIF_DateTimeDigitized2(void);
	void __fastcall SetEXIF_DateTimeDigitized2(const System::TDateTime Value);
	System::UnicodeString __fastcall GetEXIF_GPSLatitude_Str(void);
	System::UnicodeString __fastcall GetEXIF_GPSLongitude_Str(void);
	System::UnicodeString __fastcall GetIPTC_Photoshop(int FieldID);
	void __fastcall SetIPTC_Photoshop(int FieldID, const System::UnicodeString Value);
	int __fastcall GetImageDelayTime(void);
	TIEDicomCompression __fastcall GetDICOM_Compression(void);
	void __fastcall SetDICOM_Compression(TIEDicomCompression Value);
	void __fastcall SetXMP_Info(System::AnsiString Value);
	TIOPDFPaperSize __fastcall GetPDF_PaperSize(void);
	void __fastcall SetPDF_PaperSize(const TIOPDFPaperSize value);
	TIOPDFPaperSize __fastcall GetPS_PaperSize(void);
	void __fastcall SetPS_PaperSize(const TIOPDFPaperSize value);
	
public:
	bool IsNativePixelFormat;
	Hyiedefs::RGBROW *fColorMap;
	int fColorMapCount;
	TIOICOSizes ICO_Sizes;
	TIOICOBitCount ICO_BitCount;
	Hyieutils::TIEICC* fInputICC;
	Hyieutils::TIEICC* fOutputICC;
	Hyieutils::TIEICC* fDefaultICC;
	__property System::WideString FileName = {read=fFileName, write=fFileName};
	__property System::UnicodeString FileTypeStr = {read=GetFileTypeStr};
	__property int FileType = {read=fFileType, write=fFileType, nodefault};
	__property int BitsPerSample = {read=fBitsPerSample, write=fBitsPerSample, nodefault};
	__property int SamplesPerPixel = {read=fSamplesPerPixel, write=fSamplesPerPixel, nodefault};
	__property int Width = {read=fWidth, write=fWidth, nodefault};
	__property int Height = {read=fHeight, write=fHeight, nodefault};
	__property int DpiX = {read=fDpiX, write=SetDpiX, nodefault};
	__property int DpiY = {read=fDpiY, write=SetDpiY, nodefault};
	__property int Dpi = {read=fDpiX, write=SetDpi, nodefault};
	__property Hyiedefs::PRGBROW ColorMap = {read=fColorMap};
	__property int ColorMapCount = {read=fColorMapCount, nodefault};
	__property int ImageIndex = {read=fImageIndex, write=SetImageIndex, nodefault};
	__property int ImageCount = {read=fImageCount, write=SetImageCount, nodefault};
	__property int ImageDelayTime = {read=GetImageDelayTime, nodefault};
	__property bool GetThumbnail = {read=fGetThumbnail, write=SetGetThumbnail, nodefault};
	__property Hyieutils::TIEDictionary* Dict = {read=fDict};
	__property bool IsResource = {read=fIsResource, write=SetIsResource, nodefault};
	__property bool EnableAdjustOrientation = {read=fEnableAdjustOrientation, write=SetEnableAdjustOrientation, nodefault};
	__property Hyieutils::TIEICC* InputICCProfile = {read=GetInputICC};
	__property Hyieutils::TIEICC* OutputICCProfile = {read=GetOutputICC};
	__property Hyieutils::TIEICC* DefaultICCProfile = {read=GetDefaultICC};
	__property Hyieutils::TIEIPTCInfoList* IPTC_Info = {read=fIPTC_Info};
	__property System::UnicodeString IPTC_Photoshop[int FieldID] = {read=GetIPTC_Photoshop, write=SetIPTC_Photoshop};
	__property Hyieutils::TIEImagingAnnot* ImagingAnnot = {read=GetImagingAnnot};
	__property Hyieutils::TIEImageEnAnnot* ImageEnAnnot = {read=fImageEnAnnot};
	__property TIOTIFFCompression TIFF_Compression = {read=fTIFF_Compression, write=fTIFF_Compression, nodefault};
	__property int TIFF_ImageIndex = {read=fTIFF_ImageIndex, write=SetImageIndex, nodefault};
	__property int TIFF_SubIndex = {read=fTIFF_SubIndex, write=fTIFF_SubIndex, nodefault};
	__property int TIFF_ImageCount = {read=fTIFF_ImageCount, write=SetImageCount, nodefault};
	__property TIOTIFFPhotometInterpret TIFF_PhotometInterpret = {read=fTIFF_PhotometInterpret, write=fTIFF_PhotometInterpret, nodefault};
	__property int TIFF_PlanarConf = {read=fTIFF_PlanarConf, write=fTIFF_PlanarConf, nodefault};
	__property int TIFF_NewSubfileType = {read=fTIFF_NewSubfileType, write=fTIFF_NewSubfileType, nodefault};
	__property int TIFF_XPos = {read=fTIFF_XPos, write=fTIFF_XPos, nodefault};
	__property int TIFF_GetTile = {read=fTIFF_GetTile, write=fTIFF_GetTile, nodefault};
	__property int TIFF_YPos = {read=fTIFF_YPos, write=fTIFF_YPos, nodefault};
	__property System::AnsiString TIFF_DocumentName = {read=fTIFF_DocumentName, write=fTIFF_DocumentName};
	__property System::AnsiString TIFF_ImageDescription = {read=fTIFF_ImageDescription, write=fTIFF_ImageDescription};
	__property System::AnsiString TIFF_PageName = {read=fTIFF_PageName, write=fTIFF_PageName};
	__property int TIFF_PageNumber = {read=fTIFF_PageNumber, write=fTIFF_PageNumber, nodefault};
	__property int TIFF_PageCount = {read=fTIFF_PageCount, write=fTIFF_PageCount, nodefault};
	__property int TIFF_Orientation = {read=fTIFF_Orientation, write=SetTIFF_Orientation, nodefault};
	__property bool TIFF_EnableAdjustOrientation = {read=fTIFF_EnableAdjustOrientation, write=fTIFF_EnableAdjustOrientation, nodefault};
	__property Hyiedefs::TTIFFLZWDecompFunc TIFF_LZWDecompFunc = {read=fTIFF_LZWDecompFunc, write=fTIFF_LZWDecompFunc};
	__property Hyiedefs::TTIFFLZWCompFunc TIFF_LZWCompFunc = {read=fTIFF_LZWCompFunc, write=fTIFF_LZWCompFunc};
	__property int TIFF_JPEGQuality = {read=fTIFF_JPEGQuality, write=fTIFF_JPEGQuality, nodefault};
	__property TIOJPEGColorspace TIFF_JPEGColorSpace = {read=fTIFF_JPEGColorSpace, write=fTIFF_JPEGColorSpace, nodefault};
	__property int TIFF_FillOrder = {read=fTIFF_FillOrder, write=fTIFF_FillOrder, nodefault};
	__property int TIFF_ZIPCompression = {read=fTIFF_ZIPCompression, write=fTIFF_ZIPCompression, nodefault};
	__property int TIFF_StripCount = {read=fTIFF_StripCount, write=fTIFF_StripCount, nodefault};
	__property TIOByteOrder TIFF_ByteOrder = {read=fTIFF_ByteOrder, write=fTIFF_ByteOrder, nodefault};
	__property Hyiedefs::TIEArrayOfByte TIFF_PhotoshopImageResources = {read=fTIFF_PhotoshopImageResources, write=fTIFF_PhotoshopImageResources};
	__property Hyiedefs::TIEArrayOfByte TIFF_PhotoshopImageSourceData = {read=fTIFF_PhotoshopImageSourceData, write=fTIFF_PhotoshopImageSourceData};
	__property bool TIFF_BigTIFF = {read=fTIFF_BigTIFF, write=fTIFF_BigTIFF, nodefault};
	__property System::AnsiString GIF_Version = {read=fGIF_Version, write=fGIF_Version};
	__property int GIF_ImageIndex = {read=fGIF_ImageIndex, write=SetImageIndex, nodefault};
	__property int GIF_ImageCount = {read=fGIF_ImageCount, write=SetImageCount, nodefault};
	__property int GIF_XPos = {read=fGIF_XPos, write=fGIF_XPos, nodefault};
	__property int GIF_YPos = {read=fGIF_YPos, write=fGIF_YPos, nodefault};
	__property int GIF_DelayTime = {read=fGIF_DelayTime, write=fGIF_DelayTime, nodefault};
	__property bool GIF_FlagTranspColor = {read=fGIF_FlagTranspColor, write=fGIF_FlagTranspColor, nodefault};
	__property Hyiedefs::TRGB GIF_TranspColor = {read=fGIF_TranspColor, write=fGIF_TranspColor};
	__property bool GIF_Interlaced = {read=fGIF_Interlaced, write=fGIF_Interlaced, nodefault};
	__property int GIF_WinWidth = {read=fGIF_WinWidth, write=fGIF_WinWidth, nodefault};
	__property int GIF_WinHeight = {read=fGIF_WinHeight, write=fGIF_WinHeight, nodefault};
	__property Hyiedefs::TRGB GIF_Background = {read=fGIF_Background, write=fGIF_Background};
	__property int GIF_Ratio = {read=fGIF_Ratio, write=fGIF_Ratio, nodefault};
	__property System::Classes::TStringList* GIF_Comments = {read=fGIF_Comments};
	__property TIEGIFAction GIF_Action = {read=fGIF_Action, write=fGIF_Action, nodefault};
	__property bool GIF_RAWLoad = {read=fGIF_RAWLoad, write=fGIF_RAWLoad, nodefault};
	__property Hyiedefs::TGIFLZWDecompFunc GIF_LZWDecompFunc = {read=fGIF_LZWDecompFunc, write=fGIF_LZWDecompFunc};
	__property Hyiedefs::TGIFLZWCompFunc GIF_LZWCompFunc = {read=fGIF_LZWCompFunc, write=fGIF_LZWCompFunc};
	__property int DCX_ImageIndex = {read=fDCX_ImageIndex, write=SetImageIndex, nodefault};
	__property TIOJPEGColorspace JPEG_ColorSpace = {read=fJPEG_ColorSpace, write=fJPEG_ColorSpace, nodefault};
	__property int JPEG_Quality = {read=fJPEG_Quality, write=fJPEG_Quality, nodefault};
	__property TIOJPEGDctMethod JPEG_DCTMethod = {read=fJPEG_DCTMethod, write=fJPEG_DCTMethod, nodefault};
	__property TIOJPEGCromaSubsampling JPEG_CromaSubsampling = {read=fJPEG_CromaSubsampling, write=fJPEG_CromaSubsampling, nodefault};
	__property bool JPEG_OptimalHuffman = {read=fJPEG_OptimalHuffman, write=fJPEG_OptimalHuffman, nodefault};
	__property int JPEG_Smooth = {read=fJPEG_Smooth, write=fJPEG_Smooth, nodefault};
	__property bool JPEG_Progressive = {read=fJPEG_Progressive, write=fJPEG_Progressive, nodefault};
	__property TIOJPEGScale JPEG_Scale = {read=fJPEG_Scale, write=fJPEG_Scale, nodefault};
	__property Hyieutils::TIEMarkerList* JPEG_MarkerList = {read=fJPEG_MarkerList};
	__property int JPEG_Scale_Used = {read=fJPEG_Scale_Used, write=fJPEG_Scale_Used, nodefault};
	__property int JPEG_WarningTot = {read=fJPEG_WarningTot, write=fJPEG_WarningTot, nodefault};
	__property int JPEG_WarningCode = {read=fJPEG_WarningCode, write=fJPEG_WarningCode, nodefault};
	__property int JPEG_OriginalWidth = {read=fOriginalWidth, write=fOriginalWidth, nodefault};
	__property int JPEG_OriginalHeight = {read=fOriginalHeight, write=fOriginalHeight, nodefault};
	__property int OriginalWidth = {read=fOriginalWidth, write=fOriginalWidth, nodefault};
	__property int OriginalHeight = {read=fOriginalHeight, write=fOriginalHeight, nodefault};
	__property bool JPEG_EnableAdjustOrientation = {read=fJPEG_EnableAdjustOrientation, write=fJPEG_EnableAdjustOrientation, nodefault};
	__property bool JPEG_GetExifThumbnail = {read=fJPEG_GetExifThumbnail, write=SetJPEG_GetExifThumbnail, nodefault};
	__property TIOJ2000ColorSpace J2000_ColorSpace = {read=fJ2000_ColorSpace, write=fJ2000_ColorSpace, nodefault};
	__property double J2000_Rate = {read=fJ2000_Rate, write=fJ2000_Rate};
	__property TIOJ2000ScalableBy J2000_ScalableBy = {read=fJ2000_ScalableBy, write=fJ2000_ScalableBy, nodefault};
	__property int PCX_Version = {read=fPCX_Version, write=fPCX_Version, nodefault};
	__property TIOPCXCompression PCX_Compression = {read=fPCX_Compression, write=fPCX_Compression, nodefault};
	__property TIOBMPVersion BMP_Version = {read=fBMP_Version, write=fBMP_Version, nodefault};
	__property TIOBMPCompression BMP_Compression = {read=fBMP_Compression, write=fBMP_Compression, nodefault};
	__property bool BMP_HandleTransparency = {read=fBMP_HandleTransparency, write=fBMP_HandleTransparency, nodefault};
	__property int ICO_ImageIndex = {read=fICO_ImageIndex, write=SetImageIndex, nodefault};
	__property Hyiedefs::TRGB ICO_Background = {read=fICO_Background, write=fICO_Background};
	__property int CUR_ImageIndex = {read=fCUR_ImageIndex, write=SetImageIndex, nodefault};
	__property int CUR_XHotSpot = {read=fCUR_XHotSpot, write=fCUR_XHotSpot, nodefault};
	__property int CUR_YHotSpot = {read=fCUR_YHotSpot, write=fCUR_YHotSpot, nodefault};
	__property Hyiedefs::TRGB CUR_Background = {read=fCUR_Background, write=fCUR_Background};
	__property Hyieutils::TIEDicomTags* DICOM_Tags = {read=fDICOM_Tags};
	__property double DICOM_WindowCenterOffset = {read=fDICOM_WindowCenterOffset, write=fDICOM_WindowCenterOffset};
	__property double DICOM_RescaleIntercept = {read=fDICOM_RescaleIntercept, write=fDICOM_RescaleIntercept};
	__property double DICOM_RescaleSlope = {read=fDICOM_RescaleSlope, write=fDICOM_RescaleSlope};
	__property TIEDicomRange DICOM_Range = {read=fDICOM_Range, write=fDICOM_Range, nodefault};
	__property TIEDicomCompression DICOM_Compression = {read=GetDICOM_Compression, write=SetDICOM_Compression, nodefault};
	__property int DICOM_JPEGQuality = {read=fDICOM_JPEGQuality, write=fDICOM_JPEGQuality, nodefault};
	__property double DICOM_J2000Rate = {read=fDICOM_J2000Rate, write=fDICOM_J2000Rate};
	__property bool PNG_Interlaced = {read=fPNG_Interlaced, write=fPNG_Interlaced, nodefault};
	__property Hyiedefs::TRGB PNG_Background = {read=fPNG_Background, write=fPNG_Background};
	__property TIOPNGFilter PNG_Filter = {read=fPNG_Filter, write=fPNG_Filter, nodefault};
	__property int PNG_Compression = {read=fPNG_Compression, write=fPNG_Compression, nodefault};
	__property System::Classes::TStringList* PNG_TextKeys = {read=fPNG_TextKeys};
	__property System::Classes::TStringList* PNG_TextValues = {read=fPNG_TextValues};
	__property bool PSD_LoadLayers = {read=fPSD_LoadLayers, write=fPSD_LoadLayers, nodefault};
	__property bool PSD_ReplaceLayers = {read=fPSD_ReplaceLayers, write=fPSD_ReplaceLayers, nodefault};
	__property bool PSD_HasPremultipliedAlpha = {read=fPSD_HasPremultipliedAlpha, nodefault};
	__property bool PSD_LargeDocumentFormat = {read=fPSD_LargeDocumentFormat, write=fPSD_LargeDocumentFormat, nodefault};
	__property System::AnsiString PSD_SelectLayer = {read=fPSD_SelectLayer, write=fPSD_SelectLayer};
	__property double HDP_ImageQuality = {read=fHDP_ImageQuality, write=fHDP_ImageQuality};
	__property bool HDP_Lossless = {read=fHDP_Lossless, write=fHDP_Lossless, nodefault};
	__property int TGA_XPos = {read=fTGA_XPos, write=fTGA_XPos, nodefault};
	__property int TGA_YPos = {read=fTGA_YPos, write=fTGA_YPos, nodefault};
	__property bool TGA_Compressed = {read=fTGA_Compressed, write=fTGA_Compressed, nodefault};
	__property System::AnsiString TGA_Descriptor = {read=fTGA_Descriptor, write=fTGA_Descriptor};
	__property System::AnsiString TGA_Author = {read=fTGA_Author, write=fTGA_Author};
	__property System::TDateTime TGA_Date = {read=fTGA_Date, write=fTGA_Date};
	__property System::AnsiString TGA_ImageName = {read=fTGA_ImageName, write=fTGA_ImageName};
	__property Hyiedefs::TRGB TGA_Background = {read=fTGA_Background, write=fTGA_Background};
	__property double TGA_AspectRatio = {read=fTGA_AspectRatio, write=fTGA_AspectRatio};
	__property double TGA_Gamma = {read=fTGA_Gamma, write=fTGA_Gamma};
	__property bool TGA_GrayLevel = {read=fTGA_GrayLevel, write=fTGA_GrayLevel, nodefault};
	__property int AVI_FrameCount = {read=fAVI_FrameCount, write=SetImageCount, nodefault};
	__property double AVI_FrameDelayTime = {read=fAVI_FrameDelayTime, write=fAVI_FrameDelayTime};
	__property int MEDIAFILE_FrameCount = {read=fMEDIAFILE_FrameCount, write=SetImageCount, nodefault};
	__property double MEDIAFILE_FrameDelayTime = {read=fMEDIAFILE_FrameDelayTime, write=fMEDIAFILE_FrameDelayTime};
	__property System::Classes::TStringList* PXM_Comments = {read=fPXM_Comments};
	__property int PS_PaperWidth = {read=fPS_PaperWidth, write=fPS_PaperWidth, nodefault};
	__property int PS_PaperHeight = {read=fPS_PaperHeight, write=fPS_PaperHeight, nodefault};
	__property TIOPDFPaperSize PS_PaperSize = {read=GetPS_PaperSize, write=SetPS_PaperSize, nodefault};
	__property TIOPSCompression PS_Compression = {read=fPS_Compression, write=fPS_Compression, nodefault};
	__property System::AnsiString PS_Title = {read=fPS_Title, write=fPS_Title};
	__property int PDF_PaperWidth = {read=fPDF_PaperWidth, write=fPDF_PaperWidth, nodefault};
	__property int PDF_PaperHeight = {read=fPDF_PaperHeight, write=fPDF_PaperHeight, nodefault};
	__property TIOPDFPaperSize PDF_PaperSize = {read=GetPDF_PaperSize, write=SetPDF_PaperSize, nodefault};
	__property TIOPDFCompression PDF_Compression = {read=fPDF_Compression, write=fPDF_Compression, nodefault};
	__property System::AnsiString PDF_Title = {read=fPDF_Title, write=fPDF_Title};
	__property System::AnsiString PDF_Author = {read=fPDF_Author, write=fPDF_Author};
	__property System::AnsiString PDF_Subject = {read=fPDF_Subject, write=fPDF_Subject};
	__property System::AnsiString PDF_Keywords = {read=fPDF_Keywords, write=fPDF_Keywords};
	__property System::AnsiString PDF_Creator = {read=fPDF_Creator, write=fPDF_Creator};
	__property System::AnsiString PDF_Producer = {read=fPDF_Producer, write=fPDF_Producer};
	__property System::Classes::TList* EXIF_Tags = {read=fEXIF_Tags};
	__property bool EXIF_HasEXIFData = {read=fEXIF_HasEXIFData, write=fEXIF_HasEXIFData, nodefault};
	__property Hyieutils::TIEBitmap* EXIF_Bitmap = {read=fEXIF_Bitmap, write=fEXIF_Bitmap};
	__property System::AnsiString EXIF_ImageDescription = {read=fEXIF_ImageDescription, write=fEXIF_ImageDescription};
	__property System::AnsiString EXIF_Make = {read=fEXIF_Make, write=fEXIF_Make};
	__property System::AnsiString EXIF_Model = {read=fEXIF_Model, write=fEXIF_Model};
	__property int EXIF_Orientation = {read=fEXIF_Orientation, write=SetEXIF_Orientation, nodefault};
	__property double EXIF_XResolution = {read=fEXIF_XResolution, write=SetEXIF_XResolution};
	__property double EXIF_YResolution = {read=fEXIF_YResolution, write=SetEXIF_YResolution};
	__property int EXIF_ResolutionUnit = {read=fEXIF_ResolutionUnit, write=fEXIF_ResolutionUnit, nodefault};
	__property System::AnsiString EXIF_Software = {read=fEXIF_Software, write=fEXIF_Software};
	__property System::AnsiString EXIF_Artist = {read=fEXIF_Artist, write=fEXIF_Artist};
	__property System::AnsiString EXIF_DateTime = {read=fEXIF_DateTime, write=fEXIF_DateTime};
	__property System::TDateTime EXIF_DateTime2 = {read=GetEXIF_DateTime2, write=SetEXIF_DateTime2};
	__property double EXIF_WhitePoint[int index] = {read=GetEXIF_WhitePoint, write=SetEXIF_WhitePoint};
	__property double EXIF_PrimaryChromaticities[int index] = {read=GetEXIF_PrimaryChromaticities, write=SetEXIF_PrimaryChromaticities};
	__property double EXIF_YCbCrCoefficients[int index] = {read=GetEXIF_YCbCrCoefficients, write=SetEXIF_YCbCrCoefficients};
	__property int EXIF_YCbCrPositioning = {read=fEXIF_YCbCrPositioning, write=fEXIF_YCbCrPositioning, nodefault};
	__property double EXIF_ReferenceBlackWhite[int index] = {read=GetEXIF_ReferenceBlackWhite, write=SetEXIF_ReferenceBlackWhite};
	__property System::AnsiString EXIF_Copyright = {read=fEXIF_Copyright, write=fEXIF_Copyright};
	__property double EXIF_ExposureTime = {read=fEXIF_ExposureTime, write=SetEXIF_ExposureTime};
	__property double EXIF_FNumber = {read=fEXIF_FNumber, write=SetEXIF_FNumber};
	__property int EXIF_ExposureProgram = {read=fEXIF_ExposureProgram, write=SetEXIF_ExposureProgram, nodefault};
	__property int EXIF_ISOSpeedRatings[int index] = {read=GetEXIF_ISOSpeedRatings, write=SetEXIF_ISOSpeedRatings};
	__property System::AnsiString EXIF_ExifVersion = {read=fEXIF_ExifVersion, write=fEXIF_ExifVersion};
	__property System::AnsiString EXIF_DateTimeOriginal = {read=fEXIF_DateTimeOriginal, write=fEXIF_DateTimeOriginal};
	__property System::TDateTime EXIF_DateTimeOriginal2 = {read=GetEXIF_DateTimeOriginal2, write=SetEXIF_DateTimeOriginal2};
	__property System::AnsiString EXIF_DateTimeDigitized = {read=fEXIF_DateTimeDigitized, write=fEXIF_DateTimeDigitized};
	__property System::TDateTime EXIF_DateTimeDigitized2 = {read=GetEXIF_DateTimeDigitized2, write=SetEXIF_DateTimeDigitized2};
	__property double EXIF_CompressedBitsPerPixel = {read=fEXIF_CompressedBitsPerPixel, write=SetEXIF_CompressedBitsPerPixel};
	__property double EXIF_ShutterSpeedValue = {read=fEXIF_ShutterSpeedValue, write=SetEXIF_ShutterSpeedValue};
	__property double EXIF_ApertureValue = {read=fEXIF_ApertureValue, write=SetEXIF_ApertureValue};
	__property double EXIF_BrightnessValue = {read=fEXIF_BrightnessValue, write=SetEXIF_BrightnessValue};
	__property double EXIF_ExposureBiasValue = {read=fEXIF_ExposureBiasValue, write=SetEXIF_ExposureBiasValue};
	__property double EXIF_MaxApertureValue = {read=fEXIF_MaxApertureValue, write=SetEXIF_MaxApertureValue};
	__property double EXIF_SubjectDistance = {read=fEXIF_SubjectDistance, write=SetEXIF_SubjectDistance};
	__property int EXIF_MeteringMode = {read=fEXIF_MeteringMode, write=SetEXIF_MeteringMode, nodefault};
	__property int EXIF_LightSource = {read=fEXIF_LightSource, write=SetEXIF_LightSource, nodefault};
	__property int EXIF_Flash = {read=fEXIF_Flash, write=SetEXIF_Flash, nodefault};
	__property double EXIF_FocalLength = {read=fEXIF_FocalLength, write=SetEXIF_FocalLength};
	__property System::AnsiString EXIF_SubsecTime = {read=fEXIF_SubsecTime, write=fEXIF_SubsecTime};
	__property System::AnsiString EXIF_SubsecTimeOriginal = {read=fEXIF_SubsecTimeOriginal, write=fEXIF_SubsecTimeOriginal};
	__property System::AnsiString EXIF_SubsecTimeDigitized = {read=fEXIF_SubsecTimeDigitized, write=fEXIF_SubsecTimeDigitized};
	__property System::AnsiString EXIF_FlashPixVersion = {read=fEXIF_FlashPixVersion, write=fEXIF_FlashPixVersion};
	__property int EXIF_ColorSpace = {read=fEXIF_ColorSpace, write=SetEXIF_ColorSpace, nodefault};
	__property int EXIF_ExifImageWidth = {read=fEXIF_ExifImageWidth, write=SetEXIF_ExifImageWidth, nodefault};
	__property int EXIF_ExifImageHeight = {read=fEXIF_ExifImageHeight, write=SetEXIF_ExifImageHeight, nodefault};
	__property System::AnsiString EXIF_RelatedSoundFile = {read=fEXIF_RelatedSoundFile, write=fEXIF_RelatedSoundFile};
	__property double EXIF_FocalPlaneXResolution = {read=fEXIF_FocalPlaneXResolution, write=SetEXIF_FocalPlaneXResolution};
	__property double EXIF_FocalPlaneYResolution = {read=fEXIF_FocalPlaneYResolution, write=SetEXIF_FocalPlaneYResolution};
	__property int EXIF_FocalPlaneResolutionUnit = {read=fEXIF_FocalPlaneResolutionUnit, write=SetEXIF_FocalPlaneResolutionUnit, nodefault};
	__property double EXIF_ExposureIndex = {read=fEXIF_ExposureIndex, write=SetEXIF_ExposureIndex};
	__property int EXIF_SensingMethod = {read=fEXIF_SensingMethod, write=SetEXIF_SensingMethod, nodefault};
	__property int EXIF_FileSource = {read=fEXIF_FileSource, write=SetEXIF_FileSource, nodefault};
	__property int EXIF_SceneType = {read=fEXIF_SceneType, write=SetEXIF_SceneType, nodefault};
	__property System::WideString EXIF_UserComment = {read=fEXIF_UserComment, write=fEXIF_UserComment};
	__property System::AnsiString EXIF_UserCommentCode = {read=fEXIF_UserCommentCode, write=fEXIF_UserCommentCode};
	__property Hyieutils::TIETagsHandler* EXIF_MakerNote = {read=fEXIF_MakerNote};
	__property System::WideString EXIF_XPTitle = {read=fEXIF_XPTitle, write=fEXIF_XPTitle};
	__property int EXIF_XPRating = {read=fEXIF_XPRating, write=fEXIF_XPRating, nodefault};
	__property System::WideString EXIF_XPComment = {read=fEXIF_XPComment, write=fEXIF_XPComment};
	__property System::WideString EXIF_XPAuthor = {read=fEXIF_XPAuthor, write=fEXIF_XPAuthor};
	__property System::WideString EXIF_XPKeywords = {read=fEXIF_XPKeywords, write=fEXIF_XPKeywords};
	__property System::WideString EXIF_XPSubject = {read=fEXIF_XPSubject, write=fEXIF_XPSubject};
	__property int EXIF_ExposureMode = {read=fEXIF_ExposureMode, write=fEXIF_ExposureMode, nodefault};
	__property int EXIF_WhiteBalance = {read=fEXIF_WhiteBalance, write=fEXIF_WhiteBalance, nodefault};
	__property double EXIF_DigitalZoomRatio = {read=fEXIF_DigitalZoomRatio, write=fEXIF_DigitalZoomRatio};
	__property int EXIF_FocalLengthIn35mmFilm = {read=fEXIF_FocalLengthIn35mmFilm, write=fEXIF_FocalLengthIn35mmFilm, nodefault};
	__property int EXIF_SceneCaptureType = {read=fEXIF_SceneCaptureType, write=fEXIF_SceneCaptureType, nodefault};
	__property int EXIF_GainControl = {read=fEXIF_GainControl, write=fEXIF_GainControl, nodefault};
	__property int EXIF_Contrast = {read=fEXIF_Contrast, write=fEXIF_Contrast, nodefault};
	__property int EXIF_Saturation = {read=fEXIF_Saturation, write=fEXIF_Saturation, nodefault};
	__property int EXIF_Sharpness = {read=fEXIF_Sharpness, write=fEXIF_Sharpness, nodefault};
	__property int EXIF_SubjectDistanceRange = {read=fEXIF_SubjectDistanceRange, write=fEXIF_SubjectDistanceRange, nodefault};
	__property System::AnsiString EXIF_ImageUniqueID = {read=fEXIF_ImageUniqueID, write=fEXIF_ImageUniqueID};
	__property System::AnsiString EXIF_GPSVersionID = {read=fEXIF_GPSVersionID, write=fEXIF_GPSVersionID};
	__property double EXIF_GPSLatitude = {read=GetEXIF_GPSLatitude, write=SetEXIF_GPSLatitude};
	__property System::UnicodeString EXIF_GPSLatitude_Str = {read=GetEXIF_GPSLatitude_Str};
	__property System::AnsiString EXIF_GPSLatitudeRef = {read=fEXIF_GPSLatitudeRef, write=fEXIF_GPSLatitudeRef};
	__property double EXIF_GPSLatitudeDegrees = {read=fEXIF_GPSLatitudeDegrees, write=fEXIF_GPSLatitudeDegrees};
	__property double EXIF_GPSLatitudeMinutes = {read=fEXIF_GPSLatitudeMinutes, write=fEXIF_GPSLatitudeMinutes};
	__property double EXIF_GPSLatitudeSeconds = {read=fEXIF_GPSLatitudeSeconds, write=fEXIF_GPSLatitudeSeconds};
	__property double EXIF_GPSLongitude = {read=GetEXIF_GPSLongitude, write=SetEXIF_GPSLongitude};
	__property System::UnicodeString EXIF_GPSLongitude_Str = {read=GetEXIF_GPSLongitude_Str};
	__property System::AnsiString EXIF_GPSLongitudeRef = {read=fEXIF_GPSLongitudeRef, write=fEXIF_GPSLongitudeRef};
	__property double EXIF_GPSLongitudeDegrees = {read=fEXIF_GPSLongitudeDegrees, write=fEXIF_GPSLongitudeDegrees};
	__property double EXIF_GPSLongitudeMinutes = {read=fEXIF_GPSLongitudeMinutes, write=fEXIF_GPSLongitudeMinutes};
	__property double EXIF_GPSLongitudeSeconds = {read=fEXIF_GPSLongitudeSeconds, write=fEXIF_GPSLongitudeSeconds};
	__property System::AnsiString EXIF_GPSAltitudeRef = {read=fEXIF_GPSAltitudeRef, write=fEXIF_GPSAltitudeRef};
	__property double EXIF_GPSAltitude = {read=fEXIF_GPSAltitude, write=fEXIF_GPSAltitude};
	__property double EXIF_GPSTimeStampHour = {read=fEXIF_GPSTimeStampHour, write=fEXIF_GPSTimeStampHour};
	__property double EXIF_GPSTimeStampMinute = {read=fEXIF_GPSTimeStampMinute, write=fEXIF_GPSTimeStampMinute};
	__property double EXIF_GPSTimeStampSecond = {read=fEXIF_GPSTimeStampSecond, write=fEXIF_GPSTimeStampSecond};
	__property System::AnsiString EXIF_GPSSatellites = {read=fEXIF_GPSSatellites, write=fEXIF_GPSSatellites};
	__property System::AnsiString EXIF_GPSStatus = {read=fEXIF_GPSStatus, write=fEXIF_GPSStatus};
	__property System::AnsiString EXIF_GPSMeasureMode = {read=fEXIF_GPSMeasureMode, write=fEXIF_GPSMeasureMode};
	__property double EXIF_GPSDOP = {read=fEXIF_GPSDOP, write=fEXIF_GPSDOP};
	__property System::AnsiString EXIF_GPSSpeedRef = {read=fEXIF_GPSSpeedRef, write=fEXIF_GPSSpeedRef};
	__property double EXIF_GPSSpeed = {read=fEXIF_GPSSpeed, write=fEXIF_GPSSpeed};
	__property System::AnsiString EXIF_GPSTrackRef = {read=fEXIF_GPSTrackRef, write=fEXIF_GPSTrackRef};
	__property double EXIF_GPSTrack = {read=fEXIF_GPSTrack, write=fEXIF_GPSTrack};
	__property System::AnsiString EXIF_GPSImgDirectionRef = {read=fEXIF_GPSImgDirectionRef, write=fEXIF_GPSImgDirectionRef};
	__property double EXIF_GPSImgDirection = {read=fEXIF_GPSImgDirection, write=fEXIF_GPSImgDirection};
	__property System::AnsiString EXIF_GPSMapDatum = {read=fEXIF_GPSMapDatum, write=fEXIF_GPSMapDatum};
	__property System::AnsiString EXIF_GPSDestLatitudeRef = {read=fEXIF_GPSDestLatitudeRef, write=fEXIF_GPSDestLatitudeRef};
	__property double EXIF_GPSDestLatitudeDegrees = {read=fEXIF_GPSDestLatitudeDegrees, write=fEXIF_GPSDestLatitudeDegrees};
	__property double EXIF_GPSDestLatitudeMinutes = {read=fEXIF_GPSDestLatitudeMinutes, write=fEXIF_GPSDestLatitudeMinutes};
	__property double EXIF_GPSDestLatitudeSeconds = {read=fEXIF_GPSDestLatitudeSeconds, write=fEXIF_GPSDestLatitudeSeconds};
	__property System::AnsiString EXIF_GPSDestLongitudeRef = {read=fEXIF_GPSDestLongitudeRef, write=fEXIF_GPSDestLatitudeRef};
	__property double EXIF_GPSDestLongitudeDegrees = {read=fEXIF_GPSDestLongitudeDegrees, write=fEXIF_GPSDestLongitudeDegrees};
	__property double EXIF_GPSDestLongitudeMinutes = {read=fEXIF_GPSDestLongitudeMinutes, write=fEXIF_GPSDestLongitudeMinutes};
	__property double EXIF_GPSDestLongitudeSeconds = {read=fEXIF_GPSDestLongitudeSeconds, write=fEXIF_GPSDestLongitudeSeconds};
	__property System::AnsiString EXIF_GPSDestBearingRef = {read=fEXIF_GPSDestBearingRef, write=fEXIF_GPSDestBearingRef};
	__property double EXIF_GPSDestBearing = {read=fEXIF_GPSDestBearing, write=fEXIF_GPSDestBearing};
	__property System::AnsiString EXIF_GPSDestDistanceRef = {read=fEXIF_GPSDestDistanceRef, write=fEXIF_GPSDestDistanceRef};
	__property double EXIF_GPSDestDistance = {read=fEXIF_GPSDestDistance, write=fEXIF_GPSDestDistance};
	__property System::AnsiString EXIF_GPSDateStamp = {read=fEXIF_GPSDateStamp, write=fEXIF_GPSDateStamp};
	__property System::AnsiString EXIF_InteropIndex = {read=fEXIF_InteropIndex, write=fEXIF_InteropIndex};
	__property System::AnsiString EXIF_InteropVersion = {read=fEXIF_InteropVersion, write=fEXIF_InteropVersion};
	__property System::AnsiString XMP_Info = {read=fXMP_Info, write=SetXMP_Info};
	__property bool RAW_HalfSize = {read=fRAW_HalfSize, write=fRAW_HalfSize, nodefault};
	__property double RAW_Gamma = {read=fRAW_Gamma, write=fRAW_Gamma};
	__property double RAW_Bright = {read=fRAW_Bright, write=fRAW_Bright};
	__property double RAW_RedScale = {read=fRAW_RedScale, write=fRAW_RedScale};
	__property double RAW_BlueScale = {read=fRAW_BlueScale, write=fRAW_BlueScale};
	__property bool RAW_QuickInterpolate = {read=fRAW_QuickInterpolate, write=fRAW_QuickInterpolate, nodefault};
	__property bool RAW_UseAutoWB = {read=fRAW_UseAutoWB, write=fRAW_UseAutoWB, nodefault};
	__property System::AnsiString RAW_ExtraParams = {read=fRAW_ExtraParams, write=fRAW_ExtraParams};
	__property bool RAW_UseCameraWB = {read=fRAW_UseCameraWB, write=fRAW_UseCameraWB, nodefault};
	__property bool RAW_FourColorRGB = {read=fRAW_FourColorRGB, write=fRAW_FourColorRGB, nodefault};
	__property System::AnsiString RAW_Camera = {read=fRAW_Camera, write=fRAW_Camera};
	__property bool RAW_GetExifThumbnail = {read=fRAW_GetExifThumbnail, write=SetRAW_GetExifThumbnail, nodefault};
	__property bool RAW_AutoAdjustColors = {read=fRAW_AutoAdjustColors, write=fRAW_AutoAdjustColors, nodefault};
	__property TIOBMPRAWChannelOrder BMPRAW_ChannelOrder = {read=fBMPRAW_ChannelOrder, write=fBMPRAW_ChannelOrder, nodefault};
	__property TIOBMPRAWPlanes BMPRAW_Planes = {read=fBMPRAW_Planes, write=fBMPRAW_Planes, nodefault};
	__property int BMPRAW_RowAlign = {read=fBMPRAW_RowAlign, write=fBMPRAW_RowAlign, nodefault};
	__property int BMPRAW_HeaderSize = {read=fBMPRAW_HeaderSize, write=fBMPRAW_HeaderSize, nodefault};
	__property TIOBMPRAWDataFormat BMPRAW_DataFormat = {read=fBMPRAW_DataFormat, write=fBMPRAW_DataFormat, nodefault};
	__fastcall TIOParamsVals(TImageEnIO* IEIO);
	__fastcall virtual ~TIOParamsVals(void);
	void __fastcall SetDefaultParams(void);
	void __fastcall Assign(TIOParamsVals* Source);
	void __fastcall AssignCompressionInfo(TIOParamsVals* Source);
	void __fastcall SaveToFile(const System::WideString FileName);
	void __fastcall SaveToStream(System::Classes::TStream* Stream);
	void __fastcall LoadFromFile(const System::WideString FileName);
	void __fastcall LoadFromStream(System::Classes::TStream* Stream);
	__property TImageEnIO* ImageEnIO = {read=fImageEnIO};
	void __fastcall ResetInfo(void);
	void __fastcall ResetEXIF(void);
	System::WideString __fastcall GetProperty(const System::WideString Prop);
	void __fastcall SetProperty(System::WideString Prop, System::WideString Value);
	void __fastcall UpdateEXIFThumbnail(int Width = 0xa0, int Height = 0xffffffff, Hyiedefs::TResampleFilter ResampleFilter = (Hyiedefs::TResampleFilter)(0x1));
	void __fastcall FreeColorMap(void);
	void __fastcall AdjustGPSCoordinates(void);
	System::UnicodeString __fastcall ReadIPTCField(int iRecNo, int iFieldIndex)/* overload */;
	void __fastcall ReadIPTCField(int iRecNo, int iFieldIndex, System::Classes::TStrings* Dest)/* overload */;
	void __fastcall WriteIPTCField(int iRecNo, int iFieldIndex, const System::UnicodeString Value)/* overload */;
	void __fastcall WriteIPTCField(int iRecNo, int iFieldIndex, System::Classes::TStrings* ssValues)/* overload */;
	void __fastcall ClearIPTCField(int iRecNo, int iFieldIndex);
};


typedef void __fastcall (__closure *TIEIOPreviewEvent)(System::TObject* Sender, Vcl::Forms::TForm* PreviewForm);

typedef void __fastcall (__closure *TIEDoPreviewsEvent)(System::TObject* Sender, bool &Handled);

enum DECLSPEC_DENUM TIECSSource : unsigned char { iecsScreen, iecsPrimary, iecsForegroundWindow, iecsForegroundWindowClient };

enum DECLSPEC_DENUM TIEDialogType : unsigned char { iedtDialog, iedtMaxi };

enum DECLSPEC_DENUM TIEDialogsMeasureUnit : unsigned char { ieduInches, ieduCm, ieduSelectableDefInches, ieduSelectableDefCm };

struct DECLSPEC_DRECORD TAviStreamInfoA_Ex
{
public:
	unsigned fccType;
	unsigned fccHandler;
	unsigned dwFlags;
	unsigned dwCaps;
	System::Word wPriority;
	System::Word wLanguage;
	unsigned dwScale;
	unsigned dwRate;
	unsigned dwStart;
	unsigned dwLength;
	unsigned dwInitialFrames;
	unsigned dwSuggestedBufferSize;
	unsigned dwQuality;
	unsigned dwSampleSize;
	System::Types::TRect rcFrame;
	unsigned dwEditCount;
	unsigned dwFormatChangeCount;
	System::StaticArray<char, 64> szName;
};


struct DECLSPEC_DRECORD TAviStreamInfoW_Ex
{
public:
	unsigned fccType;
	unsigned fccHandler;
	unsigned dwFlags;
	unsigned dwCaps;
	System::Word wPriority;
	System::Word wLanguage;
	unsigned dwScale;
	unsigned dwRate;
	unsigned dwStart;
	unsigned dwLength;
	unsigned dwInitialFrames;
	unsigned dwSuggestedBufferSize;
	unsigned dwQuality;
	unsigned dwSampleSize;
	System::Types::TRect rcFrame;
	unsigned dwEditCount;
	unsigned dwFormatChangeCount;
	System::StaticArray<System::WideChar, 64> szName;
};


typedef TAviStreamInfoW_Ex TAviStreamInfo_Ex;

enum DECLSPEC_DENUM TIOPrintPreviewPosition : unsigned char { ppTopLeft, ppTop, ppTopRight, ppLeft, ppCenter, ppRight, ppBottomLeft, ppBottom, ppBottomRight };

enum DECLSPEC_DENUM TIOPrintPreviewSize : unsigned char { psNormal, psFitToPage, psStretchToPage, psFillPage, psSpecifiedSize };

enum DECLSPEC_DENUM TIOPrintPreviewThumbnailStyle : unsigned char { ptFlat, ptSoftShadow, ptBorder };

class PASCALIMPLEMENTATION TIOPrintPreviewParams : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	double fMarginTop;
	double fMarginLeft;
	double fMarginRight;
	double fMarginBottom;
	TIOPrintPreviewPosition fPosition;
	TIOPrintPreviewSize fSize;
	double fWidth;
	double fHeight;
	double fGamma;
	bool fPrintThumbnails;
	int fThumbnailColumns;
	int fThumbnailRows;
	double fThumbnailSpacing;
	TIOPrintPreviewThumbnailStyle fThumbnailStyle;
	bool fThumbnailShowText;
	int fDlgWidth;
	int fDlgHeight;
	
public:
	__fastcall TIOPrintPreviewParams(void);
	__property double MarginTop = {read=fMarginTop, write=fMarginTop};
	__property double MarginLeft = {read=fMarginLeft, write=fMarginLeft};
	__property double MarginRight = {read=fMarginRight, write=fMarginRight};
	__property double MarginBottom = {read=fMarginBottom, write=fMarginBottom};
	__property TIOPrintPreviewPosition Position = {read=fPosition, write=fPosition, nodefault};
	__property TIOPrintPreviewSize Size = {read=fSize, write=fSize, nodefault};
	__property double Width = {read=fWidth, write=fWidth};
	__property double Height = {read=fHeight, write=fHeight};
	__property double Gamma = {read=fGamma, write=fGamma};
	__property bool PrintThumbnails = {read=fPrintThumbnails, write=fPrintThumbnails, nodefault};
	__property int ThumbnailColumns = {read=fThumbnailColumns, write=fThumbnailColumns, nodefault};
	__property int ThumbnailRows = {read=fThumbnailRows, write=fThumbnailRows, nodefault};
	__property double ThumbnailSpacing = {read=fThumbnailSpacing, write=fThumbnailSpacing};
	__property TIOPrintPreviewThumbnailStyle ThumbnailStyle = {read=fThumbnailStyle, write=fThumbnailStyle, nodefault};
	__property bool ThumbnailShowText = {read=fThumbnailShowText, write=fThumbnailShowText, nodefault};
	__property int DlgWidth = {read=fDlgWidth, write=fDlgWidth, nodefault};
	__property int DlgHeight = {read=fDlgHeight, write=fDlgHeight, nodefault};
	void __fastcall SaveToFile(const System::WideString FileName);
	void __fastcall LoadFromFile(const System::WideString FileName);
	void __fastcall SaveToStream(System::Classes::TStream* Stream);
	void __fastcall LoadFromStream(System::Classes::TStream* Stream);
	void __fastcall SetProperty(System::WideString Prop, System::WideString Value);
	System::WideString __fastcall GetProperty(const System::WideString Prop);
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TIOPrintPreviewParams(void) { }
	
};


enum DECLSPEC_DENUM TIEIOSeekDestination : unsigned char { ieioSeekFirst, ieioSeekPrior, ieioSeekNext, ieioSeekLast };

class PASCALIMPLEMENTATION TImageEnIO : public System::Classes::TComponent
{
	typedef System::Classes::TComponent inherited;
	
private:
	Vcl::Graphics::TBitmap* fBitmap;
	Hyieutils::TIEBitmap* fIEBitmap;
	bool fIEBitmapCreated;
	Ieview::TIEView* fImageEnView;
	void *fImageEnViewBitmapChangeHandle;
	Vcl::Extctrls::TImage* fTImage;
	System::Uitypes::TColor fBackground;
	TIOPreviewsParams fPreviewsParams;
	bool fSimplifiedParamsDialogs;
	TIEDoPreviewsEvent fOnDoPreviews;
	bool fChangeBackground;
	Iexacquire::TIEAcquireParams* fAcquireParams;
	Ietwain::TIETwainParams* fTwainParams;
	Iexdcim::TIEDcimAcquire* fDCIMParams;
	bool fStreamHeaders;
	Vcl::Graphics::TFont* fPreviewFont;
	bool fPreviewFontEnabled;
	TIEIOPreviewEvent fOnIOPreview;
	TIEDialogsMeasureUnit fDialogsMeasureUnit;
	bool fAutoAdjustDPI;
	bool fFilteredAdjustDPI;
	void *fAVI_avf;
	void *fAVI_avs;
	void *fAVI_avs1;
	void *fAVI_gf;
	TAviStreamInfoW_Ex fAVI_psi;
	void *fAVI_popts;
	int fAVI_idx;
	Ieds::TIEDirectShow* fOpenMediaFile;
	double fOpenMediaFileRate;
	int fOpenMediaFileMul;
	void *fPS_handle;
	Hyieutils::TIEWideFileStream* fPS_stream;
	void *fPDF_handle;
	Hyieutils::TIEWideFileStream* fPDF_stream;
	System::Classes::TList* fAsyncThreads;
	NativeUInt fAsyncThreadsFinishEvent;
	_RTL_CRITICAL_SECTION fAsyncThreadsCS;
	bool fAsyncMode;
	Hyiedefs::TResampleFilter fPrintingFilterOnSubsampling;
	void *fgrec;
	Iewia::TIEWia* fWIA;
	Ieds::TIEDirectShow* fDShow;
	Iemmf::TIEMediaFoundationSourceReader* fMediaFoundationSourceReader;
	System::WideString fProxyAddress;
	System::WideString fProxyUser;
	System::WideString fProxyPassword;
	Hyieutils::TIEDitherMethod fDefaultDitherMethod;
	bool fResetPrinter;
	TIOPrintPreviewParams* fPrintPreviewParams;
	bool __fastcall IsInsideAsyncThreads(void);
	void __fastcall SetAttachedBitmap(Vcl::Graphics::TBitmap* atBitmap);
	void __fastcall SetAttachedImageEn(Ieview::TIEView* atImageEn);
	System::Uitypes::TColor __fastcall GetReBackground(void);
	void __fastcall SetReBackground(System::Uitypes::TColor v);
	void __fastcall SetPreviewFont(Vcl::Graphics::TFont* f);
	void __fastcall SetPreviewFontEnabled(bool Value);
	void __fastcall SetTImage(Vcl::Extctrls::TImage* v);
	void __fastcall SetIOPreviewParams(TIOPreviewsParams v);
	TIOPreviewsParams __fastcall GetIOPreviewParams(void);
	void __fastcall AdjustDPI(void);
	int __fastcall GetAsyncRunning(void);
	int __fastcall GetThreadsCount(void);
	void __fastcall SetDefaultDitherMethod(Hyieutils::TIEDitherMethod Value);
	bool __fastcall WiaOnProgress(int Percentage);
	void __fastcall SetPrintLogFile(System::UnicodeString v);
	System::UnicodeString __fastcall GetPrintLogFile(void);
	void __fastcall UpdateAPP138BimResolution(void);
	void __fastcall ParamsFromMetaFile(System::Classes::TStream* stream);
	System::UnicodeString __fastcall GetImageEnVersion(void);
	void __fastcall SetImageEnVersion(System::UnicodeString Value);
	void __fastcall SetAborting(bool Value);
	
protected:
	TIOParamsVals* fParams;
	bool fAborting;
	Hyiedefs::TIEProgressEvent fOnIntProgress;
	Hyiedefs::TIEProgressEvent fOnProgress;
	System::Classes::TNotifyEvent fOnFinishWork;
	TIEAcquireBitmapEvent fOnAcquireBitmap;
	System::Classes::TNotifyEvent fOnAcquireClose;
	virtual void __fastcall Notification(System::Classes::TComponent* AComponent, System::Classes::TOperation Operation);
	void __fastcall OnBitmapChange(System::TObject* Sender, bool destroying);
	void __fastcall PrintImageEx(Vcl::Graphics::TCanvas* PrtCanvas, int dpix, int dpiy, double pagewidth, double pageheight, double MarginLeft, double MarginTop, double MarginRight, double MarginBottom, TIEVerticalPos VerticalPos, TIEHorizontalPos HorizontalPos, TIESize Size, double SpecWidth, double SpecHeight, double GammaCorrection);
	bool __fastcall LoadFromStreamJ2000(System::Classes::TStream* Stream);
	void __fastcall SaveToStreamJ2000(System::Classes::TStream* Stream, int format);
	void __fastcall SetBitmap(Vcl::Graphics::TBitmap* bmp);
	void __fastcall SetIEBitmap(Hyieutils::TIEBitmap* bmp);
	void __fastcall SetAttachedIEBitmap(Hyieutils::TIEBitmap* bmp);
	virtual void __fastcall TWMultiCallBack(Hyieutils::TIEBitmap* Bitmap, System::TObject* &IOParams, int ImDpiX, int ImDpiY);
	virtual void __fastcall TWCloseCallBack(void);
	DYNAMIC void __fastcall DoAcquireBitmap(Hyieutils::TIEBitmap* ABitmap, bool &Handled);
	virtual void __fastcall DoFinishWork(void);
	virtual Vcl::Graphics::TBitmap* __fastcall GetBitmap(void);
	bool __fastcall MakeConsistentBitmap(Hyieutils::TIEPixelFormatSet allowedFormats);
	virtual Iewia::TIEWia* __fastcall GetWIAParams(void);
	virtual Ieds::TIEDirectShow* __fastcall GetDShowParams(void);
	Iemmf::TIEMediaFoundationSourceReader* __fastcall GetMediaFoundationSourceReader(void);
	int __fastcall SyncLoadFromStreamGIF(System::Classes::TStream* Stream);
	void __fastcall SyncLoadFromStreamPCX(System::Classes::TStream* Stream, bool streamhead);
	void __fastcall SyncLoadFromStreamDCX(System::Classes::TStream* Stream);
	int __fastcall SyncLoadFromStreamTIFF(System::Classes::TStream* Stream, bool streamhead);
	void __fastcall SyncLoadFromStreamBMP(System::Classes::TStream* Stream);
	void __fastcall SyncSaveToStreamJpeg(System::Classes::TStream* Stream, bool streamhead);
	void __fastcall SyncSaveToStreamPS(System::Classes::TStream* Stream);
	void __fastcall SyncSaveToStreamPDF(System::Classes::TStream* Stream);
	void __fastcall SyncSaveToStreamDICOM(System::Classes::TStream* Stream);
	void __fastcall SyncSaveToStreamBMP(System::Classes::TStream* Stream);
	void __fastcall SyncSaveToStreamDCX(System::Classes::TStream* Stream);
	void __fastcall SyncLoadFromStreamPSD(System::Classes::TStream* Stream);
	void __fastcall SyncLoadFromStreamCUR(System::Classes::TStream* Stream);
	void __fastcall SyncLoadFromStreamICO(System::Classes::TStream* Stream);
	void __fastcall SyncLoadFromStreamHDP(System::Classes::TStream* Stream);
	void __fastcall SyncLoadFromStreamRAW(System::Classes::TStream* Stream);
	void __fastcall SyncLoadFromStreamBMPRAW(System::Classes::TStream* Stream);
	void __fastcall SyncSaveToStreamBMPRAW(System::Classes::TStream* Stream);
	void __fastcall CheckDPI(void);
	void __fastcall SetNativePixelFormat(bool value);
	bool __fastcall GetNativePixelFormat(void);
	virtual void __fastcall DoIntProgress(System::TObject* Sender, int per);
	void __fastcall SyncSaveToStreamPSD(System::Classes::TStream* Stream);
	void __fastcall SyncSaveToStreamHDP(System::Classes::TStream* Stream);
	bool __fastcall LoadViewerFile(const System::WideString fileName, int ft);
	bool __fastcall LoadViewerStream(System::Classes::TStream* Stream, int ft);
	virtual void __fastcall SetViewerDPI(int dpix, int dpiy);
	Iexacquire::TIEAcquireSource __fastcall GetSelectedAcquireSource(void);
	
public:
	__fastcall virtual TImageEnIO(System::Classes::TComponent* Owner);
	__fastcall TImageEnIO(Hyieutils::TIEBitmap* Bitmap)/* overload */;
	__fastcall TImageEnIO(Vcl::Graphics::TBitmap* Bitmap)/* overload */;
	__fastcall virtual ~TImageEnIO(void);
	__property Vcl::Graphics::TBitmap* AttachedBitmap = {read=fBitmap, write=SetAttachedBitmap};
	__property Hyieutils::TIEBitmap* AttachedIEBitmap = {read=fIEBitmap, write=SetAttachedIEBitmap};
	void __fastcall Update(void);
	void __fastcall SyncGetHandle(void);
	__property bool ChangeBackground = {read=fChangeBackground, write=fChangeBackground, nodefault};
	__property int ThreadsCount = {read=GetThreadsCount, nodefault};
	__property Hyieutils::TIEDitherMethod DefaultDitherMethod = {read=fDefaultDitherMethod, write=SetDefaultDitherMethod, nodefault};
	virtual bool __fastcall DoPreviews(TPreviewParams pp = (TPreviewParams() << Imageenio__1::ppALL ));
	__property Vcl::Graphics::TBitmap* Bitmap = {read=GetBitmap, write=SetBitmap};
	__property Hyieutils::TIEBitmap* IEBitmap = {read=fIEBitmap, write=SetIEBitmap};
	__property TIOParamsVals* Params = {read=fParams};
	void __fastcall AssignParams(System::TObject* Source);
	void __fastcall RecreatedTImageEnViewHandle(void);
	void __fastcall LoadFromResource(const System::WideString ModulePath, const System::UnicodeString ResourceType, const System::UnicodeString ResourceName, int Format);
	void __fastcall SaveToFileJpeg(const System::WideString FileName);
	bool __fastcall LoadFromFileJpeg(const System::WideString FileName);
	void __fastcall SaveToStreamJpeg(System::Classes::TStream* Stream);
	bool __fastcall LoadFromStreamJpeg(System::Classes::TStream* Stream);
	bool __fastcall InjectJpegIPTC(const System::WideString FileName);
	bool __fastcall InjectJpegIPTCStream(System::Classes::TStream* InputStream, System::Classes::TStream* OutputStream);
	bool __fastcall InjectJpegEXIF(const System::WideString FileName);
	bool __fastcall InjectJpegEXIFStream(System::Classes::TStream* InputStream, System::Classes::TStream* OutputStream);
	bool __fastcall LoadFromFileDCX(const System::WideString FileName);
	bool __fastcall LoadFromStreamDCX(System::Classes::TStream* Stream);
	void __fastcall SaveToStreamDCX(System::Classes::TStream* Stream);
	void __fastcall SaveToFileDCX(const System::WideString FileName);
	void __fastcall InsertToFileDCX(const System::WideString FileName);
	bool __fastcall LoadFromFileJP2(const System::WideString FileName);
	bool __fastcall LoadFromFileJ2K(const System::WideString FileName);
	bool __fastcall LoadFromStreamJP2(System::Classes::TStream* Stream);
	bool __fastcall LoadFromStreamJ2K(System::Classes::TStream* Stream);
	void __fastcall SaveToStreamJP2(System::Classes::TStream* Stream);
	void __fastcall SaveToStreamJ2K(System::Classes::TStream* stream);
	void __fastcall SaveToFileJP2(const System::WideString FileName);
	void __fastcall SaveToFileJ2K(const System::WideString FileName);
	int __fastcall LoadFromFileGIF(const System::WideString FileName);
	void __fastcall SaveToFileGIF(const System::WideString FileName);
	int __fastcall InsertToFileGIF(const System::WideString FileName);
	int __fastcall LoadFromStreamGIF(System::Classes::TStream* Stream);
	void __fastcall SaveToStreamGIF(System::Classes::TStream* Stream);
	int __fastcall ReplaceFileGIF(const System::WideString FileName);
	void __fastcall SaveToStreamPCX(System::Classes::TStream* Stream);
	bool __fastcall LoadFromStreamPCX(System::Classes::TStream* Stream);
	void __fastcall SaveToFilePCX(const System::WideString FileName);
	bool __fastcall LoadFromFilePCX(const System::WideString FileName);
	int __fastcall LoadFromStreamTIFF(System::Classes::TStream* Stream);
	void __fastcall SaveToStreamTIFF(System::Classes::TStream* Stream);
	int __fastcall LoadFromFileTIFF(const System::WideString FileName);
	void __fastcall SaveToFileTIFF(const System::WideString FileName);
	int __fastcall InsertToFileTIFF(const System::WideString FileName);
	int __fastcall InsertToStreamTIFF(System::Classes::TStream* Stream);
	int __fastcall ReplaceFileTIFF(const System::WideString FileName);
	int __fastcall ReplaceStreamTIFF(System::Classes::TStream* Stream);
	bool __fastcall InjectTIFFEXIF(const System::WideString FileName, int pageIndex = 0x0)/* overload */;
	bool __fastcall InjectTIFFEXIF(const System::WideString InputFileName, const System::WideString OutputFileName, int pageIndex = 0x0)/* overload */;
	bool __fastcall InjectTIFFEXIF(System::Classes::TStream* InputStream, System::Classes::TStream* OutputStream, int pageIndex = 0x0)/* overload */;
	void __fastcall SaveToStreamBMP(System::Classes::TStream* Stream);
	bool __fastcall LoadFromStreamBMP(System::Classes::TStream* Stream);
	void __fastcall SaveToFileBMP(const System::WideString FileName);
	bool __fastcall LoadFromFileBMP(const System::WideString FileName);
	bool __fastcall LoadFromFileICO(const System::WideString FileName);
	bool __fastcall LoadFromStreamICO(System::Classes::TStream* Stream);
	void __fastcall SaveToStreamICO(System::Classes::TStream* Stream);
	void __fastcall SaveToFileICO(const System::WideString FileName);
	bool __fastcall LoadFromFileCUR(const System::WideString FileName);
	bool __fastcall LoadFromStreamCUR(System::Classes::TStream* Stream);
	bool __fastcall LoadFromFilePNG(const System::WideString FileName);
	bool __fastcall LoadFromStreamPNG(System::Classes::TStream* Stream);
	void __fastcall SaveToFilePNG(const System::WideString FileName);
	void __fastcall SaveToStreamPNG(System::Classes::TStream* Stream);
	bool __fastcall LoadFromFileDICOM(const System::WideString FileName);
	bool __fastcall LoadFromStreamDICOM(System::Classes::TStream* Stream);
	void __fastcall SaveToStreamDICOM(System::Classes::TStream* Stream);
	void __fastcall SaveToFileDICOM(const System::WideString FileName);
	bool __fastcall LoadFromFileTGA(const System::WideString FileName);
	bool __fastcall LoadFromStreamTGA(System::Classes::TStream* Stream);
	void __fastcall SaveToFileTGA(const System::WideString FileName);
	void __fastcall SaveToStreamTGA(System::Classes::TStream* Stream);
	bool __fastcall ImportMetafile(const System::WideString FileName, int Width = 0xffffffff, int Height = 0xffffffff, bool WithAlpha = true)/* overload */;
	bool __fastcall ImportMetafile(System::Classes::TStream* Stream, int Width = 0xffffffff, int Height = 0xffffffff, bool WithAlpha = true)/* overload */;
	bool __fastcall ImportMetaFile(Vcl::Graphics::TMetafile* meta, int Width = 0xffffffff, int Height = 0xffffffff, bool WithAlpha = true)/* overload */;
	void __fastcall MergeMetafile(const System::WideString FileName, int x, int y, int Width = 0xffffffff, int Height = 0xffffffff);
	bool __fastcall LoadFromFilePXM(const System::WideString FileName);
	bool __fastcall LoadFromStreamPXM(System::Classes::TStream* Stream);
	void __fastcall SaveToFilePXM(const System::WideString FileName);
	void __fastcall SaveToStreamPXM(System::Classes::TStream* Stream);
	int __fastcall OpenAVIFile(const System::WideString FileName);
	void __fastcall CloseAVIFile(void);
	bool __fastcall LoadFromAVI(int FrameIndex);
	TIECreateAVIFileResult __fastcall CreateAVIFile(const System::WideString FileName, double rate = 1.500000E+01, const System::AnsiString codec = "DIB ");
	void __fastcall SaveToAVI(void);
	bool __fastcall IsOpenAVI(void);
	int __fastcall OpenMediaFile(const System::WideString FileName);
	void __fastcall CloseMediaFile(void);
	void __fastcall LoadFromMediaFile(int FrameIndex);
	bool __fastcall IsOpenMediaFile(void);
	bool __fastcall LoadFromFileWBMP(const System::WideString FileName);
	bool __fastcall LoadFromStreamWBMP(System::Classes::TStream* Stream);
	void __fastcall SaveToFileWBMP(const System::WideString FileName);
	void __fastcall SaveToStreamWBMP(System::Classes::TStream* Stream);
	void __fastcall CreatePSFile(const System::WideString FileName);
	void __fastcall SaveToPS(void);
	void __fastcall ClosePSFile(void);
	void __fastcall SaveToStreamPS(System::Classes::TStream* Stream);
	void __fastcall SaveToFilePS(const System::WideString FileName);
	void __fastcall CreatePDFFile(const System::WideString FileName);
	void __fastcall SaveToPDF(void);
	void __fastcall ClosePDFFile(void);
	void __fastcall SaveToStreamPDF(System::Classes::TStream* Stream);
	void __fastcall SaveToFilePDF(const System::WideString FileName);
	bool __fastcall LoadFromStreamRAW(System::Classes::TStream* Stream);
	bool __fastcall LoadFromFileRAW(const System::WideString FileName);
	bool __fastcall LoadJpegFromFileCRW(const System::WideString FileName);
	bool __fastcall LoadFromStreamBMPRAW(System::Classes::TStream* Stream);
	bool __fastcall LoadFromFileBMPRAW(const System::WideString FileName);
	void __fastcall SaveToStreamBMPRAW(System::Classes::TStream* Stream);
	void __fastcall SaveToFileBMPRAW(const System::WideString FileName);
	bool __fastcall LoadFromStreamPSD(System::Classes::TStream* Stream);
	bool __fastcall LoadFromFilePSD(const System::WideString FileName);
	void __fastcall SaveToStreamPSD(System::Classes::TStream* Stream);
	void __fastcall SaveToFilePSD(const System::WideString FileName);
	bool __fastcall LoadFromStreamHDP(System::Classes::TStream* Stream);
	bool __fastcall LoadFromFileHDP(const System::WideString FileName);
	void __fastcall SaveToStreamHDP(System::Classes::TStream* Stream);
	void __fastcall SaveToFileHDP(const System::WideString FileName);
	DYNAMIC bool __fastcall LoadFromFile(const System::WideString FileName, int ImageFormat = 0xffffffff)/* overload */;
	DYNAMIC bool __fastcall LoadFromFile(const System::WideString FileName, bool bCheckUnknown)/* overload */;
	DYNAMIC bool __fastcall LoadFromFileAuto(const System::WideString FileName);
	DYNAMIC void __fastcall SaveToFile(const System::WideString FileName, int ImageFormat = 0xffffffff);
	DYNAMIC void __fastcall SaveToText(const System::WideString FileName, int ImageFormat = 0xffffffff, TIETextFormat TextFormat = (TIETextFormat)(0x3))/* overload */;
	DYNAMIC void __fastcall SaveToText(System::Classes::TStream* Stream, int ImageFormat = 0xffffffff, TIETextFormat TextFormat = (TIETextFormat)(0x3))/* overload */;
	void __fastcall LoadFromText(const System::WideString FileName, TIETextFormat TextFormat = (TIETextFormat)(0x2))/* overload */;
	void __fastcall LoadFromText(System::Classes::TStream* Stream, TIETextFormat TextFormat = (TIETextFormat)(0x2))/* overload */;
	DYNAMIC bool __fastcall LoadFromFileFormat(const System::WideString FileName, int FileFormat);
	DYNAMIC void __fastcall LoadFromBuffer(void * Buffer, int BufferSize, int Format = 0x0);
	DYNAMIC void __fastcall ParamsFromBuffer(void * Buffer, int BufferSize, int Format = 0x0);
	__property bool Aborting = {read=fAborting, write=SetAborting, nodefault};
	DYNAMIC void __fastcall ParamsFromFile(const System::WideString FileName);
	DYNAMIC void __fastcall ParamsFromFileFormat(const System::WideString FileName, int format);
	DYNAMIC void __fastcall ParamsFromStream(System::Classes::TStream* Stream);
	DYNAMIC void __fastcall ParamsFromStreamFormat(System::Classes::TStream* Stream, int format);
	DYNAMIC bool __fastcall LoadFromStream(System::Classes::TStream* Stream);
	DYNAMIC bool __fastcall LoadFromStreamFormat(System::Classes::TStream* Stream, int FileFormat);
	bool __fastcall LoadThumbnailFromExplorer(const System::WideString FileName, int iDesiredWidth = 0x78, int iDesiredHeight = 0x78);
	DYNAMIC void __fastcall SaveToStream(System::Classes::TStream* Stream, int FileType);
	int __fastcall Seek(TIEIOSeekDestination Destination, System::WideString FileName = System::WideString());
	System::WideString __fastcall ExecuteOpenDialog(const System::WideString InitialDir = System::WideString(), const System::WideString InitialFileName = System::WideString(), bool AlwaysAnimate = false, int FilterIndex = 0x0, const System::WideString ExtendedFilters = System::WideString(), const System::WideString Title = System::WideString(), const System::WideString Filter = System::WideString(), int DefaultFilter = 0xffffffff, int LimitToFileType = 0xffffffff)/* overload */;
	System::WideString __fastcall ExecuteOpenDialog(const System::WideString Title, int DefaultFilter, int LimitToFileType = 0xffffffff, bool AlwaysAnimate = false)/* overload */;
	System::WideString __fastcall ExecuteSaveDialog(const System::WideString InitialDir = System::WideString(), const System::WideString InitialFileName = System::WideString(), bool AlwaysAnimate = false, int FilterIndex = 0x0, const System::WideString ExtendedFilters = System::WideString(), const System::WideString Title = System::WideString(), const System::WideString Filter = System::WideString(), int DefaultFilter = 0xffffffff, int LimitToFileType = 0xffffffff)/* overload */;
	System::WideString __fastcall ExecuteSaveDialog(const System::WideString Title, int DefaultFilter, int LimitToFileType = 0xffffffff, bool AlwaysAnimate = false)/* overload */;
	void __fastcall CaptureFromScreen(TIECSSource Source = (TIECSSource)(0x0), System::Uitypes::TCursor MouseCursor = (System::Uitypes::TCursor)(0xffffffff));
	bool __fastcall LoadFromURL(const System::WideString URL);
	bool __fastcall Acquire(bool bResetParams = false);
	bool __fastcall SelectAcquireSource(Iexacquire::TIEAcquireApis Apis = (Iexacquire::TIEAcquireApis() << Iexacquire::TIEAcquireApi::ieaTwain << Iexacquire::TIEAcquireApi::ieaWIA ));
	bool __fastcall SetAcquireSource(Iexacquire::TIEAcquireApi Api, const System::Variant &Location);
	__property Iexacquire::TIEAcquireSource SelectedAcquireSource = {read=GetSelectedAcquireSource};
	bool __fastcall TwainAcquireOpen(void);
	void __fastcall TwainAcquireClose(void);
	bool __fastcall AcquireOpen(void);
	void __fastcall AcquireClose(void);
	void __fastcall InitializeAcquireSource(bool bIncludeWIA);
	__property int AsyncRunning = {read=GetAsyncRunning, nodefault};
	__property bool AsyncMode = {read=fAsyncMode, write=fAsyncMode, nodefault};
	void __fastcall WaitThreads(bool Aborts = false);
	void __fastcall SuspendThreads _DEPRECATED_ATTRIBUTE0 (void);
	void __fastcall ResumeThreads _DEPRECATED_ATTRIBUTE0 (void);
	__property Iexacquire::TIEAcquireParams* AcquireParams = {read=fAcquireParams};
	__property Ietwain::TIETwainParams* TwainParams = {read=fTwainParams};
	__property Iexdcim::TIEDcimAcquire* DCIMParams = {read=fDCIMParams};
	__property Iewia::TIEWia* WIAParams = {read=GetWIAParams};
	__property Ieds::TIEDirectShow* DShowParams = {read=GetDShowParams};
	__property Iemmf::TIEMediaFoundationSourceReader* MediaFoundationSourceReader = {read=GetMediaFoundationSourceReader};
	void __fastcall PrintImagePos(Vcl::Graphics::TCanvas* PrtCanvas, double x, double y, double Width, double Height, double GammaCorrection = 1.000000E+00);
	void __fastcall PrintImagePosEx(Vcl::Graphics::TCanvas* PrtCanvas, int dpix, int dpiy, double x, double y, double Width, double Height, double GammaCorrection);
	void __fastcall PrintImage(Vcl::Graphics::TCanvas* PrtCanvas = (Vcl::Graphics::TCanvas*)(0x0), double MarginLeft = 1.000000E+00, double MarginTop = 1.000000E+00, double MarginRight = 1.000000E+00, double MarginBottom = 1.000000E+00, TIEVerticalPos VerticalPos = (TIEVerticalPos)(0x1), TIEHorizontalPos HorizontalPos = (TIEHorizontalPos)(0x1), TIESize Size = (TIESize)(0x1), double SpecWidth = 0.000000E+00, double SpecHeight = 0.000000E+00, double GammaCorrection = 1.000000E+00);
	void __fastcall PreviewPrintImage(Vcl::Graphics::TBitmap* DestBitmap, int MaxBitmapWidth, int MaxBitmapHeight, Vcl::Printers::TPrinter* PrinterObj = (Vcl::Printers::TPrinter*)(0x0), double MarginLeft = 1.000000E+00, double MarginTop = 1.000000E+00, double MarginRight = 1.000000E+00, double MarginBottom = 1.000000E+00, TIEVerticalPos VerticalPos = (TIEVerticalPos)(0x1), TIEHorizontalPos HorizontalPos = (TIEHorizontalPos)(0x1), TIESize Size = (TIESize)(0x1), double SpecWidth = 0.000000E+00, double SpecHeight = 0.000000E+00, double GammaCorrection = 1.000000E+00);
	bool __fastcall DoPrintPreviewDialog(TIEDialogType DialogType = (TIEDialogType)(0x0), const System::WideString TaskName = System::WideString(), bool PrintAnnotations = false, const System::WideString Caption = System::WideString());
	__property TIOPrintPreviewParams* PrintPreviewParams = {read=fPrintPreviewParams};
	__property Hyiedefs::TResampleFilter PrintingFilterOnSubsampling = {read=fPrintingFilterOnSubsampling, write=fPrintingFilterOnSubsampling, nodefault};
	__property System::WideString ProxyAddress = {read=fProxyAddress, write=fProxyAddress};
	__property System::WideString ProxyUser = {read=fProxyUser, write=fProxyUser};
	__property System::WideString ProxyPassword = {read=fProxyPassword, write=fProxyPassword};
	__property bool ResetPrinter = {read=fResetPrinter, write=fResetPrinter, nodefault};
	__property System::UnicodeString PrintLogFile = {read=GetPrintLogFile, write=SetPrintLogFile};
	
__published:
	__property Ieview::TIEView* AttachedImageEn = {read=fImageEnView, write=SetAttachedImageEn};
	__property System::Uitypes::TColor Background = {read=GetReBackground, write=SetReBackground, default=0};
	__property Hyiedefs::TIEProgressEvent OnProgress = {read=fOnProgress, write=fOnProgress};
	__property TIOPreviewsParams PreviewsParams = {read=GetIOPreviewParams, write=SetIOPreviewParams, default=0};
	__property bool StreamHeaders = {read=fStreamHeaders, write=fStreamHeaders, default=0};
	__property Vcl::Graphics::TFont* PreviewFont = {read=fPreviewFont, write=SetPreviewFont};
	__property bool PreviewFontEnabled = {read=fPreviewFontEnabled, write=SetPreviewFontEnabled, default=0};
	__property Vcl::Extctrls::TImage* AttachedTImage = {read=fTImage, write=SetTImage};
	__property TIEIOPreviewEvent OnIOPreview = {read=fOnIOPreview, write=fOnIOPreview};
	__property TIEDialogsMeasureUnit DialogsMeasureUnit = {read=fDialogsMeasureUnit, write=fDialogsMeasureUnit, default=0};
	__property bool AutoAdjustDPI = {read=fAutoAdjustDPI, write=fAutoAdjustDPI, default=0};
	__property bool FilteredAdjustDPI = {read=fFilteredAdjustDPI, write=fFilteredAdjustDPI, default=0};
	__property System::Classes::TNotifyEvent OnFinishWork = {read=fOnFinishWork, write=fOnFinishWork};
	__property TIEAcquireBitmapEvent OnAcquireBitmap = {read=fOnAcquireBitmap, write=fOnAcquireBitmap};
	__property System::Classes::TNotifyEvent OnAcquireClose = {read=fOnAcquireClose, write=fOnAcquireClose};
	__property bool SimplifiedParamsDialogs = {read=fSimplifiedParamsDialogs, write=fSimplifiedParamsDialogs, default=1};
	__property TIEDoPreviewsEvent OnDoPreviews = {read=fOnDoPreviews, write=fOnDoPreviews};
	__property bool NativePixelFormat = {read=GetNativePixelFormat, write=SetNativePixelFormat, default=0};
	__property System::UnicodeString ImageEnVersion = {read=GetImageEnVersion, write=SetImageEnVersion, stored=false};
};


typedef void __fastcall (*TIEReadImageStream)(System::Classes::TStream* Stream, Hyieutils::TIEBitmap* Bitmap, TIOParamsVals* &IOParams, Hyiedefs::TProgressRec &Progress, bool Preview);

typedef void __fastcall (*TIEWriteImageStream)(System::Classes::TStream* Stream, Hyieutils::TIEBitmap* Bitmap, TIOParamsVals* &IOParams, Hyiedefs::TProgressRec &Progress);

typedef bool __fastcall (*TIETryImageStream)(System::Classes::TStream* Stream, int TryingFormat);

#pragma pack(push,4)
class PASCALIMPLEMENTATION TIEFileFormatInfo : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	int FileType;
	System::UnicodeString FullName;
	System::UnicodeString Extensions;
	System::UnicodeString SuitableExtension;
	bool InternalFormat;
	TPreviewParams DialogPage;
	TIEReadImageStream ReadFunction;
	TIEWriteImageStream WriteFunction;
	TIETryImageStream TryFunction;
	__fastcall TIEFileFormatInfo(void)/* overload */;
	__fastcall TIEFileFormatInfo(int FileType, System::UnicodeString FullName, System::UnicodeString Extensions, System::UnicodeString SuitableExtension, bool InternalFormat, TPreviewParams DialogPage, TIEReadImageStream ReadFunction, TIEWriteImageStream WriteFunction, TIETryImageStream TryFunction)/* overload */;
public:
	/* TObject.Destroy */ inline __fastcall virtual ~TIEFileFormatInfo(void) { }
	
};

#pragma pack(pop)

typedef void __fastcall (*TIEConvertColorFunction)(void * InputScanline, Hyiedefs::TIEColorSpace InputColorSpace, void * OutputScanline, Hyiedefs::TIEColorSpace OutputColorSpace, int ImageWidth, TIOParamsVals* IOParams);

typedef System::StaticArray<System::UnicodeString, 17> Imageenio__6;

//-- var, const, procedure ---------------------------------------------------
static const System::Int8 IEMAXICOIMAGES = System::Int8(0x10);
static const System::Byte JPEG_APP0 = System::Byte(0xe0);
static const System::Byte JPEG_APP1 = System::Byte(0xe1);
static const System::Byte JPEG_APP2 = System::Byte(0xe2);
static const System::Byte JPEG_APP3 = System::Byte(0xe3);
static const System::Byte JPEG_APP4 = System::Byte(0xe4);
static const System::Byte JPEG_APP5 = System::Byte(0xe5);
static const System::Byte JPEG_APP6 = System::Byte(0xe6);
static const System::Byte JPEG_APP7 = System::Byte(0xe7);
static const System::Byte JPEG_APP8 = System::Byte(0xe8);
static const System::Byte JPEG_APP9 = System::Byte(0xe9);
static const System::Byte JPEG_APP10 = System::Byte(0xea);
static const System::Byte JPEG_APP11 = System::Byte(0xeb);
static const System::Byte JPEG_APP12 = System::Byte(0xec);
static const System::Byte JPEG_APP13 = System::Byte(0xed);
static const System::Byte JPEG_APP14 = System::Byte(0xee);
static const System::Byte JPEG_APP15 = System::Byte(0xef);
static const System::Byte JPEG_COM = System::Byte(0xfe);
static const System::Int8 IETW_NONE = System::Int8(0x0);
static const System::Int8 IETW_A4LETTER = System::Int8(0x1);
static const System::Int8 IETW_B5LETTER = System::Int8(0x2);
static const System::Int8 IETW_USLETTER = System::Int8(0x3);
static const System::Int8 IETW_USLEGAL = System::Int8(0x4);
static const System::Int8 IETW_A5 = System::Int8(0x5);
static const System::Int8 IETW_B4 = System::Int8(0x6);
static const System::Int8 IETW_B6 = System::Int8(0x7);
static const System::Int8 IETW_USLEDGER = System::Int8(0x9);
static const System::Int8 IETW_USEXECUTIVE = System::Int8(0xa);
static const System::Int8 IETW_A3 = System::Int8(0xb);
static const System::Int8 IETW_B3 = System::Int8(0xc);
static const System::Int8 IETW_A6 = System::Int8(0xd);
static const System::Int8 IETW_C4 = System::Int8(0xe);
static const System::Int8 IETW_C5 = System::Int8(0xf);
static const System::Int8 IETW_C6 = System::Int8(0x10);
static const System::Int8 IETW_4A0 = System::Int8(0x11);
static const System::Int8 IETW_2A0 = System::Int8(0x12);
static const System::Int8 IETW_A0 = System::Int8(0x13);
static const System::Int8 IETW_A1 = System::Int8(0x14);
static const System::Int8 IETW_A2 = System::Int8(0x15);
static const System::Int8 IETW_A4 = System::Int8(0x1);
static const System::Int8 IETW_A7 = System::Int8(0x16);
static const System::Int8 IETW_A8 = System::Int8(0x17);
static const System::Int8 IETW_A9 = System::Int8(0x18);
static const System::Int8 IETW_A10 = System::Int8(0x19);
static const System::Int8 IETW_ISOB0 = System::Int8(0x1a);
static const System::Int8 IETW_ISOB1 = System::Int8(0x1b);
static const System::Int8 IETW_ISOB2 = System::Int8(0x1c);
static const System::Int8 IETW_ISOB3 = System::Int8(0xc);
static const System::Int8 IETW_ISOB4 = System::Int8(0x6);
static const System::Int8 IETW_ISOB5 = System::Int8(0x1d);
static const System::Int8 IETW_ISOB6 = System::Int8(0x7);
static const System::Int8 IETW_ISOB7 = System::Int8(0x1e);
static const System::Int8 IETW_ISOB8 = System::Int8(0x1f);
static const System::Int8 IETW_ISOB9 = System::Int8(0x20);
static const System::Int8 IETW_ISOB10 = System::Int8(0x21);
static const System::Int8 IETW_JISB0 = System::Int8(0x22);
static const System::Int8 IETW_JISB1 = System::Int8(0x23);
static const System::Int8 IETW_JISB2 = System::Int8(0x24);
static const System::Int8 IETW_JISB3 = System::Int8(0x25);
static const System::Int8 IETW_JISB4 = System::Int8(0x26);
static const System::Int8 IETW_JISB5 = System::Int8(0x2);
static const System::Int8 IETW_JISB6 = System::Int8(0x27);
static const System::Int8 IETW_JISB7 = System::Int8(0x28);
static const System::Int8 IETW_JISB8 = System::Int8(0x29);
static const System::Int8 IETW_JISB9 = System::Int8(0x2a);
static const System::Int8 IETW_JISB10 = System::Int8(0x2b);
static const System::Int8 IETW_C0 = System::Int8(0x2c);
static const System::Int8 IETW_C1 = System::Int8(0x2d);
static const System::Int8 IETW_C2 = System::Int8(0x2e);
static const System::Int8 IETW_C3 = System::Int8(0x2f);
static const System::Int8 IETW_C7 = System::Int8(0x30);
static const System::Int8 IETW_C8 = System::Int8(0x31);
static const System::Int8 IETW_C9 = System::Int8(0x32);
static const System::Int8 IETW_C10 = System::Int8(0x33);
static const System::Int8 IETW_USSTATEMENT = System::Int8(0x34);
static const System::Int8 IETW_BUSINESSCARD = System::Int8(0x35);
static const System::Int8 PhotoShop_IPTC_Records = System::Int8(0x2);
static const System::Int8 IPTC_PS_Title = System::Int8(0x5);
static const System::Int8 IPTC_PS_Caption = System::Int8(0x78);
static const System::Int8 IPTC_PS_Keywords = System::Int8(0x19);
static const System::Int8 IPTC_PS_Category = System::Int8(0xf);
static const System::Int8 IPTC_PS_Category_2 = System::Int8(0x14);
static const System::Int8 IPTC_PS_City = System::Int8(0x5a);
static const System::Int8 IPTC_PS_State_Province = System::Int8(0x5f);
static const System::Int8 IPTC_PS_Country = System::Int8(0x65);
static const System::Int8 IPTC_PS_Instructions = System::Int8(0x28);
static const System::Int8 IPTC_PS_Date_Created = System::Int8(0x37);
static const System::Int8 IPTC_PS_Time_Created = System::Int8(0x3c);
static const System::Int8 IPTC_PS_Byline_1 = System::Int8(0x50);
static const System::Int8 IPTC_PS_Byline_2 = System::Int8(0x55);
static const System::Int8 IPTC_PS_Country_Code = System::Int8(0x64);
static const System::Int8 IPTC_PS_Transmission_Reference = System::Int8(0x67);
static const System::Int8 IPTC_PS_Credit = System::Int8(0x6e);
static const System::Int8 IPTC_PS_Source = System::Int8(0x73);
static const System::Int8 IPTC_PS_Writer = System::Int8(0x7a);
static const System::Int8 IPTC_PS_Edit_Status = System::Int8(0x7);
static const System::Int8 IPTC_PS_Urgency = System::Int8(0xa);
static const System::Int8 IPTC_PS_Fixture_Identifier = System::Int8(0x16);
static const System::Int8 IPTC_PS_Release_Date = System::Int8(0x1e);
static const System::Int8 IPTC_PS_Release_Time = System::Int8(0x23);
static const System::Int8 IPTC_PS_Reference_Service = System::Int8(0x2d);
static const System::Int8 IPTC_PS_Reference_Date = System::Int8(0x2f);
static const System::Int8 IPTC_PS_Reference_Number = System::Int8(0x32);
static const System::Int8 IPTC_PS_Originating_Program = System::Int8(0x41);
static const System::Int8 IPTC_PS_Program_Version = System::Int8(0x46);
static const System::Int8 IPTC_PS_Object_Cycle = System::Int8(0x4b);
static const System::Int8 IPTC_PS_Copyright_Notice = System::Int8(0x74);
static const System::Byte IPTC_PS_Image_Type = System::Byte(0x82);
static const System::Int8 _exoCorrectOrientation = System::Int8(0x1);
static const System::Int8 _exoNeedsHorizontalFlip = System::Int8(0x2);
static const System::Int8 _exoNeeds180Rotate = System::Int8(0x3);
static const System::Int8 _exoNeedsVerticalFlip = System::Int8(0x4);
static const System::Int8 _exoNeedsHorzAndVertFlip = System::Int8(0x5);
static const System::Int8 _exoNeeds90RotateCW = System::Int8(0x6);
static const System::Int8 _exoNeedsFlipHorzAnd90Rotate = System::Int8(0x7);
static const System::Int8 _exoNeeds270RotateCW = System::Int8(0x8);
static const System::Int8 ioUnknown = System::Int8(0x0);
static const System::Int8 ioTIFF = System::Int8(0x1);
static const System::Int8 ioGIF = System::Int8(0x2);
static const System::Int8 ioJPEG = System::Int8(0x3);
static const System::Int8 ioPCX = System::Int8(0x4);
static const System::Int8 ioBMP = System::Int8(0x5);
static const System::Int8 ioICO = System::Int8(0x6);
static const System::Int8 ioCUR = System::Int8(0x7);
static const System::Int8 ioPNG = System::Int8(0x8);
static const System::Int8 ioWMF = System::Int8(0x9);
static const System::Int8 ioEMF = System::Int8(0xa);
static const System::Int8 ioTGA = System::Int8(0xb);
static const System::Int8 ioPXM = System::Int8(0xc);
static const System::Int8 ioJP2 = System::Int8(0xd);
static const System::Int8 ioJ2K = System::Int8(0xe);
static const System::Int8 ioAVI = System::Int8(0xf);
static const System::Int8 ioWBMP = System::Int8(0x10);
static const System::Int8 ioPS = System::Int8(0x11);
static const System::Int8 ioPDF = System::Int8(0x12);
static const System::Int8 ioDCX = System::Int8(0x13);
static const System::Int8 ioRAW = System::Int8(0x14);
static const System::Int8 ioBMPRAW = System::Int8(0x15);
static const System::Int8 ioWMV = System::Int8(0x16);
static const System::Int8 ioMPEG = System::Int8(0x17);
static const System::Int8 ioPSD = System::Int8(0x18);
static const System::Int8 ioIEV = System::Int8(0x19);
static const System::Int8 ioLYR = System::Int8(0x1a);
static const System::Int8 ioALL = System::Int8(0x1b);
static const System::Int8 ioDICOM = System::Int8(0x1c);
static const System::Int8 ioHDP = System::Int8(0x1d);
static const System::Int8 ioRAS = System::Int8(0x1e);
static const System::Word ioRawDLLPlugIn = System::Word(0x1000);
static const System::Word ioOtherDLLPlugIns = System::Word(0x1001);
static const System::Word ioMiscDLLPlugIns = System::Word(0x2000);
static const System::Word ioUSER = System::Word(0x2710);
extern DELPHI_PACKAGE System::AnsiString IEEXIFUSERCOMMENTCODE_UNICODE;
extern DELPHI_PACKAGE System::AnsiString IEEXIFUSERCOMMENTCODE_ASCII;
extern DELPHI_PACKAGE System::AnsiString IEEXIFUSERCOMMENTCODE_JIS;
extern DELPHI_PACKAGE System::AnsiString IEEXIFUSERCOMMENTCODE_UNDEFINED;
extern DELPHI_PACKAGE System::UnicodeString iegPrintLogFileName;
extern DELPHI_PACKAGE System::TextFile iegPrintLogFile;
#define PPP_MARGINTOP L"MARGINTOP"
#define PPP_MARGINLEFT L"MARGINLEFT"
#define PPP_MARGINRIGHT L"MARGINRIGHT"
#define PPP_MARGINBOTTOM L"MARGINBOTTOM"
#define PPP_POSITION L"POSITION"
#define PPP_SIZE L"SIZE"
#define PPP_WIDTH L"WIDTH"
#define PPP_HEIGHT L"HEIGHT"
#define PPP_GAMMA L"GAMMA"
#define PPP_PRINTTHUMBNAILS L"PRINTTHUMBNAILS"
#define PPP_THUMBNAILCOLUMNS L"THUMBNAILCOLUMNS"
#define PPP_THUMBNAILROWS L"THUMBNAILROWS"
#define PPP_THUMBNAILSPACING L"THUMBNAILSPACING"
#define PPP_THUMBNAILSTYLE L"THUMBNAILSTYLE"
#define PPP_THUMBNAILSHOWTEXT L"THUMBNAILSHOWTEXT"
#define PPP_DLGWIDTH L"DLGWIDTH"
#define PPP_DLGHEIGHT L"DLGHEIGHT"
static const System::Int8 PPP_Property_Count = System::Int8(0x11);
extern DELPHI_PACKAGE Imageenio__6 PPP_Property_List;
extern DELPHI_PACKAGE int __fastcall DeleteGIFIm(const System::WideString FileName, int idx);
extern DELPHI_PACKAGE int __fastcall DeleteTIFFIm(const System::WideString FileName, int idx);
extern DELPHI_PACKAGE void __fastcall DeleteDCXIm(const System::WideString FileName, int idx);
extern DELPHI_PACKAGE int __fastcall DeleteTIFFImGroup(const System::WideString FileName, int *Indexes, const int Indexes_High);
extern DELPHI_PACKAGE int __fastcall EnumGIFIm(const System::WideString FileName);
extern DELPHI_PACKAGE int __fastcall EnumTIFFIm(const System::WideString FileName);
extern DELPHI_PACKAGE int __fastcall EnumDCXIm(const System::WideString FileName);
extern DELPHI_PACKAGE int __fastcall EnumTIFFStream(System::Classes::TStream* Stream);
extern DELPHI_PACKAGE int __fastcall EnumICOIm(const System::WideString FileName);
extern DELPHI_PACKAGE bool __fastcall CheckAniGIF(const System::WideString FileName);
extern DELPHI_PACKAGE System::UnicodeString __fastcall TidyIPTCStr(const System::UnicodeString Value);
extern DELPHI_PACKAGE System::UnicodeString __fastcall IEPaperSizeToStr(const TIOPDFPaperSize aSize);
extern DELPHI_PACKAGE TIOPDFPaperSize __fastcall IEStrToPaperSize(const System::UnicodeString sSize, TIOPDFPaperSize aDefault = (TIOPDFPaperSize)(0xc));
extern DELPHI_PACKAGE bool __fastcall IsKnownFormat(const System::WideString FileName, bool bIncludeVideoFiles = false);
extern DELPHI_PACKAGE bool __fastcall IsKnownSaveFormat(const System::WideString FileName);
extern DELPHI_PACKAGE int __fastcall FindFileFormat(const System::WideString FileName, bool VerifyExtension = false);
extern DELPHI_PACKAGE int __fastcall FindStreamFormat(System::Classes::TStream* Stream);
extern DELPHI_PACKAGE TIEFileFormatInfo* __fastcall IEFileFormatGetInfo(int FileType);
extern DELPHI_PACKAGE int __fastcall IEFileFormatGetExtCount(int FileType);
extern DELPHI_PACKAGE System::UnicodeString __fastcall IEFileFormatGetExt(int FileType, int idx);
extern DELPHI_PACKAGE TIEFileFormatInfo* __fastcall IEFileFormatGetInfo2(System::UnicodeString Extension);
extern DELPHI_PACKAGE System::UnicodeString __fastcall GetAllSupportedFileExtensions(bool bLoadFormats, bool bSaveFormats, bool bVideoFormats = true);
extern DELPHI_PACKAGE System::UnicodeString __fastcall GetFileExtensionsOfType(int FileType);
extern DELPHI_PACKAGE void __fastcall IEFileFormatAdd(TIEFileFormatInfo* FileFormatInfo);
extern DELPHI_PACKAGE void __fastcall IEFileFormatRemove(int FileType);
extern DELPHI_PACKAGE void __fastcall IEUpdateGIFStatus(void);
extern DELPHI_PACKAGE Hyieutils::TIEBitmap* __fastcall IEAdjustDPI(Hyieutils::TIEBitmap* bmp, TIOParamsVals* Params, bool FilteredAdjustDPI);
extern DELPHI_PACKAGE bool __fastcall JpegLosslessTransformStream(System::Classes::TStream* SourceStream, System::Classes::TStream* DestStream, TIEJpegTransform Transform, bool GrayScale, TIEJpegCopyMarkers CopyMarkers, const System::Types::TRect &CutRect, bool UpdateEXIF = false);
extern DELPHI_PACKAGE bool __fastcall JpegLosslessTransform(const System::WideString SourceFile, const System::WideString DestFile, TIEJpegTransform Transform, bool GrayScale, TIEJpegCopyMarkers CopyMarkers, const System::Types::TRect &CutRect, bool UpdateEXIF = false)/* overload */;
extern DELPHI_PACKAGE bool __fastcall JpegLosslessTransform(const System::WideString SourceFile, const System::WideString DestFile, TIEJpegTransform Transform)/* overload */;
extern DELPHI_PACKAGE bool __fastcall JpegLosslessTransform2(const System::WideString FileName, TIEJpegTransform Transform, bool GrayScale, TIEJpegCopyMarkers CopyMarkers, const System::Types::TRect &CutRect, bool UpdateEXIF = false)/* overload */;
extern DELPHI_PACKAGE bool __fastcall JpegLosslessTransform2(const System::WideString FileName, TIEJpegTransform Transform)/* overload */;
extern DELPHI_PACKAGE void __fastcall ExtractTIFFImageStream(System::Classes::TStream* SourceStream, System::Classes::TStream* OutStream, int idx);
extern DELPHI_PACKAGE void __fastcall ExtractTIFFImageFile(const System::WideString SourceFileName, const System::WideString OutFileName, int idx);
extern DELPHI_PACKAGE void __fastcall InsertTIFFImageStream(System::Classes::TStream* SourceStream, System::Classes::TStream* InsertingStream, System::Classes::TStream* OutStream, int idx);
extern DELPHI_PACKAGE void __fastcall InsertTIFFImageFile(const System::WideString SourceFileName, const System::WideString InsertingFileName, const System::WideString OutFileName, int idx);
extern DELPHI_PACKAGE bool __fastcall IEGetFromURL(const System::WideString URL, System::Classes::TStream* OutStream, const System::WideString ProxyAddress, const System::WideString ProxyUser, const System::WideString ProxyPassword, Hyiedefs::TIEProgressEvent OnProgress, System::TObject* Sender, Hyiedefs::pboolean Aborting, System::UnicodeString &FileExt);
extern DELPHI_PACKAGE void __fastcall IEWriteICOImages(const System::WideString fileName, System::TObject* *images, const int images_High);
extern DELPHI_PACKAGE Hyiedefs::TRGB __fastcall IECMYK2RGB(Hyiedefs::TCMYK cmyk);
extern DELPHI_PACKAGE Hyiedefs::TRGB __fastcall IECMYK2RGBROW(Hyiedefs::PCMYK inrow, Hyiedefs::PRGB outrow, int width, System::PInteger alphaRow, Hyieutils::TIEICC* colorProfile)/* overload */;
extern DELPHI_PACKAGE Hyiedefs::TRGB __fastcall IECMYK2RGBROW(Hyiedefs::PCMYK inrow, Hyiedefs::PRGB outrow, int width, System::PInteger alphaRow = (System::PInteger)(0x0))/* overload */;
extern DELPHI_PACKAGE Hyiedefs::TCMYK __fastcall IERGB2CMYK(const Hyiedefs::TRGB rgb);
extern DELPHI_PACKAGE void __fastcall IEDefaultConvertColorFunction(void * InputScanline, Hyiedefs::TIEColorSpace InputColorSpace, void * OutputScanline, Hyiedefs::TIEColorSpace OutputColorSpace, int ImageWidth, TIOParamsVals* IOParams);
extern DELPHI_PACKAGE int __fastcall IECalcJpegFileQuality(const System::WideString FileName);
extern DELPHI_PACKAGE int __fastcall IECalcJpegStreamQuality(System::Classes::TStream* Stream);
extern DELPHI_PACKAGE int __fastcall IEGetFileFramesCount(const System::WideString FileName);
extern DELPHI_PACKAGE int __fastcall IEExtToFileFormat(System::UnicodeString ex);
extern DELPHI_PACKAGE bool __fastcall IEFileIsOfFormat(const System::UnicodeString sFilename, int aFormat);
extern DELPHI_PACKAGE bool __fastcall IEIsInternalFormat(System::UnicodeString ex);
extern DELPHI_PACKAGE System::AnsiString __fastcall IEAVISelectCodec(void);
extern DELPHI_PACKAGE System::Classes::TStringList* __fastcall IEAVIGetCodecs(void);
extern DELPHI_PACKAGE System::Classes::TStringList* __fastcall IEAVIGetCodecsDescription(void);
extern DELPHI_PACKAGE bool __fastcall IEIsExtIOPluginLoaded(const System::UnicodeString FileName);
extern DELPHI_PACKAGE int __fastcall IEAutoLoadIOPlugins(void);
extern DELPHI_PACKAGE int __fastcall IEAddExtIOPlugin(const System::UnicodeString FileName);
extern DELPHI_PACKAGE void __fastcall IEOptimizeGIF(const System::WideString InputFile, const System::WideString OutputFile);
extern DELPHI_PACKAGE int __fastcall IEFindNumberWithKnownFormat(const System::WideString Directory);
extern DELPHI_PACKAGE void __fastcall IEPrintLogWrite(const System::UnicodeString ss);
extern DELPHI_PACKAGE void __fastcall IEInitialize_imageenio(void);
extern DELPHI_PACKAGE void __fastcall IEFinalize_imageenio(void);
}	/* namespace Imageenio */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_IMAGEENIO)
using namespace Imageenio;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// ImageenioHPP
