[PATCH 2/2] comctl32/taskdialog: Added TaskDialog() export
Nikolay Sivov
nsivov at codeweavers.com
Thu Jun 1 01:38:14 CDT 2017
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
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 92873464ad..4e1aeadf1d 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 fcc7db7c49..dc90160e44 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 8a9d164a18..c937127897 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);
--
2.11.0
More information about the wine-patches
mailing list