Jacek Caban : winex11: Move LoadIcon call to dllmain.

Alexandre Julliard julliard at winehq.org
Fri May 6 15:38:40 CDT 2022


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed May  4 01:31:51 2022 +0200

winex11: Move LoadIcon call to dllmain.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winex11.drv/dllmain.c | 7 +++++++
 dlls/winex11.drv/unixlib.h | 1 +
 dlls/winex11.drv/window.c  | 5 ++++-
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/dlls/winex11.drv/dllmain.c b/dlls/winex11.drv/dllmain.c
index 705503dc37c..2a361c477f4 100644
--- a/dlls/winex11.drv/dllmain.c
+++ b/dlls/winex11.drv/dllmain.c
@@ -151,6 +151,12 @@ static NTSTATUS WINAPI x11drv_is_system_module( void *arg, ULONG size )
 }
 
 
+static NTSTATUS x11drv_load_icon( UINT id )
+{
+    return HandleToUlong( LoadIconW( NULL, UlongToPtr( id )));
+}
+
+
 typedef NTSTATUS (*callback_func)( UINT arg );
 static const callback_func callback_funcs[] =
 {
@@ -162,6 +168,7 @@ static const callback_func callback_funcs[] =
     x11drv_ime_set_cursor_pos,
     x11drv_ime_set_open_status,
     x11drv_ime_update_association,
+    x11drv_load_icon,
 };
 
 C_ASSERT( ARRAYSIZE(callback_funcs) == client_funcs_count );
diff --git a/dlls/winex11.drv/unixlib.h b/dlls/winex11.drv/unixlib.h
index 233a2578b41..f3f6b9b8f06 100644
--- a/dlls/winex11.drv/unixlib.h
+++ b/dlls/winex11.drv/unixlib.h
@@ -117,6 +117,7 @@ enum client_callback
     client_ime_set_cursor_pos,
     client_ime_set_open_status,
     client_ime_update_association,
+    client_load_icon,
     client_funcs_count
 };
 
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index 161f749a81d..a62a3e84e81 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -627,7 +627,10 @@ static void fetch_icon_data( HWND hwnd, HICON icon_big, HICON icon_small )
         if (!icon_big)
             icon_big = get_icon_info( (HICON)NtUserGetClassLongPtrW( hwnd, GCLP_HICON ), &ii );
         if (!icon_big)
-            icon_big = get_icon_info( LoadIconW( 0, (LPWSTR)IDI_WINLOGO ), &ii);
+        {
+            UINT winlogo = x11drv_client_call( client_load_icon, IDI_WINLOGO );
+            icon_big = get_icon_info( UlongToHandle( winlogo ), &ii );
+        }
     }
     if (!icon_small)
     {




More information about the wine-cvs mailing list