[PATCH 3/8] comctl32/taskdialog: Add support for TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE.

Zhiyi Zhang zzhang at codeweavers.com
Thu Jul 19 20:54:54 CDT 2018


Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
---
 dlls/comctl32/taskdialog.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/dlls/comctl32/taskdialog.c b/dlls/comctl32/taskdialog.c
index 0f947a8098..74b379b358 100644
--- a/dlls/comctl32/taskdialog.c
+++ b/dlls/comctl32/taskdialog.c
@@ -212,6 +212,13 @@ static void taskdialog_click_button(struct taskdialog_info *dialog_info, INT id)
     if (hwnd) taskdialog_on_button_click(dialog_info, hwnd);
 }
 
+static void taskdialog_button_set_shield(const struct taskdialog_info *dialog_info, INT id, BOOL elevate)
+{
+    HWND hwnd = taskdialog_find_button(dialog_info->command_links, dialog_info->command_link_count, id);
+    if (!hwnd) hwnd = taskdialog_find_button(dialog_info->buttons, dialog_info->button_count, id);
+    if (hwnd) SendMessageW(hwnd, BCM_SETSHIELD, 0, elevate);
+}
+
 static void taskdialog_enable_radio_button(const struct taskdialog_info *dialog_info, INT id, BOOL enable)
 {
     HWND hwnd = taskdialog_find_button(dialog_info->radio_buttons, dialog_info->radio_button_count, id);
@@ -1255,6 +1262,9 @@ static INT_PTR CALLBACK taskdialog_proc(HWND hwnd, UINT msg, WPARAM wParam, LPAR
             }
             break;
         }
+        case TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE:
+            taskdialog_button_set_shield(dialog_info, wParam, lParam);
+            break;
         case WM_INITDIALOG:
             dialog_info = (struct taskdialog_info *)lParam;
 
-- 
2.18.0





More information about the wine-devel mailing list