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를 참조하세요.