Menggunakan kode terkelola dengan data shell dan Windows Search

Windows Search SDK menyediakan rakitan interopabilitas bagi Anda untuk bekerja dengan objek Model Objek Komponen (COM) yang diekspos oleh Windows Search dan program lain terhadap antarmuka dan kelas menggunakan kode terkelola. Rakitan interopabilitas ditandatangani secara digital oleh Microsoft dan dapat ditemukan dengan sampel Windows Search .

Topik ini diatur sebagai berikut:

Menggunakan Windows API CodePack

Jika Anda bekerja di lingkungan Microsoft .NET, gunakan Paket Kode API Windows untuk Microsoft .NET Framework untuk mendapatkan hasil pencarian, atau cukup telusuri namespace layanan. Paket Kode API Windows untuk Microsoft .NET Framework memberi Anda koleksi item Shell yang pada dasarnya merupakan pembungkus di sekitar antarmuka IShellItem asli. Anda dapat melakukan iterasi atas koleksi ini dan mendapatkan berbagai nilai properti dengan cara yang mirip dengan bagaimana Anda akan menghitung hasil dalam tabel dari kueri Object Linking dan Embedding Database (OLE DB).

Cuplikan kode berikut mengilustrasikan cara melakukan iterasi melalui Item pencarian dan mendapatkan nilai properti untuk masing-masing item.

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);   
}

Mengakses hasil indeks

Anda dapat mengakses hasil indeks melalui OLE DB atau model data Shell. Ada kelebihan dan kekurangan dengan salah satu pendekatan. Salah satu keuntungannya adalah bahwa OLE DB dan Structured Query Language (SQL) sudah tidak asing lagi bagi pemrogram database. Keuntungan lainnya adalah kontrol yang lebih baik atas performa saat hanya mengkueri pengindeks, dan akses ke fungsionalitas tambahan seperti kemampuan untuk menemukan hasil sebelumnya dalam set baris baru dengan cepat.

Keuntungan dari model data Shell adalah bahwa model ini mengabstraksi berbagai sumber informasi seperti OpenSearch, dan menyediakan akses ke fungsionalitas tambahan seperti gambar mini dan pengendali properti. Model objek Shell juga tidak memerlukan dukungan kasus khusus untuk hasil non-nama file seperti item email dan hasil OneNote, atau untuk item apa pun yang berada di indeks pengguna. Perhatikan bahwa di Shell KNOWNFOLDERID adalah cakupan folder yang diketahui untuk konten terindeks lokal. Untuk informasi selengkapnya tentang membuat sumber data Shell, lihat Menerapkan Antarmuka Objek Folder Dasar.

Sumber data OpenSearch tidak diekspos melalui OLE DB untuk pencarian federasi di Windows 7 dan yang lebih baru. Untuk alasan ini, kami sarankan Anda mempertimbangkan untuk menulis penyedia LINQ untuk namespace Shell alih-alih menggunakan OLE DB untuk mengakses hasil pengindeks. Untuk informasi selengkapnya, lihat panduan : Membuat Penyedia IQueryable LINQ.

Aplikasi sampel menggunakan paket kode Windows API

Cuplikan layar berikut menunjukkan mock up aplikasi sampel yang dibuat dengan Paket Kode API Windows untuk Microsoft .NET Framework.

cuplikan layar aplikasi pemutar media yang memperlihatkan pesan email

Konseptual

Pencarian Federasi di Windows

Sumber Daya Lain

Interoperabilitas Lintas Bahasa