Compartir a través de


Usar la Búsqueda instantánea para buscar en todas las carpetas y todos los almacenes una frase en el asunto

En este ejemplo se usa la Búsqueda instantánea para buscar en todas las carpetas y todos los almacenes una frase en el asunto y, a continuación, mostrar los elementos en una ventana del explorador.

Ejemplo

Nota:

El siguiente ejemplo de código es un fragmento de Programming Applications for Microsoft Office Outlook 2007 (Programación de aplicaciones para Microsoft Office Outlook 2007).

La Búsqueda instantánea es una característica de Microsoft Outlook que permite hacer búsquedas mediante la emisión de consultas que devuelven resultados en función del contenido. Después de que se haya procesado la consulta, los resultados se pueden devolver en varios objetos, como el objeto Tabla, la colección Items y el objeto Search. Puede escribir código que usa la Búsqueda instantánea mediante la Sintaxis de consulta avanzada (AQS) que ofrece Microsoft Windows Desktop Search. AQS es uno de los tres lenguajes de consulta que admite Outlook. Es eficaz, pero se limita al método Search(String, OlSearchScope) del objeto Explorer. No puede usar AQS para imponer una restricción para objetos Table o Item. Además, los resultados devueltos por una consulta de AQS solo pueden mostrarse en la interfaz de usuario de Outlook. La siguiente tabla enumera los tres lenguajes de consulta que admite Outlook, aunque en este tema solo se muestra el uso de AQS.

Lenguaje de consulta

Descripción

AQS

Windows Desktop Search usa AQS y es el lenguaje de consulta para la característica Búsqueda instantánea en Outlook.

DASL

El lenguaje de consulta búsqueda y ubicación DAV (DASL) se basa en la implementación de este lenguaje por parte de Microsoft Exchange en Outlook. DASL puede utilizarse para devolver resultados en el objeto Table.

Jet

El lenguaje de consulta Jet proporciona un lenguaje de consulta simple para Outlook y se basa en el Servicio de expresiones de Microsoft Jet. Jet se usa para crear cadenas de filtro para los métodos Restrict de la colección Items y el objeto Table.

En el ejemplo de código siguiente, DemoInstantSearch devuelve todas las carpetas de correo de todos los almacenes en los que está habilitada la indexación mediante la propiedad IsInstantSearchEnabled del objeto Store. Después usa el método Search del objeto Explorer para filtrar todos los elementos que contienen la frase exacta "Office 2007" en el asunto y que se han recibido el mes pasado. Por último, los resultados de la búsqueda se muestran en una ventana independiente del explorador.

Si usa Visual Studio para probar este ejemplo de código, primero debe agregar una referencia al componente de la biblioteca de objetos de Microsoft Outlook 15.0 y especificar la variable de Outlook al importar el espacio de nombres Microsoft.Office.Interop.Outlook. La instrucción using no debe producirse directamente antes de las funciones en el ejemplo de código, pero debe agregarse antes de la declaración de clase pública. La siguiente línea de código muestra cómo realizar la importación y la asignación en 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();
    }
}

Vea también