Последнее слово ключевое.
Скажем, мне надо ловить то что нажали на клавиатуре, при этом не поймать то, что пошлет какой-нибудь keybd_event.
Кроме того, будет еще совсем хорошо иметь возможность фильтровать эти нажатия, то есть часть - пропускать, а часть - нет.
Полагаю, можно как-то с помощью DirectX, но как - не знаю.
Желательно из um.