X-Git-Url: http://git.jankratochvil.net/?p=reactos.git;a=blobdiff_plain;f=ntoskrnl%2Finclude%2Finternal%2Fex.h;h=9e7b8ab5d742acba86d71b442236bf5784fc2c3d;hp=75cc857abf1515c29d95094d06d20aac43d91d5e;hb=HEAD;hpb=7c0db166f81fbe8c8b913d7f26048e337d383605 diff --git a/ntoskrnl/include/internal/ex.h b/ntoskrnl/include/internal/ex.h index 75cc857..9e7b8ab 100644 --- a/ntoskrnl/include/internal/ex.h +++ b/ntoskrnl/include/internal/ex.h @@ -5,8 +5,47 @@ #ifndef __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H #define __NTOSKRNL_INCLUDE_INTERNAL_EXECUTIVE_H -#include -#include +#define NTOS_MODE_KERNEL +#include + +/* 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 */