Freigeben über


Name Service

Die Dynamic Data 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 DDE-Rückruffunktion (Dynamic Data Exchange) des Servers sendet.

In den folgenden Themen wird der Namensdienst beschrieben.

Registrierung des Dienstnamens

Durch die Registrierung ihrer 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 die DdeNameService--Funktion aufgerufen und ein Zeichenfolgenhandle angegeben wird, 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 Filterflagge 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 der zweite gibt die Zeichenfolge an, die den instanzspezifischen 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 instanzspezifischen Dienstnamen, um eine Unterhaltung mit einer bestimmten Instanz einer Serveranwendung herzustellen, wenn mehrere Instanzen ausgeführt werden.

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 Herstellen von Unterhaltungen verwenden können.

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

Dienstnamefilter

Neben der Registrierung von Dienstnamen ermöglicht DdeNameService- einem Server das Aktivieren oder Deaktivieren des Dienstnamenfilters. Wenn ein Server den Dienstnamenfilter deaktiviert, sendet die DDEML die XTYP_CONNECT Transaktion an die DDE-Rückruffunktion des Servers, wenn client die DdeConnect--Funktion aufruft, unabhängig vom in der Funktion angegebenen Dienstnamen. Wenn ein Server den Dienstnamenfilter aktiviert, sendet die DDEML die XTYP_CONNECT Transaktion nur an den Server, wenn DdeConnect- einen Dienstnamen angibt, den der Server in einem Aufruf von DdeNameServiceangegeben hat.

Standardmäßig ist der Dienstnamenfilter aktiviert, wenn eine Anwendung DdeInitializeaufruft. 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 den Dienstnamenfilter deaktivieren, indem das DNS_FILTEROFF Flag in einem Aufruf von DdeNameService-angegeben wird. Das DNS_FILTERON Flag aktiviert den Filter.