internal static Keys WinProcKeyToWinFormKey(ECWinProcKeyModifier _modifiers) { int ret = (int)ECWinProcKeyModifier.None; ret = (_modifiers & ECWinProcKeyModifier.Alt) > 0 ? ret | (int)Keys.Alt : ret; ret = (_modifiers & ECWinProcKeyModifier.Shift) > 0 ? ret | (int)Keys.Shift : ret; ret = (_modifiers & ECWinProcKeyModifier.Control) > 0 ? ret | (int)Keys.Control : ret; //ret = (modifier & ECWinProcKeyModifier.WinKey) > 0 ? ret | (int)Keys.Wi : ret; return((Keys)ret); }
protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == WM_HOTKEY) { // get the keys. Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF); ECWinProcKeyModifier modifiers = (ECWinProcKeyModifier)((int)m.LParam & 0xFFFF); int winFormsModifier = (int)ECHotkeyHelper.WinProcKeyToWinFormKey(modifiers); Keys keyAndModifier = (Keys)(winFormsModifier | (int)key); if (ECHotkeyHelper.hotkeys.ContainsKey(keyAndModifier)) { ECHotkeyHelper.hotkeys[keyAndModifier].callback(); } } }