Procédure de création d'un complément COM pour ajouter des fonctionnalités personnalisées à InfoPath

Microsoft Office InfoPath 2007 prend en charge les compléments COM afin d'accroître l'expérience de l'utilisateur en matière d'édition de formulaires. Bien que cette fonctionnalité soit nouvelle dans Office InfoPath 2007, d'autres applications Office, comme Microsoft Office Word et Microsoft Office Excel, prennent en charge des compléments COM depuis Office 2000.

La prise en charge du complément COM dans Office InfoPath 2007 est disponible dans l'environnement d'édition de formulaires. Cet environnement ne peut pas être étendu à l'aide de compléments COM.

Interface IDTExtensibility2

L'environnement d'édition InfoPath offre la prise en charge de l'interface IDTExtensibility2, qui doit être mise en œuvre par les développeurs des compléments COM. IDTExtensibility2 est un objet à double interface qui propose cinq méthodes qui agissent comme des événements dans l'environnement d'édition. Ces méthodes permettent au complément COM de réagir aux conditions de démarrage et de fermeture de l'environnement, reprises dans le tableau suivant.

Interface Description

OnAddInsUpdate (ByVal custom() As Variant)

Lorsqu'un complément est chargé dans l'environnement ou déchargé.

OnBeginShutdown (ByVal custom() As Variant)

Lors de la fermeture de l'environnement.

OnConnection(ByVal Application As Object, ByVal ConnectMode As ext_ConnectMode, ByVal AddInInst As Object, ByVal custom() As Variant)

Lorsqu'un complément est chargé dans l'environnement.

OnDisconnection (ByVal RemoveMode As ext_DisconnectMode, ByVal custom() As Variant)

Lorsqu'un complément est déchargé de l'environnement.

OnStartupComplete (ByVal custom() As Variant)

Lors du démarrage de l'environnement.

Enregistrement de compléments COM

Toutes les applications Office, notamment InfoPath, utilisent le Registre pour répertorier les compléments dans la collection de compléments COM, stocker l'état de connexion, stocker les informations de démarrage ou exiger les informations de chargement. Pour les compléments COM InfoPath, le nom de chaque complément s'affiche sous la clé suivante :

HKEY_CURRENT_USER\Software\Microsoft\Office\InfoPath\AddIns\

Pour que les compléments COM installés puissent être employés par tous les utilisateurs de l'ordinateur client, la clé de Registre se situe dans la ruche du Registre HKLM :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\InfoPath\AddIns\

Le nom de la clé de Registre correspond à l'attribut ProgIdAttribute du complément et contient les valeurs suivantes.

Nom Type Description

FriendlyName

String

Nom qui apparaît dans la boîte de dialogue Compléments COM et répertorié dans la page Compléments du Centre de gestion de la confidentialité.

Description

String

Chaîne qui apparaît lorsque le complément est sélectionné dans le Centre de gestion de la confidentialité.

LoadBehavior

DWORD

Spécifie la méthode de chargement du complément COM. La valeur peut être une combinaison de 0, 1, 2, 8 et 16. Voir le tableau suivant pour plus d'informations.

La valeur DWORD de LoadBehavior doit contenir une valeur qui décrit la méthode de chargement du complément COM dans l'environnement d'édition. La valeur peut provenir du tableau ci-dessous ou être une combinaison des valeurs du tableau. Par exemple, un complément COM créé dans Visual Studio 2005 présente une valeur LoadBehavior de « 3 » chargé au démarrage de l'application et à connecter.

Valeur Description

0

Déconnecté. Le complément apparaît comme inactif dans la boîte de dialogue Complément COM.

1

Connecté. Le complément apparaît comme Actif dans la boîte de dialogue Complément COM.

2

Charger au démarrage. Le complément est chargé et connecté lors du démarrage de l'application hôte.

8

Charger à la demande. Le complément est chargé et connecté lorsque l'application hôte le demande, par exemple lorsqu'un utilisateur clique sur un bouton qui utilise la fonctionnalité du complément.

16

Première connexion. Le complément est chargé et connecté la première fois que l'utilisateur exécute l'application hôte après avoir enregistré le complément.

Création d'un complément COM managé à l'aide de Visual Studio 2005

