다음을 통해 공유


복합 컨트롤 매크로

이러한 매크로는 이벤트 싱크 맵 및 항목을 정의합니다.

매크로 설명
BEGIN_SINK_MAP 복합 컨트롤에 대한 이벤트 싱크 맵의 시작을 표시합니다.
END_SINK_MAP 복합 컨트롤에 대한 이벤트 싱크 맵의 끝을 표시합니다.
SINK_ENTRY 이벤트 싱크 맵에 대한 항목입니다.
SINK_ENTRY_EX 추가 매개 변수를 사용하여 이벤트 싱크 맵에 대한 항목입니다.
SINK_ENTRY_EX_P (Visual Studio 2017) iid에 대한 포인터를 사용하는 것을 제외하고 SINK_ENTRY_EX 유사합니다.
SINK_ENTRY_INFO IDispEventSimpleImpl과 함께 사용하기 위해 수동으로 제공된 형식 정보가 포함된 이벤트 싱크 맵에 대한 항목입니다.
SINK_ENTRY_INFO_P (Visual Studio 2017) iid에 대한 포인터를 사용하는 것을 제외하고 SINK_ENTRY_INFO 유사합니다.

요구 사항

헤더: atlcom.h

BEGIN_SINK_MAP

복합 컨트롤에 대한 이벤트 싱크 맵의 시작을 선언합니다.

BEGIN_SINK_MAP(_class)

매개 변수

_수업
[in] 컨트롤을 지정합니다.

예시

BEGIN_SINK_MAP(CMyCompositeCtrl)
   //Make sure the Event Handlers have __stdcall calling convention
   SINK_ENTRY(IDC_CALENDAR1, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar1)
   SINK_ENTRY(IDC_CALENDAR2, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar2)
END_SINK_MAP()

설명

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

END_SINK_MAP

복합 컨트롤에 대한 이벤트 싱크 맵의 끝을 선언합니다.

END_SINK_MAP()

예시

BEGIN_SINK_MAP(CMyCompositeCtrl)
   //Make sure the Event Handlers have __stdcall calling convention
   SINK_ENTRY(IDC_CALENDAR1, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar1)
   SINK_ENTRY(IDC_CALENDAR2, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar2)
END_SINK_MAP()

설명

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

SINK_ENTRY

ID로 식별된 컨트롤의 지정된 이벤트(dispid)에 대한 처리기 함수(fn)를 선언합니다.

SINK_ENTRY( id, dispid, fn )

매개 변수

id
[in] 컨트롤을 식별합니다.

dispid
[in] 지정된 이벤트를 식별합니다.

fn(2018
[in] 이벤트 처리기 함수의 이름입니다. 이 함수는 _stdcall 호출 규칙을 사용하고 적절한 dispinterface 스타일 서명이 있어야 합니다.

예시

BEGIN_SINK_MAP(CMyCompositeCtrl)
   //Make sure the Event Handlers have __stdcall calling convention
   SINK_ENTRY(IDC_CALENDAR1, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar1)
   SINK_ENTRY(IDC_CALENDAR2, DISPID_CLICK, &CMyCompositeCtrl::ClickCalendar2)
END_SINK_MAP()

설명

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

SINK_ENTRY_EX 및 SINK_ENTRY_EX_P

ID로 식별된 컨트롤에 대해 디스패치 인터페이스(iid)의 지정된 이벤트(dispid)에 대한 처리기 함수(fn)를 선언합니다.

SINK_ENTRY_EX( id, iid, dispid, fn )
SINK_ENTRY_EX_P( id, piid, dispid, fn ) // (Visual Studio 2017)

매개 변수

id
[in] 컨트롤을 식별합니다.

iid
[in] 디스패치 인터페이스를 식별합니다.

piid
[in] 디스패치 인터페이스에 대한 포인터입니다.

dispid
[in] 지정된 이벤트를 식별합니다.

fn(2018
[in] 이벤트 처리기 함수의 이름입니다. 이 함수는 _stdcall 호출 규칙을 사용하고 적절한 dispinterface 스타일 서명이 있어야 합니다.

예시

BEGIN_SINK_MAP(CMyCompositCtrl2)
   //Make sure the Event Handlers have __stdcall calling convention
   SINK_ENTRY_EX(IDC_CALENDAR1, __uuidof(DCalendarEvents), DISPID_CLICK, 
      &CMyCompositCtrl2::ClickCalendar1)
   SINK_ENTRY_EX(IDC_CALENDAR2, __uuidof(DCalendarEvents), DISPID_CLICK, 
      &CMyCompositCtrl2::ClickCalendar2)
END_SINK_MAP()

설명

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

SINK_ENTRY_INFO 및 SINK_ENTRY_INFO_P

이벤트 싱크 맵 내에서 SINK_ENTRY_INFO 매크로를 사용하여 IDispEventSimpleImpl에서 관련 처리기 함수로 이벤트를 라우팅하는 데 필요한 정보를 제공합니다.

SINK_ENTRY_INFO( id, iid, dispid, fn, info )
SINK_ENTRY_INFO_P( id, piid, dispid, fn, info ) // (Visual Studio 2017)

매개 변수

id
[in] 이벤트 원본을 식별하는 부호 없는 정수입니다. 이 값은 관련 IDispEventSimpleImpl 기본 클래스에 사용되는 nID 템플릿 매개 변수와 일치해야 합니다.

iid
[in] 디스패치 인터페이스를 식별하는 IID입니다.

piid
[in] 디스패치 인터페이스를 식별하는 IID에 대한 포인터입니다.

dispid
[in] 지정된 이벤트를 식별하는 DISPID입니다.

fn(2018
[in] 이벤트 처리기 함수의 이름입니다. 이 함수는 _stdcall 호출 규칙을 사용하고 적절한 dispinterface 스타일 서명이 있어야 합니다.

info
[in] 이벤트 처리기 함수에 대한 형식 정보입니다. 이 형식 정보는 구조체에 대한 포인터 형식으로 _ATL_FUNC_INFO 제공됩니다. CC_CDECL 구조체의 CALLCONV 필드에 _ATL_FUNC_INFO 대해 Windows CE에서 지원되는 유일한 옵션입니다. 다른 값은 지원되지 않으므로 해당 동작은 정의되지 않습니다.

설명

처음 네 개의 매크로 매개 변수는 SINK_ENTRY_EX 매크로의 매개 변수와 동일합니다. 최종 매개 변수는 이벤트에 대한 형식 정보를 제공합니다. ActiveX 이벤트 싱크의 CE ATL 구현은 이벤트 처리기 메서드에서 HRESULT 또는 void 형식의 반환 값만 지원합니다. 다른 반환 값은 지원되지 않으며 해당 동작은 정의되지 않습니다.

참고 항목

매크로
복합 컨트롤 전역 함수