mirror of
https://github.com/reactos/reactos.git
synced 2025-05-27 13:08:23 +00:00
[RAPPS] CMainWindow: move RemoveAppFromRegistry in it
This commit is contained in:
parent
700f54c37b
commit
ba80f057c5
2 changed files with 39 additions and 38 deletions
|
@ -1094,6 +1094,44 @@ private:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VOID RemoveSelectedAppFromRegistry()
|
||||||
|
{
|
||||||
|
PINSTALLED_INFO Info;
|
||||||
|
WCHAR szFullName[MAX_PATH] = L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\";
|
||||||
|
ATL::CStringW szMsgText, szMsgTitle;
|
||||||
|
INT ItemIndex = m_ListView->GetNextItem(-1, LVNI_FOCUSED);
|
||||||
|
|
||||||
|
if (!IsInstalledEnum(SelectedEnumType))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Info = reinterpret_cast<PINSTALLED_INFO>(m_ListView->GetItemData(ItemIndex));
|
||||||
|
if (!Info || !Info->hSubKey || (ItemIndex == -1))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!szMsgText.LoadStringW(IDS_APP_REG_REMOVE) ||
|
||||||
|
!szMsgTitle.LoadStringW(IDS_INFORMATION))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (MessageBoxW(szMsgText, szMsgTitle, MB_YESNO | MB_ICONQUESTION) == IDYES)
|
||||||
|
{
|
||||||
|
ATL::CStringW::CopyChars(szFullName,
|
||||||
|
MAX_PATH,
|
||||||
|
Info->szKeyName.GetString(),
|
||||||
|
MAX_PATH - wcslen(szFullName));
|
||||||
|
|
||||||
|
if (RegDeleteKeyW(Info->hRootKey, szFullName) == ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
m_ListView->DeleteItem(ItemIndex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!szMsgText.LoadStringW(IDS_UNABLE_TO_REMOVE))
|
||||||
|
return;
|
||||||
|
|
||||||
|
MessageBoxW(szMsgText.GetString(), NULL, MB_OK | MB_ICONERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BOOL ProcessWindowMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT& theResult, DWORD dwMapId)
|
BOOL ProcessWindowMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT& theResult, DWORD dwMapId)
|
||||||
{
|
{
|
||||||
theResult = 0;
|
theResult = 0;
|
||||||
|
@ -1563,7 +1601,7 @@ private:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_REGREMOVE:
|
case ID_REGREMOVE:
|
||||||
RemoveAppFromRegistry(-1);
|
RemoveSelectedAppFromRegistry();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_REFRESH:
|
case ID_REFRESH:
|
||||||
|
|
|
@ -92,43 +92,6 @@ BOOL UninstallApplication(INT Index, BOOL bModify)
|
||||||
return StartProcess(szPath, TRUE);
|
return StartProcess(szPath, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID RemoveAppFromRegistry(INT Index)
|
|
||||||
{
|
|
||||||
PINSTALLED_INFO Info;
|
|
||||||
WCHAR szFullName[MAX_PATH] = L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\";
|
|
||||||
ATL::CStringW szMsgText, szMsgTitle;
|
|
||||||
INT ItemIndex = SendMessageW(hListView, LVM_GETNEXTITEM, -1, LVNI_FOCUSED);
|
|
||||||
|
|
||||||
if (!IsInstalledEnum(SelectedEnumType))
|
|
||||||
return;
|
|
||||||
|
|
||||||
Info = (PINSTALLED_INFO) ListViewGetlParam(Index);
|
|
||||||
if (!Info || !Info->hSubKey || (ItemIndex == -1)) return;
|
|
||||||
|
|
||||||
if (!szMsgText.LoadStringW(IDS_APP_REG_REMOVE) ||
|
|
||||||
!szMsgTitle.LoadStringW(IDS_INFORMATION))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (MessageBoxW(hMainWnd, szMsgText, szMsgTitle, MB_YESNO | MB_ICONQUESTION) == IDYES)
|
|
||||||
{
|
|
||||||
ATL::CStringW::CopyChars(szFullName,
|
|
||||||
MAX_PATH,
|
|
||||||
Info->szKeyName.GetString(),
|
|
||||||
MAX_PATH - wcslen(szFullName));
|
|
||||||
|
|
||||||
if (RegDeleteKeyW(Info->hRootKey, szFullName) == ERROR_SUCCESS)
|
|
||||||
{
|
|
||||||
ListView_DeleteItem(hListView, ItemIndex);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!szMsgText.LoadStringW(IDS_UNABLE_TO_REMOVE))
|
|
||||||
return;
|
|
||||||
|
|
||||||
MessageBoxW(hMainWnd, szMsgText.GetString(), NULL, MB_OK | MB_ICONERROR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL EnumInstalledApplications(INT EnumType, BOOL IsUserKey, APPENUMPROC lpEnumProc, PVOID param)
|
BOOL EnumInstalledApplications(INT EnumType, BOOL IsUserKey, APPENUMPROC lpEnumProc, PVOID param)
|
||||||
{
|
{
|
||||||
DWORD dwSize = MAX_PATH, dwType, dwValue;
|
DWORD dwSize = MAX_PATH, dwType, dwValue;
|
||||||
|
|
Loading…
Reference in a new issue