Nouveautés pour les addins Outlook 2010 : MAPIFolder.SetCustomIcon

imageParmi les nombreuses nouveautés du développement d’addin VSTO, nous retrouvons bien évidemment le Ribbon, qui est maintenant disponible depuis l’Explorer d’Outlook 2010.
A l’ombre de cette grande nouveauté, d’autres font leur apparition mais passent un peu inaperçu.

Dans le développement d’addin VSTO pour Outlook 2010, il est aujourd’hui possible de définir des icones personnalisées pour certains répertoires.  Comme vous pouvez le voir sur l’image ci-contre, j’ai défini une icône custom pour 2 de mes répertoires. La classe MAPIFolder possède maintenant une méthode SetCustomIcon qui prend en paramètre une instance de la classe StdPicture :

  1. ///<summary>
  2. /// Sets a custom icon that is specified by Picture for the folder
  3. ///</summary>
  4. ///<param name= »Picture »>Specifies the custom icon for the folder</param>
  5. void SetCustomIcon(stdole.StdPicture Picture);

 

Afin d’obtenir une instance de type StdPicture à partir d’un objet de type Bitmap (ou Image), il faut créer une classe qui hérite de AxHost. Cette classe est un wrapper de contrôle ActiveX et possède une méthode statique (et protected) qui se nomme GetIPictureDispFromPicture :

  1. sealed public class ConvertImage : System.Windows.Forms.AxHost
  2. {
  3.     private ConvertImage() : base(null)
  4.     {
  5.     }
  6.     public static stdole.StdPicture ConvertToStdPicture(System.Drawing.Image image)
  7.     {
  8.         return (stdole.StdPicture)GetIPictureDispFromPicture(image);
  9.     }
  10. }

 

Le tour est joué, il n’y a plus qu’à faire appel à la méthode SetCustomIcon :

  1. private void SetCustomIcon(MAPIFolder folder, System.Drawing.Bitmap image)
  2. {
  3.     folder.SetCustomIcon(ConvertImage.ConvertToStdPicture(image));
  4. }

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s