0
0
mirror of https://github.com/sp-tarkov/modules.git synced 2025-02-13 09:10:44 -05:00
modules/project/SPT.PrePatch/MessageBoxHelper.cs

57 lines
1.7 KiB
C#
Raw Normal View History

using System;
using System.Runtime.InteropServices;
2024-05-21 19:10:17 +01:00
namespace SPT.PrePatch
{
internal class MessageBoxHelper
{
public enum MessageBoxType : uint
{
ABORTRETRYIGNORE = (uint)(0x00000002L | 0x00000010L),
CANCELTRYCONTINUE = (uint)(0x00000006L | 0x00000030L),
HELP = (uint)(0x00004000L | 0x00000040L),
OK = (uint)(0x00000000L | 0x00000040L),
OKCANCEL = (uint)(0x00000001L | 0x00000040L),
RETRYCANCEL = (uint)0x00000005L,
YESNO = (uint)(0x00000004L | 0x00000040L),
YESNOCANCEL = (uint)(0x00000003L | 0x00000040L),
DEFAULT = (uint)(0x00000000L | 0x00000010L)
}
public enum MessageBoxResult
{
ERROR = -1,
OK = 1,
CANCEL = 2,
ABORT = 3,
RETRY = 4,
IGNORE = 5,
YES = 6,
NO = 7,
TRY_AGAIN = 10
}
[DllImport("user32.dll")]
private static extern IntPtr GetActiveWindow();
[DllImport("user32.dll", SetLastError = true)]
static extern int MessageBox(IntPtr hwnd, String lpText, String lpCaption, uint uType);
public static IntPtr GetWindowHandle()
{
return GetActiveWindow();
}
public static MessageBoxResult Show(string text, string caption, MessageBoxType type = MessageBoxType.DEFAULT)
{
try
{
return (MessageBoxResult)MessageBox(GetWindowHandle(), text, caption, (uint)type); ;
}
catch (Exception)
{
return MessageBoxResult.ERROR;
}
}
}
}