import "oaidl.idl";
import "ocidl.idl";

midl_pragma warning(disable: 2362)
midl_pragma warning(disable: 2400)
midl_pragma warning(disable: 2401)

[
	uuid(059321F1-207A-47A7-93A1-29CDF876FDD3),
	version(1.0),
	helpstring("GflAx 2.00")
]
library GflAx
{
	importlib("stdole2.tlb");

	[
		object,
		uuid(92CE23CB-788A-4885-BBB4-2B7133B0FB04),
		dual,
		helpstring("IGflAx Interface"),
		pointer_default(unique)
	]

	interface IGflAx : IDispatch
	{
		typedef [uuid(DC752D59-C848-4CB9-AF9E-86A8ED5EE661), version(1.0)]
		enum {
			AX_English = 0,
			AX_Francais = 1
		} AX_Language;

		typedef [uuid(3BDA5B17-C417-414C-8831-0F213EB93455), version(1.0)]
		enum {
			AX_NoCompression = 0,
			AX_RLE = 1, 
			AX_LZW = 2, 
			AX_ZIP = 3, 
			AX_G3 = 4, 
			AX_G32D = 5,
			AX_G4 = 6
		} AX_SaveCompressions;

		typedef [uuid(8F7EA4D5-7F4D-4DFD-8AB8-3E62569877C3), version(1.0)]
		enum {
			AX_JPEG = 1,
			AX_GIF = 2,
			AX_PNG = 3,
			AX_BMP = 4,
			AX_TIFF = 5,
			AX_TGA = 6,
			AX_PCX = 7,
			AX_XPM = 8,
			AX_IFF = 9,
			AX_SOFT = 10,
			AX_SGI = 11,
			AX_DCX = 12,
			AX_PBM = 13,
			AX_PGM = 14,
			AX_PPM = 15,
			AX_PNM = 16,
			AX_MIFF = 17,
			AX_XBM = 18,
			AX_ICO = 19,
			AX_UYVYI = 20,
			AX_UYVY = 21,
			AX_JPEG2000 = 22,
			AX_JBIG = 23,
			AX_FPX = 24,
			AX_PS = 25
		} AX_SaveFormats;

		typedef [uuid(AB266A94-AC13-41B1-A296-A28690460854), version(1.0)]
		enum {
			AX_Binary = 1,
			AX_Grey = 2,
			AX_Colors = 3,
			AX_TrueColors = 4
		} AX_Type;

		typedef [uuid(4ECDAA4D-057E-4B7C-82C4-64C8974E5C57), version(1.0)]
		enum {
			AX_TopLeft = 0,
			AX_Top = 1,
			AX_TopRight = 2,
			AX_Left = 3,
			AX_Center = 4,
			AX_Right = 5, 
			AX_BottomLeft = 6,
			AX_Bottom = 7,
			AX_BottomRight = 8,
		} AX_CanvasMode;

		typedef [uuid(5852F753-2034-466D-AA14-4769854C4D68), version(1.0)]
		enum {
			AX_RBG = 0,
			AX_BGR = 1,
			AX_BRG = 2,
			AX_GRB = 3,
			AX_GBR = 4
		} AX_SwapModel;

		typedef [uuid(578651E4-8DD3-4396-8167-0902AEF587FC), version(1.0)]
		enum {
			AX_ToBinary = 1,
			AX_To4Colors = 4,
			AX_To8Colors = 8,
			AX_To16Colors = 16,
			AX_To32Colors = 32,
			AX_To64Colors = 64,
			AX_To128Colors = 128,
			AX_To216Colors = 216,
			AX_To256Colors = 256,
			Ax_ToTrueColors = 0
		} AX_Mode;

		typedef [uuid(3C3D0F06-29A3-4A40-9245-F430EAE51318), version(1.0)]
		enum {
			Ax_ToColors = 0,
			AX_ToGrayScale = 1
		} AX_Palette;

		typedef [uuid(21DD189F-134E-4D31-A4F9-561ABF09C4B4), version(1.0)]
		enum {
			Ax_NoDither = 0,
			AX_PatternDither = 1,
			AX_Haltone45Dither = 2,
			AX_Haltone90Dither = 3,
			AX_Adaptive = 4,
			AX_FloydSteinberg = 5
		} AX_Dither;

		[id(1), helpstring("method About")] HRESULT About([out, retval] VARIANT *);
		[propget, id(2), helpstring("property Language")] HRESULT Language([out, retval] AX_Language *pVal);
		[propput, id(2), helpstring("property Language")] HRESULT Language([in] AX_Language newVal);
		[id(3), helpstring("method LoadBitmap")] HRESULT LoadBitmap(BSTR filename);
		[id(4), helpstring("method NewBitmap")] HRESULT NewBitmap([in] long width, [in] long height, [in, optional, defaultvalue(16777215)] OLE_COLOR BackColor);
		[id(5), helpstring("method ReloadBitmap")] HRESULT ReloadBitmap();
		[id(6), helpstring("method SaveBitmap")] HRESULT SaveBitmap([in, optional] BSTR filename);
		[propget, id(7), helpstring("property SaveCompression")] HRESULT SaveCompression([out, retval] AX_SaveCompressions *pVal);
		[propput, id(7), helpstring("property SaveCompression")] HRESULT SaveCompression([in] AX_SaveCompressions newVal);
		[propget, id(8), helpstring("property SaveFormat")] HRESULT SaveFormat([out, retval] AX_SaveFormats *pVal);
		[propput, id(8), helpstring("property SaveFormat")] HRESULT SaveFormat([in] AX_SaveFormats newVal);
		[propput, id(9), helpstring("property SetPluginsPathname")] HRESULT SetPluginsPathname([in] BSTR newVal);
		[propget, id(10), helpstring("property SaveJPEGQuality")] HRESULT SaveJPEGQuality([out, retval] long *pVal);
		[propput, id(10), helpstring("property SaveJPEGQuality")] HRESULT SaveJPEGQuality([in] long newVal);
		[propget, id(11), helpstring("property SaveGIFInterlaced")] HRESULT SaveGIFInterlaced([out, retval] BOOL *pVal);
		[propput, id(11), helpstring("property SaveGIFInterlaced")] HRESULT SaveGIFInterlaced([in] BOOL newVal);
		[propget, id(12), helpstring("property SaveJPEGProgressive")] HRESULT SaveJPEGProgressive([out, retval] BOOL *pVal);
		[propput, id(12), helpstring("property SaveJPEGProgressive")] HRESULT SaveJPEGProgressive([in] BOOL newVal);
		[propget, id(13), helpstring("property SavePNGCompression")] HRESULT SavePNGCompression([out, retval] long *pVal);
		[propput, id(13), helpstring("property SavePNGCompression")] HRESULT SavePNGCompression([in] long newVal);
		[propget, id(14), helpstring("property EpsWidth")] HRESULT EpsWidth([out, retval] long *pVal);
		[propput, id(14), helpstring("property EpsWidth")] HRESULT EpsWidth([in] long newVal);
		[propget, id(15), helpstring("property EpsHeight")] HRESULT EpsHeight([out, retval] long *pVal);
		[propput, id(15), helpstring("property EpsHeight")] HRESULT EpsHeight([in] long newVal);
		[propget, id(16), helpstring("property EpsDpi")] HRESULT EpsDpi([out, retval] long *pVal);
		[propput, id(16), helpstring("property EpsDpi")] HRESULT EpsDpi([in] long newVal);
		[propget, id(17), helpstring("property Width")] HRESULT Width([out, retval] long *pVal);
		[propget, id(18), helpstring("property Height")] HRESULT Height([out, retval] long *pVal);
		[propget, id(19), helpstring("property Xdpi")] HRESULT Xdpi([out, retval] short *pVal);
		[propput, id(19), helpstring("property Xdpi")] HRESULT Xdpi([in] short newVal);
		[propget, id(20), helpstring("property Ydpi")] HRESULT Ydpi([out, retval] short *pVal);
		[propput, id(20), helpstring("property Ydpi")] HRESULT Ydpi([in] short newVal);
		[propget, id(21), helpstring("property EnableLZW")] HRESULT EnableLZW([out, retval] BOOL *pVal);
		[propput, id(21), helpstring("property EnableLZW")] HRESULT EnableLZW([in] BOOL newVal);
		[propget, id(22), helpstring("property NumberOfImages")] HRESULT NumberOfImages([out, retval] long *pVal);
		[propget, id(23), helpstring("property BitmapType")] HRESULT BitmapType([out, retval] AX_Type *pVal);
		[propget, id(24), helpstring("property ColorModel")] HRESULT ColorModel([out, retval] BSTR *pVal);
		[propget, id(25), helpstring("property OriginalSize")] HRESULT OriginalSize([out, retval] long *pVal);
		[id(26), helpstring("method FlipVertical")] HRESULT FlipVertical();
		[id(27), helpstring("method FlipHorizontal")] HRESULT FlipHorizontal();
		[id(28), helpstring("method Resize")] HRESULT Resize([in] long width, [in] long height);
		[id(29), helpstring("method Crop")] HRESULT Crop([in] long x, [in] long y, [in] long width, [in] long height);
		[id(30), helpstring("method AutoCrop")] HRESULT AutoCrop([in] OLE_COLOR color, [in, optional, defaultvalue(16)] long tolerance);
		[id(31), helpstring("method ResizeCanvas")] HRESULT ResizeCanvas([in] long width, [in] long height, [in, optional, defaultvalue(AX_Center)] AX_CanvasMode canvas_mode, [in, optional, defaultvalue(16777215)] OLE_COLOR color);
		[id(32), helpstring("method GetColorAt")] HRESULT GetColorAt([in] long x, [in] long y, [out, retval] OLE_COLOR * color);
		[id(33), helpstring("method Rotate")] HRESULT Rotate([in] double angle, [in, optional, defaultvalue(16777215)] OLE_COLOR back_color);
		[id(34), helpstring("method SwapColors")] HRESULT SwapColors([in, optional, defaultvalue(AX_RBG)] AX_SwapModel model);
		[id(35), helpstring("method ChangeColorDepth")] HRESULT ChangeColorDepth([in] AX_Mode mode, [in, optional, defaultvalue(Ax_NoDither)] AX_Dither dither, [in, optional, defaultvalue(Ax_ToColors)] AX_Palette palette);
		[id(36), helpstring("method ReplaceColor")] HRESULT ReplaceColor([in] OLE_COLOR color, [in] OLE_COLOR new_color, [in, optional, defaultvalue(10)] long tolerance);
		[id(37), helpstring("method Gamma")] HRESULT Gamma([in] double gamma);
		[id(38), helpstring("method Balance")] HRESULT Balance([in] OLE_COLOR color);
		[id(39), helpstring("method Adjust")] HRESULT Adjust([in] long brightness, [in] long contrast, [in] double gamma);
		[id(40), helpstring("method AdjustHLS")] HRESULT AdjustHLS([in] long hue, [in] long lightness, [in] long saturation);
		[id(41), helpstring("method Hue")] HRESULT Hue([in] long value);
		[id(42), helpstring("method Lightness")] HRESULT Lightness([in] long lightness);
		[id(43), helpstring("method Saturation")] HRESULT Saturation([in] long saturation);
		[id(44), helpstring("method Sepia")] HRESULT Sepia([in, optional, defaultvalue(100)] long percent, [in, optional] OLE_COLOR color);
		[propget, id(45), helpstring("property FontItalic")] HRESULT FontItalic([out, retval] BOOL *pVal);
		[propput, id(45), helpstring("property FontItalic")] HRESULT FontItalic([in] BOOL newVal);
		[propget, id(46), helpstring("property FontBold")] HRESULT FontBold([out, retval] BOOL *pVal);
		[propput, id(46), helpstring("property FontBold")] HRESULT FontBold([in] BOOL newVal);
		[propget, id(47), helpstring("property FontStrikeOut")] HRESULT FontStrikeOut([out, retval] BOOL *pVal);
		[propput, id(47), helpstring("property FontStrikeOut")] HRESULT FontStrikeOut([in] BOOL newVal);
		[propget, id(48), helpstring("property FontUnderline")] HRESULT FontUnderline([out, retval] BOOL *pVal);
		[propput, id(48), helpstring("property FontUnderline")] HRESULT FontUnderline([in] BOOL newVal);
		[propget, id(49), helpstring("property FontName")] HRESULT FontName([out, retval] BSTR *pVal);
		[propput, id(49), helpstring("property FontName")] HRESULT FontName([in] BSTR newVal);
		[propget, id(50), helpstring("property FontSize")] HRESULT FontSize([out, retval] long *pVal);
		[propput, id(50), helpstring("property FontSize")] HRESULT FontSize([in] long newVal);
		[propget, id(51), helpstring("property FontOrientation")] HRESULT FontOrientation([out, retval] long *pVal);
		[propput, id(51), helpstring("property FontOrientation")] HRESULT FontOrientation([in] long newVal);
		[id(52), helpstring("method TextOut")] HRESULT TextOut(BSTR string, long x, long y, OLE_COLOR color);
		[propget, id(53), helpstring("property Page")] HRESULT Page([out, retval] long *pVal);
		[propput, id(53), helpstring("property Page")] HRESULT Page([in] long newVal);
		[propget, id(54), helpstring("property NumberOfPages")] HRESULT NumberOfPages([out, retval] long *pVal);
		[id(55), helpstring("method SendBinary")] HRESULT SendBinary([out, retval] SAFEARRAY(unsigned char) *pVal);
		[id(56), helpstring("method SetBlob")] HRESULT SetBlob([out, retval] SAFEARRAY(unsigned char) *pVal);
		[id(57), helpstring("method ReceiveBinary")] HRESULT ReceiveBinary([in] VARIANT newVal);
		[id(58), helpstring("method GetBlob")] HRESULT GetBlob([in] VARIANT newVal);
		[id(59), helpstring("method FreeBitmap")] HRESULT FreeBitmap();
		[id(60), helpstring("method DrawPoint")] HRESULT DrawPoint(long x, long y);
		[id(61), helpstring("method DrawLine")] HRESULT DrawLine(long x0, long y0, long x1, long y1);
		[id(62), helpstring("method DrawRectangle")] HRESULT DrawRectangle(long x, long y, long width, long height);
		[id(63), helpstring("method DrawFillRectangle")] HRESULT DrawFillRectangle(long x, long y, long width, long height);
		[id(64), helpstring("method DrawCircle")] HRESULT DrawCircle(long x, long y, long radius);
		[id(65), helpstring("method DrawFillCircle")] HRESULT DrawFillCircle(long x, long y, long radius);
		[id(66), helpstring("method AddVertex")] HRESULT AddVertex(long x, long y);
		[id(67), helpstring("method DrawPolygon")] HRESULT DrawPolygon(void);
		[id(68), helpstring("method DrawPolyline")] HRESULT DrawPolyline(void);
		[propget, id(69), helpstring("property LineWidth")] HRESULT LineWidth([out, retval] long *pVal);
		[propput, id(69), helpstring("property LineWidth")] HRESULT LineWidth([in] long newVal);
		[propget, id(70), helpstring("property FillColor")] HRESULT FillColor([out, retval] OLE_COLOR *pVal);
		[propput, id(70), helpstring("property FillColor")] HRESULT FillColor([in] OLE_COLOR newVal);
		[propget, id(71), helpstring("property LineColor")] HRESULT LineColor([out, retval] OLE_COLOR *pVal);
		[propput, id(71), helpstring("property LineColor")] HRESULT LineColor([in] OLE_COLOR newVal);
		[id(72), helpstring("method FreeVertex")] HRESULT FreeVertex();
		[id(73), helpstring("method MergeAddFile")] HRESULT MergeAddFile(BSTR filename, long opacity, long x, long y);
		[id(74), helpstring("method Merge")] HRESULT Merge();
		[id(75), helpstring("method MergeClear")] HRESULT MergeClear();
		[id(76), helpstring("method Negative")] HRESULT Negative();
		[id(77), helpstring("method Brightness")] HRESULT Brightness(long value);
		[id(78), helpstring("method Contrast")] HRESULT Contrast(long value);
		[id(79), helpstring("method LogCorrection")] HRESULT LogCorrection();
		[id(80), helpstring("method Normalize")] HRESULT Normalize();
		[id(81), helpstring("method Equalize")] HRESULT Equalize();
		[id(82), helpstring("method EqualizeOnLuminance")] HRESULT EqualizeOnLuminance();
		[id(83), helpstring("method Average")] HRESULT Average(long value);
		[id(84), helpstring("method Soften")] HRESULT Soften(long value);
		[id(85), helpstring("method Blur")] HRESULT Blur(long value);
		[id(86), helpstring("method GaussianBlur")] HRESULT GaussianBlur(long value);
		[id(87), helpstring("method Maximum")] HRESULT Maximum(long value);
		[id(88), helpstring("method Minimum")] HRESULT Minimum(long value);
		[id(89), helpstring("method MedianBox")] HRESULT MedianBox(long value);
		[id(90), helpstring("method MedianCross")] HRESULT MedianCross(long value);
		[id(91), helpstring("method Sharpen")] HRESULT Sharpen(long value);
		[id(92), helpstring("method EnhanceDetail")] HRESULT EnhanceDetail();
		[id(93), helpstring("method EnhanceFocus")] HRESULT EnhanceFocus();
		[id(94), helpstring("method FocusRestoration")] HRESULT FocusRestoration();
		[id(95), helpstring("method EdgeDetectLight")] HRESULT EdgeDetectLight();
		[id(96), helpstring("method EdgeDetectMedium")] HRESULT EdgeDetectMedium();
		[id(97), helpstring("method EdgeDetectHeavy")] HRESULT EdgeDetectHeavy();
		[id(98), helpstring("method Emboss")] HRESULT Emboss();
		[id(99), helpstring("method EmbossMore")] HRESULT EmbossMore();
		[id(100), helpstring("method LoadThumbnail")] HRESULT LoadThumbnail(BSTR filename, long width, long height);
		[propput, id(101), helpstring("property SaveFormatName")] HRESULT SaveFormatName([in] BSTR newVal);
		[propget, id(102), helpstring("property SaveFormatDescription")] HRESULT SaveFormatDescription([out, retval] VARIANT *pVal);
		[propget, id(103), helpstring("property NumberOfColorUsed")] HRESULT NumberOfColorUsed([out, retval] long *pVal);
		[id(104), helpstring("method Clone")] HRESULT Clone([out, retval] IGflAx **ppImage);
		[id(105), helpstring("method NextPage")] HRESULT NextPage([out, retval] long *);
		[id(106), helpstring("method PreviousPage")] HRESULT PreviousPage([out, retval] long *);
		[id(107), helpstring("method GetPicture")] HRESULT GetPicture([out, retval] IPicture **);
		[propget, id(108), helpstring("property UseTransparency")] HRESULT UseTransparency([out, retval] BOOL *pVal);
		[propput, id(108), helpstring("property UseTransparency")] HRESULT UseTransparency([in] BOOL newVal);
		[propget, id(109), helpstring("property BackColor")] HRESULT BackColor([out, retval] OLE_COLOR *pVal);
		[propput, id(109), helpstring("property BackColor")] HRESULT BackColor([in] OLE_COLOR newVal);
		[propget, id(110), helpstring("property MaskColor")] HRESULT MaskColor([out, retval] OLE_COLOR *pVal);
		[propput, id(110), helpstring("property MaskColor")] HRESULT MaskColor([in] OLE_COLOR newVal);
		[id(111), helpstring("method ExportToClipboard")] HRESULT ExportToClipboard();
		[propget, id(112), helpstring("property EXIFDateTaken")] HRESULT EXIFDateTaken([out, retval] BSTR *pVal);
		[propput, id(113), helpstring("property SaveKeepMetadata")] HRESULT SaveKeepMetadata([in] BOOL newVal);
		[id(114), helpstring("method SetPicture")] HRESULT SetPicture([in] IPicture* pict);
		[id(115), helpstring("method DrawImage")] HRESULT DrawImage(BSTR filename, long x, long y);
		[id(116), helpstring("method BeginPaint")] HRESULT BeginPaint();
		[id(117), helpstring("method EndPaint")] HRESULT EndPaint();
		[propget, id(118), helpstring("property HasIPTC")] HRESULT HasIPTC([out, retval] BOOL *pVal);
		[propget, id(119), helpstring("property IPTCCaption")] HRESULT IPTCCaption([out, retval] BSTR *pVal);
		[propput, id(119), helpstring("property IPTCCaption")] HRESULT IPTCCaption([in] BSTR pVal);
		[propget, id(120), helpstring("property IPTCCaptionWriter")] HRESULT IPTCCaptionWriter([out, retval] BSTR *pVal);
		[propput, id(120), helpstring("property IPTCCaptionWriter")] HRESULT IPTCCaptionWriter([in] BSTR pVal);
		[propget, id(121), helpstring("property IPTCHeadline")] HRESULT IPTCHeadline([out, retval] BSTR *pVal);
		[propput, id(121), helpstring("property IPTCHeadline")] HRESULT IPTCHeadline([in] BSTR pVal);
		[propget, id(122), helpstring("property IPTCSpecialinstructions")] HRESULT IPTCSpecialinstructions([out, retval] BSTR *pVal);
		[propput, id(122), helpstring("property IPTCSpecialinstructions")] HRESULT IPTCSpecialinstructions([in] BSTR pVal);
		[propget, id(123), helpstring("property IPTCCategory")] HRESULT IPTCCategory([out, retval] BSTR *pVal);
		[propput, id(123), helpstring("property IPTCCategory")] HRESULT IPTCCategory([in] BSTR pVal);
		[propget, id(124), helpstring("property IPTCByline")] HRESULT IPTCByline([out, retval] BSTR *pVal);
		[propput, id(124), helpstring("property IPTCByline")] HRESULT IPTCByline([in] BSTR pVal);
		[propget, id(125), helpstring("property IPTCBylineTitle")] HRESULT IPTCBylineTitle([out, retval] BSTR *pVal);
		[propput, id(125), helpstring("property IPTCBylineTitle")] HRESULT IPTCBylineTitle([in] BSTR pVal);
		[propget, id(126), helpstring("property IPTCCredit")] HRESULT IPTCCredit([out, retval] BSTR *pVal);
		[propput, id(126), helpstring("property IPTCCredit")] HRESULT IPTCCredit([in] BSTR pVal);
		[propget, id(127), helpstring("property IPTCSource")] HRESULT IPTCSource([out, retval] BSTR *pVal);
		[propput, id(127), helpstring("property IPTCSource")] HRESULT IPTCSource([in] BSTR pVal);
		[propget, id(128), helpstring("property IPTCObjectName")] HRESULT IPTCObjectName([out, retval] BSTR *pVal);
		[propput, id(128), helpstring("property IPTCObjectName")] HRESULT IPTCObjectName([in] BSTR pVal);
		[propget, id(129), helpstring("property IPTCCity")] HRESULT IPTCCity([out, retval] BSTR *pVal);
		[propput, id(129), helpstring("property IPTCCity")] HRESULT IPTCCity([in] BSTR pVal);
		[propget, id(130), helpstring("property IPTCProvinceState")] HRESULT IPTCProvinceState([out, retval] BSTR *pVal);
		[propput, id(130), helpstring("property IPTCProvinceState")] HRESULT IPTCProvinceState([in] BSTR pVal);
		[propget, id(131), helpstring("property IPTCCountryName")] HRESULT IPTCCountryName([out, retval] BSTR *pVal);
		[propput, id(131), helpstring("property IPTCCountryName")] HRESULT IPTCCountryName([in] BSTR pVal);
		[propget, id(132), helpstring("property IPTCOTR")] HRESULT IPTCOTR([out, retval] BSTR *pVal);
		[propput, id(132), helpstring("property IPTCOTR")] HRESULT IPTCOTR([in] BSTR pVal);
		[propget, id(133), helpstring("property IPTCCopyrightNotice")] HRESULT IPTCCopyrightNotice([out, retval] BSTR *pVal);
		[propput, id(133), helpstring("property IPTCCopyrightNotice")] HRESULT IPTCCopyrightNotice([in] BSTR pVal);
		[propget, id(134), helpstring("property IPTCDateCreated")] HRESULT IPTCDateCreated([out, retval] DATE *pVal);
		[propput, id(134), helpstring("property IPTCDateCreated")] HRESULT IPTCDateCreated([in] DATE pVal);
		[propget, id(135), helpstring("property IPTCKeywordsCount")] HRESULT IPTCKeywordsCount([out, retval] long *pVal);
		[propget, id(136), helpstring("property IPTCKeywords")] HRESULT IPTCKeywords(long index, [out, retval] BSTR *pVal);
		[id(137), helpstring("method IPTCKeywordsClear")] HRESULT IPTCKeywordsClear();
		[id(138), helpstring("method IPTCKeywordsDelete")] HRESULT IPTCKeywordsDelete(long index);
		[propget, id(139), helpstring("property IPTCSuppCatCount")] HRESULT IPTCSuppCatCount([out, retval] long *pVal);
		[propget, id(140), helpstring("property IPTCSuppCat")] HRESULT IPTCSuppCat(long index, [out, retval] BSTR *pVal);
		[id(141), helpstring("method IPTCSuppCatClear")] HRESULT IPTCSuppCatClear();
		[id(142), helpstring("method IPTCSuppCatDelete")] HRESULT IPTCSuppCatDelete(long index);
		[id(143), helpstring("method GetTextWidth")] HRESULT GetTextWidth(BSTR str, [out, retval] long * pVal);
		[id(144), helpstring("method GetTextHeight")] HRESULT GetTextHeight(BSTR str, [out, retval] long * pVal);
		[propget, id(145), helpstring("property FontAntialias")] HRESULT FontAntialias([out, retval] BOOL *pVal);
		[propput, id(145), helpstring("property FontAntialias")] HRESULT FontAntialias([in] BOOL newVal);
		[propget, id(146), helpstring("property UseDPIFromEXIF")] HRESULT UseDPIFromEXIF([out, retval] BOOL *pVal);
		[propput, id(146), helpstring("property UseDPIFromEXIF")] HRESULT UseDPIFromEXIF([in] BOOL newVal);
		[propget, id(147), helpstring("property EXIFGetByID")] HRESULT EXIFGetByID([in] unsigned long id, [out, retval] BSTR *pVal);
		[id(148), helpstring("method IPTCKeywords")] HRESULT IPTCKeywordsAdd([in] BSTR pVal);
		[id(149), helpstring("method IPTCSuppCat")] HRESULT IPTCSuppCatAdd([in] BSTR pVal);
		[propput, id(150), helpstring("property UseEmbeddedThumbnail")] HRESULT UseEmbeddedThumbnail([in] BOOL newVal);
		[propget, id(151), helpstring("property OriginalWidth")] HRESULT OriginalWidth([out, retval] long * pVal);
		[propget, id(152), helpstring("property OriginalHeight")] HRESULT OriginalHeight([out, retval] long * pVal);
		[id(153), helpstring("method SetMetadataRefFile")] HRESULT SetMetadataRefFile(BSTR filename);
		[id(154), helpstring("method ImportFromClipboard")] HRESULT ImportFromClipboard();
		[propput, id(155), helpstring("property UpdateEmbeddedThumbnail")] HRESULT UpdateEmbeddedThumbnail([in] BOOL newVal);
		[propget, id(156), helpstring("property OriginalXdpi")] HRESULT OriginalXdpi([out, retval] long * pVal);
		[propget, id(157), helpstring("property OriginalYdpi")] HRESULT OriginalYdpi([out, retval] long * pVal);
#ifdef __TWAIN_SUPPORT__
		[id(145), helpstring("method SelectTwainDevice")] HRESULT SelectTwainDevice();
		[propget, id(146), helpstring("property CurrentTwainDevice")] HRESULT CurrentTwainDevice([out, retval] long *pVal);
		[propget, id(147), helpstring("property TwainDeviceName")] HRESULT TwainDeviceName([out, retval] BSTR *pVal);
		[propget, id(148), helpstring("property TwainConnected")] HRESULT TwainConnected([out, retval] BOOL *pVal);
		[propget, id(149), helpstring("property TwainAppName")] HRESULT TwainAppName([out, retval] BSTR *pVal);
		[propput, id(149), helpstring("property TwainAppName")] HRESULT TwainAppName([in] BSTR newVal);
		[propget, id(150), helpstring("property UseTwainInterface")] HRESULT UseTwainInterface([out, retval] BOOL *pVal);
		[propput, id(150), helpstring("property UseTwainInterface")] HRESULT UseTwainInterface([in] BOOL newVal);
		[id(151), helpstring("method Acquire")] HRESULT Acquire();
		[propget, id(152), helpstring("property Zoom")] HRESULT Zoom([out, retval] long *pVal);
		[propput, id(152), helpstring("property Zoom")] HRESULT Zoom([in] long newVal);
		[propget, id(153), helpstring("property ScaleToGrey")] HRESULT ScaleToGrey([out, retval] BOOL *pVal);
		[propput, id(153), helpstring("property ScaleToGrey")] HRESULT ScaleToGrey([in] BOOL newVal);
#endif
	};


	[
		uuid(A8F57566-79B7-48F3-B439-979373CFFF94),
		helpstring("GflAx Class")
	]
	coclass GflAx
	{
		[default] interface IGflAx;
	};
};
