Création de volets des tâches personnalisés Office (2007)

Paru le 23 octobre 2006

Mark O'Hara
Frank Rice
Microsoft Corporation

S'applique à :
Suites Microsoft Office 2007
Microsoft Office Access 2007
Microsoft Office Excel 2007
Microsoft Office InfoPath 2007
Microsoft Office Outlook 2007
Microsoft Office PowerPoint 2007
Microsoft Office Word 2007

Résumé : La version 2007 du système Microsoft Office présente des volets des tâches personnalisés vous offrant les outils pour mettre à disposition les fonctions et les informations dont vos clients ont besoin au moment et là où ils le souhaitent. Apprenez à utiliser des volets des tâches personnalisés dans vos applications. (14 pages imprimées)

Lire cet article en anglais 

Sur cette page

Présentation des volets des tâches personnalisés Présentation des volets des tâches personnalisés
Création d'une expérience utilisateur flexible Création d'une expérience utilisateur flexible
Scénarios de volets des tâches Scénarios de volets des tâches
Fonctionnement des volets des tâches personnalisés Fonctionnement des volets des tâches personnalisés
Création de volets des tâches personnalisés en tant que compléments COM Création de volets des tâches personnalisés en tant que compléments COM
Conclusion Conclusion
Ressources supplémentaires Ressources supplémentaires

Présentation des volets des tâches personnalisés

La version 2007 du système Microsoft Office présente un volet des tâches personnalisé programmable qui modifie la manière dont vous développez des solutions pour des documents dans la version 2007 du système Microsoft Office. Cet article explore le volet des tâches et traite des solutions et des scénarios à l'aide du volet des tâches.

Les produits suivants peuvent implémenter des volets des tâches personnalisés :

  • Microsoft Office Access 2007

  • Microsoft Office Excel 2007

  • Microsoft Office InfoPath 2007 (bêta 2)

  • Microsoft Office Outlook 2007

  • Microsoft Office PowerPoint 2007

  • Microsoft Office Word 2007

Vous pouvez créer des volets des tâches dans toute langue prenant en charge COM et vous permettant de créer des fichiers DLL, par exemple Microsoft Visual Basic 6.0, Microsoft Visual Basic .NET, Microsoft Visual C++, Microsoft Visual C++ .NET et Microsoft Visual C. Cependant, VBA ne prend pas en charge la création de volets des tâches personnalisé. Les volets des tâches personnalisés utilisent d'autres technologies avec lesquelles vous êtes déjà familiarisés, par exemple les contrôles Microsoft ActiveX.

Création d'une expérience utilisateur flexible

Les volets des tâches, présentés dans Microsoft Office XP, permettent aux utilisateurs d'ajouter et de manipuler du contenu dans leurs documents. Par exemple, les utilisateurs peuvent effectuer des requêtes et insérer des informations à partie de sources externes dans leurs documents, ajouter des graphiques complets, formater un document, insérer des données XML structurées à l'aide de fichiers XSD et exécuter de nombreuses autres tâches à l'aide des volets des tâches.

Dans la version 2007 d'Office, des volets des tâches améliorés fournissent un moyen simple et flexible vous permettant de créer et de déployer une fonctionnalité spécifique à l'application dans des volets des tâches entièrement personnalisables que les utilisateurs peuvent prélever vers différentes zones de l'écran. Les utilisateurs peuvent afficher plusieurs volets des tâches personnalisés lorsqu'ils en ont besoin et les contrôler individuellement. Étant donné que les volets des tâches sont déployés comme des compléments COM (Component Object Model), vous pouvez ajouter des contrôles tels que des boutons standard sur la nouvelle interface utilisateur ruban d'Office 2007 permettant aux utilisateurs d'afficher des volets des tâches.

Scénarios de volets des tâches

