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
Defina uma propriedade para cada um de seus critérios de pesquisa.
Na seção de código no método IMAPIProp::OpenProperty do contêiner que manipula a propriedade PR_SEARCH :
Verifique se o cliente está solicitando a interface IMAPIContainer . Se uma interface inadequada estiver sendo solicitada, falhe e retorne MAPI_E_INTERFACE_NOT_SUPPORTED.
Crie um novo objeto de pesquisa que dê suporte à interface IMAPIContainer .
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.
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.
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.