Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: Outlook 2013 | Outlook 2016
A tabela de status contém informações relacionadas ao estado da sessão atual. Há uma tabela de status para cada sessão MAPI que inclui informações fornecidas pelo MAPI e pelos 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 obrigados a fornecer informações de status para a tabela de status, há uma linha para cada provedor de transporte ativo. Os provedores de catálogo de endereços e repositório de mensagens podem optar por dar suporte à tabela de 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 de status é necessário 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 de 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á-las.
A tabela a seguir lista as propriedades que devem estar em cada linha da tabela de status. O implementador do objeto de status fornece algumas das propriedades; outras são calculadas por MAPI.
| Propriedades fornecidas pelo objeto de status | Propriedades fornecidas por 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 por MAPI para cada linha da tabela de status:
| Propriedade | ... |
|---|---|
|
PR_ENTRYID (PidTagEntryId) |
PR_INSTANCE_KEY (PidTagInstanceKey) |
|
PR_OBJECT_TYPE (PidTagObjectType) |
PR_ROWID (PidTagRowid) |
O MAPI atribui um identificador de entrada à linha de status para permitir que os clientes abram o objeto de 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 é definida como MAPI_STATUS.
Para acessar a tabela de 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 GetStatusTable tem que aguardar o spooler MAPI inicializar os provedores de transporte, uma operação que é adiada até que o cliente conclua seu logon. GetStatusTable é uma chamada relativamente rápida depois que o spooler MAPI conclui seu processamento de inicialização.
As informações da tabela de status podem ser usadas de várias maneiras, como para acessar um objeto de status, para determinar se um cliente está sendo executado em um modo conectado ou offline e para 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 de status dá suporte à interface IMAPIStatus , uma interface que contém métodos para alterar uma senha de provedor de serviços, liberar a fila de mensagens, exibir uma folha de propriedades de configuração ou confirmar o status diretamente com um provedor. 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 operação demorada.
Os provedores de serviços que dão suporte à tabela de status usam o método IMAPISupport::ModifyStatusRow para criar e atualizar sua linha. Sempre que ocorre uma alteração em sua linha, todos os objetos coletores de aviso registrados para receber notificações de tabela de status devem ser notificados. Os provedores de serviços poderão chamar o método IMAPISupport::Notify se estiverem usando o utilitário de notificação MAPI ou chamar o método IMAPIAdviseSink::OnNotify de cada coletor de aviso diretamente.