worker.h
资源名称:shell.rar [点击查看]
上传用户:xhy777
上传日期:2007-02-14
资源大小:24088k
文件大小:2k
源码类别:
系统编程
开发平台:
Visual C++
- // 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_
English
