Name Service
Die dynamische Daten Exchange Management Library (DDEML) ermöglicht es einer Serveranwendung, die unterstützten Dienstnamen zu registrieren und zu verhindern, dass die DDEML XTYP _ CONNECT-Transaktionen für nicht unterstützte Dienstnamen an die Rückruffunktion dynamische Daten Exchange (DDE) des Servers sendet.
In den folgenden Themen wird der Namensdienst beschrieben.
Dienstnamenregistrierung
Durch die Registrierung seiner Dienstnamen bei der DDEML informiert ein Server andere DDE-Anwendungen im System darüber, dass ein neuer Server verfügbar ist. Ein Server registriert einen Dienstnamen, indem er die DdeNameService-Funktion aufruft und ein Zeichenfolgenhandle angibt, das den Namen identifiziert. Als Reaktion sendet die DDEML eine XTYP _ REGISTER-Transaktion an die Rückruffunktion jeder DDEML-Anwendung im System (mit Ausnahme derjenigen, die das CBF _ SKIP _ REGISTRATIONS-Filterflag in der DdeInitialize-Funktion angegeben haben). Die XTYP _ REGISTER-Transaktion übergibt zwei Zeichenfolgenhandles an eine Rückruffunktion: der erste identifiziert die Zeichenfolge, die den Basisdienstnamen angibt, und der zweite gibt die Zeichenfolge an, die den instanzspezifischen Dienst angibt. Ein Client verwendet in der Regel den Basisdienstnamen in einer Liste verfügbarer Server, sodass der Benutzer einen Server aus der Liste auswählen kann. Der Client verwendet den instanzspezifischen Dienstnamen, um eine Konversation mit einer bestimmten Instanz einer Serveranwendung herzustellen, wenn mehrere Instanzen ausgeführt werden.
Ein Server kann DdeNameService verwenden, um die Registrierung eines Dienstnamens zu aufheben. Diese Funktion bewirkt, dass die DDEML XTYP _ UNREGISTER-Transaktionen an die anderen DDE-Anwendungen im System sendet und sie darüber informiert, dass sie den Namen nicht mehr zum Einrichten von Konversationen verwenden können.
Ein Server muss DdeNameService aufrufen, um seine Dienstnamen kurz nach dem Aufruf von DdeInitializezu registrieren. Ein Server muss die Registrierung seiner Dienstnamen mithilfe von DdeNameService aufheben, bevor er die DdeUninitialize-Funktion aufruft.
Dienstnamenfilter
Zusätzlich zum Registrieren von Dienstnamen ermöglicht DdeNameService einem Server, seinen Dienstnamenfilter zu aktivieren oder zu deaktivieren. Wenn ein Server seinen Dienstnamenfilter deaktiviert, sendet die DDEML die XTYP _ CONNECT-Transaktion an die DDE-Rückruffunktion des Servers, wenn ein Client die DdeConnect-Funktion aufruft, unabhängig vom in der Funktion angegebenen Dienstnamen. Wenn ein Server seinen Dienstnamenfilter einschaltet, sendet die DDEML die XTYP _ CONNECT-Transaktion nur dann an den Server, wenn DdeConnect einen Dienstnamen angibt, den der Server in einem Aufruf von DdeNameService angegeben hat.
Standardmäßig ist der Dienstnamenfilter aktiviert, wenn eine Anwendung DdeInitialize aufruft. Dieser Standardwert verhindert, dass die DDEML die XTYP _ CONNECT-Transaktion an einen Server sendet, bevor der Server die benötigten Zeichenfolgenhandles erstellt hat. Ein Server kann seinen Dienstnamenfilter deaktivieren, indem er _ das DNS-FILTEROFF-Flag in einem Aufruf von DdeNameServiceangibt. Das DNS _ FILTERON-Flag aktiviert den Filter.