Hopefully create a branch and not destroy the svn repository.
[reactos.git] / subsystems / win32 / win32k / include / timer.h
1 #ifndef _WIN32K_TIMER_H
2 #define _WIN32K_TIMER_H
3
4 typedef struct _TIMER
5 {
6 HEAD head;
7 LIST_ENTRY ptmrList;
8 PTHREADINFO pti;
9 PWINDOW_OBJECT pWnd; // hWnd
10 UINT_PTR nID; // Specifies a nonzero timer identifier.
11 INT cmsCountdown; // uElapse
12 INT cmsRate; // uElapse
13 FLONG flags;
14 TIMERPROC pfn; // lpTimerFunc
15 } TIMER, *PTIMER;
16
17 //
18 // Timer structure flags.
19 //
20 #define TMRF_READY 0x0001
21 #define TMRF_SYSTEM 0x0002
22 #define TMRF_RIT 0x0004
23 #define TMRF_INIT 0x0008
24 #define TMRF_ONESHOT 0x0010
25 #define TMRF_WAITING 0x0020
26 #define TMRF_TIFROMWND 0x0040
27
28 extern PKTIMER MasterTimer;
29
30 NTSTATUS FASTCALL InitTimerImpl(VOID);
31 BOOL FASTCALL IntKillTimer(HWND Wnd, UINT_PTR IDEvent, BOOL SystemTimer);
32 UINT_PTR FASTCALL IntSetTimer(HWND Wnd, UINT_PTR IDEvent, UINT Elapse, TIMERPROC TimerFunc, BOOL SystemTimer);
33 PTIMER FASTCALL FindSystemTimer(PMSG);
34 BOOL FASTCALL ValidateTimerCallback(PTHREADINFO,PWINDOW_OBJECT,WPARAM,LPARAM);
35 VOID CALLBACK SystemTimerProc(HWND,UINT,UINT_PTR,DWORD);
36 UINT_PTR FASTCALL SetSystemTimer(PWINDOW_OBJECT,UINT_PTR,UINT,TIMERPROC);
37 BOOL FASTCALL PostTimerMessages(PWINDOW_OBJECT);
38 VOID FASTCALL ProcessTimers(VOID);
39 VOID FASTCALL StartTheTimers(VOID);
40
41 #endif /* _WIN32K_TIMER_H */