[PATCH 2/2] advpack: Use wide-char string literals.

Michael Stefaniuc mstefani at winehq.org
Tue Oct 6 17:51:57 CDT 2020


Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
---
 dlls/advpack/advpack.c     | 47 +++++++----------------------
 dlls/advpack/files.c       | 36 +++++------------------
 dlls/advpack/install.c     | 60 ++++++++++----------------------------
 dlls/advpack/reg.c         | 29 +++++++-----------
 dlls/advpack/tests/files.c |  7 +----
 5 files changed, 46 insertions(+), 133 deletions(-)

diff --git a/dlls/advpack/advpack.c b/dlls/advpack/advpack.c
index e3d4d50837b..25751af64bc 100644
--- a/dlls/advpack/advpack.c
+++ b/dlls/advpack/advpack.c
@@ -41,13 +41,7 @@ typedef HRESULT (WINAPI *DLLREGISTER) (void);
 #define PREFIX_LEN          5
 
 /* registry path of the Installed Components key for per-user stubs */
-static const WCHAR setup_key[] = {
-    'S','O','F','T','W','A','R','E','\\',
-    'M','i','c','r','o','s','o','f','t','\\',
-    'A','c','t','i','v','e',' ','S','e','t','u','p','\\',
-    'I','n','s','t','a','l','l','e','d',' ',
-    'C','o','m','p','o','n','e','n','t','s',0
-};
+static const WCHAR setup_key[] = L"SOFTWARE\\Microsoft\\Active Setup\\Installed Components";
 
 /* Strip single quotes from a token - note size includes NULL */
 static void strip_quotes(WCHAR *buffer, DWORD *size)
