1 #ifndef _WIN32K_CURSORICON_H
2 #define _WIN32K_CURSORICON_H
4 #define MAXCURICONHANDLES 4096
6 typedef struct tagCURICON_PROCESS
10 } CURICON_PROCESS
, *PCURICON_PROCESS
;
12 typedef struct _CURICON_OBJECT
16 LIST_ENTRY ProcessList
;
23 } CURICON_OBJECT
, *PCURICON_OBJECT
;
25 typedef struct _CURSORCLIP_INFO
32 } CURSORCLIP_INFO
, *PCURSORCLIP_INFO
;
34 typedef struct _CURSORACCELERATION_INFO
39 } CURSORACCELERATION_INFO
, *PCURSORACCELERATION_INFO
;
41 typedef struct _SYSTEM_CURSORINFO
46 CURSORCLIP_INFO CursorClipInfo
;
47 PCURICON_OBJECT CurrentCursorObject
;
57 UINT MouseHoverHeight
;
60 CURSORACCELERATION_INFO CursorAccelerationInfo
;
66 BOOL ScreenSaverRunning
;
67 } SYSTEM_CURSORINFO
, *PSYSTEM_CURSORINFO
;
69 HCURSOR FASTCALL
IntSetCursor(PWINSTATION_OBJECT WinStaObject
, PCURICON_OBJECT NewCursor
, BOOL ForceChange
);
70 BOOL FASTCALL
IntSetupCurIconHandles(PWINSTATION_OBJECT WinStaObject
);
71 PCURICON_OBJECT FASTCALL
IntCreateCurIconHandle(PWINSTATION_OBJECT WinStaObject
);
72 VOID FASTCALL
IntCleanupCurIcons(struct _EPROCESS
*Process
, PW32PROCESS Win32Process
);
74 BOOL FASTCALL
IntGetCursorLocation(PWINSTATION_OBJECT WinStaObject
, POINT
*loc
);
76 BOOL
UserDrawIconEx(HDC hDc
, INT xLeft
, INT yTop
, PCURICON_OBJECT pIcon
, INT cxWidth
,
77 INT cyHeight
, UINT istepIfAniCur
, HBRUSH hbrFlickerFreeDraw
, UINT diFlags
);
78 PCURICON_OBJECT FASTCALL
UserGetCurIconObject(HCURSOR hCurIcon
);
80 int NTAPI
UserShowCursor(BOOL bShow
);
82 #define IntGetSysCursorInfo(WinStaObj) \
83 (PSYSTEM_CURSORINFO)((WinStaObj)->SystemCursor)
85 #define IntReleaseCurIconObject(CurIconObj) \
86 UserDereferenceObject(CurIconObj)
88 #endif /* _WIN32K_CURSORICON_H */