summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/FTPFileYM/src/dialog.cpp290
-rw-r--r--plugins/FTPFileYM/src/ftpfile.cpp10
-rw-r--r--plugins/FTPFileYM/src/job_upload.cpp2
-rw-r--r--plugins/FTPFileYM/src/manager.cpp156
-rw-r--r--plugins/FTPFileYM/src/options.cpp2
-rw-r--r--plugins/FTPFileYM/src/stdafx.h9
-rw-r--r--plugins/FTPFileYM/src/utils.cpp8
-rw-r--r--plugins/FavContacts/src/main.cpp11
-rw-r--r--plugins/FavContacts/src/menu.cpp36
-rw-r--r--plugins/FavContacts/src/options.cpp112
-rw-r--r--plugins/FavContacts/src/stdafx.h10
-rw-r--r--plugins/FileAsMessage/src/dialog.cpp394
-rw-r--r--plugins/FileAsMessage/src/dialog.h2
-rw-r--r--plugins/FileAsMessage/src/main.cpp19
-rw-r--r--plugins/FileAsMessage/src/stdafx.h10
-rw-r--r--plugins/FingerprintNG/src/fingerprint.cpp8
-rw-r--r--plugins/FingerprintNG/src/main.cpp8
-rw-r--r--plugins/FingerprintNG/src/options.cpp4
-rw-r--r--plugins/FingerprintNG/src/stdafx.h10
-rw-r--r--plugins/FloatingContacts/src/fltcont.h22
-rw-r--r--plugins/FloatingContacts/src/main.cpp43
-rw-r--r--plugins/FloatingContacts/src/options.cpp40
-rw-r--r--plugins/FloatingContacts/src/stdafx.h11
-rw-r--r--plugins/Folders/src/dlg_handlers.cpp4
-rw-r--r--plugins/Folders/src/folders.cpp9
-rw-r--r--plugins/Folders/src/stdafx.h13
26 files changed, 610 insertions, 633 deletions
diff --git a/plugins/FTPFileYM/src/dialog.cpp b/plugins/FTPFileYM/src/dialog.cpp
index bed6074e26..2783a1fa17 100644
--- a/plugins/FTPFileYM/src/dialog.cpp
+++ b/plugins/FTPFileYM/src/dialog.cpp
@@ -27,7 +27,7 @@ extern Options &opt;
UploadDialog::UploadDialog()
{
- m_hwnd = CreateDialog(hInst, MAKEINTRESOURCE(IDD_DLG_UPLOAD), nullptr, UploadDlgProc);
+ m_hwnd = CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DLG_UPLOAD), nullptr, UploadDlgProc);
m_hwndTabs = GetDlgItem(m_hwnd, IDC_TAB);
EnableThemeDialogTexture(m_hwnd, ETDT_ENABLETAB);
@@ -151,20 +151,20 @@ LRESULT CALLBACK UploadDialog::TabControlProc(HWND hwnd, UINT msg, WPARAM wParam
switch (msg) {
case WM_LBUTTONDBLCLK:
case WM_MBUTTONDOWN:
- {
- POINT pt;
- GetCursorPos(&pt);
- ScreenToClient(uDlg->m_hwndTabs, &pt);
+ {
+ POINT pt;
+ GetCursorPos(&pt);
+ ScreenToClient(uDlg->m_hwndTabs, &pt);
- TCHITTESTINFO tch;
- tch.pt = pt;
- tch.flags = 0;
- int index = TabCtrl_HitTest(uDlg->m_hwndTabs, &tch);
+ TCHITTESTINFO tch;
+ tch.pt = pt;
+ tch.flags = 0;
+ int index = TabCtrl_HitTest(uDlg->m_hwndTabs, &tch);
- if (index != -1)
- uDlg->m_tabs[index]->m_job->closeTab();
- }
- break;
+ if (index != -1)
+ uDlg->m_tabs[index]->m_job->closeTab();
+ }
+ break;
}
return mir_callNextSubclass(hwnd, UploadDialog::TabControlProc, msg, wParam, lParam);
@@ -233,131 +233,131 @@ INT_PTR CALLBACK UploadDialog::UploadDlgProc(HWND hwndDlg, UINT msg, WPARAM wPar
return Menu_DrawItem(lParam);
case WM_COMMAND:
- {
- MCONTACT hContact = uDlg->m_tabs[uDlg->m_activeTab]->m_job->m_hContact;
- if (hContact != NULL)
- if (Clist_MenuProcessCommand(LOWORD(wParam), MPCF_CONTACTMENU, hContact))
- break;
-
- if (HIWORD(wParam) == BN_CLICKED) {
- switch (LOWORD(wParam)) {
- case IDC_BTN_PROTO:
- if (hContact != NULL) {
- RECT rc;
- GetWindowRect((HWND)lParam, &rc);
- HMENU hMenu = Menu_BuildContactMenu(hContact);
- TrackPopupMenu(hMenu, 0, rc.left, rc.bottom, 0, hwndDlg, nullptr);
- DestroyMenu(hMenu);
- }
- break;
-
- case IDC_BTN_PAUSE:
- uDlg->m_tabs[uDlg->m_activeTab]->m_job->pauseHandler();
- return TRUE;
-
- case IDC_BTN_CLIPBOARD:
- job = (UploadJob*)uDlg->m_tabs[uDlg->m_activeTab]->m_job;
- Utils::copyToClipboard(job->m_szFileLink);
- return TRUE;
-
- case IDC_BTN_DOWNLOAD:
- job = (UploadJob*)uDlg->m_tabs[uDlg->m_activeTab]->m_job;
- ShellExecuteA(nullptr, "open", job->m_szFileLink, nullptr, nullptr, SW_SHOWNORMAL);
- return TRUE;
-
- case IDC_BTN_FILEMANAGER:
- CallService(MS_FTPFILE_SHOWMANAGER, 0, 0);
- return TRUE;
-
- case IDC_BTN_CLOSE:
- uDlg->m_tabs[uDlg->m_activeTab]->m_job->closeTab();
- return TRUE;
-
- case IDC_BTN_OPTIONS:
- Tab *tab = uDlg->m_tabs[uDlg->m_activeTab];
-
- POINT pt;
- GetCursorPos(&pt);
- SetForegroundWindow(uDlg->m_hwndTabs);
-
- HMENU hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU_UPLOAD));
- if (hMenu) {
- HMENU hPopupMenu = GetSubMenu(hMenu, 0);
- TranslateMenu(hPopupMenu);
- CheckMenuItem(hPopupMenu, IDM_CLOSEDLG, MF_BYCOMMAND | tab->m_bOptCloseDlg ? MF_CHECKED : 0);
- CheckMenuItem(hPopupMenu, IDM_COPYLINK, MF_BYCOMMAND | tab->m_bOptCopyLink ? MF_CHECKED : 0);
- CheckMenuItem(hPopupMenu, IDM_AUTOSEND, MF_BYCOMMAND | tab->m_bOptAutosend ? MF_CHECKED : 0);
-
- HMENU hTimeMenu = GetSubMenu(hPopupMenu, 3);
- CheckMenuItem(hTimeMenu, IDM_DISABLED, MF_BYCOMMAND | (tab->m_iOptAutoDelete == -1) ? MF_CHECKED : MF_UNCHECKED);
-
- int times[10] = { 5, 15, 30, 1 * 60, 2 * 60, 5 * 60, 10 * 60, 1 * 24 * 60, 2 * 24 * 60, 7 * 24 * 60 };
- bool bChecked = (tab->m_iOptAutoDelete == -1);
- wchar_t buff[256];
-
- for (int i = 0; i < _countof(times); i++) {
- if (i == 3 || i == 7)
- AppendMenu(hTimeMenu, MF_SEPARATOR, 0, nullptr);
-
- if (i < 3)
- mir_snwprintf(buff, TranslateT("%d minutes"), times[i]);
- else if (i < 7)
- mir_snwprintf(buff, TranslateT("%d hours"), times[i] / 60);
- else
- mir_snwprintf(buff, TranslateT("%d days"), times[i] / 60 / 24);
-
- UINT check = MF_UNCHECKED;
- if (!bChecked && tab->m_iOptAutoDelete == times[i]) {
- check = MF_CHECKED;
- bChecked = true;
- }
-
- AppendMenu(hTimeMenu, MF_STRING | check, times[i], buff);
+ {
+ MCONTACT hContact = uDlg->m_tabs[uDlg->m_activeTab]->m_job->m_hContact;
+ if (hContact != NULL)
+ if (Clist_MenuProcessCommand(LOWORD(wParam), MPCF_CONTACTMENU, hContact))
+ break;
+
+ if (HIWORD(wParam) == BN_CLICKED) {
+ switch (LOWORD(wParam)) {
+ case IDC_BTN_PROTO:
+ if (hContact != NULL) {
+ RECT rc;
+ GetWindowRect((HWND)lParam, &rc);
+ HMENU hMenu = Menu_BuildContactMenu(hContact);
+ TrackPopupMenu(hMenu, 0, rc.left, rc.bottom, 0, hwndDlg, nullptr);
+ DestroyMenu(hMenu);
+ }
+ break;
+
+ case IDC_BTN_PAUSE:
+ uDlg->m_tabs[uDlg->m_activeTab]->m_job->pauseHandler();
+ return TRUE;
+
+ case IDC_BTN_CLIPBOARD:
+ job = (UploadJob*)uDlg->m_tabs[uDlg->m_activeTab]->m_job;
+ Utils::copyToClipboard(job->m_szFileLink);
+ return TRUE;
+
+ case IDC_BTN_DOWNLOAD:
+ job = (UploadJob*)uDlg->m_tabs[uDlg->m_activeTab]->m_job;
+ ShellExecuteA(nullptr, "open", job->m_szFileLink, nullptr, nullptr, SW_SHOWNORMAL);
+ return TRUE;
+
+ case IDC_BTN_FILEMANAGER:
+ CallService(MS_FTPFILE_SHOWMANAGER, 0, 0);
+ return TRUE;
+
+ case IDC_BTN_CLOSE:
+ uDlg->m_tabs[uDlg->m_activeTab]->m_job->closeTab();
+ return TRUE;
+
+ case IDC_BTN_OPTIONS:
+ Tab * tab = uDlg->m_tabs[uDlg->m_activeTab];
+
+ POINT pt;
+ GetCursorPos(&pt);
+ SetForegroundWindow(uDlg->m_hwndTabs);
+
+ HMENU hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_MENU_UPLOAD));
+ if (hMenu) {
+ HMENU hPopupMenu = GetSubMenu(hMenu, 0);
+ TranslateMenu(hPopupMenu);
+ CheckMenuItem(hPopupMenu, IDM_CLOSEDLG, MF_BYCOMMAND | tab->m_bOptCloseDlg ? MF_CHECKED : 0);
+ CheckMenuItem(hPopupMenu, IDM_COPYLINK, MF_BYCOMMAND | tab->m_bOptCopyLink ? MF_CHECKED : 0);
+ CheckMenuItem(hPopupMenu, IDM_AUTOSEND, MF_BYCOMMAND | tab->m_bOptAutosend ? MF_CHECKED : 0);
+
+ HMENU hTimeMenu = GetSubMenu(hPopupMenu, 3);
+ CheckMenuItem(hTimeMenu, IDM_DISABLED, MF_BYCOMMAND | (tab->m_iOptAutoDelete == -1) ? MF_CHECKED : MF_UNCHECKED);
+
+ int times[10] = { 5, 15, 30, 1 * 60, 2 * 60, 5 * 60, 10 * 60, 1 * 24 * 60, 2 * 24 * 60, 7 * 24 * 60 };
+ bool bChecked = (tab->m_iOptAutoDelete == -1);
+ wchar_t buff[256];
+
+ for (int i = 0; i < _countof(times); i++) {
+ if (i == 3 || i == 7)
+ AppendMenu(hTimeMenu, MF_SEPARATOR, 0, nullptr);
+
+ if (i < 3)
+ mir_snwprintf(buff, TranslateT("%d minutes"), times[i]);
+ else if (i < 7)
+ mir_snwprintf(buff, TranslateT("%d hours"), times[i] / 60);
+ else
+ mir_snwprintf(buff, TranslateT("%d days"), times[i] / 60 / 24);
+
+ UINT check = MF_UNCHECKED;
+ if (!bChecked && tab->m_iOptAutoDelete == times[i]) {
+ check = MF_CHECKED;
+ bChecked = true;
}
- if (opt.bAutoDelete) {
- switch (opt.timeRange) {
- case Options::TR_MINUTES: mir_snwprintf(buff, TranslateT("%d minutes"), opt.iDeleteTime); break;
- case Options::TR_HOURS: mir_snwprintf(buff, TranslateT("%d hours"), opt.iDeleteTime); break;
- case Options::TR_DAYS: mir_snwprintf(buff, TranslateT("%d days"), opt.iDeleteTime); break;
- }
+ AppendMenu(hTimeMenu, MF_STRING | check, times[i], buff);
+ }
- AppendMenu(hTimeMenu, MF_SEPARATOR, 0, nullptr);
- AppendMenu(hTimeMenu, MF_STRING | bChecked ? MF_UNCHECKED : MF_CHECKED, IDM_CUSTOM, buff);
+ if (opt.bAutoDelete) {
+ switch (opt.timeRange) {
+ case Options::TR_MINUTES: mir_snwprintf(buff, TranslateT("%d minutes"), opt.iDeleteTime); break;
+ case Options::TR_HOURS: mir_snwprintf(buff, TranslateT("%d hours"), opt.iDeleteTime); break;
+ case Options::TR_DAYS: mir_snwprintf(buff, TranslateT("%d days"), opt.iDeleteTime); break;
}
- int command = TrackPopupMenu(hPopupMenu, TPM_LEFTALIGN | TPM_RETURNCMD, pt.x, pt.y, 0, uDlg->m_hwndTabs, nullptr);
- switch (command) {
- case IDM_CLOSEDLG:
- tab->m_bOptCloseDlg = !tab->m_bOptCloseDlg; break;
- case IDM_COPYLINK:
- tab->m_bOptCopyLink = !tab->m_bOptCopyLink; break;
- case IDM_AUTOSEND:
- tab->m_bOptAutosend = !tab->m_bOptAutosend; break;
- case IDM_DISABLED:
- tab->m_iOptAutoDelete = -1; break;
- case IDM_CUSTOM:
- switch (opt.timeRange) {
- case Options::TR_MINUTES: tab->m_iOptAutoDelete = opt.iDeleteTime; break;
- case Options::TR_HOURS: tab->m_iOptAutoDelete = opt.iDeleteTime * 60; break;
- case Options::TR_DAYS: tab->m_iOptAutoDelete = opt.iDeleteTime * 60 * 24; break;
- }
- break;
- default:
- tab->m_iOptAutoDelete = command;
- break;
+ AppendMenu(hTimeMenu, MF_SEPARATOR, 0, nullptr);
+ AppendMenu(hTimeMenu, MF_STRING | bChecked ? MF_UNCHECKED : MF_CHECKED, IDM_CUSTOM, buff);
+ }
+
+ int command = TrackPopupMenu(hPopupMenu, TPM_LEFTALIGN | TPM_RETURNCMD, pt.x, pt.y, 0, uDlg->m_hwndTabs, nullptr);
+ switch (command) {
+ case IDM_CLOSEDLG:
+ tab->m_bOptCloseDlg = !tab->m_bOptCloseDlg; break;
+ case IDM_COPYLINK:
+ tab->m_bOptCopyLink = !tab->m_bOptCopyLink; break;
+ case IDM_AUTOSEND:
+ tab->m_bOptAutosend = !tab->m_bOptAutosend; break;
+ case IDM_DISABLED:
+ tab->m_iOptAutoDelete = -1; break;
+ case IDM_CUSTOM:
+ switch (opt.timeRange) {
+ case Options::TR_MINUTES: tab->m_iOptAutoDelete = opt.iDeleteTime; break;
+ case Options::TR_HOURS: tab->m_iOptAutoDelete = opt.iDeleteTime * 60; break;
+ case Options::TR_DAYS: tab->m_iOptAutoDelete = opt.iDeleteTime * 60 * 24; break;
}
+ break;
+ default:
+ tab->m_iOptAutoDelete = command;
+ break;
+ }
- if (command && ((UploadJob *)tab->m_job)->isCompleted())
- DBEntry::setDeleteTS(tab->m_job);
+ if (command && ((UploadJob *)tab->m_job)->isCompleted())
+ DBEntry::setDeleteTS(tab->m_job);
- DestroyMenu(hMenu);
- }
- return TRUE;
+ DestroyMenu(hMenu);
}
+ return TRUE;
}
}
- break;
+ }
+ break;
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code) {
@@ -393,26 +393,26 @@ INT_PTR CALLBACK UploadDialog::UploadDlgProc(HWND hwndDlg, UINT msg, WPARAM wPar
break;
case WM_CLOSE:
- {
+ {
+ for (UINT i = 0; i < uDlg->m_tabs.size(); i++)
+ uDlg->m_tabs[i]->m_job->pause();
+
+ int result = IDYES;
+ if (!Miranda_IsTerminated() && UploadJob::iRunningJobCount > 0)
+ result = Utils::msgBox(TranslateT("Do you really want to cancel all running jobs?"), MB_YESNO | MB_ICONQUESTION);
+
+ if (result == IDYES) {
+ Skin_PlaySound(SOUND_CANCEL);
+ size_t count = uDlg->m_tabs.size();
+ for (UINT i = 0; i < count; i++)
+ uDlg->m_tabs[0]->m_job->closeAllTabs();
+ }
+ else {
for (UINT i = 0; i < uDlg->m_tabs.size(); i++)
- uDlg->m_tabs[i]->m_job->pause();
-
- int result = IDYES;
- if (!Miranda_IsTerminated() && UploadJob::iRunningJobCount > 0)
- result = Utils::msgBox(TranslateT("Do you really want to cancel all running jobs?"), MB_YESNO | MB_ICONQUESTION);
-
- if (result == IDYES) {
- Skin_PlaySound(SOUND_CANCEL);
- size_t count = uDlg->m_tabs.size();
- for (UINT i = 0; i < count; i++)
- uDlg->m_tabs[0]->m_job->closeAllTabs();
- }
- else {
- for (UINT i = 0; i < uDlg->m_tabs.size(); i++)
- uDlg->m_tabs[i]->m_job->resume();
- }
+ uDlg->m_tabs[i]->m_job->resume();
}
- break;
+ }
+ break;
case WMU_DESTROY:
DestroyWindow(hwndDlg);
diff --git a/plugins/FTPFileYM/src/ftpfile.cpp b/plugins/FTPFileYM/src/ftpfile.cpp
index 48e0ea97ea..d60f6e76a4 100644
--- a/plugins/FTPFileYM/src/ftpfile.cpp
+++ b/plugins/FTPFileYM/src/ftpfile.cpp
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdafx.h"
-HINSTANCE hInst;
+CMPlugin g_plugin;
int hLangpack;
HGENMENU hMenu, hMainMenu, hSubMenu[ServerList::FTP_COUNT], hMainSubMenu[ServerList::FTP_COUNT];
@@ -51,12 +51,6 @@ static PLUGININFOEX pluginInfoEx =
//------------ BASIC STAFF ------------//
-extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD, LPVOID)
-{
- hInst = hinstDLL;
- return TRUE;
-}
-
extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD)
{
return &pluginInfoEx;
@@ -81,7 +75,7 @@ static IconItem iconList[] =
static void InitIcolib()
{
- Icon_Register(hInst, LPGEN("FTP File"), iconList, _countof(iconList), MODULE);
+ Icon_Register(g_plugin.getInst(), LPGEN("FTP File"), iconList, _countof(iconList), MODULE);
}
void InitMenuItems()
diff --git a/plugins/FTPFileYM/src/job_upload.cpp b/plugins/FTPFileYM/src/job_upload.cpp
index 0fd6aae79c..a89bbe32dc 100644
--- a/plugins/FTPFileYM/src/job_upload.cpp
+++ b/plugins/FTPFileYM/src/job_upload.cpp
@@ -292,7 +292,7 @@ void UploadJob::upload()
bool uploadFile = true;
if (fileExistsOnServer()) {
- int res = DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_DLG_FILEEXISTS), nullptr, DlgProcFileExists, (LPARAM)m_szSafeFileName);
+ int res = DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DLG_FILEEXISTS), nullptr, DlgProcFileExists, (LPARAM)m_szSafeFileName);
if (res == IDC_RENAME) {
if (Utils::setFileNameDlg(_A2T(m_szSafeFileName)) == true)
curl_easy_setopt(hCurl, CURLOPT_URL, getUrlString());
diff --git a/plugins/FTPFileYM/src/manager.cpp b/plugins/FTPFileYM/src/manager.cpp
index 7d793f5959..b3e2a3c1c5 100644
--- a/plugins/FTPFileYM/src/manager.cpp
+++ b/plugins/FTPFileYM/src/manager.cpp
@@ -52,7 +52,7 @@ void Manager::init()
{
ServerList::FTP *ftp = ftpList.getSelected();
if (ftp->m_bEnabled) {
- m_hwnd = CreateDialog(hInst, MAKEINTRESOURCE(IDD_DLG_MANAGER), nullptr, Manager::ManagerDlgProc);
+ m_hwnd = CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DLG_MANAGER), nullptr, Manager::ManagerDlgProc);
m_hwndFileTree = GetDlgItem(m_hwnd, IDC_FILELIST);
initImageList();
fillTree();
@@ -265,15 +265,15 @@ INT_PTR CALLBACK Manager::ManagerDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam,
case IDC_BTN_SELECTALL:
case IDC_BTN_DESELECTALL:
- {
- UINT newState = (LOWORD(wParam) == IDC_BTN_SELECTALL) ?
- TreeItem::_CHECKED() : TreeItem::_UNCHECKED();
+ {
+ UINT newState = (LOWORD(wParam) == IDC_BTN_SELECTALL) ?
+ TreeItem::_CHECKED() : TreeItem::_UNCHECKED();
- for (UINT i = 0; i < manDlg->m_items.size(); i++)
- manDlg->m_items[i]->setState(newState);
+ for (UINT i = 0; i < manDlg->m_items.size(); i++)
+ manDlg->m_items[i]->setState(newState);
- }
- break;
+ }
+ break;
case IDC_BTN_CLOSE:
DestroyWindow(hwndDlg);
@@ -290,89 +290,89 @@ INT_PTR CALLBACK Manager::ManagerDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam,
break;
case NM_CLICK:
- {
- HTREEITEM hItem;
- TVHITTESTINFO hti = { 0 };
- hti.pt.x = (short)LOWORD(GetMessagePos());
- hti.pt.y = (short)HIWORD(GetMessagePos());
- ScreenToClient(((LPNMHDR)lParam)->hwndFrom, &hti.pt);
- if (TreeView_HitTest(((LPNMHDR)lParam)->hwndFrom, &hti) || ((LPNMHDR)lParam)->code == TVN_KEYDOWN) {
- if (((LPNMHDR)lParam)->code == TVN_KEYDOWN) {
- hti.flags |= TVHT_ONITEMSTATEICON;
- hItem = TreeView_GetSelection(((LPNMHDR)lParam)->hwndFrom);
- }
- else {
- hItem = hti.hItem;
- }
+ {
+ HTREEITEM hItem;
+ TVHITTESTINFO hti = { 0 };
+ hti.pt.x = (short)LOWORD(GetMessagePos());
+ hti.pt.y = (short)HIWORD(GetMessagePos());
+ ScreenToClient(((LPNMHDR)lParam)->hwndFrom, &hti.pt);
+ if (TreeView_HitTest(((LPNMHDR)lParam)->hwndFrom, &hti) || ((LPNMHDR)lParam)->code == TVN_KEYDOWN) {
+ if (((LPNMHDR)lParam)->code == TVN_KEYDOWN) {
+ hti.flags |= TVHT_ONITEMSTATEICON;
+ hItem = TreeView_GetSelection(((LPNMHDR)lParam)->hwndFrom);
+ }
+ else {
+ hItem = hti.hItem;
+ }
- TreeItem *item = manDlg->getItem(hItem);
- if (item && (hti.flags & TVHT_ONITEMSTATEICON)) {
- if (item->isRoot()) {
- for (UINT i = 0; i < manDlg->m_items.size(); i++) {
- if (manDlg->m_items[i]->m_parent == item->m_handle)
- manDlg->m_items[i]->toggleState();
- }
- }
- else {
- item->toggleState();
+ TreeItem *item = manDlg->getItem(hItem);
+ if (item && (hti.flags & TVHT_ONITEMSTATEICON)) {
+ if (item->isRoot()) {
+ for (UINT i = 0; i < manDlg->m_items.size(); i++) {
+ if (manDlg->m_items[i]->m_parent == item->m_handle)
+ manDlg->m_items[i]->toggleState();
}
}
+ else {
+ item->toggleState();
+ }
}
}
- return TRUE;
+ }
+ return TRUE;
case NM_RCLICK:
- {
- TVHITTESTINFO hti;
- hti.pt.x = (short)LOWORD(GetMessagePos());
- hti.pt.y = (short)HIWORD(GetMessagePos());
- ScreenToClient(manDlg->m_hwndFileTree, &hti.pt);
- if (TreeView_HitTest(manDlg->m_hwndFileTree, &hti)) {
- HTREEITEM hItem = hti.hItem;
- TreeItem *item = manDlg->getItem(hItem);
- if (item && !item->isRoot()) {
- POINT pt;
- GetCursorPos(&pt);
- SetForegroundWindow(hwndDlg);
- HMENU hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU_MANAGER));
- if (hMenu) {
- HMENU hPopupMenu = GetSubMenu(hMenu, 0);
- TranslateMenu(hPopupMenu);
- int command = TrackPopupMenu(hPopupMenu, TPM_LEFTALIGN | TPM_RETURNCMD, pt.x, pt.y, 0, hwndDlg, nullptr);
- switch (command) {
- case IDM_DELETEFROMLIST:
- item->remove();
- break;
-
- case IDM_DELETEFROMFTP:
- (new DeleteJob(DBEntry::get(item->m_fileID), item))->start();
- break;
-
- case IDM_COPYLINK:
- case IDM_DOWNLOAD:
- int ftpNum = manDlg->indexOf(item->m_parent);
- if (ftpNum != -1) {
- char buff[256];
-
- DBEntry *entry = DBEntry::get(item->m_fileID);
- Utils::createFileDownloadLink(ftpList[ftpNum]->m_szUrl, entry->m_szFileName, buff, sizeof(buff));
- delete entry;
-
- if (command == IDM_COPYLINK)
- Utils::copyToClipboard(buff);
- else
- ShellExecuteA(nullptr, "open", buff, nullptr, nullptr, SW_SHOWNORMAL);
- }
- break;
+ {
+ TVHITTESTINFO hti;
+ hti.pt.x = (short)LOWORD(GetMessagePos());
+ hti.pt.y = (short)HIWORD(GetMessagePos());
+ ScreenToClient(manDlg->m_hwndFileTree, &hti.pt);
+ if (TreeView_HitTest(manDlg->m_hwndFileTree, &hti)) {
+ HTREEITEM hItem = hti.hItem;
+ TreeItem *item = manDlg->getItem(hItem);
+ if (item && !item->isRoot()) {
+ POINT pt;
+ GetCursorPos(&pt);
+ SetForegroundWindow(hwndDlg);
+ HMENU hMenu = LoadMenu(g_plugin.getInst(), MAKEINTRESOURCE(IDR_MENU_MANAGER));
+ if (hMenu) {
+ HMENU hPopupMenu = GetSubMenu(hMenu, 0);
+ TranslateMenu(hPopupMenu);
+ int command = TrackPopupMenu(hPopupMenu, TPM_LEFTALIGN | TPM_RETURNCMD, pt.x, pt.y, 0, hwndDlg, nullptr);
+ switch (command) {
+ case IDM_DELETEFROMLIST:
+ item->remove();
+ break;
+
+ case IDM_DELETEFROMFTP:
+ (new DeleteJob(DBEntry::get(item->m_fileID), item))->start();
+ break;
+
+ case IDM_COPYLINK:
+ case IDM_DOWNLOAD:
+ int ftpNum = manDlg->indexOf(item->m_parent);
+ if (ftpNum != -1) {
+ char buff[256];
+
+ DBEntry *entry = DBEntry::get(item->m_fileID);
+ Utils::createFileDownloadLink(ftpList[ftpNum]->m_szUrl, entry->m_szFileName, buff, sizeof(buff));
+ delete entry;
+
+ if (command == IDM_COPYLINK)
+ Utils::copyToClipboard(buff);
+ else
+ ShellExecuteA(nullptr, "open", buff, nullptr, nullptr, SW_SHOWNORMAL);
}
- DestroyMenu(hMenu);
+ break;
}
+ DestroyMenu(hMenu);
}
}
- return TRUE;
}
+ return TRUE;
+ }
case TVN_GETINFOTIP:
- NMTVGETINFOTIP *tvInfoTip = (NMTVGETINFOTIP *)lParam;
+ NMTVGETINFOTIP * tvInfoTip = (NMTVGETINFOTIP *)lParam;
TreeItem *item = manDlg->getItem(tvInfoTip->hItem);
if (item) {
diff --git a/plugins/FTPFileYM/src/options.cpp b/plugins/FTPFileYM/src/options.cpp
index 6008f80bab..922dfc15a5 100644
--- a/plugins/FTPFileYM/src/options.cpp
+++ b/plugins/FTPFileYM/src/options.cpp
@@ -248,7 +248,7 @@ int Options::InitOptions(WPARAM wParam, LPARAM)
{
OPTIONSDIALOGPAGE odp = { 0 };
odp.position = 100000000;
- odp.hInstance = hInst;
+ odp.hInstance = g_plugin.getInst();
odp.flags = ODPF_BOLDGROUPS | ODPF_UNICODE;
odp.szTitle.w = LPGENW("FTP File");
odp.szGroup.w = LPGENW("Services");
diff --git a/plugins/FTPFileYM/src/stdafx.h b/plugins/FTPFileYM/src/stdafx.h
index f31b540dd8..02cd27330b 100644
--- a/plugins/FTPFileYM/src/stdafx.h
+++ b/plugins/FTPFileYM/src/stdafx.h
@@ -27,8 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <vector>
using namespace std;
-#define __NO_CMPLUGIN_NEEDED
-
#include <newpluginapi.h>
#include <m_button.h>
#include <m_clist.h>
@@ -83,4 +81,9 @@ using namespace std;
#define SOUND_UPCOMPLETE "ftpfile_upcomplete"
#define SOUND_CANCEL "ftpfile_cancel"
-extern HINSTANCE hInst; \ No newline at end of file
+struct CMPlugin : public PLUGIN<CMPlugin>
+{
+ CMPlugin() :
+ PLUGIN<CMPlugin>(MODULE)
+ {}
+};
diff --git a/plugins/FTPFileYM/src/utils.cpp b/plugins/FTPFileYM/src/utils.cpp
index 4d1250b1f0..e6d7c020d6 100644
--- a/plugins/FTPFileYM/src/utils.cpp
+++ b/plugins/FTPFileYM/src/utils.cpp
@@ -24,9 +24,9 @@ extern UploadDialog *uDlg;
int Utils::getDeleteTimeMin()
{
switch (opt.timeRange) {
- case (Options::TR_MINUTES) : return (opt.iDeleteTime);
- case (Options::TR_HOURS) : return (opt.iDeleteTime * 60);
- case (Options::TR_DAYS) : return (opt.iDeleteTime * 60 * 24);
+ case (Options::TR_MINUTES): return (opt.iDeleteTime);
+ case (Options::TR_HOURS): return (opt.iDeleteTime * 60);
+ case (Options::TR_DAYS): return (opt.iDeleteTime * 60 * 24);
}
return -1;
@@ -170,7 +170,7 @@ INT_PTR CALLBACK Utils::DlgProcSetFileName(HWND hwndDlg, UINT msg, WPARAM wParam
bool Utils::setFileNameDlg(wchar_t *nameBuff)
{
- if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_DLG_NAME), nullptr, DlgProcSetFileName, (LPARAM)nameBuff) == IDOK)
+ if (DialogBoxParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_DLG_NAME), nullptr, DlgProcSetFileName, (LPARAM)nameBuff) == IDOK)
return true;
else
return false;
diff --git a/plugins/FavContacts/src/main.cpp b/plugins/FavContacts/src/main.cpp
index dedc1cb097..6c023ea33a 100644
--- a/plugins/FavContacts/src/main.cpp
+++ b/plugins/FavContacts/src/main.cpp
@@ -22,8 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "http_api.h"
-HINSTANCE g_hInst;
-
+CMPlugin g_plugin;
int hLangpack;
PLUGININFOEX pluginInfo = {
@@ -49,12 +48,6 @@ CContactCache *g_contactCache = nullptr;
Options g_Options = { 0 };
-BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD, LPVOID)
-{
- g_hInst = hinstDLL;
- return TRUE;
-}
-
extern "C" __declspec(dllexport) PLUGININFOEX *MirandaPluginInfoEx(DWORD)
{
return &pluginInfo;
@@ -74,7 +67,7 @@ extern "C" __declspec(dllexport) int Load(void)
/////////////////////////////////////////////////////////////////////////////////////
- Icon_Register(g_hInst, LPGEN("Favorites"), iconList, _countof(iconList));
+ Icon_Register(g_plugin.getInst(), LPGEN("Favorites"), iconList, _countof(iconList));
LoadHttpApi();
return 0;
diff --git a/plugins/FavContacts/src/menu.cpp b/plugins/FavContacts/src/menu.cpp
index 4e6bab443a..15da617d05 100644
--- a/plugins/FavContacts/src/menu.cpp
+++ b/plugins/FavContacts/src/menu.cpp
@@ -361,28 +361,28 @@ static LRESULT CALLBACK MenuHostWndProc(HWND hwnd, UINT message, WPARAM wParam,
switch (message) {
case WM_MEASUREITEM:
- {
- LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT)lParam;
- if (lpmis->CtlType != ODT_MENU)
- return FALSE;
+ {
+ LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT)lParam;
+ if (lpmis->CtlType != ODT_MENU)
+ return FALSE;
- if ((lpmis->itemID >= CLISTMENUIDMIN) && (lpmis->itemID <= CLISTMENUIDMAX))
- return Menu_MeasureItem(lParam);
+ if ((lpmis->itemID >= CLISTMENUIDMIN) && (lpmis->itemID <= CLISTMENUIDMAX))
+ return Menu_MeasureItem(lParam);
- return MenuMeasureItem(lpmis);
- }
+ return MenuMeasureItem(lpmis);
+ }
case WM_DRAWITEM:
- {
- LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT)lParam;
- if (lpdis->CtlType != ODT_MENU)
- return FALSE;
+ {
+ LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT)lParam;
+ if (lpdis->CtlType != ODT_MENU)
+ return FALSE;
- if ((lpdis->itemID >= CLISTMENUIDMIN) && (lpdis->itemID <= CLISTMENUIDMAX))
- return Menu_DrawItem(lParam);
+ if ((lpdis->itemID >= CLISTMENUIDMIN) && (lpdis->itemID <= CLISTMENUIDMAX))
+ return Menu_DrawItem(lParam);
- return MenuDrawItem(lpdis);
- }
+ return MenuDrawItem(lpdis);
+ }
case WM_MENUCHAR:
while (GetMenuItemCount((HMENU)lParam) > 1)
@@ -536,13 +536,13 @@ void InitMenu()
{
WNDCLASSEX wcl = { sizeof(wcl) };
wcl.lpfnWndProc = MenuHostWndProc;
- wcl.hInstance = g_hInst;
+ wcl.hInstance = g_plugin.getInst();
wcl.hCursor = LoadCursor(nullptr, IDC_ARROW);
wcl.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
wcl.lpszClassName = L"FavContactsMenuHostWnd";
RegisterClassEx(&wcl);
- g_hwndMenuHost = CreateWindow(L"FavContactsMenuHostWnd", nullptr, 0, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, nullptr, g_hInst, nullptr);
+ g_hwndMenuHost = CreateWindow(L"FavContactsMenuHostWnd", nullptr, 0, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, nullptr, g_plugin.getInst(), nullptr);
SetWindowPos(g_hwndMenuHost, nullptr, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_DEFERERASE | SWP_NOSENDCHANGING | SWP_HIDEWINDOW);
}
diff --git a/plugins/FavContacts/src/options.cpp b/plugins/FavContacts/src/options.cpp
index eac163e889..27f2946cdb 100644
--- a/plugins/FavContacts/src/options.cpp
+++ b/plugins/FavContacts/src/options.cpp
@@ -27,7 +27,7 @@ void LoadOptions()
g_Options.bAvatarBorder = db_get_b(NULL, "FavContacts", "AvatarBorder", 0);
g_Options.wAvatarRadius = db_get_w(NULL, "FavContacts", "AvatarRadius", 3);
g_Options.bNoTransparentBorder = db_get_b(NULL, "FavContacts", "NoTransparentBorder",
- !db_get_b(NULL, "FavContacts", "AvatarBorderTransparent", 1));
+ !db_get_b(NULL, "FavContacts", "AvatarBorderTransparent", 1));
g_Options.bSysColors = db_get_b(NULL, "FavContacts", "SysColors", 0);
g_Options.bCenterHotkey = db_get_b(NULL, "FavContacts", "CenterHotkey", 1);
g_Options.bUseGroups = db_get_b(NULL, "FavContacts", "UseGroups", 0);
@@ -85,7 +85,7 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
SetDlgItemInt(hwnd, IDC_TXT_MAXRECENT, g_Options.wMaxRecent, FALSE);
SetWindowLongPtr(GetDlgItem(hwnd, IDC_CLIST), GWL_STYLE,
- GetWindowLongPtr(GetDlgItem(hwnd, IDC_CLIST), GWL_STYLE) | CLS_CHECKBOXES | CLS_HIDEEMPTYGROUPS | CLS_USEGROUPS | CLS_GREYALTERNATE | CLS_GROUPCHECKBOXES);
+ GetWindowLongPtr(GetDlgItem(hwnd, IDC_CLIST), GWL_STYLE) | CLS_CHECKBOXES | CLS_HIDEEMPTYGROUPS | CLS_USEGROUPS | CLS_GREYALTERNATE | CLS_GROUPCHECKBOXES);
SendDlgItemMessage(hwnd, IDC_CLIST, CLM_SETEXSTYLE, CLS_EX_DISABLEDRAGDROP | CLS_EX_TRACKSELECT, 0);
sttResetListOptions(GetDlgItem(hwnd, IDC_CLIST));
@@ -93,8 +93,8 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
{
for (auto &hContact : Contacts())
SendDlgItemMessage(hwnd, IDC_CLIST, CLM_SETCHECKMARK,
- SendDlgItemMessage(hwnd, IDC_CLIST, CLM_FINDCONTACT, hContact, 0),
- db_get_b(hContact, "FavContacts", "IsFavourite", 0));
+ SendDlgItemMessage(hwnd, IDC_CLIST, CLM_FINDCONTACT, hContact, 0),
+ db_get_b(hContact, "FavContacts", "IsFavourite", 0));
}
bInitialized = true;
@@ -102,59 +102,59 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
return TRUE;
case WM_APP:
- {
- BOOL bGroups = IsDlgButtonChecked(hwnd, IDC_CHK_GROUPS);
- EnableWindow(GetDlgItem(hwnd, IDC_CHK_GROUPCOLUMS), bGroups);
-
- BOOL bAvatars = IsDlgButtonChecked(hwnd, IDC_CHK_AVATARS);
- BOOL bBorders = IsDlgButtonChecked(hwnd, IDC_CHK_AVATARBORDER);
- EnableWindow(GetDlgItem(hwnd, IDC_CHK_AVATARBORDER), bAvatars);
- EnableWindow(GetDlgItem(hwnd, IDC_CHK_RIGHTAVATARS), bAvatars);
- EnableWindow(GetDlgItem(hwnd, IDC_CHK_NOTRANSPARENTBORDER), bAvatars && bBorders);
- EnableWindow(GetDlgItem(hwnd, IDC_TXT_RADIUS), bAvatars && bBorders);
- }
- return TRUE;
+ {
+ BOOL bGroups = IsDlgButtonChecked(hwnd, IDC_CHK_GROUPS);
+ EnableWindow(GetDlgItem(hwnd, IDC_CHK_GROUPCOLUMS), bGroups);
+
+ BOOL bAvatars = IsDlgButtonChecked(hwnd, IDC_CHK_AVATARS);
+ BOOL bBorders = IsDlgButtonChecked(hwnd, IDC_CHK_AVATARBORDER);
+ EnableWindow(GetDlgItem(hwnd, IDC_CHK_AVATARBORDER), bAvatars);
+ EnableWindow(GetDlgItem(hwnd, IDC_CHK_RIGHTAVATARS), bAvatars);
+ EnableWindow(GetDlgItem(hwnd, IDC_CHK_NOTRANSPARENTBORDER), bAvatars && bBorders);
+ EnableWindow(GetDlgItem(hwnd, IDC_TXT_RADIUS), bAvatars && bBorders);
+ }
+ return TRUE;
case WM_DRAWITEM:
- {
- LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT)lParam;
- if (lpdis->CtlID == IDC_CANVAS) {
- MEASUREITEMSTRUCT mis = { 0 };
- DRAWITEMSTRUCT dis = *lpdis;
-
- FillRect(lpdis->hDC, &lpdis->rcItem, GetSysColorBrush(COLOR_BTNFACE));
- if (hSelectedContact) {
- Options options;
- options.bSecondLine = IsDlgButtonChecked(hwnd, IDC_CHK_SECONDLINE);
- options.bAvatars = IsDlgButtonChecked(hwnd, IDC_CHK_AVATARS);
- options.bAvatarBorder = IsDlgButtonChecked(hwnd, IDC_CHK_AVATARBORDER);
- options.bNoTransparentBorder = IsDlgButtonChecked(hwnd, IDC_CHK_NOTRANSPARENTBORDER);
- options.bSysColors = IsDlgButtonChecked(hwnd, IDC_CHK_SYSCOLORS);
- options.bCenterHotkey = IsDlgButtonChecked(hwnd, IDC_CHK_CENTERHOTKEY);
- options.bRightAvatars = IsDlgButtonChecked(hwnd, IDC_CHK_RIGHTAVATARS);
- options.bDimIdle = IsDlgButtonChecked(hwnd, IDC_CHK_DIMIDLE);
- options.wAvatarRadius = GetDlgItemInt(hwnd, IDC_TXT_RADIUS, nullptr, FALSE);
- options.wMaxRecent = GetDlgItemInt(hwnd, IDC_TXT_MAXRECENT, nullptr, FALSE);
-
- mis.CtlID = 0;
- mis.CtlType = ODT_MENU;
- mis.itemData = (DWORD)hSelectedContact;
- MenuMeasureItem(&mis, &options);
- dis.rcItem.bottom = dis.rcItem.top + mis.itemHeight;
-
- dis.CtlID = 0;
- dis.CtlType = ODT_MENU;
- dis.itemData = (DWORD)hSelectedContact;
- MenuDrawItem(&dis, &options);
-
- RECT rc = lpdis->rcItem;
- rc.bottom = rc.top + mis.itemHeight;
- FrameRect(lpdis->hDC, &rc, GetSysColorBrush(COLOR_HIGHLIGHT));
- }
- return TRUE;
+ {
+ LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT)lParam;
+ if (lpdis->CtlID == IDC_CANVAS) {
+ MEASUREITEMSTRUCT mis = { 0 };
+ DRAWITEMSTRUCT dis = *lpdis;
+
+ FillRect(lpdis->hDC, &lpdis->rcItem, GetSysColorBrush(COLOR_BTNFACE));
+ if (hSelectedContact) {
+ Options options;
+ options.bSecondLine = IsDlgButtonChecked(hwnd, IDC_CHK_SECONDLINE);
+ options.bAvatars = IsDlgButtonChecked(hwnd, IDC_CHK_AVATARS);
+ options.bAvatarBorder = IsDlgButtonChecked(hwnd, IDC_CHK_AVATARBORDER);
+ options.bNoTransparentBorder = IsDlgButtonChecked(hwnd, IDC_CHK_NOTRANSPARENTBORDER);
+ options.bSysColors = IsDlgButtonChecked(hwnd, IDC_CHK_SYSCOLORS);
+ options.bCenterHotkey = IsDlgButtonChecked(hwnd, IDC_CHK_CENTERHOTKEY);
+ options.bRightAvatars = IsDlgButtonChecked(hwnd, IDC_CHK_RIGHTAVATARS);
+ options.bDimIdle = IsDlgButtonChecked(hwnd, IDC_CHK_DIMIDLE);
+ options.wAvatarRadius = GetDlgItemInt(hwnd, IDC_TXT_RADIUS, nullptr, FALSE);
+ options.wMaxRecent = GetDlgItemInt(hwnd, IDC_TXT_MAXRECENT, nullptr, FALSE);
+
+ mis.CtlID = 0;
+ mis.CtlType = ODT_MENU;
+ mis.itemData = (DWORD)hSelectedContact;
+ MenuMeasureItem(&mis, &options);
+ dis.rcItem.bottom = dis.rcItem.top + mis.itemHeight;
+
+ dis.CtlID = 0;
+ dis.CtlType = ODT_MENU;
+ dis.itemData = (DWORD)hSelectedContact;
+ MenuDrawItem(&dis, &options);
+
+ RECT rc = lpdis->rcItem;
+ rc.bottom = rc.top + mis.itemHeight;
+ FrameRect(lpdis->hDC, &rc, GetSysColorBrush(COLOR_HIGHLIGHT));
}
+ return TRUE;
}
- return FALSE;
+ }
+ return FALSE;
case WM_COMMAND:
switch (LOWORD(wParam)) {
@@ -209,7 +209,7 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
for (auto &hContact : Contacts()) {
BYTE fav = SendDlgItemMessage(hwnd, IDC_CLIST, CLM_GETCHECKMARK,
- SendDlgItemMessage(hwnd, IDC_CLIST, CLM_FINDCONTACT, hContact, 0), 0);
+ SendDlgItemMessage(hwnd, IDC_CLIST, CLM_FINDCONTACT, hContact, 0), 0);
if (fav != db_get_b(hContact, "FavContacts", "IsFavourite", 0))
db_set_b(hContact, "FavContacts", "IsFavourite", fav);
if (fav) CallService(MS_AV_GETAVATARBITMAP, hContact, 0);
@@ -228,7 +228,7 @@ static INT_PTR CALLBACK OptionsDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
for (auto &hContact : Contacts()) {
if (SendDlgItemMessage(hwnd, IDC_CLIST, CLM_FINDCONTACT, hContact, 0) == iSelection) {
SendDlgItemMessage(hwnd, IDC_CLIST, CLM_SETCHECKMARK, iSelection,
- db_get_b(hContact, "FavContacts", "IsFavourite", 0));
+ db_get_b(hContact, "FavContacts", "IsFavourite", 0));
break;
}
}
@@ -255,7 +255,7 @@ int ProcessOptInitialise(WPARAM wParam, LPARAM)
{
OPTIONSDIALOGPAGE odp = { 0 };
odp.position = 100000000;
- odp.hInstance = g_hInst;
+ odp.hInstance = g_plugin.getInst();
odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS);
odp.szGroup.a = LPGEN("Contacts");
odp.szTitle.a = LPGEN("Favorites");
diff --git a/plugins/FavContacts/src/stdafx.h b/plugins/FavContacts/src/stdafx.h
index 17b0d3ca6b..7de5e1728d 100644
--- a/plugins/FavContacts/src/stdafx.h
+++ b/plugins/FavContacts/src/stdafx.h
@@ -29,8 +29,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <time.h>
#include <math.h>
-#define __NO_CMPLUGIN_NEEDED
-
#include <win2k.h>
#include <newpluginapi.h>
#include <m_system.h>
@@ -101,5 +99,11 @@ void UninitMenu();
void InitServices();
void UninitServices();
-extern HINSTANCE g_hInst;
extern IconItem iconList[];
+
+struct CMPlugin : public PLUGIN<CMPlugin>
+{
+ CMPlugin() :
+ PLUGIN<CMPlugin>("FavContacts")
+ {}
+};
diff --git a/plugins/FileAsMessage/src/dialog.cpp b/plugins/FileAsMessage/src/dialog.cpp
index 4ca7a5f496..ea5b0f7aed 100644
--- a/plugins/FileAsMessage/src/dialog.cpp
+++ b/plugins/FileAsMessage/src/dialog.cpp
@@ -65,18 +65,18 @@ static LRESULT CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPA
switch (message) {
case WM_COMMAND:
- {
- PUDeletePopup(hWnd);
- pcli->pfnRemoveEvent(hContact, 0);
-
- if (IsWindow(hDlg)) {
- ShowWindow(hDlg, SW_SHOWNORMAL);
- SetForegroundWindow(hDlg);
- SetFocus(hDlg);
- }
+ {
+ PUDeletePopup(hWnd);
+ pcli->pfnRemoveEvent(hContact, 0);
- break;
+ if (IsWindow(hDlg)) {
+ ShowWindow(hDlg, SW_SHOWNORMAL);
+ SetForegroundWindow(hDlg);
+ SetFocus(hDlg);
}
+
+ break;
+ }
case WM_CONTEXTMENU:
PUDeletePopup(hWnd);
break;
@@ -98,7 +98,7 @@ void MakePopupMsg(HWND hDlg, MCONTACT hContact, wchar_t *msg)
POPUPDATAW ppd = { 0 };
ppd.lchContact = hContact;
- ppd.lchIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_SMALLICON));
+ ppd.lchIcon = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SMALLICON));
mir_wstrcpy(ppd.lpwzContactName, Clist_GetContactDisplayName(hContact));
mir_wstrcpy(ppd.lpwzText, msg);
ppd.colorBack = GetSysColor(COLOR_INFOBK);
@@ -117,7 +117,7 @@ int getMsgId(char *msg)
for (int indx = 0; indx < CMD_COUNT; indx++)
if (*msg == cCmdList[indx])
return indx;
-
+
return -1;
};
@@ -248,7 +248,7 @@ int FILEECHO::createTransfer()
}
if (hFile == INVALID_HANDLE_VALUE)
goto createTransfer_FAILED;
-
+
if (!inSend) {
SetFilePointer(hFile, fileSize, nullptr, FILE_BEGIN);
SetEndOfFile(hFile);
@@ -259,7 +259,7 @@ int FILEECHO::createTransfer()
LastError = GetLastError();
if (hMapping == nullptr)
goto createTransfer_FAILED;
-
+
lpData = (uchar*)MapViewOfFile(hMapping, inSend ? FILE_MAP_READ : FILE_MAP_WRITE, 0, 0, 0);
LastError = GetLastError();
if (lpData == nullptr)
@@ -270,7 +270,7 @@ int FILEECHO::createTransfer()
if (asBinary) {
uint freq_table[256] = { 0 };
codeSymb = 1;
-
+
// searching for symbol with lowest frequency: "codeSymb"
BuildFreqTable(lpData, fileSize, freq_table);
for (uint i = codeSymb + 1; i < 256; ++i) {
@@ -416,7 +416,7 @@ void FILEECHO::incomeRequest(char *param)
if (!IsWindowVisible(hDlg) && !AutoMin) {
CLISTEVENT cle = {};
cle.hContact = hContact;
- cle.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_SMALLICON));
+ cle.hIcon = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_SMALLICON));
cle.flags = CLEF_URGENT;
cle.hDbEvent = 0;
cle.pszService = SERVICE_NAME "/FERecvFile";
@@ -703,16 +703,16 @@ void FILEECHO::perform(char *str)
cmdACCEPT();
break;
case CMD_CANCEL:
- {
- if (iState & (STATE_PRERECV | STATE_REQSENT | STATE_OPERATE | STATE_ACKREQ | STATE_PAUSED)) {
- wchar_t *msg = TranslateT("Canceled by remote user");
- SetDlgItemText(hDlg, IDC_STATUS, msg);
- MakePopupMsg(hDlg, hContact, msg);
- destroyTransfer();
- setState(STATE_CANCELLED);
- }
- break;
+ {
+ if (iState & (STATE_PRERECV | STATE_REQSENT | STATE_OPERATE | STATE_ACKREQ | STATE_PAUSED)) {
+ wchar_t *msg = TranslateT("Canceled by remote user");
+ SetDlgItemText(hDlg, IDC_STATUS, msg);
+ MakePopupMsg(hDlg, hContact, msg);
+ destroyTransfer();
+ setState(STATE_CANCELLED);
}
+ break;
+ }
case CMD_DACK:
cmdDACK(str + 1);
break;
@@ -720,17 +720,17 @@ void FILEECHO::perform(char *str)
else
switch (msgId) {
case CMD_CANCEL:
- {
- if (iState & (STATE_PRERECV | STATE_REQSENT | STATE_OPERATE | STATE_ACKREQ | STATE_PAUSED)) {
- wchar_t *msg = TranslateT("Canceled by remote user");
- SetDlgItemText(hDlg, IDC_STATUS, msg);
- MakePopupMsg(hDlg, hContact, msg);
- destroyTransfer();
- setState(STATE_CANCELLED);
- }
- break;
+ {
+ if (iState & (STATE_PRERECV | STATE_REQSENT | STATE_OPERATE | STATE_ACKREQ | STATE_PAUSED)) {
+ wchar_t *msg = TranslateT("Canceled by remote user");
+ SetDlgItemText(hDlg, IDC_STATUS, msg);
+ MakePopupMsg(hDlg, hContact, msg);
+ destroyTransfer();
+ setState(STATE_CANCELLED);
}
-
+ break;
+ }
+
case CMD_REQ:
if (chunkCount) {
if (MessageBox(hDlg, TranslateT("New incoming file request. Do you want to proceed?"),
@@ -742,11 +742,11 @@ void FILEECHO::perform(char *str)
SetDlgItemText(hDlg, IDC_STATUS, L"");
incomeRequest(str + 1);
break;
-
+
case CMD_DATA:
cmdDATA(str + 1);
break;
-
+
case CMD_END:
cmdEND();
break;
@@ -777,80 +777,80 @@ LRESULT CALLBACK ProgressWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPa
switch (uMsg) {
case WM_NCPAINT:
return 0;
-
+
case WM_PAINT:
- {
- HDC hdc;
- PAINTSTRUCT ps;
- RECT rc;
- HRGN hrgn;
- HBRUSH frameBrush = (HBRUSH)GetStockObject(BLACK_BRUSH);
- FILEECHO *dat = (FILEECHO*)GetWindowLongPtr(GetParent(hwnd), GWLP_USERDATA);
-
- GetClientRect(hwnd, &rc);
- if (dat == nullptr || dat->chunkCount == 0) {
- COLORREF colour;
- HBRUSH hbr;
-
- if (dat == nullptr || dat->iState != STATE_FINISHED) {
- hbr = (HBRUSH)(COLOR_3DFACE + 1);
- }
- else {
- colour = dat->rgbRecv;
- hbr = CreateSolidBrush(colour);
- }
- hdc = BeginPaint(hwnd, &ps);
- FillRect(hdc, &rc, hbr);
- FrameRect(hdc, &rc, frameBrush);
- if (hbr != (HBRUSH)(COLOR_3DFACE + 1))
- DeleteObject(hbr);
- EndPaint(hwnd, &ps);
- return 0;
+ {
+ HDC hdc;
+ PAINTSTRUCT ps;
+ RECT rc;
+ HRGN hrgn;
+ HBRUSH frameBrush = (HBRUSH)GetStockObject(BLACK_BRUSH);
+ FILEECHO *dat = (FILEECHO*)GetWindowLongPtr(GetParent(hwnd), GWLP_USERDATA);
+
+ GetClientRect(hwnd, &rc);
+ if (dat == nullptr || dat->chunkCount == 0) {
+ COLORREF colour;
+ HBRUSH hbr;
+
+ if (dat == nullptr || dat->iState != STATE_FINISHED) {
+ hbr = (HBRUSH)(COLOR_3DFACE + 1);
}
-
- hrgn = CreateRectRgn(rc.left, rc.top, rc.right, rc.bottom);
-
- hdc = BeginPaint(hwnd, &ps);
- SelectClipRgn(hdc, hrgn);
-
- RECT rc2 = rc;
- float sliceWidth = (float)((float)(rc.right - rc.left) / (float)dat->chunkCount);
- float dx = (float)rc2.left;
- for (uint indx = 0; indx < dat->chunkCount; indx++) {
- HBRUSH hbr;
- COLORREF colour = 0;
- if (dat->inSend && indx == dat->chunkIndx)
- colour = dat->rgbToSend;
- else
- switch (dat->chunkAck[indx]) {
- case CHUNK_UNSENT:
- colour = dat->rgbUnSent;
- break;
- case CHUNK_SENT:
- colour = dat->rgbSent;
- break;
- case CHUNK_ACK:
- colour = dat->rgbRecv;
- break;
- }
+ else {
+ colour = dat->rgbRecv;
hbr = CreateSolidBrush(colour);
- rc2.left = (int)dx;
- rc2.right = (int)(dx + sliceWidth);
- FillRect(hdc, &rc2, hbr);
- FrameRect(hdc, &rc2, frameBrush);
- DeleteObject(hbr);
- dx += sliceWidth - 1;
- }
- if (rc2.right < rc.right) {
- rc2.left = rc2.right;
- rc2.right = rc.right;
- FillRect(hdc, &rc2, (HBRUSH)(COLOR_3DFACE + 1));
}
+ hdc = BeginPaint(hwnd, &ps);
+ FillRect(hdc, &rc, hbr);
+ FrameRect(hdc, &rc, frameBrush);
+ if (hbr != (HBRUSH)(COLOR_3DFACE + 1))
+ DeleteObject(hbr);
EndPaint(hwnd, &ps);
-
- DeleteObject(hrgn);
return 0;
}
+
+ hrgn = CreateRectRgn(rc.left, rc.top, rc.right, rc.bottom);
+
+ hdc = BeginPaint(hwnd, &ps);
+ SelectClipRgn(hdc, hrgn);
+
+ RECT rc2 = rc;
+ float sliceWidth = (float)((float)(rc.right - rc.left) / (float)dat->chunkCount);
+ float dx = (float)rc2.left;
+ for (uint indx = 0; indx < dat->chunkCount; indx++) {
+ HBRUSH hbr;
+ COLORREF colour = 0;
+ if (dat->inSend && indx == dat->chunkIndx)
+ colour = dat->rgbToSend;
+ else
+ switch (dat->chunkAck[indx]) {
+ case CHUNK_UNSENT:
+ colour = dat->rgbUnSent;
+ break;
+ case CHUNK_SENT:
+ colour = dat->rgbSent;
+ break;
+ case CHUNK_ACK:
+ colour = dat->rgbRecv;
+ break;
+ }
+ hbr = CreateSolidBrush(colour);
+ rc2.left = (int)dx;
+ rc2.right = (int)(dx + sliceWidth);
+ FillRect(hdc, &rc2, hbr);
+ FrameRect(hdc, &rc2, frameBrush);
+ DeleteObject(hbr);
+ dx += sliceWidth - 1;
+ }
+ if (rc2.right < rc.right) {
+ rc2.left = rc2.right;
+ rc2.right = rc.right;
+ FillRect(hdc, &rc2, (HBRUSH)(COLOR_3DFACE + 1));
+ }
+ EndPaint(hwnd, &ps);
+
+ DeleteObject(hrgn);
+ return 0;
+ }
}
return mir_callNextSubclass(hwnd, ProgressWndProc, uMsg, wParam, lParam);
}
@@ -898,29 +898,29 @@ INT_PTR CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
break;
case WM_FE_STATUSCHANGE:
- {
- char *szProto = GetContactProto(dat->hContact);
- if (szProto) {
- int dwStatus = db_get_w(dat->hContact, szProto, "Status", ID_STATUS_OFFLINE);
- if (dat->inSend && dwStatus != dat->contactStatus) {
- if (dat->contactStatus == ID_STATUS_OFFLINE) {
- dat->chunkIndx = dat->chunkCount;
- }
- else
- if (dwStatus == ID_STATUS_OFFLINE) {
- if (dat->iState & (STATE_OPERATE | STATE_ACKREQ)) {
- wchar_t *msg = TranslateT("File transfer is paused because of dropped connection");
- SetDlgItemText(hDlg, IDC_STATUS, msg);
- MakePopupMsg(dat->hDlg, dat->hContact, msg);
- dat->setState(STATE_PAUSED);
- KillTimer(hDlg, TIMER_SEND);
- }
- }
+ {
+ char *szProto = GetContactProto(dat->hContact);
+ if (szProto) {
+ int dwStatus = db_get_w(dat->hContact, szProto, "Status", ID_STATUS_OFFLINE);
+ if (dat->inSend && dwStatus != dat->contactStatus) {
+ if (dat->contactStatus == ID_STATUS_OFFLINE) {
+ dat->chunkIndx = dat->chunkCount;
}
- dat->contactStatus = dwStatus;
+ else
+ if (dwStatus == ID_STATUS_OFFLINE) {
+ if (dat->iState & (STATE_OPERATE | STATE_ACKREQ)) {
+ wchar_t *msg = TranslateT("File transfer is paused because of dropped connection");
+ SetDlgItemText(hDlg, IDC_STATUS, msg);
+ MakePopupMsg(dat->hDlg, dat->hContact, msg);
+ dat->setState(STATE_PAUSED);
+ KillTimer(hDlg, TIMER_SEND);
+ }
+ }
}
+ dat->contactStatus = dwStatus;
}
- return TRUE;
+ }
+ return TRUE;
case WM_DESTROY:
WindowList_Remove(hFileList, hDlg);
@@ -938,90 +938,90 @@ INT_PTR CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
case WM_COMMAND:
switch (wParam) {
case IDC_PLAY:
- {
- if (dat->iState & (STATE_IDLE | STATE_FINISHED | STATE_CANCELLED | STATE_PRERECV)) {
- int len = GetWindowTextLength(GetDlgItem(hDlg, IDC_FILENAME)) + 1;
- free(dat->filename);
- dat->filename = (char*)malloc(len);
- GetDlgItemTextA(hDlg, IDC_FILENAME, dat->filename, len);
- if (dat->inSend)
- // Send offer to remote side
- {
- dat->sendReq();
- }
- else
- // Send the accept and starting to receive
- {
- char buff[MAX_PATH];
- char *bufname;
-
- GetFullPathNameA(dat->filename, sizeof(buff), buff, &bufname);
- *bufname = 0;
- CreateDirectoryTree(buff);
- if (!dat->createTransfer()) {
- SetDlgItemText(hDlg, IDC_STATUS, TranslateT("Failed on file initialization"));
- break;
- }
- dat->sendCmd(0, CMD_ACCEPT, "");
- dat->lastTimestamp = GetTickCount();
- SetDlgItemText(hDlg, IDC_STATUS, TranslateT("Receiving..."));
- dat->setState(STATE_OPERATE);
+ {
+ if (dat->iState & (STATE_IDLE | STATE_FINISHED | STATE_CANCELLED | STATE_PRERECV)) {
+ int len = GetWindowTextLength(GetDlgItem(hDlg, IDC_FILENAME)) + 1;
+ free(dat->filename);
+ dat->filename = (char*)malloc(len);
+ GetDlgItemTextA(hDlg, IDC_FILENAME, dat->filename, len);
+ if (dat->inSend)
+ // Send offer to remote side
+ {
+ dat->sendReq();
+ }
+ else
+ // Send the accept and starting to receive
+ {
+ char buff[MAX_PATH];
+ char *bufname;
+
+ GetFullPathNameA(dat->filename, sizeof(buff), buff, &bufname);
+ *bufname = 0;
+ CreateDirectoryTree(buff);
+ if (!dat->createTransfer()) {
+ SetDlgItemText(hDlg, IDC_STATUS, TranslateT("Failed on file initialization"));
+ break;
}
+ dat->sendCmd(0, CMD_ACCEPT, "");
+ dat->lastTimestamp = GetTickCount();
+ SetDlgItemText(hDlg, IDC_STATUS, TranslateT("Receiving..."));
+ dat->setState(STATE_OPERATE);
}
- else {
- if (dat->inSend) {
- if (dat->iState == STATE_OPERATE) {
- SetDlgItemText(hDlg, IDC_STATUS, TranslateT("Paused..."));
- dat->setState(STATE_PAUSED);
- KillTimer(hDlg, TIMER_SEND);
- }
- else {
- SetDlgItemText(hDlg, IDC_STATUS, TranslateT("Sending..."));
- if (dat->chunkIndx < dat->chunkCount)
- dat->setState(STATE_OPERATE);
- else
- dat->setState(STATE_ACKREQ);
- PostMessage(hDlg, WM_TIMER, 0, 0);
- }
+ }
+ else {
+ if (dat->inSend) {
+ if (dat->iState == STATE_OPERATE) {
+ SetDlgItemText(hDlg, IDC_STATUS, TranslateT("Paused..."));
+ dat->setState(STATE_PAUSED);
+ KillTimer(hDlg, TIMER_SEND);
}
else {
- SetDlgItemText(hDlg, IDC_STATUS, TranslateT("Synchronizing..."));
- dat->setState(STATE_ACKREQ);
+ SetDlgItemText(hDlg, IDC_STATUS, TranslateT("Sending..."));
+ if (dat->chunkIndx < dat->chunkCount)
+ dat->setState(STATE_OPERATE);
+ else
+ dat->setState(STATE_ACKREQ);
PostMessage(hDlg, WM_TIMER, 0, 0);
}
- break;
}
+ else {
+ SetDlgItemText(hDlg, IDC_STATUS, TranslateT("Synchronizing..."));
+ dat->setState(STATE_ACKREQ);
+ PostMessage(hDlg, WM_TIMER, 0, 0);
+ }
+ break;
}
- break;
+ }
+ break;
case IDC_BROWSE:
- {
- wchar_t str[MAX_PATH]; *str = 0;
- GetDlgItemText(hDlg, IDC_FILENAME, str, _countof(str));
-
- OPENFILENAME ofn = {};
- ofn.lStructSize = sizeof(ofn);
- ofn.hwndOwner = hDlg;
- ofn.lpstrFile = str;
- ofn.Flags = dat->inSend ? OFN_FILEMUSTEXIST : 0;
- ofn.lpstrTitle = dat->inSend ? TranslateT("Select a file") : TranslateT("Save as");
- ofn.nMaxFile = _countof(str);
- ofn.nMaxFileTitle = MAX_PATH;
- if (!GetOpenFileName(&ofn))
- break;
- if (!dat->inSend && dat->iState == STATE_FINISHED)
- break;
-
- SetDlgItemText(hDlg, IDC_FILENAME, str);
+ {
+ wchar_t str[MAX_PATH]; *str = 0;
+ GetDlgItemText(hDlg, IDC_FILENAME, str, _countof(str));
+
+ OPENFILENAME ofn = {};
+ ofn.lStructSize = sizeof(ofn);
+ ofn.hwndOwner = hDlg;
+ ofn.lpstrFile = str;
+ ofn.Flags = dat->inSend ? OFN_FILEMUSTEXIST : 0;
+ ofn.lpstrTitle = dat->inSend ? TranslateT("Select a file") : TranslateT("Save as");
+ ofn.nMaxFile = _countof(str);
+ ofn.nMaxFileTitle = MAX_PATH;
+ if (!GetOpenFileName(&ofn))
+ break;
+ if (!dat->inSend && dat->iState == STATE_FINISHED)
+ break;
- int size = RetrieveFileSize(str);
- if (size != -1)
- mir_snwprintf(str, TranslateT("Size: %d bytes"), size);
- else
- mir_wstrncpy(str, TranslateT("Can't get a file size"), _countof(str));
- SetDlgItemText(hDlg, IDC_FILESIZE, str);
- }
- break;
+ SetDlgItemText(hDlg, IDC_FILENAME, str);
+
+ int size = RetrieveFileSize(str);
+ if (size != -1)
+ mir_snwprintf(str, TranslateT("Size: %d bytes"), size);
+ else
+ mir_wstrncpy(str, TranslateT("Can't get a file size"), _countof(str));
+ SetDlgItemText(hDlg, IDC_FILESIZE, str);
+ }
+ break;
case IDC_STOP:
case IDCANCEL:
diff --git a/plugins/FileAsMessage/src/dialog.h b/plugins/FileAsMessage/src/dialog.h
index 117ae006a3..ace7c198a3 100644
--- a/plugins/FileAsMessage/src/dialog.h
+++ b/plugins/FileAsMessage/src/dialog.h
@@ -1,7 +1,5 @@
#pragma once
-extern HINSTANCE hInst;
-
int getMsgId(char *msg);
INT_PTR CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
diff --git a/plugins/FileAsMessage/src/main.cpp b/plugins/FileAsMessage/src/main.cpp
index abb3068398..3e96b927fa 100644
--- a/plugins/FileAsMessage/src/main.cpp
+++ b/plugins/FileAsMessage/src/main.cpp
@@ -16,7 +16,7 @@ PLUGININFOEX pluginInfo =
CLIST_INTERFACE *pcli;
MWindowList hFileList;
-HINSTANCE hInst;
+CMPlugin g_plugin;
int hLangpack;
char *szServiceTitle = SERVICE_TITLE;
@@ -104,7 +104,7 @@ INT_PTR OnSendFile(WPARAM wParam, LPARAM)
if (hwnd != nullptr) WindowList_Remove(hFileList, hwnd);
FILEECHO *fe = new FILEECHO(wParam);
fe->inSend = TRUE;
- hwnd = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_MAIN), nullptr, DialogProc, (LPARAM)fe);
+ hwnd = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_MAIN), nullptr, DialogProc, (LPARAM)fe);
if (hwnd == nullptr)
{
delete fe;
@@ -130,7 +130,7 @@ INT_PTR OnRecvMessage(WPARAM wParam, LPARAM lParam)
if (hwnd != nullptr) WindowList_Remove(hFileList, hwnd);
FILEECHO *fe = new FILEECHO(ccs->hContact);
fe->inSend = FALSE;
- hwnd = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_MAIN), nullptr, DialogProc, (LPARAM)fe);
+ hwnd = CreateDialogParam(g_plugin.getInst(), MAKEINTRESOURCE(IDD_MAIN), nullptr, DialogProc, (LPARAM)fe);
if (hwnd == nullptr)
{
delete fe;
@@ -146,7 +146,7 @@ INT_PTR OnRecvMessage(WPARAM wParam, LPARAM lParam)
int OnOptInitialise(WPARAM wParam, LPARAM)
{
OPTIONSDIALOGPAGE odp = {};
- odp.hInstance = hInst;
+ odp.hInstance = g_plugin.getInst();
odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS);
odp.szTitle.a = SERVICE_TITLE;
odp.szGroup.a = LPGEN("Events");
@@ -194,7 +194,7 @@ extern "C" __declspec(dllexport) int Load(void)
InitCRC32();
- Icon_Register(hInst, "fileAsMessage", iconList, _countof(iconList));
+ Icon_Register(g_plugin.getInst(), "fileAsMessage", iconList, _countof(iconList));
hFileList = WindowList_Create();
@@ -226,12 +226,3 @@ extern "C" __declspec(dllexport) int Unload(void)
return 0;
}
-
-//
-// DllMain()
-//
-int WINAPI DllMain(HINSTANCE hInstance, DWORD, LPVOID)
-{
- hInst = hInstance;
- return TRUE;
-}
diff --git a/plugins/FileAsMessage/src/stdafx.h b/plugins/FileAsMessage/src/stdafx.h
index 3ac7b52e8d..519c80745d 100644
--- a/plugins/FileAsMessage/src/stdafx.h
+++ b/plugins/FileAsMessage/src/stdafx.h
@@ -7,8 +7,6 @@
#include <fcntl.h>
#include <commctrl.h>
-#define __NO_CMPLUGIN_NEEDED
-
#include <newpluginapi.h>
#include <m_database.h>
#include <m_protosvc.h>
@@ -35,6 +33,13 @@
#define NOPLUGIN_MESSAGE "If you see this \"garbage\", probably you have no \"fileAsMessage\" plugin installed, see https://miranda-ng.org/p/FileAsMessage/ for more information and download."
+struct CMPlugin : public PLUGIN<CMPlugin>
+{
+ CMPlugin() :
+ PLUGIN<CMPlugin>(SERVICE_NAME)
+ {}
+};
+
extern char *szServiceTitle;
extern char *szServicePrefix;
extern const ulong INITCRC;
@@ -43,7 +48,6 @@ extern const ulong INITCRC;
#define WM_FE_STATUSCHANGE WM_USER+101
#define WM_FE_SKINCHANGE WM_USER+102
-extern HINSTANCE hInst;
extern MWindowList hFileList;
extern HANDLE hEventNewFile;
diff --git a/plugins/FingerprintNG/src/fingerprint.cpp b/plugins/FingerprintNG/src/fingerprint.cpp
index 336044be94..723c12d8be 100644
--- a/plugins/FingerprintNG/src/fingerprint.cpp
+++ b/plugins/FingerprintNG/src/fingerprint.cpp
@@ -65,7 +65,7 @@ void __fastcall Prepare(KN_FP_MASK* mask, bool bEnable)
wchar_t destfile[MAX_PATH];
if (mask->iIconIndex == IDI_NOTFOUND || mask->iIconIndex == IDI_UNKNOWN || mask->iIconIndex == IDI_UNDETECTED)
- GetModuleFileName(g_hInst, destfile, MAX_PATH);
+ GetModuleFileName(g_plugin.getInst(), destfile, MAX_PATH);
else {
wcsncpy_s(destfile, g_szSkinLib, _TRUNCATE);
@@ -419,9 +419,9 @@ HICON __fastcall CreateIconFromIndexes(short base, short overlay, short overlay2
* Futher routines is for creating joined 'overlay' icons.
******************************************************************************/
-/*
-* CreateBitmap32 - Create DIB 32 bitmap with sizes cx*cy
-*/
+ /*
+ * CreateBitmap32 - Create DIB 32 bitmap with sizes cx*cy
+ */
HBITMAP __inline CreateBitmap32(int cx, int cy)
{
diff --git a/plugins/FingerprintNG/src/main.cpp b/plugins/FingerprintNG/src/main.cpp
index a6ffebc4b2..9859de14ca 100644
--- a/plugins/FingerprintNG/src/main.cpp
+++ b/plugins/FingerprintNG/src/main.cpp
@@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define LIB_REG 2
#define LIB_USE 3
-HINSTANCE g_hInst;
+CMPlugin g_plugin;
int hLangpack;
HANDLE hHeap = nullptr;
@@ -44,12 +44,6 @@ PLUGININFOEX pluginInfoEx = {
{ 0x687364af, 0x58b0, 0x4af2, { 0xa4, 0xee, 0x20, 0xf4, 0xa, 0x8d, 0x9a, 0xfb } }
};
-BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD, LPVOID)
-{
- g_hInst = hinstDLL;
- return TRUE;
-}
-
extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD)
{
return &pluginInfoEx;
diff --git a/plugins/FingerprintNG/src/options.cpp b/plugins/FingerprintNG/src/options.cpp
index 388a9e7175..18ee7372bd 100644
--- a/plugins/FingerprintNG/src/options.cpp
+++ b/plugins/FingerprintNG/src/options.cpp
@@ -93,7 +93,7 @@ static INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LP
break;
case WM_NOTIFY:
- NMHDR *hdr = (NMHDR *)lParam;
+ NMHDR * hdr = (NMHDR *)lParam;
if (hdr && hdr->code == PSN_APPLY) {
for (auto &it : settings)
StoreDBCheckState(hwndDlg, it.idCtrl, it.szSetName);
@@ -112,7 +112,7 @@ static INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LP
int OnOptInitialise(WPARAM wParam, LPARAM)
{
OPTIONSDIALOGPAGE odp = { 0 };
- odp.hInstance = g_hInst;
+ odp.hInstance = g_plugin.getInst();
odp.szGroup.w = LPGENW("Icons");
odp.pszTemplate = MAKEINTRESOURCEA(IDD_DIALOG);
odp.szTitle.w = LPGENW("Fingerprint");
diff --git a/plugins/FingerprintNG/src/stdafx.h b/plugins/FingerprintNG/src/stdafx.h
index 822017b095..41a6a0a683 100644
--- a/plugins/FingerprintNG/src/stdafx.h
+++ b/plugins/FingerprintNG/src/stdafx.h
@@ -28,7 +28,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <malloc.h>
// Miranda IM SDK includes
-#define __NO_CMPLUGIN_NEEDED
#include <newpluginapi.h>
#include <win2k.h>
#include <m_database.h>
@@ -113,6 +112,13 @@ typedef struct _foundInfo
#define DEFAULT_SKIN_FOLDER L"Icons\\Fp_icons.dll"
+struct CMPlugin : public PLUGIN<CMPlugin>
+{
+ CMPlugin() :
+ PLUGIN<CMPlugin>(MODULENAME)
+ {}
+};
+
void ClearFI();
void InitFingerModule(void);
@@ -127,13 +133,11 @@ HANDLE __fastcall GetIconIndexFromFI(LPTSTR szMirVer);
BOOL __fastcall WildCompareW(LPWSTR name, LPWSTR mask);
-void __fastcall Prepare(KN_FP_MASK* mask);
void RegisterIcons();
#define WildCompare WildCompareW
#define GetIconsIndexes GetIconsIndexesW
-extern HINSTANCE g_hInst;
extern HANDLE hHeap;
extern KN_FP_MASK
diff --git a/plugins/FloatingContacts/src/fltcont.h b/plugins/FloatingContacts/src/fltcont.h
index ca4919c2fc..81afdedce5 100644
--- a/plugins/FloatingContacts/src/fltcont.h
+++ b/plugins/FloatingContacts/src/fltcont.h
@@ -11,15 +11,15 @@
#define WM_REFRESH_CONTACT WM_USER + 0x100
#ifndef WS_EX_LAYERED
- #define WS_EX_LAYERED 0x00080000
+#define WS_EX_LAYERED 0x00080000
#endif
#ifndef LWA_ALPHA
- #define LWA_ALPHA 0x00000002
+#define LWA_ALPHA 0x00000002
#endif
#ifndef ULW_ALPHA
- #define ULW_ALPHA 0x00000002
+#define ULW_ALPHA 0x00000002
#endif
#define TIMERID_SELECT_T 1
@@ -57,8 +57,6 @@ enum
/////////////////////////////////////////////////////////////////////////////
//
-#define MODULE "FloatingContacts"
-
#define TOTOPTIME_P 1000
#define TOTOPTIME_MAX (15*(60000/TOTOPTIME_P))
#define TOTOPTIME_DEF (3*(60000/TOTOPTIME_P))
@@ -68,8 +66,6 @@ enum
#define DB_POS_GETY(pos) (short)(((float)(short)(HIWORD(pos))*(float)GetSystemMetrics(SM_CYSCREEN))/MAXRCOOR+0.5)
#define DB_POS_MAKE_XY(x, y) MAKELONG((short)(((float)x*MAXRCOOR)/(float)GetSystemMetrics(SM_CXSCREEN)+0.5), (short)(((float)y*MAXRCOOR)/(float)GetSystemMetrics(SM_CYSCREEN)+0.5))
-extern HINSTANCE hInst;
-
//extern BOOL bHideOffline;
//extern BOOL bHideAll;
//extern BOOL bHideWhenFullscreen;
@@ -117,7 +113,7 @@ typedef struct _FCOptions
BOOL bHideWhenCListShow;
BOOL bUseSingleClick;
BOOL bShowIdle;
-}
+}
FCOptions;
extern FCOptions fcOpt;
@@ -132,11 +128,11 @@ static __forceinline BOOL ImageList_GetIconSize_my(HIMAGELIST himl, SIZE &sz)
return res;
}
-void RegHotkey ( MCONTACT hContact, HWND hwnd );
-BOOL IsStatusVisible ( int status );
-BOOL HideOnFullScreen ();
-void SendMsgDialog ( HWND hwnd, wchar_t *pText );
-void SaveContactsPos ( void );
+void RegHotkey(MCONTACT hContact, HWND hwnd);
+BOOL IsStatusVisible(int status);
+BOOL HideOnFullScreen();
+void SendMsgDialog(HWND hwnd, wchar_t *pText);
+void SaveContactsPos(void);
/////////////////////////////////////////////////////////////////////////////
diff --git a/plugins/FloatingContacts/src/main.cpp b/plugins/FloatingContacts/src/main.cpp
index 94c00f420b..28d6b872b3 100644
--- a/plugins/FloatingContacts/src/main.cpp
+++ b/plugins/FloatingContacts/src/main.cpp
@@ -38,7 +38,6 @@ static int ClcStatusToPf2(int status);
static VOID CALLBACK ToTopTimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime);
-HINSTANCE hInst;
HFONT hFont[FLT_FONTIDS];
COLORREF tColor[FLT_FONTIDS];
HIMAGELIST himlMiranda;
@@ -63,6 +62,7 @@ BOOL bIsCListShow;
HGENMENU hMenuItemRemove, hMenuItemHideAll, hMainMenuItemHideAll;
+CMPlugin g_plugin;
int hLangpack;
CLIST_INTERFACE *pcli;
@@ -107,15 +107,6 @@ extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD)
return &pluginInfoEx;
}
-///////////////////////////////////////////////////////
-// Load / unload
-
-BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD, LPVOID)
-{
- hInst = hinstDLL;
- return TRUE;
-}
-
/////////////////////////////////////////////////////////////////////////////
// Fonts
@@ -334,17 +325,17 @@ static LRESULT __stdcall CommWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM
switch (uMsg) {
case WM_RBUTTONUP:
- {
- POINT pt;
- pt.x = LOWORD(lParam);
- pt.y = HIWORD(lParam);
+ {
+ POINT pt;
+ pt.x = LOWORD(lParam);
+ pt.y = HIWORD(lParam);
- if (pThumb) pThumb->ThumbDeselect(TRUE);
+ if (pThumb) pThumb->ThumbDeselect(TRUE);
- ClientToScreen(hwnd, &pt);
- ShowContactMenu(hwnd, pt);
- }
- break;
+ ClientToScreen(hwnd, &pt);
+ ShowContactMenu(hwnd, pt);
+ }
+ break;
case WM_CLOSE:
DestroyWindow(hwnd);
@@ -487,7 +478,7 @@ static void RegisterWindowClass()
wcx.cbSize = sizeof(WNDCLASSEX);
wcx.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS;
wcx.lpfnWndProc = CommWndProc;
- wcx.hInstance = hInst;
+ wcx.hInstance = g_plugin.getInst();
wcx.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
wcx.lpszClassName = WND_CLASS;
RegisterClassEx(&wcx);
@@ -495,7 +486,7 @@ static void RegisterWindowClass()
static void UnregisterWindowClass()
{
- UnregisterClass(WND_CLASS, hInst);
+ UnregisterClass(WND_CLASS, g_plugin.getInst());
}
static void CreateThumbWnd(wchar_t *ptszName, MCONTACT hContact, int nX, int nY)
@@ -505,7 +496,7 @@ static void CreateThumbWnd(wchar_t *ptszName, MCONTACT hContact, int nX, int nY)
return;
// Prepare for window creation
- HWND hwnd = CreateWindowEx(WS_EX_TOOLWINDOW | WS_EX_TOPMOST, WND_CLASS, ptszName, WS_POPUP, nX, nY, 50, 20, nullptr, nullptr, hInst, nullptr);
+ HWND hwnd = CreateWindowEx(WS_EX_TOOLWINDOW | WS_EX_TOPMOST, WND_CLASS, ptszName, WS_POPUP, nX, nY, 50, 20, nullptr, nullptr, g_plugin.getInst(), nullptr);
if (hwnd == nullptr)
return;
@@ -719,10 +710,10 @@ static void LoadMenus()
// Remove thumb menu item
CreateServiceFunction(MODULE "/RemoveThumb", OnContactMenu_Remove);
- SET_UID(mi,0xbab83df0, 0xe126, 0x4d9a, 0xbc, 0xc3, 0x2b, 0xea, 0x84, 0x90, 0x58, 0xc8);
+ SET_UID(mi, 0xbab83df0, 0xe126, 0x4d9a, 0xbc, 0xc3, 0x2b, 0xea, 0x84, 0x90, 0x58, 0xc8);
mi.position = 0xFFFFF;
mi.flags = CMIF_UNICODE;
- mi.hIcolibItem = LoadIcon(hInst, MAKEINTRESOURCE(IDI_HIDE));
+ mi.hIcolibItem = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_HIDE));
mi.name.w = LPGENW("Remove thumb");
mi.pszService = MODULE "/RemoveThumb";
hMenuItemRemove = Menu_AddContactMenuItem(&mi);
@@ -843,7 +834,7 @@ static LRESULT __stdcall newMirandaWndProc(HWND hwnd, UINT uMsg, WPARAM wParam,
if (method) {
WORD wBehindEdgeBorderSize = db_get_w(NULL, "ModernData", "HideBehindBorderSize", 0);
RECT rc = { wp->x, wp->y, wp->x + wp->cx, wp->y + wp->cy };
- RECT rcScr = { wBehindEdgeBorderSize*(2 - method), 0, GetSystemMetrics(SM_CXSCREEN) - wBehindEdgeBorderSize*(method - 1), GetSystemMetrics(SM_CYSCREEN) };
+ RECT rcScr = { wBehindEdgeBorderSize*(2 - method), 0, GetSystemMetrics(SM_CXSCREEN) - wBehindEdgeBorderSize * (method - 1), GetSystemMetrics(SM_CYSCREEN) };
RECT rcOverlap;
BOOL isIntersect = IntersectRect(&rcOverlap, &rc, &rcScr);
if (!isIntersect && bIsCListShow) {
@@ -914,7 +905,7 @@ extern "C" int __declspec(dllexport) Load()
mir_getLP(&pluginInfoEx);
pcli = Clist_GetInterface();
- Icon_RegisterT(hInst, _A2W(MODULE), g_iconList, _countof(g_iconList));
+ Icon_RegisterT(g_plugin.getInst(), _A2W(MODULE), g_iconList, _countof(g_iconList));
LoadMenus();
InitOptions();
diff --git a/plugins/FloatingContacts/src/options.cpp b/plugins/FloatingContacts/src/options.cpp
index c27c29b242..f34b610674 100644
--- a/plugins/FloatingContacts/src/options.cpp
+++ b/plugins/FloatingContacts/src/options.cpp
@@ -243,25 +243,25 @@ static INT_PTR APIENTRY OptSknWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
break;
case IDC_BROWSE:
- {
- wchar_t str[MAX_PATH], filter[512];
- GetDlgItemText(hwndDlg, IDC_FILENAME, str, _countof(str));
- Bitmap_GetFilter(filter, _countof(filter));
-
- OPENFILENAME ofn = { 0 };
- ofn.lStructSize = sizeof(ofn);
- ofn.hwndOwner = hwndDlg;
- ofn.lpstrFilter = filter;
- ofn.lpstrFile = str;
- ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
- ofn.nMaxFile = _countof(str);
- ofn.nMaxFileTitle = MAX_PATH;
- ofn.lpstrDefExt = L"bmp";
- if (!GetOpenFileName(&ofn))
- return FALSE;
- SetDlgItemText(hwndDlg, IDC_FILENAME, str);
- }
- break;
+ {
+ wchar_t str[MAX_PATH], filter[512];
+ GetDlgItemText(hwndDlg, IDC_FILENAME, str, _countof(str));
+ Bitmap_GetFilter(filter, _countof(filter));
+
+ OPENFILENAME ofn = { 0 };
+ ofn.lStructSize = sizeof(ofn);
+ ofn.hwndOwner = hwndDlg;
+ ofn.lpstrFilter = filter;
+ ofn.lpstrFile = str;
+ ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
+ ofn.nMaxFile = _countof(str);
+ ofn.nMaxFileTitle = MAX_PATH;
+ ofn.lpstrDefExt = L"bmp";
+ if (!GetOpenFileName(&ofn))
+ return FALSE;
+ SetDlgItemText(hwndDlg, IDC_FILENAME, str);
+ }
+ break;
case IDC_FILENAME:
if (EN_CHANGE != HIWORD(wParam) || (HWND)lParam != GetFocus())
@@ -333,7 +333,7 @@ static INT_PTR APIENTRY OptSknWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP
int OnOptionsInitialize(WPARAM wParam, LPARAM)
{
OPTIONSDIALOGPAGE odp = { 0 };
- odp.hInstance = hInst;
+ odp.hInstance = g_plugin.getInst();
odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_FLTCONT);
odp.szTitle.a = LPGEN("Floating Contacts");
odp.szGroup.a = LPGEN("Contact list");
diff --git a/plugins/FloatingContacts/src/stdafx.h b/plugins/FloatingContacts/src/stdafx.h
index 6eb9a4eaf1..82a8666bb7 100644
--- a/plugins/FloatingContacts/src/stdafx.h
+++ b/plugins/FloatingContacts/src/stdafx.h
@@ -8,8 +8,6 @@
#include <Shlwapi.h>
#include <CommCtrl.h>
-#define __NO_CMPLUGIN_NEEDED
-
#include <newpluginapi.h>
#include <m_system.h>
#include <m_skin.h>
@@ -34,6 +32,15 @@
/////////////////////////////////////////////////////////////////////////////
+#define MODULE "FloatingContacts"
+
+struct CMPlugin : public PLUGIN<CMPlugin>
+{
+ CMPlugin() :
+ PLUGIN<CMPlugin>(MODULE)
+ {}
+};
+
#endif // #ifndef __STDHDR_H__
/////////////////////////////////////////////////////////////////////////////
diff --git a/plugins/Folders/src/dlg_handlers.cpp b/plugins/Folders/src/dlg_handlers.cpp
index 1135235741..45b38585f4 100644
--- a/plugins/Folders/src/dlg_handlers.cpp
+++ b/plugins/Folders/src/dlg_handlers.cpp
@@ -194,7 +194,7 @@ static INT_PTR CALLBACK DlgProcOpts(HWND hWnd, UINT msg, WPARAM wParam, LPARAM l
break;
case IDC_HELP_BUTTON:
- ShowWindow(CreateDialog(hInstance, MAKEINTRESOURCE(IDD_VARIABLES_HELP), hWnd, DlgProcVariables), SW_SHOW);
+ ShowWindow(CreateDialog(g_plugin.getInst(), MAKEINTRESOURCE(IDD_VARIABLES_HELP), hWnd, DlgProcVariables), SW_SHOW);
break;
case IDC_FOLDERS_SECTIONS_LIST:
@@ -247,7 +247,7 @@ static int OnOptionsInitialize(WPARAM wParam, LPARAM)
{
OPTIONSDIALOGPAGE odp = { 0 };
odp.position = 100000000;
- odp.hInstance = hInstance;
+ odp.hInstance = g_plugin.getInst();
odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_FOLDERS);
odp.szTitle.a = LPGEN("Folders");
odp.szGroup.a = LPGEN("Customize");
diff --git a/plugins/Folders/src/folders.cpp b/plugins/Folders/src/folders.cpp
index e31e048b24..20f9f17050 100644
--- a/plugins/Folders/src/folders.cpp
+++ b/plugins/Folders/src/folders.cpp
@@ -20,8 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "stdafx.h"
-char ModuleName[] = "Folders";
-HINSTANCE hInstance;
+CMPlugin g_plugin;
int hLangpack;
OBJLIST<CFolderItem> lstRegisteredFolders(10, PtrKeySortT);
@@ -59,9 +58,3 @@ extern "C" __declspec(dllexport) int Unload()
DestroyEvents();
return 0;
}
-
-BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD, LPVOID)
-{
- hInstance = hinstDLL;
- return TRUE;
-}
diff --git a/plugins/Folders/src/stdafx.h b/plugins/Folders/src/stdafx.h
index 17b917a9f7..e78ab16a32 100644
--- a/plugins/Folders/src/stdafx.h
+++ b/plugins/Folders/src/stdafx.h
@@ -30,8 +30,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <string.h>
#include <malloc.h>
-#define __NO_CMPLUGIN_NEEDED
-
#include <newpluginapi.h>
#include <m_database.h>
#include <m_system.h>
@@ -56,8 +54,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define MS_FOLDERS_TEST_PLUGIN "Folders/Test/Plugin"
-extern char ModuleName[];
-extern HINSTANCE hInstance;
+#define ModuleName "Folders"
+
+struct CMPlugin : public PLUGIN<CMPlugin>
+{
+ CMPlugin() :
+ PLUGIN<CMPlugin>(ModuleName)
+ {}
+};
+
extern OBJLIST<CFolderItem> lstRegisteredFolders;
#endif //FOLDERS_COMMONHEADERS_H \ No newline at end of file