Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// worker.h : Declaration of the CWorkerThread
#ifndef __WORKER_H_
#define __WORKER_H_
#include "iface.h" // for IWorkerEvent
// CWorkerThread
class CWorkerThread : public IARPWorker { public: CWorkerThread(); virtual ~CWorkerThread(); // *** IUnknown ***
virtual STDMETHODIMP_(ULONG) AddRef (void); virtual STDMETHODIMP_(ULONG) Release (void); virtual STDMETHODIMP QueryInterface (REFIID riid, LPVOID * ppvObj);
// *** IARPWorker ***
virtual STDMETHODIMP KillWT (void); STDMETHOD(StartWT) (int iPriority); STDMETHOD(SetListenerWT) (IWorkerEvent * pwe);
BOOL IsKilled() { return _fKillWorker; }; BOOL PostWorkerMessage(UINT uMsg, WPARAM wParam, LPARAM lParam); virtual DWORD _ThreadStartProc();
protected: DWORD _dwThreadId;
private: void _LockWorker(void); void _UnlockWorker(void);
LONG _cRef; CRITICAL_SECTION _csWorker; DEBUG_CODE( LONG _cRefLockWorker; ) LONG _cItems; IWorkerEvent * _pwe; BITBOOL _fKillWorker: 1; HANDLE _hthreadWorker; HWND _hwndWorker;
LRESULT _WorkerWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); static DWORD CALLBACK _ThreadStartProcWrapper(LPVOID lpParam); static LRESULT CALLBACK _WorkerWndProcWrapper(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
};
// Window messages from worker thread that cause actions on the main thread
#define WORKERWIN_FIRE_ROW_READY (WM_USER + 0x0101) // wParam is row #
#define WORKERWIN_FIRE_FINISHED (WM_USER + 0X0102)
#define WORKERWIN_FIRE_DATASETCHANGED (WM_USER + 0X0103)
#endif //__WORKER_H_
|