Michael Stefaniuc : svchost: Use wide-char string literals.

Alexandre Julliard julliard at winehq.org
Wed Nov 4 15:20:31 CST 2020


Module: wine
Branch: master
Commit: 7ceb23ef7c13326ee777ba3f19fc0313585103ce
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=7ceb23ef7c13326ee777ba3f19fc0313585103ce

Author: Michael Stefaniuc <mstefani at winehq.org>
Date:   Tue Nov  3 23:34:38 2020 +0100

svchost: Use wide-char string literals.

Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 programs/svchost/svchost.c | 46 +++++++++++-----------------------------------
 1 file changed, 11 insertions(+), 35 deletions(-)

diff --git a/programs/svchost/svchost.c b/programs/svchost/svchost.c
index 30c35616990..0daaa6ebf47 100644
--- a/programs/svchost/svchost.c
+++ b/programs/svchost/svchost.c
@@ -34,30 +34,8 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(svchost);
 
-/* Static strings used throughout svchost */
-static const WCHAR kd[] = {'-','k',0};
-
-static const WCHAR ks[] = {'/','k',0};
-
-static const WCHAR reg_separator[] = {'\\',0};
-
-static const WCHAR service_reg_path[] = {
-    'S','y','s','t','e','m',
-    '\\','C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t',
-    '\\','S','e','r','v','i','c','e','s',0};
-
-static const WCHAR parameters[] = {
-    'P','a','r','a','m','e','t','e','r','s',0};
-
-static const WCHAR service_dll[] = {
-    'S','e','r','v','i','c','e','D','l','l',0};
-
-static const WCHAR svchost_path[] = {
-    'S','o','f','t','w','a','r','e',
-    '\\','M','i','c','r','o','s','o','f','t',
-    '\\','W','i','n','d','o','w','s',' ','N','T',
-    '\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n',
-    '\\','S','v','c','h','o','s','t',0};
+static const WCHAR service_reg_path[] = L"System\\CurrentControlSet\\Services";
+static const WCHAR svchost_path[] = L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Svchost";
 
 static const CHAR service_main[] = "ServiceMain";
 
@@ -145,15 +123,14 @@ static BOOL AddServiceElem(LPWSTR service_name,
     WINE_TRACE("Adding element for %s\n", wine_dbgstr_w(service_name));
 
     /* Construct registry path to the service's parameters key */
-    size = (lstrlenW(service_reg_path) + lstrlenW(reg_separator) +
-            lstrlenW(service_name) + lstrlenW(reg_separator) +
-            lstrlenW(parameters) + 1);
+    size = lstrlenW(service_reg_path) + lstrlenW(L"\\") + lstrlenW(service_name) + lstrlenW(L"\\") +
+           lstrlenW(L"Parameters") + 1;
     service_param_key = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR));
     lstrcpyW(service_param_key, service_reg_path);
-    lstrcatW(service_param_key, reg_separator);
+    lstrcatW(service_param_key, L"\\");
     lstrcatW(service_param_key, service_name);
-    lstrcatW(service_param_key, reg_separator);
-    lstrcatW(service_param_key, parameters);
+    lstrcatW(service_param_key, L"\\");
+    lstrcatW(service_param_key, L"Parameters");
     service_param_key[size - 1] = '\0';
     ret = RegOpenKeyExW(HKEY_LOCAL_MACHINE, service_param_key, 0,
             KEY_READ, &service_hkey);
@@ -165,11 +142,11 @@ static BOOL AddServiceElem(LPWSTR service_name,
     }
 
     /* Find DLL associate with service from key */
-    dll_name_short = GetRegValue(service_hkey, service_dll);
+    dll_name_short = GetRegValue(service_hkey, L"ServiceDll");
     if (!dll_name_short)
     {
-        WINE_ERR("cannot find registry value %s for service %s\n",
-                wine_dbgstr_w(service_dll), wine_dbgstr_w(service_name));
+        WINE_ERR("cannot find registry value ServiceDll for service %s\n",
+                wine_dbgstr_w(service_name));
         RegCloseKey(service_hkey);
         goto cleanup;
     }
@@ -340,8 +317,7 @@ int __cdecl wmain(int argc, WCHAR *argv[])
 
     for (option_index = 1; option_index < argc; option_index++)
     {
-        if (lstrcmpiW(argv[option_index], ks) == 0 ||
-                lstrcmpiW(argv[option_index], kd) == 0)
+        if (lstrcmpiW(argv[option_index], L"/k") == 0 || lstrcmpiW(argv[option_index], L"-k") == 0)
         {
             ++option_index;
             if (option_index >= argc)




More information about the wine-cvs mailing list