Example #1
0
        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 { }
        }