Ausgabefenster (Visual Studio SDK)
Das Ausgabe Fenster ist ein Satz von Textbereichen, die Sie schreiben können und zu lesen. Visual Studio definiert diese integrierten Bereiche: Erstellen, um die Nachrichten zu Builds von Projekten erkennen, und AllgemeinVisual Studio von Nachrichten über die integrierte Entwicklungsumgebung (IDE) übermittelt. Projekte erhalten einen Verweis auf das Erstellen Bereich automatisch von der IVsBuildableProjectCfgVisual Studio ermöglicht Schnittstellenmethoden, und direkter Zugriff auf den Allgemein Bereich durch den SVsGeneralOutputWindowPane Dienst an. Zusätzlich zu den integrierten Bereichen können Sie erstellen und verwalten, benutzerdefinierte Bereiche besitzen.
Sie können das Fenster Ausgabe direkt über die IVsOutputWindow und Schnittstellen IVsOutputWindowPane steuern. Die IVsOutputWindow-Schnittstelle, die vom SVsOutputWindow bereitgestellten Dienst definierten Methoden zum Erstellen, das Abrufen und Zerstören von Ausgabe Fensterbereichen. Die IVsOutputWindow-Schnittstelle definiert Methoden zum Anzeigen von Bereichen, das Ausblenden von Bereichen und Bearbeiten des Texts. Eine alternative Methode des Steuerns des Ausgabe Fensters durch die OutputWindow und OutputWindowPane-Objekte im Visual Studio-Automatisierungsobjektmodell. Zu diesen Objekten gekapselt werden fast alle Funktionen der IVsOutputWindow und IVsOutputWindowPane-Schnittstellen. Darüber hinaus fügen OutputWindow und die OutputWindowPane-Objekte einige Funktionen auf höherer Ebene, um sie einfacher zu machen, die Ausgabe Fensterbereiche aufzulisten und Text aus den Bereichen abzurufen.
Beispiel
Beschreibung
Dieses Beispiel zeigt, wie Sie einen neuen Ausgabe Fensterbereich erstellt, indem die IVsOutputWindow-Schnittstelle verwendet.
Code
Private Function CreatePane(ByVal paneGuid As Guid, ByVal title As String, ByVal visible As Boolean, ByVal clearWithSolution As Boolean) As IVsOutputWindowPane
Dim output As IVsOutputWindow = DirectCast(GetService(GetType(SVsOutputWindow)), IVsOutputWindow)
Dim pane As IVsOutputWindowPane
' Create a new pane.
output.CreatePane(paneGuid, title, Convert.ToInt32(visible), Convert.ToInt32(clearWithSolution))
' Retrieve the new pane.
output.GetPane(paneGuid, pane)
Return pane
End Function
IVsOutputWindowPane CreatePane(Guid paneGuid, string title,
bool visible, bool clearWithSolution)
{
IVsOutputWindow output =
(IVsOutputWindow)GetService(typeof(SVsOutputWindow));
IVsOutputWindowPane pane;
// Create a new pane.
output.CreatePane(
ref paneGuid,
title,
Convert.ToInt32(visible),
Convert.ToInt32(clearWithSolution));
// Retrieve the new pane.
output.GetPane(ref paneGuid, out pane);
return pane;
}
Beispiel
Beschreibung
Dieses Beispiel zeigt, wie ein Ausgabe Fensterbereich erstellt, indem das OutputWindow-Objekt verwendet.
Code
Private Function CreatePane(ByVal title As String) As OutputWindowPane
Dim dte As DTE2 = DirectCast(GetService(GetType(DTE)), DTE2)
Dim panes As OutputWindowPanes = dte.ToolWindows.OutputWindow.OutputWindowPanes
Try
' If the pane exists already, return it.
Return panes.Item(title)
Catch generatedExceptionName As ArgumentException
' Create a new pane.
Return panes.Add(title)
End Try
End Function
OutputWindowPane CreatePane(string title)
{
DTE2 dte = (DTE2)GetService(typeof(DTE));
OutputWindowPanes panes =
dte.ToolWindows.OutputWindow.OutputWindowPanes;
try
{
// If the pane exists already, return it.
return panes.Item(title);
}
catch (ArgumentException)
{
// Create a new pane.
return panes.Add(title);
}
}
Kommentare
Obwohl die OutputWindowPanes-Auflistung ein Ausgabe Fensterbereich nach seinem Namen abrufen können, sind Namen des Bereichs nicht garantiert eindeutig sein. Wenn Sie die Eindeutigkeit eines Namens bezweifeln, verwenden Sie die GetPane-Methode, um den richtigen Bereich von deren GUID abzurufen.
Beispiel
Beschreibung
Dieses Beispiel zeigt, wie ein Ausgabe Fensterbereich gelöscht werden.
Code
Private Sub DeletePane(ByVal paneGuid As Guid)
Dim output As IVsOutputWindow = DirectCast(GetService(GetType(SVsOutputWindow)), IVsOutputWindow)
output.DeletePane(paneGuid)
End Sub
void DeletePane(Guid paneGuid)
{
IVsOutputWindow output =
(IVsOutputWindow)GetService(typeof(SVsOutputWindow));
output.DeletePane(ref paneGuid);
}
Beispiel
Beschreibung
Dieses Beispiel zeigt, wie ein Ausgabe Fensterbereich gelöscht werden, wenn ein OutputWindowPane-Objekt.
Code
Private Sub DeletePane(ByVal pane As OutputWindowPane)
Dim output As IVsOutputWindow = DirectCast(GetService(GetType(SVsOutputWindow)), IVsOutputWindow)
Dim paneGuid As New Guid(pane.Guid)
output.DeletePane(paneGuid)
End Sub
void DeletePane(OutputWindowPane pane)
{
IVsOutputWindow output =
(IVsOutputWindow)GetService(typeof(SVsOutputWindow));
Guid paneGuid = new Guid(pane.Guid);
output.DeletePane(ref paneGuid);
}
Beispiel
Beschreibung
Dieses Beispiel zeigt, wie Sie den integrierten Allgemein Bereich des Ausgabe Fensters erhält.
Code
Private Function GetGeneralPane() As IVsOutputWindowPane
Return DirectCast(GetService(GetType(SVsGeneralOutputWindowPane)), IVsOutputWindowPane)
End Function
IVsOutputWindowPane GetGeneralPane()
{
return (IVsOutputWindowPane)GetService(
typeof(SVsGeneralOutputWindowPane));
}
Beispiel
Beschreibung
Dieses Beispiel zeigt, wie ein Standardwert für eine Builds für Fehler analysiert und fügt ein Element am Fehler Fenster entsprechend hinzu, wenn vor der Nachricht gesendet wird, um Ausgabe Fenster.
Code
Private Sub OutputTaskItemStringExExample(ByVal buildMessage As String, ByVal buildPane As IVsOutputWindowPane, ByVal launchPad As IVsLaunchPad)
Dim priority As UInteger() = New UInteger(0) {}, lineNumber As UInteger() = New UInteger(0) {}
Dim fileName As String() = New String(0) {}, taskItemText As String() = New String(0) {}
Dim taskItemFound As Integer() = New Integer(0) {}
' Determine whether buildMessage contains an error.
launchPad.ParseOutputStringForTaskItem(buildMessage, priority, fileName, lineNumber, taskItemText, taskItemFound)
' If buildMessage contains an error, send it to both the
' Error window and the Output window; otherwise, send it
' to the Output window only.
If taskItemFound(0) <> 0 Then
buildPane.OutputTaskItemStringEx(buildMessage, DirectCast(priority(0), VSTASKPRIORITY), VSTASKCATEGORY.CAT_BUILDCOMPILE, Nothing, 0, fileName(0), _
lineNumber(0), taskItemText(0), Nothing)
Else
buildPane.OutputString(buildMessage)
End If
buildPane.OutputString(vbLf)
End Sub
void OutputTaskItemStringExExample(string buildMessage,
IVsOutputWindowPane buildPane, IVsLaunchPad launchPad)
{
uint[] priority = new uint[1], lineNumber = new uint[1];
string[] fileName = new string[1], taskItemText = new string[1];
int[] taskItemFound = new int[1];
// Determine whether buildMessage contains an error.
launchPad.ParseOutputStringForTaskItem(
buildMessage,
priority,
fileName,
lineNumber,
taskItemText,
taskItemFound);
// If buildMessage contains an error, send it to both the
// Error window and the Output window; otherwise, send it
// to the Output window only.
if (taskItemFound[0] != 0)
{
buildPane.OutputTaskItemStringEx(
buildMessage,
(VSTASKPRIORITY)priority[0],
VSTASKCATEGORY.CAT_BUILDCOMPILE,
null,
0,
fileName[0],
lineNumber[0],
taskItemText[0],
null);
}
else
{
buildPane.OutputString(buildMessage);
}
buildPane.OutputString("\n");
}