Los IAD e interfaces IDirectoryObject

Los clientes ADSI administran y manipulan objetos de servicio de directorio mediante una de las dos interfaces COM: IAD o IDirectoryObject. Los IAD son una interfaz IDispatch diseñada para su uso por clientes enlazados en tiempo de ejecución, como las escritas en Microsoft Visual Basic, Java y varios lenguajes de scripting. IDirectoryObject es una interfaz vtable que proporciona acceso directo a los objetos por clientes enlazados tempranos, como los escritos en C y C++.

Cada objeto ADSI debe implementar tanto IAD comoIDirectoryObject. Los clientes ADSI escritos en lenguajes como C o C++, que pueden acceder directamente a las tablas virtuales, pueden usar cualquiera de las interfaces, pero no ambas en la misma aplicación. Los clientes ADSI escritos en Visual Basic o Java se limitan al uso de IAD.

La interfaz iaDs permite a los clientes enlazados en tiempo de ejecución aprovechar las características inherentes de limpieza del modelo de objetos ADSI. Entre estas características se encuentra la caché de propiedades, que permite a los clientes leer y escribir propiedades sin pasar por la conexión para cada llamada. Además, las aplicaciones cliente obtienen el uso de potentes bibliotecas de control ui y ActiveX y un estilo más sencillo de programación. A cambio, los clientes enlazados en tiempo de ejecución deben usar el tipo de datos VARIANT , lo que impide usar los tipos de datos nativos más completos proporcionados por ADSI.

La interfaz IDirectoryObject permite que los clientes enlazados en tiempo de ejecución aprovechen al máximo los tipos de datos nativos del servicio de directorio a costa de renunciar a una ligera ventaja de rendimiento del uso de la memoria caché de propiedades. A cambio, la interfaz IDirectoryObject proporciona acceso directo y directo a las propiedades de objeto a través de una única solicitud, en lugar de a través de llamadas get y put individuales.