Voici juste quelques exemples de scénarios utilisant des volets des tâches personnalisés :

  • Dans l'entreprise fictive Fabrikam Corporation, les employés enregistrent des documents en fonction du sujet traité par le document. Par exemple, si un employé crée un rapport de vente dans Office Excel 2007, l'employé enregistre alors le fichier sur un serveur réseau stockant les informations du rapport de vente. Même si cela permet aux responsables de trouver les informations facilement, les employés doivent rechercher manuellement les informations du serveur.

    Nicole, une analyste et développeur d'outils légers chez Fabrikam, pense qu'il existe un meilleur moyen d'aider les employés à découvrir ces informations. Elle décide d'utiliser un volet des tâches personnalisé. Comme Nicole a créé et déployé des compléments COM auparavant, elle connaît le processus. Elle crée un contrôle ActiveX personnalisé, inséré dans Microsoft Windows Form, contenant un contrôle déroulant et un bouton. La zone déroulante aide l'utilisateur à trouver rapidement le serveur correct.

    Remarque : Windows Forms est la bibliothèque de développement dans Microsoft .NET Framework 1.1 . pour la construction d'applications complètes basées sur Microsoft Windows.

Une fois que l'utilisateur termine le document, il affiche le volets des tâches de Nicole, sélectionne le serveur adéquat , puis clique sur Enregistrer. Comme les utilisateurs n'ont plus besoin de rechercher les informations du serveur manuellement, ils sont davantage productifs et libérés d'une tâche répétitive.

  • Chris, un développeur tiers chez l'entreprise fictive Contoso Incorporated, souhaite intégrer et exposer du contenu actuellement stocké sur un serveur de gestion. Il veut que ce contenu soit disponible d'une façon qui n'interfère pas avec la manière dont ses clients travaillent Après quelques recherches, il décide de développer un volet des tâches personnalisé en code géré à l'aide d'outils dans Visual Studio Tools pour le système Microsoft Office (Visual Studio Tools for Office). Il utilise Visual Studio Tools for Office version 3.0 pour ajouter le contrôle ActiveX car il est familiarisé avec ces outils. Il fournit également un accès facile à son volet des tâches personnalisé en ajoutant des boutons à l'interface utilisateur d'Office 2007 Ruban. Le ruban donne contrôle à l'utilisateur sur le moment d'affichage du volet des tâches. Il se connecte numériquement aux compléments et aux contrôles ActiveX, puis aux packages et déploie le volet des tâches personnalisé pour chaque département.

    Remarque : Visual Studio Tools for Office version 3.0 n'est pas disponible pour Beta 2.

  • Jan souhaite développer une solution avec des volets des tâches personnalisés qu'elle peut vendre et rendre disponible pour les clients comme échantillon téléchargeable à partir du Web. À l'aide de l'infrastructure du volet des tâches personnalisé, Jan crée facilement un complément COM et un contrôle ActiveX qu'elle met dans un package échantillon téléchargeable sur Internet. Pour plus de sécurité, elle connecte numériquement le complément et le contrôle, puis déploie le package sur un serveur Web.

Fonctionnement des volets des tâches personnalisés

Vous créez des volets des tâches personnalisés à l'aide des compléments COM dans du code géré ou non. En plus de l'interface IDTExtensibility2 requise pour tous les compléments COM, le complément COM pour le volet des tâches personnalisé doit implémenter l'interface ICustomTaskPaneConsumer, qui expose la méthode CTPFactoryAvailable. La syntaxe de cette méthode est la suivante :

Microsoft.Office.Core.ICustomTaskPaneConsumer.CTPFactoryAvailable 
(Microsoft.Office.Core.ICTPFactory CTPFactoryInst)

L'interface ICTPFactory expose la méthode CreateCTP. La syntaxe de cette méthode est la suivante :

Microsoft.Office.Core.ICTPFactory.CreateCTP (string CTPAxID, string CTPTitle, [Optional] 
object CTPParentWindow) As CustomTaskPane

