public virtual bool PreProcessWmKeyDown(ref Message m)
{
//System.Diagnostics.Debug.WriteLine("PreProcessWmKeyDown(ref Message m)", "KeyInterpreter");
Keys vc = (Keys)m.WParam.ToInt32();
Keys keyData = vc | Control.ModifierKeys;
// detect whether key down event should be raised
var hasMessageHandler = this.MessageHandlers.ContainsKey(keyData);
if (hasMessageHandler && RaiseKeyDown(keyData))
return true;
MessageDelegate messageHandler = hasMessageHandler
? this.MessageHandlers[keyData]
: messageHandler = new MessageDelegate(PreProcessWmKeyDown_Default);
return messageHandler(ref m);
}