Condividi tramite


Interfaccia IADsExtension

L'interfaccia IADsExtension è definita come segue:

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;
    };

L'aggregatore (ADSI) chiama il metodo IADsExtension::Operate. L'estensione deve interpretare il parametro dwCode e ogni parametro varData, in base alla documentazione del provider.

L'aggregatore (ADSI), chiama il metodo IADsExtension::P rivateGetIDsOfNames. Viene chiamato dopo che ADSI determina l'estensione per il servizio dell'invio. L'estensione può usare le informazioni sul tipo per ottenere il DISPID, ovvero usando la funzione didiDispGetIDsOfNames.

ADSI chiama in genere il metodoPrivateInvokedopo aver chiamato la funzionePrivateGetIDsOfNames. L'estensione deve chiamare il metodo effettivo implementato. In alternativa, l'estensione può usare informazioni sul tipo e chiamare la funzione di DispInvoke.

Tutti i parametri hanno lo stesso significato dei parametri nel metodo IDispatch::Invoke standard.