IADsExtension interface

The IADsExtension interface forms the basis of the ADSI application extension model. It enables an independent software vendor (ISV) to add application-specific behaviors, such as methods or functions, into an existing ADSI object. Multiple vendors can independently extend the features of the same object to perform similar, but unrelated operations.

The extension model is based on the aggregation model in COM. An aggregator, or outer object, can add to its base of methods, those of an aggregate object, or inner object. An ADSI extension object, which implements the IADsExtension interface, is an aggregate object, whereas an ADSI provider is an aggregator.

Note  When implementing an extension module, release an interface when finished with it. Otherwise, the aggregator cannot release the interface even when no longer required.

The IADsExtension interface can be used as follows:

  • The extension component requires an initialization notification as defined by dwCode in the Operate method. In this case, an extension client must call the Operate method. The other two methods, namely, PrivateInvoke and PrivateGetIDsOfNames, usually return E_NOTIMPL in the HRESULT value.
  • The extension component supports any dual or dispatch interface. In this case, an extension client must call the PrivateGetIDsOfNames or PrivateInvoke methods. Operate usually ignores the data and returns E_NOTIMPL in the HRESULT value.


The IADsExtension interface inherits from the IUnknown interface. IADsExtension also has these types of members:


The IADsExtension interface has these methods.


Performs the specified extended operation.


Maps the name(s) to a DISPID.


Invokes methods of the extended object.



Minimum supported client

Windows Vista

Minimum supported server

Windows Server 2008






IID_IADsExtension is defined as 3D35553C-D2B0-011D-B17B-0000F87593A0