group registry gathering data together
Modified: trunk/reactos/base/system/servman/propsheet.c
Modified: trunk/reactos/base/system/servman/query.c
Modified: trunk/reactos/base/system/servman/servman.h

Modified: trunk/reactos/base/system/servman/propsheet.c
--- trunk/reactos/base/system/servman/propsheet.c	2006-02-03 19:18:17 UTC (rev 75)
+++ trunk/reactos/base/system/servman/propsheet.c	2006-02-03 20:03:48 UTC (rev 76)
@@ -70,13 +70,24 @@
  * Fills the 'startup type' combo box with possible
  * values and sets it to value of the selected item
  */
-VOID SetStartupType(HKEY hKey)
+VOID SetStartupType(LPTSTR lpServiceName)
 {
     HWND hList;
+    HKEY hKey;
     TCHAR buf[25];
     DWORD dwValueSize = 0;
     DWORD StartUp = 0;
+    LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s");
+    TCHAR KeyBuf[300];
 
+    /* open the registry key for the service */
+    _sntprintf(KeyBuf, sizeof(KeyBuf) / sizeof(TCHAR), Path, lpServiceName);
+    RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                 KeyBuf,
+                 0,
+                 KEY_READ,
+                 &hKey);
+
     hList = GetDlgItem(hwndGenDlg, IDC_START_TYPE);
 
     LoadString(hInstance, IDS_SERVICES_AUTO, buf, sizeof(buf) / sizeof(TCHAR));
@@ -114,23 +125,13 @@
  */
 VOID GetDlgInfo()
 {
-    HKEY hKey;
     ENUM_SERVICE_STATUS_PROCESS *Service = NULL;
     PROP_DLG_INFO DlgInfo;
-    LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s");
-    TCHAR buf[300];
+    
 
     /* get pointer to selected service */
     Service = GetSelectedService();
 
-    /* open the registry key for the service */
-    /* TODO: move all this into query (getdescription)*/
-    _sntprintf(buf, sizeof(buf) / sizeof(TCHAR), Path, Service->lpServiceName);
-    RegOpenKeyEx(HKEY_LOCAL_MACHINE,
-                 buf,
-                 0,
-                 KEY_READ,
-                 &hKey);
 
     /* set the service name */
     DlgInfo.lpServiceName = Service->lpServiceName;
@@ -145,7 +146,7 @@
 
 
     /* set the description */
-    if (GetDescription(hKey, &DlgInfo.lpDescription))
+    if (GetDescription(Service->lpServiceName, &DlgInfo.lpDescription))
         SendDlgItemMessage(hwndGenDlg, IDC_DESCRIPTION, WM_SETTEXT, 0,
             (LPARAM)DlgInfo.lpDescription);
 
@@ -156,10 +157,9 @@
 
 
     /* set startup type */
-    SetStartupType(hKey);
+    SetStartupType(Service->lpServiceName);
 
 
-
     /* set service status */
     if (Service->ServiceStatusProcess.dwCurrentState == SERVICE_RUNNING)
     {
@@ -174,13 +174,10 @@
         SendDlgItemMessageW(hwndGenDlg, IDC_SERV_STATUS, WM_SETTEXT, 0, (LPARAM)DlgInfo.szServiceStatus);
     }
 
-
-
-
-
 }
 
 
+
 #ifdef _MSC_VER
 #pragma warning(disable : 4100)
 #endif

Modified: trunk/reactos/base/system/servman/query.c
--- trunk/reactos/base/system/servman/query.c	2006-02-03 19:18:17 UTC (rev 75)
+++ trunk/reactos/base/system/servman/query.c	2006-02-03 20:03:48 UTC (rev 76)
@@ -61,17 +61,29 @@
 }
 
 /* Retrives the service description from the registry */
-BOOL GetDescription(HKEY hKey, LPTSTR *retDescription)
+BOOL GetDescription(LPTSTR lpServiceName, LPTSTR *retDescription)
 {
-
+    HKEY hKey;
     LPTSTR Description = NULL;
     DWORD dwValueSize = 0;
-    LONG ret = RegQueryValueEx(hKey,
-                               _T("Description"),
-                               NULL,
-                               NULL,
-                               NULL,
-                               &dwValueSize);
+    LONG ret;
+    LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s");
+    TCHAR buf[300];
+
+    /* open the registry key for the service */
+    _sntprintf(buf, sizeof(buf) / sizeof(TCHAR), Path, lpServiceName);
+    RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                 buf,
+                 0,
+                 KEY_READ,
+                 &hKey);
+        
+    ret = RegQueryValueEx(hKey,
+                          _T("Description"),
+                          NULL,
+                          NULL,
+                          NULL,
+                          &dwValueSize);
     if (ret != ERROR_SUCCESS && ret != ERROR_FILE_NOT_FOUND && ret != ERROR_INVALID_HANDLE)
     {
         RegCloseKey(hKey);
@@ -254,10 +266,9 @@
 
 
 
-
             /* set the description */
 
-            if (GetDescription(hKey, &Description))
+            if (GetDescription(pServiceStatus[Index].lpServiceName, &Description))
             {
                 item.pszText = Description;
                 item.iSubItem = 1;

Modified: trunk/reactos/base/system/servman/servman.h
--- trunk/reactos/base/system/servman/servman.h	2006-02-03 19:18:17 UTC (rev 75)
+++ trunk/reactos/base/system/servman/servman.h	2006-02-03 20:03:48 UTC (rev 76)
@@ -32,7 +32,7 @@
 VOID DisplayString(PTCHAR);
 
 BOOL SetDescription(HKEY, LPTSTR *);
-BOOL GetDescription(HKEY, LPTSTR *);
+BOOL GetDescription(LPTSTR, LPTSTR *);
 BOOL GetExecutablePath(LPTSTR *);
 
 LONG APIENTRY OpenPropSheet(HWND);