La création d'un volet des tâches personnalisé est simple. D'abord, vous créez un projet de contrôle ActiveX avec des contrôles Windows Form et d'autres contrôles ActiveX. Windows Form et les contrôles représentent l'interface visualisée par les utilisateurs.

Remarque : Si vous utilisez Windows Forms dans votre contrôle ActiveX, il vous faut également Microsoft .NET Framework 2.0 installé. Si vous créez votre contrôle ActiveX en code non géré, aucune exigence n'est requise pour .NET Framework.

Vous pouvez utiliser les contrôles ActiveX pré-générés achetés ou téléchargés sur Internet. Cependant, les contrôles pré-générés ont leur limites, par exemple, une inaptitude à repeindre l'écran après les modifications de hauteur ou de largeur. Vous pouvez expérimenter afin de déterminer si un contrôle pré-généré est compatible avec les volets des tâches personnalisés.

Ensuite, vous créez le complément COM appelant Windows Form. Le complément contient le code pour créer le volet des tâches personnalisé. Le complément peut être chargé à différents points :

  • Au démarrage de l'application

  • Lorsque l'utilisateur le charge explicitement via la boîte de dialogue COM Add-ins

  • À la demande, par exemple lorsque l'utilisateur clique sur un bouton de la barre d'outils personnalisée

Lors du chargement, l'application appelle la méthode CTPFactoryAvailable. Cette méthode passe une instance de l'objet CTPFactory, qui à son tour expose la méthode CreateCTP via l'interface ICTPFactory. CreateCTP prend l'ID de classe (CLSID) ou l'ID de programme (ProgID) du contrôle ActiveX. CreateCTP renvoie un objet CustomTaskPane représentant un volet des tâches personnalisé unique. Cette instance de l'objet CustomTaskPane reste en mémoire jusqu'à ce que le complément appelle la méthode CustomTaskPane.Delete ou jusqu'à ce que le complément soit déconnecté. Après avoir créé le volet des tâches, vous devez explicitement le rendre visible en définissant la propriété Visible sur True.

Le volet des tâches reste visible jusqu'à ce que vous le fassiez disparaître explicitement, jusqu'à ce que vous définissiez la propriété Visible de l'objet CustomTaskPane sur False, ou jusqu'à ce que vous appeliez la méthode Delete de l'objet CustomTaskPane.

Éventuellement, CreateCTP accepte un objet d'argument Window, CTPParentWindow. Le complément utilise cet argument pour spécifier une fenêtre de document dans laquelle héberger le volet des tâches. Dans la plupart des cas, la définition de cet argument associe le volet des tâches à un document spécifique. Si cet argument n'est pas présent, le complément crée l'objet CustomTaskPane dans la fenêtre active de l'application hôte. Vous saisissez ce paramètre en tant qu'Object (Variant dans C++) car l'objet transmis est différent selon l'application hôte :

  • Dans Word, un objet Window

  • Dans Excel, un objet Window

  • Dans PowerPoint, un objet DocumentWindow

  • Dans InfoPath, un objet Window

  • Dans Outlook, un objet Inspector ou Explorer

En théorie, vous pouvez créer autant de volets des tâches que vous le souhaitez. Seuls l'espace de l'écran et les restrictions de mémoire limitent le nombre de volets. Cependant, pour minimiser les restrictions, publiez l'instance CTPFactory et tout volet des tâches créé lors de cette instance dans votre code d'arrêt. Cette action est exécutée lors de l'événement OnDisconnection ou OnBeginShutdown de l'interface IDTExtensibility2.

Un objet CustomTaskPane représente une trame du volet de tâche unique. Le tableau suivant indique les méthodes, propriétés et événements pour l'objet.

Tableau 1. Paramètres pour l'objet CustomTaskPane

Type de membre

Nom

Type

Remarques

Propriété

Application

Objet

Lecture seule. Objet Application de l'application hôte.

Propriété

Fenêtre

Objet

Lecture seule. Objet Window parent. Le type dépend de l'application hôte.

Propriété

Visible

Booléen

