SAMPLE : COMAddIn.exe Office 2000 complément COM écrit en Visual C++

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 exécutable auto-extractible qui illustre la création un Office 2000 ou Office XP Component (Object Model) complément à l'aide de Visual C++. Un complément COM est un serveur in-processus COM spécifiquement conçu pour s'exécuter dans le contexte d'applications un ou plusieurs Office 2000 ou Office XP. Compléments COM fournit de méthode d'uniforme, efficace et flexible d'extension de l'environnement Office.

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

Cet exemple montre les étapes nécessaires pour créer un complément COM dans Visual C++. L'exemple crée une interface de complément simple vous pouvez étendre pour créer votre propre complément Office.

Plus d'informations

Le fichier suivant est téléchargeable à partir du Centre de téléchargement Microsoft :
Comaddin.exe
Date de publication : janvier 4 1999

Pour plus d'informations sur la façon de télécharger des fichiers de support technique 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 de virus. Microsoft utilisé les logiciels de détection de virus plus récente ne sont associé à la date à laquelle le fichier a été validé. Le fichier est stocké sur des serveurs sécurisés, pour empêcher toute modification non autorisée dans le fichier.

Informations sur le fichier exemple

COMAddIn.exe extrait les fichiers suivants dans un 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 un objet COM à un complément Office, il doit prendre en charge l'interface IDTExensibility2 comme indiqué dans la bibliothèque de type de Microsoft Add-in Designer (Msaddndr.dll). Cette interface a été déclarée pour vous dans ComAddin.h sorte aucun importer 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é tout d'abord, un appel de QueryInterface est faite pour IDTExtensibility2. Si cet appel échoue, le complément est déchargé. Si l'appel aboutit, l'application ordinateur hôte utilise la référence renvoyée pour notifier le complément des modifications apportées à son état. Une description de chaque méthode suit.

OnConnection

L'événement OnConnection est déclenché chaque fois que le complément COM est connecté. Le complément peut être connecté au démarrage, par l'utilisateur final, ou par le biais de l'automation. Si OnConnection renvoie S_OK, le complément est dit chargé. Si une autre valeur est renvoyée, l'application ordinateur hôte va libérer immédiatement sa référence pour le complément et l'objet va être détruit.

OnConnection prend les quatre paramètres suivants :
  • L'application une référence à l'interface IDispatch de l'application ordinateur 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 COM compléments.
    • ext_cm_CommandLine - connectée à partir de la ligne de commande.
    • ext_cm_External - connectée par une application externe par l'intermédiaire d'Automation.
    • ext_cm_Startup - démarrée par le ordinateur 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 fait référence à ce complément dans la collection COMAddIns de l'application ordinateur hôte.
  • Personnalisée - un tableau de variantes qui peuvent contenir des données définis par l'utilisateur.


OnDisconnection

L'événement OnDisconnection se déclenche lorsque le complément COM est déconnecté et juste avant qu'il se décharge de la mémoire. Le complément doit effectuer tout le nettoyage des ressources dans ce cas et restaurer les modifications apportées à l'application ordinateur 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 fermeture de l'application ordinateur hôte.
    • ext_dm_UserClosed - Déconnectée par l'utilisateur final ou un contrôleur Automation.
  • Personnalisée - un tableau de variantes qui peuvent contenir des données définis par l'utilisateur.


OnAddInsUpdate

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


OnStartupComplete et OnBeginShutdown

À la fois le OnStartupComplete et OnBeginShutdown événements informent le complément lorsque l'application ordinateur hôte a quitté ou prend un état où interaction utilisateur doit être évitée car l'application est en train de chargement ou de se décharger de la mémoire. OnStartupComplete se déclenche uniquement si votre complément a été connecté lors du démarrage et OnBeginShutdown se déclenche uniquement si votre complément est déconnecté par le ordinateur hôte pendant l'arrêt.

L'interface utilisateur de l'application ordinateur hôte est totalement 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 OnConnection et OnDisconnection.

Inscription du complément COM

Avec l'enregistrement COM normal, un complément COM doit s'enregistrer lui-même avec chaque application Office 2000 dans laquelle il pouvez exécuter en toute sécurité. À se pour inscrire avec 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>
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é en utilisant une valeur DWORD nommée LoadBehavior. Cette valeur détermine comment le complément sera chargé par l'application ordinateur hôte et se compose d'une combinaison des valeurs suivantes :
  • 0 x 00 = déconnecter - n'est pas chargé.
  • 0 x 01 = Connected - est chargé.
  • 0 x 02 = bootload - chargé au démarrage d'application.
  • 0x08 = demandLoad - chargé uniquement lorsque demandée par l'utilisateur.
  • 0x16 = ConnectFirstTime - chargé une seule fois (au prochain démarrage).
La valeur généralement spécifiée est 0x03 (Connected | Bootload).

Les compléments qui implémentent IDTExtensibility2 devraient également spécifier une valeur DWORD appelée "CommandLineSafe" pour indiquer si elles sont sûrs pour des opérations qui ne prennent pas en charge une interface utilisateur de valeur. Une valeur de 0 x 00 indique False, 0 x 01 a la valeur True. Comme cet exemple affiche une boîte de message, il n'est pas sûr pour l'exécution de ligne de commande et par conséquent définit la valeur 0 x 00.

Mise en route

Pour commencer à écrire des compléments, compilez le projet exemple, exécutez regsvr32.exe sur la DLL intégrée, puis la lancer Microsoft Word, Excel, PowerPoint et/ou FrontPage 2000. Vous verrez une boîte de dialogue Ouvrir, comme le complément renvoie chargé qui indique « Hello » et vous indique l'application dans.

(c) Microsoft Corporation 1999, Tous droits réservés. Contribution Richard b Taylor, Microsoft Corporation.

Propriétés

Numéro d'article: 230689 - Dernière mise à jour: lundi 9 août 2004 - Version: 5.4
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++ 6.0 Édition Entreprise
  • Microsoft Visual C++ 5.0 Édition Professionnelle
  • Microsoft Visual C++ 6.0 Édition Professionnelle
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • 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 : 
kbmt kbdownload kbautomation kbfile kbinfo kbsample KB230689 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
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