Calculating keyboard event flags manually instead of using BitVector32.
Discarded using WH_KEYBOARD because it needs a separate DLL to be
global.
Warning logic extracted do WarningController class.