Contrôle la visibilité dans l'interface utilisateur.

Propriété

ContentControl

Objet

Lecture seule. L'instance de contrôle ActiveX affichée dans la trame du volet des tâches personnalisé. Cette propriété est automatiquement définie lors de l'appel de CreateCTP.

Propriété

Title

LPSTR

Lecture seule. Le titre affiché pour le volet des tâches. Cette propriété est automatiquement définie lors de l'appel de CreateCTP. Il s'agit de la propriété par défaut pour l'interface utilisateur.

Propriété

DockPosition

MsoCTPDockPosition

Spécifie Right, Left, Top, Bottom ou Floating. La valeur par défaut est Right quand vous utilisez une langue d'interface utilisateur de droite à gauche et Left si vous utilisez un langue de gauche à droite.

Propriété

DockPositionRestrict

MsoCTPDockPositionRestrict

Spécifie une restriction pour l'orientation d'un volet des tâches personnalisé, par exemple horizontal ou vertical. La valeur par défaut est None.

Méthode

Delete

 

Supprime le volet des tâches, ce qui libère également l'instance de contrôle ActiveX.

Événement

VisibleStateChange

 

Se produit lorsque la propriété Visible est modifiée. Vous pouvez vérifier sa valeur pour déterminer le nouvel état.

Événement

DockPositionStateChange

 

Se produit lorsque la propriété DockPosition est modifiée. Vous pouvez vérifier sa valeur pour déterminer le nouvel état.

Énumeration

MsoCTPDockPosition

 

msoCTPDockPositionLeft = 0,
msoCTPDockPositionTop = 1,
msoCTPDockPositionRight = 2,
msoCTPDockPositionBottom = 3,
msoCTPDockPositionFloating = 4

Énumeration

MsoCTPDockPositionRestrict

 

msoCTPDockPositionRestrictNone = 0,
msoCTPDockPositionRestrictNoChange = 1
msoCTPDockPositionRestrictNoHorizontal = 2,
msoCTPDockPositionRestrictNoVertical = 3

Création de volets des tâches personnalisés en tant que compléments COM

Dans les sections suivantes, vous créez un volet des tâches personnalisé simple pour Office Word 2007. Le volet des tâches permet aux utilisateurs d'ajouter du texte à une zone de texte, puis de cliquer sur un bouton pour renseigner le document à la position actuelle du curseur.

Vous créez le volet des tâches personnalisé à partir d'un complément COM et d'un contrôle ActiveX. La plupart du travail pour créer le volet des tâches personnalisé se produit dans le complément ; le contrôle ActiveX se contente d'héberger l'interface utilisateur. Vous pouvez développer le volet des tâches à l'aide de code géré en Visual C.

Création de volets des tâches personnalisés avec Visual C

Dans cette section, vous créez le contrôle ActiveX pour le volet des tâches personnalisé. Le contrôle est constitué d'un formulaire contenant une étiquette, une zone de texte et un bouton.

Échantillon de volet des tâches personnalisé dans Word
Figure 1. Échantillon de volet des tâches personnalisé dans Word

Il s'agit du processus général (décrit avec plus de détails dans la section suivante) pour créer un contrôle ActiveX pour le volet des tâches personnalisé :

  • Créez un projet bibliothèque de contrôles Windows Visual C

  • Insérez un formulaire, puis ajoutez une étiquette, une zone de texte et un bouton de contrôle.

  • Ajoutez une interface publique au projet notifiant le complément COM lorsque l'on clique sur le bouton.

  • Ajoutez du code à la classe de contrôle pour implémenter l'interface.

  • Testez le projet.

Création du projet de bibliothèque de contrôles Windows

À l'aide de la procédure décrite dans cette section, créez le contrôle ActiveX à insérer dans le volet des tâches personnalisé.

