Thread.h
上传用户:glass0516
上传日期:2010-01-11
资源大小:104k
文件大小:2k
源码类别:

传真(Fax)编程

开发平台:

Visual C++

  1. /*****************************************************************************
  2. * RelayFax Open Source Project
  3. * Copyright 1996-2004 Alt-N Technologies, Ltd.
  4. * All rights reserved.
  5. *
  6. * Redistribution and use in source and binary forms, with or without
  7. * modification, are permitted only as authorized by the RelayFax Open 
  8. * Source License.  A copy of this license is available in file LICENSE 
  9. * in the top-level directory of the distribution.
  10. *
  11. * RelayFax is a registered trademark of Alt-N Technologies, Ltd.
  12. *
  13. * Individual files and/or contributed packages may be copyright by
  14. * other parties and subject to additional restrictions.
  15. *****************************************************************************/
  16. #ifndef THREAD_H
  17. #define THREAD_H
  18. class CThread  
  19. {
  20. public:
  21. // Constructor
  22. CThread();
  23. virtual ~CThread();
  24. // The static thread starter function
  25. static unsigned int _stdcall ThreadFunc( void* pArg );
  26. // Do not override these
  27. void AddEvent( HANDLE hEvent ) { m_handles.push_back( hEvent ); }
  28. DWORD StartThread( void );
  29. HANDLE GetHandle( void ) { return m_hThread; }
  30. unsigned int GetID( void ) { return m_nThreadID; }
  31. unsigned int Run( void );
  32. void PostMsg( UINT nMsg, WPARAM wParam=0, LPARAM lParam=0 )
  33. { PostThreadMessage( m_nThreadID, nMsg, wParam, lParam ); }
  34. // overrideables
  35. virtual bool OnStartup( void );
  36. virtual bool OnMsg( MSG* pMsg );
  37. virtual bool OnEvent( int nIndex );
  38. virtual bool OnWaitTimeout( void );
  39. virtual void OnShutdown( void );
  40. protected:
  41. vector<HANDLE> m_handles;
  42. HANDLE m_hThread;
  43. unsigned int m_nThreadID;
  44. int m_nWaitTimeout;
  45. string m_sThreadName;
  46. DWORD m_dwLastTimeout;
  47. };
  48. #endif // THREAD_H