이 클래스는 메서드의 구현을 IDispatch
제공합니다.
중요합니다
이 클래스와 해당 멤버는 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
및 wMajor
.로 표시된 형식 라이브러리에 wMinor
정의되어야 합니다.
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
처리하려는 각 개체의 각 이벤트에 대한 이벤트 싱크 맵에 a 또는 SINK_ENTRY_EX
매크로를 추가합니다. 복합 컨트롤의 기본 클래스로 사용하는 IDispEventImpl
경우 호출 AtlAdviseSinkMap
하여 이벤트 싱크 맵의 모든 항목에 대한 이벤트 원본과의 연결을 설정하고 끊을 수 있습니다. 다른 경우 또는 더 큰 제어를 위해 소스 개체와 기본 클래스 간의 연결을 설정하기 위해 호출 DispEventAdvise
합니다. 연결을 끊기 위해 호출 DispEventUnadvise
합니다.
이벤트를 처리해야 하는 각 개체에 대해 IDispEventImpl
고유 값을 사용하여 파생 nID
해야 합니다. 한 소스 개체에 대해 수정을 취소한 다음 다른 원본 개체에 대해 조언하여 기본 클래스를 다시 사용할 수 있지만 한 번에 단일 개체에서 처리할 수 있는 최대 원본 개체 수는 기본 클래스 수 IDispEventImpl
로 제한됩니다.
IDispEventImpl
는 구조체에 대한 포인터 IDispEventSimpleImpl
로 _ATL_FUNC_INFO
제공하는 대신 형식 라이브러리에서 인터페이스에 대한 형식 정보를 가져오는 것을 제외하고 동일한 기능을 제공합니다. 이벤트 인터페이스를 설명하는 형식 라이브러리가 없거나 형식 라이브러리 사용과 관련된 오버헤드를 방지하려는 경우에 사용합니다 IDispEventSimpleImpl
.
참고 항목
IDispEventImpl
주 IDispEventSimpleImpl
COM 개체의 IUnknown::QueryInterface
클래스 멤버에 직접 액세스하도록 허용하면서 각 IDispEventImpl
클래스와 IDispEventSimpleImpl
기본 클래스가 별도의 COM ID 역할을 할 수 있도록 하는 고유한 구현을 제공합니다.
ActiveX 이벤트 싱크의 CE ATL 구현은 형식 HRESULT
또는 void
이벤트 처리기 메서드의 반환 값만 지원합니다. 다른 반환 값은 지원되지 않으며 해당 동작은 정의되지 않습니다.
자세한 내용은 지원을 참조하세요 IDispEventImpl
.
상속 계층 구조
_IDispEvent
_IDispEventLocator
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] 함수가 호출되는 방법을 나타내는 구조체입니다.
반환 값
표준 HRESULT
값입니다.
IDispEventImpl::GetIDsOfNames
단일 멤버와 선택적 인수 이름 집합을 후속 호출DISPID
에 사용할 수 있는 해당 정IDispatch::Invoke
수 집합에 매핑합니다.
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] 검색할 형식 설명에 대한 핸들입니다.
반환 값
변형의 형식입니다.
설명
ITypeInfo::GetRefTypeInfo
을(를) 참조하세요.
IDispEventImpl::IDispEventImpl
생성자입니다. 클래스 템플릿 매개 변수plibid
, pdiid
및 wMajor
wMinor
.의 값을 저장합니다.
IDispEventImpl();
IDispEventImpl::_tihclass
이 typedef는 클래스 템플릿 매개 변수 tihclass
의 인스턴스입니다.
typedef tihclass _tihclass;
설명
기본적으로 클래스는 .입니다 CComTypeInfoHolder
.
CComTypeInfoHolder
는 클래스의 형식 정보를 관리합니다.
참고 항목
_ATL_FUNC_INFO
구조
IDispatchImpl
클래스
IDispEventSimpleImpl
클래스
SINK_ENTRY
SINK_ENTRY_EX
SINK_ENTRY_INFO
클래스 개요