[PATCH v5 2/7] kernel32: Implement registry mapping in WritePrivateProfileStringW().
Zebediah Figura
z.figura12 at gmail.com
Sun Jul 12 20:32:08 CDT 2020
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/kernel32/profile.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/dlls/kernel32/profile.c b/dlls/kernel32/profile.c
index 3e06543a660..27057e62f7a 100644
--- a/dlls/kernel32/profile.c
+++ b/dlls/kernel32/profile.c
@@ -1473,6 +1473,9 @@ BOOL WINAPI WritePrivateProfileStringW( LPCWSTR section, LPCWSTR entry,
LPCWSTR string, LPCWSTR filename )
{
BOOL ret = FALSE;
+ HKEY key;
+
+ TRACE("(%s, %s, %s, %s)\n", debugstr_w(section), debugstr_w(entry), debugstr_w(string), debugstr_w(filename));
if (!section && !entry && !string) /* documented "file flush" case */
{
@@ -1486,6 +1489,20 @@ BOOL WINAPI WritePrivateProfileStringW( LPCWSTR section, LPCWSTR entry,
}
if (!entry) return PROFILE_DeleteSection( filename, section );
+ if (get_mapped_section_key( filename, section, entry, TRUE, &key ))
+ {
+ LSTATUS res;
+
+ if (string)
+ res = RegSetValueExW( key, entry, 0, REG_SZ, (const BYTE *)string,
+ (strlenW( string ) + 1) * sizeof(WCHAR) );
+ else
+ res = RegDeleteValueW( key, entry );
+ RegCloseKey( key );
+ if (res) SetLastError( res );
+ return !res;
+ }
+
EnterCriticalSection( &PROFILE_CritSect );
if (PROFILE_Open( filename, TRUE ))
--
2.27.0
More information about the wine-devel
mailing list