Bagikan melalui


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 Windows API Code Pack untuk Microsoft .NET Framework untuk mendapatkan hasil pencarian, atau cukup telusuri namespace layanan. Paket Kode Windows API untuk Microsoft .NET Framework memberi Anda koleksi item Shell yang pada dasarnya membungkus 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 and Embedding Database (OLE DB).

Cuplikan kode berikut menggambarkan 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 Bahasa Permintaan Terstruktur (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 diabstraksi di berbagai sumber informasi seperti OpenSearch, dan menyediakan akses ke fungsionalitas tambahan seperti gambar mini dan penangan 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 dalam 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 LINQ yang Dapat Dikueri.

Aplikasi Sampel Menggunakan Windows API Codepack

Cuplikan layar berikut menunjukkan tiruan aplikasi sampel yang dibuat dengan Windows API Code Pack untuk Microsoft .NET Framework.

cuplikan layar aplikasi pemutar media memperlihatkan pesan email

Konseptual

Pencarian Federasi di Windows

Sumber Daya Lainnya

Interoperabilitas Lintas Bahasa