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.