Служба имен
Библиотека управления динамическими данными (DDEML) позволяет серверу регистрировать имена служб, поддерживаемые и предотвращать отправку XTYP_CONNECT транзакций для неподдерживаемых имен служб в функцию обратного вызова Динамического обмена данными сервера (DDE).
В следующих разделах описана служба имен.
Регистрация имени службы
Регистрируя имена служб в DDEML, сервер сообщает другим приложениям DDE в системе, что новый сервер доступен. Сервер регистрирует имя службы, вызывая функцию DdeNameService и указывая дескриптор строки, определяющий имя. В ответ DDEML отправляет транзакцию XTYP_REGISTER в функцию обратного вызова каждого приложения DDEML в системе (за исключением тех, которые указали флаг фильтра CBF_SKIP_REGISTRATIONS в функции DdeInitialize). Транзакция XTYP_REGISTER передает две строковые дескрипторы функции обратного вызова: первая определяет строку, указывающую базовое имя службы, а второй — строку, указывающую службу для конкретного экземпляра. Клиент обычно использует имя базовой службы в списке доступных серверов, поэтому пользователь может выбрать сервер из списка. Клиент использует имя службы для конкретного экземпляра, чтобы установить беседу с определенным экземпляром серверного приложения, если выполняется несколько экземпляров.
Сервер может использовать DdeNameService для отмены регистрации имени службы. Эта функция приводит к отправке XTYP_UNREGISTER транзакций в другие приложения DDE в системе, уведомляя их о том, что они больше не могут использовать имя для установления бесед.
Сервер должен вызвать DdeNameService, чтобы зарегистрировать имена служб вскоре после вызова DdeInitialize. Перед вызовом функции DdeUninitialize сервер должен отменить регистрацию имен служб с помощью DdeNameService.
Фильтр имени службы
Помимо регистрации имен служб DdeNameService позволяет серверу включить или отключить фильтр имени службы. Если сервер отключает фильтр имени службы, DDEML отправляет транзакцию XTYP_CONNECT на функцию обратного вызова DDE сервера всякий раз, когда любой клиент вызывает функцию Dde Подключение независимо от имени службы, указанной в функции. Если сервер включает фильтр имени службы, DDEML отправляет XTYP_CONNECT транзакцию на сервер, только если Dde Подключение указывает имя службы, указанное в вызове DdeNameService.
По умолчанию фильтр имени службы включен, когда приложение вызывает DdeInitialize. По умолчанию DDEML не отправляет транзакцию XTYP_CONNECT на сервер, прежде чем сервер создал строку, которая обрабатывает ее. Сервер может отключить фильтр имени службы, указав флаг DNS_FILTEROFF в вызове DdeNameService. Флаг DNS_FILTERON включает фильтр.