From b172c4bbc75cdad0e8ccd22292aa671ba43cac45 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 18 Apr 2018 18:14:33 +0300 Subject: PLUGIN<> to half-automatically calculate the dll's g_hInstance and pass it inside --- protocols/IRCG/src/main.cpp | 8 ++------ protocols/IRCG/src/options.cpp | 4 ++-- protocols/IRCG/src/stdafx.h | 2 +- protocols/IRCG/src/userinfo.cpp | 2 +- 4 files changed, 6 insertions(+), 10 deletions(-) (limited to 'protocols/IRCG/src') diff --git a/protocols/IRCG/src/main.cpp b/protocols/IRCG/src/main.cpp index 1dd78c6e77..8b4c3597ad 100644 --- a/protocols/IRCG/src/main.cpp +++ b/protocols/IRCG/src/main.cpp @@ -25,7 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. CMPlugin g_plugin; CHAT_MANAGER *pci; CLIST_INTERFACE *pcli; -HINSTANCE hInst = nullptr; +HINSTANCE g_hInstance; int hLangpack; @@ -52,11 +52,7 @@ PLUGININFOEX pluginInfo = {0x92382b4d, 0x5572, 0x48a0, {0xb0, 0xb9, 0x13, 0x36, 0xa6, 0x1, 0xd6, 0x89}} // {92382B4D-5572-48a0-B0B9-1336A601D689} }; -extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD, LPVOID) -{ - hInst = hinstDLL; - return TRUE; -} +extern "C" _pfnCrtInit _pRawDllMain = &CMPlugin::RawDllMain; extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD) { diff --git a/protocols/IRCG/src/options.cpp b/protocols/IRCG/src/options.cpp index 33a1bc7030..344999e511 100644 --- a/protocols/IRCG/src/options.cpp +++ b/protocols/IRCG/src/options.cpp @@ -204,7 +204,7 @@ static IconItem iconList[] = void InitIcons(void) { - Icon_Register(hInst, "Protocols/IRC", iconList, _countof(iconList), "IRC"); + Icon_Register(g_hInstance, "Protocols/IRC", iconList, _countof(iconList), "IRC"); } HICON LoadIconEx(int iconId, bool big) @@ -1848,7 +1848,7 @@ void InitServers() wchar_t *szIniFile = Utils_ReplaceVarsW(L"%temp%\\default_servers.ini"); FILE *serverFile = _wfopen(szIniFile, L"a"); if (serverFile) { - char* pszSvrs = (char*)LockResource(LoadResource(hInst, FindResource(hInst, MAKEINTRESOURCE(IDR_SERVERS), L"TEXT"))); + char* pszSvrs = (char*)LockResource(LoadResource(g_hInstance, FindResource(g_hInstance, MAKEINTRESOURCE(IDR_SERVERS), L"TEXT"))); if (pszSvrs) fwrite(pszSvrs, 1, mir_strlen(pszSvrs) + 1, serverFile); fclose(serverFile); diff --git a/protocols/IRCG/src/stdafx.h b/protocols/IRCG/src/stdafx.h index 61e086bb1e..896d6a6097 100644 --- a/protocols/IRCG/src/stdafx.h +++ b/protocols/IRCG/src/stdafx.h @@ -200,7 +200,7 @@ using namespace irc; // Functions // main.cpp -extern HINSTANCE hInst; +extern HINSTANCE g_hInstance; extern OBJLIST g_servers; diff --git a/protocols/IRCG/src/userinfo.cpp b/protocols/IRCG/src/userinfo.cpp index faa5809241..c04c7036a9 100644 --- a/protocols/IRCG/src/userinfo.cpp +++ b/protocols/IRCG/src/userinfo.cpp @@ -212,7 +212,7 @@ int __cdecl CIrcProto::OnInitUserInfo(WPARAM wParam, LPARAM lParam) odp.flags = ODPF_DONTTRANSLATE; odp.szTitle.a = m_szModuleName; odp.dwInitParam = (LPARAM)this; - odp.hInstance = hInst; + odp.hInstance = g_hInstance; odp.position = -1900000000; odp.pfnDlgProc = UserDetailsDlgProc; odp.pszTemplate = MAKEINTRESOURCEA(IDD_USERINFO); -- cgit v1.2.3