Late-bound ADSI clients, written in a language such as C and C++, can use 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 maintenance 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.