summaryrefslogtreecommitdiff
path: root/plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2017-11-28 22:12:43 +0300
committerKirill Volinsky <mataes2007@gmail.com>2017-11-28 22:12:43 +0300
commit80221d816eeb98f0df38e0243390033c614952f3 (patch)
tree7618176108093921b6934343bc2f76a66ea97730 /plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp
parent25df99ba7462958f2cb9075020ec1c9a5a7c9f50 (diff)
Source files converted to utf-8
Diffstat (limited to 'plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp')
-rw-r--r--plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp52
1 files changed, 26 insertions, 26 deletions
diff --git a/plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp b/plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp
index eadb9f1f4d..17065834a2 100644
--- a/plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp
+++ b/plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp
@@ -1,6 +1,6 @@
/* ============================================================================
Hardware HotKeys plugin for Miranda NG.
-Copyright © Eugene f2065, http://f2065.narod.ru, f2065 mail.ru, ICQ 35078112
+Copyright В© Eugene f2065, http://f2065.narod.ru, f2065 mail.ru, ICQ 35078112
This program is free software; you can redistribute it and / or
modify it under the terms of the GNU General Public License
@@ -24,31 +24,31 @@ LRESULT CALLBACK key_hook(int nCode, WPARAM wParam, LPARAM lParam) // https://m
KBDLLHOOKSTRUCT *pKbdLLHookStruct = (KBDLLHOOKSTRUCT *)lParam;
if (nCode >= 0)
{
- if (wParam == WM_KEYUP || wParam == WM_SYSKEYUP) // при отпускании любой кнопки - сбрасываем всю накопленную комбинацию
+ if (wParam == WM_KEYUP || wParam == WM_SYSKEYUP) // при отпускании любой кнопки - сбрасываем всю накопленную комбинацию
{
key_code = 0;
}
else if (wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN)
{
if (!(pKbdLLHookStruct->scanCode & 0xFFFFFF00) && (pKbdLLHookStruct->scanCode & 0xFF)) // && !(pKbdLLHookStruct->flags & LLKHF_INJECTED))
- // 0xFFFFFF00 фильтр для странных двойных сканкодов например перед L_Alt/AltGr,
- // 0xFF фильтр для нулевых сканкодов(приходят при всякой там эмуляции нажатий и т.п.)
- // LLKHF_INJECTED фильтр для эмулируемых нажатий, но есть проблема с некоторыми клавами
+ // 0xFFFFFF00 фильтр дл¤ странных двойных сканкодов например перед L_Alt/AltGr,
+ // 0xFF фильтр дл¤ нулевых сканкодов(приход¤т при вс¤кой там эмул¤ции нажатий и т.п.)
+ // LLKHF_INJECTED фильтр дл¤ эмулируемых нажатий, но есть проблема с некоторыми клавами
{
- // строим комплексный код(сканкод + доп.флаг LLKHF_EXTENDED), от 0 до 1FF
+ // строим комплексный код(сканкод + доп.флаг LLKHF_EXTENDED), от 0 до 1FF
key_code_raw = (LOBYTE(pKbdLLHookStruct->scanCode) | ((LOBYTE(pKbdLLHookStruct->flags)&1) << 8));
- if (hDialogWnd) // если диалог настроек открыт - выводим в него нажимаемые кнопоки
+ if (hDialogWnd) // если диалог настроек открыт - выводим в него нажимаемые кнопоки
{
StringCbPrintfA(key_name_buffer, sizeof(key_name_buffer), "%03X %s", key_code_raw, key_tab[(key_code_raw & 0x1FF)]);
SetDlgItemTextA(hDialogWnd, dlg_scancode_edit, key_name_buffer);
}
- switch (key_code_raw) // проверяем кнопки модификаторов
+ switch (key_code_raw) // провер¤ем кнопки модификаторов
{
case 0x01D: // L_Ctrl
key_code |= key_flag_cl;
- break; // после модификаторов - ничего не делаем, выход из хука.
+ break; // после модификаторов - ничего не делаем, выход из хука.
case 0x11D: // R_Ctrl
key_code |= key_flag_cr;
break;
@@ -76,11 +76,11 @@ LRESULT CALLBACK key_hook(int nCode, WPARAM wParam, LPARAM lParam) // https://m
case 0x136: // R_Shift_fake
key_code |= key_flag_sr;
break;
- default: // если это не кнопка модификатора - то дальнейшая обработка
- key_code = (LOWORD(key_code_raw)) | (key_code & 0xFFFF0000); // в старшей половине там лежат биты модификаторов - их оставляем (они там могут быть от предыдущего раза)
- if (hDialogWnd) // если диалог настроек открыт - выводим в него комплексную комбинацию (типа Shift+Key), которую потом можно назначить;
+ default: // если это не кнопка модификатора - то дальнейша¤ обработка
+ key_code = (LOWORD(key_code_raw)) | (key_code & 0xFFFF0000); // в старшей половине там лежат биты модификаторов - их оставл¤ем (они там могут быть от предыдущего раза)
+ if (hDialogWnd) // если диалог настроек открыт - выводим в него комплексную комбинацию (типа Shift+Key), которую потом можно назначить;
{
- if (IsDlgButtonChecked(hDialogWnd, dlg_combine)) // левые/правые модификаторы объединять в один?
+ if (IsDlgButtonChecked(hDialogWnd, dlg_combine)) // левые/правые модификаторы объедин¤ть в один?
{
DWORD tmp1, tmp2;
tmp1 = ((key_code >> 4) | (key_code >> 8)) & 0x00F00000;
@@ -95,34 +95,34 @@ LRESULT CALLBACK key_hook(int nCode, WPARAM wParam, LPARAM lParam) // https://m
HwHotKeys_PrintFullKeyname(key_code_assign);
SetDlgItemTextA(hDialogWnd, dlg_keyname_edit, key_name_buffer);
}
- else // хоткей выполняют действия только если закрыт диалог настроек (чтобы не мешал настраивать)
+ else // хоткей выполн¤ют действи¤ только если закрыт диалог настроек (чтобы не мешал настраивать)
{
- if (HwHotKeys_CompareCurrentScancode(code_Close)) // хоткей полного закрытия Miranda
+ if (HwHotKeys_CompareCurrentScancode(code_Close)) // хоткей полного закрыти¤ Miranda
{
// Beep(300, 200);
CallService("CloseAction", 0, 0);
return 1;
}
- else if (HwHotKeys_CompareCurrentScancode(code_HideShow)) // хоткей сворачивания/разворачивания главного окна Miranda
+ else if (HwHotKeys_CompareCurrentScancode(code_HideShow)) // хоткей сворачивани¤/разворачивани¤ главного окна Miranda
{
// Beep(700, 200);
- pcli->pfnShowHide(); // есть варианты
+ pcli->pfnShowHide(); // есть варианты
return 1;
}
- else if (HwHotKeys_CompareCurrentScancode(code_ReadMsg)) // хоткей чтения сообщения
+ else if (HwHotKeys_CompareCurrentScancode(code_ReadMsg)) // хоткей чтени¤ сообщени¤
{
// Beep(1500, 200);
- if (pcli->pfnEventsProcessTrayDoubleClick(0) != 0) // клик по трею для стандартного открытия сообщения
- { // иначе - окно чата уже открыто и надо его вытащить наверх...
+ if (pcli->pfnEventsProcessTrayDoubleClick(0) != 0) // клик по трею дл¤ стандартного открыти¤ сообщени¤
+ { // иначе - окно чата уже открыто и надо его вытащить наверх...
SetForegroundWindow(pcli->hwndContactList);
SetFocus(pcli->hwndContactList);
- // хотя всё равно это не очень работает в новой винде
- // надо http://www.rsdn.ru/article/qna/ui/wndsetfg.xml
- // но пока незнаю где тут взять хэндл окна чата(причём именно для
- // выбранного контакта, их же несколько может быть если простой srmm)
- // у миранды в hkRead такие же проблемы
+ // хот¤ всЄ равно это не очень работает в новой винде
+ // надо http://www.rsdn.ru/article/qna/ui/wndsetfg.xml
+ // но пока незнаю где тут вз¤ть хэндл окна чата(причЄм именно дл¤
+ // выбранного контакта, их же несколько может быть если простой srmm)
+ // у миранды в hkRead такие же проблемы
}
- return 1; // возврат 1 запрещает дальнейшую работу кнопки, т.е. кнопка после нашего плагина никому более не достанется
+ return 1; // возврат 1 запрещает дальнейшую работу кнопки, т.е. кнопка после нашего плагина никому более не достанетс¤
}
}
}