Menu

juin 2008 Posts

Changer les Forms par défaut VSTO – Outlook

Il est possible avec VSTO de surcharger les formulaires par défauts d’Outlook, comme le formulaire d’ajout d’un contact par exemple. Pour cela il y a deux méthodes, l’un avec l’assistant (via Form Region) de Visual Studio, l’autre avec du code en interceptant l’ouverture de celle-ci. Dans le premier cas on surcharge ou on remplace définitivement un formulaire, mais si l’on veut par exemple ajouter un second répertoire contact dans Outlook et qu’en fonction du répertoire, afficher un formulaire différent, comme le formulaire par défaut pour le premier répertoire et un formulaire personnalisé sur le second, et bien avec la première méthode ce n’est pas possible.

Vient alors la seconde méthode qui consiste à surcharger le contrôleur d’instanciation (en fait une liste) des formulaires, nommé Inspectors sur l’objet d’application. Pour information un Inspector est un modèle de formulaire affichable dans Outlook pour la gestion d’un type d’objet précis (Appointement, Contact, …) Quand, par exemple, on ajoute un nouveau contact, un nouvel Inspector est créé, dans le cas d’un contact c’est l’Inspector de type ContactItem qui est instancié. Si l’on veut donc substituer ce formulaire par notre propre WinForm, il faut d’abord s’abonner sur l’événement NewInspector du contrôleur pour qu’il nous informe de la création d’un nouvel Inspector.

Read More

Astuce pour les événements COM en VSTO

Si vous développez sous VSTO, il y a une petite chose à savoir qui peut éviter bien des heures de prise de tête. En effet si on se branche sur un événement provenant d’un objet obtenu par la couche d’Interop Office, il faut systématiquement garder en référence membre l’objet sur lequel vous vous êtes branché.

Imaginons la situation suivante, la création d’un bouton sur une Toolbar, il est tentant comme en Winform de créer une variable locale pour la création du bouton et de lui affecter l’événement dans la foulé, comme le code ci-dessous :

private void CreerToolbarEtBouton()
{
    // Création de la barre
    Office.CommandBar oBar = null;

    oBar = this. Application.ActiveExplorer().CommandBars.Add(MTSInterface._CustomMenuBarName, Office.MsoBarPosition.msoBarTop, Missing.Value, true);
    oBar.Visible = true;

    // Création bouton
    Office.CommandBarButton oButton = null;

    oButton = (Office.CommandBarButton) oBar.Controls.Add(Office.MsoControlType.msoControlButton, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
    oButton.Style = Office.MsoButtonStyle.msoButtonCaption;
    oButton.Caption = "Mon bouton";
    oButton.Visible = true;
    oButton.Click += new Office._CommandBarButtonEvents_ClickEventHandler(this.ButtonOptionsEvent);
}

Read More

Traitement fenêtre d’attente modale sans Thread

Parfois on aimerait bien afficher une fenêtre d’attente pendant un long traitement et que celle-ci soit affichée dans le contexte de notre application, le plus souvent en mode modale. Cependant si on exécute ce code :

using(MaFormAttente oForm = new MaFormAttente())
{
// On affiche la fenêtre d'attente
oForm.Show();
// On effectue le traitement qui justifie la mise en attente
MaFonctionDeTraitement();
}

La fenêtre d’attente va bien s’afficher mais elle n’est pas liée à la Form d’avant, elle n’est pas modale. Cela veut dire que l’utilisateur peut cliquer ailleurs et ainsi masquer la fenêtre d’attente. Ceci n’est pas très ergonomique. Si on affiche la fenêtre d’attente en mode modale :

using(MaFormAttente oForm = new MaFormAttente())
{
// On affiche la fenêtre d'attente
oForm.ShowModal(this);
// On effectue le traitement qui justifie la mise en attente
MaFonctionDeTraitement();
}

Read More

XNA Game Studio 3.0 CTP

Bonjour,

L’équipe XNA vient de rendre disponible une version « Community Technical Preview » de la version 3.0 de ce framework. Dans les changements apportés par cette version on trouve notamment :

  • Le support du framework 3.5.
  • L’intégration d’XNA dans Visual Studio 2008 (et seulement VS2008)
  • Le support du developpement de jeux sur Zune.
  • Le content pipeline pourra accepter directement les fichiers son (wav, wma, mp3)
  • Support pour Direct3D des Shaders Matériel grâce aux fichiers .fbx

La release finale devrait sortir normalement courant de l’été 2008. Vous pouvez trouver la CTP ici.

Read More

Bienvenue sur le Black Blog

Voilà c’est fait, je me suis lancé dans l’aventure du blog à orientation technique. Je ne prétend pas apporter des choses nouvelles, mais je vais plutôt essayer de transmettre les solutions aux problèmes que j’ai rencontrés. En effet, bien souvent quand je rencontre un problème lors d’un développement, je ne trouve pas toujours sur internet une explication claire. Je vais donc m’efforcer de vous donner une solution claire et précise sur ces petits problèmes de programmation du quotidien.

Je ferai aussi une remontée des informations sur les releases et autres produits disponibles sur la toile que je suis. Bien sûr je ne serai pas le premier à le faire remonter, mais bon je serai une partie du relai. De temps en temps je ferai aussi des focus sur des blogs que j’apprécie ou des articles que je trouve intéressants, le but étant de vous faire partager les informations que je juge utiles.

J’espère que ce blog apportera un petit gravillon à la blogosphère et que ceux qui me liront pourront en retirer des informations pertinentes.

Read More