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

---
 plugins/Weather/src/stdafx.h             | 15 ++++++++++++++-
 plugins/Weather/src/weather.cpp          | 25 +++++++------------------
 plugins/Weather/src/weather_addstn.cpp   |  2 +-
 plugins/Weather/src/weather_contacts.cpp |  2 +-
 plugins/Weather/src/weather_icons.cpp    |  2 +-
 plugins/Weather/src/weather_ini.cpp      |  2 +-
 plugins/Weather/src/weather_mwin.cpp     |  8 ++++----
 plugins/Weather/src/weather_opt.cpp      |  6 +++---
 plugins/Weather/src/weather_popup.cpp    | 10 +++++-----
 plugins/Weather/src/weather_userinfo.cpp |  8 ++++----
 10 files changed, 41 insertions(+), 39 deletions(-)

(limited to 'plugins/Weather/src')

diff --git a/plugins/Weather/src/stdafx.h b/plugins/Weather/src/stdafx.h
index a6e0354d14..26c46861ea 100644
--- a/plugins/Weather/src/stdafx.h
+++ b/plugins/Weather/src/stdafx.h
@@ -351,7 +351,6 @@ typedef struct DATALIST WIDATALIST;
 
 extern WIDATALIST *WIHead, *WITail;
 
-extern HINSTANCE g_hInstance;
 extern HWND hPopupWindow, hWndSetup;
 
 extern MYOPTIONS opt;
@@ -518,3 +517,17 @@ void InitIcons(void);
 HICON  LoadIconEx(const char* name, bool big);
 HANDLE GetIconHandle(const char* name);
 void   ReleaseIconEx(HICON hIcon);
+
+//============  Plugin Class ============
+
+struct CMPlugin : public PLUGIN<CMPlugin>
+{
+	CMPlugin() :
+		PLUGIN<CMPlugin>(WEATHERPROTONAME)
+	{
+		opt.NoProtoCondition = db_get_b(NULL, WEATHERPROTONAME, "NoStatus", true);
+		RegisterProtocol((opt.NoProtoCondition) ? PROTOTYPE_VIRTUAL : PROTOTYPE_PROTOCOL);
+		SetUniqueId("ID");
+	}
+};
+
diff --git a/plugins/Weather/src/weather.cpp b/plugins/Weather/src/weather.cpp
index afa14ccf0c..55c5b92c25 100644
--- a/plugins/Weather/src/weather.cpp
+++ b/plugins/Weather/src/weather.cpp
@@ -31,7 +31,6 @@ belong to any other file.
 WIDATALIST *WIHead;
 WIDATALIST *WITail;
 
-HINSTANCE g_hInstance;
 HWND hPopupWindow;
 
 HANDLE hHookWeatherUpdated;
@@ -58,6 +57,12 @@ BOOL ModuleLoaded;
 
 HANDLE hTBButton = nullptr;
 
+/////////////////////////////////////////////////////////////////////////////////////////
+
+CMPlugin	g_plugin;
+
+extern "C" _pfnCrtInit _pRawDllMain = &CMPlugin::RawDllMain;
+
 /////////////////////////////////////////////////////////////////////////////////////////
 // plugin info
 
@@ -204,7 +209,7 @@ extern "C" int __declspec(dllexport) Load(void)
 	wchar_t SvcFunc[100];
 	mir_snwprintf(SvcFunc, L"%s__PopupWindow", _A2W(WEATHERPROTONAME));
 	hPopupWindow = CreateWindowEx(WS_EX_TOOLWINDOW, L"static", SvcFunc, 0, CW_USEDEFAULT, CW_USEDEFAULT,
-		CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, nullptr, g_hInstance, nullptr);
+		CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, nullptr, g_plugin.getInst(), nullptr);
 	SetWindowLongPtr(hPopupWindow, GWLP_WNDPROC, (LONG_PTR)PopupWndProc);
 	return 0;
 }
