Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Эти макросы определяют карты и записи приемника событий.
| Макрос | Description |
|---|---|
| BEGIN_SINK_MAP | Помечает начало карты приемника событий для составного элемента управления. |
| END_SINK_MAP | Помечает конец карты приемника событий для составного элемента управления. |
| SINK_ENTRY | Запись на карту приемника событий. |
| SINK_ENTRY_EX | Запись в карту приемника событий с дополнительным параметром. |
| SINK_ENTRY_EX_P | (Visual Studio 2017) Аналогично SINK_ENTRY_EX, за исключением того, что он принимает указатель на iid. |
| SINK_ENTRY_INFO | Запись на карту приемника событий с данными типа, предоставленными вручную для использования с IDispEventSimpleImplImpl. |
| SINK_ENTRY_INFO_P | (Visual Studio 2017) Аналогично SINK_ENTRY_INFO за исключением того, что он принимает указатель на iid. |
Требования
Заголовок: 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()
Замечания
Реализация CE ATL приемников событий ActiveX поддерживает только возвращаемые значения типа 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()
Замечания
Реализация CE ATL приемников событий ActiveX поддерживает только возвращаемые значения типа HRESULT или void из методов обработчика событий. Любое другое возвращаемое значение не поддерживается, и его поведение не определено.
SINK_ENTRY
Объявляет функцию обработчика (fn) для указанного события (диспида), определяемого идентификатором элемента управления.
SINK_ENTRY( id, dispid, fn )
Параметры
id
[in] Определяет элемент управления.
dispid
[in] Определяет указанное событие.
fn
[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()
Замечания
Реализация CE ATL приемников событий ActiveX поддерживает только возвращаемые значения типа HRESULT или void из методов обработчика событий. Любое другое возвращаемое значение не поддерживается, и его поведение не определено.
SINK_ENTRY_EX и SINK_ENTRY_EX_P
Объявляет функцию обработчика (fn) для указанного события (dispid), интерфейса диспетчера (iid), для элемента управления, определяемого идентификатором.
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
[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()
Замечания
Реализация CE ATL приемников событий ActiveX поддерживает только возвращаемые значения типа HRESULT или void из методов обработчика событий. Любое другое возвращаемое значение не поддерживается, и его поведение не определено.
SINK_ENTRY_INFO и SINK_ENTRY_INFO_P
Используйте макрос SINK_ENTRY_INFO в карте приемника событий, чтобы предоставить сведения, необходимые IDispEventSimpleImplImpl для маршрутизации событий в соответствующую функцию обработчика.
SINK_ENTRY_INFO( id, iid, dispid, fn, info )
SINK_ENTRY_INFO_P( id, piid, dispid, fn, info ) // (Visual Studio 2017)
Параметры
id
[in] Целое число без знака, определяющее источник события. Это значение должно соответствовать параметру шаблона nID, используемому в связанном базовом классе IDispEventSimpleImpl.
iid
[in] IID, идентифицирующий интерфейс диспетчера.
piid
[in] Указатель на IID, определяющий интерфейс диспетчера.
dispid
[in] DISPID, определяющий указанное событие.
fn
[in] Имя функции обработчика событий. Эта функция должна использовать _stdcall соглашение о вызовах и иметь соответствующую подпись в стиле dispinterface.
info
[in] Введите сведения о функции обработчика событий. Эти сведения о типе предоставляются в виде указателя на структуру _ATL_FUNC_INFO . CC_CDECL является единственным вариантом, поддерживаемым в Windows CE для поля _ATL_FUNC_INFO CALLCONV структуры. Любое другое значение не поддерживается, поэтому его поведение не определено.
Замечания
Первые четыре параметра макроса совпадают с теми, которые используются для макроса SINK_ENTRY_EX . Окончательный параметр предоставляет сведения о типе события. Реализация CE ATL приемников событий ActiveX поддерживает только возвращаемые значения типа HRESULT или void из методов обработчика событий. Любое другое возвращаемое значение не поддерживается, и его поведение не определено.