https://git.reactos.org/?p=reactos.git;a=commitdiff;h=8a401eb299e75b145263c…
commit 8a401eb299e75b145263c4db952dd88e35c4bd31
Author: Giannis Adamopoulos <gadamopoulos(a)reactos.org>
AuthorDate: Sun Apr 28 16:47:23 2019 +0300
Commit: Mark Jansen <mark.jansen(a)reactos.org>
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,