Partager via


Service de noms

La bibliothèque de gestion DDEML (Dynamic Data Exchange Management Library) permet à une application serveur d’inscrire les noms de service qu’elle prend en charge et d’empêcher le DDEML d’envoyer des transactions XTYP_CONNECT pour les noms de service non pris en charge à la fonction de rappel Dynamic Data Exchange (DDE) du serveur.

Les rubriques suivantes décrivent le service de nom.

Inscription de nom de service

En inscrivant ses noms de service auprès du DDEML, un serveur informe d’autres applications DDE dans le système qu’un nouveau serveur est disponible. Un serveur inscrit un nom de service en appelant la fonction DdeNameService et en spécifiant un handle de chaîne qui identifie le nom. En réponse, le DDEML envoie une transaction XTYP_REGISTER à la fonction de rappel de chaque application DDEML dans le système (sauf celles qui ont spécifié l’indicateur de filtre CBF_SKIP_REGISTRATIONS dans la fonction DdeInitialize). La transaction XTYP_REGISTER transmet deux handles de chaîne à une fonction de rappel : la première identifie la chaîne spécifiant le nom du service de base et la deuxième identifie la chaîne spécifiant le service spécifique à l’instance. Un client utilise généralement le nom du service de base dans une liste de serveurs disponibles, afin que l’utilisateur puisse sélectionner un serveur dans la liste. Le client utilise le nom de service spécifique à l’instance pour établir une conversation avec une instance spécifique d’une application serveur, si plusieurs instances sont en cours d’exécution.

Un serveur peut utiliser DdeNameService pour annuler l’inscription d’un nom de service. Cette fonction entraîne l’envoi du DDEML XTYP_UNREGISTER transactions aux autres applications DDE du système, en leur informant qu’ils ne peuvent plus utiliser le nom pour établir des conversations.

Un serveur doit appeler DdeNameService pour inscrire ses noms de service peu après avoir appelé DdeInitialize. Un serveur doit annuler l’inscription de ses noms de service à l’aide de DdeNameService juste avant d’appeler la fonction DdeUninitialize.

Filtre de nom de service

Outre l’inscription des noms de service, DdeNameService permet à un serveur d’activer ou de désactiver son filtre de nom de service. Lorsqu’un serveur désactive son filtre de nom de service, le DDEML envoie la transaction XTYP_CONNECT à la fonction de rappel DDE du serveur chaque fois qu’un client appelle la fonction DdeConnect, quel que soit le nom de service spécifié dans la fonction. Lorsqu’un serveur active son filtre de nom de service, le DDEML envoie la transaction XTYP_CONNECT au serveur uniquement lorsque DdeConnect spécifie un nom de service spécifié par le serveur dans un appel à DdeNameService.

Par défaut, le filtre de nom de service est activé lorsqu’une application appelle DdeInitialize. Cette valeur par défaut empêche le DDEML d’envoyer la transaction XTYP_CONNECT à un serveur avant que le serveur n’ait créé les handles de chaîne dont il a besoin. Un serveur peut désactiver son filtre de nom de service en spécifiant l’indicateur DNS_FILTEROFF dans un appel à DdeNameService. L’indicateur DNS_FILTERON active le filtre.