Freigeben über


Name Service

Die Dynamic Data Exchange Management Library (DDEML) ermöglicht es einer Serveranwendung, die von ihr unterstützten Dienstnamen zu registrieren und zu verhindern, dass die DDEML XTYP_CONNECT Transaktionen für nicht unterstützte Dienstnamen an die DDE-Rückruffunktion (Dynamic Data Exchange) 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 Antwort 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: Die erste identifiziert die Zeichenfolge, die den Basisdienstnamen angibt, und die zweite die Zeichenfolge, die den instance spezifischen Dienst angibt. Ein Client verwendet in der Regel den Basisdienstnamen in einer Liste der verfügbaren Server, sodass der Benutzer einen Server aus der Liste auswählen kann. Der Client verwendet den instance spezifischen Dienstnamen, um eine Konversation mit einer bestimmten instance einer Serveranwendung herzustellen, wenn mehr als eine instance ausgeführt wird.

Ein Server kann DdeNameService verwenden, um die Registrierung eines Dienstnamens aufzuheben. 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 Unterhaltungen verwenden können.

Ein Server muss DdeNameService aufrufen, um seine Dienstnamen kurz nach dem Aufruf von DdeInitialize zu registrieren. Ein Server muss die Registrierung seiner Dienstnamen mithilfe von DdeNameService aufheben, bevor die DdeUninitialize-Funktion aufgerufen wird .

Dienstnamenfilter

Neben der Registrierung 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 aktiviert, 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 Dienstnamefilter aktiviert, wenn eine Anwendung DdeInitialize aufruft. Diese Standardeinstellung verhindert, dass die DDEML die XTYP_CONNECT Transaktion an einen Server sendet, bevor der Server die benötigten Zeichenfolgen erstellt hat. Ein Server kann seinen Dienstnamenfilter deaktivieren, indem er das DNS_FILTEROFF-Flag in einem Aufruf von DdeNameService angibt. Das DNS_FILTERON-Flag aktiviert den Filter.