windows-nt/Source/XPSP1/NT/windows/appcompat/shims/general/hidecursor.cpp
2020-09-26 16:20:57 +08:00

59 lines
989 B
C++

/*++
Copyright (c) 2001 Microsoft Corporation
Module Name:
HideCursor.cpp
Abstract:
ShowCursor will display the cursor if the count is >= 0, this shim will
force ShowCursor to act as a toggle rather than a count.
In other words it forces the count to be 0 or -1.
History:
05/25/2001 robkenny Created
--*/
#include "precomp.h"
IMPLEMENT_SHIM_BEGIN(HideCursor)
#include "ShimHookMacro.h"
APIHOOK_ENUM_BEGIN
APIHOOK_ENUM_ENTRY(ShowCursor)
APIHOOK_ENUM_END
int
APIHOOK(ShowCursor)(
BOOL bShow // cursor visibility
)
{
int nShowCount = ShowCursor(bShow);
while (nShowCount > 0)
{
// Hide the cursor until the count reaches 0
nShowCount = ShowCursor(FALSE);
}
while (nShowCount < -1)
{
// Show the cursor until the count reaches -1
nShowCount = ShowCursor(TRUE);
}
return nShowCount;
}
HOOK_BEGIN
APIHOOK_ENTRY(USER32.DLL, ShowCursor)
HOOK_END
IMPLEMENT_SHIM_END