Module: wine Branch: master Commit: 9e3ebed4a417cc32e58ca5ac255c066b0a00a115 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9e3ebed4a417cc32e58ca5ac25...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Thu Jun 1 09:38:14 2017 +0300
comctl32/taskdialog: Added TaskDialog() export.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/comctl32/comctl32.spec | 1 + dlls/comctl32/taskdialog.c | 25 +++++++++++++++++++++++++ dlls/comctl32/tests/taskdialog.c | 8 ++++++++ 3 files changed, 34 insertions(+)
diff --git a/dlls/comctl32/comctl32.spec b/dlls/comctl32/comctl32.spec index 9287346..4e1aead 100644 --- a/dlls/comctl32/comctl32.spec +++ b/dlls/comctl32/comctl32.spec @@ -61,6 +61,7 @@ 340 stdcall -ordinal DPA_CreateEx(long long) 341 stdcall -noname SendNotify(long long long ptr) 342 stdcall -noname SendNotifyEx(long long long ptr long) +344 stdcall -ordinal TaskDialog(long long wstr wstr wstr long wstr ptr) 345 stdcall -ordinal TaskDialogIndirect(ptr ptr ptr ptr) 350 stdcall -noname -private StrChrA(str long) 351 stdcall -noname -private StrRChrA(str str long) diff --git a/dlls/comctl32/taskdialog.c b/dlls/comctl32/taskdialog.c index fcc7db7..dc90160 100644 --- a/dlls/comctl32/taskdialog.c +++ b/dlls/comctl32/taskdialog.c @@ -22,6 +22,8 @@ #include <stdarg.h> #include <string.h>
+#define NONAMELESSUNION + #include "windef.h" #include "winbase.h" #include "wingdi.h" @@ -384,3 +386,26 @@ HRESULT WINAPI TaskDialogIndirect(const TASKDIALOGCONFIG *taskconfig, int *butto
return S_OK; } + +/*********************************************************************** + * TaskDialog [COMCTL32.@] + */ +HRESULT WINAPI TaskDialog(HWND owner, HINSTANCE hinst, const WCHAR *title, const WCHAR *main_instruction, + const WCHAR *content, TASKDIALOG_COMMON_BUTTON_FLAGS common_buttons, const WCHAR *icon, int *button) +{ + TASKDIALOGCONFIG taskconfig; + + TRACE("%p, %p, %s, %s, %s, %#x, %s, %p\n", owner, hinst, debugstr_w(title), debugstr_w(main_instruction), + debugstr_w(content), common_buttons, debugstr_w(icon), button); + + memset(&taskconfig, 0, sizeof(taskconfig)); + taskconfig.cbSize = sizeof(taskconfig); + taskconfig.hwndParent = owner; + taskconfig.hInstance = hinst; + taskconfig.dwCommonButtons = common_buttons; + taskconfig.pszWindowTitle = title; + taskconfig.u.pszMainIcon = icon; + taskconfig.pszMainInstruction = main_instruction; + taskconfig.pszContent = content; + return TaskDialogIndirect(&taskconfig, button, NULL, NULL); +} diff --git a/dlls/comctl32/tests/taskdialog.c b/dlls/comctl32/tests/taskdialog.c index 8a9d164..c937127 100644 --- a/dlls/comctl32/tests/taskdialog.c +++ b/dlls/comctl32/tests/taskdialog.c @@ -28,6 +28,8 @@ #include "v6util.h"
static HRESULT (WINAPI *pTaskDialogIndirect)(const TASKDIALOGCONFIG *, int *, int *, BOOL *); +static HRESULT (WINAPI *pTaskDialog)(HWND, HINSTANCE, const WCHAR *, const WCHAR *, const WCHAR *, + TASKDIALOG_COMMON_BUTTON_FLAGS, const WCHAR *, int *);
START_TEST(taskdialog) { @@ -50,6 +52,12 @@ START_TEST(taskdialog) return; }
+ pTaskDialog = (void *)GetProcAddress(hinst, "TaskDialog"); + + ptr_ordinal = GetProcAddress(hinst, (const char *)344); + ok(pTaskDialog == ptr_ordinal, "got wrong pointer for ordinal 344, %p expected %p\n", + ptr_ordinal, pTaskDialog); + ptr_ordinal = GetProcAddress(hinst, (const char *)345); ok(pTaskDialogIndirect == ptr_ordinal, "got wrong pointer for ordinal 345, %p expected %p\n", ptr_ordinal, pTaskDialogIndirect);