2010-02-26 11:43:19 +00:00
|
|
|
#pragma once
|
2003-11-10 17:44:50 +00:00
|
|
|
|
|
|
|
#define MAXCURICONHANDLES 4096
|
|
|
|
|
2015-03-01 22:00:24 +00:00
|
|
|
/* Flags that are allowed to be set through NtUserSetCursorIconData() */
|
|
|
|
#define CURSORF_USER_MASK \
|
|
|
|
(CURSORF_FROMRESOURCE | CURSORF_LRSHARED | CURSORF_ACON)
|
|
|
|
|
2005-01-03 00:46:42 +00:00
|
|
|
typedef struct _CURICON_OBJECT
|
|
|
|
{
|
2013-11-13 20:06:01 +00:00
|
|
|
PROCMARKHEAD head;
|
|
|
|
struct _CURICON_OBJECT* pcurNext;
|
|
|
|
UNICODE_STRING strName;
|
|
|
|
USHORT atomModName;
|
|
|
|
USHORT rt;
|
|
|
|
ULONG CURSORF_flags;
|
|
|
|
SHORT xHotspot;
|
|
|
|
SHORT yHotspot;
|
|
|
|
HBITMAP hbmMask;
|
|
|
|
HBITMAP hbmColor;
|
|
|
|
HBITMAP hbmAlpha;
|
|
|
|
RECT rcBounds;
|
|
|
|
HBITMAP hbmUserAlpha;
|
|
|
|
ULONG bpp;
|
|
|
|
ULONG cx;
|
|
|
|
ULONG cy;
|
2003-11-10 17:44:50 +00:00
|
|
|
} CURICON_OBJECT, *PCURICON_OBJECT;
|
|
|
|
|
2013-11-13 20:06:01 +00:00
|
|
|
typedef struct tagACON
|
|
|
|
{
|
|
|
|
PROCMARKHEAD head;
|
|
|
|
struct _CURICON_OBJECT* pcurNext;
|
|
|
|
UNICODE_STRING strName;
|
|
|
|
USHORT atomModName;
|
|
|
|
USHORT rt;
|
|
|
|
ULONG CURSORF_flags;
|
2014-12-18 08:11:25 +00:00
|
|
|
UINT cpcur;
|
|
|
|
UINT cicur;
|
2013-11-13 20:06:01 +00:00
|
|
|
PCURICON_OBJECT * aspcur;
|
|
|
|
DWORD * aicur;
|
|
|
|
INT * ajifRate;
|
2015-03-01 22:00:24 +00:00
|
|
|
UINT iicur;
|
2013-11-13 20:06:01 +00:00
|
|
|
} ACON, *PACON;
|
|
|
|
|
|
|
|
C_ASSERT(FIELD_OFFSET(ACON, cpcur) == FIELD_OFFSET(CURICON_OBJECT, xHotspot));
|
|
|
|
|
2014-10-21 18:59:44 +00:00
|
|
|
BOOLEAN
|
2015-03-01 22:00:24 +00:00
|
|
|
IntDestroyCurIconObject(
|
|
|
|
_In_ PVOID Object);
|
2014-10-21 18:59:44 +00:00
|
|
|
|
|
|
|
VOID FASTCALL
|
|
|
|
IntCleanupCurIconCache(PPROCESSINFO Win32Process);
|
|
|
|
|
2015-03-01 22:00:24 +00:00
|
|
|
VOID
|
|
|
|
FreeCurIconObject(
|
|
|
|
_In_ PVOID Object);
|
2014-10-21 19:57:03 +00:00
|
|
|
|
patch from Yaroslav Ponomarenko yarryp at gmail dot com
implement pointers
MouseSpeed, CursorAccelerationInfo.FirstThreshold ,
CursorAccelerationInfo.SecondThreshold, CursorAccelerationInfo.Acceleration,
MouseHoverTime, MouseHoverWidth, MouseHoverHeight
for SPI_SETMOUSEHOVERTIME, SPI_SETMOUSEHOVERWIDTH, SPI_SETMOUSEHOVERHEIGHT, SPI_SETMOUSE, SPI_SETMOUSESPEED.
WARING :
Some of them are not 100% support in win32k for they are need be fill in from the mouse drv and
send them to the mouse drv as well, this part are not done yet.
svn path=/trunk/; revision=27454
2007-07-07 18:17:03 +00:00
|
|
|
typedef struct _CURSORACCELERATION_INFO
|
|
|
|
{
|
|
|
|
UINT FirstThreshold;
|
|
|
|
UINT SecondThreshold;
|
|
|
|
UINT Acceleration;
|
|
|
|
} CURSORACCELERATION_INFO, *PCURSORACCELERATION_INFO;
|
|
|
|
|
2004-05-14 23:57:32 +00:00
|
|
|
typedef struct _SYSTEM_CURSORINFO
|
|
|
|
{
|
|
|
|
BOOL Enabled;
|
2009-10-07 14:25:52 +00:00
|
|
|
BOOL ClickLockActive;
|
|
|
|
DWORD ClickLockTime;
|
2009-10-05 19:53:15 +00:00
|
|
|
// BOOL SwapButtons;
|
2004-05-14 23:57:32 +00:00
|
|
|
UINT ButtonsDown;
|
2010-09-25 16:59:53 +00:00
|
|
|
RECTL rcClip;
|
|
|
|
BOOL bClipped;
|
2004-05-14 23:57:32 +00:00
|
|
|
PCURICON_OBJECT CurrentCursorObject;
|
2010-01-06 12:44:31 +00:00
|
|
|
INT ShowingCursor;
|
2009-10-05 19:53:15 +00:00
|
|
|
/*
|
|
|
|
UINT WheelScroLines;
|
|
|
|
UINT WheelScroChars;
|
|
|
|
UINT DblClickSpeed;
|
2004-05-14 23:57:32 +00:00
|
|
|
UINT DblClickWidth;
|
|
|
|
UINT DblClickHeight;
|
patch from Yaroslav Ponomarenko yarryp at gmail dot com
implement pointers
MouseSpeed, CursorAccelerationInfo.FirstThreshold ,
CursorAccelerationInfo.SecondThreshold, CursorAccelerationInfo.Acceleration,
MouseHoverTime, MouseHoverWidth, MouseHoverHeight
for SPI_SETMOUSEHOVERTIME, SPI_SETMOUSEHOVERWIDTH, SPI_SETMOUSEHOVERHEIGHT, SPI_SETMOUSE, SPI_SETMOUSESPEED.
WARING :
Some of them are not 100% support in win32k for they are need be fill in from the mouse drv and
send them to the mouse drv as well, this part are not done yet.
svn path=/trunk/; revision=27454
2007-07-07 18:17:03 +00:00
|
|
|
|
|
|
|
UINT MouseHoverTime;
|
|
|
|
UINT MouseHoverWidth;
|
|
|
|
UINT MouseHoverHeight;
|
|
|
|
|
2009-10-05 19:53:15 +00:00
|
|
|
UINT MouseSpeed;
|
|
|
|
CURSORACCELERATION_INFO CursorAccelerationInfo;
|
|
|
|
*/
|
2004-05-14 23:57:32 +00:00
|
|
|
DWORD LastBtnDown;
|
|
|
|
LONG LastBtnDownX;
|
|
|
|
LONG LastBtnDownY;
|
|
|
|
HANDLE LastClkWnd;
|
2006-07-10 00:26:56 +00:00
|
|
|
BOOL ScreenSaverRunning;
|
2004-05-14 23:57:32 +00:00
|
|
|
} SYSTEM_CURSORINFO, *PSYSTEM_CURSORINFO;
|
|
|
|
|
2015-02-05 00:11:35 +00:00
|
|
|
typedef struct {
|
|
|
|
DWORD type;
|
|
|
|
PCURICON_OBJECT handle;
|
|
|
|
} SYSTEMCURICO;
|
|
|
|
|
|
|
|
extern SYSTEMCURICO gasysico[];
|
|
|
|
extern SYSTEMCURICO gasyscur[];
|
|
|
|
|
|
|
|
#define ROIC_SAMPLE 0
|
|
|
|
#define ROIC_HAND 1
|
|
|
|
#define ROIC_QUES 2
|
|
|
|
#define ROIC_BANG 3
|
|
|
|
#define ROIC_NOTE 4
|
|
|
|
#define ROIC_WINLOGO 5
|
|
|
|
|
|
|
|
#define ROCR_ARROW 0
|
|
|
|
#define ROCR_IBEAM 1
|
|
|
|
#define ROCR_WAIT 2
|
|
|
|
#define ROCR_CROSS 3
|
|
|
|
#define ROCR_UP 4
|
|
|
|
#define ROCR_SIZE 5
|
|
|
|
#define ROCR_ICON 6
|
|
|
|
#define ROCR_SIZENWSE 7
|
|
|
|
#define ROCR_SIZENESW 8
|
|
|
|
#define ROCR_SIZEWE 9
|
|
|
|
#define ROCR_SIZENS 10
|
|
|
|
#define ROCR_SIZEALL 11
|
|
|
|
#define ROCR_NO 12
|
|
|
|
#define ROCR_HAND 13
|
|
|
|
#define ROCR_APPSTARTING 14
|
|
|
|
#define ROCR_HELP 15
|
|
|
|
|
|
|
|
#define SYSTEMCUR(func) (gasyscur[ROCR_ ## func].handle)
|
|
|
|
#define SYSTEMICO(func) (gasysico[ROIC_ ## func].handle)
|
|
|
|
|
|
|
|
VOID IntLoadSystenIcons(HICON,DWORD);
|
|
|
|
|
2011-03-16 21:07:25 +00:00
|
|
|
BOOL InitCursorImpl(VOID);
|
2013-11-13 20:06:01 +00:00
|
|
|
HANDLE IntCreateCurIconHandle(BOOLEAN Anim);
|
2003-11-10 17:44:50 +00:00
|
|
|
|
2007-10-19 23:21:45 +00:00
|
|
|
BOOL UserDrawIconEx(HDC hDc, INT xLeft, INT yTop, PCURICON_OBJECT pIcon, INT cxWidth,
|
2006-09-13 13:03:17 +00:00
|
|
|
INT cyHeight, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags);
|
|
|
|
PCURICON_OBJECT FASTCALL UserGetCurIconObject(HCURSOR hCurIcon);
|
2011-04-09 20:32:52 +00:00
|
|
|
BOOL UserSetCursorPos( INT x, INT y, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook);
|
2011-10-19 16:00:46 +00:00
|
|
|
BOOL APIENTRY UserClipCursor(RECTL *prcl);
|
2011-03-16 21:07:25 +00:00
|
|
|
PSYSTEM_CURSORINFO IntGetSysCursorInfo(VOID);
|
2016-08-02 04:05:16 +00:00
|
|
|
PCURICON_OBJECT IntSystemSetCursor(PCURICON_OBJECT);
|
2004-02-26 22:23:55 +00:00
|
|
|
|
2003-11-10 17:44:50 +00:00
|
|
|
/* EOF */
|