summaryrefslogtreecommitdiff
path: root/plugins/HwHotKeys/src
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/HwHotKeys/src')
-rw-r--r--plugins/HwHotKeys/src/HwHotKeys_Dlg.cpp8
-rw-r--r--plugins/HwHotKeys/src/HwHotKeys_DllMain.cpp74
-rw-r--r--plugins/HwHotKeys/src/HwHotKeys_KbdHook.cpp52
-rw-r--r--plugins/HwHotKeys/src/HwHotKeys_KeyName.cpp14
-rw-r--r--plugins/HwHotKeys/src/HwHotKeys_Util.cpp24
-rw-r--r--plugins/HwHotKeys/src/stdafx.h6
-rw-r--r--plugins/HwHotKeys/src/version.h24
7 files changed, 101 insertions, 101 deletions
diff --git a/plugins/HwHotKeys/src/HwHotKeys_Dlg.cpp b/plugins/HwHotKeys/src/HwHotKeys_Dlg.cpp
index a732504763..012da96a25 100644
--- a/plugins/HwHotKeys/src/HwHotKeys_Dlg.cpp
+++ b/plugins/HwHotKeys/src/HwHotKeys_Dlg.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
@@ -47,7 +47,7 @@ INT_PTR CALLBACK OptDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
code_Close_tmp = key_code_assign;
HwHotKeys_PrintFullKeyname(key_code_assign);
SetDlgItemTextA(hDialogWnd, dlg_close_edit, key_name_buffer);
- SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0); //
+ SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0); // сообщает системе о том что были изменения
break;
case dlg_close_clear:
code_Close_tmp = 0;
@@ -85,7 +85,7 @@ INT_PTR CALLBACK OptDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
case 0:
switch (((LPNMHDR)lParam)->code)
{
- case PSN_APPLY: //
+ case PSN_APPLY: // система просит сохранить настройки плагина
code_Close = code_Close_tmp;
db_set_dw(0, __DbModName, "Close", code_Close_tmp);
code_HideShow = code_HideShow_tmp;
@@ -99,7 +99,7 @@ INT_PTR CALLBACK OptDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
break; //case WM_NOTIFY
case WM_DESTROY:
- hDialogWnd = nullptr; // ( ), 0 ( )
+ hDialogWnd = nullptr; // используется для вывода туда в реалтайме сканкодов клавы (пока открыты настройки), 0 (при закрытии диалога) блокирует это
break;
}
diff --git a/plugins/HwHotKeys/src/HwHotKeys_DllMain.cpp b/plugins/HwHotKeys/src/HwHotKeys_DllMain.cpp
index 01ed11e26f..22814e4c9d 100644
--- a/plugins/HwHotKeys/src/HwHotKeys_DllMain.cpp
+++ b/plugins/HwHotKeys/src/HwHotKeys_DllMain.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
@@ -23,47 +23,47 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 - 1307, USA.
HINSTANCE hInstance;
int hLangpack;
-HWND hDialogWnd = nullptr; // ,
+HWND hDialogWnd = nullptr; // хэндл окна настроек, он глобально используется для вывода туда в реалтайме сканкодов клавы из хука
HHOOK hHook;
CLIST_INTERFACE *pcli;
-// - //,
+// там хранятся настройки - сканкоды кнопок для закрытия/показа/чтения, на которые должны реагировать соответствующие действия
DWORD code_Close = 0;
DWORD code_HideShow = 0;
DWORD code_ReadMsg = 0;
-// _tmp
+// в _tmp копируются настройки на время диалога настроек
DWORD code_Close_tmp = 0;
DWORD code_HideShow_tmp = 0;
DWORD code_ReadMsg_tmp = 0;
-// :
-// 0...7 - ( KbdLLHookStruct.scanCode&0xFF)
-// 8 - , LLKHF_EXTENDED ((LOBYTE(KbdLLHookStruct.flags)&1) -
-// ( 101- 255 , .. F13-F20).
-// , 9- ( *key_tab[0x200]).
-// 9-19 - .
-// 20-31 - , Shift/Ctrl/Alt/Win. 4 - 12 . 3 - , , .
-// key_flag_sr
-
-// 10 - "" .
-// 0...7 - ( KbdLLHookStruct.scanCode&0xFF)
-// 8 - , LLKHF_EXTENDED ((LOBYTE(KbdLLHookStruct.flags)&1) -
-// ( 101- 255 , .. F13-F20).
-// 9 - 0...7 , VK- (KbdLLHookStruct.vkCode), 8 0.
-// USB- , 0 - VK-.
-// ( *key_tab[0x300]).
-// 10-19 - .
-// 20-31 - , Shift/Ctrl/Alt/Win. 4 - 12 . 3 - , , .
-// key_flag_sr
-
-
-
-
-DWORD key_code = 0; //
+// формат сканкодов тут такой:
+// младшие 0...7 биты - это аппаратный сканкод (как он приходит в KbdLLHookStruct.scanCode&0xFF)
+// 8 бит - это как бы часть сканкода, флаг LLKHF_EXTENDED ((LOBYTE(KbdLLHookStruct.flags)&1) - часть кнопок с этим флагом
+// (авторам 101-кнопочной клавы не хватило 255 сканкодов, т.к. там много старых кнопок которые уже давно вымерли типа F13-F20).
+// итак, плагин оперирует 9-битными сканкодами (имена кнопок всех этих сканкодов прописаны в таблице *key_tab[0x200]).
+// биты 9-19 - не используются.
+// биты 20-31 - это флаги регистров, Shift/Ctrl/Alt/Win. На 4 кнопки - 12 битов. Потому что каждая кнопка 3 имеет бита - левая, правая, или любая.
+// битовые маски регистров опеределены в key_flag_sr и соседних именах
+
+// плагин оперирует 10 - битными "сканкодами" собственного формата.
+// младшие 0...7 биты - это обычно аппаратный сканкод (как он приходит в KbdLLHookStruct.scanCode&0xFF)
+// 8 бит - это как бы часть сканкода, флаг LLKHF_EXTENDED ((LOBYTE(KbdLLHookStruct.flags)&1) - часть кнопок с этим флагом
+// (авторам 101-кнопочной клавы не хватило 255 сканкодов, т.к. там много старых кнопок которые уже давно вымерли типа F13-F20).
+// 9 бит - это значит что в битах 0...7 не аппаратный сканкод, а VK-код (KbdLLHookStruct.vkCode), и 8 бит при этом всегда 0.
+// сделано это потому что некоторые USB-клавиатуры не выдают в хук аппаратные скандоды, и если там 0 - то будет использован VK-код.
+// (имена кнопок всех этих сканкодов прописаны в таблице *key_tab[0x300]).
+// биты 10-19 - не используются.
+// биты 20-31 - это флаги регистров, Shift/Ctrl/Alt/Win. На 4 кнопки - 12 битов. Потому что каждая кнопка 3 имеет бита - левая, правая, или любая.
+// битовые маски регистров опеределены в key_flag_sr и соседних именах
+
+
+
+
+DWORD key_code = 0; // там постоянно обновляется сканкод текущей нажатой комбинации
DWORD key_code_raw = 0;
-DWORD key_code_assign = 0; // , .
+DWORD key_code_assign = 0; // во время настроек там хранится сканкод последней нажатой комбинации, который можно назначить для действия.
-CHAR key_name_buffer[150]; // . ANSI.
-// - L_Shift + L_Ctrl + L_Alt + L_Win + R_Shift + R_Ctrl + R_Alt + R_Win + MSO_Print, HP_TouchPadOff - 100 .
+CHAR key_name_buffer[150]; // буфер куда печатается имя кнопки в настройках. ANSI.
+// Самая длинная в теории строка - «L_Shift + L_Ctrl + L_Alt + L_Win + R_Shift + R_Ctrl + R_Alt + R_Win + MSO_Print, HP_TouchPadOff» - менее 100 букв.
// ============================================================================
@@ -85,7 +85,7 @@ PLUGININFOEX PluginInfoEx = {
__COPYRIGHT,
__AUTHORWEB,
UNICODE_AWARE,
- // {315B3800-8258-44C4-B60E-58C50B9303B6} - GUID HwHotKeys
+ // {315B3800-8258-44C4-B60E-58C50B9303B6} - GUID для плагина HwHotKeys
{ 0x315b3800, 0x8258, 0x44c4, { 0xb6, 0xe, 0x58, 0xc5, 0xb, 0x93, 0x3, 0xb6 } }
};
@@ -98,21 +98,21 @@ extern "C" __declspec(dllexport) PLUGININFOEX * MirandaPluginInfoEx(DWORD)
extern "C" __declspec(dllexport) int Load(void)
{
- // ( )
+ // загружаем (из БД) настройки плагина
code_Close = db_get_dw(0, __DbModName, "Close", 0);
code_HideShow = db_get_dw(0, __DbModName, "HideShow", 0);
code_ReadMsg = db_get_dw(0, __DbModName, "ReadMsg", 0);
- // - mir_getLP(PlgInfoEx)
+ // установка кода локализации - макрос mir_getLP(PlgInfoEx)
mir_getLP(&PluginInfoEx);
- // - CLIST_INTERFACE *pcli;
+ // Интерфейс контактлиста - макрос заполняет CLIST_INTERFACE *pcli;
pcli = Clist_GetInterface();
- //
+ // регистрация диалога опций
HookEvent(ME_OPT_INITIALISE, initializeOptions);
- //
+ // установка хука для низкоуровневой обработки хоткеев
hHook = SetWindowsHookExA(WH_KEYBOARD_LL, key_hook, hInstance, 0);
// StringCbPrintfA(key_name_buffer, 100, "hHook = 0x%x, Err = %u", hHook, GetLastError);
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 запрещает дальнейшую работу кнопки, т.е. кнопка после нашего плагина никому более не достанетс¤
}
}
}
diff --git a/plugins/HwHotKeys/src/HwHotKeys_KeyName.cpp b/plugins/HwHotKeys/src/HwHotKeys_KeyName.cpp
index ef116b6b5d..93f4d9c1b0 100644
--- a/plugins/HwHotKeys/src/HwHotKeys_KeyName.cpp
+++ b/plugins/HwHotKeys/src/HwHotKeys_KeyName.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
@@ -19,14 +19,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 - 1307, USA.
#include "stdafx.h"
-// (KbdLLHookStruct.scanCode & 0xFF) ((LOBYTE(KbdLLHookStruct.flags)&1)
-// VK- (KbdLLHookStruct.vkCode)
+// тут описаны известные имена кнопок по аппаратным сканкодам (KbdLLHookStruct.scanCode & 0xFF) и ((LOBYTE(KbdLLHookStruct.flags)&1)
+// и по VK-кодам (KbdLLHookStruct.vkCode)
-// ( ) !
+// при обнаружении новых кнопок (на мультимедийных клавиатурах) просьба сообщать об этом автору!
-// KbdLLHookStruct.scanCode
+// имена для KbdLLHookStruct.scanCode
const CHAR *k000 = "Undefined!";
const CHAR *k001 = "Esc";
const CHAR *k002 = "1";
@@ -188,7 +188,7 @@ const CHAR *k169 = "Browser_Forward";
const CHAR *k16A = "Browser_Back";
-// (Shift,Ctrl,Alt,Win)
+// кнопки регистров (Shift,Ctrl,Alt,Win)
const CHAR *t_CL = k01D;
const CHAR *t_CR = k11D;
const CHAR *t_CC = k01D + 2;
@@ -206,7 +206,7 @@ const CHAR *t_SS = k02A + 2;
const CHAR *key_tab[0x200] =
{
- k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k00D, k00E, k00F, // 000 - KbdLLHookStruct.scanCode
+ k000, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k00D, k00E, k00F, // 000 - простые KbdLLHookStruct.scanCode
k010, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C, k01D, k01E, k01F, // 010
k020, k021, k022, k023, k024, k025, k026, k027, k028, k029, k02A, k02B, k02C, k02D, k02E, k02F, // 020
k030, k031, k032, k033, k034, k035, k036, k037, k038, k039, k03A, k03B, k03C, k03D, k03E, k03F, // 030
diff --git a/plugins/HwHotKeys/src/HwHotKeys_Util.cpp b/plugins/HwHotKeys/src/HwHotKeys_Util.cpp
index 39b299d758..ecbce8b736 100644
--- a/plugins/HwHotKeys/src/HwHotKeys_Util.cpp
+++ b/plugins/HwHotKeys/src/HwHotKeys_Util.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
@@ -21,19 +21,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 - 1307, USA.
-//
+// сравнивает текущий нажатый сканкод с указанным
BOOL HwHotKeys_CompareCurrentScancode(DWORD scancode)
{
- if (key_code == scancode) // key_code - .
+ if (key_code == scancode) // key_code - текущий нажатый на клавиатуре сканкод.
{
- return true; // - TRUE.
+ return true; // сканкод напрямую совпал - TRUE.
}
- if (!(scancode & 0x00F00000)) // / .
+ if (!(scancode & 0x00F00000)) // проверяем нет ли в сканкоде запроса на любой из левого/правого регистра.
{
return false;
}
- DWORD tmp1, tmp2; // : 0xF0000000 - Sft/Ctr/Alt/Win, 0x0F000000 - , 0x00F00000 - Sft/Ctr/Alt/Win
- tmp1 = key_code >> 8; // .
+ DWORD tmp1, tmp2; // битовые маски: 0xF0000000 - левые кнопки Sft/Ctr/Alt/Win, 0x0F000000 - правые кнопки, 0x00F00000 - любые кнопки Sft/Ctr/Alt/Win
+ tmp1 = key_code >> 8; // сдвигаем биты левых и правых кнопок.
tmp2 = key_code >> 4;
tmp1 |= tmp2;
tmp1 &= 0x00F00000;
@@ -47,12 +47,12 @@ BOOL HwHotKeys_CompareCurrentScancode(DWORD scancode)
-// key_name_buffer
-// ANSI ( , )
+// печатает в буфер key_name_buffer текстовое описание нажатой комбинации кнопок
+// Кодировка ANSI (для экономии места, всё равно названия клавиш английские)
VOID HwHotKeys_PrintFullKeyname(DWORD scancode)
{
key_name_buffer[0] = 0;
- if (!scancode) // - .
+ if (!scancode) // если нулевой сканкод - то пустую строку делаем.
{
return;
}
@@ -121,7 +121,7 @@ VOID HwHotKeys_PrintFullKeyname(DWORD scancode)
StringCbCatA(key_name_buffer, sizeof(key_name_buffer), " + ");
}
- if ((scancode & 0x1FF) < sizeof(key_tab)) // - .
+ if ((scancode & 0x1FF) < sizeof(key_tab)) // защита от ошибочных данных - чтобы не выйти из таблицы имён.
{
StringCbCatA(key_name_buffer, sizeof(key_name_buffer), key_tab[(scancode & 0x1FF)]);
}
@@ -130,7 +130,7 @@ VOID HwHotKeys_PrintFullKeyname(DWORD scancode)
StringCbCatA(key_name_buffer, sizeof(key_name_buffer), "out of range");
}
- INT_PTR tmp1 = mir_strlen(key_name_buffer); // - ()
+ INT_PTR tmp1 = mir_strlen(key_name_buffer); // допечатываем в конеце строки сканкод - для удобства работы с пока ещё не известными (безимянными) кнопками
StringCbPrintfA(key_name_buffer + tmp1, sizeof(key_name_buffer) - tmp1, " (%03X)", (scancode & 0x1FF));
return;
diff --git a/plugins/HwHotKeys/src/stdafx.h b/plugins/HwHotKeys/src/stdafx.h
index dfce5e714e..94d0b78b74 100644
--- a/plugins/HwHotKeys/src/stdafx.h
+++ b/plugins/HwHotKeys/src/stdafx.h
@@ -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
@@ -41,7 +41,7 @@ extern CLIST_INTERFACE *pcli;
extern HINSTANCE hInstance;
extern INT hLangpack;
-extern HWND hDialogWnd; // ,
+extern HWND hDialogWnd; // глобально используется для вывода туда в реалтайме сканкодов клавы, из хука
extern HHOOK hHook;
extern DWORD code_Close_tmp;
@@ -72,7 +72,7 @@ extern const CHAR *t_SL;
extern const CHAR *t_SR;
extern const CHAR *t_SS;
-// HwHotKeys_CompareCurrentScancode
+// значения связаны с битами в HwHotKeys_CompareCurrentScancode
#define key_flag_sr 0x01000000
#define key_flag_cr 0x02000000
#define key_flag_ar 0x04000000
diff --git a/plugins/HwHotKeys/src/version.h b/plugins/HwHotKeys/src/version.h
index 0c5c8d595a..344f756348 100644
--- a/plugins/HwHotKeys/src/version.h
+++ b/plugins/HwHotKeys/src/version.h
@@ -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
@@ -17,8 +17,8 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 - 1307, USA.
============================================================================ */
-// :
-// 1.0.0.6 - Hardware HotKeys Miranda NG ( Miranda IM), .
+// история версий:
+// 1.0.0.6 - первая версия Hardware HotKeys для Miranda NG (более ранние версии были для Miranda IM), исправление старых ошибок.
#define __MAJOR_VERSION 1
@@ -28,14 +28,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 - 1307, USA.
#include <stdver.h>
-#define __PLUGIN_NAME "Hardware HotKeys" // dll-fileinfo "FileVersion" "ProductName", , . !
+#define __PLUGIN_NAME "Hardware HotKeys" // dll-fileinfo "FileVersion" и "ProductName", меню в настройках миранды, название плагина в миранде. Нелокализуемое!
#define __FILENAME "HwHotKeys.dll" // dll-fileinfo "OriginalFilename"
-#define __DESCRIPTION_MIR "Allows you to assign expanded multimedia keys (only for PS/2 keyboards)." // ()
-#define __DESCRIPTION_DLL "Hardware HotKeys plugin for Miranda NG." // dll-fileinfo "FileDescription" ( - ). !
-#define __AUTHOR "Eugene f2065" //
-#define __AUTHOREMAIL "f2065@mail.ru" //
-#define __AUTHORWEB "http://f2065.narod.ru/" // dll-fileinfo "CompanyName",
-#define __COPYRIGHT " 2010-2017 Eugene f2065" // dll-fileinfo "LegalCopyright",
-
-#define __DbModName "HwHotKeys" //
+#define __DESCRIPTION_MIR "Allows you to assign expanded multimedia keys (only for PS/2 keyboards)." // описание плагина в миранде (локализуемое)
+#define __DESCRIPTION_DLL "Hardware HotKeys plugin for Miranda NG." // описание плагина в dll-fileinfo "FileDescription" (там многострочные строки - не работают). Нелокализуемое!
+#define __AUTHOR "Eugene f2065" // описание плагина в миранде
+#define __AUTHOREMAIL "f2065@mail.ru" // описание плагина в миранде
+#define __AUTHORWEB "http://f2065.narod.ru/" // описание плагина в dll-fileinfo "CompanyName", описание плагина в миранде
+#define __COPYRIGHT "© 2010-2017 Eugene f2065" // описание плагина в dll-fileinfo "LegalCopyright", описание плагина в миранде
+
+#define __DbModName "HwHotKeys" // имя раздела настроек плагина в БД миранды