Compartilhar via


IMAPIContainer::OpenEntry

Aplica-se a: Outlook 2013 | Outlook 2016

Abre um objeto no contêiner, retornando 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. Se lpEntryID estiver definido como NULL, o contêiner de nível superior na hierarquia do contêiner será aberto.

lpInterface

[in] Um ponteiro para o IID (identificador de interface) que representa a interface a ser usada para acessar o objeto. Passar NULL resulta no identificador para a interface padrão do objeto que está sendo retornada. Para mensagens, a interface padrão é IMAPIMessageSite : IUnknown; para pastas, é IMAPIFolder : IMAPIContainer. As interfaces padrão para objetos do catálogo de endereços são IDistList : IMAPIContainer para uma lista de distribuição e IMailUser : IMAPIProp para um usuário de mensagens.

ulFlags

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

MAPI_BEST_ACCESS

Solicitações de que o objeto será aberto com 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 com permissão de leitura/gravação; se o cliente tiver acesso somente leitura, o objeto deverá ser aberto com acesso 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 acesso somente leitura e os clientes não devem trabalhar na suposição de que a permissão de leitura/gravação foi concedida.

SHOW_SOFT_DELETES

Mostra itens que atualmente são marcados como excluídos suavemente, ou seja, eles estão na fase de tempo de retenção de item excluído.

lpulObjType

[out] Um ponteiro para o tipo do objeto aberto.

Lppunk

[out] Um ponteiro para um ponteiro para a implementação da interface a ser usada para acessar o objeto aberto.

Valor de retorno

S_OK

O objeto foi aberto com êxito.

MAPI_E_NO_ACCESS

O usuário tem permissões insuficientes para abrir o objeto ou foi feita uma tentativa de abrir um objeto somente leitura com permissão de leitura/gravação.

MAPI_E_NOT_FOUND

O identificador de entrada especificado por lpEntryID não representa um objeto.

MAPI_E_UNKNOWN_ENTRYID

O identificador de entrada no parâmetro lpEntryID não é de um formato reconhecido pelo contêiner.

Comentários

O método IMAPIContainer::OpenEntry abre um objeto em todo um contêiner e retorna um ponteiro para uma implementação de interface a ser usada para acesso adicional.

Notas para chamadores

Como os provedores de serviço não são necessários para retornar uma implementação de interface do tipo especificado pelo identificador de interface no parâmetro lpInterface, marcar o valor apontado pelo parâmetro lpulObjType. Se necessário, selecione o ponteiro retornado em lppUnk para um ponteiro do tipo apropriado.

Por padrão, os provedores de serviço abrem objetos com acesso somente leitura, a menos que você defina o sinalizador MAPI_MODIFY ou MAPI_BEST_ACCESS. Quando um desses sinalizadores é definido, os provedores de serviços tentam retornar um objeto modificável. No entanto, não suponha que, como você solicitou um objeto modificável, o objeto aberto tenha permissão de leitura/gravação. Planeje a chance de uma modificação subsequente falhar ou recuperar a propriedade PR_ACCESS_LEVEL do objeto para determinar o nível de acesso concedido pelo OpenEntry.

Confira também

IMAPIContainer : IMAPIProp