Author: hbelusca
Date: Fri Feb 12 15:24:30 2016
New Revision: 70712
URL: http://svn.reactos.org/svn/reactos?rev=70712&view=rev
Log:
But do not compile by default those extra tests. Colin, it is curious that when rosautotest encounters a test EXE that it doesn't like, it just completely bails out the test session. This should be fixed/behaviour improved.
Modified:
trunk/rostests/CMakeLists.txt
Modified: trunk/rostests/CMakeLists.txt
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/CMakeLists.txt?rev=70712&…
==============================================================================
--- trunk/rostests/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/rostests/CMakeLists.txt [iso-8859-1] Fri Feb 12 15:24:30 2016
@@ -13,7 +13,7 @@
#add_subdirectory(regtests)
add_subdirectory(rosautotest)
add_subdirectory(tests)
-add_subdirectory(win32)
+#add_subdirectory(win32)
add_subdirectory(winetests)
Author: hbelusca
Date: Wed Feb 10 22:18:20 2016
New Revision: 70706
URL: http://svn.reactos.org/svn/reactos?rev=70706&view=rev
Log:
[CMLIB]
- Fix some comments.
- Simplify code.
- Add a missing check for hive exit nodes when deleting cells.
Modified:
trunk/reactos/lib/cmlib/cmkeydel.c
Modified: trunk/reactos/lib/cmlib/cmkeydel.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/cmlib/cmkeydel.c?rev=7…
==============================================================================
--- trunk/reactos/lib/cmlib/cmkeydel.c [iso-8859-1] (original)
+++ trunk/reactos/lib/cmlib/cmkeydel.c [iso-8859-1] Wed Feb 10 22:18:20 2016
@@ -20,7 +20,9 @@
IN HCELL_INDEX Cell,
IN BOOLEAN CheckNoSubkeys)
{
- PCELL_DATA CellData, ListData, SecurityData, ValueData;
+ PCM_KEY_NODE CellData;
+ PCM_KEY_SECURITY SecurityData;
+ PCELL_DATA ListData, ValueData;
ULONG i;
/* Get the cell data for our target */
@@ -31,12 +33,12 @@
if (CheckNoSubkeys)
{
/* Do them */
- ASSERT(CellData->u.KeyNode.SubKeyCounts[Stable] == 0);
- ASSERT(CellData->u.KeyNode.SubKeyCounts[Volatile] == 0);
- }
-
- /* If this is an exit hive, there's nothing to do */
- if (CellData->u.KeyNode.Flags & KEY_HIVE_EXIT)
+ ASSERT(CellData->SubKeyCounts[Stable] == 0);
+ ASSERT(CellData->SubKeyCounts[Volatile] == 0);
+ }
+
+ /* If this is an exit node, there's nothing to do */
+ if (CellData->Flags & KEY_HIVE_EXIT)
{
/* Release the cell and get out */
HvReleaseCell(Hive, Cell);
@@ -48,41 +50,42 @@
HvReleaseCell(Hive, Cell);
/* Check if we have a class */
- if (CellData->u.KeyNode.Class != HCELL_NIL)
+ if (CellData->Class != HCELL_NIL)
{
/* Mark it dirty */
- HvMarkCellDirty(Hive, CellData->u.KeyNode.Class, FALSE);
+ HvMarkCellDirty(Hive, CellData->Class, FALSE);
}
/* Check if we have security */
- if (CellData->u.KeyNode.Security != HCELL_NIL)
+ if (CellData->Security != HCELL_NIL)
{
/* Mark it dirty */
- HvMarkCellDirty(Hive, CellData->u.KeyNode.Security, FALSE);
+ HvMarkCellDirty(Hive, CellData->Security, FALSE);
/* Get the security data and release it */
- SecurityData = HvGetCell(Hive, CellData->u.KeyNode.Security);
+ SecurityData = HvGetCell(Hive, CellData->Security);
if (!SecurityData) ASSERT(FALSE);
- HvReleaseCell(Hive, CellData->u.KeyNode.Security);
+ HvReleaseCell(Hive, CellData->Security);
/* Mark the security links dirty too */
- HvMarkCellDirty(Hive, SecurityData->u.KeySecurity.Flink, FALSE);
- HvMarkCellDirty(Hive, SecurityData->u.KeySecurity.Blink, FALSE);
- }
-
+ HvMarkCellDirty(Hive, SecurityData->Flink, FALSE);
+ HvMarkCellDirty(Hive, SecurityData->Blink, FALSE);
+ }
+
+ // TODO: Handle predefined keys (Flags: KEY_PREDEF_HANDLE)
/* Check if we have any values */
- if (CellData->u.KeyNode.ValueList.Count > 0)
+ if (CellData->ValueList.Count > 0)
{
/* Dirty the value list */
- HvMarkCellDirty(Hive, CellData->u.KeyNode.ValueList.List, FALSE);
+ HvMarkCellDirty(Hive, CellData->ValueList.List, FALSE);
/* Get the list data itself, and release it */
- ListData = HvGetCell(Hive, CellData->u.KeyNode.ValueList.List);
+ ListData = HvGetCell(Hive, CellData->ValueList.List);
if (!ListData) ASSERT(FALSE);
- HvReleaseCell(Hive, CellData->u.KeyNode.ValueList.List);
+ HvReleaseCell(Hive, CellData->ValueList.List);
/* Loop all values */
- for (i = 0; i < CellData->u.KeyNode.ValueList.Count; i++)
+ for (i = 0; i < CellData->ValueList.Count; i++)
{
/* Dirty each value */
HvMarkCellDirty(Hive, ListData->u.KeyList[i], FALSE);
@@ -101,18 +104,18 @@
}
}
- /* If this is an entry hive, we're done */
- if (CellData->u.KeyNode.Flags & KEY_HIVE_ENTRY) return TRUE;
+ /* If this is an entry node, we're done */
+ if (CellData->Flags & KEY_HIVE_ENTRY) return TRUE;
/* Otherwise mark the index dirty too */
- if (!CmpMarkIndexDirty(Hive, CellData->u.KeyNode.Parent, Cell))
+ if (!CmpMarkIndexDirty(Hive, CellData->Parent, Cell))
{
/* Failure */
return FALSE;
}
/* Finally, mark the parent dirty */
- HvMarkCellDirty(Hive, CellData->u.KeyNode.Parent, FALSE);
+ HvMarkCellDirty(Hive, CellData->Parent, FALSE);
return TRUE;
}
@@ -121,27 +124,27 @@
CmpFreeKeyBody(IN PHHIVE Hive,
IN HCELL_INDEX Cell)
{
- PCELL_DATA CellData;
+ PCM_KEY_NODE CellData;
/* Get the key node */
CellData = HvGetCell(Hive, Cell);
if (!CellData) ASSERT(FALSE);
/* Check if we can delete the child cells */
- if (!(CellData->u.KeyNode.Flags & KEY_HIVE_EXIT))
+ if (!(CellData->Flags & KEY_HIVE_EXIT))
{
/* Check if we have a security cell */
- if (CellData->u.KeyNode.Security != HCELL_NIL)
+ if (CellData->Security != HCELL_NIL)
{
/* Free the security cell */
- HvFreeCell(Hive, CellData->u.KeyNode.Security);
+ HvFreeCell(Hive, CellData->Security);
}
/* Check if we have a class */
- if (CellData->u.KeyNode.ClassLength > 0)
+ if (CellData->ClassLength > 0)
{
/* Free it */
- HvFreeCell(Hive, CellData->u.KeyNode.Class);
+ HvFreeCell(Hive, CellData->Class);
}
}
@@ -157,12 +160,13 @@
IN HCELL_INDEX Cell,
IN BOOLEAN Unlink)
{
- PCELL_DATA CellData, ParentData, ListData;
+ PCM_KEY_NODE CellData, ParentData;
+ PCELL_DATA ListData;
ULONG i;
BOOLEAN Result;
/* Mark the entire key dirty */
- CmpMarkKeyDirty(Hive, Cell ,TRUE);
+ CmpMarkKeyDirty(Hive, Cell, TRUE);
/* Get the target node and release it */
CellData = HvGetCell(Hive, Cell);
@@ -170,52 +174,55 @@
HvReleaseCell(Hive, Cell);
/* Make sure we don't have subkeys */
- ASSERT((CellData->u.KeyNode.SubKeyCounts[Stable] +
- CellData->u.KeyNode.SubKeyCounts[Volatile]) == 0);
+ ASSERT(CellData->SubKeyCounts[Stable] + CellData->SubKeyCounts[Volatile] == 0);
/* Check if we have to unlink */
if (Unlink)
{
/* Remove the subkey */
- Result = CmpRemoveSubKey(Hive, CellData->u.KeyNode.Parent, Cell);
+ Result = CmpRemoveSubKey(Hive, CellData->Parent, Cell);
if (!Result) return STATUS_INSUFFICIENT_RESOURCES;
/* Get the parent node and release it */
- ParentData = HvGetCell(Hive, CellData->u.KeyNode.Parent);
+ ParentData = HvGetCell(Hive, CellData->Parent);
if (!ParentData) ASSERT(FALSE);
- HvReleaseCell(Hive, CellData->u.KeyNode.Parent);
+ HvReleaseCell(Hive, CellData->Parent);
/* Check if the parent node has no more subkeys */
- if (!(ParentData->u.KeyNode.SubKeyCounts[Stable] +
- ParentData->u.KeyNode.SubKeyCounts[Volatile]))
+ if (ParentData->SubKeyCounts[Stable] + ParentData->SubKeyCounts[Volatile] == 0)
{
/* Then free the cached name/class lengths */
- ParentData->u.KeyNode.MaxNameLen = 0;
- ParentData->u.KeyNode.MaxClassLen = 0;
- }
- }
-
- /* Check if we have any values */
- if (CellData->u.KeyNode.ValueList.Count > 0)
- {
- /* Get the value list and release it */
- ListData = HvGetCell(Hive, CellData->u.KeyNode.ValueList.List);
- if (!ListData) ASSERT(FALSE);
- HvReleaseCell(Hive, CellData->u.KeyNode.ValueList.List);
-
- /* Loop every value */
- for (i = 0; i < CellData->u.KeyNode.ValueList.Count; i++)
- {
- /* Free it */
- if (!CmpFreeValue(Hive, ListData->u.KeyList[i])) ASSERT(FALSE);
- }
-
- /* Free the value list */
- HvFreeCell(Hive, CellData->u.KeyNode.ValueList.List);
- }
-
- /* FIXME: This leaks the security desriptor! */
- DPRINT("Potentially leaking key security descriptor. Please call CmpFreeSecurityDescriptor\n");
+ ParentData->MaxNameLen = 0;
+ ParentData->MaxClassLen = 0;
+ }
+ }
+
+ // TODO: Handle predefined keys (Flags: KEY_PREDEF_HANDLE)
+ /* If this is an exit node, we don't have values */
+ if (!(CellData->Flags & KEY_HIVE_EXIT))
+ {
+ /* Check if we have any values */
+ if (CellData->ValueList.Count > 0)
+ {
+ /* Get the value list and release it */
+ ListData = HvGetCell(Hive, CellData->ValueList.List);
+ if (!ListData) ASSERT(FALSE);
+ HvReleaseCell(Hive, CellData->ValueList.List);
+
+ /* Loop every value */
+ for (i = 0; i < CellData->ValueList.Count; i++)
+ {
+ /* Free it */
+ if (!CmpFreeValue(Hive, ListData->u.KeyList[i])) ASSERT(FALSE);
+ }
+
+ /* Free the value list */
+ HvFreeCell(Hive, CellData->ValueList.List);
+ }
+
+ /* FIXME: This leaks the security desriptor! */
+ DPRINT("Potentially leaking key security descriptor. Please call CmpFreeSecurityDescriptor\n");
+ }
/* Free the key body itself, and then return our status */
if (!CmpFreeKeyBody(Hive, Cell)) return STATUS_INSUFFICIENT_RESOURCES;
Author: rnaumann
Date: Mon Feb 8 23:16:36 2016
New Revision: 70703
URL: http://svn.reactos.org/svn/reactos?rev=70703&view=rev
Log:
[EXPLORER] Stubplement Customize Notifications dialog. Patch by Jared Smudde. CORE-10725
Added:
trunk/reactos/base/shell/explorer/notifyiconscust.cpp (with props)
Modified:
trunk/reactos/base/shell/explorer/CMakeLists.txt
trunk/reactos/base/shell/explorer/precomp.h
trunk/reactos/base/shell/explorer/trayprop.cpp
Modified: trunk/reactos/base/shell/explorer/CMakeLists.txt
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/CMakeL…
==============================================================================
--- trunk/reactos/base/shell/explorer/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer/CMakeLists.txt [iso-8859-1] Mon Feb 8 23:16:36 2016
@@ -7,6 +7,7 @@
list(APPEND SOURCE
desktop.cpp
explorer.cpp
+ notifyiconscust.cpp
rshell.cpp
settings.cpp
shellservice.cpp
Added: trunk/reactos/base/shell/explorer/notifyiconscust.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/notify…
==============================================================================
--- trunk/reactos/base/shell/explorer/notifyiconscust.cpp (added)
+++ trunk/reactos/base/shell/explorer/notifyiconscust.cpp [iso-8859-1] Mon Feb 8 23:16:36 2016
@@ -0,0 +1,50 @@
+/*
+ * ReactOS Explorer
+ *
+ * Copyright 2015 Jared Smudde <computerwhiz02(a)hotmail.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 "precomp.h"
+
+INT_PTR CALLBACK CustomizeNotifyIconsProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
+{
+ switch(Message)
+ {
+ case WM_INITDIALOG:
+
+ return TRUE;
+ case WM_COMMAND:
+ switch(LOWORD(wParam))
+ {
+ case IDOK:
+ EndDialog(hwnd, IDOK);
+ break;
+ case IDCANCEL:
+ EndDialog(hwnd, IDCANCEL);
+ break;
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+VOID ShowCustomizeNotifyIcons(HINSTANCE hInst, HWND hExplorer)
+{
+ DialogBox(hInst, MAKEINTRESOURCE(IDD_NOTIFICATIONS_CUSTOMIZE), hExplorer, CustomizeNotifyIconsProc);
+}
Propchange: trunk/reactos/base/shell/explorer/notifyiconscust.cpp
------------------------------------------------------------------------------
svn:eol-style = native
Modified: trunk/reactos/base/shell/explorer/precomp.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/precom…
==============================================================================
--- trunk/reactos/base/shell/explorer/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer/precomp.h [iso-8859-1] Mon Feb 8 23:16:36 2016
@@ -223,6 +223,13 @@
VOID
DesktopDestroyShellWindow(IN HANDLE hDesktop);
+
+/*
+ * notifyiconscust.cpp
+ */
+VOID
+ShowCustomizeNotifyIcons(HINSTANCE, HWND);
+
/*
* taskband.cpp
*/
Modified: trunk/reactos/base/shell/explorer/trayprop.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/traypr…
==============================================================================
--- trunk/reactos/base/shell/explorer/trayprop.cpp [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer/trayprop.cpp [iso-8859-1] Mon Feb 8 23:16:36 2016
@@ -234,6 +234,9 @@
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
}
break;
+ case IDC_TASKBARPROP_ICONCUST:
+ ShowCustomizeNotifyIcons(hExplorerInstance, hwndDlg);
+ break;
}
break;