Platform SDK: Active Directory, ADSI, and Directory Services

Using the IDirectoryObject Interface

Late-bound ADSI clients written in languages such as C and C++ can take advantage of the rich native data types used by ADSI by calling the IDirectoryObject interface instead of the IADs interface. The IDirectoryObject interface provides methods to support a subset of an object's housekeeping properties and to access its attributes. The following figure shows the relationships among the data structures:

In the preceding figure, the structure ADS_OBJECT_INFO defines properties that identify the object by distinguished name, relative distinguished name, by container (ParentDN), by object type (ClassDN), and by schema definition (SchemaDN). The attribute descriptor ADS_ATTR_INFO consists of a name, data type, an array of data values shown in ADSVALUE, and a flag that directs the underlying directory service to perform certain operations on the attributes detailed in ADS_ATTR_* constants. The data types for these attributes include the ADSI extended syntax types, detailed in ADSTYPE.