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);