Compartilhar via


Registrar identificadores exclusivos do provedor de serviços

Aplica-se a: Outlook 2013 | Outlook 2016

O catálogo de endereços, o repositório de mensagens e os provedores de transporte usam um identificador exclusivo conhecido como MAPIUID para se registrar em objetos de serviço de vários tipos. Um MAPIUID é um identificador de 16 bytes que contém um GUID. Você pode criar um MAPIUID usando o seguinte procedimento:

  1. Defina uma constante.

  2. Invoque a ferramenta Visual Studio*Create GUID**.

Por exemplo, um provedor de catálogo de endereços pode incluir a seguinte constante em um arquivo de cabeçalho para definir um MAPIUID:

#define AB_UID_PROVIDER { 0Xe3, 0x3c, 0x67, 0xa0, \ 0xc8, 0x1f, 0x11, 0xce, \ 0xb2, 0xe4, 0x0, 0xaa, \ 0x0, 0x51, 0xe, 0x3b }

Para registrar um MAPIUID se o provedor for um catálogo de endereços ou um provedor de armazenamento de mensagens

  1. Chame IMAPISupport::SetProviderUID.

  2. Registre um MAPIUID para cada objeto de logon que você instanciar e inclua este MAPIUID nos primeiros 16 bytes do membro ab de cada identificador de entrada que você criar. O MAPI usa estruturas MAPIUID para associar objetos a provedores de serviços. Quando um cliente chama o método IMAPISession::OpenEntry para abrir um objeto, MAPI examina a parte MAPIUID do identificador de entrada, correspondendo-o ao MAPIUID registrado, para determinar qual objeto logon deve receber a solicitação aberta.

  3. Se o provedor for um transporte, registre uma ou mais estruturas MAPIUID quando MAPI chamar seu método IXPLogon::AddressTypes . O MAPI usa as estruturas MAPIUID registradas pelos provedores de transporte para atribuir a responsabilidade pela entrega de mensagens.

Embora os provedores de serviços normalmente registrem um único MAPIUID, você pode registrar várias estruturas MAPIUID . Se seu catálogo de endereços ou provedor de armazenamento de mensagens der suporte a vários objetos de logon, talvez permitindo que um usuário adicione mais de uma instância do seu provedor ao seu perfil, talvez você queira implementar um MAPIUID diferente para cada objeto de logon. Há alguns outros motivos para dar suporte a mais de um MAPIUID:

  • Você deve dar suporte a mais de uma versão do provedor e os identificadores de entrada devem representar a versão apropriada. Atribua um MAPIUID diferente para cada versão.

  • Você deseja distinguir entre os tipos de objetos que você dá suporte. Por exemplo, um provedor de catálogo de endereços pode querer registrar um MAPIUID para usar nos identificadores de entrada de seus objetos de usuário de mensagens e um MAPIUID diferente a ser usado para listas de distribuição.

Quando há vários objetos de logon que são simultaneamente ativos, faz sentido ter estruturas MAPIUID exclusivas para cada um deles. Isso aumenta a precisão com que o MAPI corresponde aos identificadores de entrada aos provedores de serviços e salva algum trabalho. Quando cada objeto de logon tem seu próprio identificador exclusivo, o MAPI pode garantir que qualquer solicitação que ele roteia para um objeto de logon possa ser manipulada por esse objeto. Quando objetos de logon compartilham estruturas MAPIUID , MAPI roteia a solicitação para o primeiro objeto de logon identificado pelo MAPIUID. Se um dos objetos de logon receber uma solicitação que não pode ser processada porque não manipula o identificador de entrada, passe a solicitação para o próximo objeto logon antes de retornar um erro.

Confira também

Implementando o logon do Provedor de Serviços