menus et ressources : ajouts de serveur
Cet article explique les modifications qui doivent être apportées aux menus et d'autres ressources dans une application de serveur (composant) de modification. Une application serveur nécessite de nombreux ajouts à la structure du menu et d'autres ressources car elle peut être démarrée dans l'un des trois modes : autonome, incorporé, ou en place. Comme décrit dans l'article de Menus et des ressources (OLE DB), il existe quatre ensembles de menus. Les quatre sont utilisés pour une application de serveur complète MDI, tandis que seuls trois sont utilisés pour un miniserver. L'Application créera la disposition du menu nécessaire pour le type de serveur de votre choix. De la personnalisation peut être nécessaire.
Si vous n'utilisez pas l'application wizard, vous devriez consulter HIERSVR.RC, le script de ressource pour l'application exemple MFC HIERSVR, pour voir comment les modifications ont été implémentées.
Les rubriques traitées dans cet article sont les suivantes :
Ajouts de menu de serveur
Ajouts à la table des accélérateurs
Ajouts de Miniserver
Ajouts de menu de serveur
Les applications de serveur (composant) doivent avoir des ressources menu ajoutées pour prendre en charge OLE la modification sur place. Les menus utilisés lorsque l'application est exécutée en mode autonome ne doivent pas être modifiés, mais vous devez ajouter deux nouvelles ressources menu avant de générer l'application : un pour prendre en charge l'activation sur place et un pour prendre en charge le serveur qui est entièrement ouvert. Les deux menu ressources utilisées par la valeur FULL et des applications de miniserver.
Pour prendre en charge l'activation sur place, vous devez créer une ressource menu qui est très similaire à la ressource menu utilisée lors d'une exécution en mode autonome. La différence dans ce menu est que les éléments de fichiers et de fenêtre (et tous les autres éléments de menu qui sont liés à l'application, et non les données) sont manquants. L'application conteneur fournit ces éléments de menu. Pour plus d'informations sur, et un exemple, de cette technique de fusion de menus, consultez l'article Menus et de ressources : Fusion de menus.
Pour prendre en charge l'activation entièrement ouverte, vous devez créer une ressource presque identique dans la ressource menu utilisée lorsqu'il est exécuté en mode autonome. La seule modification de cette ressource menu est que certains éléments sont reformulés pour refléter le fait que le serveur fonctionne sur un élément incorporé dans un document composite.
En plus des modifications indiquées de cet article, votre fichier source doit inclure AFXOLECL.RC, qui est requis pour l'implémentation de la bibliothèque MFC. Ce fichier se trouve dans MFC\inclut le sous-répertoire.
Ajouts aux tables des accélérateurs d'application serveur
Deux nouvelles ressources table des accélérateurs doivent être ajoutées aux applications serveur ; elles correspondent directement aux nouvelles ressources menu décrites précédemment. La première table des accélérateurs est utilisée lorsque l'application serveur est activée sur l'emplacement. Elle se compose de toutes les entrées dans la table des accélérateurs de la vue à l'exception de ceux liée au fichier et des menus Fenêtre.
La deuxième table est presque une copie exacte de la table des accélérateurs de la vue. Les modifications en parallèle différences de faits dans le menu entièrement ouvert mentionnés dans Ajouts de menu de serveur.
Pour obtenir un exemple de ces modifications des tables des accélérateurs, comparez les tables des accélérateurs IDR_HIERSVRTYPE_SRVR_IP et IDR_HIERSVRTYPE_SRVR_EMB avec IDR_MAINFRAME dans le fichier de HIERSVR.RC inclus dans l'exemple de liaison et incorporation d'objets MFC HIERSVR. Des accélérateurs de fichiers et de fenêtre sont absents de la table dans l'emplacement et nécessitent des copies de ces derniers sont dans la table incorporée.
Ajouts de chaînes pour les applications serveur
Un seul ajout de chaînes est nécessaire dans une application serveur — chaîne pour indiquer que la OLE initialisation a échoué. Par exemple, voici l'entrée de table de caractères que l'Assistant d'Application génère :
ID |
String |
---|---|
IDP_OLE_INIT_FAILED |
Échec de l'initialisation d'OLE. Assurez-vous que vous utilisez la bonne version des bibliothèques OLE. |
Ajouts de Miniserver
Les mêmes ajouts s'appliquent aux miniservers en tant que ceux répertoriés ci-dessus pour les serveurs entiers. Étant donné qu'un miniserver ne peut pas être exécuté en mode autonome, son menu principal est beaucoup plus petit. Dans le menu créé par l'Application a un menu Fichier, qui contient uniquement les éléments Quitter et A propos. Les menus et accélérateurs intégrés et imbriqués sur l'emplacement pour les miniservers sont les mêmes que celles pour les serveurs entiers.