IADsExtension-Schnittstelle

Die IADsExtension-Schnittstelle ist wie folgt definiert:

IADsExtension : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Operate( 
            /* [in] */ DWORD dwCode,
            /* [in] */ VARIANT varData1,
            /* [in] */ VARIANT varData2,
            /* [in] */ VARIANT varData3) = 0;
 
        virtual HRESULT STDMETHODCALLTYPE PrivateGetIDsOfNames( 
            /* [in] */ REFIID riid,
            /* [in] */ OLECHAR **rgszNames,
            /* [in] */ unsigned int cNames,
            /* [in] */ LCID lcid,
            /* [out] */ DISPID *rgDispid) = 0;
 
        virtual HRESULT STDMETHODCALLTYPE PrivateInvoke( 
            /* [in] */ DISPID dispidMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [in] */ DISPPARAMS *pdispparams,
            /* [out] */ VARIANT *pvarResult,
            /* [out] */ EXCEPINFO *pexcepinfo,
            /* [out] */ unsigned int *puArgErr) = 0;
    };

Der Aggregator (ADSI) ruft die IADsExtension::Operate-Methode auf. Die Erweiterung sollte den dwCode-Parameter und jeden varData-Parameter gemäß der Dokumentation des Anbieters interpretieren.

Der Aggregator (ADSI) ruft die IADsExtension::P rivateGetIDsOfNames-Methode auf. Sie wird aufgerufen, nachdem ADSI die Erweiterung für den Versanddienst ermittelt hat. Die Erweiterung könnte die Typinformationen zum Abrufen der DISPID verwenden, d. h. mithilfe der DispGetIDsOfNames-Funktion .

ADSI ruft normalerweise die PrivateInvoke-Methode auf, nachdem die PrivateGetIDsOfNames-Funktion aufgerufen wurde. Die Erweiterung sollte die tatsächliche Methode aufrufen, die sie implementiert. Alternativ kann die Erweiterung Typinformationen verwenden und die DispInvoke-Funktion aufrufen.

Alle Parameter haben die gleiche Bedeutung wie die Parameter in der IDispatch::Invoke-Standardmethode .