Utilisation de la recherche instantanée pour rechercher une expression employée dans l’objet dans tous les dossiers et toutes les banques
Cet exemple utilise la recherche instantanée pour rechercher une phrase dans l'objet à travers tous les dossiers et toutes les banques, puis affiche les éléments dans une fenêtre d'explorateur.
Exemple
Remarque
L’exemple de code suivant est un extrait de programmation d’Applications pour Microsoft Office Outlook 2007.
La recherche instantanée est une fonctionnalité de Microsoft Outlook qui permet d’effectuer des recherches en émettant des requêtes qui renvoient des résultats en fonction du contenu. Une fois que votre requête a été traitée, les résultats peuvent être retournés dans différents objets, y compris l'objet Table , la collection Items et l'objet Search . Vous pouvez écrire du code qui utilise la recherche instantanée à l'aide de la syntaxe AQS (Advanced Query Syntax), qui est disponible avec Microsoft Windows Desktop Search. AQS est un des trois langages de requête pris en charge par Outlook. Il est puissant, mais limité à la méthode Search(String, OlSearchScope) de l’objet Explorer. Vous ne pouvez pas utiliser AQS pour fournir une restriction pour des objets Table ou Item. En outre, les résultats renvoyés par une requête AQS peuvent être affichés uniquement dans l’interface utilisateur Outlook. Le tableau suivant répertorie les trois langages de requête pris en charge par Outlook ; cette rubrique ne montrera cependant que l’utilisation d’AQS.
Langage de requête |
Description |
---|---|
AQS |
AQS est utilisé par Windows Desktop Search et est le langage de recherche pour la fonction de recherche instantanée dans Outlook. |
DASL |
Le langage de recherche DASL (DAV Search and Locating) est basé sur l’implémentation Microsoft Exchange de DASL dans Outlook. DASL peut être utilisé pour retourner des résultats dans l’objet Table. |
Jet |
Le langage de requête Jet offre un langage de requête simple pour Outlook, et il est basé sur Microsoft Jet Expression Service. Jet est utilisé pour créer des chaînes de filtre pour les méthodes Restrict de la collection Items et l’objet Table. |
Dans l’exemple de code suivant, DemoInstantSearch obtient tous les dossiers de messagerie électronique de tous les magasins où l’indexation est activée à l’aide de la propriété IsInstantSearchEnabled de l’objet Store. Il utilise ensuite la méthode Search de l’objet Explorer pour filtrer tous les éléments qui contiennent la phrase exacte « Office 2007 » dans l’objet et qui ont été reçus au cours du mois dernier. Enfin, les résultats de la recherche sont affichés dans une fenêtre distincte de l’explorateur.
Si vous utilisez Visual Studio pour tester cet exemple de code, vous devez d’abord ajouter une référence au composant Bibliothèque d’objets Microsoft Outlook 15.0 et spécifier la variable lorsque vous importez l’espace de noms Microsoft.Office.Interop.Outlook. L’instruction using ne doit pas se produire juste avant les fonctions de l’exemple de code, mais doit être ajoutée avant la déclaration publique. La ligne de code suivante montre comment effectuer l’importation et l’affectation dans C#.
using Outlook = Microsoft.Office.Interop.Outlook;
private void DemoInstantSearch()
{
if (Application.Session.DefaultStore.IsInstantSearchEnabled)
{
Outlook.Explorer explorer = Application.Explorers.Add(
Application.Session.GetDefaultFolder(
Outlook.OlDefaultFolders.olFolderInbox)
as Outlook.Folder,
Outlook.OlFolderDisplayMode.olFolderDisplayNormal);
string filter = "subject:" +
"\"" + "Office 2007" + "\"" +
" received:(last month)";
explorer.Search(filter,
Outlook.OlSearchScope.olSearchScopeAllFolders);
explorer.Display();
}
}