다음을 통해 공유


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

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

IDispEventSimplImpl는 형식 라이브러리에서 인터페이스에 대한 형식 정보를 얻지 못한다는 점을 제외하고 IDispEventImpl과 동일한 기능을 제공합니다. 마법사는 코드를 기반으로만 IDispEventImpl생성하지만 코드를 직접 추가하여 사용할 IDispEventSimpleImpl 수 있습니다. 이벤트 인터페이스를 설명하는 형식 라이브러리가 없거나 형식 라이브러리 사용과 관련된 오버헤드를 방지하려는 경우에 사용합니다 IDispEventSimpleImpl .

참고 항목

IDispEventImplIDispEventSimpleImpl 또는 IDispEventSimpleImpl 기본 클래스가 IDispEventImpl 별도의 COM ID로 작동하도록 설정하는 동시에 기본 COM 개체의 클래스 멤버에 직접 액세스할 수 있도록 하는 고유한 구현 IUnknown::QueryInterface 을 제공합니다.

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 */);

설명

IDispatch::Invoke를 참조하세요.

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
클래스 개요