static void Main(string[] Args) { bool bFirstInstance; using (Mutex InstanceMutex = new Mutex(true, "UnrealGameSyncRunning", out bFirstInstance)) { if (bFirstInstance) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); } using (EventWaitHandle ActivateEvent = new EventWaitHandle(false, EventResetMode.AutoReset, "ActivateUnrealGameSync")) { // handle any url passed in, possibly exiting if (UriHandler.ProcessCommandLine(Args, bFirstInstance, ActivateEvent)) { return; } if (bFirstInstance) { InnerMain(InstanceMutex, ActivateEvent, Args); } else { ActivateEvent.Set(); } } } }
void HandleUri(string Uri) { try { UriResult Result = UriHandler.HandleUri(Uri); if (!Result.Success) { if (!string.IsNullOrEmpty(Result.Error)) { MessageBox.Show(String.Format("Error handling uri: {0}", Result.Error)); } return; } if (Result.Request != null) { PostRequest(Result.Request); Result.Request.Complete.Wait(); Result.Request.Dispose(); } } catch { } }