// Start =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// General information section.
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// $Author:yongkiang$ User who last changed the file
// $Date:1/2/2013 12:17:42 PM$ Date and time of last check in
// $Revision:1.0$ Visual SourceSafe version number
// $Workfile::   RUNTASK.H                                             $ Filename
// End =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#pragma once

#include "DllDefines.h"

class MCCTRDLLCLASS CRunTask
{
public:
    DWORD GetThreadPriority();
    bool SetThreadPriority(int nPriority);
    bool IsTerminate(void);
    CRunTask();
    virtual ~CRunTask();

    // Operations
    virtual bool InitInstance();
    virtual UINT RunThread() = 0;

    // Run Thread Control
    bool Begin();
    bool Resume();
    bool Suspend();
    bool DeleteThread();
    void SetThreadName(const char* threadName);
    static void SetThreadName(DWORD dwThreadID, const char* threadName);

private:
    // gary 04jun03
    CWinThread* m_pThread;
    bool m_bSuspend;
    bool m_bTerminate;
    // gary 04jun03
};