Pour créer un complément COM managé à l'aide de Microsoft Visual Studio 2005, créez un projet de complément partagé Visual Studio comme suit :

  1. Cliquez sur Démarrer, pointez sur Tous les programmes, pointez sur Microsoft Visual Studio 2005 et cliquez sur Microsoft Visual Studio 2005.

  2. Cliquez sur Nouveau projet dans le menu Fichier.

  3. Dans le volet Types de projet de la boîte de dialogue Nouveau projet, cliquez sur le dossier Autres types de projet, puis cliquez sur Extensibilité.

  4. Dans le volet Modèles, cliquez sur Complément partagé.

  5. Dans la zone Nom, entrez un nom pour le projet de complément partagé.

  6. Dans la zone Emplacement, entrez un chemin d'accès au dossier ou cliquez sur Parcourir et sélectionnez un chemin d'accès au dossier, puis cliquez sur OK. L'Assistant Complément partagé apparaît.

  7. Cliquez sur Suivant dans l'Assistant Complément partagé. La page Sélectionner un langage de programmation apparaît.

  8. Cliquez sur Créer un complément à l'aide de Visual Basic, puis sur Suivant. La page Sélectionner une application hôte apparaît.

  9. Désactivez les cases à cocher en regard de chaque application sauf Microsoft InfoPath, puis cliquez sur Suivant. La page Entrer un nom et une description apparaît.

  10. Dans la zone Nom du complément, entrez le nom de votre complément COM.

  11. Dans la zone Description du complément, entrez la description de votre complément COM et cliquez sur Suivant. la page Choisir les options du complément s'affiche.

  12. Activez les cases à cocher Je souhaite que mon complément soit chargé en même temps que l'application hôte et Mon complément doit être accessible à tous les utilisateurs de l'ordinateur sur lequel il est installé, et pas seulement à la personne qui l'installe.

  13. Cliquez sur Suivant pour revoir la page Résumé, puis cliquez sur Terminer.

Après avoir créé le projet à l'aide de Visual Studio, vous voyez apparaître deux projets dans la fenêtre Explorateur de solutions. Le premier est le projet du complément COM ; le second est un projet d'installation pour le déploiement du complément COM. L'Assistant Complément partagé ajoute uniquement une référence à la bibliothèque d'objets Microsoft Office 12.0. Il est donc nécessaire d'ajouter une référence à la bibliothèque d'objets InfoPath en procédant comme suit :

  1. Double-cliquez sur Mon projet pour afficher les propriétés du projet de complément. Cliquez sur l'onglet Références pour afficher les références ajoutées automatiquement au projet.

  2. Cliquez sur le bouton Ajouter pour afficher la boîte de dialogue Ajouter une référence.

  3. Sous l'onglet COM, double-cliquez sur Bibliothèque de type Microsoft.InfoPath 2.0 et cliquez sur OK.

  4. L'ajout d'une référence à la bibliothèque de type Microsoft InfoPath 2.0 ajoute également des références à trois assemblys qui doivent être supprimés : ADODB, MSHTML et MSXML2. Dans le Explorateur de solutions sous Références, cliquez avec le bouton droit sur chacune des références et cliquez sur Supprimer.

Affichage des paramètres du Registre

Pour afficher les paramètres du Registre qui seront créés lors de l'installation du complément COM, procédez comme suit :

  1. Cliquez avec le bouton droit sur le nœud racine du projet d'installation dans l'Explorateur de solutions, cliquez sur Afficher, puis sur Éditeur et enfin sur Registre.

  2. Dans le volet de gauche, cliquez sur le signe plus pour développer HKEY_LOCAL_MACHINE, Software, Microsoft, InfoPath, AddIns.

  3. Cliquez sur le nom qui correspond à l'Identificateur du programme du projet de complément partagé.

Pour modifier ces propriétés, cliquez avec le bouton droit sur la propriété, cliquez sur la fenêtre Propriétés et modifiez la zone Valeur dans la fenêtre Propriétés.

Compilation et distribution du complément partagé

Pour compiler le complément COM managé pour le tester sur l'ordinateur sur lequel le projet de complément partagé a été mis au point, cliquez avec le bouton droit sur le nœud racine du projet de complément partagé dans l'Explorateur de solutions et cliquez sur Générer. Si le projet est généré sans erreur, vous pouvez démarrer l'environnement d'édition d'InfoPath et commencer à utiliser le complément COM managé. Si une instance d'InfoPath est exécutée, fermez-la avant la génération du projet. Il peut également être nécessaire d'ouvrir la boîte de dialogue Compléments COM pour vérifier que le complément COM est enregistré. Pour ouvrir la boîte de dialogue Compléments COM, procédez comme suit :

  1. Ouvrez l'environnement d'édition InfoPath. La procédure la plus simple est d'ouvrir un modèle de formulaire existant qui va créer un nouveau formulaire sur la base de ce modèle.

  2. Cliquez sur le Centre de gestion de la confidentialité dans le menu Outils.

  3. Cliquez sur la catégorie Compléments à gauche.

  4. Dans la section Gérer au bas de la boîte de dialogue Centre de gestion de la confidentialité, sélectionnez Compléments COM dans la liste et cliquez sur le bouton OK.

  5. Dans la boîte de dialogue Compléments COM, le nom du complément que vous avez créé s'affiche accompagné d'une case à cocher. Si ce n'est pas le cas, le complément COM n'a pas pu être chargé en raison d'une erreur qui sera reprise dans la section Comportement de la boîte de dialogue.