@@ -73,9 +67,6 @@ static void get_dest_dir(HINF hInf, PCWSTR pszSection, PWSTR pszBuffer, DWORD dw
     HKEY root, subkey = 0;
     DWORD size;
 
-    static const WCHAR hklm[] = {'H','K','L','M',0};
-    static const WCHAR hkcu[] = {'H','K','C','U',0};
-
     /* load the destination parameters */
     SetupFindFirstLineW(hInf, pszSection, NULL, &context);
     SetupGetStringFieldW(&context, 1, prefix, PREFIX_LEN + 2, &size);
@@ -85,9 +76,9 @@ static void get_dest_dir(HINF hInf, PCWSTR pszSection, PWSTR pszBuffer, DWORD dw
     SetupGetStringFieldW(&context, 3, value, MAX_PATH + 2, &size);
     strip_quotes(value, &size);
 
-    if (!lstrcmpW(prefix, hklm))
+    if (!lstrcmpW(prefix, L"HKLM"))
         root = HKEY_LOCAL_MACHINE;
-    else if (!lstrcmpW(prefix, hkcu))
+    else if (!lstrcmpW(prefix, L"HKCU"))
         root = HKEY_CURRENT_USER;
     else
         root = NULL;
@@ -115,13 +106,7 @@ void set_ldids(HINF hInf, LPCWSTR pszInstallSection, LPCWSTR pszWorkingDir)
     DWORD size;
     int ldid;
 
-    static const WCHAR source_dir[] = {'S','o','u','r','c','e','D','i','r',0};
-
-    static const WCHAR custDestW[] = {
-        'C','u','s','t','o','m','D','e','s','t','i','n','a','t','i','o','n',0
-    };
-
-    if (!SetupGetLineTextW(NULL, hInf, pszInstallSection, custDestW,
+    if (!SetupGetLineTextW(NULL, hInf, pszInstallSection, L"CustomDestination",
                            field, MAX_FIELD_LENGTH, &size))
         return;
 
@@ -165,7 +150,7 @@ void set_ldids(HINF hInf, LPCWSTR pszInstallSection, LPCWSTR pszWorkingDir)
         }
 
         /* set dest to pszWorkingDir if key is SourceDir */
-        if (pszWorkingDir && !lstrcmpiW(value, source_dir))
+        if (pszWorkingDir && !lstrcmpiW(value, L"SourceDir"))
             lstrcpynW(dest, pszWorkingDir, MAX_PATH);
         else
             get_dest_dir(hInf, value, dest, MAX_PATH);
@@ -559,12 +544,6 @@ HRESULT WINAPI SetPerUserSecValuesW(PERUSERSECTIONW* pPerUser)
 {
     HKEY setup, guid;
 
-    static const WCHAR stub_path[] = {'S','t','u','b','P','a','t','h',0};
-    static const WCHAR version[] = {'V','e','r','s','i','o','n',0};
-    static const WCHAR locale[] = {'L','o','c','a','l','e',0};
-    static const WCHAR compid[] = {'C','o','m','p','o','n','e','n','t','I','D',0};
-    static const WCHAR isinstalled[] = {'I','s','I','n','s','t','a','l','l','e','d',0};
-
     TRACE("(%p)\n", pPerUser);
 
     if (!pPerUser || !*pPerUser->szGUID)
@@ -585,25 +564,25 @@ HRESULT WINAPI SetPerUserSecValuesW(PERUSERSECTIONW* pPerUser)
 
     if (*pPerUser->szStub)
     {
-        RegSetValueExW(guid, stub_path, 0, REG_SZ, (LPBYTE)pPerUser->szStub,
+        RegSetValueExW(guid, L"StubPath", 0, REG_SZ, (BYTE *)pPerUser->szStub,
                        (lstrlenW(pPerUser->szStub) + 1) * sizeof(WCHAR));
     }
 
     if (*pPerUser->szVersion)
     {
-        RegSetValueExW(guid, version, 0, REG_SZ, (LPBYTE)pPerUser->szVersion,
+        RegSetValueExW(guid, L"Version", 0, REG_SZ, (BYTE *)pPerUser->szVersion,
                        (lstrlenW(pPerUser->szVersion) + 1) * sizeof(WCHAR));
     }
 
     if (*pPerUser->szLocale)
     {
-        RegSetValueExW(guid, locale, 0, REG_SZ, (LPBYTE)pPerUser->szLocale,
+        RegSetValueExW(guid, L"Locale", 0, REG_SZ, (BYTE *)pPerUser->szLocale,
                        (lstrlenW(pPerUser->szLocale) + 1) * sizeof(WCHAR));
     }
 
     if (*pPerUser->szCompID)
     {
-        RegSetValueExW(guid, compid, 0, REG_SZ, (LPBYTE)pPerUser->szCompID,
+        RegSetValueExW(guid, L"ComponentID", 0, REG_SZ, (BYTE *)pPerUser->szCompID,
                        (lstrlenW(pPerUser->szCompID) + 1) * sizeof(WCHAR));
     }
 
@@ -613,7 +592,7 @@ HRESULT WINAPI SetPerUserSecValuesW(PERUSERSECTIONW* pPerUser)
                        (lstrlenW(pPerUser->szDispName) + 1) * sizeof(WCHAR));
     }
 
-    RegSetValueExW(guid, isinstalled, 0, REG_DWORD,
+    RegSetValueExW(guid, L"IsInstalled", 0, REG_DWORD,
                    (LPBYTE)&pPerUser->dwIsInstalled, sizeof(DWORD));
 
     RegCloseKey(guid);
@@ -911,10 +890,6 @@ HRESULT WINAPI UserInstStubWrapperW(HWND hWnd, HINSTANCE hInstance,
     HRESULT hr = S_OK;
     BOOL res;
 
-    static const WCHAR real_stub_path[] = {
-        'R','e','a','l','S','t','u','b','P','a','t','h',0
-    };
-
     TRACE("(%p, %p, %s, %i)\n", hWnd, hInstance, debugstr_w(pszParms), nShow);
 
     if (!pszParms || !*pszParms)
@@ -931,7 +906,7 @@ HRESULT WINAPI UserInstStubWrapperW(HWND hWnd, HINSTANCE hInstance,
         return E_FAIL;
     }
 
-    res = RegQueryValueExW(guid, real_stub_path, NULL, NULL, (LPBYTE)stub, &size);
+    res = RegQueryValueExW(guid, L"RealStubPath", NULL, NULL, (BYTE *)stub, &size);
     if (res || !*stub)
         goto done;
 
diff --git a/dlls/advpack/files.c b/dlls/advpack/files.c
index 3e4cb366007..58ff76e0505 100644
--- a/dlls/advpack/files.c
+++ b/dlls/advpack/files.c
@@ -120,14 +120,6 @@ HRESULT WINAPI AddDelBackupEntryW(LPCWSTR lpcszFileList, LPCWSTR lpcszBackupDir,
     WCHAR szIniPath[MAX_PATH];
     LPCWSTR szString = NULL;
 
-    static const WCHAR szBackupEntry[] = {
-        '-','1',',','0',',','0',',','0',',','0',',','0',',','-','1',0
-    };
-    
-    static const WCHAR backslash[] = {'\\',0};
-    static const WCHAR ini[] = {'.','i','n','i',0};
-    static const WCHAR backup[] = {'b','a','c','k','u','p',0};
-
     TRACE("(%s, %s, %s, %d)\n", debugstr_w(lpcszFileList),
           debugstr_w(lpcszBackupDir), debugstr_w(lpcszBaseName), dwFlags);
 
@@ -139,21 +131,21 @@ HRESULT WINAPI AddDelBackupEntryW(LPCWSTR lpcszFileList, LPCWSTR lpcszBackupDir,
     else
         GetWindowsDirectoryW(szIniPath, MAX_PATH);
 
-    lstrcatW(szIniPath, backslash);
+    lstrcatW(szIniPath, L"\\");
     lstrcatW(szIniPath, lpcszBaseName);
-    lstrcatW(szIniPath, ini);
+    lstrcatW(szIniPath, L".ini");
 
     SetFileAttributesW(szIniPath, FILE_ATTRIBUTE_NORMAL);
 
     if (dwFlags & AADBE_ADD_ENTRY)
-        szString = szBackupEntry;
+        szString = L"-1,0,0,0,0,0,-1";
     else if (dwFlags & AADBE_DEL_ENTRY)
         szString = NULL;
 
     /* add or delete the INI entries */
     while (*lpcszFileList)
     {
-        WritePrivateProfileStringW(backup, lpcszFileList, szString, szIniPath);
+        WritePrivateProfileStringW(L"backup", lpcszFileList, szString, szIniPath);
         lpcszFileList += lstrlenW(lpcszFileList) + 1;
     }
 
@@ -332,10 +324,6 @@ static HRESULT DELNODE_recurse_dirtree(LPWSTR fname, DWORD flags)
     DWORD fattrs = GetFileAttributesW(fname);
     HRESULT ret = E_FAIL;
 
-    static const WCHAR asterisk[] = {'*',0};
-    static const WCHAR dot[] = {'.',0};
-    static const WCHAR dotdot[] = {'.','.',0};
-
     if (fattrs & FILE_ATTRIBUTE_DIRECTORY)
     {
         HANDLE hFindFile;
@@ -345,7 +333,7 @@ static HRESULT DELNODE_recurse_dirtree(LPWSTR fname, DWORD flags)
 
         /* Generate a path with wildcard suitable for iterating */
         if (fname_len && fname[fname_len-1] != '\\') fname[fname_len++] = '\\';
-        lstrcpyW(fname + fname_len, asterisk);
+        lstrcpyW(fname + fname_len, L"*");
 
         if ((hFindFile = FindFirstFileW(fname, &w32fd)) != INVALID_HANDLE_VALUE)
         {
@@ -353,8 +341,7 @@ static HRESULT DELNODE_recurse_dirtree(LPWSTR fname, DWORD flags)
             for (done = FALSE; !done; done = !FindNextFileW(hFindFile, &w32fd))
             {
                 TRACE("%s\n", debugstr_w(w32fd.cFileName));
-                if (lstrcmpW(dot, w32fd.cFileName) != 0 &&
-                    lstrcmpW(dotdot, w32fd.cFileName) != 0)
+                if (lstrcmpW(L".", w32fd.cFileName) != 0 && lstrcmpW(L"..", w32fd.cFileName) != 0)
                 {
                     lstrcpyW(fname + fname_len, w32fd.cFileName);
                     if (DELNODE_recurse_dirtree(fname, flags) != S_OK)
@@ -1063,12 +1050,6 @@ HRESULT WINAPI GetVersionFromFileExW(LPCWSTR lpszFilename, LPDWORD pdwMSVer,
     BOOL bFileCopied = FALSE;
     UINT uValueLen;
 
-    static const WCHAR backslash[] = {'\\',0};
-    static const WCHAR translation[] = {
-        '\\','V','a','r','F','i','l','e','I','n','f','o',
-        '\\','T','r','a','n','s','l','a','t','i','o','n',0
-    };
-
     TRACE("(%s, %p, %p, %d)\n", debugstr_w(lpszFilename),
           pdwMSVer, pdwLSVer, bVersion);
 
@@ -1106,8 +1087,7 @@ HRESULT WINAPI GetVersionFromFileExW(LPCWSTR lpszFilename, LPDWORD pdwMSVer,
 
     if (bVersion)
     {
-        if (!VerQueryValueW(pVersionInfo, backslash,
-            (LPVOID *)&pFixedVersionInfo, &uValueLen))
+        if (!VerQueryValueW(pVersionInfo, L"\\", (void **)&pFixedVersionInfo, &uValueLen))
             goto done;
 
         if (!uValueLen)
@@ -1118,7 +1098,7 @@ HRESULT WINAPI GetVersionFromFileExW(LPCWSTR lpszFilename, LPDWORD pdwMSVer,
     }
     else
     {
-        if (!VerQueryValueW(pVersionInfo, translation,
+        if (!VerQueryValueW(pVersionInfo, L"\\VarFileInfo\\Translation",
              (LPVOID *)&pLangAndCodePage, &uValueLen))
             goto done;
 
diff --git a/dlls/advpack/install.c b/dlls/advpack/install.c
index 24e2c4579a9..a2ccbd55099 100644
--- a/dlls/advpack/install.c
+++ b/dlls/advpack/install.c
@@ -59,20 +59,6 @@ typedef struct _ADVInfo
 
 typedef HRESULT (*iterate_fields_func)(HINF hinf, PCWSTR field, const void *arg);
 
-/* Advanced INF commands */
-static const WCHAR CheckAdminRights[] = {
-    'C','h','e','c','k','A','d','m','i','n','R','i','g','h','t','s',0
-};
-static const WCHAR DelDirs[] = {'D','e','l','D','i','r','s',0};
-static const WCHAR PerUserInstall[] = {'P','e','r','U','s','e','r','I','n','s','t','a','l','l',0};
-static const WCHAR RegisterOCXs[] = {'R','e','g','i','s','t','e','r','O','C','X','s',0};
-static const WCHAR RunPreSetupCommands[] = {
-    'R','u','n','P','r','e','S','e','t','u','p','C','o','m','m','a','n','d','s',0
-};
-static const WCHAR RunPostSetupCommands[] = {
-    'R','u','n','P','o','s','t','S','e','t','u','p','C','o','m','m','a','n','d','s',0
-};
-
 /* Advanced INF callbacks */
 static HRESULT del_dirs_callback(HINF hinf, PCWSTR field, const void *arg)
 {
@@ -103,33 +89,25 @@ static HRESULT per_user_install_callback(HINF hinf, PCWSTR field, const void *ar
     INFCONTEXT context;
     DWORD size;
 
-    static const WCHAR disp_name[] = {'D','i','s','p','l','a','y','N','a','m','e',0};
-    static const WCHAR version[] = {'V','e','r','s','i','o','n',0};
-    static const WCHAR is_installed[] = {'I','s','I','n','s','t','a','l','l','e','d',0};
-    static const WCHAR comp_id[] = {'C','o','m','p','o','n','e','n','t','I','D',0};
-    static const WCHAR guid[] = {'G','U','I','D',0};
-    static const WCHAR locale[] = {'L','o','c','a','l','e',0};
-    static const WCHAR stub_path[] = {'S','t','u','b','P','a','t','h',0};
-
     per_user.bRollback = FALSE;
     per_user.dwIsInstalled = 0;
 
-    SetupGetLineTextW(NULL, hinf, field, disp_name, per_user.szDispName, ARRAY_SIZE(per_user.szDispName), &size);
+    SetupGetLineTextW(NULL, hinf, field, L"DisplayName", per_user.szDispName, ARRAY_SIZE(per_user.szDispName), &size);
 
-    SetupGetLineTextW(NULL, hinf, field, version, per_user.szVersion, ARRAY_SIZE(per_user.szVersion), &size);
+    SetupGetLineTextW(NULL, hinf, field, L"Version", per_user.szVersion, ARRAY_SIZE(per_user.szVersion), &size);
 
-    if (SetupFindFirstLineW(hinf, field, is_installed, &context))
+    if (SetupFindFirstLineW(hinf, field, L"IsInstalled", &context))
     {
         SetupGetIntField(&context, 1, (PINT)&per_user.dwIsInstalled);
     }
 
-    SetupGetLineTextW(NULL, hinf, field, comp_id, per_user.szCompID, ARRAY_SIZE(per_user.szCompID), &size);
+    SetupGetLineTextW(NULL, hinf, field, L"ComponentID", per_user.szCompID, ARRAY_SIZE(per_user.szCompID), &size);
 
-    SetupGetLineTextW(NULL, hinf, field, guid, per_user.szGUID, ARRAY_SIZE(per_user.szGUID), &size);
+    SetupGetLineTextW(NULL, hinf, field, L"GUID", per_user.szGUID, ARRAY_SIZE(per_user.szGUID), &size);
 
-    SetupGetLineTextW(NULL, hinf, field, locale, per_user.szLocale, ARRAY_SIZE(per_user.szLocale), &size);
+    SetupGetLineTextW(NULL, hinf, field, L"Locale", per_user.szLocale, ARRAY_SIZE(per_user.szLocale), &size);
 
-    SetupGetLineTextW(NULL, hinf, field, stub_path, per_user.szStub, ARRAY_SIZE(per_user.szStub), &size);
+    SetupGetLineTextW(NULL, hinf, field, L"StubPath", per_user.szStub, ARRAY_SIZE(per_user.szStub), &size);
 
     return SetPerUserSecValuesW(&per_user);
 }
@@ -299,8 +277,7 @@ static HRESULT check_admin_rights(const ADVInfo *info)
     INFCONTEXT context;
     HRESULT hr = S_OK;
 
-    if (!SetupFindFirstLineW(info->hinf, info->install_sec,
-                             CheckAdminRights, &context))
+    if (!SetupFindFirstLineW(info->hinf, info->install_sec, L"CheckAdminRights", &context))
         return S_OK;
 
     if (!SetupGetIntField(&context, 1, &check))
@@ -356,30 +333,29 @@ static HRESULT adv_install(ADVInfo *info)
     if (hr != S_OK)
         return hr;
 
-    hr = iterate_section_fields(info->hinf, info->install_sec, RunPreSetupCommands,
+    hr = iterate_section_fields(info->hinf, info->install_sec, L"RunPreSetupCommands",
                                 run_setup_commands_callback, info);
     if (hr != S_OK)
         return hr;
 
     OleInitialize(NULL);
     hr = iterate_section_fields(info->hinf, info->install_sec,
-                                RegisterOCXs, register_ocxs_callback, NULL);
+                                L"RegisterOCXs", register_ocxs_callback, NULL);
     OleUninitialize();
     if (hr != S_OK)
         return hr;
 
     hr = iterate_section_fields(info->hinf, info->install_sec,
-                                PerUserInstall, per_user_install_callback, info);
+                                L"PerUserInstall", per_user_install_callback, info);
     if (hr != S_OK)
         return hr;
 
-    hr = iterate_section_fields(info->hinf, info->install_sec, RunPostSetupCommands,
+    hr = iterate_section_fields(info->hinf, info->install_sec, L"RunPostSetupCommands",
                                 run_setup_commands_callback, info);
     if (hr != S_OK)
         return hr;
 
-    hr = iterate_section_fields(info->hinf, info->install_sec,
-                                DelDirs, del_dirs_callback, info);
+    hr = iterate_section_fields(info->hinf, info->install_sec, L"DelDirs", del_dirs_callback, info);
     if (hr != S_OK)
         return hr;
 
@@ -393,9 +369,6 @@ static HRESULT get_working_dir(ADVInfo *info, LPCWSTR inf_filename, LPCWSTR work
     LPCWSTR ptr;
     DWORD len;
 
-    static const WCHAR backslash[] = {'\\',0};
-    static const WCHAR inf_dir[] = {'\\','I','N','F',0};
-
     if ((ptr = wcsrchr(inf_filename, '\\')))
     {
         len = ptr - inf_filename + 1;
@@ -409,7 +382,7 @@ static HRESULT get_working_dir(ADVInfo *info, LPCWSTR inf_filename, LPCWSTR work
     else
     {
         GetCurrentDirectoryW(MAX_PATH, path);
-        lstrcatW(path, backslash);
+        lstrcatW(path, L"\\");
         lstrcatW(path, inf_filename);
 
         /* check if the INF file is in the current directory */
@@ -421,7 +394,7 @@ static HRESULT get_working_dir(ADVInfo *info, LPCWSTR inf_filename, LPCWSTR work
         {
             /* default to the windows\inf directory if all else fails */
             GetWindowsDirectoryW(path, MAX_PATH);
-            lstrcatW(path, inf_dir);
+            lstrcatW(path, L"\\INF");
         }
 
         len = lstrlenW(path) + 1;
@@ -445,7 +418,6 @@ static HRESULT install_init(LPCWSTR inf_filename, LPCWSTR install_sec,
     HRESULT hr;
     LPCWSTR ptr, path;
 
-    static const WCHAR backslash[] = {'\\',0};
     if (!(ptr = wcsrchr(inf_filename, '\\')))
         ptr = inf_filename;
 
@@ -485,7 +457,7 @@ static HRESULT install_init(LPCWSTR inf_filename, LPCWSTR install_sec,
         return E_OUTOFMEMORY;
 
     lstrcpyW(info->inf_path, info->working_dir);
-    lstrcatW(info->inf_path, backslash);
+    lstrcatW(info->inf_path, L"\\");
     lstrcatW(info->inf_path, info->inf_filename);
 
     /* RunSetupCommand opens unmodified filename parameter */
diff --git a/dlls/advpack/reg.c b/dlls/advpack/reg.c
index 472bbcd9694..555743d656c 100644
--- a/dlls/advpack/reg.c
+++ b/dlls/advpack/reg.c
@@ -31,23 +31,14 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(advpack);
 
-static const WCHAR REGINST[] = {'R','E','G','I','N','S','T',0};
-static const WCHAR Strings[] = {'S','t','r','i','n','g','s',0};
-static const WCHAR MOD_PATH[] = {'_','M','O','D','_','P','A','T','H',0};
-static const WCHAR SYS_MOD_PATH[] = {'_','S','Y','S','_','M','O','D','_','P','A','T','H',0};
-static const WCHAR SystemRoot[] = {'S','y','s','t','e','m','R','o','o','t',0};
-static const WCHAR escaped_SystemRoot[] = {'%','S','y','s','t','e','m','R','o','o','t','%',0};
-static const WCHAR quote[] = {'\"',0};
-
 static BOOL get_temp_ini_path(LPWSTR name)
 {
-    static const WCHAR prefix[] = {'a','v','p',0};
     WCHAR tmp_dir[MAX_PATH];
 
     if(!GetTempPathW(ARRAY_SIZE(tmp_dir), tmp_dir))
        return FALSE;
 
-    if(!GetTempFileNameW(tmp_dir, prefix, 0, name))
+    if (!GetTempFileNameW(tmp_dir, L"avp", 0, name))
         return FALSE;
     return TRUE;
 }
@@ -65,7 +56,7 @@ static BOOL create_tmp_ini_file(HMODULE hm, WCHAR *ini_file)
         goto error;
     }
 
-    if(!(hrsrc = FindResourceW(hm, REGINST, REGINST))) {
+    if (!(hrsrc = FindResourceW(hm, L"REGINST", L"REGINST"))) {
         ERR("Can't find REGINST resource\n");
         goto error;
     }
@@ -180,16 +171,16 @@ static HRESULT write_predefined_strings(HMODULE hm, LPCWSTR ini_path)
     if (!GetModuleFileNameW(hm, mod_path + 1, ARRAY_SIZE(mod_path) - 2))
         return E_FAIL;
 
-    lstrcatW(mod_path, quote);
-    WritePrivateProfileStringW(Strings, MOD_PATH, mod_path, ini_path);
+    lstrcatW(mod_path, L"\"");
+    WritePrivateProfileStringW(L"Strings", L"_MOD_PATH", mod_path, ini_path);
 
     *sys_root = '\0';
-    GetEnvironmentVariableW(SystemRoot, sys_root, ARRAY_SIZE(sys_root));
+    GetEnvironmentVariableW(L"SystemRoot", sys_root, ARRAY_SIZE(sys_root));
 
     if(!wcsnicmp(sys_root, mod_path + 1, lstrlenW(sys_root)))
     {
         *sys_mod_path = '\"';
-        lstrcpyW(sys_mod_path + 1, escaped_SystemRoot);
+        lstrcpyW(sys_mod_path + 1, L"%SystemRoot%");
         lstrcatW(sys_mod_path, mod_path + 1 + lstrlenW(sys_root));
     }
     else
@@ -198,7 +189,7 @@ static HRESULT write_predefined_strings(HMODULE hm, LPCWSTR ini_path)
         lstrcpyW(sys_mod_path, mod_path);
     }
 
-    WritePrivateProfileStringW(Strings, SYS_MOD_PATH, sys_mod_path, ini_path);
+    WritePrivateProfileStringW(L"Strings", L"_SYS_MOD_PATH", sys_mod_path, ini_path);
 
     return S_OK;
 }
@@ -242,9 +233,9 @@ HRESULT WINAPI RegInstallW(HMODULE hm, LPCWSTR pszSection, const STRTABLEW* pstT
     
             tmp_value[0] = '\"';
             lstrcpyW(tmp_value + 1, pstTable->pse[i].pszValue);
-            lstrcatW(tmp_value, quote);
-    
-            WritePrivateProfileStringW(Strings, pstTable->pse[i].pszName, tmp_value, tmp_ini_path);
+            lstrcatW(tmp_value, L"\"");
+
+            WritePrivateProfileStringW(L"Strings", pstTable->pse[i].pszName, tmp_value, tmp_ini_path);
         }
     }
 
diff --git a/dlls/advpack/tests/files.c b/dlls/advpack/tests/files.c
index 135a09f97d6..488b7ab6136 100644
--- a/dlls/advpack/tests/files.c
+++ b/dlls/advpack/tests/files.c
@@ -472,12 +472,7 @@ static void test_ExtractFiles(void)
     ok(!RemoveDirectoryA("dest\\testdir"), "Expected dest\\testdir to not exist\n");
 
     if(pExtractFilesW) {
-        static const WCHAR extract_cabW[] = {'e','x','t','r','a','c','t','.','c','a','b',0};
-        static const WCHAR destW[] = {'d','e','s','t',0};
-        static const WCHAR file_listW[] =
-            {'a','.','t','x','t',':','t','e','s','t','d','i','r','\\','c','.','t','x','t',0};
-
-        hr = pExtractFilesW(extract_cabW, destW, 0, file_listW, NULL, 0);
+        hr = pExtractFilesW(L"extract.cab", L"dest", 0, L"a.txt:testdir\\c.txt", NULL, 0);
         ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
         ok(DeleteFileA("dest\\a.txt"), "Expected dest\\a.txt to exist\n");
         ok(DeleteFileA("dest\\testdir\\c.txt"), "Expected dest\\testdir\\c.txt to exist\n");
-- 
2.26.2




More information about the wine-devel mailing list