IADsExtension Interface
L’interface IADsExtension est définie comme suit :
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’agrégateur (ADSI) appelle la méthode IADsExtension::Operate . L’extension doit interpréter le paramètre dwCode et chaque paramètre varData , conformément à la documentation du fournisseur.
L’agrégateur (ADSI) appelle la méthode IADsExtension::P rivateGetIDsOfNames . Il est appelé après qu’ADSI a déterminé l’extension pour traiter la répartition. L’extension peut utiliser les informations de type pour obtenir le DISPID, c’est-à-dire à l’aide de la fonction DispGetIDsOfNames .
ADSI appelle normalement la méthode PrivateInvoke après avoir appelé la fonction PrivateGetIDsOfNames . L’extension doit appeler la méthode réelle qu’elle implémente. L’extension peut également utiliser des informations de type et appeler la fonction DispInvoke .
Tous les paramètres ont la même signification que les paramètres de la méthode IDispatch::Invoke standard.