From 8a74e7495ce5ad39de4f5c25121a84d35df90c36 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 20 May 2018 15:08:48 +0300 Subject: CMPlugin to receive a reference to PLUGININFOEX --- plugins/LotusNotify/src/LotusNotify.cpp | 144 +++++++++++++++++--------------- plugins/LotusNotify/src/LotusNotify.h | 6 +- plugins/LotusNotify/src/debug.cpp | 4 +- plugins/LotusNotify/src/debug.h | 2 +- 4 files changed, 79 insertions(+), 77 deletions(-) (limited to 'plugins/LotusNotify/src') diff --git a/plugins/LotusNotify/src/LotusNotify.cpp b/plugins/LotusNotify/src/LotusNotify.cpp index 69006c457a..d25e47eed1 100644 --- a/plugins/LotusNotify/src/LotusNotify.cpp +++ b/plugins/LotusNotify/src/LotusNotify.cpp @@ -21,7 +21,7 @@ INT_PTR SetStatus(WPARAM wParam, LPARAM lParam); #define MAX_SETTING_STR 512 #define STATUS_COUNT 9 -char PLUGINNAME[64] = {0}; //init at init_pluginname(); +char MODULENAME[64] = {0}; //init at init_pluginname(); int &hLangpack(g_plugin.m_hLang); CMPlugin g_plugin; CLIST_INTERFACE *pcli; @@ -67,7 +67,7 @@ wchar_t *startuperrors[] = { ///////////////////////////////////////////////////////////////////////////////////////// -PLUGININFOEX pluginInfo = { +PLUGININFOEX pluginInfoEx = { sizeof(PLUGININFOEX), __PLUGIN_NAME, PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM), @@ -79,12 +79,18 @@ PLUGININFOEX pluginInfo = { { 0x23eacc0d, 0xbab0, 0x49c0, { 0x8f, 0x37, 0x5e, 0x25, 0x9e, 0xce, 0x52, 0x7f } } // {23EACC0D-BAB0-49c0-8F37-5E259ECE527F} }; +CMPlugin::CMPlugin() : + PLUGIN(MODULENAME, pluginInfoEx) +{ + RegisterProtocol(PROTOTYPE_PROTOCOL); +} + extern "C" __declspec(dllexport) PLUGININFOEX *MirandaPluginInfoEx(DWORD) { #ifdef _WIN64 #error LotusNotify.dll cannot work with 64bit Miranda. (Lotus client is 32bit only) #endif - return &pluginInfo; + return &pluginInfoEx; } ///////////////////////////////////////////////////////////////////////////////////////// @@ -243,8 +249,8 @@ void init_pluginname() } // copy to static variable - strncpy_s(PLUGINNAME, _countof(PLUGINNAME), p, mir_strlen(p)); - assert(mir_strlen(PLUGINNAME)>0); + strncpy_s(MODULENAME, _countof(MODULENAME), p, mir_strlen(p)); + assert(mir_strlen(MODULENAME)>0); } @@ -318,7 +324,7 @@ void Click(HWND hWnd,BOOL execute) deletePopupsHandles((&(getEl(pid->id))->pq),TRUE); if(settingNewest && (pid->id > settingNewestID) ){ - db_set_dw(NULL, PLUGINNAME, "LNNewestID", settingNewestID=pid->id); + db_set_dw(NULL, MODULENAME, "LNNewestID", settingNewestID=pid->id); } if(execute && settingCommand[0] ) { char tmpcommand[2*MAX_SETTING_STR]; @@ -392,7 +398,7 @@ BOOL checkNotesIniFile(BOOL bInfo) strncpy_s(tmp1,_countof(tmp1),tmp,sizeof(tmp1));//copy temporary assert(mir_strlen(tmp1)>0); - char* PLUGINNAME_lower = _strlwr(mir_strdup(PLUGINNAME)); + char* PLUGINNAME_lower = _strlwr(mir_strdup(MODULENAME)); //is there our plugin as safe? if(strstr(tmp1,PLUGINNAME_lower) == nullptr) @@ -401,7 +407,7 @@ BOOL checkNotesIniFile(BOOL bInfo) return FALSE; if(!settingIniAnswer || bInfo){ - switch(MessageBox(nullptr, TranslateT("This utility check your notes.ini file if it's set to authenticate this plugin as safe. Plugin is not added as Lotus Extension, so plugin built-in authentication will not work properly. Do you want to add plugin as Lotus Extension (modify notes.ini by adding \"EXTMGR_ADDINS=PLUGINNAME\")?"), TranslateT("LotusNotify plugin configuration"), MB_YESNO)) + switch(MessageBox(nullptr, TranslateT("This utility check your notes.ini file if it's set to authenticate this plugin as safe. Plugin is not added as Lotus Extension, so plugin built-in authentication will not work properly. Do you want to add plugin as Lotus Extension (modify notes.ini by adding \"EXTMGR_ADDINS=MODULENAME\")?"), TranslateT("LotusNotify plugin configuration"), MB_YESNO)) { case IDYES: { @@ -698,7 +704,7 @@ void checkthread(void*) // remember newest id depending on options set if (settingNewest&&settingEvenNonClicked && (noteID > settingNewestID)) - db_set_dw(NULL, PLUGINNAME, "LNNewestID", settingNewestID = noteID); + db_set_dw(NULL, MODULENAME, "LNNewestID", settingNewestID = noteID); //if(((!settingOnceOnly||(settingOnceOnly&&settingNonClickedOnly))&&existElem(noteID))||(settingNewest&&settingNewestID>=noteID)) //continue; @@ -967,66 +973,66 @@ static void lookupLotusDefaultSettings(HWND hwndDlg) // get variables values stored in db. static void LoadSettings() { - settingInterval = (INT)db_get_dw(NULL, PLUGINNAME, "LNInterval", 15); - settingInterval1 = (INT)db_get_dw(NULL, PLUGINNAME, "LNInterval1", 0); - settingKeepConnection = db_get_b(NULL, PLUGINNAME, "LNKeepConnection", 1); + settingInterval = (INT)db_get_dw(NULL, MODULENAME, "LNInterval", 15); + settingInterval1 = (INT)db_get_dw(NULL, MODULENAME, "LNInterval1", 0); + settingKeepConnection = db_get_b(NULL, MODULENAME, "LNKeepConnection", 1); DBVARIANT dbv; - if (!db_get_s(NULL, PLUGINNAME, "LNDatabase", &dbv)) { + if (!db_get_s(NULL, MODULENAME, "LNDatabase", &dbv)) { strncpy_s(settingDatabase, _countof(settingDatabase), dbv.pszVal, _countof(settingDatabase)); db_free(&dbv); } - if (!db_get_s(NULL, PLUGINNAME, "LNServer", &dbv)) { + if (!db_get_s(NULL, MODULENAME, "LNServer", &dbv)) { strncpy_s(settingServer, _countof(settingServer), dbv.pszVal, _countof(settingServer)); db_free(&dbv); } - if (!db_get_s(NULL, PLUGINNAME, "LNServerSec", &dbv)) { + if (!db_get_s(NULL, MODULENAME, "LNServerSec", &dbv)) { strncpy_s(settingServerSec, _countof(settingServerSec), dbv.pszVal, _countof(settingServerSec)); db_free(&dbv); } - if (!db_get(NULL, PLUGINNAME, "LNPassword", &dbv)) { + if (!db_get(NULL, MODULENAME, "LNPassword", &dbv)) { strncpy_s(settingPassword, _countof(settingPassword), dbv.pszVal, _countof(settingPassword)); db_free(&dbv); } - if (!db_get_s(NULL, PLUGINNAME, "LNCommand", &dbv, DBVT_ASCIIZ)) { + if (!db_get_s(NULL, MODULENAME, "LNCommand", &dbv, DBVT_ASCIIZ)) { strncpy_s(settingCommand, _countof(settingCommand), dbv.pszVal, _countof(settingCommand)); db_free(&dbv); } - if (!db_get_s(NULL, PLUGINNAME, "LNParameters", &dbv, DBVT_ASCIIZ)) { + if (!db_get_s(NULL, MODULENAME, "LNParameters", &dbv, DBVT_ASCIIZ)) { strncpy_s(settingParameters, _countof(settingParameters), dbv.pszVal, _countof(settingParameters)); db_free(&dbv); } - if (!db_get_ws(NULL, PLUGINNAME, "LNFilterSender", &dbv)) { + if (!db_get_ws(NULL, MODULENAME, "LNFilterSender", &dbv)) { wcsncpy_s(settingFilterSender, dbv.ptszVal, _TRUNCATE); db_free(&dbv); } - if (!db_get_ws(NULL, PLUGINNAME, "LNFilterSubject", &dbv)) { + if (!db_get_ws(NULL, MODULENAME, "LNFilterSubject", &dbv)) { wcsncpy_s(settingFilterSubject, dbv.ptszVal, _TRUNCATE); db_free(&dbv); } - if (!db_get_ws(NULL, PLUGINNAME, "LNFilterTo", &dbv)) { + if (!db_get_ws(NULL, MODULENAME, "LNFilterTo", &dbv)) { wcsncpy_s(settingFilterTo, dbv.ptszVal, _TRUNCATE); db_free(&dbv); } - settingOnceOnly = db_get_b(NULL, PLUGINNAME, "LNOnceOnly", 0); + settingOnceOnly = db_get_b(NULL, MODULENAME, "LNOnceOnly", 0); - settingNonClickedOnly = db_get_b(NULL, PLUGINNAME, "LNNonClickedOnly", 1); - settingShowError = db_get_b(NULL, PLUGINNAME, "LNShowError", 1); - settingSetColours = db_get_b(NULL, PLUGINNAME, "LNSetColours", 0); - settingBgColor = (COLORREF)db_get_dw(NULL, PLUGINNAME, "LNBgColor", (DWORD)0xFFFFFF); - settingFgColor = (COLORREF)db_get_dw(NULL, PLUGINNAME, "LNFgColor", (DWORD)0x000000); - settingNewest = db_get_b(NULL, PLUGINNAME, "LNNewest", 0); - settingEvenNonClicked = db_get_b(NULL, PLUGINNAME, "LNEvenNonClicked", 0); - settingNewestID = (DWORD)db_get_dw(NULL, PLUGINNAME, "LNNewestID", 0); - settingIniAnswer = db_get_b(NULL, PLUGINNAME, "LNIniAnswer", 0); - settingIniCheck = db_get_b(NULL, PLUGINNAME, "LNIniCheck", 0); + settingNonClickedOnly = db_get_b(NULL, MODULENAME, "LNNonClickedOnly", 1); + settingShowError = db_get_b(NULL, MODULENAME, "LNShowError", 1); + settingSetColours = db_get_b(NULL, MODULENAME, "LNSetColours", 0); + settingBgColor = (COLORREF)db_get_dw(NULL, MODULENAME, "LNBgColor", (DWORD)0xFFFFFF); + settingFgColor = (COLORREF)db_get_dw(NULL, MODULENAME, "LNFgColor", (DWORD)0x000000); + settingNewest = db_get_b(NULL, MODULENAME, "LNNewest", 0); + settingEvenNonClicked = db_get_b(NULL, MODULENAME, "LNEvenNonClicked", 0); + settingNewestID = (DWORD)db_get_dw(NULL, MODULENAME, "LNNewestID", 0); + settingIniAnswer = db_get_b(NULL, MODULENAME, "LNIniAnswer", 0); + settingIniCheck = db_get_b(NULL, MODULENAME, "LNIniCheck", 0); for (int i = 0; i < STATUS_COUNT; i++) { char buff[128]; mir_snprintf(buff, "LNStatus%d", i); - settingStatus[i] = (db_get_b(0, PLUGINNAME, buff, 0) == 1); + settingStatus[i] = (db_get_b(0, MODULENAME, buff, 0) == 1); } //lookupLotusDefaultSettings(); } @@ -1035,30 +1041,30 @@ static void SaveSettings(HWND hwndDlg) { char buff[128]; GetDlgItemTextA(hwndDlg, IDC_SERVER, settingServer, _countof(settingServer)); - db_set_s(NULL, PLUGINNAME, "LNServer", settingServer); - db_set_s(NULL, PLUGINNAME, "LNServerSec", settingServerSec); - db_set_s(NULL, PLUGINNAME, "LNPassword", settingPassword); - db_set_s(NULL, PLUGINNAME, "LNDatabase", settingDatabase); - db_set_dw(NULL, PLUGINNAME, "LNInterval", settingInterval); - db_set_dw(NULL, PLUGINNAME, "LNInterval1", settingInterval1); - db_set_b(NULL, PLUGINNAME, "LNKeepConnection", settingKeepConnection); - db_set_s(NULL, PLUGINNAME, "LNCommand", settingCommand); - db_set_s(NULL, PLUGINNAME, "LNParameters", settingParameters); - db_set_b(NULL, PLUGINNAME, "LNOnceOnly", settingOnceOnly); - db_set_b(NULL, PLUGINNAME, "LNNonClickedOnly", settingNonClickedOnly); - db_set_b(NULL, PLUGINNAME, "LNShowError", settingShowError); - db_set_b(NULL, PLUGINNAME, "LNSetColours", settingSetColours); - db_set_dw(NULL, PLUGINNAME, "LNBgColor", (DWORD)settingBgColor); - db_set_dw(NULL, PLUGINNAME, "LNFgColor", (DWORD)settingFgColor); - db_set_b(NULL, PLUGINNAME, "LNNewest", settingNewest); - db_set_b(NULL, PLUGINNAME, "LNEvenNonClicked", settingEvenNonClicked); - db_set_b(NULL, PLUGINNAME, "LNIniCheck", settingIniCheck); - db_set_b(NULL, PLUGINNAME, "LNIniAnswer", settingIniAnswer); + db_set_s(NULL, MODULENAME, "LNServer", settingServer); + db_set_s(NULL, MODULENAME, "LNServerSec", settingServerSec); + db_set_s(NULL, MODULENAME, "LNPassword", settingPassword); + db_set_s(NULL, MODULENAME, "LNDatabase", settingDatabase); + db_set_dw(NULL, MODULENAME, "LNInterval", settingInterval); + db_set_dw(NULL, MODULENAME, "LNInterval1", settingInterval1); + db_set_b(NULL, MODULENAME, "LNKeepConnection", settingKeepConnection); + db_set_s(NULL, MODULENAME, "LNCommand", settingCommand); + db_set_s(NULL, MODULENAME, "LNParameters", settingParameters); + db_set_b(NULL, MODULENAME, "LNOnceOnly", settingOnceOnly); + db_set_b(NULL, MODULENAME, "LNNonClickedOnly", settingNonClickedOnly); + db_set_b(NULL, MODULENAME, "LNShowError", settingShowError); + db_set_b(NULL, MODULENAME, "LNSetColours", settingSetColours); + db_set_dw(NULL, MODULENAME, "LNBgColor", (DWORD)settingBgColor); + db_set_dw(NULL, MODULENAME, "LNFgColor", (DWORD)settingFgColor); + db_set_b(NULL, MODULENAME, "LNNewest", settingNewest); + db_set_b(NULL, MODULENAME, "LNEvenNonClicked", settingEvenNonClicked); + db_set_b(NULL, MODULENAME, "LNIniCheck", settingIniCheck); + db_set_b(NULL, MODULENAME, "LNIniAnswer", settingIniAnswer); for (int i = 0; i < STATUS_COUNT; i++) { mir_snprintf(buff, "LNStatus%d", i); settingStatus[i] = (ListView_GetCheckState(GetDlgItem(hwndDlg, IDC_STATUS), i) ? TRUE : FALSE); - db_set_b(0, PLUGINNAME, buff, settingStatus[i] ? 1 : 0); + db_set_b(0, MODULENAME, buff, settingStatus[i] ? 1 : 0); } settingFilterSender[0] = 0; @@ -1068,7 +1074,7 @@ static void SaveSettings(HWND hwndDlg) wcscat_s(settingFilterSender, _countof(settingFilterSender), text); wcscat_s(settingFilterSender, _countof(settingFilterSender), TEXT(";")); } - db_set_ws(NULL, PLUGINNAME, "LNFilterSender", settingFilterSender); + db_set_ws(NULL, MODULENAME, "LNFilterSender", settingFilterSender); settingFilterSubject[0] = 0; for (int i = 0; i < SendDlgItemMessage(hwndDlg, IDC_FILTER_SUBJECT, CB_GETCOUNT, 0, 0); i++) { @@ -1077,7 +1083,7 @@ static void SaveSettings(HWND hwndDlg) wcscat_s(settingFilterSubject, _countof(settingFilterSubject), text); wcscat_s(settingFilterSubject, _countof(settingFilterSubject), TEXT(";")); } - db_set_ws(NULL, PLUGINNAME, "LNFilterSubject", settingFilterSubject); + db_set_ws(NULL, MODULENAME, "LNFilterSubject", settingFilterSubject); settingFilterTo[0] = 0; for (int i = 0; i < SendDlgItemMessage(hwndDlg, IDC_FILTER_TO, CB_GETCOUNT, 0, 0); i++) { @@ -1086,7 +1092,7 @@ static void SaveSettings(HWND hwndDlg) wcscat_s(settingFilterTo, _countof(settingFilterTo), text); wcscat_s(settingFilterTo, _countof(settingFilterTo), TEXT(";")); } - db_set_ws(NULL, PLUGINNAME, "LNFilterTo", settingFilterTo); + db_set_ws(NULL, MODULENAME, "LNFilterTo", settingFilterTo); } //callback function to speak with user interactions in options page @@ -1505,7 +1511,7 @@ INT_PTR GetCaps(WPARAM wParam, LPARAM) //gives name to protocol module INT_PTR GetName(WPARAM wParam, LPARAM lParam) { - strncpy((char*)lParam, PLUGINNAME, wParam); + strncpy((char*)lParam, MODULENAME, wParam); return 0; } @@ -1554,7 +1560,7 @@ INT_PTR SetStatus(WPARAM wParam, LPARAM lParam) Menu_EnableItem(hMenuHandle, TRUE); } else { - ProtoBroadcastAck(PLUGINNAME, NULL, ACKTYPE_STATUS, ACKRESULT_FAILED, (HANDLE)currentStatus, wParam); + ProtoBroadcastAck(MODULENAME, NULL, ACKTYPE_STATUS, ACKRESULT_FAILED, (HANDLE)currentStatus, wParam); return -1; } } @@ -1572,7 +1578,7 @@ INT_PTR SetStatus(WPARAM wParam, LPARAM lParam) } //broadcast the message if (currentStatus != (int)wParam) - ProtoBroadcastAck(PLUGINNAME, NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)currentStatus, wParam); + ProtoBroadcastAck(MODULENAME, NULL, ACKTYPE_STATUS, ACKRESULT_SUCCESS, (HANDLE)currentStatus, wParam); currentStatus = wParam; return 0; @@ -1677,7 +1683,7 @@ static int preshutdown(WPARAM, LPARAM) extern "C" int __declspec(dllexport) Load(void) { - mir_getLP(&pluginInfo); + mir_getLP(&pluginInfoEx); pcli = Clist_GetInterface(); Plugin_Terminated = false; @@ -1697,7 +1703,7 @@ extern "C" int __declspec(dllexport) Load(void) init_pluginname(); logRegister(); - log_p(L"Load: Entering LotusNotify.dll Load() bMirandaCall=%d PLUGINNAME=[%S]", bMirandaCall, PLUGINNAME); + log_p(L"Load: Entering LotusNotify.dll Load() bMirandaCall=%d MODULENAME=[%S]", bMirandaCall, MODULENAME); if (!(hCheckEvent = CreateHookableEvent("LotusNotify/Check"))) //check if there is another copy of plugin running second = TRUE; @@ -1722,14 +1728,14 @@ extern "C" int __declspec(dllexport) Load(void) } // set all contacts to offline - for (auto &hContact : Contacts(PLUGINNAME)) - db_set_w(hContact, PLUGINNAME, "status", ID_STATUS_OFFLINE); - - CreateProtoServiceFunction(PLUGINNAME, PS_GETCAPS, GetCaps); - CreateProtoServiceFunction(PLUGINNAME, PS_GETNAME, GetName); - CreateProtoServiceFunction(PLUGINNAME, PS_LOADICON, TMLoadIcon); - CreateProtoServiceFunction(PLUGINNAME, PS_SETSTATUS, SetStatus); - CreateProtoServiceFunction(PLUGINNAME, PS_GETSTATUS, GetStatus); + for (auto &hContact : Contacts(MODULENAME)) + db_set_w(hContact, MODULENAME, "status", ID_STATUS_OFFLINE); + + CreateProtoServiceFunction(MODULENAME, PS_GETCAPS, GetCaps); + CreateProtoServiceFunction(MODULENAME, PS_GETNAME, GetName); + CreateProtoServiceFunction(MODULENAME, PS_LOADICON, TMLoadIcon); + CreateProtoServiceFunction(MODULENAME, PS_SETSTATUS, SetStatus); + CreateProtoServiceFunction(MODULENAME, PS_GETSTATUS, GetStatus); LoadSettings(); //read from db to variables diff --git a/plugins/LotusNotify/src/LotusNotify.h b/plugins/LotusNotify/src/LotusNotify.h index 49b0ca4e99..e776381aba 100644 --- a/plugins/LotusNotify/src/LotusNotify.h +++ b/plugins/LotusNotify/src/LotusNotify.h @@ -30,9 +30,5 @@ void checkthread(void*); struct CMPlugin : public PLUGIN { - CMPlugin() : - PLUGIN(PLUGINNAME) - { - RegisterProtocol(PROTOTYPE_PROTOCOL); - } + CMPlugin(); }; diff --git a/plugins/LotusNotify/src/debug.cpp b/plugins/LotusNotify/src/debug.cpp index c29996f0b5..91baeb82e5 100644 --- a/plugins/LotusNotify/src/debug.cpp +++ b/plugins/LotusNotify/src/debug.cpp @@ -7,8 +7,8 @@ void logRegister(){ // Register netlib user for logging function NETLIBUSER nlu = {}; nlu.flags = NUF_UNICODE | NUF_NOOPTIONS; - nlu.szSettingsModule = PLUGINNAME; - nlu.szDescriptiveName.w = mir_a2u(PLUGINNAME); + nlu.szSettingsModule = MODULENAME; + nlu.szDescriptiveName.w = mir_a2u(MODULENAME); netlibHandle = Netlib_RegisterUser(&nlu); } diff --git a/plugins/LotusNotify/src/debug.h b/plugins/LotusNotify/src/debug.h index 556efcd77b..736238bda4 100644 --- a/plugins/LotusNotify/src/debug.h +++ b/plugins/LotusNotify/src/debug.h @@ -1,6 +1,6 @@ #pragma once -extern char PLUGINNAME[]; +extern char MODULENAME[]; void logRegister(void); void logUnregister(void); -- cgit v1.2.3