Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Estes macros definem mapas de sumidouro de eventos e entradas.
| Macro | Description |
|---|---|
| BEGIN_SINK_MAP | Marca o início do event sink map para o controlo composto. |
| END_SINK_MAP | Marca o fim do mapa de sumidouro de eventos para o controlo composto. |
| SINK_ENTRY | Entrada no mapa do sumidouro de eventos. |
| SINK_ENTRY_EX | Entrada no mapa de afundamento de eventos com um parâmetro extra. |
| SINK_ENTRY_EX_P | (Visual Studio 2017) Semelhante ao SINK_ENTRY_EX, exceto que aceita um ponteiro para o iid. |
| SINK_ENTRY_INFO | Entrada no event sink map com informação de tipo fornecida manualmente para uso com IDispEventSimpleImpl. |
| SINK_ENTRY_INFO_P | (Visual Studio 2017) Semelhante ao SINK_ENTRY_INFO exceto que aceita um ponteiro para o iID. |
Requerimentos
Cabeçalho: atlcom.h
BEGIN_SINK_MAP
Declara o início do event sink map para o controlo composto.
BEGIN_SINK_MAP(_class)
Parâmetros
_class
[dentro] Especifica o controlo.
Example
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()
Observações
A implementação CE ATL dos sinks de eventos ActiveX apenas suporta valores de retorno do tipo HRESULT ou void dos seus métodos do handler de eventos. Qualquer outro valor de retorno não é suportado e o seu comportamento é indefinido.
END_SINK_MAP
Declara o fim do mapa de sumidouro de eventos para o controlo composto.
END_SINK_MAP()
Example
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()
Observações
A implementação CE ATL dos sinks de eventos ActiveX apenas suporta valores de retorno do tipo HRESULT ou void dos seus métodos do handler de eventos. Qualquer outro valor de retorno não é suportado e o seu comportamento é indefinido.
SINK_ENTRY
Declara a função handler (fn) para o evento especificado (dispid) do controlo identificado por id.
SINK_ENTRY( id, dispid, fn )
Parâmetros
ID
[dentro] Identifica o controlo.
dispid
[dentro] Identifica o evento especificado.
fn
[dentro] Nome da função handler de eventos. Esta função deve usar a _stdcall convenção de chamada e ter a assinatura de estilo disinterface apropriada.
Example
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()
Observações
A implementação CE ATL dos sinks de eventos ActiveX apenas suporta valores de retorno do tipo HRESULT ou void dos seus métodos do handler de eventos. Qualquer outro valor de retorno não é suportado e o seu comportamento é indefinido.
SINK_ENTRY_EX e SINK_ENTRY_EX_P
Declara a função handler (fn) para o evento especificado (dispid) da interface de despacho (iid), para o controlo identificado por id.
SINK_ENTRY_EX( id, iid, dispid, fn )
SINK_ENTRY_EX_P( id, piid, dispid, fn ) // (Visual Studio 2017)
Parâmetros
ID
[dentro] Identifica o controlo.
IID
[dentro] Identifica a interface de despacho.
Piid
[dentro] Apontar para a interface de despacho.
dispid
[dentro] Identifica o evento especificado.
fn
[dentro] Nome da função handler de eventos. Esta função deve usar a _stdcall convenção de chamada e ter a assinatura de estilo disinterface apropriada.
Example
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()
Observações
A implementação CE ATL dos sinks de eventos ActiveX apenas suporta valores de retorno do tipo HRESULT ou void dos seus métodos do handler de eventos. Qualquer outro valor de retorno não é suportado e o seu comportamento é indefinido.
SINK_ENTRY_INFO e SINK_ENTRY_INFO_P
Use a macro SINK_ENTRY_INFO dentro de um event sink map para fornecer a informação necessária ao IDispEventSimpleImpl para encaminhar eventos para a função handler relevante.
SINK_ENTRY_INFO( id, iid, dispid, fn, info )
SINK_ENTRY_INFO_P( id, piid, dispid, fn, info ) // (Visual Studio 2017)
Parâmetros
ID
[dentro] Inteiro sem sinal que identifica a fonte do evento. Este valor deve corresponder ao parâmetro do modelo nID usado na classe base relacionada IDispEventSimpleImpl .
IID
[dentro] IID que identifica a interface de despacho.
Piid
[dentro] Apontador para o IID que identifica a interface de despacho.
dispid
[dentro] DISPID identificando o evento especificado.
fn
[dentro] Nome da função handler de eventos. Esta função deve usar a _stdcall convenção de chamada e ter a assinatura de estilo disinterface apropriada.
informação
[dentro] Informação de tipo para a função de gestor de eventos. Esta informação de tipo é fornecida sob a forma de um ponteiro para uma _ATL_FUNC_INFO estrutura. CC_CDECL é a única opção suportada no Windows CE para o campo CALLCONV da _ATL_FUNC_INFO estrutura. Qualquer outro valor não é suportado, pelo que o seu comportamento é indefinido.
Observações
Os primeiros quatro parâmetros de macro são os mesmos que os da macro SINK_ENTRY_EX . O parâmetro final fornece informação sobre o tipo do evento. A implementação CE ATL dos sinks de eventos ActiveX apenas suporta valores de retorno do tipo HRESULT ou void dos seus métodos do handler de eventos. Qualquer outro valor de retorno não é suportado e o seu comportamento é indefinido.