Compartilhar via


IADsExtension Interface

A interfaceIADsExtensioné definida da seguinte maneira:

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

O agregador (ADSI) chama o método IADsExtension::Operate. A extensão deve interpretar o parâmetro dwCode e cada parâmetro varData, de acordo com a documentação do provedor.

O agregador (ADSI), chama o método IADsExtension::P rivateGetIDsOfNames. Ele é chamado depois que ADSI determina a extensão para atender à expedição. A extensão pode usar as informações de tipo para obter o DISPID, ou seja, usando a função DispGetIDsOfNames.

A ADSI normalmente chama o método PrivateInvoke depois de chamar a funçãoPrivateGetIDsOfNames. A extensão deve chamar o método real que ele implementa. Como alternativa, a extensão pode usar informações de tipo e chamar a função DispInvoke.

Todos os parâmetros têm o mesmo significado que os parâmetros no método IDispatch de padrão::Invoke.