Pour créer un projet de bibliothèque de contrôles Windows

  • Démarrez Microsoft Visual Studio 2005.

  • Dans le menu Fichier, cliquez sur Nouveau projet.

  • Dans la boîte de dialogue Nouveau projet, sélectionnez l'échantillon de projet bibliothèque de contrôles Windows dans la liste Projets Visual C. Saisissez SampleActiveX dans la zone Nom et cliquez sur OK.

  • Dans l'Explorateur de solutions, cliquez à l'aide du bouton droit de la souris sur UserControl1.cs, puis sélectionnez Afficher le code.

  • Dans l'Explorateur de solutions, cliquez à l'aide du bouton droit de la souris sur SampleActiveX, puis cliquez sur Propriétés.

  • Dans l'onglet SampleActiveX, cliquez sur Générer et sélectionnez la case Inscrire pour COM interop.

  • Cliquez à l'aide du bouton droit de la souris sur l'onglet SampleActiveX, puis cliquez sur Fermer.

  • Dans le menu Fichier, sélectionnez Enregistrer tout. Dans la boîte de dialogue Enregistrer le projet, cliquez sur le bouton Enregistrer.

La procédure suivante ajoute une référence à Bibliothèque d'objets Microsoft Office 12.0 et aux PIA (Primary Interop Assemblies) d'Office Word 2007:

  • Dans l'Explorateur de solutions, cliquez à l'aide du bouton droit de la souris sur le nœud Références, puis cliquez sur Ajouter une référence.

  • Cliquez sur l'onglet COM, puis faites défiler vers le bas jusqu'à Bibliothèque d'objets Microsoft Office 12.0 et cliquez sur OK.

  • Les nouvelles références s'affichent dans le nœud Références dans l'Explorateur de solutions.

Le projet est désormais prêt pour que vous ajoutiez des contrôles au formulaire.

Ajout de contrôles Windows au contrôle personnalisé

Dans cette section, ajoutez des contrôles au contrôle créé dans la section précédente.

Pour ajouter des contrôles au concepteur de formulaires

  • Si le concepteur n'est pas déjà affiché dans l'Explorateur de solutions, cliquez sur UserControl1.cs, puis sur Concepteur de vues.

  • Dans le menu Affichage, cliquez sur Boîte à outils.

  • Dans l'onglet Contrôles communs de la boîte à outils, ajoutez les contrôles dans le Tableau 2 de la surface de travail, puis définissez leurs propriétés.

Table 2. Contrôles Windows Forms pour le contrôle personnalisé

Type de contrôle

Propriété Text

Propriété Name

Étiquette

Saisissez le texte

label1

Zone de texte

Vide

txtInputText

Bouton

Cliquez pour insérer

btnInsert

  • Cliquez sur la zone de texte, puis dans la fenêtre Propriété, définissez la propriété Multiligne sur True.

Ajout de code au projet

Ensuite, ajoutez du code qui implémente les gestionnaires d'événements, pour accorder la fonctionnalité aux contrôles.

Pour implémenter le bouton, cliquez sur le gestionnaire d'événements et initialisez la classe UserControl1

  • Si la fenêtre Code n'est pas déjà affichée dans l'Explorateur de solutions, cliquez à l'aide du bouton droit sur UserControl1.cs, puis sur Afficher le code.

  • Localisez l’instruction namespace SampleActiveX, puis ajoutez les lignes suivantes au-dessus :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;

Ces instructions créent des alias pour l'espace de noms et les types d'importation définis dans d'autres espaces de noms.

  • Après l'accolade ouvrante, juste en dessous de l'instruction namespace SampleActiveX, ajoutez le code suivant :
public interface SimpleActiveXControlInterface
{
   event InsertTextEventHandler InsertTextClicked;
}
[ComVisible(true)]

