Tabela de status e objetos de status

Aplica-se a: Outlook 2013 | Outlook 2016

O serviço MAPI fornece uma tabela com informações sobre o status do subsistema MAPI, do spooler MAPI, do catálogo de endereços ou de um provedor de serviços específico. Você pode acessar essa tabela chamando IMAPISession::GetStatusTable.

Cada linha na tabela de status representa um objeto de status implementado pela MAPI ou por um provedor de serviços. Você pode usar um objeto de status para exibir a folha de propriedades de configuração de um provedor, alterar uma senha de provedor, fazer upload ou download de mensagens e comunicar-se com um provedor de transporte específico.

Existem duas maneiras de acessar um objeto de status:

  • Por meio da tabela de status

  • Por meio do método OpenStatusEntry de um objeto de logon

Como os objetos de logon não estão disponíveis para os clientes, você deve usar a tabela de status para acessar os objetos de status. A abordagem da tabela de status é indireta, exigindo algumas chamadas antes que o objeto de status seja aberto e um ponteiro para sua implementação IMAPIStatus seja retornado.

Para usar a tabela de status para abrir um objeto de status

  1. Chame IMAPIStatus::GetStatusTable para recuperar um ponteiro IMAPITable .

  2. Chame o método IMAPITable::SetColumns da tabela status para limitar o conjunto de colunas a PR_ENTRYID (PidTagEntryId), PR_RESOURCE_TYPE (PidTagResourceType) e PR_DISPLAY_NAME (PidTagDisplayName).

  3. Limitar a exibição de tabela a um objeto de status específico. Para implementações MAPI, um cliente pode definir uma restrição de propriedade usando PR_RESOURCE_TYPE. Para implementações de provedor de serviços, um cliente pode restringir em PR_PROVIDER_DISPLAY (PidTagProviderDisplay), o nome do provedor, ou em PR_PROVIDER_DLL_NAME (PidTagProviderDllName), o nome do arquivo DLL do provedor.

  4. Chame IMAPITable::Restrict para definir a restrição.

  5. Chame HrQueryAllRows, passando na estrutura SPropertyRestriction , para recuperar a linha que representa o status do provedor.

  6. Chame IMAPISession::OpenEntry, especificando o identificador de entrada na linha da tabela de status, para abrir o objeto de status e recuperar um ponteiro IMAPIStatus .

Para exibir uma folha de propriedades, chame o método IMAPIStatus::SettingsDialog do objeto de status para o provedor de destino. O SettingsDialog exibe uma folha de propriedades para exibição e, em alguns casos, alteração das propriedades de configuração de um provedor.

Para se comunicar com um provedor de transporte, chame o método IMAPIStatus::ValidateState do objeto de status. ValidateState pode reconfigurar um provedor de transporte, impedir que o provedor exiba uma interface do usuário e controlar uma sessão que envolve o download de cabeçalhos de mensagens de um servidor remoto, dependendo dos sinalizadores que você passa. Por exemplo, para cancelar o download de cabeçalhos remotos, passe o sinalizador ABORT_XP_HEADER_OPERATION para ValidateState. Para se conectar ou desconectar do servidor remoto, passe FORCE_XP_CONNECT ou FORCE_XP_DISCONNECT. Para reconfigurar o provedor, passe CONFIG_CHANGED.

Os clientes que implementam o envio ou o recebimento de mensagens sob demanda chamam o método IMAPIStatus::FlushQueues de um provedor de transporte ou do spooler MAPI. Você pode passar três sinalizadores para o método: FLUSH_UPLOAD, FLUSH_DOWNLOAD e FLUSH_FORCE. FLUSH_UPLOAD instrui o provedor ou o spooler MAPI a enviar todas as mensagens em espera na fila de saída, enquanto FLUSH_DOWNLOAD instrui o provedor ou o spooler MAPI a receber todas as mensagens de entrada. FLUSH_FORCE pode ser definido com qualquer um dos outros sinalizadores para fazer com que o objeto status execute a liberação, independentemente do tempo.

Não espere poder chamar SettingsDialog ou ChangePassword em nenhum dos objetos de subsistema MAPI, spooler MAPI ou status do catálogo de endereços. Os objetos de status do subsistema e do catálogo de endereços dão suporte apenas a ValidateState. O objeto de status do spooler MAPI dá suporte a FlushQueues, além de ValidateState.

Confira também

Tabelas de status

Objetos de status MAPI