Conexão com manipuladores de eventos personalizados
O Outlook gera eventos para notificar suplementos sobre algo que está acontecendo, como o recebimento de um novo item de email na Caixa de Entrada. Os suplementos podem especificar para o Outlook que, após a ocorrência de um evento específico, deverão ocorrer certas ações. Este mecanismo de alerta e callback é suportado por representantes do .NET Framework. Assembly de Interoperabilidade Primária do Outlook (PIA) define representantes aos quais você pode conectar métodos de callback para manipular eventos correspondentes. Este tópico descreve o processo de definir um método de callback e de conectá-lo como um manipulador de eventos para o objeto do Outlook.
Criar um método de callback
Um callback é um método implementado para manipular a ocorrência de um evento específico, e é executado por uma fonte de notificação. No Outlook, os suplementos podem implementar métodos de callback para responder a certos eventos gerados pelo Outlook. O método de callback deve corresponder à assinatura do representante do evento. Por exemplo, para implementar um manipulador de eventos para o evento ItemSend, você precisa declarar o método de callback que corresponde à assinatura do representante correspondente:
public delegate void ApplicationEvents_11_ItemSendEventHandler(object Item, ref bool Cancel)
Public Delegate Sub ApplicationEvents_11_ItemSendEventHandler(_
ByVal Item As Object, ByRef Cancel As Boolean)
Ao definir o método de callback, ignore a palavra-chace Delegate que, do contrário, definiria outro representante. Uma amostra de método de callback, MyItemSendEventHandler, é mostrada abaixo:
public void MyItemSendEventHandler(object Item, ref bool Cancel)
Public Sub MyItemSendEventHandler (_
ByVal Item As Object, ByRef Cancel As Boolean)
…
End Sub
Conexão com um método de callback
Após implementar um método de callback para um evento, você pode conectá-lo ao objeto do Outlook de modo que o Outlook saiba que deve chamar o método como um manipulador de eventos daquele evento. Observe que um evento pode ser manipulado por mais de um manipulador de eventos, e é aqui que entram em jogo os representantes que atribuem a manipulação de eventos a manipuladores de eventos.
Continuando com o último exemplo de especificar um manipulador de eventos para o evento ItemSend do objeto Application , conectar MyItemSendEventHandler ao objeto Application em C#, criar uma instância do objeto delegado, passar MyItemSendEventHandler ao construtor do objeto delegado e, em seguida, adicionar esse objeto delegado ao evento ItemSend usando o operador +=:
app.ItemSend += new ApplicationEvents_11_ItemSendEventHandler(MyItemSendEventHandler)
No Visual Basic, use instrução AddHandler para associar o evento ItemSend ao manipulador de eventos MyItemSendEventHandler:
AddHandler app.ItemSend, AddressOf MyItemSendEventHandler