@@ -233,19 +238,3 @@ extern "C" int __declspec(dllexport) Unload(void)
 	CloseHandle(hUpdateMutex);
 	return 0;
 }
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-struct CMPlugin : public PLUGIN<CMPlugin>
-{
-	CMPlugin() :
-		PLUGIN<CMPlugin>(WEATHERPROTONAME)
-	{
-		opt.NoProtoCondition = db_get_b(NULL, WEATHERPROTONAME, "NoStatus", true);
-		RegisterProtocol((opt.NoProtoCondition) ? PROTOTYPE_VIRTUAL : PROTOTYPE_PROTOCOL);
-		SetUniqueId("ID");
-	}
-}
-	g_plugin;
-
-extern "C" _pfnCrtInit _pRawDllMain = &CMPlugin::RawDllMain;
diff --git a/plugins/Weather/src/weather_addstn.cpp b/plugins/Weather/src/weather_addstn.cpp
index 87a9374cbd..45afe6cfcd 100644
--- a/plugins/Weather/src/weather_addstn.cpp
+++ b/plugins/Weather/src/weather_addstn.cpp
@@ -200,7 +200,7 @@ INT_PTR WeatherCreateAdvancedSearchUI(WPARAM, LPARAM lParam)
 {
 	HWND parent = (HWND)lParam;
 	if (parent)
-		return (INT_PTR)CreateDialogParam(g_hInstance, MAKEINTRESOURCE(IDD_SEARCHCITY), parent, WeatherSearchAdvancedDlgProc, 0);
+		return (INT_PTR)CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_SEARCHCITY), parent, WeatherSearchAdvancedDlgProc, 0);
 
 	return 0;
 }
diff --git a/plugins/Weather/src/weather_contacts.cpp b/plugins/Weather/src/weather_contacts.cpp
index e685f3d4de..2348e9b69b 100644
--- a/plugins/Weather/src/weather_contacts.cpp
+++ b/plugins/Weather/src/weather_contacts.cpp
@@ -418,7 +418,7 @@ INT_PTR EditSettings(WPARAM wParam, LPARAM)
 	else {
 		// if the dialog box is not opened, open a new one
 		if (IsMyContact(wParam))
-			CreateDialogParam(g_hInstance, MAKEINTRESOURCE(IDD_EDIT), nullptr, DlgProcChange, (LPARAM)wParam);
+			CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_EDIT), nullptr, DlgProcChange, (LPARAM)wParam);
 	}
 
 	return 0;
diff --git a/plugins/Weather/src/weather_icons.cpp b/plugins/Weather/src/weather_icons.cpp
index de876f00c1..cb11cd0232 100644
--- a/plugins/Weather/src/weather_icons.cpp
+++ b/plugins/Weather/src/weather_icons.cpp
@@ -39,7 +39,7 @@ static IconItem iconList[] =
 
 void InitIcons(void)
 {
-	Icon_Register(g_hInstance, WEATHERPROTONAME, iconList, _countof(iconList), WEATHERPROTONAME);
+	Icon_Register(g_plugin.getInst(), WEATHERPROTONAME, iconList, _countof(iconList), WEATHERPROTONAME);
 }
 
 HICON LoadIconEx(const char* name, bool big)
diff --git a/plugins/Weather/src/weather_ini.cpp b/plugins/Weather/src/weather_ini.cpp
index 7e79387f55..994f80ce11 100644
--- a/plugins/Weather/src/weather_ini.cpp
+++ b/plugins/Weather/src/weather_ini.cpp
@@ -518,7 +518,7 @@ bool LoadWIData(bool dial)
 	if (WIHead == nullptr) {
 		// no ini found, display an error message box.
 		if (dial)
-			hWndSetup = CreateDialog(g_hInstance, MAKEINTRESOURCE(IDD_SETUP), nullptr, DlgProcSetup);
+			hWndSetup = CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_SETUP), nullptr, DlgProcSetup);
 		else
 			MessageBox(nullptr,
 				TranslateT("No update data file is found. Please check your Plugins\\Weather directory."),
diff --git a/plugins/Weather/src/weather_mwin.cpp b/plugins/Weather/src/weather_mwin.cpp
index 0775bcfff6..5b0eeee3d7 100644
--- a/plugins/Weather/src/weather_mwin.cpp
+++ b/plugins/Weather/src/weather_mwin.cpp
@@ -48,7 +48,7 @@ static LRESULT CALLBACK wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara
 
 		data->hContact = (DWORD_PTR)((LPCREATESTRUCT)lParam)->lpCreateParams;
 		data->hAvt = CreateWindow(AVATAR_CONTROL_CLASS, TEXT(""), WS_CHILD,
-			0, 0, opt.AvatarSize, opt.AvatarSize, hwnd, nullptr, g_hInstance, nullptr);
+			0, 0, opt.AvatarSize, opt.AvatarSize, hwnd, nullptr, g_plugin.getInst(), nullptr);
 		if (data->hAvt) SendMessage(data->hAvt, AVATAR_SETCONTACT, 0, (LPARAM)data->hContact);
 		break;
 
