mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +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));
|
ZeroMemory(&Item, sizeof(LVITEM));
|
||||||
Item.mask = LVIF_PARAM;
|
Item.mask = LVIF_PARAM;
|
||||||
Item.iItem = iSelected;
|
Item.iItem = iSelected;
|
||||||
Item.iSubItem = 0;
|
|
||||||
if (!ListView_GetItem(hwndListView, &Item))
|
if (!ListView_GetItem(hwndListView, &Item))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -170,7 +169,6 @@ DeleteUserProfile(
|
||||||
ZeroMemory(&Item, sizeof(LVITEM));
|
ZeroMemory(&Item, sizeof(LVITEM));
|
||||||
Item.mask = LVIF_PARAM;
|
Item.mask = LVIF_PARAM;
|
||||||
Item.iItem = iSelected;
|
Item.iItem = iSelected;
|
||||||
Item.iSubItem = 0;
|
|
||||||
if (!ListView_GetItem(hwndListView, &Item))
|
if (!ListView_GetItem(hwndListView, &Item))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -253,7 +251,6 @@ CopyUserProfile(
|
||||||
ZeroMemory(&Item, sizeof(LVITEM));
|
ZeroMemory(&Item, sizeof(LVITEM));
|
||||||
Item.mask = LVIF_PARAM;
|
Item.mask = LVIF_PARAM;
|
||||||
Item.iItem = iSelected;
|
Item.iItem = iSelected;
|
||||||
Item.iSubItem = 0;
|
|
||||||
if (!ListView_GetItem(hwndListView, &Item))
|
if (!ListView_GetItem(hwndListView, &Item))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
@ -645,9 +642,9 @@ UpdateButtonState(
|
||||||
iSelected = ListView_GetNextItem(hwndListView, -1, LVNI_SELECTED);
|
iSelected = ListView_GetNextItem(hwndListView, -1, LVNI_SELECTED);
|
||||||
if (iSelected != -1)
|
if (iSelected != -1)
|
||||||
{
|
{
|
||||||
|
ZeroMemory(&Item, sizeof(LVITEM));
|
||||||
Item.mask = LVIF_PARAM;
|
Item.mask = LVIF_PARAM;
|
||||||
Item.iItem = iSelected;
|
Item.iItem = iSelected;
|
||||||
Item.iSubItem = 0;
|
|
||||||
if (ListView_GetItem(hwndListView, &Item))
|
if (ListView_GetItem(hwndListView, &Item))
|
||||||
{
|
{
|
||||||
if (Item.lParam != 0)
|
if (Item.lParam != 0)
|
||||||
|
@ -804,48 +801,36 @@ OnInitUserProfileDialog(HWND hwndDlg)
|
||||||
AddUserProfiles(hwndDlg, GetDlgItem(hwndDlg, IDC_USERPROFILE_LIST), bAdmin);
|
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
|
static
|
||||||
VOID
|
VOID
|
||||||
OnNotify(
|
OnNotify(
|
||||||
_In_ HWND hwndDlg,
|
_In_ HWND hwndDlg,
|
||||||
_In_ NMHDR *nmhdr)
|
_In_ NMHDR *nmhdr)
|
||||||
{
|
{
|
||||||
|
LPNMLISTVIEW pNMLV;
|
||||||
|
|
||||||
if (nmhdr->idFrom == IDC_USERACCOUNT_LINK && nmhdr->code == NM_CLICK)
|
if (nmhdr->idFrom == IDC_USERACCOUNT_LINK && nmhdr->code == NM_CLICK)
|
||||||
{
|
{
|
||||||
ShellExecuteW(hwndDlg, NULL, L"usrmgr.cpl", NULL, NULL, 0);
|
ShellExecuteW(hwndDlg, NULL, L"usrmgr.cpl", NULL, NULL, 0);
|
||||||
}
|
}
|
||||||
else if (nmhdr->idFrom == IDC_USERPROFILE_LIST)
|
else if (nmhdr->idFrom == IDC_USERPROFILE_LIST)
|
||||||
{
|
{
|
||||||
if (nmhdr->code == LVN_ITEMCHANGED)
|
switch(nmhdr->code)
|
||||||
UpdateButtonState(hwndDlg, nmhdr->hwndFrom);
|
{
|
||||||
else if (nmhdr->code == NM_DBLCLK)
|
case LVN_ITEMCHANGED:
|
||||||
ChangeUserProfileType(hwndDlg);
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -863,10 +848,6 @@ UserProfileDlgProc(HWND hwndDlg,
|
||||||
OnInitUserProfileDialog(hwndDlg);
|
OnInitUserProfileDialog(hwndDlg);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
case WM_DESTROY:
|
|
||||||
OnDestroy(hwndDlg);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
switch (LOWORD(wParam))
|
switch (LOWORD(wParam))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue