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
));
45 IntDestroyCurIconObject(PVOID Object
);
48 IntCleanupCurIconCache(PPROCESSINFO Win32Process
);
52 typedef struct tagCURICON_PROCESS
56 } CURICON_PROCESS
, *PCURICON_PROCESS
;
58 typedef struct _CURICON_OBJECT
63 LIST_ENTRY ProcessList
;
70 } CURICON_OBJECT
, *PCURICON_OBJECT
;
71 BOOLEAN FASTCALL
IntDestroyCurIconObject(PCURICON_OBJECT CurIcon
, PPROCESSINFO ppi
);
72 BOOL FASTCALL
IntDestroyCursor(HANDLE hCurIcon
, BOOL bForce
);
73 HCURSOR FASTCALL
IntSetCursor(HCURSOR hCursor
);
76 typedef struct _CURSORACCELERATION_INFO
81 } CURSORACCELERATION_INFO
, *PCURSORACCELERATION_INFO
;
83 typedef struct _SYSTEM_CURSORINFO
92 PCURICON_OBJECT CurrentCursorObject
;
102 UINT MouseHoverWidth;
103 UINT MouseHoverHeight;
106 CURSORACCELERATION_INFO CursorAccelerationInfo;
112 BOOL ScreenSaverRunning
;
113 } SYSTEM_CURSORINFO
, *PSYSTEM_CURSORINFO
;
115 BOOL
InitCursorImpl(VOID
);
116 HANDLE
IntCreateCurIconHandle(BOOLEAN Anim
);
118 BOOL
UserDrawIconEx(HDC hDc
, INT xLeft
, INT yTop
, PCURICON_OBJECT pIcon
, INT cxWidth
,
119 INT cyHeight
, UINT istepIfAniCur
, HBRUSH hbrFlickerFreeDraw
, UINT diFlags
);
120 PCURICON_OBJECT FASTCALL
UserGetCurIconObject(HCURSOR hCurIcon
);
121 BOOL
UserSetCursorPos( INT x
, INT y
, DWORD flags
, ULONG_PTR dwExtraInfo
, BOOL Hook
);
122 BOOL APIENTRY
UserClipCursor(RECTL
*prcl
);
123 PSYSTEM_CURSORINFO
IntGetSysCursorInfo(VOID
);
125 #define IntReleaseCurIconObject(CurIconObj) \
126 UserDereferenceObject(CurIconObj)