[ros-diffs] [ekohl] 30559: List all user profiles (SIDs only).

ekohl at svn.reactos.org ekohl at svn.reactos.org
Sun Nov 18 20:54:04 CET 2007


Author: ekohl
Date: Sun Nov 18 22:54:04 2007
New Revision: 30559

URL: http://svn.reactos.org/svn/reactos?rev=30559&view=rev
Log:
List all user profiles (SIDs only).

Modified:
    trunk/reactos/dll/cpl/sysdm/userprofile.c

Modified: trunk/reactos/dll/cpl/sysdm/userprofile.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/sysdm/userprofile.c?rev=30559&r1=30558&r2=30559&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/sysdm/userprofile.c (original)
+++ trunk/reactos/dll/cpl/sysdm/userprofile.c Sun Nov 18 22:54:04 2007
@@ -62,10 +62,63 @@
 
 
 static VOID
+AddUserProfile(HWND hwndListView,
+               LPTSTR lpProfileSid)
+{
+    LV_ITEM lvi;
+    INT iItem;
+
+    memset(&lvi, 0x00, sizeof(lvi));
+    lvi.mask = LVIF_TEXT | LVIF_STATE;
+    lvi.pszText = lpProfileSid;
+    lvi.state = 0;
+    iItem = ListView_InsertItem(hwndListView, &lvi);
+}
+
+
+static VOID
+AddUserProfiles(HWND hwndListView)
+{
+    HKEY hKeyUserProfiles;
+    DWORD dwIndex;
+    TCHAR szProfileSid[64];
+    DWORD dwSidLength;
+    FILETIME ftLastWrite;
+
+    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                     _T("Software\\Microsoft\\Windows NT\\CurrentVersion\\ProfileList"),
+                     0,
+                     KEY_READ,
+                     &hKeyUserProfiles))
+        return;
+
+    for (dwIndex = 0; ; dwIndex++)
+    {
+        dwSidLength = 64;
+        if (RegEnumKeyEx(hKeyUserProfiles,
+                         dwIndex,
+                         szProfileSid,
+                         &dwSidLength,
+                         NULL,
+                         NULL,
+                         NULL,
+                         &ftLastWrite))
+            break;
+
+        AddUserProfile(hwndListView, szProfileSid);
+    }
+
+    RegCloseKey(hKeyUserProfiles);
+}
+
+
+static VOID
 OnInitDialog(HWND hwndDlg)
 {
     /* Initialize the list view control */
     SetListViewColumns(GetDlgItem(hwndDlg, IDC_USERPROFILE_LIST));
+
+    AddUserProfiles(GetDlgItem(hwndDlg, IDC_USERPROFILE_LIST));
 
     /* Disable the "Delete" and "Copy To" buttons if the user is not an admin */
     if (!IsUserAdmin())




More information about the Ros-diffs mailing list