Compartilhar via


TABLE_NOTIFICATION

Aplica-se a: Outlook 2013 | Outlook 2016

Descreve uma linha em uma tabela que foi afetada por algum tipo de evento, como uma alteração ou um erro. Isso faz com que uma notificação de tabela seja gerada.

Propriedade Valor
Arquivo de cabeçalho:
Mapidefs.h
typedef struct _TABLE_NOTIFICATION
{
  ULONG ulTableEvent;
  HRESULT hResult;
  SPropValue propIndex;
  SPropValue propPrior;
  SRow row;
} TABLE_NOTIFICATION;

Members

ulTableEvent

Bitmask de sinalizadores usados para representar o tipo de evento de tabela. Os seguintes sinalizadores podem ser definidos:

TABLE_CHANGED

Indica em alto nível que algo sobre a tabela foi alterado. O estado da tabela é como era antes do evento. Isso significa que todas as propriedades, indicadores, indicadores, posicionamento atual e seleções de interface do usuário (PidTagInstanceKey) de PR_INSTANCE_KEY ainda são válidas. Manipule este evento relendo a tabela. Os provedores de serviços que não desejam implementar notificações avançadas de tabela enviam eventos TABLE_CHANGED em vez de eventos mais detalhados para indicar um tipo específico de alteração.

TABLE_ERROR

Ocorreu um erro, geralmente durante o processamento de uma operação assíncrona. Erros durante o processamento dos seguintes métodos podem gerar este evento:

Depois de receber um evento TABLE_ERROR, um cliente não pode confiar na precisão do conteúdo da tabela. Além disso, as notificações pendentes sobre outras alterações podem ser perdidas. O método IMAPITable::GetLastError pode não fornecer nenhuma informação adicional sobre o erro porque ele foi gerado em algum ponto anterior, não necessariamente da última chamada de método.

TABLE_RELOAD

Os dados na tabela devem ser recarregados. Os provedores de serviço enviam TABLE_RELOAD quando, por exemplo, os dados subjacentes são armazenados em um banco de dados e o banco de dados é substituído. Manipule este evento supondo que nada sobre a tabela ainda seja válido e relendo a tabela. Todos os indicadores, chaves de instância, status e informações de posicionamento são inválidos.

TABLE_RESTRICT_DONE

Uma operação de restrição iniciada com uma chamada de método IMAPITable::Restrict foi concluída.

TABLE_ROW_ADDED

Uma nova linha foi adicionada à tabela e ao objeto correspondente salvo. TABLE_ROW_ADDED eventos são gerados após uma chamada para o método IMAPIProp::SaveChanges .

TABLE_ROW_DELETED

Uma linha foi removida da tabela. O membro propPrior está definido como NULL.

TABLE_ROW_MODIFIED

Uma linha foi alterada. O membro da linha contém as propriedades afetadas para a linha. Vários eventos TABLE_ROW_MODIFIED são enviados na ordem em que eles aparecem no modo de exibição da tabela.

TABLE_ROW_MODIFIED eventos são enviados após alterações no objeto correspondente terem sido confirmadas com uma chamada para o método IMAPIProp::SaveChanges . Se a linha modificada for agora a primeira linha na tabela, o valor da marca de propriedade no membro propPrior será PR_NULL (PidTagNull).

TABLE_SETCOL_DONE

Uma operação de configuração de coluna iniciada com uma chamada de método IMAPITable::SetColumns foi concluída.

TABLE_SORT_DONE

Uma operação de classificação de tabela iniciada com uma chamada de método IMAPITable::SortTable foi concluída.

Hresult

Valor HRESULT para o erro ocorrido, se o membro ulTableEvent estiver definido como TABLE_ERROR.

propIndex

Estrutura SPropValue para a propriedade PR_INSTANCE_KEY da linha afetada.

propPrior

Estrutura SPropValue para a propriedade PR_INSTANCE_KEY da linha antes da afetada. Se a linha afetada for a primeira linha da tabela, o propPrior deverá ser definido como PR_NULL e não zero. Zero não é uma marca de propriedade válida.

Linha

Estrutura SRow que descreve a linha afetada. Essa estrutura é preenchida para todos os eventos de notificação de tabela. Para eventos de notificação de tabela que não passam dados de linha, o membro cValues da estrutura SRow está definido como zero e o membro lpProps está definido como NULL. Como essa estrutura SRow é somente leitura; os clientes devem fazer uma cópia dele se desejarem fazer modificações. A função ScDupPropset pode ser usada para fazer a cópia.

Comentários

A estrutura TABLE_NOTIFICATION é um dos membros da união de estruturas incluídas no membro de informações da estrutura NOTIFICATION . O membro de informações inclui uma estrutura TABLE_NOTIFICATION quando o membro ulEventType da estrutura é definido como fnevTableModified.

A ordem e o tipo de colunas no membro da linha refletem a ordem e o tipo que estava em vigor no momento em que a notificação foi gerada. O pedido e o tipo no momento em que a notificação foi gerada não são necessariamente os mesmos de quando a notificação foi entregue.

Para obter mais informações sobre a notificação, confira os tópicos descritos na tabela a seguir.

Tópico Descrição
Notificação de eventos no MAPI
Visão geral dos eventos de notificação e notificação.
Manipulando notificações
Discussão sobre como os clientes devem lidar com as notificações.
Notificações de eventos de suporte
Discussão sobre como os provedores de serviços podem usar o método IMAPISupport para gerar notificações.

Como as notificações de tabela são assíncronas, os clientes podem receber a notificação de uma linha adicionada depois de saber sobre a adição por meio de outros meios. É possível receber um evento TABLE_ERROR quando há um erro em um método IMAPITable::Sort, IMAPITable::Restrict ou IMAPITable::SetColumns ou quando um processo subjacente tenta atualizar uma tabela com, por exemplo, linhas novas ou modificadas.

Confira também