다음을 통해 공유


IDispatchImpl 클래스

이중 인터페이스 부분에 대한 IDispatch 기본 구현을 제공합니다.

Important

이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.

구문

template<class T,
        const IID* piid= &__uuidof(T),
        const GUID* plibid = &CAtlModule::m_libid,
        WORD wMajor = 1,
        WORD wMinor = 0,
        class tihclass = CComTypeInfoHolder>
class ATL_NO_VTABLE IDispatchImpl : public T

매개 변수

T
[in] 이중 인터페이스입니다.

piid
[in] T의 IID에 대한 포인터입니다.

plibid
[in] 인터페이스에 대한 정보를 포함하는 형식 라이브러리의 LIBID에 대한 포인터입니다. 기본적으로 서버 수준 형식 라이브러리는 전달됩니다.

wMajor
[in] 형식 라이브러리의 주 버전입니다. 기본적으로 값은 1입니다.

wMinor
[in] 형식 라이브러리의 부 버전입니다. 기본적으로 값은 0입니다.

tihclass
[in] T에 대한 형식 정보를 관리하는 데 사용되는 클래스입니다. 기본적으로 값은 .입니다CComTypeInfoHolder.

멤버

공용 생성자

속성 설명
IDispatchImpl::IDispatchImpl 생성자입니다. 이중 인터페이스에 대한 형식 정보를 관리하는 보호된 멤버 변수를 호출 AddRef 합니다. 이 소멸자는 Release을 호출합니다.

공용 메서드

이름 설명
IDispatchImpl::GetIDsOfNames 이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.
IDispatchImpl::GetTypeInfo 이중 인터페이스에 대한 형식 정보를 검색합니다.
IDispatchImpl::GetTypeInfoCount 이중 인터페이스에 사용할 수 있는 형식 정보가 있는지 여부를 결정합니다.
IDispatchImpl::Invoke 이중 인터페이스에 의해 노출되는 메서드 및 속성에 대한 액세스를 제공합니다.

설명

IDispatchImpl 는 개체의 IDispatch 모든 이중 인터페이스 부분에 대한 기본 구현을 제공합니다. 이중 인터페이스는 Automation 호환 형식에서 IDispatch 파생되고 사용됩니다. dispinterface와 마찬가지로 이중 인터페이스는 초기 바인딩 및 지연 바인딩을 지원합니다. 그러나 이중 인터페이스는 vtable 바인딩도 지원합니다.

다음 예제에서는 일반적인 구현은 IDispatchImpl합니다.

class ATL_NO_VTABLE CBeeper :
   public CComObjectRootEx<CComSingleThreadModel>,
   public CComCoClass<CBeeper, &CLSID_Beeper>,
   public IDispatchImpl<IBeeper, &IID_IBeeper, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>

기본적으로 클래스는 IDispatchImpl 레지스트리에서 T에 대한 형식 정보를 조회합니다. 등록되지 않은 인터페이스를 구현하려면 미리 정의된 버전 번호를 사용하여 레지스트리에 액세스하지 않고 클래스를 사용할 IDispatchImpl 수 있습니다. wMajor의 값으로 0xFFFF 있고 wMinorIDispatchImpl의 값으로 0xFFFF 개체를 만드는 IDispatchImpl 경우 클래스는 레지스트리 대신 .dll 파일에서 형식 라이브러리를 검색합니다.

IDispatchImpl 에는 이중 인터페이스에 대한 형식 정보를 관리하는 형식 CComTypeInfoHolder 의 정적 멤버가 포함되어 있습니다. 동일한 이중 인터페이스를 구현하는 여러 개체가 있는 경우 하나의 인스턴스 CComTypeInfoHolder 만 사용됩니다.

상속 계층 구조

T

IDispatchImpl

요구 사항

헤더: atlcom.h

IDispatchImpl::GetIDsOfNames

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.

STDMETHOD(GetIDsOfNames)(
    REFIID riid,
    LPOLESTR* rgszNames,
    UINT cNames,
    LCID lcid,
    DISPID* rgdispid);

설명

Windows SDK에서 IDispatch::GetIDsOfNames를 참조하세요.

IDispatchImpl::GetTypeInfo

이중 인터페이스에 대한 형식 정보를 검색합니다.

STDMETHOD(GetTypeInfo)(
    UINT itinfo,
    LCID lcid,
    ITypeInfo** pptinfo);

설명

Windows SDK에서 IDispatch::GetTypeInfo를 참조하세요.

IDispatchImpl::GetTypeInfoCount

이중 인터페이스에 사용할 수 있는 형식 정보가 있는지 여부를 결정합니다.

STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);

설명

Windows SDK에서 참조 IDispatch::GetTypeInfoCount 하세요.

IDispatchImpl::IDispatchImpl

생성자입니다. 이중 인터페이스에 대한 형식 정보를 관리하는 보호된 멤버 변수를 호출 AddRef 합니다. 이 소멸자는 Release을 호출합니다.

IDispatchImpl();

IDispatchImpl::Invoke

이중 인터페이스에 의해 노출되는 메서드 및 속성에 대한 액세스를 제공합니다.

STDMETHOD(Invoke)(
    DISPID dispidMember,
    REFIID riid,
    LCID lcid,
    WORD wFlags,
    DISPPARAMS* pdispparams,
    VARIANT* pvarResult,
    EXCEPINFO* pexcepinfo,
    UINT* puArgErr);

설명

Windows SDK에서 IDispatch::Invoke를 참조하세요.

참고 항목

클래스 개요