Compartilhar via


Tabelas de status

Aplica-se a: Outlook 2013 | Outlook 2016

A tabela status contém informações relacionadas ao estado da sessão atual. Há uma status tabela para cada sessão MAPI que inclui informações fornecidas por MAPI e por provedores de serviços. O MAPI fornece dados para três linhas: uma linha para o subsistema MAPI, uma linha para o spooler MAPI e uma linha para o catálogo de endereços integrado. Como os provedores de transporte são necessários para fornecer status informações à tabela status, há uma linha para cada provedor de transporte ativo. Os provedores do catálogo de endereços e do repositório de mensagens podem escolher se dão suporte à tabela status.

Como cada linha é fornecida por um recurso diferente, o conjunto de colunas pode variar de linha para linha. Há um conjunto de colunas que cada objeto status é necessário para fornecer e um conjunto de colunas que o MAPI fornece. Um provedor de serviços pode adicionar a esses conjuntos para expor propriedades específicas do provedor. Por exemplo, os provedores do repositório de mensagens podem adicionar PR_STORE_RECORD_KEY (PidTagStoreRecordKey) para fornecer aos clientes o identificador de seu repositório de mensagens. Os clientes devem ter conhecimento prévio da existência dessas informações extras para poder usá-la.

A tabela a seguir lista as propriedades que devem estar em cada linha de tabela status. O implementador do objeto status fornece algumas das propriedades; outras são calculadas pelo MAPI.

Propriedades fornecidas pelo objeto status Propriedades fornecidas pelo MAPI
PR_DISPLAY_NAME (PidTagDisplayName)
PR_PROVIDER_DLL_NAME (PidTagProviderDllName)
PR_STATUS_CODE (PidTagStatusCode)
PR_RESOURCE_FLAGS (PidTagResourceFlags)
PR_RESOURCE_METHODS (PidTagResourceMethods)
PR_RESOURCE_TYPE (PidTagResourceType)

Se o objeto status fornecer uma identidade, ele deverá definir PR_IDENTITY_DISPLAY (PidTagIdentityDisplay), PR_IDENTITY_ENTRYID (PidTagIdentityEntryId) e PR_IDENTITY_SEARCH_KEY (PidTagIdentitySearchKey) e incluir essas propriedades na tabela.

Quatro propriedades são calculadas pelo MAPI para cada linha de tabela status:

Propriedade ...
PR_ENTRYID (PidTagEntryId)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_OBJECT_TYPE (PidTagObjectType)
PR_ROWID (PidTagRowid)

O MAPI atribui um identificador de entrada à linha status para permitir que os clientes abram o objeto status correspondente. Um identificador de linha também é atribuído para identificar a linha na tabela, assim como uma chave de instância para identificar os dados no objeto status. A propriedade PR_OBJECT_TYPE está definida como MAPI_STATUS.

Para acessar a tabela status, os clientes chamam o método IMAPISession::GetStatusTable. Essa chamada não deve ser feita imediatamente após a inicialização. Isso ocorre porque o GetStatusTable precisa aguardar que o spooler MAPI inicialize os provedores de transporte, uma operação que é adiada até que o cliente termine seu logon. GetStatusTable é uma chamada relativamente rápida depois que o spooler MAPI concluiu seu processamento de inicialização.

As informações da tabela de status podem ser usadas de várias maneiras, como acessar um objeto status, determinar se um cliente está em execução em um modo conectado ou offline e monitorar o estado de um provedor. Por exemplo, os clientes podem abrir o objeto status de um provedor de serviços específico passando o valor da propriedade PR_ENTRYID para o método IMAPISession::OpenEntry. O objeto status dá suporte à interface IMAPIStatus, uma interface que contém métodos para alterar uma senha do provedor de serviços, liberar a fila de mensagens, exibir uma folha de propriedades de configuração ou confirmar status com um provedor diretamente. As informações da tabela de status também podem ser usadas para criar uma caixa de diálogo para informar os clientes sobre o progresso durante uma longa operação.

Os provedores de serviço que dão suporte à tabela status usam o método IMAPISupport::ModifiStatusRow para criar e atualizar sua linha. Sempre que ocorrer uma alteração em sua linha, todos aconselham que objetos de coletor registrados para receber status notificações de tabela devem ser notificados. Os provedores de serviços podem chamar o método IMAPISupport::Notify se estiverem usando o utilitário de notificação MAPI ou chamar cada um dos conselhos para o método IMAPIAdviseSink::OnNotify diretamente.

Confira também

Tabelas MAPI