summaryrefslogtreecommitdiff
path: root/plugins/HwHotKeys/src
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
parent25df99ba7462958f2cb9075020ec1c9a5a7c9f50 (diff)
Source files converted to utf-8
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" // им� раздела на�троек плагина в БД миранды