Compartir a través de


Uso de código administrado con datos de shell y Windows Search

El SDK de Windows Search proporciona un ensamblado de interoperabilidad para trabajar con objetos del Modelo de objetos componentes (COM) expuestos por Windows Search y otros programas en las interfaces y clases mediante código administrado. Microsoft firma digitalmente el ensamblado de interoperabilidad y se puede encontrar con los ejemplos de Windows Search.

Este tema se organiza de la siguiente manera:

Uso de CodePack de la API de Windows

Si está trabajando en el entorno de Microsoft .NET, use el paquete de código de la API de Windows para Microsoft .NET Framework para obtener los resultados de la búsqueda o simplemente examine el espacio de nombres. El paquete de código de la API de Windows para Microsoft .NET Framework proporciona una colección de elementos de Shell que básicamente son contenedores en torno a la interfaz IShellItem nativa. Puede iterar por esta colección y obtener los distintos valores de propiedad de forma similar a cómo enumeraría los resultados en una tabla de una consulta de base de datos de vinculación e inserción de objetos (OLE DB).

En el fragmento de código siguiente se muestra cómo iterar los elementos de búsqueda y obtener los valores de propiedad de cada uno.

foreach (ShellObject so in KnownFolders.SavedSearches)
{
    searchFolder = new ShellSearchFolder(finalSearchCondition, (ShellContainer)so);
    List<ShellObject> items = new List<ShellObject>();
    foreach (ShellObject so2 in searchFolder) items.Add(so2);   
}

Obtener acceso a los resultados del índice

Puede acceder a los resultados del índice a través de OLE DB o el modelo de datos de Shell. Hay ventajas y desventajas con cualquiera de los enfoques. Una ventaja es que OLE DB y Lenguaje de consulta estructurado (SQL) son familiares para los programadores de bases de datos. Otras ventajas son un mejor control sobre el rendimiento al consultar solo el indexador y el acceso a funcionalidad adicional, como la capacidad de buscar resultados anteriores en un nuevo conjunto de filas rápidamente.

Las ventajas del modelo de datos de Shell son que abstrae en diferentes orígenes de información, como OpenSearch, y proporciona acceso a funcionalidades adicionales, como miniaturas y controladores de propiedades. Tampoco el modelo de objetos de Shell requiere compatibilidad especial con casos para resultados que no sean de nombre de archivo, como elementos de correo y resultados de OneNote, ni para ningún elemento que resida en el índice del usuario. Tenga en cuenta que en Shell KNOWNFOLDERID es el ámbito de carpeta conocido para el contenido indizado local. Para obtener más información sobre cómo crear un origen de datos de Shell, consulte Implementación de las interfaces de objeto de carpeta básicas.

Los orígenes de datos openSearch no se exponen a través de OLE DB para la búsqueda federada en Windows 7 y versiones posteriores. Por este motivo, se recomienda que considere la posibilidad de escribir un proveedor LINQ para el espacio de nombres shell en lugar de usar OLE DB para acceder a los resultados del indexador. Para obtener más información, vea Tutorial: Creación de un proveedor LINQ que se puede consultar en IQueryable.

Aplicación de ejemplo que usa el paquete de código de la API de Windows

La captura de pantalla siguiente representa un simulacro de una aplicación de ejemplo creada con el Paquete de código de la API de Windows para Microsoft .NET Framework.

captura de pantalla de la aplicación del reproductor multimedia que muestra mensajes de correo electrónico

Conceptual

Búsqueda federada en Windows

Otros recursos

Interoperabilidad entre lenguajes