Author: akhaldi
Date: Fri Sep 9 16:55:59 2011
New Revision: 53662
URL:
http://svn.reactos.org/svn/reactos?rev=53662&view=rev
Log:
[SHELL32]
* Merge r53661.
Modified:
trunk/reactos/ (props changed)
trunk/reactos/dll/win32/shell32/shv_item_new.cpp
trunk/reactos/dll/win32/shell32/shv_item_new.h
Propchange: trunk/reactos/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Sep 9 16:55:59 2011
@@ -8,5 +8,5 @@
/branches/reactx/reactos:49994-49995
/branches/ros-amd64-bringup:36852
/branches/ros-amd64-bringup/reactos:34711-34712,34741,34743,34770,34780-34782,34803,34812,34839,34842,34864,34870,34874,34877,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35655,35683,35739,35746,35762,35771,35777,35781,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36011-36013,36172,36360,36380,36388-36389,36393,36397,36443,36445,36475,36502-36503,36505,36570,36614,36852,36898-36899,36930,36936,36949,36951,36958,36961,36964,36969,36972,36987-36988,36990,36992,37019,37322-37323,37333-37334,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38092,38100,38148-38151,38264-38265,38268,38355,39151,39333,39335,39345,39639,40120,40122-40123,40125,40127-40128,40155,40247,40324,40608,40753,40926-40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41070,41082-41086,41097-41098,41101,41449,41479-41480,41483-41485,41499-41500,41502,41531,41536,41540,41546-41547,41549,43080,43426,43451,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43836,43838-43840,43852,43857-43858,43860,43905-43907,43952,43954,43965,43969,43979,43981,43992,44002,44036-44037,44039-44040,44044-44045,44053,44065,44095,44123,44143-44144,44205,44238,44257,44259,44294,44338-44339,44385,44389,44391,44426,44460,44467-44468,44470-44471,44499,44501,44503-44504,44506,44510-44512,44521,44523-44526,44530,44540,44601,44634,44639,44772,44818,45124,45126-45127,45430,46394,46404,46478,46511,46523-46524,46526,46534-46535,46537-46539,46589,46805,46868,47472,47846-47847,47878,47882
-/branches/shell32_new-bringup:51893-53652
+/branches/shell32_new-bringup:51893-53652,53661
/branches/tcp-rewrite-branch:48720,48840-48841,49424-49426,49454
Modified: trunk/reactos/dll/win32/shell32/shv_item_new.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shv_item…
==============================================================================
--- trunk/reactos/dll/win32/shell32/shv_item_new.cpp [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shv_item_new.cpp [iso-8859-1] Fri Sep 9 16:55:59
2011
@@ -31,8 +31,41 @@
szPath = NULL;
}
+
CNewMenu::~CNewMenu()
{
+ UnloadShellItems();
+}
+
+void CNewMenu::UnloadItem(SHELLNEW_ITEM *item)
+{
+ // bail if the item is clearly invalid
+ if (NULL == item)
+ return;
+
+ if (NULL != item->szTarget)
+ free(item->szTarget);
+
+ free(item->szDesc);
+ free(item->szIcon);
+ free(item->szExt);
+
+ HeapFree(GetProcessHeap(), 0, item);
+}
+
+void CNewMenu::UnloadShellItems()
+{
+ SHELLNEW_ITEM *pCurItem;
+
+ while (s_SnHead)
+ {
+ pCurItem = s_SnHead;
+ s_SnHead = s_SnHead->Next;
+
+ UnloadItem(pCurItem);
+ }
+
+ s_SnHead = NULL;
}
static
@@ -85,22 +118,6 @@
RegCloseKey(hKey);
return TRUE;
-}
-
-void CNewMenu::UnloadItem(SHELLNEW_ITEM *item)
-{
- // bail if the item is clearly invalid
- if (NULL == item)
- return;
-
- if (NULL != item->szTarget)
- free(item->szTarget);
-
- free(item->szDesc);
- free(item->szIcon);
- free(item->szExt);
-
- HeapFree(GetProcessHeap(), 0, item);
}
CNewMenu::SHELLNEW_ITEM *CNewMenu::LoadItem(LPWSTR szKeyName)
@@ -200,6 +217,8 @@
if (!LoadStringW(shell32_hInstance, FCIDM_SHVIEW_NEW, szNew, sizeof(szNew) /
sizeof(WCHAR)))
szNew[0] = 0;
szNew[MAX_PATH-1] = 0;
+
+ UnloadShellItems();
dwIndex = 0;
do
Modified: trunk/reactos/dll/win32/shell32/shv_item_new.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shv_item…
==============================================================================
--- trunk/reactos/dll/win32/shell32/shv_item_new.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/shv_item_new.h [iso-8859-1] Fri Sep 9 16:55:59 2011
@@ -57,6 +57,7 @@
~CNewMenu();
SHELLNEW_ITEM *LoadItem(LPWSTR szKeyName);
void UnloadItem(SHELLNEW_ITEM *item);
+ void UnloadShellItems();
BOOL LoadShellNewItems();
UINT InsertShellNewItems(HMENU hMenu, UINT idFirst, UINT idMenu);
HRESULT DoShellNewCmd(LPCMINVOKECOMMANDINFO lpcmi);