Попытка установить MainWindow.Caption вызывает исключение. Вы должны использовать функцию Win32 SetWindowText, чтобы изменить заголовок, но будьте осторожны: Visual Studio сбрасывает текст строки заголовка без промедления, поэтому вы должны реализовать таймер, чтобы продолжить установку желаемого текста. Следующий код из класса Connect
надстройки будет постоянно (или, пока надстройка работает) сохранять текст строки заголовка как «Hello World!»
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
resetTitleTimer = new Timer(new TimerCallback(SetMainWindowTitle), "Hello world!", 0, 10);
}
[DllImport("user32.dll")]
private static extern bool SetWindowText(IntPtr hWnd, string lpString);
private void SetMainWindowTitle(object state)
{
IntPtr hWnd = (IntPtr)_applicationObject.MainWindow.HWnd;
SetWindowText(hWnd, "Hello World!");
}