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 se registra para essas notificações chamando o método IMAPITable::Advise de uma tabela de exibição e especificando o evento modificado da tabela.

Como em todas as notificações de tabela, as notificações de tabela de exibição incluem uma estrutura TABLE_NOTIFICATION . Somente os membros ulTableEvent e propIndex dessa estrutura são significativos; Os outros membros são ignorados. O membro ulTableEvent é 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 da 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 de propriedade precisar atualizar um ou mais campos na caixa de diálogo — talvez em resposta a outro controle que definiu o sinalizador de DT_SET_IMMEDIATE em sua propriedade PR_CONTROL_FLAGS (PidTagControlFlags) — ela 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 de propriedade de que o valor de um ou mais controles precisa ser relido devido a uma alteração feita ou à ocorrência de um evento externo.

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

  • 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 para exibir notificações de tabela quando necessário, relendo o valor de um controle da implementação da interface de 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 tiver 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
Relê o valor do membro ulPRPropertyName .
Caixa de combinação
Reabre a tabela associada ao membro ulPRTableName da estrutura DTBLCOMBOBOX . Relê todas as linhas, incluindo o valor do membro ulPRPropertyName.
Caixa de listagem suspensa
Reabre a tabela associada ao membro ulPRTableName da estrutura DTBLDDLBX e relê todas as linhas. Chama IMAPIProp::GetProps para recuperar os valores das propriedades armazenadas no ulPRDisplayProperty e nos membros ulPRSetProperty .
Editar
Relê a propriedade e a exibe novamente.
Caixa de grupo
Ignora a notificação.
Rótulo
Ignora a notificação.
Caixa de listagem de seleção múltipla
Se uma das colunas for um identificador de entrada, atualizará a caixa de listagem. O objeto correspondente não é fechado ou recarregado.
Caixa de listagem de seleção única
Lê a propriedade set, tentando identificá-la.
Caixa de listagem de valores múltiplos
Relê a propriedade e preenche novamente a caixa de listagem.
Página com guias
Não há notificações para esse controle; tudo é estático.
Botão de opção
Relê 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