+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+void wxProcessTimer(
+ wxTimer& rTimer
+)
+{
+ //
+ // Avoid to process spurious timer events
+ //
+ if (rTimer.m_ulId == 0L)
+ return;
+
+ if (rTimer.IsOneShot())
+ rTimer.Stop();
+
+ rTimer.Notify();
+}
+
+ULONG wxTimerProc(
+ HWND WXUNUSED(hwnd)
+, ULONG
+, int nIdTimer
+, ULONG
+)
+{
+ wxNode* pNode = wxTimerList.Find((ULONG)nIdTimer);
+
+ wxCHECK_MSG(pNode, 0, wxT("bogus timer id in wxTimerProc") );
+
+ wxProcessTimer(*(wxTimer *)pNode->Data());
+ return 0;
+}