From 9cf1444eb7888f2d942d220f938aa893396a8a1b Mon Sep 17 00:00:00 2001 From: George Hazan <ghazan@miranda.im> Date: Wed, 18 Apr 2018 20:51:18 +0300 Subject: g_hInstance incapulated into PLUGIN<>, no need in the separate variable --- protocols/MSN/src/msn.cpp | 42 ++++++++++++++++++----------------------- protocols/MSN/src/msn_auth.cpp | 6 +++--- protocols/MSN/src/msn_chat.cpp | 4 ++-- protocols/MSN/src/msn_links.cpp | 2 +- protocols/MSN/src/msn_lists.cpp | 2 +- protocols/MSN/src/msn_menu.cpp | 2 +- protocols/MSN/src/msn_opts.cpp | 6 +++--- protocols/MSN/src/msn_proto.h | 1 + protocols/MSN/src/msn_svcs.cpp | 4 ++-- protocols/MSN/src/stdafx.h | 1 - 10 files changed, 32 insertions(+), 38 deletions(-) (limited to 'protocols/MSN') diff --git a/protocols/MSN/src/msn.cpp b/protocols/MSN/src/msn.cpp index fe24b511e2..703df9323c 100644 --- a/protocols/MSN/src/msn.cpp +++ b/protocols/MSN/src/msn.cpp @@ -24,9 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "msn_proto.h" #include "version.h" -CMPlugin g_plugin; CLIST_INTERFACE *pcli; -HINSTANCE g_hInstance; int hLangpack; ///////////////////////////////////////////////////////////////////////////////////////// @@ -55,33 +53,36 @@ static const PLUGININFOEX pluginInfo = {0x97724af9, 0xf3fb, 0x47d3, {0xa3, 0xbf, 0xea, 0xa9, 0x35, 0xc7, 0x4e, 0x6d}} }; -// Protocol instances -static int sttCompareProtocols(const CMsnProto *p1, const CMsnProto *p2) +extern "C" __declspec(dllexport) const PLUGININFOEX* MirandaPluginInfoEx(DWORD) { - return mir_wstrcmp(p1->m_tszUserName, p2->m_tszUserName); + return &pluginInfo; } -// Main DLL function -extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID) -{ - if (fdwReason == DLL_PROCESS_ATTACH) { - g_hInstance = hinstDLL; - DisableThreadLibraryCalls(hinstDLL); - } - return TRUE; -} +///////////////////////////////////////////////////////////////////////////////////////// +// MirandaInterfaces - returns the protocol interface to the core +extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = { MIID_PROTOCOL, MIID_LAST }; + +///////////////////////////////////////////////////////////////////////////////////////// + +CMPlugin g_plugin; + +extern "C" _pfnCrtInit _pRawDllMain = &CMPlugin::RawDllMain; + +///////////////////////////////////////////////////////////////////////////////////////// // OnModulesLoaded - finalizes plugin's configuration on load + static int OnModulesLoaded(WPARAM, LPARAM) { avsPresent = ServiceExists(MS_AV_SETMYAVATARW) != 0; MsnLinks_Init(); - return 0; } +///////////////////////////////////////////////////////////////////////////////////////// // Performs a primary set of actions upon plugin loading + extern "C" int __declspec(dllexport) Load(void) { mir_getLP(&pluginInfo); @@ -94,19 +95,12 @@ extern "C" int __declspec(dllexport) Load(void) return 0; } +///////////////////////////////////////////////////////////////////////////////////////// // Unload a plugin + extern "C" int __declspec(dllexport) Unload(void) { MSN_RemoveContactMenus(); MsnLinks_Destroy(); return 0; } - -// MirandaPluginInfoEx - returns an information about a plugin -extern "C" __declspec(dllexport) const PLUGININFOEX* MirandaPluginInfoEx(DWORD) -{ - return &pluginInfo; -} - -// MirandaInterfaces - returns the protocol interface to the core -extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = { MIID_PROTOCOL, MIID_LAST }; diff --git a/protocols/MSN/src/msn_auth.cpp b/protocols/MSN/src/msn_auth.cpp index db67f3cbb1..135ffaf6c1 100644 --- a/protocols/MSN/src/msn_auth.cpp +++ b/protocols/MSN/src/msn_auth.cpp @@ -886,14 +886,14 @@ void __cdecl CMsnProto::msn_IEAuthThread(void *pParam) wc.cbSize = sizeof(WNDCLASSEX); wc.cbWndExtra = sizeof(void*); - wc.hInstance = g_hInstance; + wc.hInstance = g_plugin.getInst(); wc.lpfnWndProc = AuthWindowProc; wc.lpszClassName = ClassName; RegisterClassEx(&wc); if ((hWnd = CreateWindowEx(0, ClassName, L"MSN Login", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, - HWND_DESKTOP, nullptr, g_hInstance, pParam))) { + HWND_DESKTOP, nullptr, g_plugin.getInst(), pParam))) { ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd); @@ -903,7 +903,7 @@ void __cdecl CMsnProto::msn_IEAuthThread(void *pParam) } } - UnregisterClass(ClassName, g_hInstance); + UnregisterClass(ClassName, g_plugin.getInst()); CoUninitialize(); } diff --git a/protocols/MSN/src/msn_chat.cpp b/protocols/MSN/src/msn_chat.cpp index a10a43a2d6..61397d677b 100644 --- a/protocols/MSN/src/msn_chat.cpp +++ b/protocols/MSN/src/msn_chat.cpp @@ -495,7 +495,7 @@ int CMsnProto::MSN_GCEventHook(WPARAM, LPARAM lParam) break; case GC_USER_CHANMGR: - DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_CHATROOM_INVITE), nullptr, DlgInviteToChat, + DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_CHATROOM_INVITE), nullptr, DlgInviteToChat, LPARAM(new InviteChatParam(gch->ptszID, NULL, this))); break; @@ -506,7 +506,7 @@ int CMsnProto::MSN_GCEventHook(WPARAM, LPARAM lParam) case GC_USER_LOGMENU: switch (gch->dwData) { case 10: - DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_CHATROOM_INVITE), nullptr, DlgInviteToChat, + DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_CHATROOM_INVITE), nullptr, DlgInviteToChat, LPARAM(new InviteChatParam(gch->ptszID, NULL, this))); break; diff --git a/protocols/MSN/src/msn_links.cpp b/protocols/MSN/src/msn_links.cpp index 16345a3b49..0235544138 100644 --- a/protocols/MSN/src/msn_links.cpp +++ b/protocols/MSN/src/msn_links.cpp @@ -135,7 +135,7 @@ void MsnLinks_Init(void) static const char szService[] = "MSN/ParseMsnimLink"; CreateServiceFunction(szService, ServiceParseMsnimLink); - AssocMgr_AddNewUrlTypeW("msnim:", TranslateT("MSN Link Protocol"), g_hInstance, IDI_MSN, szService, 0); + AssocMgr_AddNewUrlTypeW("msnim:", TranslateT("MSN Link Protocol"), g_plugin.getInst(), IDI_MSN, szService, 0); } void MsnLinks_Destroy(void) diff --git a/protocols/MSN/src/msn_lists.cpp b/protocols/MSN/src/msn_lists.cpp index 6823338996..490a089a5d 100644 --- a/protocols/MSN/src/msn_lists.cpp +++ b/protocols/MSN/src/msn_lists.cpp @@ -397,7 +397,7 @@ static void SaveListItem(MCONTACT hContact, const char* szEmail, int list, int i if (iNewValue == 0) { if (list & LIST_FL) { DeleteParam param = { proto, hContact }; - DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_DELETECONTACT), nullptr, DlgDeleteContactUI, (LPARAM)¶m); + DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DELETECONTACT), nullptr, DlgDeleteContactUI, (LPARAM)¶m); return; } diff --git a/protocols/MSN/src/msn_menu.cpp b/protocols/MSN/src/msn_menu.cpp index 161258a4b7..43b1edfe27 100644 --- a/protocols/MSN/src/msn_menu.cpp +++ b/protocols/MSN/src/msn_menu.cpp @@ -100,7 +100,7 @@ INT_PTR CMsnProto::MsnEditProfile(WPARAM, LPARAM) // MsnInviteCommand - invite command callback function INT_PTR CMsnProto::MsnInviteCommand(WPARAM, LPARAM) { - DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_CHATROOM_INVITE), nullptr, DlgInviteToChat, + DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_CHATROOM_INVITE), nullptr, DlgInviteToChat, LPARAM(new InviteChatParam(nullptr, NULL, this))); return 0; } diff --git a/protocols/MSN/src/msn_opts.cpp b/protocols/MSN/src/msn_opts.cpp index 77b042b0c4..32b3c54cdc 100644 --- a/protocols/MSN/src/msn_opts.cpp +++ b/protocols/MSN/src/msn_opts.cpp @@ -47,7 +47,7 @@ static IconItem iconList[] = void MsnInitIcons(void) { - Icon_Register(g_hInstance, "Protocols/MSN", iconList, _countof(iconList), "MSN"); + Icon_Register(g_plugin.getInst(), "Protocols/MSN", iconList, _countof(iconList), "MSN"); } HICON LoadIconEx(const char* name, bool big) @@ -593,7 +593,7 @@ int CMsnProto::OnOptionsInit(WPARAM wParam, LPARAM) { OPTIONSDIALOGPAGE odp = { 0 }; odp.position = -790000000; - odp.hInstance = g_hInstance; + odp.hInstance = g_plugin.getInst(); odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_MSN); odp.szTitle.w = m_tszUserName; odp.szGroup.w = LPGENW("Network"); @@ -623,7 +623,7 @@ int CMsnProto::OnOptionsInit(WPARAM wParam, LPARAM) INT_PTR CMsnProto::SvcCreateAccMgrUI(WPARAM, LPARAM lParam) { - return (INT_PTR)CreateDialogParam(g_hInstance, MAKEINTRESOURCE(IDD_ACCMGRUI), + return (INT_PTR)CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_ACCMGRUI), (HWND)lParam, DlgProcAccMgrUI, (LPARAM)this); } diff --git a/protocols/MSN/src/msn_proto.h b/protocols/MSN/src/msn_proto.h index 3f9af6c5d3..e8a327452b 100644 --- a/protocols/MSN/src/msn_proto.h +++ b/protocols/MSN/src/msn_proto.h @@ -497,6 +497,7 @@ struct CMPlugin : public ACCPROTOPLUGIN<CMsnProto> CMPlugin() : ACCPROTOPLUGIN<CMsnProto>("MSN") { + ::DisableThreadLibraryCalls(m_hInst); SetUniqueId("wlid"); } }; diff --git a/protocols/MSN/src/msn_svcs.cpp b/protocols/MSN/src/msn_svcs.cpp index 2e50f2548f..657aa54881 100644 --- a/protocols/MSN/src/msn_svcs.cpp +++ b/protocols/MSN/src/msn_svcs.cpp @@ -267,7 +267,7 @@ int CMsnProto::OnContactDeleted(WPARAM hContact, LPARAM) if (Lists_IsInList(LIST_FL, szEmail)) { DeleteParam param = { this, MCONTACT(hContact) }; - DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_DELETECONTACT), nullptr, DlgDeleteContactUI, (LPARAM)¶m); + DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DELETECONTACT), nullptr, DlgDeleteContactUI, (LPARAM)¶m); MsnContact *msc = Lists_Get(szEmail); if (msc) @@ -406,7 +406,7 @@ int CMsnProto::OnWindowPopup(WPARAM, LPARAM lParam) case MSG_WINDOWPOPUP_SELECTED: if (mwpd->selection == 13465) - DialogBoxParam(g_hInstance, MAKEINTRESOURCE(IDD_CHATROOM_INVITE), nullptr, DlgInviteToChat, LPARAM(new InviteChatParam(nullptr, mwpd->hContact, this))); + DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_CHATROOM_INVITE), nullptr, DlgInviteToChat, LPARAM(new InviteChatParam(nullptr, mwpd->hContact, this))); break; } diff --git a/protocols/MSN/src/stdafx.h b/protocols/MSN/src/stdafx.h index 48fd351dfc..f996fcdecc 100644 --- a/protocols/MSN/src/stdafx.h +++ b/protocols/MSN/src/stdafx.h @@ -919,7 +919,6 @@ const char msnStoreAppId[] = "Skype"; const char msnProductVer[] = "0/6.16.0.105/259/"; const char msnProtID[] = "MSNP24"; -extern HINSTANCE g_hInstance; extern bool g_bTerminated; /////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3