https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8a401eb299e75b145263c4db952dd88e35c4bd31

commit 8a401eb299e75b145263c4db952dd88e35c4bd31
Author:     Giannis Adamopoulos <[email protected]>
AuthorDate: Sun Apr 28 16:47:23 2019 +0300
Commit:     Mark Jansen <[email protected]>
CommitDate: Tue Aug 20 00:43:47 2019 +0200

    [RAPPS] CMainWindow: Move gui part of UninstallApplication in it
---
 base/applications/rapps/gui.cpp             | 31 ++++++++++++++---------
 base/applications/rapps/include/installed.h |  3 +--
 base/applications/rapps/installed.cpp       | 38 +++--------------------------
 3 files changed, 24 insertions(+), 48 deletions(-)

diff --git a/base/applications/rapps/gui.cpp b/base/applications/rapps/gui.cpp
index b30cf80d14a..be6da8ff8f4 100644
--- a/base/applications/rapps/gui.cpp
+++ b/base/applications/rapps/gui.cpp
@@ -511,7 +511,6 @@ public:
     PVOID GetLParam(INT Index)
     {
         INT ItemIndex;
-        LVITEMW Item;
 
         if (Index == -1)
         {
@@ -524,14 +523,7 @@ public:
             ItemIndex = Index;
         }
 
-        ZeroMemory(&Item, sizeof(Item));
-
-        Item.mask = LVIF_PARAM;
-        Item.iItem = ItemIndex;
-        if (!GetItem(&Item))
-            return NULL;
-
-        return (PVOID) Item.lParam;
+        return (PVOID) GetItemData(ItemIndex);
     }
 
     BOOL AddColumn(INT Index, ATL::CStringW& Text, INT Width, INT Format)
@@ -1134,6 +1126,23 @@ private:
         }
     }
 
+    BOOL UninstallSelectedApp(BOOL bModify)
+    {
+        WCHAR szAppName[MAX_STR_LEN];
+
+        if (!IsInstalledEnum(SelectedEnumType))
+            return FALSE;
+
+        INT ItemIndex = m_ListView->GetNextItem(-1, LVNI_FOCUSED);
+        if (ItemIndex == -1)
+            return FALSE;
+
+        m_ListView->GetItemText(ItemIndex, 0, szAppName, _countof(szAppName));
+        WriteLogMessage(EVENTLOG_SUCCESS, MSG_SUCCESS_REMOVE, szAppName);
+
+        PINSTALLED_INFO ItemInfo = 
(PINSTALLED_INFO)m_ListView->GetItemData(ItemIndex);
+        return UninstallApplication(ItemInfo, bModify);
+    }
     BOOL ProcessWindowMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM 
lParam, LRESULT& theResult, DWORD dwMapId)
     {
         theResult = 0;
@@ -1593,12 +1602,12 @@ private:
             break;
 
         case ID_UNINSTALL:
-            if (UninstallApplication(-1, FALSE))
+            if (UninstallSelectedApp(FALSE))
                 UpdateApplicationsList(-1);
             break;
 
         case ID_MODIFY:
-            if (UninstallApplication(-1, TRUE))
+            if (UninstallSelectedApp(TRUE))
                 UpdateApplicationsList(-1);
             break;
 
diff --git a/base/applications/rapps/include/installed.h 
b/base/applications/rapps/include/installed.h
index 876c7423522..76a12418c1c 100644
--- a/base/applications/rapps/include/installed.h
+++ b/base/applications/rapps/include/installed.h
@@ -18,5 +18,4 @@ typedef BOOL(CALLBACK *APPENUMPROC)(INT ItemIndex, 
ATL::CStringW &Name, PINSTALL
 BOOL EnumInstalledApplications(INT EnumType, BOOL IsUserKey, APPENUMPROC 
lpEnumProc, PVOID param);
 BOOL GetApplicationString(HKEY hKey, LPCWSTR lpKeyName, LPWSTR szString);
 
-BOOL UninstallApplication(INT Index, BOOL bModify);
-VOID RemoveAppFromRegistry(INT Index);
+BOOL UninstallApplication(PINSTALLED_INFO ItemInfo, BOOL bModify);
diff --git a/base/applications/rapps/installed.cpp 
b/base/applications/rapps/installed.cpp
index cb53b88be7f..dda0bbfdcff 100644
--- a/base/applications/rapps/installed.cpp
+++ b/base/applications/rapps/installed.cpp
@@ -38,48 +38,16 @@ BOOL GetApplicationString(HKEY hKey, LPCWSTR lpKeyName, 
LPWSTR szString)
     return FALSE;
 }
 
-BOOL UninstallApplication(INT Index, BOOL bModify)
+BOOL UninstallApplication(PINSTALLED_INFO ItemInfo, BOOL bModify)
 {
     LPCWSTR szModify = L"ModifyPath";
     LPCWSTR szUninstall = L"UninstallString";
-    WCHAR szPath[MAX_PATH];
-    WCHAR szAppName[MAX_STR_LEN];
     DWORD dwType, dwSize;
-    INT ItemIndex;
-    LVITEMW Item;
-    HKEY hKey;
-    PINSTALLED_INFO ItemInfo;
-
-    if (!IsInstalledEnum(SelectedEnumType))
-        return FALSE;
-
-    if (Index == -1)
-    {
-        ItemIndex = (INT) SendMessageW(hListView, LVM_GETNEXTITEM, -1, 
LVNI_FOCUSED);
-        if (ItemIndex == -1)
-            return FALSE;
-    }
-    else
-    {
-        ItemIndex = Index;
-    }
-
-    ListView_GetItemText(hListView, ItemIndex, 0, szAppName, 
_countof(szAppName));
-    WriteLogMessage(EVENTLOG_SUCCESS, MSG_SUCCESS_REMOVE, szAppName);
-
-    ZeroMemory(&Item, sizeof(Item));
-
-    Item.mask = LVIF_PARAM;
-    Item.iItem = ItemIndex;
-    if (!ListView_GetItem(hListView, &Item))
-        return FALSE;
-
-    ItemInfo = (PINSTALLED_INFO) Item.lParam;
-    hKey = ItemInfo->hSubKey;
+    WCHAR szPath[MAX_PATH];
 
     dwType = REG_SZ;
     dwSize = MAX_PATH * sizeof(WCHAR);
-    if (RegQueryValueExW(hKey,
+    if (RegQueryValueExW(ItemInfo->hSubKey,
                          bModify ? szModify : szUninstall,
                          NULL,
                          &dwType,

Reply via email to