IMsgStore::OpenEntry
Aplica-se a: Outlook 2013 | Outlook 2016
Abre uma pasta ou mensagem e retorna um ponteiro de interface para obter mais acesso.
HRESULT OpenEntry(
ULONG cbEntryID,
LPENTRYID lpEntryID,
LPCIID lpInterface,
ULONG ulFlags,
ULONG FAR * lpulObjType,
LPUNKNOWN FAR * lppUnk
);
Parâmetros
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 objeto a ser aberto ou NULL. Se lpEntryID estiver definido como NULL, OpenEntry abrirá a pasta raiz do repositório de mensagens.
lpInterface
[in] Um ponteiro para o IID (identificador de interface) que representa a interface a ser usada para acessar o objeto aberto. Passar NULL resulta no retorno da interface padrão do objeto (IMAPIFolder para pastas e IMessage para mensagens).
ulFlags
[in] Um bitmask de sinalizadores que controla como o objeto é aberto. Os seguintes sinalizadores podem ser usados:
MAPI_BEST_ACCESS
Solicita que o objeto seja aberto usando as permissões de rede máximas permitidas para o usuário e o acesso máximo do aplicativo cliente. Por exemplo, se o cliente tiver permissão de leitura/gravação, o objeto deverá ser aberto usando a permissão de leitura/gravação; se o cliente tiver permissão somente leitura, o objeto deverá ser aberto usando a permissão somente leitura.
MAPI_DEFERRED_ERRORS
Permite que o OpenEntry retorne com êxito, possivelmente antes que o objeto esteja totalmente disponível para o cliente de chamada. Se o objeto não estiver disponível, fazer uma chamada de objeto subsequente poderá gerar um erro.
MAPI_MODIFY
Solicita permissão de leitura/gravação. Por padrão, os objetos são abertos com permissão somente leitura e os clientes não devem trabalhar na suposição de que a permissão de leitura/gravação é concedida.
lpulObjType
[out] Um ponteiro para o tipo do objeto aberto.
Lppunk
[out] Um ponteiro para um ponteiro para o objeto aberto.
Valor de retorno
S_OK
A chamada foi bem-sucedida e retornou o valor ou valores esperados.
MAPI_E_NO_ACCESS
Foi feita uma tentativa de modificar um objeto somente leitura ou acessar um objeto para o qual o usuário tem permissões insuficientes.
MAPI_NO_CACHE
Quando uma loja é aberta no modo armazenado em cache, um cliente ou provedor de serviços pode chamar IMsgStore::OpenEntry, definindo o sinalizador MAPI_NO_CACHE para abrir um item ou uma pasta no repositório remoto. Se você abrir o repositório de mensagens com o sinalizador MDB_ONLINE no servidor remoto, não precisará usar o sinalizador MAPI_NO_CACHE.
Comentários
O método IMsgStore::OpenEntry abre uma pasta ou mensagem e retorna um ponteiro para uma interface que pode ser usada para acesso adicional.
Importante
Ao abrir entradas de pasta em um repositório público, como pastas e mensagens, use IMsgStore::OpenEntry em vez de IMAPISession::OpenEntry. Isso garante que as pastas públicas funcionem corretamente quando várias contas do Exchange são definidas em um perfil.
Notas para chamadores
Pastas e mensagens são abertas automaticamente com permissão somente leitura, a menos que você defina o sinalizador MAPI_MODIFY ou MAPI_BEST_ACCESS no parâmetro ulFlags . A configuração de um desses sinalizadores não garante um tipo específico de permissão; as permissões concedidas dependem do provedor do repositório de mensagens, do nível de acesso e do objeto. Para determinar o nível de acesso do objeto aberto, recupere sua propriedade PR_ACCESS_LEVEL (PidTagAccessLevel).
Embora o IMsgStore::OpenEntry possa ser usado para abrir qualquer pasta ou mensagem, geralmente é mais rápido usar o método IMAPIContainer::OpenEntry se você tiver acesso à pasta pai da pasta ou mensagem a ser aberta.
Verifique o valor retornado no parâmetro lpulObjType para determinar se o tipo de objeto retornado é o esperado. Se o tipo de objeto não for o tipo esperado, selecione o ponteiro do parâmetro lppUnk para um ponteiro do tipo apropriado. Por exemplo, se você estiver abrindo uma pasta, lance lppUnk em um ponteiro do tipo LPMAPIFOLDER.
Referência do MFCMAPI
Para ver códigos de exemplo do MFCMAPI, confira a tabela a seguir.
Arquivo | Função | Comentário |
---|---|---|
MAPIFunctions.cpp |
CallOpenEntry |
O MFCMAPI usa o método IMsgStore::OpenEntry para abrir o objeto associado a uma ID de entrada. |