Compartilhar via


Implementando pesquisa avançada

Aplica-se a: Outlook 2013 | Outlook 2016

Alguns contêineres de catálogo de endereços dão suporte a um recurso avançado de pesquisa que permite que os clientes pesquisem em propriedades diferentes de PR_DISPLAY_NAME (PidTagDisplayName). Para dar suporte a pesquisas avançadas, seu provedor deve implementar um contêiner especial acessível por meio da propriedade PR_SEARCH (PidTagSearch) de seus outros contêineres. PR_SEARCH contém um objeto de contêiner que fornece acesso a uma tabela de exibição que descreve a caixa de diálogo usada para inserir e editar os critérios avançados de pesquisa.

Para dar suporte à pesquisa avançada

  1. Defina uma propriedade para cada um de seus critérios de pesquisa.

  2. Na seção de código no método IMAPIProp::OpenProperty do contêiner que manipula a propriedade PR_SEARCH :

  3. Verifique se o cliente está solicitando a interface IMAPIContainer . Se uma interface inadequada estiver sendo solicitada, falhe e retorne MAPI_E_INTERFACE_NOT_SUPPORTED.

  4. Crie um novo objeto de pesquisa que dê suporte à interface IMAPIContainer .

  5. Neste ponto, uma chamada será feita para o método IMAPIProp::OpenProperty do contêiner de pesquisa para recuperar sua propriedade PR_DETAILS_TABLE (PidTagDetailsTable). Seu provedor deve fornecer uma tabela de exibição, normalmente por meio de uma chamada para BuildDisplayTable, que descreve a caixa de diálogo de pesquisa avançada do contêiner.

  6. O MAPI exibe a caixa de diálogo de pesquisa, permitindo que o usuário insira os critérios apropriados. Quando o usuário terminar, o MAPI chama o método IMAPIProp::SetProps do contêiner para armazenar os critérios de pesquisa.

  7. Uma chamada será feita para solicitar a tabela de conteúdo do contêiner de pesquisa. Preencha a tabela de conteúdo com todas as entradas no contêiner que correspondem aos critérios.