Partager via


Inscription

Lorsqu'un utilisateur souhaite insérer un élément OLE dans une application, OLE présente une liste de types d'objet à choisir.OLE reçoit cette liste de la base de données d'inscription du système, qui contient les informations fournies par toutes les applications serveur.Lorsqu'un serveur les enregistrements, les entrées qui est inclus dans la base de données d'inscription de système (le Registre) décrivent chaque type d'objet elle fournit, d'extensions de fichier, et du chemin d'accès à lui-même, parmi d'autres informations.

L'infrastructure et les OLE bibliothèques de liens dynamiques (DLL système (DLL) utilisent ce Registre pour déterminer quels types de OLE éléments sont disponibles sur le système.Les DLL système OLE utilisent également ce Registre pour déterminer comment lancer une application serveur lorsqu'un objet lié ou incorporé est activé.

Cet article décrit ce que chaque application serveur doit faire lorsqu'elle est installée et chaque fois qu'elle est exécutée.

Pour plus d'informations sur la base de données d'inscription du système et le format des fichiers .reg utilisés pour le mettre à jour, consultez la notion de référence du programmeur.

Installation de serveur

Lorsque vous installez d'abord votre application serveur, elle doit stocker tous les types de OLE éléments qu'elle prend en charge.Vous pouvez également mettre à jour au serveur la base de données d'inscription de système chaque fois qu'il s'exécute en tant qu'application autonome.Cela permet la base de données d'inscription à jour si le fichier exécutable du serveur est déplacé.

[!REMARQUE]

Les applications MFC générées par l'Assistant Application stocke automatiquement lorsqu'ils sont exécutés en tant qu'applications autonomes.

Si vous souhaitez inscrire votre application pendant l'installation, utilisez le programme de regedit.exe.(Dans Windows 95, Windows 98, et Windows Millenium Edition, RegEdit se trouve dans le répertoire Windows.Dans Windows NT et Windows 2000, RegEdit se trouve dans le répertoire windows System32.) Si vous incluez un programme d'installation avec votre application, définissez le « RegEdit exécuté par programme d'installation /S appname.reg ».(L'indicateur /S indique l'opération d'extraction en mode silencieux, c. autrement dit., elle n'affiche pas la boîte de dialogue de l'enregistrement de l'achèvement réussi de la commande.) Sinon, indiquez l'utilisateur exécuter RegEdit manuellement.

[!REMARQUE]

Le fichier .reg créé par l'Assistant Application n'inclut pas le chemin d'accès complet pour le fichier exécutable.Votre programme d'installation doit modifier le fichier .reg pour comprendre le chemin d'accès complet au fichier exécutable ou pour modifier la variable d'environnement PATH pour inclure le répertoire d'installation.

RegEdit fusionne le contenu du fichier texte .reg dans la base de données d'inscription.Pour vérifier la base de données ou la réparer, utilisez l'Éditeur du Registre.Prenez soin d'éviter la suppression de OLE entrées essentielles.(Dans Windows 95, Windows 98, et Windows Millenium Edition, l'Éditeur du Registre est regedit.exe.Dans Windows NT et Windows 2000, il s'agit RegEdit32.exe.)

Initialisation de serveur

Lorsque vous créez une application serveur avec l'Assistant Application, l'Assistant a effectué toutes les tâches d'initialisation automatiquement pour vous.Cette section décrit ce que vous devez faire si vous écrivez une application serveur manuellement.

Lorsqu'une application serveur est lancée par une application conteneur, les DLL système OLE ajoutez l'option « /Embedding » à la ligne de commande du serveur.Le comportement d'une application serveur diffère selon qu'il a été lancé par un conteneur, la première chose application doit option faire lorsqu'elle commence l'exécution est contrôle pour de « /Embedding » ou « - embedding » sur la ligne de commande.Si ce commutateur existe, chargez un autre ensemble de ressources qui illustrent le serveur comme étant actives ou complètement ouvertes sur place.Pour plus d'informations, consultez menus et ressources : ajouts de serveur.

Votre application serveur doit également appeler sa fonction d' CWinApp::RunEmbedded pour analyser la ligne de commande.S'il retourne une valeur différente de zéro, l'application ne doit pas afficher sa fenêtre car elle a été exécutée d'application conteneur, et non comme une application autonome.Cette fonction met à jour l'entrée du serveur dans la base de données d'inscription de système et appelle la fonction membre d' RegisterAll pour vous, en exécutant l'alignement d'instance.

Lorsque votre application serveur fonctionne, vous devez vérifier qu'il peut exécuter l'alignement d'instance.L'inscription d'instance signale aux DLL système OLE que le serveur est actif et prêt à accepter les demandes des conteneurs.Elle n'ajoute pas une entrée à la base de données d'inscription.Exécutez l'alignement d'instance du serveur en appelant la fonction membre d' ConnectTemplate définie par COleTemplateServer.Cela connecte l'objet d' CDocTemplate à l'objet d' COleTemplateServer .

La fonction d' ConnectTemplate prend trois paramètres : CLSIDdu serveur, un pointeur vers l'objet d' CDocTemplate , et un indicateur qui indique si le serveur prend en charge plusieurs instances.Un miniserver doit pouvoir prendre en charge plusieurs instances, c. autrement dit., il doit être possible que plusieurs instances du serveur s'exécutent simultanément, un pour chaque conteneur.Par conséquent, exécutez TRUE pour cette balise en lançant un miniserver.

Si vous écrivez un miniserver, par définition il sera toujours exécuté par un conteneur.Vous devez toujours analyser la ligne de commande pour vérifier l'option « /Embedding ».L'absence de cette option sur la ligne de commande signifie que l'utilisateur a essayé de lancer le miniserver comme une application autonome.Si cela se produit, inscrivez le serveur avec la base de données d'inscription de système et affichez un message signalant l'utilisateur pour exécuter le miniserver d'application conteneur.

Voir aussi

Référence

CWinApp::RunAutomated

CWinApp::RunEmbedded

COleTemplateServer, classe

Concepts

Intégration du format OLE au format MFC

Serveurs