summaryrefslogtreecommitdiff
path: root/src/vm/eemessagebox.h
blob: 8c8751aa49ffbb4028cf53d41b58949a916481a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
//*****************************************************************************
// EEMessageBox.h
//

//
// This module contains the definition for the message box utility code for use
// inside the Execution Engine. These APIs ensure the GC mode is properly
// toggled to preemptive before the dialog is displayed. 
//
//*****************************************************************************

#ifndef _H_EEMESSAGEBOX
#define _H_EEMESSAGEBOX

//========================================================================
// APIs to pop messages boxes. These should be used instead of the UtilXXX 
// versions since they ensure we properly switch to preemptive GC mode and 
// validate that the thread can tolerate GC transitions before calling 
// out.
//========================================================================

int EEMessageBoxCatastrophicVA(
                  UINT uText,               // Text for MessageBox
                  UINT uTitle,              // Title for MessageBox
                  UINT uType,               // Style of MessageBox
                  BOOL showFileNameInTitle, // Flag to show FileName in Caption
                  va_list insertionArgs);   // Additional Arguments

int EEMessageBoxCatastrophic(
                  UINT iText,       // Text for MessageBox
                  UINT iTitle,      // Title for MessageBox
                  ...);             // Additional Arguments

int EEMessageBoxCatastrophicWithCustomizedStyle(
                  UINT iText,               // Text for MessageBox
                  UINT iTitle,              // Title for MessageBox
                  UINT uType,               // Style of MessageBox
                  BOOL showFileNameInTitle, // Flag to show FileName in Caption
                  ...);                     // Additional Arguments

#ifdef _DEBUG

int EEMessageBoxNonLocalizedDebugOnly(
                  LPCWSTR lpText,    // Text message
                  LPCWSTR lpCaption, // Caption
                  UINT uType,       // Style of MessageBox
                  ... );            // Additional Arguments

#endif // _DEBUG

// If we didn't display a dialog to the user, this method returns IDIGNORE, unlike the others that return IDABORT.
int EEMessageBoxNonLocalizedNonFatal(
                  LPCWSTR lpText,   // Text message
                  LPCWSTR lpTitle,  // Caption
                  UINT uType,       // Style of MessageBox
                  ... );            // Additional Arguments

// If we didn't display a dialog to the user, this method returns IDIGNORE, unlike the others that return IDABORT.
int EEMessageBoxNonLocalizedNonFatal(
                  LPCWSTR lpText,   // Text message
                  LPCWSTR lpTitle,  // Caption
                  LPCWSTR lpDetails,// Detailed message like a stack trace
                  UINT uType,       // Style of MessageBox
                  ... );            // Additional Arguments

#endif /* _H_EEMESSAGEBOX */