Compartilhar via


Abrir um repositório de mensagens

Aplica-se a: Outlook 2013 | Outlook 2016

Dependendo do perfil, um cliente precisará abrir um ou mais repositórios de mensagens durante uma sessão típica. Abrir um repositório de mensagens significa obter acesso a um ponteiro para sua implementação IMsgStore : IMAPIProp . A interface IMsgStore fornece métodos para notificação, fazer atribuições de pasta e acessar pastas e mensagens.

Os clientes abrem repositórios de mensagens no logon e quando um perfil está sendo modificado. Se o cliente permitir que os usuários adicionem armazenamentos de mensagens ao perfil durante uma sessão ativa, você poderá abri-los imediatamente ou ignorá-los até a próxima sessão. Ao registrar-se para notificações na tabela do repositório de mensagens, você será alertado sobre a disponibilidade de um novo repositório de mensagens.

Para abrir um repositório de mensagens, você deve ter o identificador de entrada disponível. A maioria dos clientes acessa os identificadores de entrada para os repositórios de mensagens que desejam abrir por meio da tabela do repositório de mensagens. No entanto, alguns armazenamentos de mensagens documentam o formato de seus identificadores de entrada, permitindo que os clientes ignorem a tabela do repositório de mensagens e construam o identificador de entrada necessário. Eles podem passar esse identificador de entrada diretamente para IMAPISession::OpenMsgStore e MAPI cria automaticamente uma seção de perfil para o provedor sem associá-lo a nenhum serviço de mensagem.

Recuperar um identificador de entrada da tabela do repositório de mensagens

  1. Chame IMAPISession::GetMsgStoresTable para abrir a tabela do repositório de mensagens.

  2. Chame IMAPITable::SetColumns para limitar a tabela a um pequeno conjunto de colunas que inclui as seguintes colunas:

    • PR_PROVIDER_DISPLAY ou PR_DISPLAY_NAME
    • PR_ENTRYID propriedades
    • PR_MDB_PROVIDER
    • PR_RESOURCE_FLAGS
  3. Crie uma restrição para filtrar a linha que representa o repositório de mensagens a ser aberto. Para obter mais informações sobre como procurar o repositório de mensagens padrão, consulte Abrir o Repositório de Mensagens Padrão. Para procurar um repositório de mensagens pelo nome, aplique qualquer uma das seguintes restrições de propriedade:

    • Combine PR_PROVIDER_DISPLAY (PidTagProviderDisplay) com o nome geral desse tipo de repositório de mensagens. Por exemplo, PR_PROVIDER_DISPLAY pode ser definido como "Pastas Pessoais".

    • Combine PR_MDB_PROVIDER (PidTagStoreProvider) com o MAPIUID específico para esse tipo de repositório de mensagens.

    • Combine PR_DISPLAY_NAME (PidTagDisplayName) com o nome deste repositório de mensagens específico. Por exemplo, PR_DISPLAY_NAME pode ser definido como "Minhas Mensagens para o Ano Fiscal 2010".

  4. Chame HrQueryAllRows para recuperar a linha apropriada da tabela do repositório de mensagens. O identificador de entrada da linha será incluído na matriz de valor da propriedade para o membro aRow do conjunto de linhas apontado pelo parâmetro pprows .

  5. Chame FreeProws para liberar o conjunto de linhas apontado por pprows.

  6. Libere a tabela do repositório de mensagens chamando seu método IUnknown::Release .

Se você criou um identificador de entrada personalizado para que o repositório de mensagens seja aberto, chame a função WrapStoreEntryID para convertê-la em um identificador de entrada padrão.

Depois de ter um identificador de entrada de um repositório de mensagens, chame um dos seguintes métodos para abri-lo:

Chame OpenMsgStore se precisar especificar uma variedade de opções especiais para o repositório de mensagens. O OpenMsgStore permite suprimir a exibição de caixas de diálogo, identificar o repositório de mensagens como temporário ou como um repositório de não gerenciamento, definir níveis de acesso e adiar erros. O OpenEntry permite que você apenas defina níveis de acesso e adie erros.

Definir o sinalizador MDB_NO_MAIL indica ao MAPI que o repositório de mensagens não será usado para enviar ou receber mensagens. O MAPI não informa o spooler MAPI sobre a existência deste repositório de mensagens. O sinalizador MDB_TEMPORARY designa um repositório de mensagens como temporário, implicando que ele não pode ser usado para armazenar informações permanentes. Os repositórios de mensagens temporárias não aparecem na tabela do repositório de mensagens.

Confira também