Partager via


Conteneurs : Fonctionnalités avancées

Cet article décrit les étapes nécessaires pour incorporer les fonctionnalités avancées facultative aux applications conteneur existantes.Ces fonctionnalités sont :

  • Une application qui est un conteneur et un serveur

  • OLE lien vers un objet incorporé

Créer une application conteneur/serveur

Une application conteneur/serveur est une application qui agit comme un conteneur et serveur.Microsoft Word pour windows est un exemple.Vous pouvez incorporer Word pour les documents de fenêtres dans d'autres applications, et vous pouvez également inclure des éléments dans Word pour les documents windows.Le processus de modifier votre application conteneur d'être un conteneur et un serveur complet (vous ne pouvez pas créer une application conteneur/miniserver de combinaison) est similaire au processus pour créer un serveur complet.

L'article serveurs : implémenter un serveur répertorie plusieurs tâches requises pour implémenter une application serveur.Si vous convertissez une application conteneur à une application conteneur/serveur, vous devez effectuer certaines de ces tâches, en ajoutant du code au conteneur.Ce qui suit répertorie les points important pour tenir compte :

  • Le code du conteneur créé par l'Assistant Application initialise déjà le OLE sous-système.Vous n'aurez besoin de modifier ou d'ajouter rien pour cette prise en charge.

  • Lorsque la classe de base d'une classe de document est COleDocument, modifiez la classe de base à COleServerDoc.

  • Substituez COleClientItem::CanActivate pour éviter de modifier les éléments en place pendant que le serveur lui-même est utilisé pour modifier en place.

    Par exemple, l'exemple de liaison et incorporation d'objets MFC OCLIENT à l'incorporation d'un élément créé par votre application conteneur/serveur.Vous ouvrez l'application OCLIENT et édition visuelle que l'élément l'a créée par votre application conteneur/serveur.En modifiant l'élément de votre application, vous souhaitez inclure un élément créé par l'exemple de liaison et incorporation d'objets MFC HIERSVR.Pour ce faire, vous ne pouvez pas utiliser l'activation sur place.Vous devez complètement ouvrir HIERSVR pour activer cet élément.Étant donné que la bibliothèque MFC ne prend pas en charge cette notion de fonctionnalité, substituer COleClientItem::CanActivate vous permet au contrôle pour cette situation et empêché une erreur d'exécution possible dans votre application.

Si vous créez une nouvelle application et le souhaitez pour fonctionner comme une application conteneur/serveur, choisissez que l'option dans la notion de boîte de dialogue options dans l'Assistant Application et cette prise en charge est créée automatiquement.Pour plus d'informations, consultez l'article présentation : créer un conteneur de contrôles ActiveX.Pour plus d'informations sur les exemples MFC, consultez les exemples MFC.

Notez que vous ne pouvez pas insérer une application MDI en elle-même.Une application qui est un conteneur/serveur ne peut pas possible d'insérer lui-même à moins qu'il s'agisse d'une application SDI.

Renvoie aux objets incorporés

Renvoie à la fonctionnalité intégrée d'objets permet à un utilisateur de créer un document avec OLE lien vers un objet incorporé à l'intérieur de votre application conteneur.Par exemple, créez un document dans un traitement de texte contenant une feuille de calcul incorporée.Si vos liens de prises en charge par votre application vers des objets incorporés, il peut coller un lien vers la feuille de calcul contenue dans le document du traitement de texte.Cette fonctionnalité permet à votre application d'utiliser les informations contenues dans la feuille de calcul sans connaître où le traitement de texte l'origine obtenu.

Pour créer une liaison avec les objets incorporés dans votre application

  1. Dérivez votre classe de document d' COleLinkingDoc au lieu d' COleDocument.

  2. Créez un ID de classe OLE (CLSID) de votre application à l'aide de le générateur d'ID de classe inclus avec les OLE outils de développement.

  3. Enregistrez l'application avec OLE.

  4. Créez un objet d' COleTemplateServer en tant que membre de votre classe d'application.

  5. Dans la fonction membre d' InitInstance de votre classe d'application, procédez comme suit :

    • Connectez votre objet d' COleTemplateServer à vos modèles de document en appelant la fonction membre d' ConnectTemplate de l'objet.

    • Appelez la fonction membre de COleTemplateServer::RegisterAll pour stocker tous les objets de la classe du OLE système.

    • Appelez COleTemplateServer::UpdateRegistry.Le seul paramètre à UpdateRegistry doit être OAT_CONTAINER si l'application n'est pas lancée avec le commutateur « /Embedded ».Cela enregistre l'application comme conteneur qui peut des supports aux objets incorporés.

      Si l'application est lancée avec le commutateur « /Embedded », elle ne doit pas afficher sa fenêtre principale, similaire à une application serveur.

l'exemple de liaison et incorporation d'objets MFC OCLIENT implémente cette fonctionnalité.Pour obtenir un exemple de la façon dont cette opération, consultez la fonction d' InitInstance dans le fichier d'OCLIENT.CPP de cet exemple d'application.

Voir aussi

Concepts

Conteneurs

Serveurs