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 .