update for HEAD-2003091401
[reactos.git] / ntoskrnl / include / internal / ex.h
index 75cc857..9e7b8ab 100644 (file)
@@ -5,8 +5,47 @@
 #ifndef __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H
 #define __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H
 
-#include <ddk/ntddk.h>
-#include <ntos/time.h>
+#define NTOS_MODE_KERNEL
+#include <ntos.h>
+
+/* one systemcursor for custom cursors */
+#define SYSCURSORCOUNT (14 + 1)
+
+typedef struct _CURSORCLIP_INFO
+{
+  BOOL IsClipped;
+  UINT Left;
+  UINT Top;
+  UINT Right;
+  UINT Bottom;
+} CURSORCLIP_INFO, *PCURSORCLIP_INFO;
+
+typedef struct _SYSCURSOR
+{
+  HANDLE hCursor;
+  LONG cx, cy;
+  LONG hx, hy;
+  PVOID AndImage;
+  PVOID XorImage;
+} SYSCURSOR, *PSYSCURSOR;
+
+typedef struct _SYSTEM_CURSORINFO
+{
+  BOOL Enabled;
+  BOOL SwapButtons;
+  UINT CurrentCursor;
+  LONG x, y;
+  BOOL SafetySwitch, SafetySwitch2;
+  FAST_MUTEX CursorMutex;
+  CURSORCLIP_INFO CursorClipInfo;
+  SYSCURSOR SystemCursors[SYSCURSORCOUNT];
+  UINT DblClickSpeed;
+  UINT DblClickWidth;
+  UINT DblClickHeight;
+  DWORD LastBtnDown;
+  LONG LastBtnDownX;
+  LONG LastBtnDownY;
+} SYSTEM_CURSORINFO, *PSYSTEM_CURSORINFO;
 
 typedef struct _WINSTATION_OBJECT
 {   
@@ -18,6 +57,8 @@ typedef struct _WINSTATION_OBJECT
   LIST_ENTRY DesktopListHead;
   PRTL_ATOM_TABLE AtomTable;
   PVOID HandleTable;
+  HANDLE SystemMenuTemplate;
+  SYSTEM_CURSORINFO SystemCursor;
   struct _DESKTOP_OBJECT* ActiveDesktop;
   /* FIXME: Clipboard */
 } WINSTATION_OBJECT, *PWINSTATION_OBJECT;
@@ -31,13 +72,12 @@ typedef struct _DESKTOP_OBJECT
   UNICODE_STRING Name;
   /* Pointer to the associated window station. */
   struct _WINSTATION_OBJECT *WindowStation;
-  /* Head of the list of windows in this desktop. */
-  LIST_ENTRY WindowListHead;
   /* Pointer to the active queue. */
   PVOID ActiveMessageQueue;
   /* Handle of the desktop window. */
   HANDLE DesktopWindow;
   HANDLE PrevActiveWindow;
+  struct _WINDOW_OBJECT* CaptureWindow;
 } DESKTOP_OBJECT, *PDESKTOP_OBJECT;
 
 
@@ -50,6 +90,8 @@ typedef VOID (*PLOOKASIDE_MINMAX_ROUTINE)(
 /* GLOBAL VARIABLES *********************************************************/
 
 TIME_ZONE_INFORMATION SystemTimeZoneInfo;
+extern POBJECT_TYPE ExEventPairObjectType;
+
 
 /* INITIALIZATION FUNCTIONS *************************************************/
 
@@ -65,4 +107,13 @@ ExInitializeWorkerThreads(VOID);
 VOID
 ExpInitLookasideLists(VOID);
 
+/* OTHER FUNCTIONS **********************************************************/
+
+VOID
+ExpSwapThreadEventPair(
+       IN struct _ETHREAD* Thread,
+       IN struct _KEVENT_PAIR* EventPair
+       );
+
+
 #endif /* __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H */