Nikolay Sivov : comctl32/taskdialog: Added TaskDialog() export.

Alexandre Julliard julliard at winehq.org
Thu Jun 1 18:49:36 CDT 2017


Module: wine
Branch: master
Commit: 9e3ebed4a417cc32e58ca5ac255c066b0a00a115
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9e3ebed4a417cc32e58ca5ac255c066b0a00a115

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Thu Jun  1 09:38:14 2017 +0300

comctl32/taskdialog: Added TaskDialog() export.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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);




More information about the wine-cvs mailing list