Platform SDK: Active Directory, ADSI, and Directory Services

ADSI Extension Architecture

ADSI extensions are based on the COM aggregation model with several enhancements. Extensions still must satisfy all COM rules. Please consult the COM specification for more information.

For convenience, let's quickly review the COM aggregation model.

An aggregate, also known as an inner object, is an object that an aggregator creates. Your extension object is an aggregate.

An aggregator, also known as an outer object, is an object that creates an aggregate. ADSI is an aggregator.

The inner object delegates its IUnknown to the aggregator's IUnknown.

ADSI extensions add the following enhancements to COM aggregation in order to satisfy its requirements:

All these solutions are possible because of services that the ADSI Object Manager provides, which reside on each ADSI provider.

The following figure shows the ADSI Extension Model architecture.

ADSI supports two levels of extension: