SDL  2.0
SDL_windowstaskdialog.h
Go to the documentation of this file.
1 /*
2  Simple DirectMedia Layer
3  Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
4 
5  This software is provided 'as-is', without any express or implied
6  warranty. In no event will the authors be held liable for any damages
7  arising from the use of this software.
8 
9  Permission is granted to anyone to use this software for any purpose,
10  including commercial applications, and to alter it and redistribute it
11  freely, subject to the following restrictions:
12 
13  1. The origin of this software must not be misrepresented; you must not
14  claim that you wrote the original software. If you use this software
15  in a product, an acknowledgment in the product documentation would be
16  appreciated but is not required.
17  2. Altered source versions must be plainly marked as such, and must not be
18  misrepresented as being the original software.
19  3. This notice may not be removed or altered from any source distribution.
20 */
21 #include <pshpack1.h>
22 
23 typedef HRESULT(CALLBACK *PFTASKDIALOGCALLBACK)(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, LONG_PTR lpRefData);
24 
26 {
40  TDF_RTL_LAYOUT = 0x2000,
43  //#if (NTDDI_VERSION >= NTDDI_WIN8)
44  TDF_NO_SET_FOREGROUND = 0x00010000, // Don't call SetForegroundWindow() when activating the dialog
45  //#endif // (NTDDI_VERSION >= NTDDI_WIN8)
46  TDF_SIZE_TO_CONTENT = 0x01000000 // used by ShellMessageBox to emulate MessageBox sizing behavior
47 };
48 typedef int TASKDIALOG_FLAGS; // Note: _TASKDIALOG_FLAGS is an int
49 
50 typedef enum _TASKDIALOG_MESSAGES
51 {
52  TDM_NAVIGATE_PAGE = WM_USER + 101,
53  TDM_CLICK_BUTTON = WM_USER + 102, // wParam = Button ID
54  TDM_SET_MARQUEE_PROGRESS_BAR = WM_USER + 103, // wParam = 0 (nonMarque) wParam != 0 (Marquee)
55  TDM_SET_PROGRESS_BAR_STATE = WM_USER + 104, // wParam = new progress state
56  TDM_SET_PROGRESS_BAR_RANGE = WM_USER + 105, // lParam = MAKELPARAM(nMinRange, nMaxRange)
57  TDM_SET_PROGRESS_BAR_POS = WM_USER + 106, // wParam = new position
58  TDM_SET_PROGRESS_BAR_MARQUEE = WM_USER + 107, // wParam = 0 (stop marquee), wParam != 0 (start marquee), lparam = speed (milliseconds between repaints)
59  TDM_SET_ELEMENT_TEXT = WM_USER + 108, // wParam = element (TASKDIALOG_ELEMENTS), lParam = new element text (LPCWSTR)
60  TDM_CLICK_RADIO_BUTTON = WM_USER + 110, // wParam = Radio Button ID
61  TDM_ENABLE_BUTTON = WM_USER + 111, // lParam = 0 (disable), lParam != 0 (enable), wParam = Button ID
62  TDM_ENABLE_RADIO_BUTTON = WM_USER + 112, // lParam = 0 (disable), lParam != 0 (enable), wParam = Radio Button ID
63  TDM_CLICK_VERIFICATION = WM_USER + 113, // wParam = 0 (unchecked), 1 (checked), lParam = 1 (set key focus)
64  TDM_UPDATE_ELEMENT_TEXT = WM_USER + 114, // wParam = element (TASKDIALOG_ELEMENTS), lParam = new element text (LPCWSTR)
65  TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE = WM_USER + 115, // wParam = Button ID, lParam = 0 (elevation not required), lParam != 0 (elevation required)
66  TDM_UPDATE_ICON = WM_USER + 116 // wParam = icon element (TASKDIALOG_ICON_ELEMENTS), lParam = new icon (hIcon if TDF_USE_HICON_* was set, PCWSTR otherwise)
68 
69 typedef enum _TASKDIALOG_NOTIFICATIONS
70 {
73  TDN_BUTTON_CLICKED = 2, // wParam = Button ID
74  TDN_HYPERLINK_CLICKED = 3, // lParam = (LPCWSTR)pszHREF
75  TDN_TIMER = 4, // wParam = Milliseconds since dialog created or timer reset
77  TDN_RADIO_BUTTON_CLICKED = 6, // wParam = Radio Button ID
79  TDN_VERIFICATION_CLICKED = 8, // wParam = 1 if checkbox checked, 0 if not, lParam is unused and always 0
80  TDN_HELP = 9,
81  TDN_EXPANDO_BUTTON_CLICKED = 10 // wParam = 0 (dialog is now collapsed), wParam != 0 (dialog is now expanded)
83 
84 typedef struct _TASKDIALOG_BUTTON
85 {
86  int nButtonID;
87  PCWSTR pszButtonText;
89 
90 typedef enum _TASKDIALOG_ELEMENTS
91 {
97 
98 typedef enum _TASKDIALOG_ICON_ELEMENTS
99 {
103 
104 #define TD_WARNING_ICON MAKEINTRESOURCEW(-1)
105 #define TD_ERROR_ICON MAKEINTRESOURCEW(-2)
106 #define TD_INFORMATION_ICON MAKEINTRESOURCEW(-3)
107 #define TD_SHIELD_ICON MAKEINTRESOURCEW(-4)
108 
110 {
111  TDCBF_OK_BUTTON = 0x0001, // selected control return value IDOK
112  TDCBF_YES_BUTTON = 0x0002, // selected control return value IDYES
113  TDCBF_NO_BUTTON = 0x0004, // selected control return value IDNO
114  TDCBF_CANCEL_BUTTON = 0x0008, // selected control return value IDCANCEL
115  TDCBF_RETRY_BUTTON = 0x0010, // selected control return value IDRETRY
116  TDCBF_CLOSE_BUTTON = 0x0020 // selected control return value IDCLOSE
117 };
118 typedef int TASKDIALOG_COMMON_BUTTON_FLAGS; // Note: _TASKDIALOG_COMMON_BUTTON_FLAGS is an int
119 
120 typedef struct _TASKDIALOGCONFIG
121 {
122  UINT cbSize;
123  HWND hwndParent; // incorrectly named, this is the owner window, not a parent.
124  HINSTANCE hInstance; // used for MAKEINTRESOURCE() strings
125  TASKDIALOG_FLAGS dwFlags; // TASKDIALOG_FLAGS (TDF_XXX) flags
126  TASKDIALOG_COMMON_BUTTON_FLAGS dwCommonButtons; // TASKDIALOG_COMMON_BUTTON (TDCBF_XXX) flags
127  PCWSTR pszWindowTitle; // string or MAKEINTRESOURCE()
128  union
129  {
130  HICON hMainIcon;
131  PCWSTR pszMainIcon;
132  } /*DUMMYUNIONNAME*/;
134  PCWSTR pszContent;
135  UINT cButtons;
145  union
146  {
147  HICON hFooterIcon;
149  } /*DUMMYUNIONNAME2*/;
150  PCWSTR pszFooter;
152  LONG_PTR lpCallbackData;
153  UINT cxWidth; // width of the Task Dialog's client area in DLU's. If 0, Task Dialog will calculate the ideal width.
155 
156 #include <poppack.h>
TDM_SET_ELEMENT_TEXT
@ TDM_SET_ELEMENT_TEXT
Definition: SDL_windowstaskdialog.h:59
TDN_HELP
@ TDN_HELP
Definition: SDL_windowstaskdialog.h:80
TASKDIALOGCONFIG::nDefaultButton
int nDefaultButton
Definition: SDL_windowstaskdialog.h:137
TDF_USE_COMMAND_LINKS
@ TDF_USE_COMMAND_LINKS
Definition: SDL_windowstaskdialog.h:31
TASKDIALOGCONFIG::pRadioButtons
const TASKDIALOG_BUTTON * pRadioButtons
Definition: SDL_windowstaskdialog.h:139
TDN_TIMER
@ TDN_TIMER
Definition: SDL_windowstaskdialog.h:75
TDN_CREATED
@ TDN_CREATED
Definition: SDL_windowstaskdialog.h:71
TDF_CAN_BE_MINIMIZED
@ TDF_CAN_BE_MINIMIZED
Definition: SDL_windowstaskdialog.h:42
TASKDIALOGCONFIG::pszCollapsedControlText
PCWSTR pszCollapsedControlText
Definition: SDL_windowstaskdialog.h:144
TASKDIALOGCONFIG::pfCallback
PFTASKDIALOGCALLBACK pfCallback
Definition: SDL_windowstaskdialog.h:151
TDM_SET_PROGRESS_BAR_RANGE
@ TDM_SET_PROGRESS_BAR_RANGE
Definition: SDL_windowstaskdialog.h:56
TDN_DESTROYED
@ TDN_DESTROYED
Definition: SDL_windowstaskdialog.h:76
TASKDIALOGCONFIG::pszMainInstruction
PCWSTR pszMainInstruction
Definition: SDL_windowstaskdialog.h:133
TDF_CALLBACK_TIMER
@ TDF_CALLBACK_TIMER
Definition: SDL_windowstaskdialog.h:38
TASKDIALOGCONFIG::pszMainIcon
PCWSTR pszMainIcon
Definition: SDL_windowstaskdialog.h:131
_TASKDIALOG_COMMON_BUTTON_FLAGS
_TASKDIALOG_COMMON_BUTTON_FLAGS
Definition: SDL_windowstaskdialog.h:110
TDF_SHOW_PROGRESS_BAR
@ TDF_SHOW_PROGRESS_BAR
Definition: SDL_windowstaskdialog.h:36
TDN_BUTTON_CLICKED
@ TDN_BUTTON_CLICKED
Definition: SDL_windowstaskdialog.h:73
TDE_FOOTER
@ TDE_FOOTER
Definition: SDL_windowstaskdialog.h:94
PFTASKDIALOGCALLBACK
HRESULT(CALLBACK * PFTASKDIALOGCALLBACK)(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, LONG_PTR lpRefData)
Definition: SDL_windowstaskdialog.h:23
TASKDIALOGCONFIG::pszExpandedInformation
PCWSTR pszExpandedInformation
Definition: SDL_windowstaskdialog.h:142
TASKDIALOG_ICON_ELEMENTS
TASKDIALOG_ICON_ELEMENTS
Definition: SDL_windowstaskdialog.h:99
TDF_RTL_LAYOUT
@ TDF_RTL_LAYOUT
Definition: SDL_windowstaskdialog.h:40
TDE_CONTENT
@ TDE_CONTENT
Definition: SDL_windowstaskdialog.h:92
TASKDIALOG_ELEMENTS
TASKDIALOG_ELEMENTS
Definition: SDL_windowstaskdialog.h:91
TDN_EXPANDO_BUTTON_CLICKED
@ TDN_EXPANDO_BUTTON_CLICKED
Definition: SDL_windowstaskdialog.h:81
TDM_CLICK_BUTTON
@ TDM_CLICK_BUTTON
Definition: SDL_windowstaskdialog.h:53
TDIE_ICON_FOOTER
@ TDIE_ICON_FOOTER
Definition: SDL_windowstaskdialog.h:101
TASKDIALOG_NOTIFICATIONS
TASKDIALOG_NOTIFICATIONS
Definition: SDL_windowstaskdialog.h:70
TDCBF_OK_BUTTON
@ TDCBF_OK_BUTTON
Definition: SDL_windowstaskdialog.h:111
TDF_EXPAND_FOOTER_AREA
@ TDF_EXPAND_FOOTER_AREA
Definition: SDL_windowstaskdialog.h:33
TASKDIALOGCONFIG::dwFlags
TASKDIALOG_FLAGS dwFlags
Definition: SDL_windowstaskdialog.h:125
TDM_ENABLE_BUTTON
@ TDM_ENABLE_BUTTON
Definition: SDL_windowstaskdialog.h:61
TASKDIALOGCONFIG::pszFooterIcon
PCWSTR pszFooterIcon
Definition: SDL_windowstaskdialog.h:148
TDN_VERIFICATION_CLICKED
@ TDN_VERIFICATION_CLICKED
Definition: SDL_windowstaskdialog.h:79
TASKDIALOG_COMMON_BUTTON_FLAGS
int TASKDIALOG_COMMON_BUTTON_FLAGS
Definition: SDL_windowstaskdialog.h:118
TDIE_ICON_MAIN
@ TDIE_ICON_MAIN
Definition: SDL_windowstaskdialog.h:100
TDE_EXPANDED_INFORMATION
@ TDE_EXPANDED_INFORMATION
Definition: SDL_windowstaskdialog.h:93
TASKDIALOG_BUTTON
Definition: SDL_windowstaskdialog.h:85
TDN_RADIO_BUTTON_CLICKED
@ TDN_RADIO_BUTTON_CLICKED
Definition: SDL_windowstaskdialog.h:77
TASKDIALOGCONFIG
Definition: SDL_windowstaskdialog.h:121
TDF_SIZE_TO_CONTENT
@ TDF_SIZE_TO_CONTENT
Definition: SDL_windowstaskdialog.h:46
TASKDIALOGCONFIG::hMainIcon
HICON hMainIcon
Definition: SDL_windowstaskdialog.h:130
TDM_CLICK_RADIO_BUTTON
@ TDM_CLICK_RADIO_BUTTON
Definition: SDL_windowstaskdialog.h:60
TDCBF_CLOSE_BUTTON
@ TDCBF_CLOSE_BUTTON
Definition: SDL_windowstaskdialog.h:116
TDM_SET_PROGRESS_BAR_STATE
@ TDM_SET_PROGRESS_BAR_STATE
Definition: SDL_windowstaskdialog.h:55
TASKDIALOGCONFIG::hFooterIcon
HICON hFooterIcon
Definition: SDL_windowstaskdialog.h:147
TASKDIALOGCONFIG::lpCallbackData
LONG_PTR lpCallbackData
Definition: SDL_windowstaskdialog.h:152
TDF_SHOW_MARQUEE_PROGRESS_BAR
@ TDF_SHOW_MARQUEE_PROGRESS_BAR
Definition: SDL_windowstaskdialog.h:37
TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE
@ TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE
Definition: SDL_windowstaskdialog.h:65
TDM_SET_PROGRESS_BAR_POS
@ TDM_SET_PROGRESS_BAR_POS
Definition: SDL_windowstaskdialog.h:57
TDCBF_YES_BUTTON
@ TDCBF_YES_BUTTON
Definition: SDL_windowstaskdialog.h:112
TDM_SET_MARQUEE_PROGRESS_BAR
@ TDM_SET_MARQUEE_PROGRESS_BAR
Definition: SDL_windowstaskdialog.h:54
TASKDIALOGCONFIG::hwndParent
HWND hwndParent
Definition: SDL_windowstaskdialog.h:123
TDF_POSITION_RELATIVE_TO_WINDOW
@ TDF_POSITION_RELATIVE_TO_WINDOW
Definition: SDL_windowstaskdialog.h:39
TDF_VERIFICATION_FLAG_CHECKED
@ TDF_VERIFICATION_FLAG_CHECKED
Definition: SDL_windowstaskdialog.h:35
TDN_HYPERLINK_CLICKED
@ TDN_HYPERLINK_CLICKED
Definition: SDL_windowstaskdialog.h:74
TDCBF_CANCEL_BUTTON
@ TDCBF_CANCEL_BUTTON
Definition: SDL_windowstaskdialog.h:114
TDF_NO_SET_FOREGROUND
@ TDF_NO_SET_FOREGROUND
Definition: SDL_windowstaskdialog.h:44
TASKDIALOGCONFIG::dwCommonButtons
TASKDIALOG_COMMON_BUTTON_FLAGS dwCommonButtons
Definition: SDL_windowstaskdialog.h:126
TASKDIALOGCONFIG::pButtons
const TASKDIALOG_BUTTON * pButtons
Definition: SDL_windowstaskdialog.h:136
TDM_UPDATE_ELEMENT_TEXT
@ TDM_UPDATE_ELEMENT_TEXT
Definition: SDL_windowstaskdialog.h:64
TASKDIALOGCONFIG::hInstance
HINSTANCE hInstance
Definition: SDL_windowstaskdialog.h:124
TDF_ENABLE_HYPERLINKS
@ TDF_ENABLE_HYPERLINKS
Definition: SDL_windowstaskdialog.h:27
TDCBF_RETRY_BUTTON
@ TDCBF_RETRY_BUTTON
Definition: SDL_windowstaskdialog.h:115
TDF_USE_HICON_FOOTER
@ TDF_USE_HICON_FOOTER
Definition: SDL_windowstaskdialog.h:29
TDF_USE_COMMAND_LINKS_NO_ICON
@ TDF_USE_COMMAND_LINKS_NO_ICON
Definition: SDL_windowstaskdialog.h:32
TDN_NAVIGATED
@ TDN_NAVIGATED
Definition: SDL_windowstaskdialog.h:72
TDM_ENABLE_RADIO_BUTTON
@ TDM_ENABLE_RADIO_BUTTON
Definition: SDL_windowstaskdialog.h:62
TASKDIALOGCONFIG::cxWidth
UINT cxWidth
Definition: SDL_windowstaskdialog.h:153
TDN_DIALOG_CONSTRUCTED
@ TDN_DIALOG_CONSTRUCTED
Definition: SDL_windowstaskdialog.h:78
_TASKDIALOG_FLAGS
_TASKDIALOG_FLAGS
Definition: SDL_windowstaskdialog.h:26
TASKDIALOG_FLAGS
int TASKDIALOG_FLAGS
Definition: SDL_windowstaskdialog.h:48
TDM_CLICK_VERIFICATION
@ TDM_CLICK_VERIFICATION
Definition: SDL_windowstaskdialog.h:63
TASKDIALOGCONFIG::nDefaultRadioButton
int nDefaultRadioButton
Definition: SDL_windowstaskdialog.h:140
TDF_USE_HICON_MAIN
@ TDF_USE_HICON_MAIN
Definition: SDL_windowstaskdialog.h:28
TASKDIALOGCONFIG::pszExpandedControlText
PCWSTR pszExpandedControlText
Definition: SDL_windowstaskdialog.h:143
TASKDIALOG_BUTTON::pszButtonText
PCWSTR pszButtonText
Definition: SDL_windowstaskdialog.h:87
TDF_EXPANDED_BY_DEFAULT
@ TDF_EXPANDED_BY_DEFAULT
Definition: SDL_windowstaskdialog.h:34
TDM_NAVIGATE_PAGE
@ TDM_NAVIGATE_PAGE
Definition: SDL_windowstaskdialog.h:52
TASKDIALOGCONFIG::cButtons
UINT cButtons
Definition: SDL_windowstaskdialog.h:135
TDE_MAIN_INSTRUCTION
@ TDE_MAIN_INSTRUCTION
Definition: SDL_windowstaskdialog.h:95
TDCBF_NO_BUTTON
@ TDCBF_NO_BUTTON
Definition: SDL_windowstaskdialog.h:113
TASKDIALOG_BUTTON::nButtonID
int nButtonID
Definition: SDL_windowstaskdialog.h:86
TASKDIALOGCONFIG::pszWindowTitle
PCWSTR pszWindowTitle
Definition: SDL_windowstaskdialog.h:127
TASKDIALOG_MESSAGES
TASKDIALOG_MESSAGES
Definition: SDL_windowstaskdialog.h:51
TASKDIALOGCONFIG::cbSize
UINT cbSize
Definition: SDL_windowstaskdialog.h:122
TDM_SET_PROGRESS_BAR_MARQUEE
@ TDM_SET_PROGRESS_BAR_MARQUEE
Definition: SDL_windowstaskdialog.h:58
TDF_NO_DEFAULT_RADIO_BUTTON
@ TDF_NO_DEFAULT_RADIO_BUTTON
Definition: SDL_windowstaskdialog.h:41
TASKDIALOGCONFIG::cRadioButtons
UINT cRadioButtons
Definition: SDL_windowstaskdialog.h:138
TDF_ALLOW_DIALOG_CANCELLATION
@ TDF_ALLOW_DIALOG_CANCELLATION
Definition: SDL_windowstaskdialog.h:30
TASKDIALOGCONFIG::pszFooter
PCWSTR pszFooter
Definition: SDL_windowstaskdialog.h:150
TASKDIALOGCONFIG::pszVerificationText
PCWSTR pszVerificationText
Definition: SDL_windowstaskdialog.h:141
TDM_UPDATE_ICON
@ TDM_UPDATE_ICON
Definition: SDL_windowstaskdialog.h:66
TASKDIALOGCONFIG::pszContent
PCWSTR pszContent
Definition: SDL_windowstaskdialog.h:134