summaryrefslogtreecommitdiff
path: root/plugins/DbChecker/src
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/DbChecker/src')
-rw-r--r--plugins/DbChecker/src/cleaning.cpp59
-rw-r--r--plugins/DbChecker/src/fileaccess.cpp67
-rw-r--r--plugins/DbChecker/src/finished.cpp51
-rw-r--r--plugins/DbChecker/src/main.cpp93
-rw-r--r--plugins/DbChecker/src/openerror.cpp54
-rw-r--r--plugins/DbChecker/src/progress.cpp247
-rw-r--r--plugins/DbChecker/src/resource.h52
-rw-r--r--plugins/DbChecker/src/selectdb.cpp334
-rw-r--r--plugins/DbChecker/src/stdafx.cxx18
-rw-r--r--plugins/DbChecker/src/stdafx.h80
-rw-r--r--plugins/DbChecker/src/version.h13
-rw-r--r--plugins/DbChecker/src/welcome.cpp71
-rw-r--r--plugins/DbChecker/src/wizard.cpp157
-rw-r--r--plugins/DbChecker/src/worker.cpp148
14 files changed, 0 insertions, 1444 deletions
diff --git a/plugins/DbChecker/src/cleaning.cpp b/plugins/DbChecker/src/cleaning.cpp
deleted file mode 100644
index ecfdaf6de5..0000000000
--- a/plugins/DbChecker/src/cleaning.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-Miranda Database Tool
-Copyright (C) 2001-2005 Richard Hughes
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "stdafx.h"
-
-INT_PTR CALLBACK CleaningDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- INT_PTR bReturn;
- if (DoMyControlProcessing(hdlg, message, wParam, lParam, &bReturn))
- return bReturn;
-
- switch (message) {
- case WM_INITDIALOG:
- CheckDlgButton(hdlg, IDC_ERASEHISTORY, opts.bEraseHistory ? BST_CHECKED : BST_UNCHECKED);
- EnableWindow(GetDlgItem(hdlg, IDC_ERASEHISTORY), !opts.bAggressive);
- CheckDlgButton(hdlg, IDC_MARKREAD, opts.bMarkRead ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_CONVERTUTF, opts.bConvertUtf ? BST_CHECKED : BST_UNCHECKED);
- TranslateDialogDefault(hdlg);
- return TRUE;
-
- case WZN_PAGECHANGING:
- opts.bEraseHistory = IsDlgButtonChecked(hdlg, IDC_ERASEHISTORY) && !opts.bAggressive;
- opts.bMarkRead = IsDlgButtonChecked(hdlg, IDC_MARKREAD);
- opts.bConvertUtf = IsDlgButtonChecked(hdlg, IDC_CONVERTUTF);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_BACK:
- if (opts.bCheckOnly)
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_SELECTDB, (LPARAM)SelectDbDlgProc);
- else
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_FILEACCESS, (LPARAM)FileAccessDlgProc);
- break;
-
- case IDOK:
- OpenDatabase(hdlg, IDD_PROGRESS);
- break;
- }
- break;
- }
- return FALSE;
-}
diff --git a/plugins/DbChecker/src/fileaccess.cpp b/plugins/DbChecker/src/fileaccess.cpp
deleted file mode 100644
index c189f429f6..0000000000
--- a/plugins/DbChecker/src/fileaccess.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-Miranda Database Tool
-Copyright (C) 2001-2005 Richard Hughes
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "stdafx.h"
-
-INT_PTR CALLBACK FileAccessDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- INT_PTR bReturn;
- if (DoMyControlProcessing(hdlg, message, wParam, lParam, &bReturn))
- return bReturn;
-
- switch (message) {
- case WM_INITDIALOG:
- if (bShortMode)
- EnableWindow(GetDlgItem(GetParent(hdlg), IDC_BACK), FALSE);
- CheckDlgButton(hdlg, IDC_CHECKONLY, opts.bCheckOnly ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_BACKUP, opts.bBackup ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_AGGRESSIVE, opts.bAggressive ? BST_CHECKED : BST_UNCHECKED);
- SendMessage(hdlg, WM_COMMAND, MAKEWPARAM(IDC_CHECKONLY, BN_CLICKED), 0);
- TranslateDialogDefault(hdlg);
- return TRUE;
-
- case WZN_PAGECHANGING:
- opts.bCheckOnly = IsDlgButtonChecked(hdlg, IDC_CHECKONLY);
- opts.bAggressive = IsDlgButtonChecked(hdlg, IDC_AGGRESSIVE);
- if (opts.bCheckOnly) opts.bBackup = 0;
- else opts.bBackup = IsDlgButtonChecked(hdlg, IDC_BACKUP);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_BACK:
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_SELECTDB, (LPARAM)SelectDbDlgProc);
- break;
-
- case IDOK:
- if (opts.bCheckOnly)
- OpenDatabase(hdlg, IDD_PROGRESS);
- else
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_CLEANING, (LPARAM)CleaningDlgProc);
- break;
-
- case IDC_CHECKONLY:
- EnableWindow(GetDlgItem(hdlg, IDC_BACKUP), BST_UNCHECKED == IsDlgButtonChecked(hdlg, IDC_CHECKONLY));
- EnableWindow(GetDlgItem(hdlg, IDC_STBACKUP), BST_UNCHECKED == IsDlgButtonChecked(hdlg, IDC_CHECKONLY));
- break;
- }
- break;
- }
- return FALSE;
-}
diff --git a/plugins/DbChecker/src/finished.cpp b/plugins/DbChecker/src/finished.cpp
deleted file mode 100644
index 2609a763bd..0000000000
--- a/plugins/DbChecker/src/finished.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-Miranda Database Tool
-Copyright (C) 2001-2005 Richard Hughes
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "stdafx.h"
-
-INT_PTR CALLBACK FinishedDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- INT_PTR bReturn;
- if (DoMyControlProcessing(hdlg, message, wParam, lParam, &bReturn))
- return bReturn;
-
- switch (message) {
- case WM_INITDIALOG:
- EnableWindow(GetDlgItem(GetParent(hdlg), IDC_BACK), FALSE);
- EnableWindow(GetDlgItem(GetParent(hdlg), IDOK), FALSE);
- SetDlgItemText(GetParent(hdlg), IDCANCEL, TranslateT("&Finish"));
- SetWindowLongPtr(GetDlgItem(hdlg, IDC_DBFILE), GWL_STYLE, GetWindowLongPtr(GetDlgItem(hdlg, IDC_DBFILE), GWL_STYLE) | SS_PATHELLIPSIS);
- SetDlgItemText(hdlg, IDC_DBFILE, opts.filename);
- if (opts.bBackup) {
- ShowWindow(GetDlgItem(hdlg, IDC_STBACKUP), TRUE);
- SetWindowLongPtr(GetDlgItem(hdlg, IDC_BACKUPFILE), GWL_STYLE, GetWindowLongPtr(GetDlgItem(hdlg, IDC_BACKUPFILE), GWL_STYLE) | SS_PATHELLIPSIS);
- SetDlgItemText(hdlg, IDC_BACKUPFILE, opts.backupFilename);
- }
- else ShowWindow(GetDlgItem(hdlg, IDC_STBACKUP), FALSE);
- TranslateDialogDefault(hdlg);
- return TRUE;
-
- case WZN_CANCELCLICKED:
- bLaunchMiranda = IsDlgButtonChecked(hdlg, IDC_LAUNCHMIRANDA) == BST_CHECKED;
- Profile_SetDefault(opts.filename);
- wizardResult = 1;
- return TRUE;
- }
- return FALSE;
-}
diff --git a/plugins/DbChecker/src/main.cpp b/plugins/DbChecker/src/main.cpp
deleted file mode 100644
index 438a32f6d4..0000000000
--- a/plugins/DbChecker/src/main.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
-Miranda Database Tool
-Copyright (C) 2001-2005 Richard Hughes
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "stdafx.h"
-
-HINSTANCE hInst;
-int hLangpack = 0;
-bool bServiceMode, bLaunchMiranda, bShortMode, bAutoExit;
-
-DbToolOptions opts = { 0 };
-
-PLUGININFOEX pluginInfoEx =
-{
- sizeof(pluginInfoEx),
- __PLUGIN_NAME,
- PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
- __DESCRIPTION,
- __AUTHOR,
- __COPYRIGHT,
- __AUTHORWEB,
- UNICODE_AWARE | STATIC_PLUGIN,
- // {A0138FC6-4C52-4501-AF93-7D3E20BCAE5B}
- { 0xa0138fc6, 0x4c52, 0x4501, { 0xaf, 0x93, 0x7d, 0x3e, 0x20, 0xbc, 0xae, 0x5b } }
-};
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD, LPVOID)
-{
- hInst = hinstDLL;
- return TRUE;
-}
-
-extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD)
-{
- return &pluginInfoEx;
-}
-
-// we implement service mode interface
-extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = { MIID_SERVICEMODE, MIID_LAST };
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-static HANDLE hService; // do not remove it!
-
-static INT_PTR ServiceMode(WPARAM, LPARAM)
-{
- bLaunchMiranda = bShortMode = bAutoExit = false;
- bServiceMode = true;
- DialogBox(hInst, MAKEINTRESOURCE(IDD_WIZARD), nullptr, WizardDlgProc);
- return (bLaunchMiranda) ? SERVICE_CONTINUE : SERVICE_FAILED;
-}
-
-static INT_PTR CheckProfile(WPARAM wParam, LPARAM lParam)
-{
- bShortMode = true;
- bLaunchMiranda = lParam != 0;
- bAutoExit = lParam == 2;
- bServiceMode = false;
- wcsncpy(opts.filename, (wchar_t*)wParam, _countof(opts.filename));
- return DialogBox(hInst, MAKEINTRESOURCE(IDD_WIZARD), nullptr, WizardDlgProc);
-}
-
-extern "C" __declspec(dllexport) int Load(void)
-{
- mir_getLP(&pluginInfoEx);
-
- CreateServiceFunction(MS_DB_CHECKPROFILE, CheckProfile);
- hService = CreateServiceFunction(MS_SERVICEMODE_LAUNCH, ServiceMode);
- return 0;
-}
-
-extern "C" __declspec(dllexport) int Unload(void)
-{
- DestroyServiceFunction(hService);
- return 0;
-}
diff --git a/plugins/DbChecker/src/openerror.cpp b/plugins/DbChecker/src/openerror.cpp
deleted file mode 100644
index 3c98c1e8b2..0000000000
--- a/plugins/DbChecker/src/openerror.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-Miranda Database Tool
-Copyright (C) 2001-2005 Richard Hughes
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "stdafx.h"
-
-INT_PTR CALLBACK OpenErrorDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- INT_PTR bReturn;
- if (DoMyControlProcessing(hdlg, message, wParam, lParam, &bReturn))
- return bReturn;
-
- switch (message) {
- case WM_INITDIALOG:
- {
- wchar_t szError[256];
- FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nullptr, opts.error, 0, szError, _countof(szError), nullptr);
- SetDlgItemText(hdlg, IDC_ERRORTEXT, szError);
- }
- if (opts.error == ERROR_SHARING_VIOLATION) ShowWindow(GetDlgItem(hdlg, IDC_INUSE), SW_SHOW);
- SetWindowLongPtr(GetDlgItem(hdlg, IDC_FILE), GWL_STYLE, GetWindowLongPtr(GetDlgItem(hdlg, IDC_FILE), GWL_STYLE) | SS_PATHELLIPSIS);
- TranslateDialogDefault(hdlg);
- SetDlgItemText(hdlg, IDC_FILE, opts.filename);
- return TRUE;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_BACK:
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_SELECTDB, (LPARAM)SelectDbDlgProc);
- break;
-
- case IDOK:
- OpenDatabase(hdlg, IDD_FILEACCESS);
- break;
- }
- break;
- }
- return FALSE;
-}
diff --git a/plugins/DbChecker/src/progress.cpp b/plugins/DbChecker/src/progress.cpp
deleted file mode 100644
index 5949c9e89c..0000000000
--- a/plugins/DbChecker/src/progress.cpp
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
-Miranda Database Tool
-Copyright (C) 2001-2005 Richard Hughes
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "stdafx.h"
-
-#define WM_PROCESSINGDONE (WM_USER+1)
-
-void __cdecl WorkerThread(void *unused);
-static HWND hwndStatus, hdlgProgress, hwndBar;
-static bool bShortModeDone;
-HANDLE hEventRun = nullptr, hEventAbort = nullptr;
-int errorCount;
-LRESULT wizardResult;
-
-void AddToStatus(int flags, const wchar_t* fmt, ...)
-{
- va_list vararg;
- va_start(vararg, fmt);
-
- wchar_t str[256];
- mir_vsnwprintf(str, _countof(str), fmt, vararg);
- va_end(vararg);
-
- int i = SendMessage(hwndStatus, LB_ADDSTRING, 0, (LPARAM)str);
- SendMessage(hwndStatus, LB_SETITEMDATA, i, flags);
- InvalidateRect(hwndStatus, nullptr, FALSE);
- SendMessage(hwndStatus, LB_SETTOPINDEX, i, 0);
-
-#ifdef _DEBUG
- OutputDebugString(str);
- OutputDebugStringA("\n");
-#endif
-
- switch (flags & STATUS_CLASSMASK) {
- case STATUS_ERROR:
- case STATUS_FATAL:
- errorCount++;
- }
-}
-
-void SetProgressBar(int perThou)
-{
- SendMessage(hwndBar, PBM_SETPOS, perThou, 0);
-}
-
-void ProcessingDone(void)
-{
- SendMessage(hdlgProgress, WM_PROCESSINGDONE, 0, 0);
-}
-
-INT_PTR CALLBACK ProgressDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- static int fontHeight, listWidth;
- static int manualAbort;
- static HFONT hBoldFont = nullptr;
-
- INT_PTR bReturn;
- if (DoMyControlProcessing(hdlg, message, wParam, lParam, &bReturn))
- return bReturn;
-
- switch (message) {
- case WM_INITDIALOG:
- EnableWindow(GetDlgItem(GetParent(hdlg), IDOK), FALSE);
- hdlgProgress = hdlg;
- hwndStatus = GetDlgItem(hdlg, IDC_STATUS);
- errorCount = 0;
- bShortModeDone = false;
- hwndBar = GetDlgItem(hdlg, IDC_PROGRESS);
- SendMessage(hwndBar, PBM_SETRANGE, 0, MAKELPARAM(0, 1000));
- {
- HDC hdc;
- HFONT hFont, hoFont;
- SIZE s;
- hdc = GetDC(nullptr);
- hFont = (HFONT)SendMessage(hdlg, WM_GETFONT, 0, 0);
- hoFont = (HFONT)SelectObject(hdc, hFont);
- GetTextExtentPoint32(hdc, L"x", 1, &s);
- SelectObject(hdc, hoFont);
- ReleaseDC(nullptr, hdc);
- fontHeight = s.cy;
-
- RECT rc;
- GetClientRect(GetDlgItem(hdlg, IDC_STATUS), &rc);
- listWidth = rc.right;
-
- LOGFONT lf;
- GetObject((HFONT)SendDlgItemMessage(hdlg, IDC_STATUS, WM_GETFONT, 0, 0), sizeof(lf), &lf);
- lf.lfWeight = FW_BOLD;
- hBoldFont = CreateFontIndirect(&lf);
- }
- manualAbort = 0;
- hEventRun = CreateEvent(nullptr, TRUE, TRUE, nullptr);
- hEventAbort = CreateEvent(nullptr, TRUE, FALSE, nullptr);
- TranslateDialogDefault(hdlg);
- _beginthread(WorkerThread, 0, nullptr);
- return TRUE;
-
- case WM_MEASUREITEM:
- {
- LPMEASUREITEMSTRUCT mis = (LPMEASUREITEMSTRUCT)lParam;
- mis->itemWidth = listWidth;
- mis->itemHeight = fontHeight;
- }
- return TRUE;
-
- case WM_DRAWITEM:
- wchar_t str[256];
- {
- LPDRAWITEMSTRUCT dis = (LPDRAWITEMSTRUCT)lParam;
- int bold = 0;
- HFONT hoFont = nullptr;
- if ((int)dis->itemID == -1) break;
- SendMessage(dis->hwndItem, LB_GETTEXT, dis->itemID, (LPARAM)str);
- switch (dis->itemData & STATUS_CLASSMASK) {
- case STATUS_MESSAGE:
- SetTextColor(dis->hDC, RGB(0, 0, 0));
- break;
- case STATUS_WARNING:
- SetTextColor(dis->hDC, RGB(192, 128, 0));
- break;
- case STATUS_ERROR:
- SetTextColor(dis->hDC, RGB(192, 0, 0));
- break;
- case STATUS_FATAL:
- bold = 1;
- SetTextColor(dis->hDC, RGB(192, 0, 0));
- break;
- case STATUS_SUCCESS:
- bold = 1;
- SetTextColor(dis->hDC, RGB(0, 192, 0));
- break;
- }
- if (bold) hoFont = (HFONT)SelectObject(dis->hDC, hBoldFont);
- ExtTextOut(dis->hDC, dis->rcItem.left, dis->rcItem.top, ETO_CLIPPED | ETO_OPAQUE, &dis->rcItem, str, (UINT)mir_wstrlen(str), nullptr);
- if (bold) SelectObject(dis->hDC, hoFont);
- }
- return TRUE;
-
- case WM_PROCESSINGDONE:
- SetProgressBar(1000);
- if (bShortMode) {
- EnableWindow(GetDlgItem(GetParent(hdlg), IDC_BACK), FALSE);
- EnableWindow(GetDlgItem(GetParent(hdlg), IDOK), FALSE);
- SetDlgItemText(GetParent(hdlg), IDCANCEL, TranslateT("&Finish"));
- bShortModeDone = true;
- if (bAutoExit)
- PostMessage(GetParent(hdlg), WM_COMMAND, IDCANCEL, 0);
- }
- else {
- AddToStatus(STATUS_SUCCESS, TranslateT("Click Next to continue"));
- EnableWindow(GetDlgItem(GetParent(hdlg), IDOK), TRUE);
- }
-
- if (manualAbort == 1)
- EndDialog(GetParent(hdlg), 0);
- else if (manualAbort == 2) {
- if (opts.bCheckOnly)
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_FILEACCESS, (LPARAM)FileAccessDlgProc);
- else {
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_CLEANING, (LPARAM)CleaningDlgProc);
- CloseHandle(opts.hOutFile);
- opts.hOutFile = nullptr;
- }
- break;
- }
- break;
-
- case WZN_CANCELCLICKED:
- if (bShortModeDone) {
- if (!errorCount) {
- if (bLaunchMiranda)
- Profile_SetDefault(opts.filename);
- wizardResult = 1;
- }
- return TRUE;
- }
-
- ResetEvent(hEventRun);
- if (IsWindowEnabled(GetDlgItem(GetParent(hdlg), IDOK)))
- break;
-
- if (MessageBox(hdlg, TranslateT("Processing has not yet completed, if you cancel now then the changes that have currently been made will be rolled back and the original database will be restored. Do you still want to cancel?"), TranslateT("Miranda Database Tool"), MB_YESNO) == IDYES) {
- manualAbort = 1;
- SetEvent(hEventAbort);
- }
- SetEvent(hEventRun);
- SetWindowLongPtr(hdlg, DWLP_MSGRESULT, TRUE);
- return TRUE;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_BACK:
- ResetEvent(hEventRun);
- if (!IsWindowEnabled(GetDlgItem(GetParent(hdlg), IDOK))) {
- if (MessageBox(hdlg, TranslateT("Processing has not yet completed, if you go back now then the changes that have currently been made will be rolled back and the original database will be restored. Do you still want to go back?"), TranslateT("Miranda Database Tool"), MB_YESNO) == IDYES) {
- manualAbort = 2;
- SetEvent(hEventAbort);
- }
- SetEvent(hEventRun);
- break;
- }
- SetEvent(hEventRun);
- if (opts.bCheckOnly)
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_FILEACCESS, (LPARAM)FileAccessDlgProc);
- else
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_CLEANING, (LPARAM)CleaningDlgProc);
- break;
-
- case IDOK:
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_FINISHED, (LPARAM)FinishedDlgProc);
- break;
- }
- break;
-
- case WM_DESTROY:
- if (hEventAbort) {
- CloseHandle(hEventAbort);
- hEventAbort = nullptr;
- }
- if (hEventRun) {
- CloseHandle(hEventRun);
- hEventRun = nullptr;
- }
- if (hBoldFont) {
- DeleteObject(hBoldFont);
- hBoldFont = nullptr;
- }
- break;
- }
- return FALSE;
-}
diff --git a/plugins/DbChecker/src/resource.h b/plugins/DbChecker/src/resource.h
deleted file mode 100644
index 9a6e8666de..0000000000
--- a/plugins/DbChecker/src/resource.h
+++ /dev/null
@@ -1,52 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by resource.rc
-//
-#define IDC_BACK 3
-#define IDD_WIZARD 101
-#define IDE_WATERMARK 102
-#define IDI_DBTOOL 102
-#define IDE_HDRLOGO 103
-#define IDI_PROFILEGREEN 104
-#define IDR_DEFAULT1 104
-#define IDD_WELCOME 106
-#define IDD_SELECTDB 107
-#define IDD_OPENERROR 108
-#define IDD_FILEACCESS 109
-#define IDD_CLEANING 110
-#define IDD_PROGRESS 111
-#define IDD_FINISHED 112
-#define IDI_BAD 113
-#define IDC_WATERMARK 1000
-#define IDC_TITLE 1001
-#define IDC_HDRLOGO 1002
-#define IDC_DBLIST 1003
-#define IDC_FILE 1004
-#define IDC_OTHER 1005
-#define IDC_ERRORTEXT 1006
-#define IDC_INUSE 1007
-#define IDC_BACKUP 1008
-#define IDC_AGGRESSIVE 1009
-#define IDC_ERASEHISTORY 1010
-#define IDC_CHECKONLY 1010
-#define IDC_MARKREAD 1011
-#define IDC_PROGRESS 1011
-#define IDC_STATUS 1012
-#define IDC_STBACKUP 1013
-#define IDC_LAUNCHMIRANDA 1015
-#define IDC_DBFILE 1016
-#define IDC_BACKUPFILE 1017
-#define IDC_CHECK1 1018
-#define IDC_CONVERTUTF 1018
-#define IDC_STATIC -1
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 105
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1019
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
diff --git a/plugins/DbChecker/src/selectdb.cpp b/plugins/DbChecker/src/selectdb.cpp
deleted file mode 100644
index 559dc5d7fd..0000000000
--- a/plugins/DbChecker/src/selectdb.cpp
+++ /dev/null
@@ -1,334 +0,0 @@
-/*
-Miranda Database Tool
-Copyright (C) 2001-2005 Richard Hughes
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "stdafx.h"
-
-static bool CheckBroken(const wchar_t *ptszFullPath)
-{
- DATABASELINK *dblink = FindDatabasePlugin(ptszFullPath);
- if (dblink == nullptr || dblink->CheckDB == nullptr)
- return true;
-
- return dblink->grokHeader(ptszFullPath) != EGROKPRF_NOERROR;
-}
-
-int OpenDatabase(HWND hdlg, INT iNextPage)
-{
- wchar_t tszMsg[1024];
- int error = 0;
-
- if (opts.dbChecker == nullptr) {
- DATABASELINK* dblink = FindDatabasePlugin(opts.filename);
- if (dblink == nullptr) {
- mir_snwprintf(tszMsg,
- TranslateT("Database Checker cannot find a suitable database plugin to open '%s'."),
- opts.filename);
- LBL_Error:
- MessageBox(hdlg, tszMsg, TranslateT("Error"), MB_OK | MB_ICONERROR);
- return false;
- }
-
- if (dblink->CheckDB == nullptr) {
- mir_snwprintf(tszMsg,
- TranslateT("Database driver '%s' doesn't support checking."),
- TranslateW(dblink->szFullName));
- goto LBL_Error;
- }
-
- opts.dbChecker = dblink->CheckDB(opts.filename, &error);
- if (opts.dbChecker == nullptr) {
- if ((opts.error = GetLastError()) == 0)
- opts.error = error;
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_OPENERROR, (LPARAM)OpenErrorDlgProc);
- return true;
- }
- opts.dblink = dblink;
- }
-
- // force check
- if (error == EGROKPRF_OBSOLETE) {
- opts.bAggressive = opts.bBackup = true;
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_PROGRESS, (LPARAM)ProgressDlgProc);
- }
- else if (iNextPage == IDD_FILEACCESS)
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_FILEACCESS, (LPARAM)FileAccessDlgProc);
- else
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_PROGRESS, (LPARAM)ProgressDlgProc);
- return true;
-}
-
-void GetProfileDirectory(wchar_t* szMirandaDir, wchar_t* szPath, int cbPath)
-{
- wchar_t szProfileDir[MAX_PATH], szExpandedProfileDir[MAX_PATH], szMirandaBootIni[MAX_PATH];
-
- mir_wstrcpy(szMirandaBootIni, szMirandaDir);
- mir_wstrcat(szMirandaBootIni, L"\\mirandaboot.ini");
- GetPrivateProfileString(L"Database", L"ProfileDir", L"./Profiles", szProfileDir, _countof(szProfileDir), szMirandaBootIni);
- ExpandEnvironmentStrings(szProfileDir, szExpandedProfileDir, _countof(szExpandedProfileDir));
- _wchdir(szMirandaDir);
- if (!_wfullpath(szPath, szExpandedProfileDir, cbPath))
- mir_wstrncpy(szPath, szMirandaDir, cbPath);
- if (szPath[mir_wstrlen(szPath) - 1] == '\\')
- szPath[mir_wstrlen(szPath) - 1] = 0;
-}
-
-static int AddDatabaseToList(HWND hwndList, const wchar_t* filename, wchar_t* dir)
-{
- LV_ITEM lvi;
- lvi.mask = LVIF_PARAM;
- lvi.iSubItem = 0;
- for (lvi.iItem = ListView_GetItemCount(hwndList) - 1; lvi.iItem >= 0; lvi.iItem--) {
- ListView_GetItem(hwndList, &lvi);
- if (!mir_wstrcmpi((wchar_t*)lvi.lParam, filename))
- return lvi.iItem;
- }
-
- struct _stat st;
- if (_wstat(filename, &st) == -1)
- return -1;
-
- DWORD totalSize = st.st_size;
-
- bool isBroken = CheckBroken(filename);
-
- const wchar_t *pName = wcsrchr(filename, '\\');
- if (pName == nullptr)
- pName = (LPTSTR)filename;
- else
- pName++;
-
- wchar_t szName[MAX_PATH];
- mir_snwprintf(szName, L"%s%s", dir, pName);
-
- wchar_t *pDot = wcsrchr(szName, '.');
- if (pDot != nullptr && !mir_wstrcmpi(pDot, L".dat"))
- *pDot = 0;
-
- lvi.iItem = 0;
- lvi.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE;
- lvi.iSubItem = 0;
- lvi.lParam = (LPARAM)wcsdup(filename);
- lvi.pszText = szName;
- lvi.iImage = (isBroken) ? 1 : 0;
-
- int iNewItem = ListView_InsertItem(hwndList, &lvi);
- wchar_t szSize[20];
- mir_snwprintf(szSize, L"%.2lf MB", totalSize / 1048576.0);
- ListView_SetItemText(hwndList, iNewItem, 1, szSize);
- return iNewItem;
-}
-
-void FindAdd(HWND hdlg, wchar_t *szProfileDir, wchar_t *szPrefix)
-{
- HANDLE hFind;
- WIN32_FIND_DATA fd;
- wchar_t szSearchPath[MAX_PATH], szFilename[MAX_PATH];
-
- mir_wstrcpy(szSearchPath, szProfileDir);
- mir_wstrcat(szSearchPath, L"\\*.*");
-
- hFind = FindFirstFile(szSearchPath, &fd);
- if (hFind != INVALID_HANDLE_VALUE) {
- do {
- if (!(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) || !mir_wstrcmp(fd.cFileName, L".") || !mir_wstrcmp(fd.cFileName, L".."))
- continue;
-
- mir_snwprintf(szFilename, L"%s\\%s\\%s.dat", szProfileDir, fd.cFileName, fd.cFileName);
- if (_waccess(szFilename, 0) == 0)
- AddDatabaseToList(GetDlgItem(hdlg, IDC_DBLIST), szFilename, szPrefix);
- } while (FindNextFile(hFind, &fd));
- FindClose(hFind);
- }
-}
-
-wchar_t *addstring(wchar_t *str, wchar_t *add)
-{
- mir_wstrcpy(str, add);
- return str + mir_wstrlen(add) + 1;
-}
-
-INT_PTR CALLBACK SelectDbDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- INT_PTR bReturn;
- if (DoMyControlProcessing(hdlg, message, wParam, lParam, &bReturn))
- return bReturn;
-
- switch (message) {
- case WM_INITDIALOG:
- TranslateDialogDefault(hdlg);
- {
- HIMAGELIST hIml = ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), ILC_COLOR32 | ILC_MASK, 3, 3);
- ImageList_AddIcon(hIml, LoadIcon(hInst, MAKEINTRESOURCE(IDI_PROFILEGREEN)));
- ImageList_AddIcon(hIml, LoadIcon(hInst, MAKEINTRESOURCE(IDI_BAD)));
- ListView_SetImageList(GetDlgItem(hdlg, IDC_DBLIST), hIml, LVSIL_SMALL);
- }
- ListView_SetExtendedListViewStyleEx(GetDlgItem(hdlg, IDC_DBLIST), LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
- {
- LV_COLUMN lvc;
- lvc.mask = LVCF_WIDTH | LVCF_FMT | LVCF_TEXT;
- lvc.cx = 290;
- lvc.fmt = LVCFMT_LEFT;
- lvc.pszText = TranslateT("Database");
- ListView_InsertColumn(GetDlgItem(hdlg, IDC_DBLIST), 0, &lvc);
- lvc.cx = 68;
- lvc.fmt = LVCFMT_RIGHT;
- lvc.pszText = TranslateT("Total size");
- ListView_InsertColumn(GetDlgItem(hdlg, IDC_DBLIST), 1, &lvc);
-
- wchar_t szMirandaPath[MAX_PATH];
- GetModuleFileName(nullptr, szMirandaPath, _countof(szMirandaPath));
- wchar_t *str2 = wcsrchr(szMirandaPath, '\\');
- if (str2 != nullptr)
- *str2 = 0;
-
- int i = 0;
- HKEY hKey;
- wchar_t szProfileDir[MAX_PATH];
- wchar_t szMirandaProfiles[MAX_PATH];
- DWORD cbData = _countof(szMirandaPath);
-
- mir_wstrcpy(szMirandaProfiles, szMirandaPath);
- mir_wstrcat(szMirandaProfiles, L"\\Profiles");
- GetProfileDirectory(szMirandaPath, szProfileDir, _countof(szProfileDir));
-
- // search in profile dir (using ini file)
- if (mir_wstrcmpi(szProfileDir, szMirandaProfiles))
- FindAdd(hdlg, szProfileDir, L"[ini]\\");
-
- FindAdd(hdlg, szMirandaProfiles, L"[prf]\\");
- // search in current dir (as DBTOOL)
- FindAdd(hdlg, szMirandaPath, L"[.]\\");
-
- // search in profile dir (using registry path + ini file)
- if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\miranda32.exe", 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) {
- if (RegQueryValueEx(hKey, L"Path", nullptr, nullptr, (PBYTE)szMirandaPath, &cbData) == ERROR_SUCCESS) {
- if (mir_wstrcmp(szProfileDir, szMirandaPath)) {
- GetProfileDirectory(szMirandaPath, szProfileDir, _countof(szProfileDir));
- FindAdd(hdlg, szProfileDir, L"[reg]\\");
- }
- }
- RegCloseKey(hKey);
- }
- // select
- if (opts.filename[0])
- i = AddDatabaseToList(GetDlgItem(hdlg, IDC_DBLIST), opts.filename, L"");
- if (i == -1)
- i = 0;
- ListView_SetItemState(GetDlgItem(hdlg, IDC_DBLIST), i, LVIS_SELECTED, LVIS_SELECTED);
- }
-
- if (opts.dbChecker != nullptr) {
- opts.dbChecker->Destroy();
- opts.dbChecker = nullptr;
- }
-
- if (bShortMode)
- if (!OpenDatabase(hdlg, IDD_FILEACCESS)) {
- EndDialog(GetParent(hdlg), 1);
- return FALSE;
- }
- return TRUE;
-
- case WZN_PAGECHANGING:
- GetDlgItemText(hdlg, IDC_FILE, opts.filename, _countof(opts.filename));
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_FILE:
- if (HIWORD(wParam) == EN_CHANGE)
- EnableWindow(GetDlgItem(GetParent(hdlg), IDOK), GetWindowTextLength(GetDlgItem(hdlg, IDC_FILE)));
- break;
-
- case IDC_OTHER:
- {
- OPENFILENAME ofn = { 0 };
- wchar_t str[MAX_PATH];
-
- // L"Miranda Databases (*.dat)\0*.DAT\0All Files (*)\0*\0";
- wchar_t *filter, *tmp, *tmp1, *tmp2;
- tmp1 = TranslateT("Miranda Databases (*.dat)");
- tmp2 = TranslateT("All Files");
- filter = tmp = (wchar_t*)_alloca((mir_wstrlen(tmp1) + mir_wstrlen(tmp2) + 11)*sizeof(wchar_t));
- tmp = addstring(tmp, tmp1);
- tmp = addstring(tmp, L"*.DAT");
- tmp = addstring(tmp, tmp2);
- tmp = addstring(tmp, L"*");
- *tmp = 0;
-
- GetDlgItemText(hdlg, IDC_FILE, str, _countof(str));
- ofn.lStructSize = sizeof(ofn);
- ofn.hwndOwner = hdlg;
- ofn.hInstance = nullptr;
- ofn.lpstrFilter = filter;
- ofn.lpstrDefExt = L"dat";
- ofn.lpstrFile = str;
- ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
- ofn.nMaxFile = _countof(str);
- ofn.nMaxFileTitle = MAX_PATH;
- if (GetOpenFileName(&ofn)) {
- int i = AddDatabaseToList(GetDlgItem(hdlg, IDC_DBLIST), str, L"");
- if (i == -1)
- i = 0;
- ListView_SetItemState(GetDlgItem(hdlg, IDC_DBLIST), i, LVIS_SELECTED, LVIS_SELECTED);
- }
- }
- break;
-
- case IDC_BACK:
- if (!bShortMode)
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_WELCOME, (LPARAM)WelcomeDlgProc);
- break;
-
- case IDOK:
- OpenDatabase(hdlg, IDD_FILEACCESS);
- break;
- }
- break;
-
- case WM_NOTIFY:
- switch (((LPNMHDR)lParam)->idFrom) {
- case IDC_DBLIST:
- switch (((LPNMLISTVIEW)lParam)->hdr.code) {
- case LVN_ITEMCHANGED:
- LV_ITEM lvi;
- lvi.iItem = ListView_GetNextItem(GetDlgItem(hdlg, IDC_DBLIST), -1, LVNI_SELECTED);
- if (lvi.iItem == -1) break;
- lvi.mask = LVIF_PARAM;
- ListView_GetItem(GetDlgItem(hdlg, IDC_DBLIST), &lvi);
- SetDlgItemText(hdlg, IDC_FILE, (wchar_t*)lvi.lParam);
- SendMessage(hdlg, WM_COMMAND, MAKEWPARAM(IDC_FILE, EN_CHANGE), (LPARAM)GetDlgItem(hdlg, IDC_FILE));
- }
- break;
- }
- break;
-
- case WM_DESTROY:
- {
- LV_ITEM lvi;
- lvi.mask = LVIF_PARAM;
- for (lvi.iItem = ListView_GetItemCount(GetDlgItem(hdlg, IDC_DBLIST)) - 1; lvi.iItem >= 0; lvi.iItem--) {
- ListView_GetItem(GetDlgItem(hdlg, IDC_DBLIST), &lvi);
- free((char*)lvi.lParam);
- }
- }
- break;
- }
- return FALSE;
-}
diff --git a/plugins/DbChecker/src/stdafx.cxx b/plugins/DbChecker/src/stdafx.cxx
deleted file mode 100644
index e579779bcc..0000000000
--- a/plugins/DbChecker/src/stdafx.cxx
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
-Copyright (C) 2012-18 Miranda NG team (https://miranda-ng.org)
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation version 2
-of the License.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "stdafx.h" \ No newline at end of file
diff --git a/plugins/DbChecker/src/stdafx.h b/plugins/DbChecker/src/stdafx.h
deleted file mode 100644
index 14484fc38e..0000000000
--- a/plugins/DbChecker/src/stdafx.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
-Miranda Database Tool
-Copyright 2000-2011 Miranda ICQ/IM project,
-all portions of this codebase are copyrighted to the people
-listed in contributors.txt.
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#pragma once
-
-#include <windows.h>
-#include <process.h>
-#include <malloc.h>
-#include <commctrl.h>
-#include <time.h>
-
-#include <newpluginapi.h>
-#include <m_database.h>
-#include <m_db_int.h>
-#include <m_langpack.h>
-#include <win2k.h>
-
-#include "resource.h"
-#include "version.h"
-
-#define WZM_GOTOPAGE (WM_USER+1)
-#define WZN_PAGECHANGING (WM_USER+1221)
-#define WZN_CANCELCLICKED (WM_USER+1222)
-
-struct DbToolOptions
-{
- wchar_t filename[MAX_PATH];
- wchar_t workingFilename[MAX_PATH];
- wchar_t outputFilename[MAX_PATH];
- wchar_t backupFilename[MAX_PATH];
- DATABASELINK *dblink;
- MIDatabaseChecker* dbChecker;
- HANDLE hOutFile;
- DWORD error;
- int bCheckOnly, bBackup, bAggressive;
- int bEraseHistory, bMarkRead, bConvertUtf;
-};
-
-extern HINSTANCE hInst;
-extern DbToolOptions opts;
-extern HANDLE hEventRun, hEventAbort;
-extern int errorCount;
-extern LRESULT wizardResult;
-extern bool bServiceMode, bLaunchMiranda, bShortMode, bAutoExit;
-
-int DoMyControlProcessing(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam, INT_PTR *bReturn);
-
-INT_PTR CALLBACK SelectDbDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam);
-INT_PTR CALLBACK CleaningDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam);
-INT_PTR CALLBACK ProgressDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam);
-INT_PTR CALLBACK FileAccessDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam);
-INT_PTR CALLBACK WizardDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam);
-INT_PTR CALLBACK FinishedDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam);
-INT_PTR CALLBACK WelcomeDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam);
-INT_PTR CALLBACK OpenErrorDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam);
-
-int OpenDatabase(HWND hdlg, INT iNextPage);
-
-#define STATUS_CLASSMASK 0x0f
-void AddToStatus(int flags, const wchar_t* fmt, ...);
-void SetProgressBar(int perThou);
-
diff --git a/plugins/DbChecker/src/version.h b/plugins/DbChecker/src/version.h
deleted file mode 100644
index a1579a77e6..0000000000
--- a/plugins/DbChecker/src/version.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#define __MAJOR_VERSION 0
-#define __MINOR_VERSION 95
-#define __RELEASE_NUM 3
-#define __BUILD_NUM 1
-
-#include <stdver.h>
-
-#define __PLUGIN_NAME "Database checker"
-#define __FILENAME "DbChecker.dll"
-#define __DESCRIPTION "Miranda NG Database Checker."
-#define __AUTHOR "George Hazan"
-#define __AUTHORWEB "https://miranda-ng.org/p/DbChecker/"
-#define __COPYRIGHT "© 2012-18 George Hazan"
diff --git a/plugins/DbChecker/src/welcome.cpp b/plugins/DbChecker/src/welcome.cpp
deleted file mode 100644
index 5f9f74b4c5..0000000000
--- a/plugins/DbChecker/src/welcome.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-Miranda Database Tool
-Copyright (C) 2001-2005 Richard Hughes
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "stdafx.h"
-
-INT_PTR CALLBACK WelcomeDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- static HENHMETAFILE hEmfWatermark;
- static HFONT hTitleFont;
-
- INT_PTR bReturn;
- if (DoMyControlProcessing(hdlg, message, wParam, lParam, &bReturn))
- return bReturn;
-
- switch (message) {
- case WM_INITDIALOG:
- {
- HRSRC hRsrcWatermark = FindResourceA(hInst, MAKEINTRESOURCEA(IDE_WATERMARK), "EMF");
- HGLOBAL hGlobWatermark = LoadResource(hInst, hRsrcWatermark);
- hEmfWatermark = SetEnhMetaFileBits(SizeofResource(hInst, hRsrcWatermark), (PBYTE)LockResource(hGlobWatermark));
- }
- SendDlgItemMessage(hdlg, IDC_WATERMARK, STM_SETIMAGE, IMAGE_ENHMETAFILE, (LPARAM)hEmfWatermark);
- {
- NONCLIENTMETRICS ncm = { 0 };
- ncm.cbSize = sizeof(ncm);
- SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0);
- LOGFONT TitleLogFont = ncm.lfMessageFont;
- TitleLogFont.lfWeight = FW_BOLD;
- mir_wstrcpy(TitleLogFont.lfFaceName, TEXT("Verdana Bold"));
-
- HDC hdc = GetDC(nullptr);
- INT FontSize = 12;
- TitleLogFont.lfHeight = 0 - GetDeviceCaps(hdc, LOGPIXELSY) * FontSize / 72;
- hTitleFont = CreateFontIndirect(&TitleLogFont);
- ReleaseDC(nullptr, hdc);
- }
- SendDlgItemMessage(hdlg, IDC_TITLE, WM_SETFONT, (WPARAM)hTitleFont, 0);
- EnableWindow(GetDlgItem(GetParent(hdlg), IDC_BACK), FALSE);
- return FALSE;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDOK:
- PostMessage(GetParent(hdlg), WZM_GOTOPAGE, IDD_SELECTDB, (LPARAM)SelectDbDlgProc);
- break;
- }
- break;
-
- case WM_DESTROY:
- DeleteEnhMetaFile(hEmfWatermark);
- DeleteObject(hTitleFont);
- break;
- }
- return FALSE;
-}
diff --git a/plugins/DbChecker/src/wizard.cpp b/plugins/DbChecker/src/wizard.cpp
deleted file mode 100644
index 86a038ae20..0000000000
--- a/plugins/DbChecker/src/wizard.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
-Miranda Database Tool
-Copyright 2000-2011 Miranda ICQ/IM project,
-all portions of this codebase are copyrighted to the people
-listed in contributors.txt.
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "stdafx.h"
-
-static HFONT hBoldFont = nullptr;
-static HENHMETAFILE hEmfHeaderLogo = nullptr;
-
-static BOOL CALLBACK MyControlsEnumChildren(HWND hwnd, LPARAM)
-{
- DWORD style = GetWindowLongPtr(hwnd, GWL_STYLE);
- DWORD exstyle = GetWindowLongPtr(hwnd, GWL_EXSTYLE);
- char szClass[64];
- int makeBold = 0;
-
- GetClassNameA(hwnd, szClass, sizeof(szClass));
- if (!mir_strcmp(szClass, "Static")) {
- if (((style & SS_TYPEMASK) == SS_LEFT || (style & SS_TYPEMASK) == SS_CENTER || (style & SS_TYPEMASK) == SS_RIGHT) && exstyle & WS_EX_CLIENTEDGE)
- makeBold = 1;
- }
- else if (!mir_strcmp(szClass, "Button")) {
- if (exstyle&WS_EX_CLIENTEDGE)
- makeBold = 1;
- }
- if (makeBold) {
- if (hBoldFont == nullptr) {
- LOGFONT lf;
- hBoldFont = (HFONT)SendMessage(hwnd, WM_GETFONT, 0, 0);
- GetObject(hBoldFont, sizeof(lf), &lf);
- lf.lfWeight = FW_BOLD;
- hBoldFont = CreateFontIndirect(&lf);
- }
- SendMessage(hwnd, WM_SETFONT, (WPARAM)hBoldFont, 0);
- SetWindowLongPtr(hwnd, GWL_EXSTYLE, exstyle&~WS_EX_CLIENTEDGE);
- SetWindowPos(hwnd, nullptr, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED);
- }
- return TRUE;
-}
-
-int DoMyControlProcessing(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam, INT_PTR *bReturn)
-{
- switch (message) {
- case WM_INITDIALOG:
- EnumChildWindows(hdlg, MyControlsEnumChildren, 0);
- if (hEmfHeaderLogo == nullptr) {
- HRSRC hRsrc = FindResourceA(hInst, MAKEINTRESOURCEA(IDE_HDRLOGO), "EMF");
- HGLOBAL hGlob = LoadResource(hInst, hRsrc);
- hEmfHeaderLogo = SetEnhMetaFileBits(SizeofResource(hInst, hRsrc), (PBYTE)LockResource(hGlob));
- }
- SendDlgItemMessage(hdlg, IDC_HDRLOGO, STM_SETIMAGE, IMAGE_ENHMETAFILE, (LPARAM)hEmfHeaderLogo);
- break;
-
- case WM_CTLCOLORSTATIC:
- if ((GetWindowLongPtr((HWND)lParam, GWL_STYLE) & 0xFFFF) == 0) {
- char szText[256];
- GetWindowTextA((HWND)lParam, szText, _countof(szText));
- if (!mir_strcmp(szText, "whiterect")) {
- SetTextColor((HDC)wParam, RGB(255, 255, 255));
- SetBkColor((HDC)wParam, RGB(255, 255, 255));
- SetBkMode((HDC)wParam, OPAQUE);
- *bReturn = (INT_PTR)GetStockObject(WHITE_BRUSH);
- return TRUE;
- }
- else {
- SetBkMode((HDC)wParam, TRANSPARENT);
- *bReturn = (INT_PTR)GetStockObject(NULL_BRUSH);
- return TRUE;
- }
- }
- break;
- }
- return FALSE;
-}
-
-INT_PTR CALLBACK WizardDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- static HWND hdlgPage;
-
- switch (message) {
- case WM_INITDIALOG:
- SendMessage(hdlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(hInst, MAKEINTRESOURCE(IDI_DBTOOL)));
- hdlgPage = nullptr;
- if (bShortMode)
- SendMessage(hdlg, WZM_GOTOPAGE, IDD_SELECTDB, (LPARAM)SelectDbDlgProc);
- else
- SendMessage(hdlg, WZM_GOTOPAGE, IDD_WELCOME, (LPARAM)WelcomeDlgProc);
- TranslateDialogDefault(hdlg);
- return TRUE;
-
- case WZM_GOTOPAGE:
- if (hdlgPage != nullptr) DestroyWindow(hdlgPage);
- EnableWindow(GetDlgItem(hdlg, IDC_BACK), TRUE);
- EnableWindow(GetDlgItem(hdlg, IDOK), TRUE);
- EnableWindow(GetDlgItem(hdlg, IDCANCEL), TRUE);
- SetDlgItemText(hdlg, IDCANCEL, TranslateT("Cancel"));
- hdlgPage = CreateDialog(hInst, MAKEINTRESOURCE(wParam), hdlg, (DLGPROC)lParam);
- TranslateDialogDefault(hdlgPage);
- SetWindowPos(hdlgPage, nullptr, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOSIZE);
- ShowWindow(hdlgPage, SW_SHOW);
- break;
-
- case WM_COMMAND:
- switch (LOWORD(wParam)) {
- case IDC_BACK:
- case IDOK:
- SendMessage(hdlgPage, WZN_PAGECHANGING, wParam, 0);
- SendMessage(hdlgPage, message, wParam, lParam);
- break;
-
- case IDCANCEL:
- wizardResult = 0;
- SendMessage(hdlgPage, WZN_CANCELCLICKED, 0, 0);
- EndDialog(hdlg, wizardResult);
- break;
- }
- break;
-
- case WM_DESTROY:
- if (opts.dbChecker) {
- opts.dbChecker->Destroy();
- opts.dbChecker = nullptr;
- }
-
- if (opts.hOutFile)
- CloseHandle(opts.hOutFile);
-
- DestroyWindow(hdlgPage);
- if (hBoldFont != nullptr) {
- DeleteObject(hBoldFont);
- hBoldFont = nullptr;
- }
- if (hEmfHeaderLogo != nullptr) {
- DeleteEnhMetaFile(hEmfHeaderLogo);
- hEmfHeaderLogo = nullptr;
- }
- break;
- }
- return FALSE;
-}
diff --git a/plugins/DbChecker/src/worker.cpp b/plugins/DbChecker/src/worker.cpp
deleted file mode 100644
index 7ae4bdc0b2..0000000000
--- a/plugins/DbChecker/src/worker.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
-Miranda Database Tool
-Copyright (C) 2001-2005 Richard Hughes
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#include "stdafx.h"
-
-void ProcessingDone(void);
-
-static void Finalize(time_t& ts)
-{
- opts.dbChecker->Destroy();
- opts.dbChecker = nullptr;
-
- if (opts.hOutFile) {
- CloseHandle(opts.hOutFile);
- opts.hOutFile = nullptr;
- }
-
- if (errorCount && !opts.bBackup && !opts.bCheckOnly) {
- time_t dlg_ts = time(nullptr);
- if (IDYES == MessageBox(nullptr,
- TranslateT("Errors were encountered, however you selected not to backup the original database. It is strongly recommended that you do so in case important data was omitted. Do you wish to keep a backup of the original database?"),
- TranslateT("Miranda Database Tool"), MB_YESNO))
- opts.bBackup = 1;
- ts += time(nullptr) - dlg_ts;
- }
-
- if (opts.bBackup) {
- wchar_t dbPath[MAX_PATH], dbFile[MAX_PATH];
- mir_wstrcpy(dbPath, opts.filename);
- wchar_t* str2 = wcsrchr(dbPath, '\\');
- if (str2 != nullptr) {
- mir_wstrcpy(dbFile, str2 + 1);
- *str2 = 0;
- }
- else {
- mir_wstrcpy(dbFile, dbPath);
- dbPath[0] = 0;
- }
- for (int i = 1;; i++) {
- if (i == 1)
- mir_snwprintf(opts.backupFilename, TranslateT("%s\\Backup of %s"), dbPath, dbFile);
- else
- mir_snwprintf(opts.backupFilename, TranslateT("%s\\Backup (%d) of %s"), dbPath, i, dbFile);
- if (_waccess(opts.backupFilename, 0) == -1) break;
- }
-
- if (!MoveFile(opts.filename, opts.backupFilename))
- AddToStatus(STATUS_WARNING, TranslateT("Unable to rename original file"));
- }
- else if (!opts.bCheckOnly)
- if (!DeleteFile(opts.filename))
- AddToStatus(STATUS_WARNING, TranslateT("Unable to delete original file"));
-
- if (!opts.bCheckOnly)
- if (!MoveFile(opts.outputFilename, opts.filename))
- AddToStatus(STATUS_WARNING, TranslateT("Unable to rename output file"));
-}
-
-void __cdecl WorkerThread(void *)
-{
- int task, firstTime;
- time_t ts = time(nullptr);
-
- AddToStatus(STATUS_MESSAGE, TranslateT("Database worker thread activated"));
-
- mir_wstrcpy(opts.workingFilename, opts.filename);
-
- if (opts.bCheckOnly) {
- mir_wstrcpy(opts.outputFilename, TranslateT("<check only>"));
- opts.hOutFile = INVALID_HANDLE_VALUE;
- }
- else {
- mir_wstrcpy(opts.outputFilename, opts.filename);
- *wcsrchr(opts.outputFilename, '.') = 0;
- mir_wstrcat(opts.outputFilename, TranslateT(" (Output).dat"));
- opts.hOutFile = CreateFile(opts.outputFilename, GENERIC_WRITE, FILE_SHARE_READ, nullptr, CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, nullptr);
- if (opts.hOutFile == INVALID_HANDLE_VALUE) {
- AddToStatus(STATUS_FATAL, TranslateT("Can't create output file (%u)"), GetLastError());
- ProcessingDone();
- return;
- }
- }
-
- DWORD sp = 0;
- firstTime = 0;
-
- DBCHeckCallback callback;
- callback.cbSize = sizeof(callback);
- callback.spaceUsed = 1;
- callback.spaceProcessed = 0;
- callback.pfnAddLogMessage = AddToStatus;
- callback.hOutFile = opts.hOutFile;
- callback.bCheckOnly = opts.bCheckOnly;
- callback.bBackup = opts.bBackup;
- callback.bAggressive = opts.bAggressive;
- callback.bEraseHistory = opts.bEraseHistory;
- callback.bMarkRead = opts.bMarkRead;
- callback.bConvertUtf = opts.bConvertUtf;
- opts.dbChecker->Start(&callback);
-
- for (task = 0;;) {
- if (callback.spaceProcessed / (callback.spaceUsed / 1000 + 1) > sp) {
- sp = callback.spaceProcessed / (callback.spaceUsed / 1000 + 1);
- SetProgressBar(sp);
- }
- WaitForSingleObject(hEventRun, INFINITE);
- if (WaitForSingleObject(hEventAbort, 0) == WAIT_OBJECT_0) {
- AddToStatus(STATUS_FATAL, TranslateT("Processing aborted by user"));
- break;
- }
-
- int ret = opts.dbChecker->CheckDb(task, firstTime);
- firstTime = 0;
- if (ret == ERROR_OUT_OF_PAPER) {
- Finalize(ts);
- AddToStatus(STATUS_MESSAGE, TranslateT("Elapsed time: %d sec"), time(nullptr) - ts);
- if (errorCount)
- AddToStatus(STATUS_SUCCESS, TranslateT("All tasks completed but with errors (%d)"), errorCount);
- else
- AddToStatus(STATUS_SUCCESS, TranslateT("All tasks completed successfully"));
- break;
- }
- else if (ret == ERROR_NO_MORE_ITEMS) {
- task++;
- firstTime = 1;
- }
- else if (ret != ERROR_SUCCESS)
- break;
- }
-
- ProcessingDone();
-}