다음을 통해 공유


IDispEventImpl 클래스

이 클래스는 메서드의 구현을 IDispatch 제공합니다.

Important

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

구문

template <UINT nID, class T,
    const IID* pdiid = &IID_NULL,
    const GUID* plibid = &GUID_NULL,
    WORD wMajor = 0,
    WORD wMinor = 0,
    class tihclass = CcomTypeInfoHolder>
class ATL_NO_VTABLE IDispEventImpl : public IDispEventSimpleImpl<nID, T, pdiid>

매개 변수

nID
원본 개체의 고유 식별자입니다. 복합 컨트롤의 기본 클래스인 경우 IDispEventImpl 이 매개 변수에 대해 원하는 포함된 컨트롤의 리소스 ID를 사용합니다. 다른 경우에는 임의 양의 정수를 사용합니다.

T
에서 파생 IDispEventImpl된 사용자의 클래스입니다.

pdiid
이 클래스에서 구현한 이벤트 dispinterface의 IID에 대한 포인터입니다. 이 인터페이스는 plibid, wMajorwMinor표시된 형식 라이브러리에 정의되어야 합니다.

plibid
pdiid가 가리키는 디스패치 인터페이스를 정의하는 형식 라이브러리에 대한 포인터입니다. &GUID_NULL 경우 이벤트 소싱 개체에서 형식 라이브러리가 로드됩니다.

wMajor
형식 라이브러리의 주 버전입니다. 기본값은 0입니다.

wMinor
형식 라이브러리의 부 버전입니다. 기본값은 0입니다.

tihclass
T에 대한 형식 정보를 관리하는 데 사용되는 클래스입니다. 기본값은 형식CComTypeInfoHolder의 클래스입니다. 그러나 이 템플릿 매개 변수는 다른 CComTypeInfoHolder형식의 클래스를 제공하여 재정의할 수 있습니다.

멤버

공용 Typedefs

속성 설명
IDispEventImpl::_tihclass 형식 정보를 관리하는 데 사용되는 클래스입니다. 기본적으로 . CComTypeInfoHolder

공용 생성자

속성 설명
IDispEventImpl::IDispEventImpl 생성자입니다.

공용 메서드

이름 설명
IDispEventImpl::GetFuncInfoFromId 지정된 디스패치 식별자에 대한 함수 인덱스를 찾습니다.
IDispEventImpl::GetIDsOfNames 단일 멤버와 선택적 인수 이름 집합을 해당하는 정수 DISPID 집합에 매핑합니다.
IDispEventImpl::GetTypeInfo 개체의 형식 정보를 검색합니다.
IDispEventImpl::GetTypeInfoCount 형식 정보 인터페이스의 수를 검색합니다.
IDispEventImpl::GetUserDefinedType 사용자 정의 형식의 기본 형식을 검색합니다.

설명

IDispEventImpl 는 해당 인터페이스의 모든 메서드/이벤트에 대한 구현 코드를 제공할 필요 없이 이벤트 dispinterface를 구현하는 방법을 제공합니다. IDispEventImpl 는 메서드의 구현을 IDispatch 제공합니다. 처리하려는 이벤트에 대한 구현만 제공해야 합니다.

IDispEventImpl 는 클래스의 이벤트 싱크 맵과 함께 작동하여 이벤트를 적절한 처리기 함수로 라우팅합니다. 이 클래스를 사용하려면 다음을 수행합니다.

처리하려는 각 개체의 각 이벤트에 대한 이벤트 싱크 맵에 SINK_ENTRY 또는 SINK_ENTRY_EX 매크로를 추가합니다. 복합 컨트롤의 기본 클래스로 사용하는 IDispEventImpl 경우 AtlAdviseSinkMap을 호출하여 이벤트 싱크 맵의 모든 항목에 대한 이벤트 원본과의 연결을 설정하고 끊을 수 있습니다. 다른 경우 또는 더 큰 제어를 위해 DispEventAdvise를 호출하여 원본 개체와 기본 클래스 간의 연결을 설정합니다. DispEventUnadvise를 호출하여 연결을 끊습니다.

