[RAPPS]
authorAlexander Shaposhnikov <sanchaez@reactos.org>
Sat, 26 Aug 2017 17:52:55 +0000 (17:52 +0000)
committerAlexander Shaposhnikov <sanchaez@reactos.org>
Sat, 26 Aug 2017 17:52:55 +0000 (17:52 +0000)
- Revert s_EnumInstalledAppProc()

svn path=/branches/GSoC_2017/rapps/; revision=75680

reactos/base/applications/rapps/gui.cpp

index 3c43ff5..5f3edf2 100644 (file)
@@ -1384,27 +1384,35 @@ private:
         return StrStrIW(szHaystack, szNeedle) != NULL;
     }
 
-    static BOOL CALLBACK s_EnumInstalledAppProc(INT ItemIndex, ATL::CStringW &szName, PINSTALLED_INFO ItemInfo)
+    static BOOL CALLBACK s_EnumInstalledAppProc(INT ItemIndex, ATL::CStringW &szName, PINSTALLED_INFO Info)
     {
+        PINSTALLED_INFO ItemInfo;
         ATL::CStringW szText;
         INT Index;
-        INSTALLED_INFO Info;
 
         if (!SearchPatternMatch(szName.GetString(), szSearchPattern))
         {
-            RegCloseKey(ItemInfo->hSubKey);
+            RegCloseKey(Info->hSubKey);
             return TRUE;
         }
 
-        RtlCopyMemory(ItemInfo, &Info, sizeof(INSTALLED_INFO));
-        Index = ListViewAddItem(ItemIndex, 0, szName, (LPARAM) &Info);
+        ItemInfo = (PINSTALLED_INFO) HeapAlloc(GetProcessHeap(), 0, sizeof(INSTALLED_INFO));
+        if (!ItemInfo)
+        {
+            RegCloseKey(Info->hSubKey);
+            return FALSE;
+        }
+
+        RtlCopyMemory(ItemInfo, Info, sizeof(INSTALLED_INFO));
+
+        Index = ListViewAddItem(ItemIndex, 0, szName, (LPARAM) ItemInfo);
 
         /* Get version info */
-        GetApplicationString(Info.hSubKey, L"DisplayVersion", szText);
+        GetApplicationString(ItemInfo->hSubKey, L"DisplayVersion", szText);
         ListView_SetItemText(hListView, Index, 1, const_cast<LPWSTR>(szText.GetString()));
 
         /* Get comments */
-        GetApplicationString(Info.hSubKey, L"Comments", szText);
+        GetApplicationString(ItemInfo->hSubKey, L"Comments", szText);
         ListView_SetItemText(hListView, Index, 2, const_cast<LPWSTR>(szText.GetString()));
 
         return TRUE;