-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
50 lines (41 loc) · 1.92 KB
/
Program.cs
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
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using LothianProductions.VoIP.Forms;
using Microsoft.Win32;
namespace LothianProductions.VoIP {
static class Program {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault( false );
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler( MonitorFailureHandler );
SystemEvents.SessionEnding += new SessionEndingEventHandler(SystemEvents_SessionEnding);
// Workaround for .NET bug -- have to show & then hide
// form in order to create control handles for event-driven
// delegates to call back to. Simply constructing isn't enough.
FormMain form = new FormMain();
form.ShowInTaskbar = false;
form.WindowState = FormWindowState.Minimized;
form.Show();
form.Hide();
StateManager.Instance().StateUpdate += new StateUpdateHandler( form.StateManagerUpdated );
Application.Run();
}
private static void MonitorFailureHandler(Object sender, UnhandledExceptionEventArgs e) {
if( e.ExceptionObject != null )
MessageBox.Show(
"A fatal, unhandled error has occurred within HVoIPM, and the application must close." +
"We're very sorry this happened. If you report the error below to the developers, at " +
"[email protected], they may be able to help you fix the problem.\n\n" +
e.ExceptionObject.ToString(), "Hardware VoIP Monitor", MessageBoxButtons.OK );
}
public static void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e) {
Logger.Instance().Log( "Ended Hardware VoIP Monitor application" );
Environment.Exit(1);
}
}
}