/*************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. This code is licensed under the Visual Studio SDK license terms. THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. ***************************************************************************/ using System; using System.Collections.Generic; using Microsoft.VisualStudio.Shell.Interop; using VSConstants = Microsoft.VisualStudio.VSConstants; namespace Microsoft.VsSDK.UnitTestLibrary { [CLSCompliant(false)] public class OutputWindowService : IVsOutputWindow { private Dictionary paneList = new Dictionary(); #region IVsOutputWindow Members public int CreatePane(ref Guid rguidPane, string pszPaneName, int fInitVisible, int fClearWithSolution) { // Keep track of the created pane this.paneList.Add(rguidPane, pszPaneName); return VSConstants.S_OK; } public int DeletePane(ref Guid rguidPane) { this.paneList.Remove(rguidPane); return VSConstants.S_OK; } public int GetPane(ref Guid rguidPane, out IVsOutputWindowPane ppPane) { // First make sure the pane was created (we may need to add standard ones in the constructor) if (!this.paneList.ContainsKey(rguidPane)) throw new ArgumentException("Could not find the requested pane, make sure you call CreatePane first"); // Create a pane with the correct name ppPane = new OutputWindowPane(this.paneList[rguidPane]); return VSConstants.S_OK; } #endregion } }