[CMAKE]
[reactos.git] / subsystems / win32 / win32k / include / timer.h
index d44e38e..c88da4a 100644 (file)
@@ -1,11 +1,11 @@
-#ifndef _WIN32K_TIMER_H
-#define _WIN32K_TIMER_H
+#pragma once
 
 typedef struct _TIMER
 {
+  HEAD           head;
   LIST_ENTRY     ptmrList;
-  PW32THREADINFO pti;
-  PWINDOW_OBJECT pWnd;         // hWnd
+  PTHREADINFO    pti;
+  PWND           pWnd;         // hWnd
   UINT_PTR       nID;          // Specifies a nonzero timer identifier.
   INT            cmsCountdown; // uElapse
   INT            cmsRate;      // uElapse
@@ -13,8 +13,31 @@ typedef struct _TIMER
   TIMERPROC      pfn;          // lpTimerFunc
 } TIMER, *PTIMER;
 
-NTSTATUS FASTCALL InitTimerImpl(VOID);
-BOOL FASTCALL IntKillTimer(HWND Wnd, UINT_PTR IDEvent, BOOL SystemTimer);
-UINT_PTR FASTCALL IntSetTimer(HWND Wnd, UINT_PTR IDEvent, UINT Elapse, TIMERPROC TimerFunc, BOOL SystemTimer);
+//
+// Timer structure flags.
+//
+#define TMRF_READY   0x0001
+#define TMRF_SYSTEM  0x0002
+#define TMRF_RIT     0x0004
+#define TMRF_INIT    0x0008
+#define TMRF_ONESHOT 0x0010
+#define TMRF_WAITING 0x0020
+#define TMRF_TIFROMWND 0x0040
 
-#endif /* _WIN32K_TIMER_H */
+extern PKTIMER MasterTimer;
+
+INIT_FUNCTION
+NTSTATUS
+NTAPI
+InitTimerImpl(VOID);
+BOOL FASTCALL DestroyTimersForThread(PTHREADINFO pti);
+BOOL FASTCALL DestroyTimersForWindow(PTHREADINFO pti, PWND Window);
+BOOL FASTCALL IntKillTimer(PWND Window, UINT_PTR IDEvent, BOOL SystemTimer);
+UINT_PTR FASTCALL IntSetTimer(PWND Window, UINT_PTR IDEvent, UINT Elapse, TIMERPROC TimerFunc, INT Type);
+PTIMER FASTCALL FindSystemTimer(PMSG);
+BOOL FASTCALL ValidateTimerCallback(PTHREADINFO,LPARAM);
+VOID CALLBACK SystemTimerProc(HWND,UINT,UINT_PTR,DWORD);
+UINT_PTR FASTCALL SystemTimerSet(PWND,UINT_PTR,UINT,TIMERPROC);
+BOOL FASTCALL PostTimerMessages(PWND);
+VOID FASTCALL ProcessTimers(VOID);
+VOID FASTCALL StartTheTimers(VOID);