Окно вывода
Чтобы писать в окно вывода «Общие» в Visual Studio, вам необходимо сделать следующее:
IVsOutputWindow outWindow = Package.GetGlobalService( typeof( SVsOutputWindow ) ) as IVsOutputWindow;
Guid generalPaneGuid = VSConstants.GUID_OutWindowGeneralPane; // P.S. There's also the GUID_OutWindowDebugPane available.
IVsOutputWindowPane generalPane;
outWindow.GetPane( ref generalPaneGuid , out generalPane );
generalPane.OutputString( "Hello World!" );
generalPane.Activate(); // Brings this pane into view
Однако, если вы хотите писать в настраиваемое окно, вам нужно сделать следующее:
IVsOutputWindow outWindow = Package.GetGlobalService( typeof( SVsOutputWindow ) ) as IVsOutputWindow;
// Use e.g. Tools -> Create GUID to make a stable, but unique GUID for your pane.
// Also, in a real project, this should probably be a static constant, and not a local variable
Guid customGuid = new Guid("0F44E2D1-F5FA-4d2d-AB30-22BE8ECD9789");
string customTitle = "Custom Window Title";
outWindow.CreatePane( ref customGuid, customTitle, 1, 1 );
IVsOutputWindowPane customPane;
outWindow.GetPane( ref customGuid, out customPane);
customPane.OutputString( "Hello, Custom World!" );
customPane.Activate(); // Brings this pane into view
Подробная информация о IVsOutputWindow и IVsOutputWindowPane можно найти на MSDN.
Список ошибок
Для добавления элементов в список ошибок IVsSingleFileGenerator
имеет вызов метода void Generate(...)
с параметром типа IVsGeneratorProgress
. В этом интерфейсе есть метод void GeneratorError()
, который позволяет сообщать об ошибках и предупреждениях в список ошибок Visual Studio.
public class MyCodeGenerator : IVsSingleFileGenerator
{
...
public void Generate( string inputFilePath, string inputFileContents, string defaultNamespace, out IntPtr outputFileContents, out int output, IVsGeneratorProgress generateProgress )
{
...
generateProgress.GeneratorError( false, 0, "An error occured", 2, 4);
...
}
...
}
Подробная информация о GeneratorError () можно найти на MSDN.
person
Alex
schedule
05.12.2009