Macros de controle de composição

Essas macros definem mapas e entradas do coletor de eventos.

Macro Descrição
BEGIN_SINK_MAP Marca o início do mapa do coletor de eventos para o controle composto.
END_SINK_MAP Marca o final do mapa do coletor de eventos para o controle composto.
SINK_ENTRY Entrada no mapa do coletor de eventos.
SINK_ENTRY_EX Entrada no mapa do coletor de eventos com um parâmetro extra.
SINK_ENTRY_EX_P (Visual Studio 2017) Semelhante a SINK_ENTRY_EX exceto que é preciso um ponteiro para iid.
SINK_ENTRY_INFO Entrada no mapa do coletor de eventos com informações de tipo fornecidas manualmente para uso com IDispEventSimpleImpleImpl.
SINK_ENTRY_INFO_P (Visual Studio 2017) Semelhante a SINK_ENTRY_INFO exceto que é preciso um ponteiro para iid.

Requisitos

Cabeçalho: atlcom.h

BEGIN_SINK_MAP

Declara o início do mapa do coletor de eventos para o controle composto.

BEGIN_SINK_MAP(_class)

Parâmetros

_class
[in] Especifica o controle.

Exemplo

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()

Comentários

A implementação da CE ATL de coletores de eventos ActiveX somente dá suporte a valores retornados do tipo HRESULT ou nulo de seus métodos de manipulador de eventos. Qualquer outro valor retornado não tem suporte e seu comportamento é indefinido.

END_SINK_MAP

Declara o final do mapa do coletor de eventos para o controle composto.

END_SINK_MAP()

Exemplo

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()

Comentários

A implementação da CE ATL de coletores de eventos ActiveX somente dá suporte a valores retornados do tipo HRESULT ou nulo de seus métodos de manipulador de eventos. Qualquer outro valor retornado não tem suporte e seu comportamento é indefinido.

SINK_ENTRY

Declara a função de manipulador (fn) para o evento especificado (dispid) do controle identificado pela id.

SINK_ENTRY( id, dispid, fn )

Parâmetros

id
[in] Identifica o controle.

dispid
[in] Identifica o evento especificado.

fn
[in] Nome da função de manipulador de eventos. Essa função deve usar a convenção de chamada _stdcall e ter a assinatura apropriada no estilo dispinterface.

Exemplo

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()

Comentários

A implementação da CE ATL de coletores de eventos ActiveX somente dá suporte a valores retornados do tipo HRESULT ou nulo de seus métodos de manipulador de eventos. Qualquer outro valor retornado não tem suporte e seu comportamento é indefinido.

SINK_ENTRY_EX e SINK_ENTRY_EX_P

Declara a função de manipulador (fn) para o evento especificado (dispid) da interface de expedição (iid) para o controle identificado por id.

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

Parâmetros

id
[in] Identifica o controle.

iid
[in] Identifica a interface de expedição.

piid
[in] Ponteiro para a interface de expedição.

dispid
[in] Identifica o evento especificado.

fn
[in] Nome da função de manipulador de eventos. Essa função deve usar a convenção de chamada _stdcall e ter a assinatura apropriada no estilo dispinterface.

Exemplo

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()

Comentários

A implementação da CE ATL de coletores de eventos ActiveX somente dá suporte a valores retornados do tipo HRESULT ou nulo de seus métodos de manipulador de eventos. Qualquer outro valor retornado não tem suporte e seu comportamento é indefinido.

SINK_ENTRY_INFO e SINK_ENTRY_INFO_P

Use a macro SINK_ENTRY_INFO dentro de um mapa do coletor de eventos para fornecer as informações necessárias por IDispEventSimpleImpl para rotear eventos para a função de manipulador relevante.

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

Parâmetros

id
[in] Inteiro sem sinal que identifica a origem do evento. Esse valor deve corresponder ao parâmetro de modelo nID usado na classe base IDispEventSimpleImpl.

iid
[in] IID identifica a interface de expedição.

piid
[in] Ponteiro para IID que identifica a interface de expedição.

dispid
[in] DISPID que identifica o evento especificado.

fn
[in] Nome da função de manipulador de eventos. Essa função deve usar a convenção de chamada _stdcall e ter a assinatura apropriada no estilo dispinterface.

info
[in] Digite as informações para a função do manipulador de eventos. Essas informações de tipo são fornecidas na forma de um ponteiro para uma estrutura _ATL_FUNC_INFO. CC_CDECL é a única opção com suporte no Windows CE para o campo CALLCONV da estrutura _ATL_FUNC_INFO. Qualquer outro valor não tem suporte, portanto, seu comportamento é indefinido.

Comentários

Os quatro primeiros parâmetros de macro são os mesmos da macro SINK_ENTRY_EX. O parâmetro final fornece informações de tipo para o evento. A implementação da CE ATL de coletores de eventos ActiveX somente dá suporte a valores retornados do tipo HRESULT ou nulo de seus métodos de manipulador de eventos. Qualquer outro valor retornado não tem suporte e seu comportamento é indefinido.

Confira também

Macros
Funções globais do controle de composição