IADsExtension interface (iads.h)

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.

Inheritance

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

Methods

The IADsExtension interface has these methods.

 
IADsExtension::Operate

Interprets the control code and input parameters according to the specifications of the provider.
IADsExtension::PrivateGetIDsOfNames

The IADsExtension::PrivateGetIDsOfNames method is called by the aggregator, ADSI, after ADSI determines that the extension is used to support a dual or dispatch interface. The method can use the type data to get DISPID using IDispatch::GetIDsOfNames.
IADsExtension::PrivateInvoke

The IADsExtension::PrivateInvoke method is normally called by ADSI after the IADsExtension::PrivateGetIDsOfNames method. This method can either have a custom implementation or it can delegate the operation to IDispatch::DispInvoke method.

Requirements

Requirement Value
Minimum supported client Windows Vista
Minimum supported server Windows Server 2008
Target Platform Windows
Header iads.h