// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'IEMIO.pas' rev: 5.00

#ifndef IEMIOHPP
#define IEMIOHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <IEMView.hpp>	// Pascal unit
#include <ImageEnIO.hpp>	// Pascal unit
#include <hyiedefs.hpp>	// Pascal unit
#include <ExtCtrls.hpp>	// Pascal unit
#include <ImageEnProc.hpp>	// Pascal unit
#include <ImageEnView.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Iemio
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TImageEnMIO;
class PASCALIMPLEMENTATION TImageEnMIO : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	Iemview::TImageEnMView* fImageEnMView;
	Classes::TList* fParams;
	Imageenio::TIETWainParams* fTwainParams;
	Hyiedefs::TMsgLanguage fMsgLanguage;
	Imageenio::TIOPreviewsParams fPreviewsParams;
	Graphics::TFont* fPreviewFont;
	int fTWainNextToInsert;
	void __fastcall SetAttachedMView(Iemview::TImageEnMView* v);
	void __fastcall RemoveIOParam(int idx);
	void __fastcall InsertIOParam(int idx);
	Imageenio::TIOParamsVals* __fastcall GetParams(int idx);
	void __fastcall SetPreviewFont(Graphics::TFont* f);
	int __fastcall GetParamsCount(void);
	void __fastcall SetIOPreviewParams(Imageenio::TIOPreviewsParams v);
	Imageenio::TIOPreviewsParams __fastcall GetIOPreviewParams(void);
	void __fastcall TWMultiCallBack(Graphics::TBitmap* Bitmap, Imageenio::TIOParamsVals* &IOParams);
	
protected:
	bool fAborting;
	Hyiedefs::TIEProgressEvent fOnProgress;
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
		);
	void __fastcall OnBitmapChange(System::TObject* Sender, bool destroying);
	
public:
	__fastcall virtual TImageEnMIO(Classes::TComponent* Owner);
	__fastcall virtual ~TImageEnMIO(void);
	void __fastcall Update(void);
	__property Imageenio::TIOParamsVals* Params[int idx] = {read=GetParams};
	__property int ParamsCount = {read=GetParamsCount, nodefault};
	bool __fastcall DoPreviews(int idx, Imageenio::TPreviewParams pp);
	__property Imageenio::TIETWainParams* TWainParams = {read=fTwainParams};
	__property bool Aborting = {read=fAborting, write=fAborting, nodefault};
	void __fastcall LoadFromFileGif(const AnsiString nf);
	void __fastcall LoadFromStreamGif(Classes::TStream* Stream);
	void __fastcall SaveToFileGif(const AnsiString nf);
	void __fastcall SaveToStreamGif(Classes::TStream* Stream);
	void __fastcall LoadFromFileTIFF(const AnsiString nf);
	void __fastcall LoadFromStreamTIFF(Classes::TStream* Stream);
	void __fastcall SaveToFileTIFF(const AnsiString nf);
	void __fastcall SaveToStreamTIFF(Classes::TStream* Stream);
	void __fastcall LoadFromFileAVI(const AnsiString nf);
	void __fastcall SaveToFileAVI(const AnsiString nf);
	bool __fastcall SelectAcquireSource(void);
	bool __fastcall Acquire(void);
	void __fastcall LoadFromFile(const AnsiString nf);
	void __fastcall SaveToFile(const AnsiString nf);
	
__published:
	__property Iemview::TImageEnMView* AttachedMView = {read=fImageEnMView, write=SetAttachedMView};
	__property Hyiedefs::TIEProgressEvent OnProgress = {read=fOnProgress, write=fOnProgress};
	__property Hyiedefs::TMsgLanguage MsgLanguage = {read=fMsgLanguage, write=fMsgLanguage, default=0};
		
	__property Imageenio::TIOPreviewsParams PreviewsParams = {read=GetIOPreviewParams, write=SetIOPreviewParams
		, default=0};
	__property Graphics::TFont* PreviewFont = {read=fPreviewFont, write=SetPreviewFont};
};


//-- var, const, procedure ---------------------------------------------------

}	/* namespace Iemio */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Iemio;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

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