3 #define MAXCURICONHANDLES 4096
6 typedef struct _CURICON_OBJECT
9 struct _CURICON_OBJECT
* pcurNext
;
10 UNICODE_STRING strName
;
24 } CURICON_OBJECT
, *PCURICON_OBJECT
;
26 typedef struct tagACON
29 struct _CURICON_OBJECT
* pcurNext
;
30 UNICODE_STRING strName
;
36 PCURICON_OBJECT
* aspcur
;
42 C_ASSERT(FIELD_OFFSET(ACON
, cpcur
) == FIELD_OFFSET(CURICON_OBJECT
, xHotspot
));
46 typedef struct tagCURICON_PROCESS
50 } CURICON_PROCESS
, *PCURICON_PROCESS
;
52 typedef struct _CURICON_OBJECT
57 LIST_ENTRY ProcessList
;
64 } CURICON_OBJECT
, *PCURICON_OBJECT
;
67 typedef struct _CURSORACCELERATION_INFO
72 } CURSORACCELERATION_INFO
, *PCURSORACCELERATION_INFO
;
74 typedef struct _SYSTEM_CURSORINFO
83 PCURICON_OBJECT CurrentCursorObject
;
94 UINT MouseHoverHeight;
97 CURSORACCELERATION_INFO CursorAccelerationInfo;
103 BOOL ScreenSaverRunning
;
104 } SYSTEM_CURSORINFO
, *PSYSTEM_CURSORINFO
;
106 BOOL
InitCursorImpl(VOID
);
107 HANDLE
IntCreateCurIconHandle(BOOLEAN Anim
);
108 VOID FASTCALL
IntCleanupCurIcons(struct _EPROCESS
*Process
, PPROCESSINFO Win32Process
);
110 BOOL
UserDrawIconEx(HDC hDc
, INT xLeft
, INT yTop
, PCURICON_OBJECT pIcon
, INT cxWidth
,
111 INT cyHeight
, UINT istepIfAniCur
, HBRUSH hbrFlickerFreeDraw
, UINT diFlags
);
112 PCURICON_OBJECT FASTCALL
UserGetCurIconObject(HCURSOR hCurIcon
);
113 BOOL
UserSetCursorPos( INT x
, INT y
, DWORD flags
, ULONG_PTR dwExtraInfo
, BOOL Hook
);
114 BOOL APIENTRY
UserClipCursor(RECTL
*prcl
);
115 PSYSTEM_CURSORINFO
IntGetSysCursorInfo(VOID
);
116 HCURSOR FASTCALL
IntSetCursor(HCURSOR hCursor
);
117 BOOL FASTCALL
IntDestroyCursor(HANDLE hCurIcon
, BOOL bForce
);
119 #define IntReleaseCurIconObject(CurIconObj) \
120 UserDereferenceObject(CurIconObj)