IDispEventSimpleImpl 클래스
이 클래스는 형식 라이브러리에서 형식 정보를 가져오지 않고 메서드의 IDispatch
구현을 제공합니다.
Important
이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.
구문
template <UINT nID, class T, const IID* pdiid>
class ATL_NO_VTABLE IDispEventSimpleImpl : public _IDispEventLocator<nID, pdiid>
매개 변수
nID
원본 개체의 고유 식별자입니다. 복합 컨트롤의 기본 클래스인 경우 IDispEventSimpleImpl
이 매개 변수에 대해 원하는 포함된 컨트롤의 리소스 ID를 사용합니다. 다른 경우에는 임의 양의 정수를 사용합니다.
T
에서 파생 IDispEventSimpleImpl
된 사용자의 클래스입니다.
pdiid
이 클래스에서 구현한 이벤트 dispinterface의 IID에 대한 포인터입니다.
멤버
공용 메서드
이름 | 설명 |
---|---|
IDispEventSimpleImpl::Advise | 기본 이벤트 원본과의 연결을 설정합니다. |
IDispEventSimpleImpl::D ispEventAdvise | 이벤트 원본과의 연결을 설정합니다. |
IDispEventSimpleImpl::D ispEventUnadvise | 이벤트 원본과의 연결을 끊습니다. |
IDispEventSimpleImpl::GetIDsOfNames | E_NOTIMPL을 반환합니다. |
IDispEventSimpleImpl::GetTypeInfo | E_NOTIMPL을 반환합니다. |
IDispEventSimpleImpl::GetTypeInfoCount | E_NOTIMPL을 반환합니다. |
IDispEventSimpleImpl::Invoke | 이벤트 싱크 맵에 나열된 이벤트 처리기를 호출합니다. |
IDispEventSimpleImpl::Unadvise | 기본 이벤트 원본과의 연결을 끊습니다. |
설명
IDispEventSimpleImpl
는 해당 인터페이스의 모든 메서드/이벤트에 대한 구현 코드를 제공할 필요 없이 이벤트 dispinterface를 구현하는 방법을 제공합니다. IDispEventSimpleImpl
는 메서드의 구현을 IDispatch
제공합니다. 처리하려는 이벤트에 대한 구현만 제공해야 합니다.
IDispEventSimpleImpl
는 클래스의 이벤트 싱크 맵과 함께 작동하여 이벤트를 적절한 처리기 함수로 라우팅합니다. 이 클래스를 사용하려면 다음을 수행합니다.
처리하려는 각 개체의 각 이벤트에 대한 이벤트 싱크 맵에 SINK_ENTRY_INFO 매크로를 추가합니다.
_ATL_FUNC_INFO 구조체에 대한 포인터 를 각 항목에 매개 변수로 전달하여 각 이벤트에 대한 형식 정보를 제공합니다. x86 플랫폼에서
_ATL_FUNC_INFO.cc
는 __stdcall 콜백 함수 호출 메서드를 사용하여 값을 CC_CDECL 합니다.DispEventAdvise를 호출하여 원본 개체와 기본 클래스 간의 연결을 설정합니다.
DispEventUnadvise를 호출하여 연결을 끊습니다.
이벤트를 처리해야 하는 각 개체에 대해 nID에 대한 고유 값을 사용하여 파생 IDispEventSimpleImpl
해야 합니다. 한 소스 개체에 대해 수정을 취소한 다음 다른 원본 개체에 대해 조언하여 기본 클래스를 다시 사용할 수 있지만 한 번에 단일 개체에서 처리할 수 있는 최대 원본 개체 수는 기본 클래스 수 IDispEventSimpleImpl
로 제한됩니다.
IDispEventSimplImpl
는 형식 라이브러리에서 인터페이스에 대한 형식 정보를 얻지 못한다는 점을 제외하고 IDispEventImpl과 동일한 기능을 제공합니다. 마법사는 코드를 기반으로만 IDispEventImpl
생성하지만 코드를 직접 추가하여 사용할 IDispEventSimpleImpl
수 있습니다. 이벤트 인터페이스를 설명하는 형식 라이브러리가 없거나 형식 라이브러리 사용과 관련된 오버헤드를 방지하려는 경우에 사용합니다 IDispEventSimpleImpl
.
참고 항목
IDispEventImpl
주 IDispEventSimpleImpl
COM 개체의 IUnknown::QueryInterface
클래스 멤버에 대한 직접 액세스를 허용하면서 각 IDispEventImpl
또는 IDispEventSimpleImpl
기본 클래스가 별도의 COM ID로 작동할 수 있도록 하는 고유한 구현을 제공합니다.
ActiveX 이벤트 싱크의 CE ATL 구현은 이벤트 처리기 메서드에서 HRESULT 또는 void 형식의 반환 값만 지원합니다. 다른 반환 값은 지원되지 않으며 해당 동작은 정의되지 않습니다.
자세한 내용은 IDispEventImpl 지원을 참조하세요.
상속 계층 구조
_IDispEvent
_IDispEventLocator
IDispEventSimpleImpl
요구 사항
헤더: atlcom.h
IDispEventSimpleImpl::Advise
pUnk가 나타내는 이벤트 원본과의 연결을 설정하려면 이 메서드를 호출합니다.
HRESULT Advise(IUnknown* pUnk);
매개 변수
pUnk
[in] 이벤트 원본 개체의 IUnknown
인터페이스에 대한 포인터입니다.
Return Value
S_OK 또는 오류 HRESULT 값입니다.
설명
연결이 설정되면 pUnk에서 발생한 이벤트는 이벤트 싱크 맵을 통해 클래스의 처리기로 라우팅됩니다.
참고 항목
클래스가 여러 IDispEventSimpleImpl
클래스에서 파생되는 경우 관심 있는 특정 기본 클래스를 사용하여 호출 범위를 지정하여 이 메서드에 대한 호출을 명확히 해야 합니다.
Advise
는 기본 이벤트 원본과의 연결을 설정하며, AtlGetObjectSourceInterface에 의해 결정된 대로 개체의 기본 이벤트 원본의 IID를 가져옵니다.
IDispEventSimpleImpl::D ispEventAdvise
pUnk가 나타내는 이벤트 원본과의 연결을 설정하려면 이 메서드를 호출합니다.
HRESULT DispEventAdvise(IUnknown* pUnk const IID* piid);
매개 변수
pUnk
[in] 이벤트 원본 개체의 IUnknown
인터페이스에 대한 포인터입니다.
piid
이벤트 원본 개체의 IID에 대한 포인터입니다.
Return Value
S_OK 또는 오류 HRESULT 값입니다.
설명
그 후 pUnk에서 발생한 이벤트는 이벤트 싱크 맵을 통해 클래스의 처리기로 라우팅됩니다.
참고 항목
클래스가 여러 IDispEventSimpleImpl
클래스에서 파생되는 경우 관심 있는 특정 기본 클래스를 사용하여 호출 범위를 지정하여 이 메서드에 대한 호출을 명확히 해야 합니다.
DispEventAdvise
에 지정된 pdiid
이벤트 원본과의 연결을 설정합니다.
IDispEventSimpleImpl::D ispEventUnadvise
pUnk가 나타내는 이벤트 원본과의 연결을 끊습니다.
HRESULT DispEventUnadvise(IUnknown* pUnk const IID* piid);
매개 변수
pUnk
[in] 이벤트 원본 개체의 IUnknown
인터페이스에 대한 포인터입니다.
piid
이벤트 원본 개체의 IID에 대한 포인터입니다.
Return Value
S_OK 또는 오류 HRESULT 값입니다.
설명
연결이 끊어지면 이벤트는 더 이상 이벤트 싱크 맵에 나열된 처리기 함수로 라우팅되지 않습니다.
참고 항목
클래스가 여러 IDispEventSimpleImpl
클래스에서 파생되는 경우 관심 있는 특정 기본 클래스를 사용하여 호출 범위를 지정하여 이 메서드에 대한 호출을 명확히 해야 합니다.
DispEventAdvise
에 지정된 이벤트 원본으로 설정된 연결을 끊습니다 pdiid
.
IDispEventSimpleImpl::GetIDsOfNames
이 반환 구현은 IDispatch::GetIDsOfNames
E_NOTIMPL.
STDMETHOD(GetIDsOfNames)(
REFIID /* riid */,
LPOLESTR* /* rgszNames */,
UINT /* cNames */,
LCID /* lcid */,
DISPID* /* rgdispid */);
설명
Windows SDK에서 IDispatch::GetIDsOfNames를 참조하세요.
IDispEventSimpleImpl::GetTypeInfo
이 반환 구현은 IDispatch::GetTypeInfo
E_NOTIMPL.
STDMETHOD(GetTypeInfo)(
UINT /* itinfo */,
LCID /* lcid */,
ITypeInfo** /* pptinfo */);
설명
Windows SDK에서 IDispatch::GetTypeInfo를 참조하세요.
IDispEventSimpleImpl::GetTypeInfoCount
이 반환 구현은 IDispatch::GetTypeInfoCount
E_NOTIMPL.
STDMETHOD(GetTypeInfoCount)(UINT* /* pctinfo */);
설명
Windows SDK에서 IDispatch::GetTypeInfoCount를 참조 하세요 .
IDispEventSimpleImpl::Invoke
이 구현은 IDispatch::Invoke
이벤트 싱크 맵에 나열된 이벤트 처리기를 호출합니다.
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID /* riid */,
LCID lcid,
WORD /* wFlags */,
DISPPARMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* /* pexcepinfo */,
UINT* /* puArgErr */);
설명
IDispEventSimpleImpl::Unadvise
pUnk가 나타내는 이벤트 원본과의 연결을 끊습니다.
HRESULT Unadvise(IUnknown* pUnk);
매개 변수
pUnk
[in] 이벤트 원본 개체의 IUnknown
인터페이스에 대한 포인터입니다.
Return Value
S_OK 또는 오류 HRESULT 값입니다.
설명
연결이 끊어지면 이벤트는 더 이상 이벤트 싱크 맵에 나열된 처리기 함수로 라우팅되지 않습니다.
참고 항목
클래스가 여러 IDispEventSimpleImpl
클래스에서 파생되는 경우 관심 있는 특정 기본 클래스를 사용하여 호출 범위를 지정하여 이 메서드에 대한 호출을 명확히 해야 합니다.
Unadvise
에 지정된 기본 이벤트 원본으로 설정된 연결을 끊습니다 pdiid
.
Unavise
는 기본 이벤트 원본과의 연결을 끊고 AtlGetObjectSourceInterface에 의해 결정된 대로 개체의 기본 이벤트 원본의 IID를 가져옵니다.
참고 항목
_ATL_FUNC_INFO 구조체
IDispatchImpl 클래스
IDispEventImpl 클래스
SINK_ENTRY_INFO
클래스 개요