IADsExtension 接口
IADsExtension 接口定义如下:
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;
};
聚合器 (ADSI) 会调用 IADsExtension::Operate 方法。 扩展应根据提供程序的文档解释 dwCode 参数和每个 varData 参数。
聚合器 (ADSI) 会调用 IADsExtension::PrivateGetIDsOfNames 方法。 在 ADSI 确定为调度提供服务的扩展后,会调用该扩展。 扩展可以使用类型信息来获取 DISPID,即使用 DispGetIDsOfNames 函数。
ADSI 通常会在调用 PrivateGetIDsOfNames 函数后调用 PrivateInvoke 方法。 扩展应调用其实现的实际方法。 或者,该扩展可以使用类型信息并调用 DispInvoke 函数。
所有参数的含义与标准 IDispatch::Invoke 方法中的参数相同。