mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
[SYSDM] User Profiles fix of OnDestroy (CORE-16921) (#2614)
This commit is contained in:
parent
68f9fd2f5d
commit
f949e256b5
1 changed files with 20 additions and 39 deletions
|
@ -125,7 +125,6 @@ ChangeUserProfileType(
|
|||
ZeroMemory(&Item, sizeof(LVITEM));
|
||||
Item.mask = LVIF_PARAM;
|
||||
Item.iItem = iSelected;
|
||||
Item.iSubItem = 0;
|
||||
if (!ListView_GetItem(hwndListView, &Item))
|
||||
return FALSE;
|
||||
|
||||
|
@ -170,7 +169,6 @@ DeleteUserProfile(
|
|||
ZeroMemory(&Item, sizeof(LVITEM));
|
||||
Item.mask = LVIF_PARAM;
|
||||
Item.iItem = iSelected;
|
||||
Item.iSubItem = 0;
|
||||
if (!ListView_GetItem(hwndListView, &Item))
|
||||
return FALSE;
|
||||
|
||||
|
@ -253,7 +251,6 @@ CopyUserProfile(
|
|||
ZeroMemory(&Item, sizeof(LVITEM));
|
||||
Item.mask = LVIF_PARAM;
|
||||
Item.iItem = iSelected;
|
||||
Item.iSubItem = 0;
|
||||
if (!ListView_GetItem(hwndListView, &Item))
|
||||
return FALSE;
|
||||
|
||||
|
@ -645,9 +642,9 @@ UpdateButtonState(
|
|||
iSelected = ListView_GetNextItem(hwndListView, -1, LVNI_SELECTED);
|
||||
if (iSelected != -1)
|
||||
{
|
||||
ZeroMemory(&Item, sizeof(LVITEM));
|
||||
Item.mask = LVIF_PARAM;
|
||||
Item.iItem = iSelected;
|
||||
Item.iSubItem = 0;
|
||||
if (ListView_GetItem(hwndListView, &Item))
|
||||
{
|
||||
if (Item.lParam != 0)
|
||||
|
@ -804,48 +801,36 @@ OnInitUserProfileDialog(HWND hwndDlg)
|
|||
AddUserProfiles(hwndDlg, GetDlgItem(hwndDlg, IDC_USERPROFILE_LIST), bAdmin);
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
OnDestroy(
|
||||
_In_ HWND hwndDlg)
|
||||
{
|
||||
HWND hwndList;
|
||||
INT nItems, i;
|
||||
LVITEM Item;
|
||||
|
||||
hwndList = GetDlgItem(hwndDlg, IDC_USERPROFILE_LIST);
|
||||
|
||||
nItems = ListView_GetItemCount(hwndList);
|
||||
for (i = 0; i < nItems; i++)
|
||||
{
|
||||
Item.iItem = i;
|
||||
Item.iSubItem = 0;
|
||||
if (ListView_GetItem(hwndList, &Item))
|
||||
{
|
||||
if (Item.lParam != 0)
|
||||
HeapFree(GetProcessHeap(), 0, (PVOID)Item.lParam);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
OnNotify(
|
||||
_In_ HWND hwndDlg,
|
||||
_In_ NMHDR *nmhdr)
|
||||
{
|
||||
LPNMLISTVIEW pNMLV;
|
||||
|
||||
if (nmhdr->idFrom == IDC_USERACCOUNT_LINK && nmhdr->code == NM_CLICK)
|
||||
{
|
||||
ShellExecuteW(hwndDlg, NULL, L"usrmgr.cpl", NULL, NULL, 0);
|
||||
}
|
||||
else if (nmhdr->idFrom == IDC_USERPROFILE_LIST)
|
||||
{
|
||||
if (nmhdr->code == LVN_ITEMCHANGED)
|
||||
UpdateButtonState(hwndDlg, nmhdr->hwndFrom);
|
||||
else if (nmhdr->code == NM_DBLCLK)
|
||||
ChangeUserProfileType(hwndDlg);
|
||||
switch(nmhdr->code)
|
||||
{
|
||||
case LVN_ITEMCHANGED:
|
||||
UpdateButtonState(hwndDlg, nmhdr->hwndFrom);
|
||||
break;
|
||||
|
||||
case NM_DBLCLK:
|
||||
ChangeUserProfileType(hwndDlg);
|
||||
break;
|
||||
|
||||
case LVN_DELETEITEM:
|
||||
pNMLV = (LPNMLISTVIEW)nmhdr;
|
||||
if (pNMLV->lParam != 0)
|
||||
HeapFree(GetProcessHeap(), 0, (LPVOID)pNMLV->lParam);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -862,11 +847,7 @@ UserProfileDlgProc(HWND hwndDlg,
|
|||
case WM_INITDIALOG:
|
||||
OnInitUserProfileDialog(hwndDlg);
|
||||
return TRUE;
|
||||
|
||||
case WM_DESTROY:
|
||||
OnDestroy(hwndDlg);
|
||||
break;
|
||||
|
||||
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue