diff --git a/PInvoke/User32/WinUser.System.cs b/PInvoke/User32/WinUser.System.cs index 88ed1806..2765e40d 100644 --- a/PInvoke/User32/WinUser.System.cs +++ b/PInvoke/User32/WinUser.System.cs @@ -447,6 +447,9 @@ namespace Vanara.PInvoke /// The Yes button was selected. IDYES = 6, + + /// A call to MessageBoxTimeout has timed-out. + MB_TIMEDOUT = 32000, } /// A set of bit-flags that specify properties of the MouseKeys feature. @@ -3800,10 +3803,8 @@ namespace Vanara.PInvoke public static extern bool MessageBeep(uint uType = 0); /// - /// /// Displays a modal dialog box that contains a system icon, a set of buttons, and a brief application-specific message, such as /// status or error information. The message box returns an integer value that indicates which button the user clicked. - /// /// /// /// Type: HWND @@ -3830,188 +3831,197 @@ namespace Vanara.PInvoke /// To indicate the buttons displayed in the message box, specify one of the following values. /// /// - /// Value - /// Meaning + /// Value + /// Meaning /// /// - /// MB_ABORTRETRYIGNORE 0x00000002L - /// The message box contains three push buttons: Abort, Retry, and Ignore. + /// MB_ABORTRETRYIGNORE 0x00000002L + /// The message box contains three push buttons: Abort, Retry, and Ignore. /// /// - /// MB_CANCELTRYCONTINUE 0x00000006L - /// The message box contains three push buttons: Cancel, Try Again, Continue. Use this message box type instead of MB_ABORTRETRYIGNORE. + /// MB_CANCELTRYCONTINUE 0x00000006L + /// + /// The message box contains three push buttons: Cancel, Try Again, Continue. Use this message box type instead + /// of MB_ABORTRETRYIGNORE. + /// /// /// - /// MB_HELP 0x00004000L - /// - /// Adds a Help button to the message box. When the user clicks the Help button or presses F1, the system sends a WM_HELP message to - /// the owner. - /// + /// MB_HELP 0x00004000L + /// + /// Adds a Help button to the message box. When the user clicks the Help button or presses F1, the system sends a + /// WM_HELP message to the owner. + /// /// /// - /// MB_OK 0x00000000L - /// The message box contains one push button: OK. This is the default. + /// MB_OK 0x00000000L + /// The message box contains one push button: OK. This is the default. /// /// - /// MB_OKCANCEL 0x00000001L - /// The message box contains two push buttons: OK and Cancel. + /// MB_OKCANCEL 0x00000001L + /// The message box contains two push buttons: OK and Cancel. /// /// - /// MB_RETRYCANCEL 0x00000005L - /// The message box contains two push buttons: Retry and Cancel. + /// MB_RETRYCANCEL 0x00000005L + /// The message box contains two push buttons: Retry and Cancel. /// /// - /// MB_YESNO 0x00000004L - /// The message box contains two push buttons: Yes and No. + /// MB_YESNO 0x00000004L + /// The message box contains two push buttons: Yes and No. /// /// - /// MB_YESNOCANCEL 0x00000003L - /// The message box contains three push buttons: Yes, No, and Cancel. + /// MB_YESNOCANCEL 0x00000003L + /// The message box contains three push buttons: Yes, No, and Cancel. /// /// + /// Â /// To display an icon in the message box, specify one of the following values. /// /// - /// Value - /// Meaning + /// Value + /// Meaning /// /// - /// MB_ICONEXCLAMATION 0x00000030L - /// An exclamation-point icon appears in the message box. + /// MB_ICONEXCLAMATION 0x00000030L + /// An exclamation-point icon appears in the message box. /// /// - /// MB_ICONWARNING 0x00000030L - /// An exclamation-point icon appears in the message box. + /// MB_ICONWARNING 0x00000030L + /// An exclamation-point icon appears in the message box. /// /// - /// MB_ICONINFORMATION 0x00000040L - /// An icon consisting of a lowercase letter i in a circle appears in the message box. + /// MB_ICONINFORMATION 0x00000040L + /// An icon consisting of a lowercase letter i in a circle appears in the message box. /// /// - /// MB_ICONASTERISK 0x00000040L - /// An icon consisting of a lowercase letter i in a circle appears in the message box. + /// MB_ICONASTERISK 0x00000040L + /// An icon consisting of a lowercase letter i in a circle appears in the message box. /// /// - /// MB_ICONQUESTION 0x00000020L - /// + /// MB_ICONQUESTION 0x00000020L + /// /// A question-mark icon appears in the message box. The question-mark message icon is no longer recommended because it does not /// clearly represent a specific type of message and because the phrasing of a message as a question could apply to any message type. /// In addition, users can confuse the message symbol question mark with Help information. Therefore, do not use this question mark /// message symbol in your message boxes. The system continues to support its inclusion only for backward compatibility. - /// + /// /// /// - /// MB_ICONSTOP 0x00000010L - /// A stop-sign icon appears in the message box. + /// MB_ICONSTOP 0x00000010L + /// A stop-sign icon appears in the message box. /// /// - /// MB_ICONERROR 0x00000010L - /// A stop-sign icon appears in the message box. + /// MB_ICONERROR 0x00000010L + /// A stop-sign icon appears in the message box. /// /// - /// MB_ICONHAND 0x00000010L - /// A stop-sign icon appears in the message box. + /// MB_ICONHAND 0x00000010L + /// A stop-sign icon appears in the message box. /// /// + /// Â /// To indicate the default button, specify one of the following values. /// /// - /// Value - /// Meaning + /// Value + /// Meaning /// /// - /// MB_DEFBUTTON1 0x00000000L - /// - /// The first button is the default button. MB_DEFBUTTON1 is the default unless MB_DEFBUTTON2, MB_DEFBUTTON3, or MB_DEFBUTTON4 is specified. - /// + /// MB_DEFBUTTON1 0x00000000L + /// + /// The first button is the default button. MB_DEFBUTTON1 is the default unless MB_DEFBUTTON2, MB_DEFBUTTON3, or + /// MB_DEFBUTTON4 is specified. + /// /// /// - /// MB_DEFBUTTON2 0x00000100L - /// The second button is the default button. + /// MB_DEFBUTTON2 0x00000100L + /// The second button is the default button. /// /// - /// MB_DEFBUTTON3 0x00000200L - /// The third button is the default button. + /// MB_DEFBUTTON3 0x00000200L + /// The third button is the default button. /// /// - /// MB_DEFBUTTON4 0x00000300L - /// The fourth button is the default button. + /// MB_DEFBUTTON4 0x00000300L + /// The fourth button is the default button. /// /// + /// Â /// To indicate the modality of the dialog box, specify one of the following values. /// /// - /// Value - /// Meaning + /// Value + /// Meaning /// /// - /// MB_APPLMODAL 0x00000000L - /// - /// The user must respond to the message box before continuing work in the window identified by the hWnd parameter. However, the user - /// can move to the windows of other threads and work in those windows. Depending on the hierarchy of windows in the application, the - /// user may be able to move to other windows within the thread. All child windows of the parent of the message box are automatically - /// disabled, but pop-up windows are not. MB_APPLMODAL is the default if neither MB_SYSTEMMODAL nor MB_TASKMODAL is specified. - /// + /// MB_APPLMODAL 0x00000000L + /// + /// The user must respond to the message box before continuing work in the window identified by the hWnd parameter. However, + /// the user can move to the windows of other threads and work in those windows. Depending on the hierarchy of windows in the + /// application, the user may be able to move to other windows within the thread. All child windows of the parent of the message box + /// are automatically disabled, but pop-up windows are not. MB_APPLMODAL is the default if neither MB_SYSTEMMODAL nor + /// MB_TASKMODAL is specified. + /// /// /// - /// MB_SYSTEMMODAL 0x00001000L - /// - /// Same as MB_APPLMODAL except that the message box has the WS_EX_TOPMOST style. Use system-modal message boxes to notify the user - /// of serious, potentially damaging errors that require immediate attention (for example, running out of memory). This flag has no - /// effect on the user's ability to interact with windows other than those associated with hWnd. - /// + /// MB_SYSTEMMODAL 0x00001000L + /// + /// Same as MB_APPLMODAL except that the message box has the WS_EX_TOPMOST style. Use system-modal message boxes to notify the + /// user of serious, potentially damaging errors that require immediate attention (for example, running out of memory). This flag has + /// no effect on the user's ability to interact with windows other than those associated with hWnd. + /// /// /// - /// MB_TASKMODAL 0x00002000L - /// - /// Same as MB_APPLMODAL except that all the top-level windows belonging to the current thread are disabled if the hWnd parameter is - /// NULL. Use this flag when the calling application or library does not have a window handle available but still needs to prevent - /// input to other windows in the calling thread without suspending other threads. - /// + /// MB_TASKMODAL 0x00002000L + /// + /// Same as MB_APPLMODAL except that all the top-level windows belonging to the current thread are disabled if the hWnd + /// parameter is NULL. Use this flag when the calling application or library does not have a window handle available but still + /// needs to prevent input to other windows in the calling thread without suspending other threads. + /// /// /// + /// Â /// To specify other options, use one or more of the following values. /// /// - /// Value - /// Meaning + /// Value + /// Meaning /// /// - /// MB_DEFAULT_DESKTOP_ONLY 0x00020000L - /// + /// MB_DEFAULT_DESKTOP_ONLY 0x00020000L + /// /// Same as desktop of the interactive window station. For more information, see Window Stations. If the current input desktop is not - /// the default desktop, MessageBox does not return until the user switches to the default desktop. - /// + /// the default desktop, MessageBox does not return until the user switches to the default desktop. + /// /// /// - /// MB_RIGHT 0x00080000L - /// The text is right-justified. + /// MB_RIGHT 0x00080000L + /// The text is right-justified. /// /// - /// MB_RTLREADING 0x00100000L - /// Displays message and caption text using right-to-left reading order on Hebrew and Arabic systems. + /// MB_RTLREADING 0x00100000L + /// Displays message and caption text using right-to-left reading order on Hebrew and Arabic systems. /// /// - /// MB_SETFOREGROUND 0x00010000L - /// + /// MB_SETFOREGROUND 0x00010000L + /// /// The message box becomes the foreground window. Internally, the system calls the SetForegroundWindow function for the message box. - /// + /// /// /// - /// MB_TOPMOST 0x00040000L - /// The message box is created with the WS_EX_TOPMOST window style. + /// MB_TOPMOST 0x00040000L + /// The message box is created with the WS_EX_TOPMOST window style. /// /// - /// MB_SERVICE_NOTIFICATION 0x00200000L - /// + /// MB_SERVICE_NOTIFICATION 0x00200000L + /// /// The caller is a service notifying the user of an event. The function displays a message box on the current active desktop, even - /// if there is no user logged on to the computer. Terminal Services: If the calling thread has an impersonation token, the function - /// directs the message box to the session specified in the impersonation token. If this flag is set, the hWnd parameter must be - /// NULL. This is so that the message box can appear on a desktop other than the desktop corresponding to the hWnd. For information - /// on security considerations in regard to using this flag, see Interactive Services. In particular, be aware that this flag can - /// produce interactive content on a locked desktop and should therefore be used for only a very limited set of scenarios, such as - /// resource exhaustion. - /// + /// if there is no user logged on to the computer. Terminal Services: If the calling thread has an impersonation token, the + /// function directs the message box to the session specified in the impersonation token. If this flag is set, the hWnd + /// parameter must be NULL. This is so that the message box can appear on a desktop other than the desktop corresponding to + /// the hWnd. For information on security considerations in regard to using this flag, see Interactive Services. In + /// particular, be aware that this flag can produce interactive content on a locked desktop and should therefore be used for only a + /// very limited set of scenarios, such as resource exhaustion. + /// /// /// /// @@ -4019,89 +4029,93 @@ namespace Vanara.PInvoke /// Type: int /// /// If a message box has a Cancel button, the function returns the IDCANCEL value if either the ESC key is pressed or - /// the Cancel button is selected. If the message box has no Cancel button, pressing ESC has no effect. + /// the Cancel button is selected. If the message box has no Cancel button, pressing ESC will no effect - unless an + /// MB_OK button is present. If an MB_OK button is displayed and the user presses ESC, the return value will be IDOK. /// /// If the function fails, the return value is zero. To get extended error information, call GetLastError. /// If the function succeeds, the return value is one of the following menu-item values. /// /// - /// Return code/value - /// Description + /// Return code/value + /// Description /// /// - /// IDABORT 3 - /// The Abort button was selected. + /// IDABORT 3 + /// The Abort button was selected. /// /// - /// IDCANCEL 2 - /// The Cancel button was selected. + /// IDCANCEL 2 + /// The Cancel button was selected. /// /// - /// IDCONTINUE 11 - /// The Continue button was selected. + /// IDCONTINUE 11 + /// The Continue button was selected. /// /// - /// IDIGNORE 5 - /// The Ignore button was selected. + /// IDIGNORE 5 + /// The Ignore button was selected. /// /// - /// IDNO 7 - /// The No button was selected. + /// IDNO 7 + /// The No button was selected. /// /// - /// IDOK 1 - /// The OK button was selected. + /// IDOK 1 + /// The OK button was selected. /// /// - /// IDRETRY 4 - /// The Retry button was selected. + /// IDRETRY 4 + /// The Retry button was selected. /// /// - /// IDTRYAGAIN 10 - /// The Try Again button was selected. + /// IDTRYAGAIN 10 + /// The Try Again button was selected. /// /// - /// IDYES 6 - /// The Yes button was selected. + /// IDYES 6 + /// The Yes button was selected. /// /// /// /// - /// The following system icons can be used in a message box by setting the uType parameter to the corresponding flag value. + /// + /// The following system icons can be used in a message box by setting the uType parameter to the corresponding flag value. + /// /// /// - /// Icon - /// Flag values + /// Icon + /// Flag values /// /// - /// - /// MB_ICONHAND, MB_ICONSTOP, or MB_ICONERROR + /// + /// MB_ICONHAND, MB_ICONSTOP, or MB_ICONERROR /// /// - /// - /// MB_ICONQUESTION + /// + /// MB_ICONQUESTION /// /// - /// - /// MB_ICONEXCLAMATION or MB_ICONWARNING + /// + /// MB_ICONEXCLAMATION or MB_ICONWARNING /// /// - /// - /// MB_ICONASTERISK or MB_ICONINFORMATION + /// + /// MB_ICONASTERISK or MB_ICONINFORMATION /// /// + /// Â /// /// Adding two right-to-left marks (RLMs), represented by Unicode formatting character U+200F, in the beginning of a MessageBox /// display string is interpreted by the MessageBox rendering engine so as to cause the reading order of the MessageBox to be /// rendered as right-to-left (RTL). /// /// - /// When you use a system-modal message box to indicate that the system is low on memory, the strings pointed to by the lpText and - /// lpCaption parameters should not be taken from a resource file because an attempt to load the resource may fail. + /// When you use a system-modal message box to indicate that the system is low on memory, the strings pointed to by the lpText + /// and lpCaption parameters should not be taken from a resource file because an attempt to load the resource may fail. /// /// - /// If you create a message box while a dialog box is present, use a handle to the dialog box as the hWnd parameter. The hWnd - /// parameter should not identify a child window, such as a control in a dialog box. + /// If you create a message box while a dialog box is present, use a handle to the dialog box as the hWnd parameter. The + /// hWnd parameter should not identify a child window, such as a control in a dialog box. /// /// Examples /// @@ -4114,13 +4128,14 @@ namespace Vanara.PInvoke /// The following image shows the output from the preceding code example: /// For another message box example, see Displaying a Message Box. /// - // https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-messagebox int MessageBox( HWND hWnd, LPCTSTR lpText, - // LPCTSTR lpCaption, UINT uType ); + // https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox + // int MessageBox( [in, optional] HWND hWnd, [in, optional] LPCTSTR lpText, [in, optional] LPCTSTR lpCaption, [in] UINT uType ); [DllImport(Lib.User32, SetLastError = true, CharSet = CharSet.Auto)] [PInvokeData("winuser.h", MSDNShortId = "messagebox")] public static extern MB_RESULT MessageBox([Optional] HWND hWnd, string lpText, [Optional] string lpCaption, [Optional] MB_FLAGS uType); /// + /// This function is undocumented, but has been available since Windows XP. Use with caution. /// Creates, displays, and operates a message box. The message box contains application-defined message text and title, any icon, and /// any combination of predefined push buttons. /// @@ -4137,6 +4152,377 @@ namespace Vanara.PInvoke [PInvokeData("Winuser.h")] public static extern MB_RESULT MessageBoxIndirect(in MSGBOXPARAMS lpMsgBoxParams); + /// + /// Displays a modal dialog box that contains a system icon, a set of buttons, and a brief application-specific message, such as + /// status or error information. The message box returns an integer value that indicates which button the user clicked. + /// + /// Type: HWND + /// + /// A handle to the owner window of the message box to be created. If this parameter is NULL, the message box has no owner window. + /// + /// Type: LPCTSTR + /// + /// The message to be displayed. If the string consists of more than one line, you can separate the lines using a carriage return + /// and/or linefeed character between each line. + /// + /// Type: LPCTSTR + /// The dialog box title. If this parameter is NULL, the default title is Error. + /// Type: UINT + /// + /// The contents and behavior of the dialog box. This parameter can be a combination of flags from the following groups of flags. + /// + /// To indicate the buttons displayed in the message box, specify one of the following values. + /// + /// + /// Value + /// Meaning + /// + /// + /// + /// MB_ABORTRETRYIGNORE 0x00000002L + /// The message box contains three push buttons: Abort, Retry, and Ignore. + /// + /// + /// + /// MB_CANCELTRYCONTINUE 0x00000006L + /// + /// The message box contains three push buttons: Cancel, Try Again, Continue. Use this message box type instead + /// of MB_ABORTRETRYIGNORE. + /// + /// + /// + /// + /// MB_HELP 0x00004000L + /// + /// Adds a Help button to the message box. When the user clicks the Help button or presses F1, the system sends a + /// WM_HELP message to the owner. + /// + /// + /// + /// + /// MB_OK 0x00000000L + /// The message box contains one push button: OK. This is the default. + /// + /// + /// + /// MB_OKCANCEL 0x00000001L + /// The message box contains two push buttons: OK and Cancel. + /// + /// + /// + /// MB_RETRYCANCEL 0x00000005L + /// The message box contains two push buttons: Retry and Cancel. + /// + /// + /// + /// MB_YESNO 0x00000004L + /// The message box contains two push buttons: Yes and No. + /// + /// + /// + /// MB_YESNOCANCEL 0x00000003L + /// The message box contains three push buttons: Yes, No, and Cancel. + /// + /// + /// Â + /// To display an icon in the message box, specify one of the following values. + /// + /// + /// Value + /// Meaning + /// + /// + /// + /// MB_ICONEXCLAMATION 0x00000030L + /// An exclamation-point icon appears in the message box. + /// + /// + /// + /// MB_ICONWARNING 0x00000030L + /// An exclamation-point icon appears in the message box. + /// + /// + /// + /// MB_ICONINFORMATION 0x00000040L + /// An icon consisting of a lowercase letter i in a circle appears in the message box. + /// + /// + /// + /// MB_ICONASTERISK 0x00000040L + /// An icon consisting of a lowercase letter i in a circle appears in the message box. + /// + /// + /// + /// MB_ICONQUESTION 0x00000020L + /// + /// A question-mark icon appears in the message box. The question-mark message icon is no longer recommended because it does not + /// clearly represent a specific type of message and because the phrasing of a message as a question could apply to any message type. + /// In addition, users can confuse the message symbol question mark with Help information. Therefore, do not use this question mark + /// message symbol in your message boxes. The system continues to support its inclusion only for backward compatibility. + /// + /// + /// + /// + /// MB_ICONSTOP 0x00000010L + /// A stop-sign icon appears in the message box. + /// + /// + /// + /// MB_ICONERROR 0x00000010L + /// A stop-sign icon appears in the message box. + /// + /// + /// + /// MB_ICONHAND 0x00000010L + /// A stop-sign icon appears in the message box. + /// + /// + /// Â + /// To indicate the default button, specify one of the following values. + /// + /// + /// Value + /// Meaning + /// + /// + /// + /// MB_DEFBUTTON1 0x00000000L + /// + /// The first button is the default button. MB_DEFBUTTON1 is the default unless MB_DEFBUTTON2, MB_DEFBUTTON3, or + /// MB_DEFBUTTON4 is specified. + /// + /// + /// + /// + /// MB_DEFBUTTON2 0x00000100L + /// The second button is the default button. + /// + /// + /// + /// MB_DEFBUTTON3 0x00000200L + /// The third button is the default button. + /// + /// + /// + /// MB_DEFBUTTON4 0x00000300L + /// The fourth button is the default button. + /// + /// + /// Â + /// To indicate the modality of the dialog box, specify one of the following values. + /// + /// + /// Value + /// Meaning + /// + /// + /// + /// MB_APPLMODAL 0x00000000L + /// + /// The user must respond to the message box before continuing work in the window identified by the hWnd parameter. However, + /// the user can move to the windows of other threads and work in those windows. Depending on the hierarchy of windows in the + /// application, the user may be able to move to other windows within the thread. All child windows of the parent of the message box + /// are automatically disabled, but pop-up windows are not. MB_APPLMODAL is the default if neither MB_SYSTEMMODAL nor + /// MB_TASKMODAL is specified. + /// + /// + /// + /// + /// MB_SYSTEMMODAL 0x00001000L + /// + /// Same as MB_APPLMODAL except that the message box has the WS_EX_TOPMOST style. Use system-modal message boxes to notify the + /// user of serious, potentially damaging errors that require immediate attention (for example, running out of memory). This flag has + /// no effect on the user's ability to interact with windows other than those associated with hWnd. + /// + /// + /// + /// + /// MB_TASKMODAL 0x00002000L + /// + /// Same as MB_APPLMODAL except that all the top-level windows belonging to the current thread are disabled if the hWnd + /// parameter is NULL. Use this flag when the calling application or library does not have a window handle available but still + /// needs to prevent input to other windows in the calling thread without suspending other threads. + /// + /// + /// + /// Â + /// To specify other options, use one or more of the following values. + /// + /// + /// Value + /// Meaning + /// + /// + /// + /// MB_DEFAULT_DESKTOP_ONLY 0x00020000L + /// + /// Same as desktop of the interactive window station. For more information, see Window Stations. If the current input desktop is not + /// the default desktop, MessageBox does not return until the user switches to the default desktop. + /// + /// + /// + /// + /// MB_RIGHT 0x00080000L + /// The text is right-justified. + /// + /// + /// + /// MB_RTLREADING 0x00100000L + /// Displays message and caption text using right-to-left reading order on Hebrew and Arabic systems. + /// + /// + /// + /// MB_SETFOREGROUND 0x00010000L + /// + /// The message box becomes the foreground window. Internally, the system calls the SetForegroundWindow function for the message box. + /// + /// + /// + /// + /// MB_TOPMOST 0x00040000L + /// The message box is created with the WS_EX_TOPMOST window style. + /// + /// + /// + /// MB_SERVICE_NOTIFICATION 0x00200000L + /// + /// The caller is a service notifying the user of an event. The function displays a message box on the current active desktop, even + /// if there is no user logged on to the computer. Terminal Services: If the calling thread has an impersonation token, the + /// function directs the message box to the session specified in the impersonation token. If this flag is set, the hWnd + /// parameter must be NULL. This is so that the message box can appear on a desktop other than the desktop corresponding to + /// the hWnd. For information on security considerations in regard to using this flag, see Interactive Services. In + /// particular, be aware that this flag can produce interactive content on a locked desktop and should therefore be used for only a + /// very limited set of scenarios, such as resource exhaustion. + /// + /// + /// + /// The language for the text displayed in the message box button(s). Specifying a value of zero (0) indicates to display the button text in the default system language. If this parameter is MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), the current language associated with the calling thread is used. + /// To specify a language other than the current language, use the MAKELANGID macro to create this parameter. + /// + /// Parameter is in milliseconds so 1000 will be 1 second etc. Messagebox won't time-out if is 0. + /// + /// Type: int + /// + /// If a message box has a Cancel button, the function returns the IDCANCEL value if either the ESC key is pressed or + /// the Cancel button is selected. If the message box has no Cancel button, pressing ESC will no effect - unless an + /// MB_OK button is present. If an MB_OK button is displayed and the user presses ESC, the return value will be IDOK. + /// + /// If the function fails, the return value is zero. To get extended error information, call GetLastError. + /// If the function succeeds, the return value is one of the following menu-item values. + /// + /// + /// Return code/value + /// Description + /// + /// + /// + /// IDABORT 3 + /// The Abort button was selected. + /// + /// + /// + /// IDCANCEL 2 + /// The Cancel button was selected. + /// + /// + /// + /// IDCONTINUE 11 + /// The Continue button was selected. + /// + /// + /// + /// IDIGNORE 5 + /// The Ignore button was selected. + /// + /// + /// + /// IDNO 7 + /// The No button was selected. + /// + /// + /// + /// IDOK 1 + /// The OK button was selected. + /// + /// + /// + /// IDRETRY 4 + /// The Retry button was selected. + /// + /// + /// + /// IDTRYAGAIN 10 + /// The Try Again button was selected. + /// + /// + /// + /// IDYES 6 + /// The Yes button was selected. + /// + /// + /// + /// + /// + /// The following system icons can be used in a message box by setting the uType parameter to the corresponding flag value. + /// + /// + /// + /// Icon + /// Flag values + /// + /// + /// + /// + /// MB_ICONHAND, MB_ICONSTOP, or MB_ICONERROR + /// + /// + /// + /// + /// MB_ICONQUESTION + /// + /// + /// + /// + /// + /// MB_ICONEXCLAMATION or MB_ICONWARNING + /// + /// + /// + /// + /// MB_ICONASTERISK or MB_ICONINFORMATION + /// + /// + /// Â + /// + /// Adding two right-to-left marks (RLMs), represented by Unicode formatting character U+200F, in the beginning of a MessageBox + /// display string is interpreted by the MessageBox rendering engine so as to cause the reading order of the MessageBox to be + /// rendered as right-to-left (RTL). + /// + /// + /// When you use a system-modal message box to indicate that the system is low on memory, the strings pointed to by the lpText + /// and lpCaption parameters should not be taken from a resource file because an attempt to load the resource may fail. + /// + /// + /// If you create a message box while a dialog box is present, use a handle to the dialog box as the hWnd parameter. The + /// hWnd parameter should not identify a child window, such as a control in a dialog box. + /// + /// Examples + /// + /// In the following example, the application displays a message box that prompts the user for an action after an error condition has + /// occurred. The message box displays the message that describes the error condition and how to resolve it. The + /// MB_CANCELTRYCONTINUE style directs MessageBox to provide three buttons with which the user can choose how to + /// proceed. The MB_DEFBUTTON2 style sets the default focus on the second button of the message box, in this case, the Try + /// Again button. + /// + /// The following image shows the output from the preceding code example: + /// For another message box example, see Displaying a Message Box. + /// + // https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox + // int MessageBox( [in, optional] HWND hWnd, [in, optional] LPCTSTR lpText, [in, optional] LPCTSTR lpCaption, [in] UINT uType ); + [PInvokeData("winuser.h")] + [DllImport(Lib.User32, SetLastError = true, CharSet = CharSet.Auto)] + public static extern MB_RESULT MessageBoxTimeout([Optional] HWND hWnd, string lpText, [Optional] string lpCaption, [Optional] MB_FLAGS uType, [Optional] LANGID wLanguageId, [Optional] uint dwMilliseconds); + /// /// Indicates that the system cannot be shut down and sets a reason string to be displayed to the user if system shutdown is initiated. ///