Uso di codice gestito con dati della shell e Windows Search
Windows Search SDK fornisce un assembly di interoperabilità che consente di lavorare con oggetti COM (Component Object Model) esposti da Windows Search e da altri programmi rispetto alle interfacce e alle classi che usano codice gestito. L'assembly di interoperabilità è firmato digitalmente da Microsoft ed è disponibile con gli esempi di Windows Search .
Questo argomento è organizzato come segue:
Uso del CodePack dell'API Windows
Se si lavora nell'ambiente Microsoft .NET, utilizzare il Windows API Code Pack per Microsoft .NET Framework per ottenere i risultati della ricerca o semplicemente esplorare il namespace. Il pacchetto di codice dell'API Windows per Microsoft .NET Framework fornisce una raccolta di elementi della shell che sono fondamentalmente dei "wrapper" intorno all'interfaccia IShellItem nativa . È possibile scorrere questa raccolta e ottenere i vari valori delle proprietà in modo simile a come enumerare i risultati in una tabella da una query OLE DB (Object Linking and Embedding Database).
Il frammento di codice seguente illustra come scorrere gli elementi di ricerca e ottenere i valori delle proprietà per ognuno.
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);
}
Accesso ai risultati dell'indice
È possibile accedere ai risultati dell'indice tramite OLE DB o il modello di dati shell. Esistono vantaggi e svantaggi con entrambi gli approcci. Uno dei vantaggi è che OLE DB e Structured Query Language (SQL) hanno familiarità con i programmatori di database. Altri vantaggi sono un migliore controllo sulle prestazioni quando si eseguono query solo sull'indicizzatore e l'accesso a funzionalità aggiuntive, ad esempio la possibilità di individuare rapidamente i risultati precedenti in un nuovo set di righe.
I vantaggi del modello di dati shell sono che astrae diverse origini di informazioni, ad esempio OpenSearch, e fornisce l'accesso a funzionalità aggiuntive, come le anteprime e i gestori di proprietà. Né Il modello a oggetti Shell richiede un supporto per casi speciali per risultati che non siano nomi di file, come elementi email e risultati di OneNote, né per qualsiasi elemento che risiede nell'indice dell'utente. Si noti che in Shell KNOWNFOLDERID è l'ambito della cartella nota destinato al contenuto indicizzato localmente. Per ulteriori informazioni sulla creazione di un'origine dati Shell, vedere Implementazione delle interfacce dell'oggetto cartella di base.
Le origini dati OpenSearch non vengono esposte tramite OLE DB per la ricerca federata in Windows 7 e versioni successive. Per questo motivo è consigliabile scrivere un provider LINQ per lo spazio dei nomi Shell anziché usare OLE DB per accedere ai risultati dell'indicizzatore. Per altre informazioni, vedere Procedura dettagliata: Creazione di un provider LINQ IQueryable.
Applicazione di esempio che usa il codepack dell'API Windows
Lo screenshot seguente rappresenta un mock up di un'applicazione di esempio creata con il Code Pack dell'API Windows per Microsoft .NET Framework.
Argomenti correlati
-
concettuale
-
altre risorse