Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit les étapes nécessaires pour incorporer des fonctionnalités avancées facultatives dans des applications conteneur existantes. Ces fonctionnalités sont les suivantes :
Création d’une application conteneur/serveur
Une application conteneur/serveur est une application qui agit à la fois comme un conteneur et un serveur. Microsoft Word pour Windows est un exemple de ceci. Vous pouvez incorporer Word pour les documents Windows dans d’autres applications, et vous pouvez également incorporer des éléments dans des documents Word pour Windows. Le processus de modification de votre application conteneur pour être à la fois un conteneur et un serveur complet (vous ne pouvez pas créer une application de conteneur/miniserveur combiné) est similaire au processus de création d’un serveur complet.
L’article Serveurs : Implémentation d’un serveur répertorie plusieurs tâches requises pour implémenter une application serveur. Si vous convertissez une application conteneur en application conteneur/serveur, vous devez effectuer certaines de ces mêmes tâches, en ajoutant du code au conteneur. Les éléments suivants répertorient les éléments importants à prendre en compte :
Le code de conteneur créé par l’Assistant Application initialise déjà le sous-système OLE. Vous n’aurez pas besoin de modifier ou d’ajouter quoi que ce soit pour ce support.
Où que soit la classe de base d’une classe
COleDocumentde document, remplacez la classeCOleServerDocde base par .Remplacez
COleClientItem::CanActivatepour éviter la modification d’éléments en place pendant que le serveur lui-même est utilisé pour modifier en place.Par exemple, l’exemple OLE MFC OCLIENT a incorporé un élément créé par votre application conteneur/serveur. Vous ouvrez l’application OCLIENT et modifiez l’élément créé par votre application conteneur/serveur. Lors de la modification de l’élément de votre application, vous décidez d’incorporer un élément créé par l’exemple OLE MFC HIERSVR. Pour ce faire, vous ne pouvez pas utiliser l’activation sur place. Vous devez ouvrir complètement HIERSVR pour activer cet élément. Étant donné que la bibliothèque de classes Microsoft Foundation ne prend pas en charge cette fonctionnalité OLE, la
COleClientItem::CanActivatesubstitution vous permet de vérifier cette situation et d’empêcher une erreur d’exécution possible dans votre application.
Si vous créez une application et souhaitez qu’elle fonctionne en tant qu’application conteneur/serveur, choisissez cette option dans la boîte de dialogue Options OLE de l’Assistant Application et cette prise en charge sera créée automatiquement. Pour plus d’informations, consultez l’article Vue d’ensemble : Création d’un conteneur de contrôle ActiveX. Pour plus d’informations sur les exemples MFC, consultez 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 être insérée dans elle-même, sauf s’il s’agit d’une application SDI.
Liens vers des objets incorporés
La fonctionnalité Liens vers les objets incorporés permet à un utilisateur de créer un document avec un lien OLE 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 votre application prend en charge des liens vers des objets incorporés, elle 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 savoir où le traitement de texte l’a obtenu à l’origine.
Pour lier des objets incorporés dans votre application
Dérivez votre classe de document à partir de
COleLinkingDocla place deCOleDocument.Créez un ID de classe OLE (CLSID) pour votre application à l’aide du générateur d’ID de classe inclus avec les outils de développement OLE.
Inscrivez l’application auprès d’OLE.
Créez un
COleTemplateServerobjet en tant que membre de votre classe d’application.Dans la fonction membre de
InitInstancevotre classe d’application, procédez comme suit :Connectez votre
COleTemplateServerobjet à vos modèles de documents en appelant la fonction membre de l’objetConnectTemplate.Appelez la
COleTemplateServer::RegisterAllfonction membre pour inscrire tous les objets de classe auprès du système OLE.Appelez
COleTemplateServer::UpdateRegistry. Le seul paramètre àUpdateRegistryOAT_CONTAINER si l’application n’est pas lancée avec le commutateur « /Embedded ». Cela inscrit l’application en tant que conteneur qui peut prendre en charge des liens vers des 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 OCLIENT MFC implémente cette fonctionnalité. Pour obtenir un exemple de la façon dont cela est effectué, consultez la InitInstance fonction dans L’OCLIENT. Fichier CPP de cet exemple d’application.
Voir aussi
conteneurs
Serveurs