@@ -238,7 +238,7 @@ static void addWindow(MCONTACT hContact)
 	db_free(&dbv);
 
 	HWND hWnd = CreateWindow(L"WeatherFrame", L"", WS_CHILD | WS_VISIBLE,
-		0, 0, 10, 10, pcli->hwndContactList, nullptr, g_hInstance, (void*)hContact);
+		0, 0, 10, 10, pcli->hwndContactList, nullptr, g_plugin.getInst(), (void*)hContact);
 	WindowList_Add(hMwinWindowList, hWnd, hContact);
 
 	CLISTFrame Frame = { 0 };
@@ -308,7 +308,7 @@ void InitMwin(void)
 	wndclass.lpfnWndProc = wndProc;
 	wndclass.cbClsExtra = 0;
 	wndclass.cbWndExtra = 0;
-	wndclass.hInstance = g_hInstance;
+	wndclass.hInstance = g_plugin.getInst();
 	wndclass.hIcon = nullptr;
 	wndclass.hCursor = LoadCursor(nullptr, IDC_ARROW);
 	wndclass.hbrBackground = nullptr; //(HBRUSH)(COLOR_3DFACE+1);
@@ -362,7 +362,7 @@ void DestroyMwin(void)
 		if (frameId)
 			CallService(MS_CLIST_FRAMES_REMOVEFRAME, frameId, 0);
 	}
-	UnregisterClass(L"WeatherFrame", g_hInstance);
+	UnregisterClass(L"WeatherFrame", g_plugin.getInst());
 	WindowList_Destroy(hMwinWindowList);
 	UnhookEvent(hFontHook);
 }
diff --git a/plugins/Weather/src/weather_opt.cpp b/plugins/Weather/src/weather_opt.cpp
index 981b8e9f3e..0d611997e2 100644
--- a/plugins/Weather/src/weather_opt.cpp
+++ b/plugins/Weather/src/weather_opt.cpp
@@ -483,7 +483,7 @@ static INT_PTR CALLBACK DlgProcText(HWND hdlg, UINT msg, WPARAM wParam, LPARAM l
 			// display the menu
 			button = GetDlgItem(hdlg, LOWORD(wParam));
 			GetWindowRect(button, &pos);
-			hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_TMMENU));
+			hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_TMMENU));
 			hMenu1 = GetSubMenu(hMenu, 0);
 			TranslateMenu(hMenu1);
 			switch (TrackPopupMenu(hMenu1, TPM_LEFTBUTTON | TPM_RETURNCMD, pos.left, pos.bottom, 0, hdlg, nullptr)) {
@@ -511,7 +511,7 @@ static INT_PTR CALLBACK DlgProcText(HWND hdlg, UINT msg, WPARAM wParam, LPARAM l
 			// left click action selection menu
 			button = GetDlgItem(hdlg, IDC_RESET);
 			GetWindowRect(button, &pos);
-			hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_TMENU));
+			hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_TMENU));
 			hMenu1 = GetSubMenu(hMenu, 0);
 			TranslateMenu(hMenu1);
 			switch (TrackPopupMenu(hMenu1, TPM_LEFTBUTTON | TPM_RETURNCMD, pos.left, pos.bottom, 0, hdlg, nullptr)) {
@@ -571,7 +571,7 @@ static INT_PTR CALLBACK DlgProcText(HWND hdlg, UINT msg, WPARAM wParam, LPARAM l
 int OptInit(WPARAM wParam, LPARAM)
 {
 	OPTIONSDIALOGPAGE odp = { 0 };
-	odp.hInstance = g_hInstance;
+	odp.hInstance = g_plugin.getInst();
 
 	// plugin options
 	odp.position = 95600;
diff --git a/plugins/Weather/src/weather_popup.cpp b/plugins/Weather/src/weather_popup.cpp
index 32d0969307..d40cc5e99f 100644
--- a/plugins/Weather/src/weather_popup.cpp
+++ b/plugins/Weather/src/weather_popup.cpp
@@ -256,7 +256,7 @@ INT_PTR CALLBACK DlgPopupOpts(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
 		SaveOptions();
 
 		// click actions
-		hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_PMENU));
+		hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_PMENU));
 		hMenu1 = GetSubMenu(hMenu, 0);
 		GetMenuString(hMenu1, opt.LeftClickAction, str, _countof(str), MF_BYCOMMAND);
 		SetDlgItemText(hdlg, IDC_LeftClick, TranslateW(str));
@@ -330,7 +330,7 @@ INT_PTR CALLBACK DlgPopupOpts(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
 			button = GetDlgItem(hdlg, IDC_RightClick);
 			GetWindowRect(button, &pos);
 
-			hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_PMENU));
+			hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_PMENU));
 			hMenu1 = GetSubMenu(hMenu, 0);
 			TranslateMenu(hMenu1);
 			SelectMenuItem(hMenu1, opt.RightClickAction);
