15 #define MIN_CARETBLINKRATE 100 16 #define MAX_CARETBLINKRATE 10000 30 TRACE(
"Null Window!\n");
37 ERR(
"GetDC failed\n");
57 ERR(
"Failed to get bitmap dimensions\n");
116 TRACE(
"Not the same caret window!\n");
125 ERR(
"Caret System Timer Proc has invalid window handle! %p Id: %u\n",
hwnd, idEvent);
131 TRACE(
"Windowless Caret Timer Running!\n" );
199 gpsi->dtCaretBlink = uMSeconds;
323 TRACE(
"Enter NtUserCreateCaret\n");
376 TRACE(
"Leave NtUserCreateCaret, ret=%i\n",_ret_);
406 TRACE(
"Enter NtUserGetCaretPos\n");
422 TRACE(
"Leave NtUserGetCaretPos, ret=%i\n",_ret_);
436 TRACE(
"Enter NtUserShowCaret\n");
453 TRACE(
"Leave NtUserShowCaret, ret=%i\n",_ret_);
467 TRACE(
"Enter NtUserHideCaret\n");
484 TRACE(
"Leave NtUserHideCaret, ret=%i\n",_ret_);
#define ERROR_INVALID_PARAMETER
UINT_PTR FASTCALL IntSetTimer(PWND Window, UINT_PTR IDEvent, UINT Elapse, TIMERPROC TimerFunc, INT Type)
VOID FASTCALL UserEnterShared(VOID)
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
__kernel_entry W32KAPI INT APIENTRY NtGdiIntersectClipRect(_In_ HDC hdc, _In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiPatBlt(_In_ HDC hdcDest, _In_ INT x, _In_ INT y, _In_ INT cx, _In_ INT cy, _In_ DWORD dwRop)
#define PsGetCurrentThread()
#define ASSERT_REFS_CO(_obj_)
VOID FASTCALL IntNotifyWinEvent(DWORD Event, PWND pWnd, LONG idObject, LONG idChild, DWORD flags)
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
BOOL FASTCALL IntKillTimer(PWND Window, UINT_PTR IDEvent, BOOL SystemTimer)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiRestoreDC(_In_ HDC hdc, _In_ INT iLevel)
__kernel_entry W32KAPI HBITMAP APIENTRY NtGdiSelectBitmap(_In_ HDC hdc, _In_ HBITMAP hbm)
static __inline VOID UserRefObjectCo(PVOID obj, PUSER_REFERENCE_ENTRY UserReferenceEntry)
BOOL APIENTRY NtUserHideCaret(HWND hWnd OPTIONAL)
HDC FASTCALL UserGetDCEx(PWND Window OPTIONAL, HANDLE ClipRegion, ULONG Flags)
#define MmCopyToCaller(x, y, z)
VOID FASTCALL IntGetClientRect(PWND WindowObject, RECTL *Rect)
BOOL NTAPI GreGetBitmapDimension(_In_ HBITMAP hBitmap, _Out_ LPSIZE psizDim)
__kernel_entry W32KAPI INT APIENTRY NtGdiSaveDC(_In_ HDC hdc)
#define ERROR_ACCESS_DENIED
BOOL FASTCALL co_IntDestroyCaret(PTHREADINFO Win32Thread)
static __inline VOID UserDerefObjectCo(PVOID obj)
#define MIN_CARETBLINKRATE
__kernel_entry W32KAPI BOOL APIENTRY NtGdiBitBlt(_In_ HDC hdcDst, _In_ INT x, _In_ INT y, _In_ INT cx, _In_ INT cy, _In_opt_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ DWORD rop4, _In_ DWORD crBackColor, _In_ FLONG fl)
BOOL APIENTRY NtUserGetCaretPos(LPPOINT lpPoint)
PWND FASTCALL UserGetWindowObject(HWND hWnd)
LONG NTAPI UserGetSystemMetrics(ULONG Index)
VOID FASTCALL UserEnterExclusive(VOID)
UINT APIENTRY NtUserGetCaretBlinkTime(VOID)
#define NT_SUCCESS(StatCode)
#define MAX_CARETBLINKRATE
#define ValidateHwndNoErr(hwnd)
#define DECLARE_RETURN(type)
unsigned __int3264 UINT_PTR
static BOOL FASTCALL co_IntHideCaret(PTHRDCARETINFO CaretInfo)
VOID CALLBACK CaretSystemTimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
BOOL FASTCALL co_IntSetCaretPos(int X, int Y)
BOOL APIENTRY NtUserShowCaret(HWND hWnd OPTIONAL)
BOOL FASTCALL co_UserShowCaret(PWND Window OPTIONAL)
VOID FASTCALL SetLastNtError(NTSTATUS Status)
DBG_DEFAULT_CHANNEL(UserCaret)
__kernel_entry W32KAPI HDC APIENTRY NtGdiCreateCompatibleDC(_In_opt_ HDC hdc)
struct _USER_MESSAGE_QUEUE * MessageQueue
VOID FASTCALL UserLeave(VOID)
INT FASTCALL UserReleaseDC(PWND Window, HDC hDc, BOOL EndPaint)
BOOL APIENTRY NtUserCreateCaret(HWND hWnd, HBITMAP hBitmap, int nWidth, int nHeight)
char * cleanup(char *str)
BOOL FASTCALL co_UserHideCaret(PWND Window OPTIONAL)
VOID FASTCALL co_IntDrawCaret(PWND pWnd, PTHRDCARETINFO CaretInfo)
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
BOOL FASTCALL IntSetCaretBlinkTime(UINT uMSeconds)
PULONG MinorVersion OPTIONAL