3 #define MAXCURICONHANDLES 4096
5 /* Flags that are allowed to be set through NtUserSetCursorIconData() */
6 #define CURSORF_USER_MASK \
7 (CURSORF_FROMRESOURCE | CURSORF_LRSHARED | CURSORF_ACON)
9 typedef struct _CURICON_OBJECT
12 struct _CURICON_OBJECT
* pcurNext
;
13 UNICODE_STRING strName
;
27 } CURICON_OBJECT
, *PCURICON_OBJECT
;
29 typedef struct tagACON
32 struct _CURICON_OBJECT
* pcurNext
;
33 UNICODE_STRING strName
;
39 PCURICON_OBJECT
* aspcur
;
45 C_ASSERT(FIELD_OFFSET(ACON
, cpcur
) == FIELD_OFFSET(CURICON_OBJECT
, xHotspot
));
48 IntDestroyCurIconObject(
52 IntCleanupCurIconCache(PPROCESSINFO Win32Process
);
58 typedef struct _CURSORACCELERATION_INFO
63 } CURSORACCELERATION_INFO
, *PCURSORACCELERATION_INFO
;
65 typedef struct _SYSTEM_CURSORINFO
74 PCURICON_OBJECT CurrentCursorObject
;
85 UINT MouseHoverHeight;
88 CURSORACCELERATION_INFO CursorAccelerationInfo;
94 BOOL ScreenSaverRunning
;
95 } SYSTEM_CURSORINFO
, *PSYSTEM_CURSORINFO
;
99 PCURICON_OBJECT handle
;
102 extern SYSTEMCURICO gasysico
[];
103 extern SYSTEMCURICO gasyscur
[];
105 #define ROIC_SAMPLE 0
110 #define ROIC_WINLOGO 5
119 #define ROCR_SIZENWSE 7
120 #define ROCR_SIZENESW 8
121 #define ROCR_SIZEWE 9
122 #define ROCR_SIZENS 10
123 #define ROCR_SIZEALL 11
126 #define ROCR_APPSTARTING 14
129 #define SYSTEMCUR(func) (gasyscur[ROCR_ ## func].handle)
130 #define SYSTEMICO(func) (gasysico[ROIC_ ## func].handle)
132 VOID
IntLoadSystenIcons(HICON
,DWORD
);
134 BOOL
InitCursorImpl(VOID
);
135 HANDLE
IntCreateCurIconHandle(BOOLEAN Anim
);
137 BOOL
UserDrawIconEx(HDC hDc
, INT xLeft
, INT yTop
, PCURICON_OBJECT pIcon
, INT cxWidth
,
138 INT cyHeight
, UINT istepIfAniCur
, HBRUSH hbrFlickerFreeDraw
, UINT diFlags
);
139 PCURICON_OBJECT FASTCALL
UserGetCurIconObject(HCURSOR hCurIcon
);
140 BOOL
UserSetCursorPos( INT x
, INT y
, DWORD flags
, ULONG_PTR dwExtraInfo
, BOOL Hook
);
141 BOOL APIENTRY
UserClipCursor(RECTL
*prcl
);
142 PSYSTEM_CURSORINFO
IntGetSysCursorInfo(VOID
);
143 PCURICON_OBJECT
IntSystemSetCursor(PCURICON_OBJECT
);