/// <summary>
        /// アプリケーションの開始時に呼び出される。
        /// </summary>
        protected override sealed void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            // 多重起動防止
            if (!this.mutexForBoot.WaitOne(0, false))
            {
                this.Shutdown(1);
                return;
            }

            // 設定をロード
            if (!this.mmlConfig.Load())
            {
                this.mmlConfig.Value = new MikuMikuLipConfig();
            }
            if (!this.editConfig.Load())
            {
                this.editConfig.Value = new LipEditConfig();
            }
            if (!this.presetConfig.Load())
            {
                this.presetConfig.Value = new MorphPresetConfig();
            }

            // ViewModel 作成
            var vm = new MikuMikuLipConfigViewModel(this.mmlConfig.Value);
            vm.EditViewModel =
                new LipEditControlViewModel(
                    this.editConfig.Value,
                    this.presetConfig.Value);

            // アプリケーション個別処理
            this.OnAppStartup(vm);
        }
 /// <summary>
 /// MikuMikuLipMaker アプリケーションの開始時に呼び出される。
 /// </summary>
 /// <param name="viewModel">ViewModel 。</param>
 protected abstract void OnAppStartup(MikuMikuLipConfigViewModel viewModel);