- oneShot = mode ;
- if (milliseconds < 0)
- milliseconds = lastMilli;
-
- if (milliseconds <= 0)
- return FALSE;
-
- lastMilli = milli = milliseconds;
-
- wxTimerList.DeleteObject(this);
- TIMERPROC wxTimerProcInst = (TIMERPROC) MakeProcInstance((FARPROC)wxTimerProc,
- wxGetInstance());
-
- id = SetTimer(NULL, (UINT)(id ? id : 1), (UINT)milliseconds, wxTimerProcInst);
- if (id > 0)
- {
- wxTimerList.Append(id, this);
- return TRUE;
- }
- else return FALSE;
+ (void)wxTimerBase::Start(milliseconds, oneShot);
+
+ wxCHECK_MSG( m_milli > 0, FALSE, wxT("invalid value for timer timeour") );
+
+ wxTimerList.DeleteObject(this);
+
+#ifdef __WXMICROWIN__
+ m_id = SetTimer(NULL, (UINT)(m_id ? m_id : 1),
+ (UINT)milliseconds, (TIMERPROC) wxTimerProc);
+#else
+ TIMERPROC wxTimerProcInst = (TIMERPROC)
+ MakeProcInstance((FARPROC)wxTimerProc, wxGetInstance());
+
+ m_id = SetTimer(NULL, (UINT)(m_id ? m_id : 1),
+ (UINT)milliseconds, wxTimerProcInst);
+#endif
+
+ if ( m_id > 0 )
+ {
+ wxTimerList.Append(m_id, this);
+
+ return TRUE;
+ }
+ else
+ {
+ wxLogSysError(_("Couldn't create a timer"));
+
+ return FALSE;
+ }