Compartir a través de


Interfaz IADsExtension

La interfazIADsExtension 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ónPrivateGetIDsOfNames. 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 IDispatch::Invoke estándar.