La tentative de définir MainWindow.Caption entraîne une exception. Vous devez utiliser la fonction Win32 SetWindowText pour changer le titre, mais attention : Visual Studio réinitialise le texte de la barre de titre au pied levé, vous devez donc implémenter un Timer pour continuer à définir le texte souhaité. Le code suivant, extrait du fichier Connect
de l'add-in conservera en permanence (ou tant que l'add-in est en cours d'exécution) le texte de la barre de titre sous la forme "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!");
}