public void Launch()
        {
            if (_workspace == null)
            {
                try
                {
                    DiagnosticServiceSummaryComponent component = new DiagnosticServiceSummaryComponent();

                    _workspace = ApplicationComponent.LaunchAsWorkspace(
                        this.Context.DesktopWindow,
                        component,
                        "Imaging Services");
                    _workspace.Closed += delegate { _workspace = null; };
                }
                catch (Exception e)
                {
                    // failed to launch component
                    ExceptionHandler.Report(e, this.Context.DesktopWindow);
                }
            }
            else
            {
                _workspace.Activate();
            }
        }
        public override bool ResolveNameInteractive(string query, out DiagnosticServiceSummary result)
        {
            result = null;

            try
            {
                IDiagnosticServiceInteractiveLookupProvider provider = (IDiagnosticServiceInteractiveLookupProvider)
                                                                       new DiagnosticServiceInteractiveLookupProviderExtensionPoint().CreateExtension();
                result = provider.ResolveDiagnosticService(query, _desktopWindow);
            }
            catch (NotSupportedException)
            {
                // default
                DiagnosticServiceSummaryComponent summaryComponent = new DiagnosticServiceSummaryComponent(true);
                summaryComponent.IncludeDeactivatedItems = this.IncludeDeactivatedItems;
                if (!string.IsNullOrEmpty(query))
                {
                    summaryComponent.Name = query;
                }

                ApplicationComponentExitCode exitCode = ApplicationComponent.LaunchAsDialog(
                    _desktopWindow, summaryComponent, "Imaging Services");

                if (exitCode == ApplicationComponentExitCode.Accepted)
                {
                    result = (DiagnosticServiceSummary)summaryComponent.SummarySelection.Item;
                }
            }

            return(result != null);
        }