The Active Directory object model consists of Active Directory objects and dependent objects. Clients manipulate objects with interfaces. Active Directory providers implement the Active Directory objects and their interfaces.
Active Directory objects are COM objects that represent persistent objects in an underlying directory service. An Active Directory object is manipulated using one or more COM interfaces.
Active Directory objects are divided into two groups: directory service leaf objects, and directory service container objects. A container object can contain other Active Directory objects. A leaf object cannot contain Active Directory objects.
An Active Directory object is typically the host for one or more dependent objects. Dependent objects are COM objects that logically divide the functionality of an Active Directory directory service object. Clients obtain interface pointers on dependent objects by calling methods on the interfaces of the host Active Directory object. Dependent objects can be retrieved only from host objects.
The division of a given object type into a host and one or more dependent objects implements a logical grouping of properties and methods. This division does not necessarily2 reflect the structure of the underlying directory. The host and dependent object relationship should not be confused with the container and contents relationship: the former is a characteristic of Active Directory, the latter a characteristic of the underlying directory.
2 The division may coincidentally reflect the actual structure of the underlying directory; the point here is that the host/dependent object relationship is an artifact of Active Directory, not of any particular directory.