home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 27 / IOPROG_27.ISO / SOFT / CDX.ZIP / Src / Cds / Timer.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1998-09-14  |  1.7 KB  |  54 lines

  1. //////////////////////////////////////////////////////////////////////////////////
  2. // CDS_Timer Implementation
  3. //////////////////////////////////////////////////////////////////////////////////
  4. #include "CDS.h"
  5.  
  6. //////////////////////////////////////////////////////////////////////////////////
  7. // Constructor
  8. //////////////////////////////////////////////////////////////////////////////////
  9. CDS_Timer::CDS_Timer(void)
  10. {
  11.     m_nIDTimer = NULL;
  12. }
  13.  
  14. //////////////////////////////////////////////////////////////////////////////////
  15. // Destructor
  16. //////////////////////////////////////////////////////////////////////////////////
  17. CDS_Timer::~CDS_Timer(void)
  18. {
  19.     if(m_nIDTimer) timeKillEvent(m_nIDTimer);
  20. }
  21.  
  22. //////////////////////////////////////////////////////////////////////////////////
  23. // Create
  24. //////////////////////////////////////////////////////////////////////////////////
  25. BOOL CDS_Timer::Create(UINT nPeriod, UINT nRes, DWORD dwUser, TIMERCALLBACK pfnCallback)
  26. {
  27.     BOOL bRtn = TRUE;
  28.  
  29.     m_nPeriod = nPeriod;
  30.     m_nRes = nRes;
  31.     m_dwUser = dwUser;
  32.     m_pfnCallback = pfnCallback;
  33.  
  34.     m_nIDTimer = timeSetEvent(m_nPeriod, m_nRes, TimeProc, (DWORD)this, TIME_PERIODIC);
  35.     if(m_nIDTimer == NULL)
  36.     {
  37.         bRtn = FALSE;
  38.     }
  39.  
  40.     return bRtn;
  41. }
  42.  
  43. //////////////////////////////////////////////////////////////////////////////////
  44. // TimeProc
  45. //////////////////////////////////////////////////////////////////////////////////
  46. void CALLBACK CDS_Timer::TimeProc(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2)
  47. {
  48.     // dwUser contains ptr to CDS_Timer object
  49.     CDS_Timer* ptimer = (CDS_Timer*) dwUser;
  50.  
  51.     // Call user-specified callback and pass back user specified data
  52.     (ptimer->m_pfnCallback) (ptimer->m_dwUser);
  53. }
  54.