1// Licensed to the .NET Foundation under one or more agreements.
2// The .NET Foundation licenses this file to you under the MIT license.
3// See the LICENSE file in the project root for more information.
4//*****************************************************************************
5// EEMessageBox.h
6//
7
8//
9// This module contains the definition for the message box utility code for use
10// inside the Execution Engine. These APIs ensure the GC mode is properly
11// toggled to preemptive before the dialog is displayed.
12//
13//*****************************************************************************
14
15#ifndef _H_EEMESSAGEBOX
16#define _H_EEMESSAGEBOX
17
18//========================================================================
19// APIs to pop messages boxes. These should be used instead of the UtilXXX
20// versions since they ensure we properly switch to preemptive GC mode and
21// validate that the thread can tolerate GC transitions before calling
22// out.
23//========================================================================
24
25int EEMessageBoxCatastrophicVA(
26 UINT uText, // Text for MessageBox
27 UINT uTitle, // Title for MessageBox
28 UINT uType, // Style of MessageBox
29 BOOL showFileNameInTitle, // Flag to show FileName in Caption
30 va_list insertionArgs); // Additional Arguments
31
32int EEMessageBoxCatastrophic(
33 UINT iText, // Text for MessageBox
34 UINT iTitle, // Title for MessageBox
35 ...); // Additional Arguments
36
37int EEMessageBoxCatastrophicWithCustomizedStyle(
38 UINT iText, // Text for MessageBox
39 UINT iTitle, // Title for MessageBox
40 UINT uType, // Style of MessageBox
41 BOOL showFileNameInTitle, // Flag to show FileName in Caption
42 ...); // Additional Arguments
43
44#ifdef _DEBUG
45
46int EEMessageBoxNonLocalizedDebugOnly(
47 LPCWSTR lpText, // Text message
48 LPCWSTR lpCaption, // Caption
49 UINT uType, // Style of MessageBox
50 ... ); // Additional Arguments
51
52#endif // _DEBUG
53
54// If we didn't display a dialog to the user, this method returns IDIGNORE, unlike the others that return IDABORT.
55int EEMessageBoxNonLocalizedNonFatal(
56 LPCWSTR lpText, // Text message
57 LPCWSTR lpTitle, // Caption
58 UINT uType, // Style of MessageBox
59 ... ); // Additional Arguments
60
61// If we didn't display a dialog to the user, this method returns IDIGNORE, unlike the others that return IDABORT.
62int EEMessageBoxNonLocalizedNonFatal(
63 LPCWSTR lpText, // Text message
64 LPCWSTR lpTitle, // Caption
65 LPCWSTR lpDetails,// Detailed message like a stack trace
66 UINT uType, // Style of MessageBox
67 ... ); // Additional Arguments
68
69#endif /* _H_EEMESSAGEBOX */
70
71