[PATCH 9/9] winemac: Directly use ntdll for registry access in copy_system_cursor_name.

Jacek Caban wine at gitlab.winehq.org
Mon May 16 17:54:13 CDT 2022


From: Jacek Caban <jacek at codeweavers.com>

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
---
 dlls/winemac.drv/Makefile.in   |  2 +-
 dlls/winemac.drv/macdrv.h      |  1 +
 dlls/winemac.drv/macdrv_main.c |  2 +-
 dlls/winemac.drv/mouse.c       | 16 ++++++++--------
 4 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/dlls/winemac.drv/Makefile.in b/dlls/winemac.drv/Makefile.in
index da2e5eaf4c4..e345249aac7 100644
--- a/dlls/winemac.drv/Makefile.in
+++ b/dlls/winemac.drv/Makefile.in
@@ -1,6 +1,6 @@
 EXTRADEFS = -DWINE_NO_LONG_TYPES
 MODULE    = winemac.drv
-IMPORTS   = uuid rpcrt4 user32 gdi32 advapi32 win32u
+IMPORTS   = uuid rpcrt4 user32 gdi32 win32u
 DELAYIMPORTS = ole32 shell32 imm32
 EXTRALIBS = -framework AppKit -framework Carbon -framework Security -framework OpenGL -framework IOKit -framework CoreVideo -framework QuartzCore $(METAL_LIBS)
 
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index 922a2df75cb..0a0c42aefd0 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -295,6 +295,7 @@ extern BOOL query_ime_char_rect(macdrv_query* query) DECLSPEC_HIDDEN;
 
 /* registry helpers */
 
+extern HKEY open_hkcu_key( const char *name ) DECLSPEC_HIDDEN;
 extern ULONG query_reg_value(HKEY hkey, const WCHAR *name, KEY_VALUE_PARTIAL_INFORMATION *info,
                              ULONG size) DECLSPEC_HIDDEN;
 extern HKEY reg_create_ascii_key(HKEY root, const char *name, DWORD options,
diff --git a/dlls/winemac.drv/macdrv_main.c b/dlls/winemac.drv/macdrv_main.c
index b168e12439c..5f61c9491b7 100644
--- a/dlls/winemac.drv/macdrv_main.c
+++ b/dlls/winemac.drv/macdrv_main.c
@@ -122,7 +122,7 @@ HKEY reg_open_key(HKEY root, const WCHAR *name, ULONG name_len)
 }
 
 
-static HKEY open_hkcu_key(const char *name)
+HKEY open_hkcu_key(const char *name)
 {
     WCHAR bufferW[256];
     static HKEY hkcu;
diff --git a/dlls/winemac.drv/mouse.c b/dlls/winemac.drv/mouse.c
index 34d6febdefa..55bed52ae8e 100644
--- a/dlls/winemac.drv/mouse.c
+++ b/dlls/winemac.drv/mouse.c
@@ -195,17 +195,17 @@ CFStringRef copy_system_cursor_name(ICONINFOEXW *info)
     else sprintfW(p, idW, info->wResID);
 
     /* @@ Wine registry key: HKCU\Software\Wine\Mac Driver\Cursors */
-    if (!RegOpenKeyA(HKEY_CURRENT_USER, "Software\\Wine\\Mac Driver\\Cursors", &key))
+    if (!(key = open_hkcu_key("Software\\Wine\\Mac Driver\\Cursors")))
     {
-        WCHAR value[64];
-        DWORD size, ret;
+        char buffer[2048];
+        KEY_VALUE_PARTIAL_INFORMATION *info = (void *)buffer;
+        DWORD ret;
 
-        value[0] = 0;
-        size = sizeof(value);
-        ret = RegQueryValueExW(key, name, NULL, NULL, (BYTE *)value, &size);
-        RegCloseKey(key);
-        if (!ret)
+        ret = query_reg_value(key, name, info, sizeof(buffer));
+        NtClose(key);
+        if (ret)
         {
+            const WCHAR *value = (const WCHAR *)info->Data;
             if (!value[0])
             {
                 TRACE("registry forces standard cursor for %s\n", debugstr_w(name));
-- 
GitLab

https://gitlab.winehq.org/wine/wine/-/merge_requests/77



More information about the wine-devel mailing list