71 lines
1.0 KiB
C++
71 lines
1.0 KiB
C++
#ifndef _WORKER_H_
|
|
#define _WORKER_H_
|
|
|
|
class CWorker
|
|
{
|
|
public:
|
|
CWorker::CWorker(CModule *pModule):
|
|
m_pNotify(pModule->m_pCimNotify),
|
|
m_pModule(pModule),
|
|
m_pbStop(&pModule->m_bShouldExit),
|
|
m_pbPause(&pModule->m_bShouldPause)
|
|
{
|
|
m_wsParams=_wcsdup(pModule->m_bstrParams);
|
|
|
|
m_pNotify->AddRef();
|
|
m_pNotify->AddRef();
|
|
m_pModule->AddRef();
|
|
}
|
|
|
|
virtual ~CWorker()
|
|
{
|
|
delete []m_wsParams;
|
|
|
|
m_pNotify->Release();
|
|
m_pModule->Release();
|
|
}
|
|
|
|
virtual bool IsStopped()
|
|
{
|
|
return *m_pbStop==true;
|
|
}
|
|
|
|
virtual void StopModule()
|
|
{
|
|
*m_pbStop=true;
|
|
}
|
|
|
|
virtual bool IsPaused()
|
|
{
|
|
return *m_pbPause==true;
|
|
}
|
|
|
|
private:
|
|
bool *m_pbStop, *m_pbPause;
|
|
WCHAR *m_wsParams;
|
|
ICimNotify *m_pNotify;
|
|
CModule *m_pModule;
|
|
|
|
|
|
};
|
|
|
|
|
|
class CMyWorker : public CWorker
|
|
{
|
|
public:
|
|
CMyWorker(CModule *pModule);
|
|
~CMyWorker();
|
|
|
|
private:
|
|
static DWORD WINAPI ModWorkThread(void *pVoid);
|
|
|
|
|
|
HANDLE m_hThread;
|
|
DWORD m_dwTID;
|
|
|
|
|
|
};
|
|
|
|
|
|
#endif /*_WORKER_H_*/
|