次の方法で共有


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 メソッドのパラメーターと同じ意味を持ちます。