2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS User Manager Control Panel
4 * FILE: dll/cpl/usrmgr/users.c
5 * PURPOSE: Users property page
7 * PROGRAMMERS: Eric Kohl
13 UpdateUserOptions(HWND hwndDlg
,
14 PUSER_INFO_3 userInfo
,
17 EnableWindow(GetDlgItem(hwndDlg
, IDC_USER_GENERAL_CANNOT_CHANGE
),
18 !userInfo
->usri3_password_expired
);
19 EnableWindow(GetDlgItem(hwndDlg
, IDC_USER_GENERAL_NEVER_EXPIRES
),
20 !userInfo
->usri3_password_expired
);
21 EnableWindow(GetDlgItem(hwndDlg
, IDC_USER_GENERAL_FORCE_CHANGE
),
22 (userInfo
->usri3_flags
& (UF_PASSWD_CANT_CHANGE
| UF_DONT_EXPIRE_PASSWD
)) == 0);
26 CheckDlgButton(hwndDlg
, IDC_USER_GENERAL_FORCE_CHANGE
,
27 userInfo
->usri3_password_expired
? BST_CHECKED
: BST_UNCHECKED
);
29 CheckDlgButton(hwndDlg
, IDC_USER_GENERAL_CANNOT_CHANGE
,
30 (userInfo
->usri3_flags
& UF_PASSWD_CANT_CHANGE
) ? BST_CHECKED
: BST_UNCHECKED
);
32 CheckDlgButton(hwndDlg
, IDC_USER_GENERAL_NEVER_EXPIRES
,
33 (userInfo
->usri3_flags
& UF_DONT_EXPIRE_PASSWD
) ? BST_CHECKED
: BST_UNCHECKED
);
35 CheckDlgButton(hwndDlg
, IDC_USER_GENERAL_DISABLED
,
36 (userInfo
->usri3_flags
& UF_ACCOUNTDISABLE
) ? BST_CHECKED
: BST_UNCHECKED
);
42 GetUserData(HWND hwndDlg
, LPTSTR lpUserName
, PUSER_INFO_3
*usrInfo
)
44 PUSER_INFO_3 userInfo
= NULL
;
46 SetDlgItemText(hwndDlg
, IDC_USER_GENERAL_NAME
, lpUserName
);
48 NetUserGetInfo(NULL
, lpUserName
, 3, (LPBYTE
*)&userInfo
);
50 SetDlgItemText(hwndDlg
, IDC_USER_GENERAL_FULL_NAME
, userInfo
->usri3_full_name
);
51 SetDlgItemText(hwndDlg
, IDC_USER_GENERAL_DESCRIPTION
, userInfo
->usri3_comment
);
53 UpdateUserOptions(hwndDlg
, userInfo
, TRUE
);
60 UserGeneralPageProc(HWND hwndDlg
,
65 PUSER_INFO_3 userInfo
;
67 UNREFERENCED_PARAMETER(lParam
);
68 UNREFERENCED_PARAMETER(wParam
);
69 UNREFERENCED_PARAMETER(hwndDlg
);
71 userInfo
= (PUSER_INFO_3
)GetWindowLongPtr(hwndDlg
, DWLP_USER
);
77 (LPTSTR
)((PROPSHEETPAGE
*)lParam
)->lParam
,
79 SetWindowLongPtr(hwndDlg
, DWLP_USER
, (INT_PTR
)userInfo
);
83 switch (LOWORD(wParam
))
85 case IDC_USER_GENERAL_FORCE_CHANGE
:
86 userInfo
->usri3_password_expired
= !userInfo
->usri3_password_expired
;
87 UpdateUserOptions(hwndDlg
, userInfo
, FALSE
);
90 case IDC_USER_GENERAL_CANNOT_CHANGE
:
91 userInfo
->usri3_flags
^= UF_PASSWD_CANT_CHANGE
;
92 UpdateUserOptions(hwndDlg
, userInfo
, FALSE
);
95 case IDC_USER_GENERAL_NEVER_EXPIRES
:
96 userInfo
->usri3_flags
^= UF_DONT_EXPIRE_PASSWD
;
97 UpdateUserOptions(hwndDlg
, userInfo
, FALSE
);
100 case IDC_USER_GENERAL_DISABLED
:
101 userInfo
->usri3_flags
^= UF_ACCOUNTDISABLE
;
104 case IDC_USER_GENERAL_LOCKED
:
110 NetApiBufferFree(userInfo
);
119 InitPropSheetPage(PROPSHEETPAGE
*psp
, WORD idDlg
, DLGPROC DlgProc
, LPTSTR pszUser
)
121 ZeroMemory(psp
, sizeof(PROPSHEETPAGE
));
122 psp
->dwSize
= sizeof(PROPSHEETPAGE
);
123 psp
->dwFlags
= PSP_DEFAULT
;
124 psp
->hInstance
= hApplet
;
125 psp
->pszTemplate
= MAKEINTRESOURCE(idDlg
);
126 psp
->pfnDlgProc
= DlgProc
;
127 psp
->lParam
= (LPARAM
)pszUser
;
132 UserProperties(HWND hwndDlg
)
134 PROPSHEETPAGE psp
[1];
136 TCHAR szUserName
[UNLEN
];
140 hwndLV
= GetDlgItem(hwndDlg
, IDC_USERS_LIST
);
141 nItem
= ListView_GetNextItem(hwndLV
, -1, LVNI_SELECTED
);
145 /* Get the new user name */
146 ListView_GetItemText(hwndLV
,
151 ZeroMemory(&psh
, sizeof(PROPSHEETHEADER
));
152 psh
.dwSize
= sizeof(PROPSHEETHEADER
);
153 psh
.dwFlags
= PSH_PROPSHEETPAGE
| PSH_PROPTITLE
;
154 psh
.hwndParent
= hwndDlg
;
155 psh
.hInstance
= hApplet
;
157 psh
.pszCaption
= szUserName
;
158 psh
.nPages
= sizeof(psp
) / sizeof(PROPSHEETPAGE
);
162 InitPropSheetPage(&psp
[0], IDD_USER_GENERAL
, (DLGPROC
)UserGeneralPageProc
, szUserName
);
163 // InitPropSheetPage(&psp[1], IDD_USER_MEMBERSHIP, (DLGPROC)UserMembershipPageProc);
164 // InitPropSheetPage(&psp[2], IDD_USER_PROFILE, (DLGPROC)UserProfilePageProc);