Status Table and Status Objects
Aplica-se a: Outlook 2013 | Outlook 2016
O MAPI fornece uma tabela com informações sobre o status do subsistema MAPI, do carreador MAPI, do catálogo de endereços ou de um determinado provedor de serviços. Você pode acessar esta tabela chamando IMAPISession::GetStatusTable.
Cada linha na tabela status representa um objeto status implementado pelo MAPI ou por um provedor de serviços. Você pode usar um objeto status para exibir a planilha de propriedades de configuração de um provedor, alterar uma senha do provedor, carregar ou baixar mensagens e se comunicar com um provedor de transporte específico.
Há duas maneiras de acessar um objeto status:
Por meio da tabela status
Por meio do método OpenStatusEntry de um objeto logon
Como os objetos de logon não estão disponíveis para clientes, você deve usar a tabela status para acessar objetos status. A abordagem da tabela status é indireta, exigindo algumas chamadas antes que o objeto status seja aberto e um ponteiro para sua implementação IMAPIStatus retornado.
Para usar a tabela status para abrir um objeto status
Chame IMAPIStatus::GetStatusTable para recuperar um ponteiro IMAPITable .
Chame o método IMAPITable::SetColumns da tabela status para limitar o conjunto de colunas como PR_ENTRYID (PidTagEntryId), PR_RESOURCE_TYPE (PidTagResourceType) e PR_DISPLAY_NAME (PidTagDisplayName).
Limite a exibição da tabela a um objeto status específico. Para implementações MAPI, um cliente pode definir uma restrição de propriedade usando PR_RESOURCE_TYPE. Para implementações do provedor de serviços, um cliente pode restringir PR_PROVIDER_DISPLAY (PidTagProviderDisplay), o nome do provedor ou em PR_PROVIDER_DLL_NAME (PidTagProviderDllName), o nome do arquivo DLL do provedor.
Chame IMAPITable::Restrição para definir a restrição.
Chame HrQueryAllRows, passando a estrutura SPropertyRestriction, para recuperar a linha que representa o status do provedor.
Chame IMAPISession::OpenEntry, especificando o identificador de entrada da linha de tabela status, para abrir o objeto status e recuperar um ponteiro IMAPIStatus.
Para exibir uma folha de propriedades, chame o método IMAPIStatus::SettingsDialog do objeto status para o provedor de destino. ConfiguraçõesDialog exibe uma folha de propriedades para exibição e, em alguns casos, alterando as propriedades de configuração de um provedor.
Para se comunicar com um provedor de transporte, chame o método IMAPIStatus::ValidateState do objeto 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 mensagem de um servidor remoto, dependendo dos sinalizadores que você passar. 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 do provedor de transporte ou do mapi spooler.:FlushQueues. 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 mensagens esperando na fila de saída enquanto FLUSH_DOWNLOAD instrui o provedor ou o spooler MAPI a receber quaisquer mensagens de entrada. FLUSH_FORCE pode ser definido com qualquer um dos outros sinalizadores para fazer com que o objeto status execute o flush independentemente do tempo.
Não espere poder chamar ConfiguraçõesDialog ou ChangePassword em qualquer um dos objetos de subsistema MAPI, spooler MAPI ou catálogo de endereços status objetos. O subsistema e o catálogo de endereços status objetos só dão suporte a ValidateState; o objeto status do spooler MAPI dá suporte a FlushQueues, além de ValidateState.