Compartilhar via


IABLogon::OpenEntry

Aplica-se a: Outlook 2013 | Outlook 2016

Abre um contêiner, um usuário de mensagens ou uma lista de distribuição e retorna um ponteiro para uma implementação de interface para fornecer 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 contêiner, usuário de mensagens ou lista de distribuição a ser aberta.

lpInterface

[in] Um ponteiro para o IID (identificador de interface) que representa a interface a ser usada para acessar o objeto aberto. Passar NULL retorna o identificador para a interface padrão do objeto. Para contêineres, a interface padrão é IABContainer : 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 que o objeto seja aberto com as permissões máximas de rede 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 permissão somente leitura, o objeto deverá ser aberto com permissão somente leitura.

MAPI_DEFERRED_ERRORS

Permite que o método OpenEntry retorne com êxito, possivelmente antes que o cliente de chamada tenha acessado totalmente o objeto. Se o objeto não for acessado, 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 assumir que a permissão de leitura/gravação foi concedida.

lpulObjType

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

Lppunk

[out] Um ponteiro para um ponteiro para o objeto aberto.

Comentários

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 provedor do catálogo de endereços.

O MAPI chama o método OpenEntry para abrir um contêiner, um usuário de mensagens ou uma lista de distribuição.

Observações para implementadores

Antes de MAPI chamar seu método OpenEntry , ele determina que o identificador de entrada no parâmetro lpEntryID pertence a você e não a outro provedor. MAPI faz isso igualando a estrutura MAPIUID no identificador de entrada com o MAPIUID que você registrou chamando o método IMAPISupport::SetProviderUID na inicialização.

Abra o objeto como somente leitura, a menos que o sinalizador MAPI_MODIFY ou MAPI_BEST_ACCESS seja definido no parâmetro ulFlags . Se você não permitir a modificação do objeto solicitado, não abra o objeto e retorne MAPI_E_NO_ACCESS.

Se MAPI passar NULL para lpEntryID, abra o contêiner raiz na hierarquia de contêineres.

O objeto que você está sendo solicitado a abrir pode ser um objeto copiado de outro provedor. Nesse caso, ele dará suporte à propriedade PR_TEMPLATEID (PidTagTemplateid). Se o objeto der suporte a essa propriedade, chame o método IMAPISupport::OpenTemplateID para associar ao código para essa entrada no provedor estrangeiro, passando PR_TEMPLATEID no parâmetro lpTemplateID e 0 no parâmetro ulTemplateFlags . IMAPISupport::OpenTemplateID passa essas informações para o provedor estrangeiro em uma chamada para o método IABLogon::OpenTemplateID do provedor estrangeiro. Se IMAPISupport::OpenTemplateID gerar um erro, geralmente porque o provedor estrangeiro não está disponível ou não está incluído no perfil, tente continuar tratando a entrada desvinculada como somente leitura. Para obter mais informações sobre como abrir entradas de catálogo de endereços no exterior, consulte Agindo como um provedor de catálogo de endereços de host.

Confira também

IABLogon : IUnknown