Le contrôle ActiveX dispose d'une interface publique, SampleActiveXControlInterface, avec un événement unique, InsertTextClicked, pour notifier le complément lorsque l'utilisateur clique sur le bouton. Vous pouvez inclure des événements, méthodes, objets supplémentaires requis ici par votre complément.

  • Spécifiez que la classe myControl implémente l'interface SampleActiveXControlInterface en remplaçant l'instruction classe partiale publique UserControl1 : UserControl par le code suivant :
  public partial class myControl : System.Windows.Forms.UserControl, SampleActiveXControlInterface
  • Remplacez l'instruction public UserControl1() par le code suivant :
  public myControl()
{
   // This call is required by the Form Designer in Windows.Forms.
   InitializeComponent();

   btnInsert.Click += new EventHandler(btnInsert_Click);
}

Ensuite, ce code initialise le contrôle et défini le gestionnaire d'événements pour le bouton.

  • En dessous de l'accolade de fermeture de la routine public UserControl1, ajoutez le gestionnaire d'événement pour le bouton :
private void btnInsert_Click(object sender, EventArgs e)
{
   string textBoxText = this. txtInputText.Text;
   this.InsertTextClicked(this, textBoxText);
}
  • Juste en-dessous de la procédure que vous avez ajoutée lors de l'étape précédente, ajoutez le code suivant :
public delegate void InsertTextEventHandler(object sender, string insertTextArgs);

Ce code définit un délégué pour le gestionnaire d'événements du bouton que le projet de complément utilise.

  • Dans le menu Fichier, cliquez sur Enregistrer tout, puis cliquez sur Fermer le projet.

Ensuite, vous devez enregistrer le contrôle ActiveX.

  • Ouvrez une fenêtre d'invite de commande : cliquez sur Démarrer, placez le curseur sur Tous les programmes, sélectionnez Accessoires, puis cliquez sur Invite de commande.

  • Dans la fenêtre d'invite de commande, saisissez :

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm" /codebase"C:\chemin de votre projet\SampleActiveX.dll"

Création de compléments partagés pour les volets des tâches personnalisés

Vous pouvez utiliser l'Assistant de Complément partagé dans Visual Studio 2005 pour créer un complément qui génère le volet des tâches personnalisé une fois chargé.

Le complément partagé dans Visual Studio 2005 est un assembly .NET dont l'extension est .dll. Même s'il ne s'agit pas d'une DLL COM, Visual Studio 2005 ajoute suffisamment d'informations pour ressembler à un complément COM lorsque les applications de la version Office 2007 chargent le complément lors de l'exécution du programme.

  • Dans le menu Fichier, cliquez sur Nouveau projet.

  • Créez un projet Complément partagé.

Vous pouvez trouver ce type de projet en cliquant sur Autres types de projets dans le volet Types de projet, puis cliquez sur Extensibilité.

  • Saisissez SampleCTPAddin dans la zone Nom et cliquez sur OK.

  • Dans l'Assistant de Complément partagé, cliquez sur Suivant à la page Bienvenue dans l'Assistant Complément.

  • Dans le volet Sélectionner un langage de programmation, sélectionnez Créer un complément à l'aide de Visual C.

  • Sur la page Sélectionner une application hôte, désactivez toutes les cases sauf Microsoft Word, puis cliquez sur Suivant.

Cela spécifie l'application exécutant le complément après sa création.

  • Sur la page Entrer un nom et une description, saisissez Complément CTP Addin comme nom du complément. Désactivez la case de description, puis cliquez sur Suivant.

Ce nom s'affiche dans la liste Compléments disponibles de la boîte de dialogue Gestionnaire de compléments. Elle informe les utilisateurs de l'activité du complément, de son fonctionnement et d'autres informations importantes.

  • Dans le volet Choisir les options du complément, sélectionnez la case Je souhaite que mon complément soit chargé en même temps que l'application hôte., puis cliquez sur Suivant.

  • Sélectionnez Terminer pour créer le complément.

L'Assistant de Complément partagé enregistre automatiquement le complément avec Microsoft Windows sur votre ordinateur de développement.

