Serviço de Nomes
A Biblioteca de Gerenciamento de Intercâmbio de Dados Dinâmicos (DDEML) possibilita que um aplicativo de servidor registre os nomes de serviço aos quais oferece suporte e impeça que o DDEML envie transações de XTYP_CONNECT para nomes de serviço sem suporte para a função de retorno de chamada DDE (Dynamic Data Exchange) do servidor.
Os tópicos a seguir descrevem o serviço de nome.
Registro de Nome de Serviço
Ao registrar seus nomes de serviço com o DDEML, um servidor informa a outros aplicativos DDE no sistema que um novo servidor está disponível. Um servidor registra um nome de serviço chamando a função DdeNameService e especificando um identificador de cadeia de caracteres que identifica o nome. Em resposta, o DDEML envia uma transação XTYP_REGISTER para a função de retorno de chamada de cada aplicativo DDEML no sistema (exceto aqueles que especificaram o sinalizador de filtro CBF_SKIP_REGISTRATIONS na função DdeInitialize). A transação XTYP_REGISTER passa dois identificadores de cadeia de caracteres para uma função de retorno de chamada: o primeiro identifica a cadeia de caracteres especificando o nome do serviço base e o segundo identifica a cadeia de caracteres especificando o serviço específico da instância. Um cliente normalmente usa o nome do serviço base em uma lista de servidores disponíveis, para que o usuário possa selecionar um servidor na lista. O cliente usa o nome de serviço específico da instância para estabelecer uma conversa com uma instância específica de um aplicativo de servidor, se mais de uma instância estiver em execução.
Um servidor pode usar DdeNameService para cancelar o registro de um nome de serviço. Essa função faz com que o DDEML envie transações XTYP_UNREGISTER para os demais aplicativos DDE do sistema, informando que eles não podem mais usar o nome para estabelecer conversas.
Um servidor deve chamar DdeNameService para registrar seus nomes de serviço logo após chamar DdeInitialize. Um servidor deve cancelar o registro de seus nomes de serviço usando DdeNameService antes de chamar a função DdeUninitialize.
Filtro de nome de serviço
Além de registrar nomes de serviço, o DdeNameService permite que um servidor ative ou desative seu filtro de nome de serviço. Quando um servidor desativa seu filtro de nome de serviço, o DDEML envia a transação XTYP_CONNECT para a função de retorno de chamada DDE do servidor sempre que qualquer cliente chama a função DdeConnect, independentemente do nome do serviço especificado na função. Quando um servidor ativa seu filtro de nome de serviço, o DDEML envia a transação XTYP_CONNECT para o servidor somente quando o DdeConnect especifica um nome de serviço que o servidor especificou em uma chamada para DdeNameService.
Por padrão, o filtro de nome de serviço está ativado quando um aplicativo chama DdeInitialize. Esse padrão impede que o DDEML envie a transação XTYP_CONNECT para um servidor antes que o servidor tenha criado os identificadores de cadeia de caracteres necessários. Um servidor pode desativar seu filtro de nome de serviço especificando o sinalizador DNS_FILTEROFF em uma chamada para DdeNameService. O sinalizador DNS_FILTERON ativa o filtro.