Compartilhar via


Sobre a exibição de notificações de tabela

Aplica-se a: Outlook 2013 | Outlook 2016

As notificações em uma tabela de exibição são enviadas pelo provedor de serviços responsável pela criação da tabela de exibição para MAPI. O MAPI registra essas notificações chamando o método IMAPITable::Advise de uma tabela de exibição e especificando o evento modificado pela tabela.

Assim como acontece com todas as notificações de tabela, as notificações de tabela de exibição incluem uma estrutura de TABLE_NOTIFICATION . Somente os membros ulTableEvent e propIndex dessa estrutura são significativos; os outros membros são ignorados. O membro ulTableEvent está definido como TABLE_ROW_MODIFIED e o membro propIndex é definido como o valor da coluna PR_CONTROL_ID (PidTagControlId) na linha correspondente. O MAPI responde à notificação chamando o método IMAPIProp::GetProps para a propriedade exibida no controle e exibindo o novo valor.

As notificações de tabela de exibição podem ser usadas por um provedor de serviços para coordenar alterações nos controles relacionados na caixa de diálogo. Por exemplo, se a implementação da interface da propriedade precisar atualizar um ou mais campos na caixa de diálogo – talvez em resposta a outro controle que tenha definido o sinalizador de DT_SET_IMMEDIATE em sua propriedade PR_CONTROL_FLAGS (PidTagControlFlags) , ele poderá gerar uma notificação de tabela de exibição. Uma notificação de tabela de exibição pode alertar a implementação da interface da propriedade de que o valor de um ou mais controles precisa ser relançado devido a uma alteração que está sendo feita ou um evento externo ocorrendo.

Um provedor de serviços pode emitir notificações de tabela de exibição por:

  • Chamando ITableData::HrNotify, se a tabela de exibição foi criada com um objeto de dados de tabela.

    • Ou-
  • Usando seu próprio código, se a tabela de exibição foi criada com a implementação IMAPITable do provedor.

O MAPI responde às notificações de tabela de exibição quando necessário, relendo o valor de um controle da implementação da interface da propriedade. A tabela a seguir descreve os detalhes sobre como o MAPI lida com notificações para tipos específicos de controles.

Control Ação MAPI
Botão
Chama IMAPIProp::OpenPropertypara recuperar o objeto de controle por meio da propriedade representada pelo membro ulPRControl da estrutura DTBLBUTTON se a chamada tivesse falhado anteriormente. Chama o IMAPIControl::GetState do objeto de controle para determinar se o botão deve ser habilitado e habilita ou desabilita o botão de acordo.
Caixa de seleção
Reli o valor para o membro ulPRPropertyName .
Caixa de combinação
Reabra a tabela associada ao membro ulPRTableName da estrutura DTBLCOMBOBOX . Reli todas as linhas, incluindo o valor do membro ulPRPropertyName.
Caixa de lista suspensa
Reabra a tabela associada ao membro ulPRTableName da estrutura DTBLDDLBX e reli todas as linhas. Chama IMAPIProp::GetProps para recuperar os valores das propriedades armazenadas no ulPRDisplayProperty e nos membros ulPRSetProperty .
Editar
Reli a propriedade e redisplays.
Caixa de grupo
Ignora a notificação.
Rótulo
Ignora a notificação.
Caixa de lista de seleção múltipla
Se uma das colunas for um identificador de entrada, atualize a caixa de listagem. O objeto correspondente não está fechado nem recarregado.
Caixa de lista de seleção única
Lê a propriedade set, tentando identificá-la.
Caixa de lista multivalida
Reli a propriedade e repovoa a caixa de listagem.
Página com tabbed
Não há notificações para esse controle; tudo é estático.
Botão de rádio
Releia a propriedade associada ao botão e é armazenada no membro ulPropTag da estrutura DTBLRADIOBUTTON e faz a seleção apropriada com os controles.

Confira também