Remarque : Vous pouvez enregistrer manuellement le complément à l'aide du fichier Regasm.exe fourni par .NET Framework version 2.0. À l'aide de l'emplacement par défaut, saisissez la commande suivante dans une fenêtre d'invite de commande :

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm" /codebase"C:\chemin de votre projet\SampleActiveX.dll"

Ajout de fonctionnalités aux compléments

L'ajout des procédures suivantes au projet SampleCTPAddin rend votre complément utile en définissant son comportement lorsqu'il est chargé ou déchargé, ce qui se produit lorsque Office Word 2007 démarre et se ferme. Les procédures créent également une instance du volet des tâches et ajoutent le code qui rend le bouton opérationnel.

Pour ajouter une référence à la Bibliothèque d'objets Microsoft Office 12.0 et à PIA (Primary Interop Assemblies) dans Word 2007

  • Dans l'Explorateur de solutions, cliquez à l'aide du bouton droit de la souris sur le nœud Références, puis cliquez sur Ajouter une référence.

  • Dans la boîte de dialogue Ajouter une référence, cliquez sur l'onglet .NET.

  • Faites défiler et sélectionnez Microsoft.Office.Interop.Word, puis cliquez sur OK.

  • Affichez à nouveau la boîte de dialogue Ajouter une référence. Dans l'onglet COM, accédez à Bibliothèque d'objets Microsoft Office 12.0, sélectionnez-la puis cliquez sur OK.

  • Le projet utilise l'objet MessageBox pour reporter le statut lorsque le complément est chargé ou déchargé. Si elle n'existe pas déjà, vous devez définir une référence pour le composant System.Windows.Forms dans l'onglet .NET de la boîte de dialogue Ajouter une référence, en suivant les procédures décrites auparavant.

Les nouvelles références s'affichent dans le nœud Références du projet.

  • Dans l'Explorateur de solutions, cliquez à l'aide du bouton droit de la souris sur Connect.cs et cliquez sur Afficher le code.

  • Sous l'instruction namespace SampleCTPAddin, ajoutez le code suivant :

  using System;
using Microsoft.Office.Core;
using Extensibility;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using SampleActiveX;
using WordPia = Microsoft.Office.Interop.Word;
  • À la fin de l'instruction de classe publique Connecter : après Extensibility.IDTExtensibility2, saisissez une commande ICustomTaskPaneConsumer.

L'interface ICustomTaskPaneInterface dispose d'une méthode, CTPFactoryAvailable, qui renvoie une instance de l'objet CTPFactory pour l'application hôte.

Remarque : Dans ce projet, vous avez été amené à ajouterune référence à l'objet d'application hôte. La méthode OnConnection définit l'objet applicationObject dans l'instance de Office Word 2007 hébergeant le volet des tâches personnalisé. Cela accorde au complément l'accès complet au modèle d'objet dans Office Word 2007.

  • Juste sous l'instruction de classe publique Connecter(), ajoutez le code suivant pour créer un objet pointant sur la classe UserControl1 et afin de créer une variable pour PIA (Primary Interop Assemblies) dans Office Word 2007 :
private myControl sampleAX = null;
private WordPia.Application applicationObject;
  • Dans la procédure OnConnection, remplacez les instructions par ce code :
  applicationObject = (WordPia.Application)application;
addInInstance = addInInst;
MessageBox.Show("SampleCTPAddin is loaded.");

L'instruction MessageBox vous assure que le complément se charge correctement dans Office Word 2007.

  • Dans la procédure OnBeginShutDown, ajoutez le code suivant :
  MessageBox.Show("SampleCTPAddin is unloading.");
  • Faites défiler vers le bas jusqu'à ce que l'instruction private object applicationObject; s'affiche puis supprimez-la.

  • Après l'instruction private object addInInstance;, ajoutez le code suivant, qui implémente la méthode CTPFactoryAvailable de l'interface ICustomTaskPaneConsumer et renvoie un objet CTPFactoryInst.

  region ICustomTaskPaneConsumer Members

