2010-02-26 11:43:19 +00:00
|
|
|
#pragma once
|
2003-11-10 17:44:50 +00:00
|
|
|
|
|
|
|
#define MAXCURICONHANDLES 4096
|
|
|
|
|
2005-01-03 00:46:42 +00:00
|
|
|
typedef struct tagCURICON_PROCESS
|
2003-11-10 17:44:50 +00:00
|
|
|
{
|
2003-12-13 22:38:29 +00:00
|
|
|
LIST_ENTRY ListEntry;
|
2009-07-26 16:17:50 +00:00
|
|
|
PPROCESSINFO Process;
|
2005-01-03 00:46:42 +00:00
|
|
|
} CURICON_PROCESS, *PCURICON_PROCESS;
|
|
|
|
|
2012-10-29 15:50:20 +00:00
|
|
|
#ifdef NEW_CURSORICON
|
2005-01-03 00:46:42 +00:00
|
|
|
typedef struct _CURICON_OBJECT
|
|
|
|
{
|
2012-11-08 12:51:24 +00:00
|
|
|
PROCMARKHEAD head;
|
|
|
|
struct _tagCURSOR* 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;
|
|
|
|
/* ReactOS specific, to be deleted */
|
2005-01-03 00:46:42 +00:00
|
|
|
LIST_ENTRY ListEntry;
|
|
|
|
HANDLE Self;
|
|
|
|
LIST_ENTRY ProcessList;
|
2012-11-04 12:56:44 +00:00
|
|
|
UNICODE_STRING ustrModule;
|
2003-11-10 17:44:50 +00:00
|
|
|
} CURICON_OBJECT, *PCURICON_OBJECT;
|
|
|
|
|
2012-10-29 15:50:20 +00:00
|
|
|
#else
|
|
|
|
|
|
|
|
typedef struct _CURICON_OBJECT
|
|
|
|
{
|
|
|
|
PROCMARKHEAD head;
|
|
|
|
LIST_ENTRY ListEntry;
|
|
|
|
HANDLE Self;
|
|
|
|
LIST_ENTRY ProcessList;
|
|
|
|
HMODULE hModule;
|
|
|
|
HRSRC hRsrc;
|
|
|
|
HRSRC hGroupRsrc;
|
|
|
|
SIZE Size;
|
|
|
|
BYTE Shadow;
|
|
|
|
ICONINFO IconInfo;
|
|
|
|
} CURICON_OBJECT, *PCURICON_OBJECT;
|
|
|
|
#endif
|
|
|
|
|
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;
|
|
|
|
|
2011-03-16 21:07:25 +00:00
|
|
|
BOOL InitCursorImpl(VOID);
|
2012-11-04 12:56:44 +00:00
|
|
|
PCURICON_OBJECT IntCreateCurIconHandle(DWORD dwNumber);
|
2009-07-26 16:17:50 +00:00
|
|
|
VOID FASTCALL IntCleanupCurIcons(struct _EPROCESS *Process, PPROCESSINFO Win32Process);
|
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);
|
2004-05-14 23:57:32 +00:00
|
|
|
|
2004-02-26 22:23:55 +00:00
|
|
|
#define IntReleaseCurIconObject(CurIconObj) \
|
2008-02-13 00:46:23 +00:00
|
|
|
UserDereferenceObject(CurIconObj)
|
2004-02-26 22:23:55 +00:00
|
|
|
|
2003-11-10 17:44:50 +00:00
|
|
|
/* EOF */
|