Module: wine Branch: master Commit: 2d73886c3311d734b457c0d694d673b0e1c6ca8a URL: http://source.winehq.org/git/wine.git/?a=commit;h=2d73886c3311d734b457c0d694...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Mon Oct 2 16:56:57 2017 +0300
comctl32/taskdialog: Support loading window title from resources.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 2558174..5c4af2a 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)