reactos/subsystems/win32/win32k/include/cursoricon.h
Jérôme Gardou 4170ce0625 sync with trunk r47346
svn path=/branches/reactos-yarotows/; revision=47347
2010-05-25 10:27:42 +00:00

108 lines
2.2 KiB
C

#pragma once
#define MAXCURICONHANDLES 4096
typedef struct tagCURICON_PROCESS
{
LIST_ENTRY ListEntry;
PPROCESSINFO Process;
} CURICON_PROCESS, *PCURICON_PROCESS;
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;
typedef struct _CURSORCLIP_INFO
{
BOOL IsClipped;
UINT Left;
UINT Top;
UINT Right;
UINT Bottom;
} CURSORCLIP_INFO, *PCURSORCLIP_INFO;
typedef struct _CURSORACCELERATION_INFO
{
UINT FirstThreshold;
UINT SecondThreshold;
UINT Acceleration;
} CURSORACCELERATION_INFO, *PCURSORACCELERATION_INFO;
typedef struct _SYSTEM_CURSORINFO
{
BOOL Enabled;
BOOL ClickLockActive;
DWORD ClickLockTime;
// BOOL SwapButtons;
UINT ButtonsDown;
CURSORCLIP_INFO CursorClipInfo;
PCURICON_OBJECT CurrentCursorObject;
INT ShowingCursor;
/*
UINT WheelScroLines;
UINT WheelScroChars;
UINT DblClickSpeed;
UINT DblClickWidth;
UINT DblClickHeight;
UINT MouseHoverTime;
UINT MouseHoverWidth;
UINT MouseHoverHeight;
UINT MouseSpeed;
CURSORACCELERATION_INFO CursorAccelerationInfo;
*/
DWORD LastBtnDown;
LONG LastBtnDownX;
LONG LastBtnDownY;
HANDLE LastClkWnd;
BOOL ScreenSaverRunning;
} SYSTEM_CURSORINFO, *PSYSTEM_CURSORINFO;
BOOL InitCursorImpl();
PCURICON_OBJECT IntCreateCurIconHandle();
VOID FASTCALL IntCleanupCurIcons(struct _EPROCESS *Process, PPROCESSINFO Win32Process);
BOOL UserDrawIconEx(HDC hDc, INT xLeft, INT yTop, PCURICON_OBJECT pIcon, INT cxWidth,
INT cyHeight, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags);
PCURICON_OBJECT FASTCALL UserGetCurIconObject(HCURSOR hCurIcon);
BOOL UserSetCursorPos( INT x, INT y, BOOL CallHooks);
int UserShowCursor(BOOL bShow);
PSYSTEM_CURSORINFO IntGetSysCursorInfo();
#define IntReleaseCurIconObject(CurIconObj) \
UserDereferenceObject(CurIconObj)
ULONG
NTAPI
GreSetPointerShape(
HDC hdc,
HBITMAP hbmMask,
HBITMAP hbmColor,
LONG xHot,
LONG yHot,
LONG x,
LONG y);
VOID
NTAPI
GreMovePointer(
HDC hdc,
LONG x,
LONG y);
/* EOF */