Compartir a través de


Servicio de nombres

La Biblioteca de administración dinámica de Intercambio de datos (DDEML) permite a una aplicación de servidor registrar los nombres de servicio que admite y evitar que DDEML envíe XTYP_CONNECT transacciones para nombres de servicio no admitidos a la función de devolución de llamada de Intercambio de datos dinámicos (DDE) del servidor.

En los temas siguientes se describe el servicio de nombres.

Registro de nombres de servicio

Al registrar sus nombres de servicio con DDEML, un servidor informa a otras aplicaciones DDE en el sistema de que hay disponible un nuevo servidor. Un servidor registra un nombre de servicio llamando a la función DdeNameService y especificando un identificador de cadena que identifica el nombre. En respuesta, DDEML envía una transacción de XTYP_REGISTER a la función de devolución de llamada de cada aplicación DDEML del sistema (excepto las que especificaron la marca de filtro CBF_SKIP_REGISTRATIONS en la función DdeInitialize ). La transacción XTYP_REGISTER pasa dos identificadores de cadena a una función de devolución de llamada: la primera identifica la cadena que especifica el nombre del servicio base y la segunda identifica la cadena que especifica el servicio específico de la instancia. Normalmente, un cliente usa el nombre del servicio base en una lista de servidores disponibles, por lo que el usuario puede seleccionar un servidor de la lista. El cliente usa el nombre de servicio específico de la instancia para establecer una conversación con una instancia específica de una aplicación de servidor, si se está ejecutando más de una instancia.

Un servidor puede usar DdeNameService para anular el registro de un nombre de servicio. Esta función hace que DDEML envíe XTYP_UNREGISTER transacciones a las demás aplicaciones DDE del sistema, informándoles que ya no pueden usar el nombre para establecer conversaciones.

Un servidor debe llamar a DdeNameService para registrar sus nombres de servicio poco después de llamar a DdeInitialize. Un servidor debe anular el registro de sus nombres de servicio mediante DdeNameService justo antes de llamar a la función DdeUninitialize .

Filtro de nombre de servicio

Además de registrar nombres de servicio, DdeNameService permite a un servidor activar o desactivar su filtro de nombre de servicio. Cuando un servidor desactiva su filtro de nombre de servicio, DDEML envía la transacción XTYP_CONNECT a la función de devolución de llamada DDE del servidor cada vez que cualquier cliente llama a la función DdeConnect , independientemente del nombre de servicio especificado en la función. Cuando un servidor activa su filtro de nombre de servicio, DDEML envía la transacción XTYP_CONNECT al servidor solo cuando DdeConnect especifica un nombre de servicio que el servidor ha especificado en una llamada a DdeNameService.

De forma predeterminada, el filtro de nombre de servicio está activado cuando una aplicación llama a DdeInitialize. Este valor predeterminado impide que DDEML envíe la transacción XTYP_CONNECT a un servidor antes de que el servidor haya creado la cadena que necesita. Un servidor puede desactivar su filtro de nombre de servicio especificando la marca DNS_FILTEROFF en una llamada a DdeNameService. La marca DNS_FILTERON activa el filtro.