名稱服務

動態數據交換管理連結庫 (DDEML) 可讓伺服器應用程式註冊其支援的服務名稱,並防止 DDEML 針對不支援的服務名稱將XTYP_CONNECT交易傳送至伺服器的動態數據交換 (DDE) 回呼函式。

下列主題描述名稱服務。

服務名稱註冊

藉由向 DDEML 註冊其服務名稱,伺服器會通知系統中的其他 DDE 應用程式有新的伺服器可供使用。 伺服器會藉由呼叫 DdeNameService 函 式並指定識別名稱的字串句柄來註冊服務名稱。 回應中,DDEML 會將XTYP_REGISTER交易傳送至系統中每個 DDEML 應用程式的回呼函式(但 DdeInitialize 函式中指定CBF_SKIP_REGISTRATIONS篩選旗標除外)。 XTYP_REGISTER交易會將兩個字串句柄傳遞至回呼函式:第一個會識別指定基底服務名稱的字串,而第二個則識別指定實例特定服務的字元串。 用戶端通常會使用可用伺服器清單中的基底服務名稱,讓使用者可以從清單中選取伺服器。 如果有多個實例正在執行,用戶端會使用實例特定服務名稱來建立與伺服器應用程式特定實例的交談。

伺服器可以使用 DdeNameService 來取消註冊服務名稱。 此函式會讓 DDEML 將XTYP_UNREGISTER交易傳送至系統中的其他 DDE 應用程式,通知他們無法再使用名稱來建立交談。

伺服器必須在呼叫 DdeInitialize 之後不久呼叫 DdeNameService 來註冊其服務名稱。 伺服器必須在呼叫 DdeUninitialize 函式之前,使用 DdeNameService 取消註冊其服務名稱。

服務名稱篩選

除了註冊服務名稱之外, DdeNameService 可讓伺服器開啟或關閉其服務名稱篩選。 當伺服器關閉其服務名稱篩選時,無論函式中指定的服務名稱為何,DDEML 都會將XTYP_CONNECT交易傳送至伺服器的 D 連線 DE 回呼函式。 當伺服器開啟其服務名稱篩選時,DDEML 只有在 Dde 時,才會將XTYP_CONNECT交易傳送至伺服器 連線 指定伺服器在呼叫 DdeNameService 中指定的服務名稱。

根據預設,當應用程式呼叫 DdeInitialize 時,服務名稱篩選就會開啟。 此預設值可防止 DDEML 將XTYP_CONNECT交易傳送至伺服器,然後伺服器建立所需的字串句柄。 伺服器可以在呼叫 DdeNameService 時指定DNS_FILTEROFF旗標,以關閉其服務名稱篩選。 DNS_FILTERON旗標會開啟篩選。