[PATCH 1/1] Allow Wine to display custom boot initialization resource

Dan Mondrik wine at gitlab.winehq.org
Wed Jun 15 14:37:28 CDT 2022


From: Dan Mondrik <dan.mondrik at ni.com>

---
 programs/wineboot/wineboot.c | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/programs/wineboot/wineboot.c b/programs/wineboot/wineboot.c
index 4de20705224..a8ff140aa56 100644
--- a/programs/wineboot/wineboot.c
+++ b/programs/wineboot/wineboot.c
@@ -1307,7 +1307,16 @@ static INT_PTR CALLBACK wait_dlgproc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp
             DWORD len;
             WCHAR *buffer, text[1024];
             const WCHAR *name = (WCHAR *)lp;
-            HICON icon = LoadImageW( 0, (LPCWSTR)IDI_WINLOGO, IMAGE_ICON, 48, 48, LR_SHARED );
+            HICON icon = 0;
+            const WCHAR *overrideModule = _wgetenv(L"WINEBOOTRESOURCEMODULE");
+            if (overrideModule)
+            {
+                icon = LoadImageW( LoadLibraryW(overrideModule), (LPCWSTR)IDI_WINLOGO, IMAGE_ICON, 48, 48, LR_SHARED );
+            }
+            if (!icon)
+            {
+                icon = LoadImageW( 0, (LPCWSTR)IDI_WINLOGO, IMAGE_ICON, 48, 48, LR_SHARED );
+            }
             SendDlgItemMessageW( hwnd, IDC_WAITICON, STM_SETICON, (WPARAM)icon, 0 );
             SendDlgItemMessageW( hwnd, IDC_WAITTEXT, WM_GETTEXT, 1024, (LPARAM)text );
             len = lstrlenW(text) + lstrlenW(name) + 1;
@@ -1323,8 +1332,18 @@ static INT_PTR CALLBACK wait_dlgproc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp
 
 static HWND show_wait_window(void)
 {
-    HWND hwnd = CreateDialogParamW( GetModuleHandleW(0), MAKEINTRESOURCEW(IDD_WAITDLG), 0,
-                                    wait_dlgproc, (LPARAM)prettyprint_configdir() );
+    HWND hwnd = 0;
+    const WCHAR *overrideModule = _wgetenv(L"WINEBOOTRESOURCEMODULE");
+    if (overrideModule)
+    {
+        hwnd = CreateDialogParamW( LoadLibraryW(overrideModule), MAKEINTRESOURCEW(IDD_WAITDLG), 0,
+                                   wait_dlgproc, (LPARAM)prettyprint_configdir() );
+    }
+    if (!hwnd)
+    {
+        hwnd = CreateDialogParamW( GetModuleHandleW(0), MAKEINTRESOURCEW(IDD_WAITDLG), 0,
+                                   wait_dlgproc, (LPARAM)prettyprint_configdir() );
+    }
     ShowWindow( hwnd, SW_SHOWNORMAL );
     return hwnd;
 }
-- 
GitLab

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



More information about the wine-devel mailing list