1 /* 2 * tracker/wince/WinCE_ThreadTimer.h 3 * 4 * Copyright 2009 Peter Barth 5 * 6 * This file is part of Milkytracker. 7 * 8 * Milkytracker is free software: you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation, either version 3 of the License, or 11 * (at your option) any later version. 12 * 13 * Milkytracker is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with Milkytracker. If not, see <http://www.gnu.org/licenses/>. 20 * 21 */ 22 23 #ifndef THREADTIMER__H 24 #define THREADTIMER__H 25 26 #include <windows.h> 27 28 typedef void (*ThreadTimerProc)(void* obj, UINT idEvent); 29 30 class CThreadTimer 31 { 32 void* object; // pointer to the "parent" object (like CTimersDlg) 33 UINT idEvent; // timer ID 34 UINT elapse; // "Sleep time" in milliseconds 35 ThreadTimerProc proc; // Callback function, supplied by the user 36 37 BOOL isActive; // Set to FALSE after the call to KillTimer 38 CRITICAL_SECTION lock; // thread synchronization 39 40 static DWORD WINAPI ThreadFunction (LPVOID pParam); // thread entry point 41 public: 42 CThreadTimer(); 43 virtual ~CThreadTimer(); 44 45 UINT SetTimer (void* obj, UINT nIDEvent, UINT uElapse, ThreadTimerProc lpTimerProc); 46 BOOL KillTimer(); 47 }; 48 49 #endif 50