Author: hbelusca
Date: Mon Oct 1 23:16:43 2012
New Revision: 57456
URL:
http://svn.reactos.org/svn/reactos?rev=57456&view=rev
Log:
[REGEDIT
- Fix comment headers.
- Improve error-displaying function and add another one (to be used later on).
- Clear a part of code.
Modified:
trunk/reactos/base/applications/regedit/error.c
trunk/reactos/base/applications/regedit/main.h
trunk/reactos/base/applications/regedit/regedit.c
trunk/reactos/base/applications/regedit/regproc.c
trunk/reactos/base/applications/regedit/settings.c
Modified: trunk/reactos/base/applications/regedit/error.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/regedit/…
==============================================================================
--- trunk/reactos/base/applications/regedit/error.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/regedit/error.c [iso-8859-1] Mon Oct 1 23:16:43 2012
@@ -1,14 +1,76 @@
+/*
+ * Regedit errors, warnings, informations displaying
+ *
+ * Copyright (C) 2010 Adam Kachwalla <geekdundee(a)gmail.com>
+ * Copyright (C) 2012 Hermès Bélusca - Maïto <hermes.belusca(a)sfr.fr>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
#include <regedit.h>
-void ErrorMessageBox(HWND hWnd, LPCTSTR title, DWORD code)
+
+int ErrorMessageBox(HWND hWnd, LPCTSTR lpTitle, DWORD dwErrorCode, ...)
{
- LPTSTR lpMsgBuf;
- DWORD status;
- static const TCHAR fallback[] = TEXT("Error displaying error message.\n");
- status = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
- NULL, code, 0, (LPTSTR)&lpMsgBuf, 0, NULL);
- if (!status)
- lpMsgBuf = (LPTSTR)fallback;
- MessageBox(hWnd, lpMsgBuf, title, MB_OK | MB_ICONERROR);
- if (lpMsgBuf != fallback)
- LocalFree(lpMsgBuf);
+ int iRet = 0;
+ LPTSTR lpMsgBuf = NULL;
+ DWORD Status = 0;
+
+ va_list args = NULL;
+ va_start(args, dwErrorCode);
+
+ Status = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL,
+ dwErrorCode,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+ (LPTSTR)&lpMsgBuf,
+ 0,
+ &args);
+
+ va_end(args);
+
+ iRet = MessageBox(hWnd, (Status && lpMsgBuf ? lpMsgBuf : TEXT("Error
displaying error message.\n")), lpTitle, MB_OK | MB_ICONERROR);
+
+ if (lpMsgBuf) LocalFree(lpMsgBuf);
+
+ /* Return the MessageBox information */
+ return iRet;
}
+
+int InfoMessageBox(HWND hWnd, UINT uType, LPCTSTR lpTitle, LPCTSTR lpMessage, ...)
+{
+ int iRet = 0;
+ LPTSTR lpMsgBuf = NULL;
+ DWORD Status = 0;
+
+ va_list args = NULL;
+ va_start(args, lpMessage);
+
+ Status = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
+ lpMessage,
+ 0,
+ 0,
+ (LPTSTR)&lpMsgBuf,
+ 0,
+ &args);
+
+ va_end(args);
+
+ iRet = MessageBox(hWnd, (Status && lpMsgBuf ? lpMsgBuf : TEXT("Error
displaying error message.\n")), lpTitle, uType);
+
+ if (lpMsgBuf) LocalFree(lpMsgBuf);
+
+ /* Return the MessageBox information */
+ return iRet;
+}
Modified: trunk/reactos/base/applications/regedit/main.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/regedit/…
==============================================================================
--- trunk/reactos/base/applications/regedit/main.h [iso-8859-1] (original)
+++ trunk/reactos/base/applications/regedit/main.h [iso-8859-1] Mon Oct 1 23:16:43 2012
@@ -94,7 +94,8 @@
extern LPCTSTR get_root_key_name(HKEY hRootKey);
/* error.c */
-extern void ErrorMessageBox(HWND hWnd, LPCTSTR title, DWORD code);
+extern int ErrorMessageBox(HWND hWnd, LPCTSTR lpTitle, DWORD dwErrorCode, ...);
+extern int InfoMessageBox(HWND hWnd, UINT uType, LPCTSTR lpTitle, LPCTSTR lpMessage,
...);
/* find.c */
extern void FindDialog(HWND hWnd);
Modified: trunk/reactos/base/applications/regedit/regedit.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/regedit/…
==============================================================================
--- trunk/reactos/base/applications/regedit/regedit.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/regedit/regedit.c [iso-8859-1] Mon Oct 1 23:16:43
2012
@@ -1,7 +1,7 @@
/*
* Windows regedit.exe registry editor implementation.
*
- * Copyright 2002 Andriy Palamarchuk
+ * Copyright (C) 2002 Andriy Palamarchuk
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -258,11 +258,12 @@
{
if (chu == L'S')
{
+ /* Silence dialogs */
silent = TRUE;
}
else if (chu == L'V')
{
- /* ignore these switches */
+ /* Ignore this switch */
}
else
{
@@ -323,14 +324,21 @@
if (*s && action == ACTION_UNDEF)
{
- TCHAR szTitle[256], szText[256];
- LoadString(hInst, IDS_APP_TITLE, szTitle, COUNT_OF(szTitle));
- LoadString(hInst, IDS_IMPORT_PROMPT, szText, COUNT_OF(szText));
- /* request import confirmation */
- if (silent || MessageBox(NULL, szText, szTitle, MB_YESNO) == IDYES)
+ if (!silent)
+ {
+ TCHAR szTitle[256], szText[256];
+ LoadString(hInst, IDS_APP_TITLE, szTitle, COUNT_OF(szTitle));
+ LoadString(hInst, IDS_IMPORT_PROMPT, szText, COUNT_OF(szText));
+ /* request import confirmation */
+ if (MessageBox(NULL, szText, szTitle, MB_YESNO) == IDYES)
+ action = ACTION_ADD;
+ else
+ return TRUE;
+ }
+ else
+ {
action = ACTION_ADD;
- else
- return TRUE;
+ }
}
if (action == ACTION_UNDEF)
return FALSE;
Modified: trunk/reactos/base/applications/regedit/regproc.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/regedit/…
==============================================================================
--- trunk/reactos/base/applications/regedit/regproc.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/regedit/regproc.c [iso-8859-1] Mon Oct 1 23:16:43
2012
@@ -2,9 +2,9 @@
* Registry processing routines. Routines, common for registry
* processing frontends.
*
- * Copyright 1999 Sylvain St-Germain
- * Copyright 2002 Andriy Palamarchuk
- * Copyright 2008 Alexander N. S?rnes <alex(a)thehandofagony.com>
+ * Copyright (C) 1999 Sylvain St-Germain
+ * Copyright (C) 2002 Andriy Palamarchuk
+ * Copyright (C) 2008 Alexander N. Sørnes <alex(a)thehandofagony.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
Modified: trunk/reactos/base/applications/regedit/settings.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/regedit/…
==============================================================================
--- trunk/reactos/base/applications/regedit/settings.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/regedit/settings.c [iso-8859-1] Mon Oct 1 23:16:43
2012
@@ -1,23 +1,23 @@
/*
-* regedit (settings.c)
-*
-* Copyright 2012 Edijs Kolesnikovics <terminedijs(a)yahoo.com>
-* Copyright 2012 Grégori Macário Harbs <mysoft64bits at gmail dot com>
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU Lesser General Public
-* License as published by the Free Software Foundation; either
-* version 2.1 of the License, or (at your option) any later version.
-*
-* This library 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
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this library; if not, write to the Free Software
-* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-*/
+ * Regedit settings
+ *
+ * Copyright (C) 2012 Edijs Kolesnikovics <terminedijs(a)yahoo.com>
+ * Copyright (C) 2012 Grégori Macário Harbs <mysoft64bits at gmail dot com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
#include <regedit.h>