@@ -339,7 +339,7 @@ INT_PTR CALLBACK DlgPopupOpts(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
 				opt.RightClickAction = ID;
 			DestroyMenu(hMenu);
 
-			hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_PMENU));
+			hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_PMENU));
 			hMenu1 = GetSubMenu(hMenu, 0);
 			GetMenuString(hMenu1, opt.RightClickAction, str, _countof(str), MF_BYCOMMAND);
 			SetDlgItemText(hdlg, IDC_RightClick, TranslateW(str));
@@ -351,7 +351,7 @@ INT_PTR CALLBACK DlgPopupOpts(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
 			button = GetDlgItem(hdlg, IDC_LeftClick);
 			GetWindowRect(button, &pos);
 
-			hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_PMENU));
+			hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_PMENU));
 			hMenu1 = GetSubMenu(hMenu, 0);
 			TranslateMenu(hMenu1);
 			SelectMenuItem(hMenu1, opt.LeftClickAction);
@@ -359,7 +359,7 @@ INT_PTR CALLBACK DlgPopupOpts(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
 			if (ID)   opt.LeftClickAction = ID;
 			DestroyMenu(hMenu);
 
-			hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_PMENU));
+			hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_PMENU));
 			hMenu1 = GetSubMenu(hMenu, 0);
 			GetMenuString(hMenu1, opt.LeftClickAction, str, _countof(str), MF_BYCOMMAND);
 			SetDlgItemText(hdlg, IDC_LeftClick, TranslateW(str));
diff --git a/plugins/Weather/src/weather_userinfo.cpp b/plugins/Weather/src/weather_userinfo.cpp
index 694b03b068..d18c2ace97 100644
--- a/plugins/Weather/src/weather_userinfo.cpp
+++ b/plugins/Weather/src/weather_userinfo.cpp
@@ -143,7 +143,7 @@ static INT_PTR CALLBACK DlgProcMoreData(HWND hwndDlg, UINT msg, WPARAM wParam, L
 			GetWindowRect(hList, &rc);
 			ListView_SetColumnWidth(hList, 1, ListView_GetColumnWidth(hList, 1) + (int)LOWORD(lParam) - (rc.right - rc.left));
 
-			Utils_ResizeDialog(hwndDlg, g_hInstance, MAKEINTRESOURCEA(IDD_BRIEF), BriefDlgResizer);
+			Utils_ResizeDialog(hwndDlg, g_plugin.getInst(), MAKEINTRESOURCEA(IDD_BRIEF), BriefDlgResizer);
 		}
 		break;
 
@@ -294,7 +294,7 @@ static INT_PTR CALLBACK DlgProcUIPage(HWND hwndDlg, UINT msg, WPARAM wParam, LPA
 		case IDC_MOREDETAIL:
 			HWND hMoreDataDlg = WindowList_Find(hDataWindowList, hContact);
 			if (hMoreDataDlg == nullptr)
-				hMoreDataDlg = CreateDialogParam(g_hInstance, MAKEINTRESOURCE(IDD_BRIEF), nullptr, DlgProcMoreData, hContact);
+				hMoreDataDlg = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_BRIEF), nullptr, DlgProcMoreData, hContact);
 			else {
 				SetForegroundWindow(hMoreDataDlg);
 				SetFocus(hMoreDataDlg);
@@ -314,7 +314,7 @@ static INT_PTR CALLBACK DlgProcUIPage(HWND hwndDlg, UINT msg, WPARAM wParam, LPA
 int UserInfoInit(WPARAM wParam, LPARAM lParam)
 {
 	OPTIONSDIALOGPAGE odp = { 0 };
-	odp.hInstance = g_hInstance;
+	odp.hInstance = g_plugin.getInst();
 	odp.position = 100000000;
 	odp.szTitle.a = WEATHERPROTONAME;
 
@@ -348,7 +348,7 @@ int BriefInfo(WPARAM wParam, LPARAM)
 			SetForegroundWindow(hMoreDataDlg);
 			SetFocus(hMoreDataDlg);
 		}
-		else hMoreDataDlg = CreateDialogParam(g_hInstance, MAKEINTRESOURCE(IDD_BRIEF), nullptr, DlgProcMoreData, (LPARAM)wParam);
+		else hMoreDataDlg = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_BRIEF), nullptr, DlgProcMoreData, (LPARAM)wParam);
 
 		ShowWindow(GetDlgItem(hMoreDataDlg, IDC_DATALIST), 0);
 		ShowWindow(GetDlgItem(hMoreDataDlg, IDC_MTEXT), 1);
-- 
cgit v1.2.3