Directory Services

ADSI Extension Architecture

ADSI extensions are based on the COM aggregation model with several enhancements. Extensions must adhere to all COM rules. For more information, see the COM specification.

Here is a review of the COM aggregation model.

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 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 extension model architecture

ADSI supports two levels of extension: