From 650fc5a2103cedfe149500ade9c684ecf381d348 Mon Sep 17 00:00:00 2001 From: Mataes Date: Wed, 16 May 2018 21:48:52 +0300 Subject: FavContacts, FileAsMessage, Fingerprint, FloatingContacts, Folders, FTPFile: cmplugin adaptation --- plugins/FTPFileYM/src/dialog.cpp | 290 +++++++++++----------- plugins/FTPFileYM/src/ftpfile.cpp | 10 +- plugins/FTPFileYM/src/job_upload.cpp | 2 +- plugins/FTPFileYM/src/manager.cpp | 156 ++++++------ plugins/FTPFileYM/src/options.cpp | 2 +- plugins/FTPFileYM/src/stdafx.h | 9 +- plugins/FTPFileYM/src/utils.cpp | 8 +- plugins/FavContacts/src/main.cpp | 11 +- plugins/FavContacts/src/menu.cpp | 36 +-- plugins/FavContacts/src/options.cpp | 112 ++++----- plugins/FavContacts/src/stdafx.h | 10 +- plugins/FileAsMessage/src/dialog.cpp | 394 +++++++++++++++--------------- plugins/FileAsMessage/src/dialog.h | 2 - plugins/FileAsMessage/src/main.cpp | 19 +- plugins/FileAsMessage/src/stdafx.h | 10 +- plugins/FingerprintNG/src/fingerprint.cpp | 8 +- plugins/FingerprintNG/src/main.cpp | 8 +- plugins/FingerprintNG/src/options.cpp | 4 +- plugins/FingerprintNG/src/stdafx.h | 10 +- plugins/FloatingContacts/src/fltcont.h | 22 +- plugins/FloatingContacts/src/main.cpp | 43 ++-- plugins/FloatingContacts/src/options.cpp | 40 +-- plugins/FloatingContacts/src/stdafx.h | 11 +- plugins/Folders/src/dlg_handlers.cpp | 4 +- plugins/Folders/src/folders.cpp | 9 +- plugins/Folders/src/stdafx.h | 13 +- 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 . #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 . #include using namespace std; -#define __NO_CMPLUGIN_NEEDED - #include #include #include @@ -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() : + PLUGIN(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 #include -#define __NO_CMPLUGIN_NEEDED - #include #include #include @@ -101,5 +99,11 @@ void UninitMenu(); void InitServices(); void UninitServices(); -extern HINSTANCE g_hInst; extern IconItem iconList[]; + +struct CMPlugin : public PLUGIN +{ + CMPlugin() : + PLUGIN("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 #include -#define __NO_CMPLUGIN_NEEDED - #include #include #include @@ -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() : + PLUGIN(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 // Miranda IM SDK includes -#define __NO_CMPLUGIN_NEEDED #include #include #include @@ -113,6 +112,13 @@ typedef struct _foundInfo #define DEFAULT_SKIN_FOLDER L"Icons\\Fp_icons.dll" +struct CMPlugin : public PLUGIN +{ + CMPlugin() : + PLUGIN(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 #include -#define __NO_CMPLUGIN_NEEDED - #include #include #include @@ -34,6 +32,15 @@ ///////////////////////////////////////////////////////////////////////////// +#define MODULE "FloatingContacts" + +struct CMPlugin : public PLUGIN +{ + CMPlugin() : + PLUGIN(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 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 #include -#define __NO_CMPLUGIN_NEEDED - #include #include #include @@ -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() : + PLUGIN(ModuleName) + {} +}; + extern OBJLIST lstRegisteredFolders; #endif //FOLDERS_COMMONHEADERS_H \ No newline at end of file -- cgit v1.2.3