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::P rivateGetIDsOfNames 方法。 在 ADSI 确定为调度提供服务的扩展后调用它。 该扩展可以使用类型信息来获取 DISPID,即使用 DispGetIDsOfNames 函数。

ADSI 通常在调用 PrivateGetIDsOfNames 函数后调用 PrivateInvoke 方法。 扩展应调用它实现的实际方法。 或者,该扩展可以使用类型信息并调用 DispInvoke 函数。

所有参数的含义都与标准 IDispatch::Invoke 方法中的参数相同。