[ros-diffs] [gedmurphy] 24434: move the string parsing routine into it's own function so it can be used with DeviceProblemWizard_RunDLL when required.

gedmurphy at svn.reactos.org gedmurphy at svn.reactos.org
Sat Oct 7 17:02:44 CEST 2006


Author: gedmurphy
Date: Sat Oct  7 19:02:43 2006
New Revision: 24434

URL: http://svn.reactos.org/svn/reactos?rev=24434&view=rev
Log:
move the string parsing routine into it's own function so it can be used with DeviceProblemWizard_RunDLL when required.

Modified:
    trunk/reactos/dll/win32/devmgr/advprop.c

Modified: trunk/reactos/dll/win32/devmgr/advprop.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/devmgr/advprop.c?rev=24434&r1=24433&r2=24434&view=diff
==============================================================================
--- trunk/reactos/dll/win32/devmgr/advprop.c (original)
+++ trunk/reactos/dll/win32/devmgr/advprop.c Sat Oct  7 19:02:43 2006
@@ -1502,6 +1502,64 @@
 }
 
 
+static BOOL
+GetDeviceAndComputerName(LPWSTR lpString,
+                         WCHAR szDeviceID[],
+                         WCHAR szMachineName[])
+{
+    BOOL ret = FALSE;
+
+    szDeviceID[0] = L'\0';
+    szMachineName[0] = L'\0';
+
+    while (*lpString != L'\0')
+    {
+        if (*lpString == L'/')
+        {
+            lpString++;
+            if(!wcsnicmp(lpString, L"DeviceID", 8))
+            {
+                lpString += 9;
+                if (*lpString != L'\0')
+                {
+                    int i = 0;
+                    while ((*lpString != L' ') &&
+                           (*lpString != L'\0') &&
+                           (i <= MAX_DEVICE_ID_LEN))
+                    {
+                        szDeviceID[i++] = *lpString++;
+                    }
+                    szDeviceID[i] = L'\0';
+                    ret = TRUE;
+                }
+            }
+            else if (!wcsnicmp(lpString, L"MachineName", 11))
+            {
+                lpString += 12;
+                if (*lpString != L'\0')
+                {
+                    int i = 0;
+                    while ((*lpString != L' ') &&
+                           (*lpString != L'\0') &&
+                           (i <= MAX_COMPUTERNAME_LENGTH))
+                    {
+                        szMachineName[i++] = *lpString++;
+                    }
+                    szMachineName[i] = L'\0';
+                }
+            }
+            /* knock the pointer back one and let the next
+             * pointer deal with incrementing, otherwise we
+             * go past the end of the string */
+             lpString--;
+        }
+        lpString++;
+    }
+
+    return ret;
+}
+
+
 /***************************************************************************
  * NAME                                                         EXPORTED
  *      DeviceAdvancedPropertiesW
@@ -1908,56 +1966,13 @@
     WCHAR szMachineName[MAX_COMPUTERNAME_LENGTH+1];
     LPWSTR lpString = (LPWSTR)lpDeviceCmd;
 
-    szDeviceID[0] = L'\0';
-    szMachineName[0] = L'\0';
-
-    while (*lpString != L'\0')
-    {
-        if (*lpString == L'/')
-        {
-            lpString++;
-            if(!wcsnicmp(lpString, L"DeviceID", 8))
-            {
-                lpString += 9;
-                if (*lpString != L'\0')
-                {
-                    int i = 0;
-                    while ((*lpString != L' ') &&
-                           (*lpString != L'\0') &&
-                           (i <= MAX_DEVICE_ID_LEN))
-                    {
-                        szDeviceID[i++] = *lpString++;
-                    }
-                    szDeviceID[i] = L'\0';
-                }
-            }
-            else if (!wcsnicmp(lpString, L"MachineName", 11))
-            {
-                lpString += 12;
-                if (*lpString != L'\0')
-                {
-                    int i = 0;
-                    while ((*lpString != L' ') &&
-                           (*lpString != L'\0') &&
-                           (i <= MAX_COMPUTERNAME_LENGTH))
-                    {
-                        szMachineName[i++] = *lpString++;
-                    }
-                    szMachineName[i] = L'\0';
-                }
-            }
-            /* knock the pointer back one and let the next
-             * pointer deal with incrementing, otherwise we
-             * go past the end of the string */
-             lpString--;
-        }
-        lpString++;
-    }
-
-    //DPRINT("DeviceID: %S, MachineName: %S\n", szDeviceID, szMachineName);
-
-    if (szDeviceID == L'\0')
+    if (!GetDeviceAndComputerName(lpString,
+                                  szDeviceID,
+                                  szMachineName))
+    {
+        DPRINT1("DeviceProperties_RunDLLW DeviceID: %S, MachineName: %S\n", szDeviceID, szMachineName);
         return;
+    }
 
     DevicePropertiesW(hWndParent,
                       hInst,




More information about the Ros-diffs mailing list