rem: } while (!ButtonState && TaskSwitch () <= TimeOut);
add: } while (!ButtonState && (TaskSwitch (), GetTimeCounter ()) <= TimeOut);
context: WaitForNoInput (SIZE Duration){	INPUT_STATE PressState;	PressState = AnyButtonPress (FALSE);	if (Duration < 0)	{		if (PressState)			return;		Duration = -Duration;	}	else if (!PressState)		return;		{		DWORD TimeOut;		INPUT_STATE ButtonState;		TimeOut = GetTimeCounter () + Duration;		do		{			ButtonState = AnyButtonPress (FALSE);			if (PressState)			{				PressState = ButtonState;				ButtonState = 0;			}		} while (!ButtonState && TaskSwitch () <= TimeOut);	}}