serveurs In-Process
Si vous implémentez une application serveur OLE en tant que serveur in-process (une DLL s’exécutant dans l’espace de processus de l’application conteneur) plutôt qu’en tant que serveur local (un EXE s’exécutant dans son propre espace de processus), la communication entre le conteneur et le serveur est simplifiée, car la communication entre les deux peut prendre la forme d’appels de fonction normaux. Les appels de procédure distante ne sont pas nécessaires, car les deux applications s’exécutent dans le même espace de processus. Comme vous vous y attendez, les objets qui gèrent le marshaling des paramètres sont également inutiles, bien qu’ils puissent être agrégés dans la DLL sans interférer avec la communication entre le conteneur et le serveur.
Lorsqu’une application serveur OLE est implémentée en tant que serveur in-process, un gestionnaire d’objets distinct n’est pas nécessaire, car le serveur lui-même se trouve dans l’espace de processus du client. La main différence entre un serveur in-process et un gestionnaire d’objets est que le serveur est en mesure de gérer l’objet dans un état d’exécution alors que le gestionnaire ne le peut pas. Une conséquence de cette différence est qu’un serveur doit fournir une interface utilisateur pour manipuler l’objet en cours d’exécution, tandis qu’un gestionnaire délègue cette exigence au serveur de l’objet. Lors de la création d’un serveur in-process, vous pouvez agréger sur le gestionnaire OLE par défaut, ce qui lui permet de gérer les tâches de base, telles que l’affichage, le stockage et les notifications, tandis que vous implémentez uniquement les services que le gestionnaire ne fournit pas ou n’implémente pas comme vous le souhaitez.
Pour plus d'informations, voir les rubriques suivantes :
Rubriques connexes