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 la 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 noms.

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 (à l’exception de 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 : le premier identifie la chaîne en spécifiant le nom du service de base et le second identifie la chaîne spécifiant le service spécifique instance. Un client utilise généralement le nom du service de base dans une liste de serveurs disponibles, de sorte que l’utilisateur peut sélectionner un serveur dans la liste. Le client utilise le nom de service spécifique à instance pour établir une conversation avec un instance spécifique d’une application serveur, si plusieurs instance sont en cours d’exécution.

Un serveur peut utiliser DdeNameService pour annuler l’inscription d’un nom de service. Cette fonction permet au DDEML d’envoyer des transactions XTYP_UNREGISTER aux autres applications DDE du système, les informant qu’elles ne peuvent plus utiliser le nom pour établir des conversations.

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

Filtre de nom de service

En plus d’inscrire 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 que le serveur a spécifié 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.