Pour compiler le complément COM managé pour l'utiliser sur un autre ordinateur que celui sur lequel il a été mis au point, vous devez suivre une procédure supplémentaire pour sécuriser le code. Pour plus d'informations sur la sécurisation de projets de complément partagé pour une utilisation avec d'autres ordinateurs, reportez-vous aux trois articles suivants :

Déploiement de compléments COM managés dans Office XP (en anglais)

Utilisation de la solution shim du complément COM pour le déploiement de compléments COM managés dans Office XP (en anglais)

Isolation d'extensions Office à l'aide de l'Assistant Shim COM (en anglais)

RemarqueImportant :

La non-isolation du complément COM peut entraîner des pertes de mémoire et une instabilité de l'application.

RemarqueRemarque

Si .NET Framework ou d'autres assemblys requis pour le projet d'installation ne sont pas encore installés sur les ordinateurs cibles, le fichier .msi peut ne pas s'installer correctement. De même, vous ne pourrez pas distribuer le fichier .msi puis essayer de l'installer. Vous devez également distribuer les autres fichiers de prise en charge dans le même dossier que le fichier .msi original généré par Visual Studio.

Encodage du complément COM

Les événements d'application qui apparaissent dans l'environnement d'édition InfoPath peuvent être capturés par un complément COM. Les événements suivants de l'objet ApplicationEvents peuvent être utilisés par le complément COM pour répondre aux actions de l'utilisateur :

Événement Description

Événement NewXDocument

Lors de la création d'un formulaire.

Événement Quit

Lorsque l'utilisateur quitte InfoPath.

Événement WindowActivate

Lors de l'activation d'une fenêtre de document.

Événement WindowDeactivate

Lors de la désactivation d'une fenêtre de document.

Événement WindowSize

Lors du redimensionnement ou du déplacement d'une fenêtre de document.

Événement XDocumentBeforeClose

Immédiatement avant la fermeture d'un document.

Événement XDocumentBeforePrint

Immédiatement avant l'impression d'un document ouvert.

Événement XDocumentBeforeSave

Immédiatement avant l'enregistrement d'un document ouvert.

Événement XDocumentChange

Lors de la création d'un nouveau formulaire, lors de l'ouverture d'un formulaire existant ou lorsqu'un autre formulaire devient actif.

Événement XDocumentOpen

Lors de l'ouverture d'un document.

Pour capturer ces événements dans le complément COM, vous devez déclarer les variables suivantes au niveau de la classe dans votre classe Connect :

InfoPathApplication = DirectCast( _
   application, Microsoft.Office.Interop.InfoPath._Application3)
InfoPathApplicationEvents = DirectCast( _
   InfoPathApplication.Events, _
   Microsoft.Office.Interop.InfoPath.ApplicationEvents)

La première ligne envoie l'Object de l'application générique reçu par le complément à l'objet _Application3. La seconde ligne envoie la propriété Events de l'objet _Application3 (représentée par la variable InfoPathApplication) à l'objet ApplicationEvents.

Pour créer des gestionnaires d'événements, sélectionnez InfoPathApplicationEvents dans le menu déroulant Nom de classe en haut de la fenêtre Visual Studio, puis sélectionnez l'événement à gérer dans le menu déroulant Nom de la méthode en haut de la fenêtre Visual Studio. Par exemple, si vous devez contrôler le moment de l'enregistrement d'un formulaire, vous devez gérer l'événement XDocumentBeforeSave. La sélection de XDocumentBeforeSave dans le menu déroulant Nom de la méthode insère automatiquement la procédure suivante :

Private Sub InfoPathApplicationEvents_XDocumentBeforeSave( _
   ByVal pDocument As Microsoft.Office.Interop.InfoPath._XDocument, _
   ByRef pfCancel As Boolean) _
   Handles InfoPathApplicationEvents.XDocumentBeforeSave

End Sub

Tous les événements de l'objet ApplicationEvents peuvent être gérés par le complément COM à l'aide de la même méthode.

Voir aussi

Ajouts de la communauté

Afficher: