EXEMPLE : Comaddin.exe Office 2000 complément COM écrit en Visual C++

Traductions disponibles Traductions disponibles
Numéro d'article: 230689 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

COMAddIn.exe est un fichier exécutable auto-extractible qui montre la construction anOffice 2000 ou Office XP COM Component Object Model () complément à l'aide de Visual C++. Un complément COM est un serveur de COM intra-processus spécifiquement conçu pour s'exécuter dans le contexte des applications d'un ou plusieurs Office 2000 ou Office XP. LES compléments COM fournissent une méthode souple, efficace et uniforme de l'extension de l'environnement de bureau.

LES compléments COM sont créés à l'aide de n'importe quel langage de programmation que vous pouvez créer des composants COM, tels que Visual Basic, C/C++, C# et l'édition de Office 2000 Developer ou Microsoft Office XP Developer de Microsoft Visual Basic pour Applications (VBA).

Cet exemple illustre les étapes nécessaires pour créer un complément COM dans Visual C++. L'exemple crée un shell de complément de base que vous pouvez étendre pour créer votre propre complément Office.

Plus d'informations

Le fichier suivant est disponible en téléchargement à partir du centre de téléchargement Microsoft :
COMAddIn.exe
Date de publication: 4 janvier 1999.

Pour plus d'informations sur la façon de télécharger des fichiers de Support Microsoft, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
119591 Comment obtenir des fichiers de support technique Microsoft auprès des Services en ligne
Microsoft a analysé ce fichier contre les virus. Microsoft a utilisé les logiciels de détection de virus les plus récents qui étaient disponibles à la date à laquelle le fichier a été publié. Le fichier est stocké sur des serveurs sécurisés qui permettent d'éviter toute modification non autorisée du fichier.

Informations du fichier d'exemple

COMAddIn.exe extrait les fichiers suivants dans le dossier de votre choix :
   FileName                    Size
   ----------------------------------------
   
   TestAddin.dsw               541 bytes
   TestAddin.dsp               4.11 KB 
   ComAddin.h                  6.19 KB
   ComAddin.cpp                8.38 KB
   ComAddin.def                205 bytes
   MyAddin.cpp                 10.6 KB
   MyAddinCF.cpp               2.18 KB
   BttnHandler.cpp             6.27 KB

IDTExensibility2

Pour être un complément Office un objet COM, il doit prendre en charge l'interface IDTExensibility2 comme indiqué dans l'Add-In Designer bibliothèque de Type Microsoft (Msaddndr.dll). Cette interface a été déclarée dans ComAddin.h aucune importation n'est nécessaire. Tous les compléments COM héritent de cette interface et doivent implémenter chacune de ses cinq méthodes :
  • OnConnection
  • OnDisconnection
  • OnAddInsUpdate
  • OnStartupComplete
  • OnBeginShutdown
Lorsqu'un complément COM est chargé pour la première fois, un appel QueryInterface est fait pour IDTExtensibility2. Si cet appel échoue, le complément est déchargé. Si l'appel aboutit, l'application hôte utilise la référence retournée pour avertir des modifications apportées à son état. Une description de chaque méthode ci-dessous.

OnConnection

L'événement OnConnection se déclenche dès que le complément COM est connecté. Le complément peut être connecté au démarrage, par l'utilisateur final, ou par le biais d'automation. Si OnConnection retourne S_OK, le complément est dit chargé. Si toute autre valeur est retournée, l'application hôte libère immédiatement sa référence au complément et l'objet sera détruit.

OnConnection prend les quatre paramètres suivants :
  • Application - une référence à l'interface IDispatch de l'application hôte.
  • ConnectMode - une constante qui spécifie comment le complément a été connecté.
    • ext_cm_AfterStartup - démarré par l'utilisateur final à partir de la boîte de dialogue Compléments COM.
    • ext_cm_CommandLine - connectée à partir de la ligne de commande.
    • ext_cm_External - connectée par une application externe via Automation.
    • ext_cm_Startup - démarrée par l'hôte au démarrage de l'application. Ce comportement peut être contrôlé par un paramètre dans le Registre.
  • AddInInst - une référence à l'objet COMAddIn qui se réfère à cette macro complémentaire dans la Collection COMAddIns pour l'application hôte.
  • Custom - une gamme de variantes pouvant contenir les données définies par l'utilisateur.


OnDisconnection

L'événement OnDisconnection se déclenche quand le complément COM est déconnecté et juste avant qu'il soit déchargé de la mémoire. Le complément doit effectuer tout nettoyage des ressources dans cet événement et restaurer tout changement apporté à l'application hôte.

OnDisconnection prend les deux paramètres suivants :
  • RemoveMode - une constante qui spécifie comment le complément a été déconnecté.
    • ext_dm_HostShutdown - déconnectée lorsque l'application hôte est fermée.
    • ext_dm_UserClosed - déconnectée par l'utilisateur final ou un contrôleur Automation.
  • Custom - une gamme de variantes pouvant contenir les données définies par l'utilisateur.


OnAddInsUpdate

L'événement OnAddInsUpdate se déclenche lorsque le jeu de compléments COM inscrits change. En d'autres termes, chaque fois qu'un complément COM est installé ou supprimé de l'application hôte, cet événement se déclenche.


OnStartupComplete et OnBeginShutdown

Événements à la fois le OnStartupComplete et OnBeginShutdown notifient le complément lorsque l'application hôte quitte ou entre dans un état où l'interaction utilisateur doit être évitée car l'application est en cours de chargement ou de déchargement via la mémoire. OnStartupComplete ne se déclenche que si votre complément a été connecté au démarrage et OnBeginShutdown ne se déclenche que si votre complément est déconnecté par l'hôte lors de l'arrêt.

L'interface utilisateur pour l'application hôte étant entièrement active lorsque ces événements se déclenchent, ils peuvent être le seul moyen d'effectuer certaines actions qui sinon ne seraient pas disponibles à partir de OnConnection et OnDisconnection.

Enregistrement du complément COM

Outre l'inscription COM normale, un complément COM doit s'enregistrer auprès de chaque application Office 2000 dans lequel il peut exécuter en toute sécurité. Pour s'inscrire dans une application particulière, le complément crée une sous-clé, en utilisant son ProgID comme nom pour la clé, sous l'emplacement suivant :

HKEY_CURRENT_USER\Software\Microsoft\Office\<AppName>\Addins\<AddInProgID> </AddInProgID> </AppName>
Le complément peut fournir des valeurs à cet emplacement de clé pour un nom d'affichage convivial et une description complète. En outre, le complément doit spécifier son comportement de chargement souhaité à l'aide d'une valeur DWORD nommée « LoadBehavior ». Cette valeur détermine comment le complément sera chargé par l'application hôte et est constitué d'une combinaison des valeurs suivantes :
  • 0 x 00 = Disconnect - n'est pas chargé.
  • 0 x 01 = Connected - est chargé.
  • 0 x 02 = bootload - chargé au démarrage de l'application.
  • 0 x 08 = demandLoad - chargé uniquement lorsque demandé par l'utilisateur.
  • 0 x 16 = ConnectFirstTime - chargé une seule fois (au prochain démarrage).
La valeur généralement indiquée est 0 x 03 (Connected | Bootload).

Les compléments qui implémentent IDTExtensibility2 devraient également spécifier une valeur DWORD nommée « CommandLineSafe » pour indiquer s'ils sont sûrs pour des opérations qui ne prennent pas en charge une interface utilisateur de valeur. Une valeur de 0 x 00 signifie faux, 0 x 01 est vrai. Étant donné que cet exemple affiche une boîte de message, il n'est pas sécurisé pour l'exécution de la ligne de commande et par conséquent affecte la valeur 0 x 00.

Mise en route

Pour commencer à écrire des compléments, compilez l'exemple de projet, exécutez regsvr32.exe sur la DLL générée et ensuite lancer Microsoft Word, Excel, Powerpoint ou Frontpage 2000. Vous devez voir une boîte de dialogue Ouvrir que le complément est chargé qui indique « Hello » et vous indique quelle application il est en cours.

(c) Microsoft Corporation 1999, tous droits réservés. Contributions par Richard R. Taylor, Microsoft Corporation.

Propriétés

Numéro d'article: 230689 - Dernière mise à jour: lundi 23 septembre 2013 - Version: 6.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Excel 2000 Standard
  • Microsoft Visual C++ 5.0 Édition Entreprise
  • Microsoft Visual C++ 5.0 Édition Professionnelle
  • Microsoft Office XP Developer
  • Microsoft Office 2000 Developer
  • Microsoft FrontPage 2002 Standard
  • Microsoft FrontPage 2000 Standard
  • Microsoft PowerPoint 2002 Standard
  • Microsoft PowerPoint 2000 Standard
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Excel 2002
  • Microsoft Outlook 2000 Standard
  • Microsoft Outlook 2002 Standard
Mots-clés : 
kbdownload kbautomation kbfile kbinfo kbsample kbmt KB230689 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d?une traduction incorrecte du contenu ou de son utilisation par les clients.
La version anglaise de cet article est la suivante: 230689
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com