// FAXUDL.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#if !defined(__FAXUDL_H__)
#define __FAXUDL_H__

// forward declarations
class CMtmUiRegistry;
class CBaseMtmUi;

#if !defined(__GDI_H__)
#include <gdi.h>
#endif // __GDI_H__

#if !defined (__SENDAS_H__)
#include <SENDAS.H>
#endif // __SENDAS_H__

#if !defined(__MSVAPI_H__)
#include <MSVAPI.H>
#endif // __MSVAPI_H__

const TInt KFaxPrinterUdlUidVal = 268436022;

class CFaxPrinterDriverUI : public CPrinterDriverUI, 
							public MSendAsObserver, 
							public MMsvSessionObserver
	{
public:
	IMPORT_C static CFaxPrinterDriverUI* NewL();
	~CFaxPrinterDriverUI();
	// from msendasobserver
	TInt RenderImage(TUid aPrinterUid, const TDesC& aFileName);	
private:
	CFaxPrinterDriverUI();
	virtual TBool BeforePrintL();
	virtual void AfterPrintL();
	virtual TInt SetPrinterDevice(CPrinterDevice* aPrinterDevice);
	virtual TBool CapabilityOK(TUid aCapabilty, TInt aResponse);	
	void HandleSessionEvent(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3);
	void LoadMtmDllsL();
	
	CMsvSession*		iSession;
	CClientMtmRegistry* iMtmReg;
	CMtmUiRegistry*		iMtmUiReg;
	CBaseMtmUi*	        iMtmUi;
	TMsvId	            iAttachmentId;
	CSendAs*            iSendAs;
	CPrinterDevice*		iPrinterDevice;
	TBool				iQuiet;
	};

#endif