Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sistem Properti Windows adalah sistem baca/tulis definisi data yang dapat diperluas yang menyediakan cara yang seragam untuk mengekspresikan metadata tentang item Shell. Sistem Properti Windows di Windows Vista dan yang lebih baru memungkinkan Anda menyimpan dan mengambil metadata untuk item Shell. Item Shell adalah satu konten, seperti file, folder, email, atau kontak. Sebuah properti adalah unsur metadata individual yang berhubungan dengan item Shell. Nilai properti dinyatakan sebagai struktur PROPVARIANT.
Topik ini diatur sebagai berikut:
- Pengenalan
- Skenario Pengembangan
- Properti dan Windows Search
- Catatan bagi Penerap
- Dokumentasi Sistem Properti Windows
- Sumber Daya Tambahan
- Topik terkait
Perkenalan
Properti diidentifikasi secara unik dengan nama kanonisnya (seperti System.Document.LastAuthor
) dan kunci properti (seperti PKEY_Document_LastAuthor
). Kunci properti (PKEY) adalah bagian nama dari pasangan nama-nilai yang terdiri dari PKEY/PROPVARIANT atau string/PROPVARIANT, di mana string adalah nama kanonis PKEY (seperti System.Document.LastAuthor
). PKEY adalah definisi yang menyediakan sistem properti dengan semua informasi yang dibutuhkan tentang properti, sedangkan nilainya adalah contoh nyata dari properti tersebut. PKEY secara internal berisi formatID dan propID.
Properti individu terdiri dari tiga bagian berikut:
- Nama kanonis, seperti
System.Music.Artist
. - Deskripsi skema, yang ditentukan dalam format file XML .propdesc dan dinyatakan secara terprogram melalui IPropertyDescription.
- Nilai, seperti nama penyanyi.
Deskripsi skema terdiri dari informasi tentang properti, seperti nama properti, jenis data, batasan, informasi tentang bagaimana properti berinteraksi dengan tampilan dan sistem pencarian, dan sebagainya. Deskripsi nama dan skema ditentukan secara global, dan sama untuk semua item dan jenis. Nilai tersebut khusus untuk setiap item secara individual. Artinya, properti System.Music.Artist
selalu didefinisikan sebagai string multinilai, tetapi mungkin memiliki nilai yang berbeda (atau tidak ada nilai sama sekali) untuk setiap item.
Handler properti menerjemahkan data yang disimpan dalam file ke dalam skema terstruktur yang dikenali oleh dan dapat diakses oleh Windows Explorer, Windows Search, dan aplikasi lainnya. Sistem ini kemudian dapat berinteraksi dengan handler properti untuk menulis dan membaca properti ke dan dari file. Data yang diterjemahkan diekspos secara terprogram dan ditampilkan kepada pengguna melalui Windows Explorer dalam berbagai konteks termasuk tampilan detail, infotip, panel detail, halaman properti, dan sebagainya. Setiap handler properti dikaitkan dengan jenis file tertentu, yang diidentifikasi oleh ekstensi nama file. Pengembang harus menerapkan handler properti yang menghasilkan dan menggunakan format asli jenis file mereka, seperti .jpg atau .png, atau menggunakan In-Memory Property Store, yang menghasilkan dan menggunakan format biner MS-PROPSTORE.
Sistem Properti Windows membuat model data abstrak yang menyediakan tingkat abstraksi dari format file individual. Model data abstrak yang disediakan oleh Sistem Properti Windows adalah metode untuk membaca dan menulis sekumpulan nilai bernama yang dapat diperluas yang terkait dengan item Shell. Ekspresi nilai fleksibel, mendukung banyak jenis data, dan dapat diperluas, memungkinkan data arbitrer (VT_BLOB) dan objek untuk dinyatakan sebagai nilai.
Karena abstraksi, Anda dapat mengkueri atribut atau metadata item apa pun. Contoh item yang dapat diabstraksi termasuk dokumen Microsoft Office, tag ID3, dan AutoCAD dan perangkat lunak kepemilikan pihak ketiga lainnya. Demikian pula, jika Anda memiliki file .jpeg, Anda dapat menggunakan codec .jpeg dan EXIF untuk membaca byte file untuk menemukan apa dimensi gambar. Jika Anda memiliki file .png sebagai gantinya, Anda memerlukan codec yang berbeda dan kode yang berbeda untuk melakukannya. Menggunakan Sistem Properti Windows menghindari masalah semacam ini. Jika Anda menerapkan jenis file baru, Anda memiliki opsi untuk menyambungkan ke abstraksi seragam yang ditawarkan oleh Sistem Properti Windows dan menentukan cara membuat metadata Anda dapat dikonsumsi. Untuk alasan ini, selalu lebih baik menggunakan platform umum yang disediakan oleh Sistem Properti Windows.
Skenario Pengembangan
Sifat dinyatakan oleh produsen dan konsumen. Dalam konteks ini, produsen adalah penemu properti dalam Sistem Properti Windows dan konsumen adalah aplikasi (dan pengembangnya) yang menggunakan informasi properti dari sistem ini. Penggunaan dan peserta dalam Sistem Properti Windows diidentifikasi dalam tabel berikut.
Penggunaan Sistem Properti Windows | Peserta |
---|---|
Blok bangunan yang menyediakan registri deskripsi properti yang dapat diperluas, implementasi penyimpanan properti di dalam memori, serta layanan untuk mengaitkan penangan properti, mengonversi tipe, dan melakukan serialisasi penyimpanan properti. | Konsumen |
Aplikasi yang ingin membaca dan menulis properti dengan cara abstrak. | Konsumen |
Pengembang properti yang menentukan properti baru untuk sistem properti dengan menetapkan skema properti kustom dan mengembangkan pengelola properti mereka sendiri. | Produser |
Pemilik format file yang ingin mengaktifkan akses ke properti yang disimpan dalam format file kustom mereka. | Produser |
Pengguna mengonsumsi properti, skema, dan handler properti yang ada. Properti-properti yang dapat digunakan termasuk properti baca/tulis dari pengendali properti untuk jenis file yang didukung dan mungkin juga mencakup beberapa properti kustom. Skema yang tersedia mencakup setidaknya skema sistem, dan terkadang yang lain juga. Konsumen dapat membuat aplikasi untuk menggunakan metadata dan membangun tampilan berdasarkan artis, terlepas dari folder apa item disimpan. Hierarki folder file tidak relevan. Misalnya, Anda dapat menentukan semua item lagu oleh penyanyi tertentu tanpa khawatir tentang lokasi item tersebut. Skenario end-to-end yang kompleks ini tidak terbatas pada Sistem Properti Windows, tetapi melibatkan beberapa komponen yang berbeda, seperti folder pengindeksan dan pencarian.
Penemu properti, atau pengembang pihak ketiga, adalah produsen dalam Sistem Properti Windows. Saat bersiap untuk menentukan properti baru, pertama-tama periksa kumpulan properti yang ditentukan Windows. Jika Anda menemukan yang memenuhi kebutuhan Anda, dari jenis dan semantik yang cocok dengan penggunaan yang diperlukan, gunakan properti tersebut dan jangan menciptakan yang baru. Jika Anda menentukan properti kustom baru, cobalah untuk mendapatkan perjanjian dengan pengembang lain yang mungkin ingin menggunakannya dan menerbitkan hasil perjanjian tersebut sehingga mereka dapat bergabung dengan komunitas pengguna properti tersebut.
Produsen dapat memanfaatkan fungsionalitas Windows Explorer. Misalnya, jika Anda menulis format gambar baru, dan menerapkan handler properti, format file baru Anda akan tersedia di Windows Explorer. Pengguna kemudian dapat menandai foto mereka dan mempivot koleksi foto mereka berdasarkan properti apa pun di Sistem Properti Windows. Bahkan, apa pun yang dilakukan Shell dengan properti, pengembang pihak ketiga dapat melakukan dalam aplikasi mereka sendiri. Ini termasuk pengelompokan, pengurutan, kueri, dan menampilkan properti lengkap. Pengalaman pengguna yang disediakan Windows Explorer sebagian besar dapat diimplementasikan oleh pihak ketiga dengan API yang tersedia untuk umum. Windows Explorer dapat diganti atau diperluas menggunakan API ini.
Dari sudut pandang aplikasi yang menggunakan model data Shell, ada berbagai skenario besar yang melibatkan penggunaan sistem properti Windows. Aplikasi manajemen media adalah contoh yang menonjol. Skenario sistem properti inti mencakup skenario seperti membaca properti kata kunci dari sebuah foto atau mengatur properti tanggal pengambilan. Contoh skenario integrasi end-to-end yang diaktifkan Sistem Properti Windows, tetapi yang mengharuskan beberapa komponen lain berfungsi, termasuk menampilkan semua gambar, atau menemukan dokumen yang berisi kata kunci.
Properti dan Pencarian Windows
Fitur melayani produsen dan konsumen dalam interaksi mereka dengan Windows Search dan pengindeksan. Windows Search memiliki cache nilai properti yang digunakan dalam implementasi Windows Search Service (WSS). Nilai properti ini dapat dikueri secara terprogram dengan menggunakan penyedia Windows Search OLE DB, atau melalui ISearchFolderItemFactory, yang mewakili item dalam hasil pencarian dan tampilan berbasis kueri. Windows Search kemudian mengumpulkan dan menyimpan properti yang dipancarkan oleh handler filter atau handler properti ketika item seperti dokumen Word diindeks. Penyimpanan ini dihapus dan dibuat ulang ketika indeks diindeks ulang.
Nota
Ingatlah bahwa ketika Anda mendaftarkan ulang skema, perubahan yang dilakukan pada atribut properti yang ditentukan sebelumnya mungkin tidak dihormati oleh pengindeks. Solusinya adalah membangun kembali indeks, atau memperkenalkan properti baru yang mencerminkan perubahan alih-alih memperbarui yang lama (tidak disarankan). Untuk informasi selengkapnya, lihat Catatan untuk Implementer nanti dalam topik ini.
Misalnya, pengembang yang membuat aplikasi media ingin menunjukkan kepada pengguna aplikasi semua musik yang tersedia oleh artis tertentu. Aplikasi ini akan memberi pengguna daftar artis yang tersedia, lalu menghasilkan daftar semua musik yang tersedia oleh artis yang dipilih pengguna. Atau pengguna akhir mungkin ingin melakukan kueri untuk ?artist:Beethoven?, dan diekspos ke daftar lengkap properti yang tersedia selama pencarian mereka. Contoh ini melibatkan penggunaan namespace shell, handler properti, dan/atau mengkueri indeks melalui salah satu hal berikut:
- Sumber data Shell.
- Penyedia OLE DB.
- File Pencarian Tersimpan (.search-ms) yang digunakan untuk memulai kueri dengan menavigasi ke file pencarian di Windows Explorer atau mengikat IShellFolder secara terprogram.
Nota
Meskipun properti System.Kind
tidak berpartisipasi dalam skenario aplikasi media ini, properti tersebut dapat digunakan untuk membuat kueri yang akan mengembalikan semua file .search-ms dalam cakupan tertentu.
Cara yang disukai untuk mengakses API Pencarian dan membuat aplikasi Windows Search adalah melalui sumber data Shell. ISearchFolderItemFactory adalah komponen yang dapat membuat instans sumber data folder Pencarian, yang merupakan semacam sumber data "virtual" yang disediakan oleh Shell yang dapat menjalankan kueri melalui sumber data lain di namespace Shell dan menghitung hasil. Ini dapat melakukannya baik dengan menggunakan pengindeks, atau dengan menghitung dan memeriksa item secara manual dalam cakupan yang ditentukan.
Pengembang pihak ketiga dapat membuat aplikasi yang menggunakan data dalam indeks melalui kueri terprogram, dan dapat memperluas data dalam indeks untuk jenis file dan item kustom yang akan diindeks oleh Windows Search. Jika Anda ingin menampilkan hasil kueri di Windows Explorer, Anda harus menerapkan sumber data Shell sebelum Anda bisa membuat handler protokol untuk memperluas indeks. Namun, jika semua kueri akan terprogram (melalui OLE DB misalnya) dan ditafsirkan oleh kode aplikasi daripada Shell, maka namespace Shell masih disukai tetapi tidak diperlukan. Handler protokol diperlukan windows untuk mendapatkan informasi tentang isi file, seperti item dalam database atau tipe file kustom. Meskipun Windows Search bisa mengindeks nama dan properti file, Windows tidak memiliki informasi tentang isi berkas. Akibatnya, item tersebut tidak dapat diindeks atau diekspos di Windows Shell. Dengan menerapkan handler protokol kustom, Anda dapat mengekspos item ini. Untuk daftar handler yang diidentifikasi oleh skenario pengembang yang ingin Anda capai, lihat "Gambaran Umum Handler" di Windows Search sebagai Platform untuk Pengembangan.
Nota
Sumber data Shell terkadang dikenal sebagai ekstensi namespace Shell. Handler terkadang dikenal sebagai ekstensi Shell atau pengelola ekstensi Shell.
Catatan untuk Pelaksana
Karena potensi kesulitan yang mungkin dimiliki pengindeks saat mengonsumsi skema sistem properti, sangat penting bagi Anda untuk menentukan atribut dengan hati-hati dan strategis untuk rilis pertama skema. Setiap perubahan pada atribut (jenis, lebar kolom, apakah dapat diindeks) tidak akan tercermin dalam database setelah skema didaftarkan. Satu-satunya cara agar perubahan ini dikenali setelah skema didaftarkan sekali pada sistem adalah dengan membangun kembali indeks dan kemudian mendaftarkan skema baru, atau untuk mendaftarkan skema dan kemudian membuat properti baru untuk setiap rilis berikutnya; misalnya PKEY_GroupName_PropertyNameV2
, PKEY_GroupName_PropertyNameV3
, dan sebagainya. Kami tidak menyarankan untuk membuat properti baru dengan cara ini, karena beberapa kolom asing dapat memengaruhi performa sistem.
Dokumentasi Sistem Properti Windows
Sisa dokumentasi ini berisi bagian berikut:
Panduan Pengembang Sistem Properti Windows
Menjelaskan secara rinci cara menerapkan skenario pengembangan utama menggunakan Sistem Properti Windows.
-
Dokumen Properti Windows, Skema Deskripsi Properti , Antarmuka , Fungsi , Struktur , dan Konstanta , Enumerasi, dan Bendera Sistem Properti Windows.
-
Menjelaskan sampel yang menunjukkan cara menggunakan Sistem Properti Windows.
Sumber Daya Tambahan
- Untuk informasi mengenai penggunaan kembali Penyimpanan Properti In-Memory, lihat Menginisialisasi Penangan Properti dan PSCreateMemoryPropertyStore.
- Untuk spesifikasi Format Berkas Biner Toko Properti Microsoft, silakan lihat [MS_PROPSTORE].
- Hubungan antara Windows Search dan pengindeksan, dan cara memperluas indeks, dijelaskan dalam topik berikut di Windows Search:
- Mengembangkan Handler Filter untuk Windows Search
- Mengembangkan Handler Protokol untuk Windows Search
- Mengembangkan Pengelola Properti untuk Windows Search
- Untuk unduhan Windows 7 atau Windows Vista SDK yang diperbarui, lihat Windows SDK.
Topik terkait