[PATCH] comctl32/taskdialog: Support loading window title from resources

Nikolay Sivov nsivov at codeweavers.com
Mon Oct 2 08:56:57 CDT 2017


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/comctl32/taskdialog.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/dlls/comctl32/taskdialog.c b/dlls/comctl32/taskdialog.c
index 2558174fa3..5c4af2ab03 100644
--- a/dlls/comctl32/taskdialog.c
+++ b/dlls/comctl32/taskdialog.c
@@ -399,6 +399,20 @@ static unsigned int taskdialog_get_reference_rect(const struct taskdialog_templa
     return info.rcWork.right - info.rcWork.left;
 }
 
+static WCHAR *taskdialog_get_exe_name(const TASKDIALOGCONFIG *taskconfig, WCHAR *name, DWORD length)
+{
+    DWORD len = GetModuleFileNameW(NULL, name, length);
+    if (len && len < length)
+    {
+        WCHAR *p;
+        if ((p = strrchrW(name, '/'))) name = p + 1;
+        if ((p = strrchrW(name, '\\'))) name = p + 1;
+        return name;
+    }
+    else
+        return NULL;
+}
+
 static DLGTEMPLATE *create_taskdialog_template(const TASKDIALOGCONFIG *taskconfig)
 {
     struct taskdialog_control *control, *control2;
@@ -409,15 +423,19 @@ static DLGTEMPLATE *create_taskdialog_template(const TASKDIALOGCONFIG *taskconfi
     const WCHAR *titleW = NULL;
     DLGTEMPLATE *template;
     NONCLIENTMETRICSW ncm;
+    WCHAR pathW[MAX_PATH];
     RECT ref_rect;
     char *ptr;
     HDC hdc;
 
     /* Window title */
     if (!taskconfig->pszWindowTitle)
-        FIXME("use executable name for window title\n");
+        titleW = taskdialog_get_exe_name(taskconfig, pathW, sizeof(pathW)/sizeof(pathW[0]));
     else if (IS_INTRESOURCE(taskconfig->pszWindowTitle))
-        FIXME("load window title from resources\n");
+    {
+        if (!LoadStringW(taskconfig->hInstance, LOWORD(taskconfig->pszWindowTitle), (WCHAR *)&titleW, 0))
+            titleW = taskdialog_get_exe_name(taskconfig, pathW, sizeof(pathW)/sizeof(pathW[0]));
+    }
     else
         titleW = taskconfig->pszWindowTitle;
     if (!titleW)
-- 
2.14.2




More information about the wine-patches mailing list