Implémentation de la recherche avancée
S’applique à : Outlook 2013 | Outlook 2016
Certains conteneurs de carnets d’adresses prennent en charge une fonctionnalité de recherche avancée qui permet aux clients d’effectuer des recherches sur des propriétés autres que PR_DISPLAY_NAME (PidTagDisplayName). Pour prendre en charge les recherches avancées, votre fournisseur doit implémenter un conteneur spécial accessible via la propriété PR_SEARCH (PidTagSearch) de vos autres conteneurs. PR_SEARCH contient un objet conteneur qui fournit l’accès à une table d’affichage qui décrit la boîte de dialogue utilisée pour entrer et modifier les critères de recherche avancée.
Pour prendre en charge la recherche avancée
Définissez une propriété pour chacun de vos critères de recherche.
Dans la section de code de la méthode IMAPIProp ::OpenProperty de votre conteneur qui gère la propriété PR_SEARCH :
Vérifiez que le client demande l’interface IMAPIContainer . Si une interface inappropriée est demandée, échouez et retournez MAPI_E_INTERFACE_NOT_SUPPORTED.
Créez un objet de recherche qui prend en charge l’interface IMAPIContainer .
À ce stade, un appel est effectué à la méthode IMAPIProp ::OpenProperty de votre conteneur de recherche pour récupérer sa propriété PR_DETAILS_TABLE (PidTagDetailsTable). Votre fournisseur doit fournir une table d’affichage, généralement par le biais d’un appel à BuildDisplayTable, qui décrit la boîte de dialogue de recherche avancée du conteneur.
MAPI affiche la boîte de dialogue de recherche, ce qui permet à l’utilisateur d’entrer les critères appropriés. Lorsque l’utilisateur a terminé, MAPI appelle la méthode IMAPIProp ::SetProps du conteneur pour stocker les critères de recherche.
Un appel est effectué pour demander la table du contenu de votre conteneur de recherche. Remplissez la table de contenu avec toutes les entrées du conteneur qui correspondent aux critères.