IADs 和 IDirectoryObject 介面
ADSI 用戶端使用兩個 COM 介面之一來管理和管理目錄服務物件:IADs 或 IDirectoryObject。 IAD 是 IDispatch 介面,供晚期綁定用戶端使用,例如以 Microsoft Visual Basic、Java 和各種腳本語言撰寫的用戶端。 IDirectoryObject 是一個 vtable 介面,可讓早期系結用戶端直接存取物件,例如以 C 和 C++ 撰寫的物件。
每個 ADSI 對象都必須同時實作 IAD 和 IDirectoryObject。 以 C 或 C++ 等語言撰寫的 ADSI 用戶端可以直接存取 vtable,可以在相同的應用程式中使用任一介面,但不能同時使用兩者。 以 Visual Basic 或 Java 撰寫的 ADSI 用戶端僅限於使用 IAD。
IADs 介面可讓晚期綁定用戶端利用 ADSI 物件模型的內在內建功能。 這些功能包括屬性快取,可讓用戶端讀取和寫入屬性,而不需要經過每一個呼叫的線路。 此外,用戶端應用程式也能夠使用功能強大的UI和ActiveX控制元件連結庫,以及更簡單的程式設計樣式。 在傳回中 ,晚期綁定客戶端必須使用 VARIANT 數據類型,這排除了使用 ADSI 所提供的更豐富原生數據類型。
IDirectoryObject 介面可讓早期系結的用戶端充分利用原生目錄服務數據類型,代價是使用屬性快取略有效能優勢。 在傳回中 ,IDirectoryObject 介面會透過單一要求提供物件屬性的直接連線存取,而不是透過個別 的 get 和 put 呼叫。