#ifndef __FTP_PLUGIN_PROGRESS
#define __FTP_PLUGIN_PROGRESS

/*
 * TrafficInformation
 */
#define FTP_PROGRESS_MAGIC  MK_ID( 'F','P','g',1 )

typedef void (WINAPI *Pg_ResumeFile_t)(HANDLE Object, LPCSTR LocalFileName);
typedef void (WINAPI *Pg_Resume_t)(HANDLE Object, int64_t size);
typedef BOOL (WINAPI *Pg_Callback_t)(HANDLE Object, int Size);
typedef void (WINAPI *Pg_Init_t)(HANDLE Object, HANDLE Connection,int tMsg,int OpMode,FP_SizeItemList* il);
typedef void (WINAPI *Pg_InitFile_t)(HANDLE Object, int64_t sz, LPCSTR SrcName, LPCSTR DestName);
typedef void (WINAPI *Pg_Skip_t)(HANDLE Object);
typedef void (WINAPI *Pg_Waiting_t)(HANDLE Object, time_t paused);
typedef void (WINAPI *Pg_SetConn_t)(HANDLE Object,HANDLE Connection);

struct ProgressInterface: public FTPPluginInterface
{
	FTP_CreateObject_t    CreateObject;
	FTP_DestroyObject_t   DestroyObject;

	Pg_ResumeFile_t       ResumeFile;
	Pg_Resume_t           Resume;
	Pg_Callback_t         Callback;
	Pg_Init_t             Init;
	Pg_InitFile_t         InitFile;
	Pg_Skip_t             Skip;
	Pg_Waiting_t          Waiting;
	Pg_SetConn_t          SetConnection;
};

#endif
