59 lines
989 B
C++
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
|
||
|
|