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.