2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS User Manager Control Panel
4 * FILE: dll/cpl/usrmgr/groupprops.c
5 * PURPOSE: Group property sheet
7 * PROGRAMMERS: Eric Kohl
14 GetGroupData(HWND hwndDlg
, LPTSTR lpGroupName
)
16 PLOCALGROUP_INFO_1 groupInfo
= NULL
;
17 PLOCALGROUP_MEMBERS_INFO_1 membersInfo
= NULL
;
20 DWORD_PTR resumeHandle
= 0;
29 hwndLV
= GetDlgItem(hwndDlg
, IDC_GROUP_GENERAL_MEMBERS
);
31 /* Create the image list */
32 hImgList
= ImageList_Create(16, 16, ILC_COLOR8
| ILC_MASK
, 5, 5);
33 hIcon
= LoadImage(hApplet
, MAKEINTRESOURCE(IDI_USER
), IMAGE_ICON
, 16, 16, LR_DEFAULTCOLOR
);
34 ImageList_AddIcon(hImgList
, hIcon
);
35 hIcon
= LoadImage(hApplet
, MAKEINTRESOURCE(IDI_GROUP
), IMAGE_ICON
, 16, 16, LR_DEFAULTCOLOR
);
36 ImageList_AddIcon(hImgList
, hIcon
);
39 (void)ListView_SetImageList(hwndLV
, hImgList
, LVSIL_SMALL
);
41 /* Set the list column */
42 GetClientRect(hwndLV
, &rect
);
44 memset(&column
, 0x00, sizeof(column
));
45 column
.mask
= LVCF_FMT
| LVCF_WIDTH
| LVCF_SUBITEM
;
46 column
.fmt
= LVCFMT_LEFT
;
47 column
.cx
= (INT
)(rect
.right
- rect
.left
);
49 (void)ListView_InsertColumn(hwndLV
, 0, &column
);
52 SetDlgItemText(hwndDlg
, IDC_GROUP_GENERAL_NAME
, lpGroupName
);
54 /* Set group description */
55 NetLocalGroupGetInfo(NULL
, lpGroupName
, 1, (LPBYTE
*)&groupInfo
);
56 SetDlgItemText(hwndDlg
, IDC_GROUP_GENERAL_DESCRIPTION
, groupInfo
->lgrpi1_comment
);
57 NetApiBufferFree(groupInfo
);
59 /* Set group members */
60 NetLocalGroupGetMembers(NULL
, lpGroupName
, 1, (LPBYTE
*)&membersInfo
,
61 MAX_PREFERRED_LENGTH
, &dwRead
, &dwTotal
,
64 for (i
= 0; i
< dwRead
; i
++)
66 ZeroMemory(&lvi
, sizeof(lvi
));
67 lvi
.mask
= LVIF_TEXT
| LVIF_STATE
| LVIF_IMAGE
;
68 lvi
.pszText
= membersInfo
[i
].lgrmi1_name
;
70 lvi
.iImage
= (membersInfo
[i
].lgrmi1_sidusage
== SidTypeGroup
||
71 membersInfo
[i
].lgrmi1_sidusage
== SidTypeWellKnownGroup
) ? 1 : 0;
73 (void)ListView_InsertItem(hwndLV
, &lvi
);
76 NetApiBufferFree(membersInfo
);
81 GroupGeneralPageProc(HWND hwndDlg
,
86 UNREFERENCED_PARAMETER(lParam
);
87 UNREFERENCED_PARAMETER(wParam
);
88 UNREFERENCED_PARAMETER(hwndDlg
);
94 (LPTSTR
)((PROPSHEETPAGE
*)lParam
)->lParam
);
109 InitPropSheetPage(PROPSHEETPAGE
*psp
, WORD idDlg
, DLGPROC DlgProc
, LPTSTR pszGroup
)
111 ZeroMemory(psp
, sizeof(PROPSHEETPAGE
));
112 psp
->dwSize
= sizeof(PROPSHEETPAGE
);
113 psp
->dwFlags
= PSP_DEFAULT
;
114 psp
->hInstance
= hApplet
;
115 psp
->pszTemplate
= MAKEINTRESOURCE(idDlg
);
116 psp
->pfnDlgProc
= DlgProc
;
117 psp
->lParam
= (LPARAM
)pszGroup
;
122 GroupProperties(HWND hwndDlg
)
124 PROPSHEETPAGE psp
[1];
126 TCHAR szGroupName
[UNLEN
];
130 hwndLV
= GetDlgItem(hwndDlg
, IDC_GROUPS_LIST
);
131 nItem
= ListView_GetNextItem(hwndLV
, -1, LVNI_SELECTED
);
135 /* Get the new user name */
136 ListView_GetItemText(hwndLV
,
141 ZeroMemory(&psh
, sizeof(PROPSHEETHEADER
));
142 psh
.dwSize
= sizeof(PROPSHEETHEADER
);
143 psh
.dwFlags
= PSH_PROPSHEETPAGE
| PSH_PROPTITLE
;
144 psh
.hwndParent
= hwndDlg
;
145 psh
.hInstance
= hApplet
;
147 psh
.pszCaption
= szGroupName
;
148 psh
.nPages
= sizeof(psp
) / sizeof(PROPSHEETPAGE
);
152 InitPropSheetPage(&psp
[0], IDD_GROUP_GENERAL
, (DLGPROC
)GroupGeneralPageProc
, szGroupName
);