object missing = Type.Missing;
public CustomTaskPane CTP = null;

public void CTPFactoryAvailable(ICTPFactory CTPFactoryInst)
{
   CTP = CTPFactoryInst.CreateCTP("SampleActiveX.myControl", "Task Pane Example", missing);   
   sampleAX = (myControl)CTP.ContentControl;
   sampleAX.InsertTextClicked += new InsertTextEventHandler(sampleAX_InsertTextClicked);
   CTP.Visible = true;
}

endregion

Le code appelle la méthode CreateCTP de l'objet CTPFactoryInst pour créer un nouvel objet Custom Task Pane. L'objet dispose du contrôle SimpleActiveX référencé par la valeur ProgId. Bien que cela crée le volet des tâches personnalisé, le volet des tâches n'est pas visible jusqu'à ce que vous définissiez la propriété CTP.Visible sur True.

Le complément utilise une référence au contrôle SampleActiveX et le code suivant définit l'objet sampleAX sur le contrôle ActiveX :

     sampleAX = (myControl) CTP.ContentControl;
  • Ajoutez le code suivant, qui insère le texte dans le document lorsque l'utilisateur clique sur le bouton :
  private void sampleAX_InsertTextClicked(object sender, string insertTextArgs)
{
   WordPia.Range myRange = null;
   myRange = applicationObject.ActiveDocument.Content;
   myRange.InsertAfter(insertTextArgs);

}

Pour générer et tester le complément

  • Dans le menu Fichier, sélectionnez Enregistrer tout pour enregistrer le projet.

  • Dans le menu Générer, cliquez sur Générer la solution.

Si vous pouvez compiler le projet sans erreurs de génération, le code ajoute automatiquement le complément au registre à l'emplacement suivant :

HKLM\Software\Microsoft\Office\Word\Addins\SampleCTPAddin.Connect

Si le complément ne se charge pas lorsque vous démarrez Office Word 2007, vérifiez l'existence cette clé de registre. Dans la clé vous devez voir un DWORD nommé LoadBehavior dont la valeur est 0x0000003(3).

ImportantAvant de modifier le registre, créez une sauvegarde. De plus, assurez-vous de savoir comment restaurer le registre si un problème se produit. Pour plus d'informations sur la sauvegarde, la restauration et la modification de registre, reportez-vous à l'article de la Base de connaissances Microsoft Description du registre de Microsoft Windows.

  • Pour tester le complément, démarrez Word 2007.

  • Lorsqu'un message indiquant que SampleCTPAddin est en cours de chargement, cliquez sur OK.

  • Lorsque le volet des tâches Exemple de volet des tâches ancré dans la partie droite de la fenêtre active, cliquez dans la zone de texte, puis saisissez du texte.

  • Cliquez sur le bouton Cliquez pour insérer pour insérer le texte que vous avez saisi dans le document au point de sélection.

  • Faites glisser le volet des tâches vers un autre côté de la fenêtre active.

Conclusion

Depuis que les volets des tâches ont été introduits dans Office XP, ils sont devenus une fonctionnalité importante de Microsoft Office. Les volets des tâches remplacent de nombreuses boîtes de dialogue difficiles à trouver et souvent truffées d'options qui ne sont pas utiles pour la tâche en cours. Les volets des tâches personnalisés de la version 2007 du système Microsoft Office proposent des fonctions utiles aux utilisateurs, à l'endroit et au moment où ils en ont besoin. Les volets des tâches personnalisés fournissent de manière personnalisée davantage de fonctionnalités aux utilisateurs sans occuper trop d'espace de travail. Les volets des tâches personnalisés sont une nouveauté importante dans la boîte à outils du développeur Office.

Ressources supplémentaires

Pour plus d'informations sur la création d'applications personnalisées afin d'afficher du contenu et des contrôles, reportez-vous aux ressources suivantes. Bien que ces articles soient spécifiques à Office XP, ils s'appliquent toujours à la version 2007 du système Microsoft Office.