IADsExtension (interfaz)

La interfaz IADsExtension se define de la siguiente manera:

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

El agregador (ADSI) llama al método IADsExtension::Operate . La extensión debe interpretar el parámetro dwCode y cada parámetro varData , según la documentación del proveedor.

El agregador (ADSI), llama al método IADsExtension::P rivateGetIDsOfNames . Se llama después de que ADSI determina la extensión para atender el envío. La extensión podría usar la información de tipo para obtener el DISPID, es decir, mediante la función DispGetIDsOfNames .

ADSI normalmente llama al método PrivateInvoke después de llamar a la función PrivateGetIDsOfNames . La extensión debe llamar al método real que implementa. Como alternativa, la extensión puede usar información de tipo y llamar a la función DispInvoke .

Todos los parámetros tienen el mismo significado que los parámetros del método estándar IDispatch::Invoke .