이벤트를 처리해야 하는 각 개체에 대해 nID대한 고유 값을 사용하여 파생 IDispEventImpl 해야 합니다. 한 소스 개체에 대해 수정을 취소한 다음 다른 원본 개체에 대해 조언하여 기본 클래스를 다시 사용할 수 있지만 한 번에 단일 개체에서 처리할 수 있는 최대 원본 개체 수는 기본 클래스 수 IDispEventImpl 로 제한됩니다.

IDispEventImpl는 IDispEventSimpleImpl동일한 기능을 제공합니다. 단, _ATL_FUNC_INFO 구조체에 대한 포인터로 제공하는 대신 형식 라이브러리에서 인터페이스에 대한 형식 정보를 가져옵니다. 이벤트 인터페이스를 설명하는 형식 라이브러리가 없거나 형식 라이브러리 사용과 관련된 오버헤드를 방지하려는 경우에 사용합니다 IDispEventSimpleImpl .

참고 항목

IDispEventImplIDispEventSimpleImpl COM 개체의 IUnknown::QueryInterface 클래스 멤버에 직접 액세스하도록 허용하면서 각 IDispEventImpl 클래스와 IDispEventSimpleImpl 기본 클래스가 별도의 COM ID 역할을 할 수 있도록 하는 고유한 구현을 제공합니다.

ActiveX 이벤트 싱크의 CE ATL 구현은 이벤트 처리기 메서드에서 HRESULT 또는 void 형식의 반환 값만 지원합니다. 다른 반환 값은 지원되지 않으며 해당 동작은 정의되지 않습니다.

자세한 내용은 IDispEventImpl 지원을 참조하세요.

상속 계층 구조

_IDispEvent

_IDispEventLocator

IDispEventSimpleImpl

IDispEventImpl

요구 사항

헤더: atlcom.h

IDispEventImpl::GetFuncInfoFromId

지정된 디스패치 식별자에 대한 함수 인덱스를 찾습니다.

HRESULT GetFuncInfoFromId(
    const IID& iid,
    DISPID dispidMember,
    LCID lcid,
    _ATL_FUNC_INFO& info);

매개 변수

iid
[in] 함수의 ID에 대한 참조입니다.

dispidMember
[in] 함수의 디스패치 ID입니다.

lcid
[in] 함수 ID의 로캘 컨텍스트입니다.

info
[in] 함수가 호출되는 방법을 나타내는 구조체입니다.

Return Value

표준 HRESULT 값입니다.

IDispEventImpl::GetIDsOfNames

단일 멤버 및 선택적 인수 이름 집합을 IDispatch::Invoke에 대한 후속 호출에 사용할 수 있는 해당 정수 DISPID 집합에 매핑합니다.

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

설명

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

IDispEventImpl::GetTypeInfo

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.

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

설명

IDispEventImpl::GetTypeInfoCount

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).

STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);

설명

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

IDispEventImpl::GetUserDefinedType

사용자 정의 형식의 기본 형식을 검색합니다.

VARTYPE GetUserDefinedType(
    ITypeInfo* pTI,
    HREFTYPE hrt);

매개 변수

pTI
[in] 사용자 정의 형식을 포함하는 ITypeInfo 인터페이스에 대한 포인터입니다.

hrt
[in] 검색할 형식 설명에 대한 핸들입니다.

Return Value

변형의 형식입니다.

설명

ITypeInfo::GetRefTypeInfo를 참조하세요.

IDispEventImpl::IDispEventImpl

생성자입니다. 클래스 템플릿 매개 변수 plibid, pdiid, wMajorwMinor의 값을 저장합니다.

IDispEventImpl();

IDispEventImpl::tihclass

이 typedef는 클래스 템플릿 매개 변수 tihclass의 인스턴스입니다.

typedef tihclass _tihclass;

설명

기본적으로 클래스는 .입니다 CComTypeInfoHolder. CComTypeInfoHolder 는 클래스의 형식 정보를 관리합니다.

참고 항목

_ATL_FUNC_INFO 구조체
IDispatchImpl 클래스
IDispEventSimpleImpl 클래스
SINK_ENTRY
SINK_ENTRY_EX
SINK_ENTRY_INFO
클래스 개요