Let There Be Code RSS 2.0
# Saturday, May 15, 2010

image

Parmi 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()
  4.         : base(null)
  5.     {
  6.     }
  7.     public static stdole.StdPicture ConvertToStdPicture(System.Drawing.Image image)
  8.     {
  9.         return (stdole.StdPicture)GetIPictureDispFromPicture(image);
  10.     }
  11. }

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. }
Saturday, May 15, 2010 5:03:02 PM (Romance Daylight Time, UTC+02:00)  #    Voir Commentaires
C# | VSTO
Archive
<May 2010>
SunMonTueWedThuFriSat
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2010
Benoît Laut
Sign In
All Content © 2010, Benoît Laut
DasBlog theme 'Business' created by Christoph De Baene (delarou)