/// <summary>Specifies the push buttons displayed in the task dialog. If no common buttons are specified and no custom buttons are specified using the cButtons and pButtons members, the task dialog will contain the OK button by default. This parameter may be a combination of flags</summary>
/// <summary>The task dialog contains the push button: OK.</summary>
TDCBF_OK_BUTTON=0x0001,
/// <summary>The task dialog contains the push button: Yes.</summary>
TDCBF_YES_BUTTON=0x0002,
/// <summary>The task dialog contains the push button: No.</summary>
TDCBF_NO_BUTTON=0x0004,
/// <summary>
/// The task dialog contains the push button: Cancel. If this button is specified, the task dialog will respond to typical cancel actions (Alt-F4 and Escape).
/// </summary>
TDCBF_CANCEL_BUTTON=0x0008,
/// <summary>The task dialog contains the push button: Retry.</summary>
TDCBF_RETRY_BUTTON=0x0010,
/// <summary>The task dialog contains the push button: Close.</summary>
TDCBF_CLOSE_BUTTON=0x0020,
}
/// <summary>Indicates element to update for the TDM_UPDATE_ELEMENT_TEXT message.</summary>
/// <summary>Enables hyperlink processing for the strings specified in the pszContent, pszExpandedInformation and pszFooter members. When enabled, these members may point to strings that contain hyperlinks in the following form:
/// <note type="warning">Enabling hyperlinks when using content from an unsafe source may cause security vulnerabilities.</note>
/// <note>Task Dialogs will not actually execute any hyperlinks.Hyperlink execution must be handled in the callback function specified by pfCallback.For more details, see TaskDialogCallbackProc.</note></summary>
TDF_ENABLE_HYPERLINKS=0x0001,
/// <summary>Indicates that the dialog should use the icon referenced by the handle in the hMainIcon member as the primary icon in the task dialog. If this flag is specified, the pszMainIcon member is ignored.</summary>
TDF_USE_HICON_MAIN=0x0002,
/// <summary>Indicates that the dialog should use the icon referenced by the handle in the hFooterIcon member as the footer icon in the task dialog. If this flag is specified, the pszFooterIcon member is ignored.</summary>
TDF_USE_HICON_FOOTER=0x0004,
/// <summary>Indicates that the dialog should be able to be closed using Alt-F4, Escape, and the title bar's close button even if no cancel button is specified in either the dwCommonButtons or pButtons members.</summary>
TDF_ALLOW_DIALOG_CANCELLATION=0x0008,
/// <summary>Indicates that the buttons specified in the pButtons member are to be displayed as command links (using a standard task dialog glyph) instead of push buttons. When using command links, all characters up to the first new line character in the pszButtonText member will be treated as the command link's main text, and the remainder will be treated as the command link's note. This flag is ignored if the cButtons member is zero.</summary>
TDF_USE_COMMAND_LINKS=0x0010,
/// <summary>Indicates that the buttons specified in the pButtons member are to be displayed as command links (without a glyph) instead of push buttons. When using command links, all characters up to the first new line character in the pszButtonText member will be treated as the command link's main text, and the remainder will be treated as the command link's note. This flag is ignored if the cButtons member is zero.</summary>
TDF_USE_COMMAND_LINKS_NO_ICON=0x0020,
/// <summary>Indicates that the string specified by the pszExpandedInformation member is displayed at the bottom of the dialog's footer area instead of immediately after the dialog's content. This flag is ignored if the pszExpandedInformation member is NULL.</summary>
TDF_EXPAND_FOOTER_AREA=0x0040,
/// <summary>Indicates that the string specified by the pszExpandedInformation member is displayed when the dialog is initially displayed. This flag is ignored if the pszExpandedInformation member is NULL.</summary>
TDF_EXPANDED_BY_DEFAULT=0x0080,
/// <summary>Indicates that the verification checkbox in the dialog is checked when the dialog is initially displayed. This flag is ignored if the pszVerificationText parameter is NULL.</summary>
TDF_VERIFICATION_FLAG_CHECKED=0x0100,
/// <summary>Indicates that a Progress Bar is to be displayed.</summary>
TDF_SHOW_PROGRESS_BAR=0x0200,
/// <summary>Indicates that an Marquee Progress Bar is to be displayed.</summary>
TDF_SHOW_MARQUEE_PROGRESS_BAR=0x0400,
/// <summary>Indicates that the task dialog's callback is to be called approximately every 200 milliseconds.</summary>
TDF_CALLBACK_TIMER=0x0800,
/// <summary>Indicates that the task dialog is positioned (centered) relative to the window specified by hwndParent. If the flag is not supplied (or no hwndParent member is specified), the task dialog is positioned (centered) relative to the monitor.</summary>
TDF_POSITION_RELATIVE_TO_WINDOW=0x1000,
/// <summary>Indicates that text is displayed reading right to left.</summary>
TDF_RTL_LAYOUT=0x2000,
/// <summary>Indicates that no default item will be selected.</summary>
TDF_NO_DEFAULT_RADIO_BUTTON=0x4000,
/// <summary>Indicates that the task dialog can be minimized.</summary>
TDF_CAN_BE_MINIMIZED=0x8000,
/// <summary>Don't call SetForegroundWindow() when activating the dialog.</summary>
TDF_NO_SET_FOREGROUND=0x00010000,
/// <summary>
/// Indicates that the width of the task dialog is determined by the width of its content area. This flag is ignored if cxWidth is not set to 0.
/// </summary>
TDF_SIZE_TO_CONTENT=0x01000000
}
/// <summary>Indicates which icon element to update for the TDM_UPDATE_ICON message.</summary>
/// <summary>Refreshes the icon of the task dialog.</summary>
TDM_UPDATE_ICON=WindowMessage.WM_USER+116// wParam = icon element (TASKDIALOG_ICON_ELEMENTS), lParam = new icon (hIcon if TDF_USE_HICON_* was set, PCWSTR otherwise)
}
/// <summary>The System icons the TaskDialog supports for <see cref="TASKDIALOGCONFIG.footerIcon"/> and <see cref="TASKDIALOGCONFIG.mainIcon"/>.</summary>
/// <summary>Sent by the task dialog after the dialog has been created and before it is displayed. This notification code is received only through the task dialog callback function, which can be registered using the TaskDialogIndirect method.</summary>
TDN_CREATED=0,
/// <summary>
/// Sent by a task dialog when navigation has occurred. This notification code is received only through the task dialog callback function, which can be registered using the TaskDialogIndirect method.
/// </summary>
TDN_NAVIGATED=1,
/// <summary>
/// Sent by a task dialog when the user selects a button or command link in the task dialog. This notification code is received only through the task dialog callback function, which can be registered using the TaskDialogIndirect method. To prevent the task dialog from closing, the application must return S_FALSE, otherwise the task dialog is closed and the button ID is returned via the original application call.
/// </summary>
TDN_BUTTON_CLICKED=2,
/// <summary>
/// Sent by a task dialog when the user clicks a hyperlink in the task dialog content. This notification code is received only through the task dialog callback function, which can be registered using the TaskDialogIndirect method.
/// </summary>
TDN_HYPERLINK_CLICKED=3,
/// <summary>
/// Sent by a task dialog approximately every 200 milliseconds. This notification code is sent when the TDF_CALLBACK_TIMER flag has been set in the dwFlags member of the TASKDIALOGCONFIG structure that was passed to the TaskDialogIndirect function. This notification code is received only through the task dialog callback function, which can be registered using the TaskDialogIndirect method.
/// </summary>
TDN_TIMER=4,
/// <summary>Sent by a task dialog when it is destroyed and its window handle is no longer valid. This notification code is received only through the task dialog callback function, which can be registered using the TaskDialogIndirect method.</summary>
TDN_DESTROYED=5,
/// <summary>
/// Sent by a task dialog when the user selects a radio button or command link in the task dialog. This notification code is received only through the task dialog callback function, which can be registered using the TaskDialogIndirect method.
/// </summary>
TDN_RADIO_BUTTON_CLICKED=6,
/// <summary>Sent by a task dialog after the dialog has been created and before it is displayed. This notification code is received only through the task dialog callback function, which can be registered using the TaskDialogIndirect method.</summary>
TDN_DIALOG_CONSTRUCTED=7,
/// <summary>
/// Sent by a task dialog when the user clicks the task dialog verification check box. This notification code is received only through the task dialog callback function, which can be registered using the TaskDialogIndirect method.
/// </summary>
TDN_VERIFICATION_CLICKED=8,
/// <summary>
/// Sent by a task dialog when the user presses F1 on the keyboard while the dialog has focus. This notification code is received only through the task dialog callback function, which can be registered using the TaskDialogIndirect method.
/// </summary>
TDN_HELP=9,
/// <summary>
/// Sent by the task dialog when the user clicks on the dialog's expando button. This notification is received only through the task dialog callback function, which can be registered using the TaskDialogIndirect method.
/// </summary>
TDN_EXPANDO_BUTTON_CLICKED=10
}
/// <summary>
/// The TaskDialog function creates, displays, and operates a task dialog. The task dialog contains application-defined message text and title, icons, and any combination of predefined push buttons. This function does not support the registration of a callback function to receive notifications.
/// </summary>
/// <param name="hwndParent">Handle to the owner window of the task dialog to be created. If this parameter is NULL, the task dialog has no owner window.</param>
/// <param name="hInstance">Handle to the module that contains the icon resource identified by the pszIcon member, and the string resources identified by the pszWindowTitle and pszMainInstruction members. If this parameter is NULL, pszIcon must be NULL or a pointer to a null-terminated, Unicode string that contains a system resource identifier, for example, TD_ERROR_ICON.</param>
/// <param name="pszWindowTitle">Pointer to the string to be used for the task dialog title. This parameter is a null-terminated, Unicode string that contains either text, or an integer resource identifier passed through the MAKEINTRESOURCE macro. If this parameter is NULL, the filename of the executable program is used.</param>
/// <param name="pszMainInstruction">Pointer to the string to be used for the main instruction. This parameter is a null-terminated, Unicode string that contains either text, or an integer resource identifier passed through the MAKEINTRESOURCE macro. This parameter can be NULL if no main instruction is wanted.</param>
/// <param name="pszContent">Pointer to a string used for additional text that appears below the main instruction, in a smaller font. This parameter is a null-terminated, Unicode string that contains either text, or an integer resource identifier passed through the MAKEINTRESOURCE macro. Can be NULL if no additional text is wanted.</param>
/// <param name="dwCommonButtons">Specifies the push buttons displayed in the dialog box. This parameter may be a combination of flags from the following group.</param>
/// <param name="pszIcon">Pointer to a string that identifies the icon to display in the task dialog. This parameter must be an integer resource identifier passed to the MAKEINTRESOURCE macro or one of the following predefined values. If this parameter is NULL, no icon will be displayed. If the hInstance parameter is NULL and one of the predefined values is not used, the TaskDialog function fails.</param>
/// <param name="pnButton">When this function returns, contains a pointer to an integer location that receives one of the standard button result values.</param>
/// <returns>This function can return one of these values.
/// <summary>The TaskDialogIndirect function creates, displays, and operates a task dialog. The task dialog contains application-defined icons, messages, title, verification check box, command links, push buttons, and radio buttons. This function can register a callback function to receive notification messages.</summary>
/// <param name="pTaskConfig">Pointer to a TASKDIALOGCONFIG structure that contains information used to display the task dialog.</param>
/// <param name="pnButton">Address of a variable that receives one of the button IDs specified in the pButtons member of the pTaskConfig parameter or a standard button ID value.</param>
/// <param name="pnRadioButton">Address of a variable that receives one of the button IDs specified in the pRadioButtons member of the pTaskConfig parameter. If this parameter is NULL, no value is returned.</param>
/// <param name="pfVerificationFlagChecked">Address of a variable that receives a value indicating if the verification checkbox was checked when the dialog was dismissed.</param>
/// <returns>This function can return one of these values.
/// The TASKDIALOG_BUTTON structure contains information used to display a button in a task dialog. The TASKDIALOGCONFIG structure uses this structure.
/// <summary>Indicates the value to be returned when this button is selected.</summary>
publicintnButtonID;
/// <summary>Pointer that references the string to be used to label the button. This parameter can be either a null-terminated string or an integer resource identifier passed to the MAKEINTRESOURCE macro. When using Command Links, you delineate the command from the note by placing a new line character in the string.</summary>