1#ifndef APE_MACPROGRESSHELPER_H 2#define APE_MACPROGRESSHELPER_H 3 4#define KILL_FLAG_CONTINUE 0 5#define KILL_FLAG_PAUSE -1 6#define KILL_FLAG_STOP 1 7 8#include "NoWindows.h" 9#include "MACLib.h" 10 11//typedef void ( * APE_PROGRESS_CALLBACK) (int); 12 13class CMACProgressHelper 14{ 15public: 16 17 CMACProgressHelper(int nTotalSteps, int *pPercentageDone, APE_PROGRESS_CALLBACK ProgressCallback, int *pKillFlag); 18 virtual ~CMACProgressHelper(); 19 20 void UpdateProgress(int nCurrentStep = -1, BOOL bForceUpdate = FALSE); 21 void UpdateProgressComplete() { UpdateProgress(m_nTotalSteps, TRUE); } 22 23 int ProcessKillFlag(BOOL bSleep = TRUE); 24 25private: 26 27 BOOL m_bUseCallback; 28 APE_PROGRESS_CALLBACK m_CallbackFunction; 29 30 int *m_pPercentageDone; 31 32 int m_nTotalSteps; 33 int m_nCurrentStep; 34 int m_nLastCallbackFiredPercentageDone; 35 36 int *m_pKillFlag; 37}; 38 39#endif // #ifndef APE_MACPROGRESSHELPER_H 40 41