public SquashPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { this.teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer)); this.gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); this.gitService.PropertyChanged += this.OnGitServiceActiveRepositoriesChanged; }
public GitRemoteRepository GetActiveRepository() { _gitService = _appServiceProvider.GetService <IGitExt>(); var activeRepository = _gitService.ActiveRepositories.FirstOrDefault(); return(activeRepository.ToGitRepo()); }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> protected override void Initialize() { base.Initialize(); TraceWriteLine("Package Initialization: Starting"); IServiceContainer serviceContainer = this as IServiceContainer; ServiceCreatorCallback callback = new ServiceCreatorCallback(CreateGitWrapperService); serviceContainer.AddService(typeof(IGitStashWrapper), callback, true); serviceContainer.AddService(typeof(IGitStashProjectEvents), callback, true); serviceContainer.AddService(typeof(IGitStashTranslator), callback, true); gitService = (IGitExt)GetService(typeof(IGitExt)); gitService.PropertyChanged += GitService_PropertyChanged; this.projects = new GitStashProjects(this); this.events = new GitStashFileWatcher(); if (gitService.ActiveRepositories.FirstOrDefault() != null) { string path = gitService.ActiveRepositories.FirstOrDefault().RepositoryPath; TraceWriteLine("Setting directory: " + path); events.ChangeDirectory(path); } TraceWriteLine("Package Initialization: Done"); ShowStashPageCommand.Initialize(this); }
public (Repository, Commit) GetSelectedCommit() { ThreadHelper.ThrowIfNotOnUIThread(); EnvDTE80.DTE2 dte = ServiceProvider.GetService(typeof(DTE)) as EnvDTE80.DTE2; // GUID found via dte.ActiveWindow.ObjectKind Guid gitHistoryWindowGuid = new Guid("116D2292-E37D-41CD-A077-EBACAC4C8CC4"); IVsUIShell vsUIShell = (IVsUIShell)Package.GetGlobalService(typeof(SVsUIShell)); int toolWindowReturn = vsUIShell.FindToolWindow((uint)__VSFINDTOOLWIN.FTW_fFrameOnly, ref gitHistoryWindowGuid, out IVsWindowFrame vsWindowFrame); WindowFrame windowFrame = (WindowFrame)vsWindowFrame; ToolWindowView toolWindowView = (ToolWindowView)windowFrame.FrameView; // panel is of innaccessible type Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.ContentHostingPanel // so use base System.Windows.Controls.Grid Grid contentHostingPanel = (Grid)toolWindowView.Content; // Type Microsoft.VisualStudio.Platform.WindowManagement.Controls.GenericPaneContentPresenter is internal // so use base ContentPresenter ContentPresenter genericPaneContentPresenter = contentHostingPanel.Children[1] as ContentPresenter; // Microsoft.VisualStudio.TeamFoundation.ToolWindowBase.ToolWindowBaseProxy is innaccessible // so use base ContentPresenter ContentPresenter toolWindowBaseProxy = (ContentPresenter)genericPaneContentPresenter.Content; // Is of type Microsoft.TeamFoundation.Git.Controls.History.HistoryView, // but this class is defined as internal so using base UserControl. UserControl historyView = (UserControl)toolWindowBaseProxy.Content; // Is of type Microsoft.TeamFoundation.Git.Controls.History.HistoryViewModel, // but this class is defined as internal so using base Microsoft.TeamFoundation.MVVM.ViewModelBase. ViewModelBase historyViewModel = (ViewModelBase)historyView.DataContext; // Use reflection to get at properties of internal type HistoryViewModel and ObservableCollection<GitHistoryItem> object gitHistoryItem = ((IList)historyViewModel.GetType().GetProperty("SelectedItems").GetValue(historyViewModel, null))[0]; IGitCommit selectedCommit = (IGitCommit)gitHistoryItem.GetType().GetProperty("Commit").GetValue(gitHistoryItem, null); IGitExt gitExt = ServiceProvider.GetService(typeof(IGitExt)) as IGitExt; Repository repository = new Repository(gitExt.ActiveRepositories.First().RepositoryPath); Commit commit = repository.Lookup <Commit>(selectedCommit.Id.Sha); return(repository, commit); }
public StashListTeamExplorerNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; _teamExplorer = _serviceProvider.GetService(typeof(ITeamExplorer)) as ITeamExplorer; _image = Resources.TeamExplorerIcon; _gitService = (IGitExt)_serviceProvider.GetService(typeof(IGitExt)); IsVisible = _gitService.AnyActiveRepository(); _gitService.PropertyChanged += GitServicePropertyChanged; }
public GitFlowPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { Title = "GitFlow"; gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); gitService.PropertyChanged += OnGitServicePropertyChanged; var outWindow = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow; var customGuid = new Guid("B85225F6-B15E-4A8A-AF6E-2BE96A4FE672"); outWindow.CreatePane(ref customGuid, "GitFlow.VS", 1, 1); outWindow.GetPane(ref customGuid, out outputWindow); }
public StashNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) : base(serviceProvider) { this.Image = Resources.StashIcon; this.IsVisible = false; this.T = GetService <IGitStashTranslator>().Translator; this.Text = T["Git Stash"]; teamExplorer = GetService <ITeamExplorer>(); gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); teamExplorer.PropertyChanged += TeamExplorerOnPropertyChanged; }
public GitWatcher( IAppServiceProvider appServiceProvider, IEventAggregatorService eventAggregatorService, IGitService gitService ) { _syncContext = SynchronizationContext.Current; this._eventAggregatorService = eventAggregatorService; _gitService = gitService; _gitExt = appServiceProvider.GetService <IGitExt>(); }
public void Refresh(IServiceProvider serviceProvider) { if (gitService != null) { gitService.PropertyChanged -= CheckAndUpdate; } gitService = serviceProvider.GetServiceSafe <IGitExt>(); if (gitService != null) { gitService.PropertyChanged += CheckAndUpdate; } }
public VsCommitizenNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) : base(serviceProvider) { this.Text = "VsCommitizen"; this.Image = VSPackage.Git_icon; this.ArgbColor = Color.Red.ToArgb(); gitService = GetService <IGitExt>(); gitService.PropertyChanged += GitService_PropertyChanged; this.IsVisible = gitService.ActiveRepositories.Count > 0; }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> protected override void Initialize() { base.Initialize(); this.TraceWriteLine("Package Initialization: Starting"); IServiceContainer serviceContainer = this; ServiceCreatorCallback callback = this.CreateGitWrapperService; serviceContainer.AddService(typeof(IGitSquashWrapper), callback, true); this.gitService = (IGitExt)this.GetService(typeof(IGitExt)); this.TraceWriteLine("Package Initialization: Done"); }
public StashNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { ServiceProvider = serviceProvider; Image = Resources.StashIcon; ArgbColor = UI.Colors.NavigationItemGreen.ToInt32(); IsEnabled = true; this.T = GetService <IGitStashTranslator>().Translator; Text = T["GitStash"]; teamExplorer = GetService <ITeamExplorer>(); gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); teamExplorer.PropertyChanged += TeamExplorerOnPropertyChanged; Refresh(); }
public GitSubmodulesPage([Import(typeof (SVsServiceProvider))] IServiceProvider serviceProvider) { Title = "Git Submodules"; gitService = (IGitExt) serviceProvider.GetService(typeof (IGitExt)); teamExplorer = (ITeamExplorer) serviceProvider.GetService(typeof (ITeamExplorer)); gitService.PropertyChanged += OnGitServicePropertyChanged; var outWindow = Package.GetGlobalService(typeof (SVsOutputWindow)) as IVsOutputWindow; var customGuid = new Guid("08A48010-2A4A-4DB1-AA58-36674F667904"); outWindow.CreatePane(ref customGuid, "Git Submodules", 1, 1); outWindow.GetPane(ref customGuid, out outputWindow); ui = new GitSubmodulePageUI(); PageContent = ui; }
public GitOperationsPage([Import(typeof (SVsServiceProvider))] IServiceProvider serviceProvider) { Title = "Git Operations"; gitService = (IGitExt) serviceProvider.GetService(typeof (IGitExt)); teamExplorer = (ITeamExplorer) serviceProvider.GetService(typeof (ITeamExplorer)); gitService.PropertyChanged += OnGitServicePropertyChanged; var outWindow = Package.GetGlobalService(typeof (SVsOutputWindow)) as IVsOutputWindow; var customGuid = new Guid("A7C0163F-82E8-4D95-97C8-C62743D15DC3"); outWindow.CreatePane(ref customGuid, "Git Operations", 1, 1); outWindow.GetPane(ref customGuid, out outputWindow); ui = new GitOperationsPageUI(); PageContent = ui; }
public GitFlowPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { Title = "GitFlow with Pull Request"; gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer)); gitService.PropertyChanged += OnGitServicePropertyChanged; var outWindow = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow; var customGuid = new Guid("2AAAB744-47C6-4208-A26C-35937E69BB50"); outWindow.CreatePane(ref customGuid, "GitFlowWithPR.VS", 1, 1); outWindow.GetPane(ref customGuid, out outputWindow); ui = new GitFlowPageUI(); PageContent = ui; }
public GitOperationsPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { Title = "Git MoreOperations"; gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer)); gitService.PropertyChanged += OnGitServicePropertyChanged; var outWindow = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow; var customGuid = new Guid("A7C0163F-82E8-4D95-97C8-C62743D15DC3"); outWindow.CreatePane(ref customGuid, "Git MoreOperations", 1, 1); outWindow.GetPane(ref customGuid, out outputWindow); ui = new GitOperationsPageUI(); PageContent = ui; }
public GitFlowPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { Title = "GitFlow AVH"; gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer)); gitService.PropertyChanged += OnGitServicePropertyChanged; var outWindow = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow; var customGuid = new Guid("B85225F6-B15E-4A8A-AF6E-2BE96A4FE672"); outWindow.CreatePane(ref customGuid, "Source Control - GitFlow AVH", 1, 1); outWindow.GetPane(ref customGuid, out outputWindow); ui = new GitFlowPageUI(); PageContent = ui; }
public GiteeConnectSection(IMessenger messenger, IShellService shell, IStorage storage, ITeamExplorerServices teamexplorer, IViewFactory viewFactory, IWebService web) { _messenger = messenger; _shell = shell; _storage = storage; _teamexplorer = teamexplorer; _viewFactory = viewFactory; _web = web; messenger.Register("OnLogined", OnLogined); messenger.Register("OnSignOuted", OnSignOuted); messenger.Register <string, Repository>("OnClone", OnClone); messenger.Register <string>("OnOpenSolution", OnOpenSolution); IGitExt gitExt = GlobalServiceProvider.GlobalProvider.GetService <IGitExt>(); gitExt.PropertyChanged += GitExt_PropertyChanged; }
static VSGitExt CreateVSGitExt(IVSUIContext context = null, IGitExt gitExt = null, IAsyncServiceProvider sp = null, ILocalRepositoryModelFactory repoFactory = null, JoinableTaskContext joinableTaskContext = null) { context = context ?? CreateVSUIContext(true); gitExt = gitExt ?? CreateGitExt(); sp = sp ?? Substitute.For <IAsyncServiceProvider>(); repoFactory = repoFactory ?? Substitute.For <ILocalRepositoryModelFactory>(); joinableTaskContext = joinableTaskContext ?? new JoinableTaskContext(); var factory = Substitute.For <IVSUIContextFactory>(); factory.GetUIContext(UICONTEXT.RepositoryOpen_guid).Returns(context); sp.GetServiceAsync(typeof(IGitExt)).Returns(gitExt); var vsGitExt = new VSGitExt(sp, factory, repoFactory, joinableTaskContext); vsGitExt.JoinTillEmpty(); return(vsGitExt); }
public GitSubmodulesPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { Title = "Git Submodules"; gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer)); gitService.PropertyChanged += OnGitServicePropertyChanged; var outWindow = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow; var customGuid = new Guid("08A48010-2A4A-4DB1-AA58-36674F667904"); outWindow.CreatePane(ref customGuid, "Git Submodules", 1, 1); outWindow.GetPane(ref customGuid, out outputWindow); ui = new GitSubmodulePageUI(); PageContent = ui; }
/// <summary> /// Initializes a new instance of the <see cref="GitCommands"/> class. /// Adds our command handlers for menu (commands must exist in the command table file) /// </summary> /// <param name="package">Owner package, not null.</param> /// <param name="commandService">Command service to add command to, not null.</param> private GitOriginDevelopment(AsyncPackage package, OleMenuCommandService commandService, IGitExt gitService, IVsOutputWindowPane vsOutputWindow, DTE dteVsCoreAutomation) { this.package = package ?? throw new ArgumentNullException(nameof(package)); commandService = commandService ?? throw new ArgumentNullException(nameof(commandService)); _gitService = gitService ?? throw new ArgumentNullException(nameof(gitService)); _vsOutputWindowPane = vsOutputWindow ?? throw new ArgumentNullException(nameof(vsOutputWindow)); _dteVsCoreAutomation = dteVsCoreAutomation ?? throw new ArgumentNullException(nameof(dteVsCoreAutomation)); var menuCommandID = new CommandID(CommandSet, CommandId); var menuItem = new MenuCommand(this.Execute, menuCommandID); commandService.AddCommand(menuItem); }
static VSGitExt CreateVSGitExt(IVSUIContext context = null, IGitExt gitExt = null, IAsyncServiceProvider sp = null, ILocalRepositoryModelFactory repoFactory = null) { context = context ?? CreateVSUIContext(true); gitExt = gitExt ?? CreateGitExt(); sp = sp ?? Substitute.For <IAsyncServiceProvider>(); repoFactory = repoFactory ?? Substitute.For <ILocalRepositoryModelFactory>(); var factory = Substitute.For <IVSUIContextFactory>(); var contextGuid = new Guid(Guids.GitSccProviderId); factory.GetUIContext(contextGuid).Returns(context); sp.GetServiceAsync(typeof(IGitExt)).Returns(gitExt); var vsGitExt = new VSGitExt(sp, factory, repoFactory); vsGitExt.PendingTasks.Wait(); return(vsGitExt); }
public SquashNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) : base(serviceProvider) { try { this.UpdateVisible(); this.Image = Properties.Resources.SquashIcon; this.IsVisible = false; this.Text = Properties.Resources.SquashName; ITeamExplorer teamExplorer = this.GetService <ITeamExplorer>(); teamExplorer.PropertyChanged += this.TeamExplorerOnPropertyChanged; this.gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); } catch (Exception ex) { this.HandleException(ex); } }
public GitStashPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { Title = "Git Stash"; gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer)); gitService.PropertyChanged += OnGitServicePropertyChanged; var outWindow = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow; var customGuid = new Guid("B602D8ED-2A92-4EB6-AE2C-A04F19386BAF"); outWindow.CreatePane(ref customGuid, "Git stash", 1, 1); outWindow.GetPane(ref customGuid, out outputWindow); hiddenOutput = new Service.HiddenGitOutput(); ui = new GitStashPageUI(); PageContent = ui; }
public GitSubmodulesNavigationItem([Import(typeof (SVsServiceProvider))] IServiceProvider serviceProvider) : base(serviceProvider) { try { UpdateVisible(); Text = "Git Submodules"; Image = Resources.LinkIcon; IsVisible = true; teamExplorer = GetService<ITeamExplorer>(); gitService = (IGitExt) serviceProvider.GetService(typeof (IGitExt)); teamExplorer.PropertyChanged += TeamExplorerOnPropertyChanged; } catch (Exception ex) { HandleException(ex); } }
public GitSkipFilesPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { Title = "Git SkipFiles"; gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer)); gitService.PropertyChanged += OnGitServicePropertyChanged; var outWindow = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow; var customGuid = new Guid("BCAD885C-621F-4FFE-A746-E6AC35213F34"); outWindow.CreatePane(ref customGuid, "Git SkipFiles", 1, 1); outWindow.GetPane(ref customGuid, out outputWindow); hiddenOutput = new Service.HiddenGitOutput(); ui = new GitSkipFilesPageUI(); PageContent = ui; }
public GitFlowNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) : base(serviceProvider) { try { UpdateVisible(); Text = "GitFlow"; Image = Resources.LinkIcon; IsVisible = true; teamExplorer = GetService <ITeamExplorer>(); gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); teamExplorer.PropertyChanged += TeamExplorerOnPropertyChanged; } catch (Exception ex) { HandleException(ex); } }
public GitLogPage([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) { Title = "Git Journal"; ServiceDTE = (DTE)serviceProvider.GetService(typeof(DTE)); gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); teamExplorer = (ITeamExplorer)serviceProvider.GetService(typeof(ITeamExplorer)); gitService.PropertyChanged += OnGitServicePropertyChanged; var outWindow = Package.GetGlobalService(typeof(SVsOutputWindow)) as IVsOutputWindow; var customGuid = new Guid("9E717339-5502-4A0B-B04E-3D86AFE31F50"); outWindow.CreatePane(ref customGuid, "Git journal", 1, 1); outWindow.GetPane(ref customGuid, out outputWindow); ui = new GitLogPageUI(); PageContent = ui; }
public GitStashNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider) : base(serviceProvider) { try { UpdateVisible(); Text = "Git Stash"; Image = Resources.LinkIcon; IsVisible = true; teamExplorer = GetService <ITeamExplorer>(); gitService = (IGitExt)serviceProvider.GetService(typeof(IGitExt)); teamExplorer.PropertyChanged += TeamExplorerOnPropertyChanged; ArgbColor = System.Windows.Media.Color.FromRgb(0xAE, 0x3C, 0xBA).ToInt32(); IsEnabled = true; } catch (Exception ex) { HandleException(ex); } }
static VSGitExt CreateVSGitExt(IVSUIContext context = null, IGitExt gitExt = null, IServiceProvider sp = null, IGitService gitService = null, JoinableTaskContext joinableTaskContext = null, string contextGuidString = null) { context = context ?? CreateVSUIContext(true); gitExt = gitExt ?? CreateGitExt(); var contextGuid = new Guid(contextGuidString ?? Guids.GitSccProviderId); sp = sp ?? Substitute.For <IServiceProvider>(); gitService = gitService ?? Substitute.For <IGitService>(); joinableTaskContext = joinableTaskContext ?? new JoinableTaskContext(); var factory = Substitute.For <IVSUIContextFactory>(); factory.GetUIContext(contextGuid).Returns(context); sp.GetService(typeof(IGitExt)).Returns(gitExt); var vsGitExt = new VSGitExt(sp, factory, gitService, joinableTaskContext); vsGitExt.JoinTillEmpty(); return(vsGitExt); }
bool TryInitialize() { gitService = serviceProvider.GetService <IGitExt>(); if (gitService != null) { gitService.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(gitService.ActiveRepositories)) { RefreshActiveRepositories(); } }; log.Debug("Found IGitExt service and initialized VSGitExt"); return(true); } log.Error("Couldn't find IGitExt service"); return(false); }
async Task InitializeAsync() { gitExt = await GetServiceAsync <IGitExt>(); if (gitService == null) { log.Error("Couldn't find IGitExt service"); return; } // Refresh on background thread await Task.Run(() => RefreshActiveRepositories()); gitExt.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(gitExt.ActiveRepositories)) { RefreshActiveRepositories(); } }; }
void Initialize() { PendingTasks = asyncServiceProvider.GetServiceAsync(typeof(IGitExt)).ContinueWith(t => { gitService = (IGitExt)t.Result; if (gitService == null) { log.Error("Couldn't find IGitExt service"); return; } RefreshActiveRepositories(); gitService.PropertyChanged += (s, e) => { if (e.PropertyName == nameof(gitService.ActiveRepositories)) { RefreshActiveRepositories(); } }; }, TaskScheduler.Default); }
/// <summary> /// Initializes the singleton instance of the command. /// </summary> /// <param name="package">Owner package, not null.</param> public static async Task InitializeAsync(AsyncPackage package) { // Switch to the main thread - the call to AddCommand in GitCommands's constructor requires // the UI thread. await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(package.DisposalToken); OleMenuCommandService commandService = await package.GetServiceAsync((typeof(IMenuCommandService))) as OleMenuCommandService; IGitExt gitService = await package.GetServiceAsync((typeof(IGitExt))) as IGitExt; DTE vsCoreAutomation = await package.GetServiceAsync((typeof(DTE))) as DTE; IVsOutputWindow outputWindow = await package.GetServiceAsync((typeof(IVsOutputWindow))) as IVsOutputWindow; // Instantiates VS output window var paneGuid = Microsoft.VisualStudio.VSConstants.OutputWindowPaneGuid.GeneralPane_guid; var paneName = ExtensionConstants.PanelName; IVsOutputWindowPane vsoutputwindow; outputWindow.CreatePane(paneGuid, paneName, 1, 0); outputWindow.GetPane(paneGuid, out vsoutputwindow); Instance = new GitOriginDevelopment(package, commandService, gitService, vsoutputwindow, vsCoreAutomation); }