Compartilhar via


IAddrBook::OpenEntry

Aplica-se a: Outlook 2013 | Outlook 2016

Abre uma entrada do catálogo de endereços e retorna um ponteiro para uma interface que pode ser usada para acessar a entrada.

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 que representa a entrada do catálogo de endereços a ser aberta.

lpInterface

[in] Um ponteiro para o IID (identificador de interface) da interface a ser usada para acessar a entrada aberta. Passar NULL retorna a interface padrão do objeto. Para usuários de mensagens, a interface padrão é IMailUser : IMAPIProp. Para listas de distribuição, é IDistList : IMAPIContainer e para contêineres, é IABContainer : IMAPIContainer. Os chamadores podem definir lpInterface para a interface padrão apropriada ou uma interface na hierarquia de herança.

ulFlags

[in] Um bitmask de sinalizadores que controla como a entrada é aberta. Os sinalizadores a seguir podem ser definidos.

MAPI_BEST_ACCESS

Solicita que a entrada seja aberta com as permissões máximas de rede e cliente permitidas. Por exemplo, se o cliente tiver permissão de leitura/gravação, o provedor de catálogo de endereços deverá tentar abrir a entrada com permissão de leitura/gravação. O cliente pode recuperar o nível de acesso concedido chamando o método IMAPIProp::GetProps da entrada aberta e recuperando a propriedade PR_ACCESS_LEVEL (PidTagAccessLevel).

MAPI_CACHE_ONLY

Abre uma entrada do catálogo de endereços e acessa-a somente no cache. Por exemplo, você pode usar esse sinalizador para permitir que um aplicativo cliente abra a GAL (lista de endereços global) no modo de troca armazenado em cache e acesse uma entrada no catálogo de endereços do cache sem criar tráfego entre o cliente e o servidor. Esse sinalizador é compatível apenas com o provedor de catálogo de endereços do Exchange.

MAPI_DEFERRED_ERRORS

Permite que a chamada tenha êxito, potencialmente antes que a entrada esteja totalmente aberta e disponível, implicando que chamadas posteriores para a entrada podem retornar um erro.

MAPI_GAL_ONLY

Use apenas o GAL para executar a resolução de nomes. Esse sinalizador tem suporte apenas pelo Provedor de Catálogo de Endereços do Exchange.

Observação

O ulFlags MAPI_GAL_ONLY pode não ser definido no arquivo de cabeçalho para download que você tem atualmente, nesse caso, você pode adicioná-lo ao código usando o seguinte valor: #define MAPI_GAL_ONLY (0x00000080)

MAPI_MODIFY

Solicita que a entrada seja aberta com permissão de leitura/gravação. Como as entradas são abertas com acesso somente leitura por padrão, os clientes não devem assumir que a permissão de leitura/gravação foi concedida independentemente de MAPI_MODIFY está definida.

MAPI_NO_CACHE

Não use o catálogo de endereços offline para executar a resolução de nomes. Esse sinalizador tem suporte apenas pelo Provedor de Catálogo de Endereços do Exchange.

lpulObjType

[out] Um ponteiro para o tipo da entrada aberta.

Lppunk

[out] Um ponteiro para um ponteiro para a entrada aberta.

Valor de retorno

S_OK

A entrada foi aberta com êxito.

MAPI_E_NO_ACCESS

Foi feita uma tentativa de abrir uma entrada para a qual o usuário não tem permissões suficientes.

MAPI_E_NOT_FOUND

A entrada representada por lpEntryID não existe.

MAPI_E_UNKNOWN_ENTRYID

O identificador de entrada especificado em lpEntryID não é reconhecido. Esse valor normalmente será retornado se o provedor de catálogo de endereços responsável pela entrada correspondente não estiver aberto.

Comentários

Clientes e provedores de serviços chamam o método IAddrBook::OpenEntry para abrir uma entrada do catálogo de endereços. O MAPI encaminha a chamada para o provedor de catálogo de endereços apropriado, com base na estrutura MAPIUID incluída no identificador de entrada passado no parâmetro lpEntryID . O provedor de catálogo de endereços abre a entrada como somente leitura, a menos que o sinalizador MAPI_MODIFY ou MAPI_BEST_ACCESS no parâmetro ulFlags seja definido. No entanto, esses sinalizadores são sugestões. Se o provedor do catálogo de endereços não permitir modificação para a entrada solicitada, ele retornará MAPI_E_NO_ACCESS.

O parâmetro lpInterface indica qual interface deve ser usada para acessar a entrada aberta. Passar NULL no lpInterface indica que a interface MAPI padrão para esse tipo de entrada deve ser usada. Como o provedor de catálogo de endereços pode retornar uma interface diferente da sugerida pelo parâmetro lpInterface, o chamador deve marcar 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 do tipo esperado, o chamador poderá lançar o parâmetro lppUnk para um tipo mais apropriado.

Confira também