Compartilhar via


IMAPISession::OpenMsgStore

Aplica-se a: Outlook 2013 | Outlook 2016

Abre um repositório de mensagens e retorna um ponteiro IMsgStore para obter mais acesso.

HRESULT OpenMsgStore(
  ULONG_PTR ulUIParam,
  ULONG cbEntryID,
  LPENTRYID lpEntryID,
  LPCIID lpInterface,
  ULONG ulFlags,
  LPMDB FAR * lppMDB
);

Parâmetros

ulUIParam

[in] Um identificador para a janela pai da caixa de diálogo endereço comum e outras exibições relacionadas.

cbEntryID

[in] A contagem de bytes no identificador de entrada apontada pelo parâmetro lpEntryID .

Lpentryid

[in] Um ponteiro para o identificador de entrada do repositório de mensagens a ser aberto. O parâmetro lpEntryID não deve ser NULL.

lpInterface

[in] Um ponteiro para o IID (identificador de interface) que representa a interface a ser usada para acessar o repositório de mensagens. Passar NULL faz com que o parâmetro lppMDB retorne um ponteiro para a interface padrão de um repositório de mensagens (IMsgStore).

ulFlags

[in] Um bitmask de sinalizadores que controla como o objeto é aberto. Os seguintes sinalizadores podem ser usados:

  • MAPI_BEST_ACCESS: solicita que o repositório de mensagens seja aberto com as permissões máximas de rede permitidas para o usuário e as permissões máximas do aplicativo cliente. Por exemplo, se o cliente tiver permissão de leitura/gravação, o repositório de mensagens deverá ser aberto com permissão de leitura/gravação; se o cliente tiver permissão somente leitura, o repositório de mensagens deverá ser aberto com permissão somente leitura.

  • MAPI_DEFERRED_ERRORS: permite que o OpenMsgStore retorne com êxito, possivelmente antes que o repositório de mensagens esteja totalmente disponível para o cliente de chamada. Se o repositório de mensagens não estiver disponível, fazer uma chamada de objeto subsequente poderá gerar um erro.

  • MDB_NO_DIALOG: impede a exibição de caixas de diálogo de logon. Se esse sinalizador estiver definido e o OpenMsgStore tiver informações de configuração insuficientes para abrir o repositório de mensagens sem a ajuda do usuário, ele retornará MAPI_E_LOGON_FAILED. Se esse sinalizador não estiver definido, o provedor do repositório de mensagens poderá solicitar que o usuário corrija um nome ou senha ou execute outras ações necessárias para estabelecer uma conexão com o repositório de mensagens.

  • MDB_NO_MAIL: o repositório de mensagens não deve ser usado para enviar ou receber emails. Quando esse sinalizador é definido, o MAPI não notifica o spooler MAPI de que esse repositório de mensagens está sendo aberto.

  • MDB_ONLINE: no Modo exchange armazenado em cache, um cliente ou provedor de serviços pode chamar esse método com MDB_ONLINE para substituir a conexão com o repositório de mensagens local e abrir o repositório no servidor remoto. Não é possível abrir um exchange store no modo armazenado em cache e no modo não armazenado em cache ao mesmo tempo na mesma sessão MAPI. Se você já tiver aberto o arquivo de cache mensagens, você deve fechar o repositório antes de abri-lo com esse sinalizador ou abrir uma nova sessão MAPI onde você pode abrir o armazenamento do Exchange no servidor remoto usando esse sinalizador.

  • MDB_TEMPORARY: instrui o MAPI de que o repositório de mensagens não é permanente e não deve ser adicionado à tabela do repositório de mensagens. Esse sinalizador é usado para fazer logon no repositório de mensagens para que as informações possam ser recuperadas programaticamente da seção de perfil.

  • MDB_WRITE: solicita permissão de leitura/gravação para o repositório de mensagens.

lppMDB

[out] Ponteiro para um ponteiro do repositório de mensagens.

Valor de retorno

S_OK

O repositório de mensagens foi aberto com êxito.

MAPI_E_NO_ACCESS

Foi feita uma tentativa de acessar um repositório de mensagens para o qual o usuário tem permissões insuficientes.

MAPI_E_NOT_FOUND

O repositório de mensagens indicado por lpEntryID não existe.

MAPI_E_UNKNOWN_CPID

O servidor não está configurado para dar suporte à página de código do cliente.

MAPI_E_UNKNOWN_LCID

O servidor não está configurado para dar suporte às informações de localidade do cliente.

MAPI_W_ERRORS_RETURNED

A chamada foi bem-sucedida, mas o provedor do repositório de mensagens tem informações de erro disponíveis. Quando esse aviso é retornado, a chamada deve ser tratada como bem-sucedida. Para obter as informações de erro do provedor, chame o método IMAPISession::GetLastError . Para testar esse aviso, use a macro HR_FAILED . Para obter mais informações, confira Usando macros para tratamento de erros.

Comentários

O método IMAPISession::OpenMsgStore abre um armazenamento de mensagens específico.

Notas para chamadores

O nível de permissão padrão para armazenamentos de mensagens é somente leitura. Se você definir o sinalizador de MDB_WRITE, talvez ainda não seja concedida permissão de leitura/gravação. O nível final de acesso que o MAPI atribui ao repositório de mensagens depende do nível de permissão, do próprio repositório de mensagens e do provedor do repositório de mensagens.

Se você chamar OpenMsgStore para abrir um repositório de mensagens com permissão somente leitura, o seguinte ocorrerá:

Referência do MFCMAPI

Para ver códigos de exemplo do MFCMAPI, confira a tabela a seguir.

Arquivo Função Comentário
MAPIStoreFunctions.cpp
CallOpenMsgStore
O MFCMAPI usa o método IMAPISession::OpenMsgStore para abrir um repositório de mensagens.

Confira também