Directory Services |
In this section, an object means the object, as a whole, as an ADSI client views it. That is, ADSI and all its extensions.
If two or more dual IDispatch interfaces in an object support a property or method of the same name, for example, Func1, invocation is determined using the following criteria:
In the Late Binding versus Vtable Access in the ADSI Extension Model section, there is a brief explanation about how a client can add a pointer to a dual interface, and a description of the types of environments that support vtable access. For more information, see the programming guide for COM/OLE, Visual Basic, Visual Basic for Applications, VBScript, and JavaScript.
If both conditions are true, that is, a client has a pointer to a dual (only) interface, IDuallInf1, which supports a function called Func1, and the Automation environment supports vtable access, IDualInf1::Func1 is invoked directly through ADSI vtable access.
If either condition 1 or 2, as stated above, fails, IDispatch::GetIDsOfNames and IDispatch::Invoke are called to invoke Func1. Because all extension objects redirect the IDispatch functions back to the aggregator, the aggregator controls which Func1 is invoked. The rules are as follows: