Recuperando identidade primária e de provedor
Aplica-se a: Outlook 2013 | Outlook 2016
Os provedores de serviços, normalmente provedores de catálogo de endereços, têm a opção de fornecer uma identidade que pode ser usada para representar a sessão em várias situações. Três propriedades descrevem a identidade de um provedor:
PR_IDENTITY_ENTRYID (PidTagIdentityEntryId)
PR_IDENTITY_DISPLAY (PidTagIdentityDisplay)
PR_IDENTITY_SEARCH_KEY (PidTagIdentitySearchKey)
Essas propriedades são definidas como o identificador de entrada, o nome de exibição e a chave de pesquisa do objeto de identidade correspondente, que normalmente é um usuário de mensagens. Os provedores que fornecem uma identidade também definem o sinalizador STATUS_PRIMARY_IDENTITY em sua propriedade PR_RESOURCE_FLAGS (PidTagResourceFlags).
Dependendo de suas necessidades, você pode usar a identidade de um determinado provedor ou a identidade primária para a sessão. Você pode usar a identidade de um provedor também para fins de exibição ou para recuperar propriedades, como PR_RESOURCE_PATH (PidTagResourcePath). PR_RESOURCE_PATH, se definido, contém o caminho para arquivos usados ou criados pelo provedor. Recupere a propriedade PR_RESOURCE_PATH para o provedor que fornece a identidade primária quando quiser localizar arquivos pertencentes ao usuário da sessão.
Para recuperar a identidade de um provedor específico
Chame IMAPISession::GetStatusTable para acessar a tabela status.
Crie uma restrição usando uma estrutura SPropertyRestriction para corresponder à coluna PR_PROVIDER_DLL_NAME (PidTagProviderDllName) com o nome do provedor especificado.
Chame IMAPITable::FindRow para localizar a linha do provedor. A identidade do provedor será armazenada na coluna PR_IDENTITY_ENTRYID , se ela existir.
Para recuperar a identidade primária de uma sessão
- Chame IMAPISession::QueryIdentity. QueryIdentity baseia a identidade da sessão na existência do valor STATUS_PRIMARY_IDENTITY na coluna PR_RESOURCE_FLAGS para uma das linhas da tabela status. Se nenhuma das linhas status tiver esse conjunto de valores, a QueryIdentity atribuirá identidade ao primeiro provedor de serviços que define as três propriedades PR_IDENTITY. Se nenhum provedor de serviços fornecer uma identidade, QueryIdentity retornará MAPI_W_NO_SERVICE. Quando isso acontecer, você deve criar uma cadeia de caracteres para representar um usuário genérico que pode servir como a identidade primária.
Para definir explicitamente a identidade primária para uma sessão
- Chame IMsgServiceAdmin::SetPrimaryIdentity. Passe o MAPIUID para o provedor de serviços de destino.