Memahami Ekstensi Namespace Shell

Windows Explorer menyediakan representasi grafis namespace Shell yang dikombinasikan dengan alat yang memungkinkan pengguna berinteraksi dengan objek Shell. Dengan ekstensi namespace layanan, Anda dapat mengambil isi data apa pun dan meminta Windows Explorer menyajikannya kepada pengguna sebagai folder virtual. Saat pengguna menelusuri folder ini, data Anda disajikan sebagai hierarki folder dan file terstruktur pohon, seperti halnya namespace Shell lainnya. Pengguna dan aplikasi dapat berinteraksi dengan konten folder virtual ini dengan cara yang sama seperti objek namespace layanan lainnya. Dokumen ini membahas cara membuat ekstensi namespace.

Cara Kerja Ekstensi Namespace

Di balik layar, setiap folder yang ditampilkan Windows Explorer diwakili oleh objek Model Objek Komponen (COM) yang disebut objek folder. Setiap kali pengguna berinteraksi dengan folder atau kontennya, Shell berkomunikasi dengan objek folder terkait melalui salah satu dari sejumlah antarmuka standar. Objek folder kemudian melakukan apa pun yang diperlukan untuk merespons tindakan pengguna, dan Shell memperbarui tampilan Windows Explorer.

Sebagian besar file dan folder yang berinteraksi dengan pengguna adalah bagian dari sistem file atau folder virtual sistem seperti Keranjang Sampah. Dokumentasi lain telah membahas bagaimana Anda dapat menyesuaikan perilaku folder standar ini untuk memenuhi persyaratan aplikasi Anda dengan memodifikasi registri atau dengan menerapkan penangan ekstensi Shell. Namun, memperluas Shell dengan cara ini paling berguna ketika informasi Anda dapat dengan mudah dipaketkan dalam bentuk file atau folder sistem file normal.

Ada sejumlah situasi di mana menyimpan data sebagai kumpulan folder dan file sistem file mungkin tidak diinginkan atau bahkan tidak mungkin. Beberapa contoh jenis data ini meliputi:

  • Kumpulan item yang paling efektif dipaketkan dalam satu file, seperti database.
  • Kumpulan item yang tersimpan pada komputer jarak jauh yang tidak memiliki sistem berkas Windows standar. Contoh data tersebut adalah informasi yang disimpan di asisten digital pribadi (PDA) atau kamera digital.
  • Kumpulan item yang tidak mewakili data yang disimpan. Contoh data tersebut adalah tautan printer yang terkandung oleh folder Printer standar.

Salah satu cara untuk menyajikan data semacam ini kepada pengguna adalah dengan menulis aplikasi untuk memungkinkan pengguna melihat dan berinteraksi dengan berbagai item. Namun, jika data Anda dapat disajikan sebagai hierarki folder/file, sebagian besar fungsionalitas yang perlu Anda terapkan mungkin merupakan layanan antarmuka pengguna yang sudah disediakan oleh Windows Explorer. Pendekatan yang jauh lebih efisien adalah menulis ekstensi namespace layanan dan membiarkan Windows Explorer menjadi GUI Anda.

Untuk mengimplementasikan ekstensi namespace, informasi Anda harus diatur sebagai namespace terstruktur pohon. Akar namespace Anda disajikan sebagai folder virtual di namespace Shell. Folder akar, dan semua subfolder dan item datanya, menjadi bagian dari namespace Shell, dan Windows Explorer menjadi antarmuka pengguna Anda. Dengan demikian, Anda dapat menyajikan informasi Anda kepada pengguna dengan cara yang akrab dan mudah diakses dengan pemrograman UI yang jauh lebih sedikit daripada yang diperlukan untuk aplikasi kustom.

Ekstensi namespace layanan terdiri dari dua komponen dasar:

  • Manajer data
  • Antarmuka antara manajer data dan Windows Explorer

Komponen pertama dalam daftar sepenuhnya terserah Anda. Anda dapat menyimpan dan mengelola data Anda dengan cara apa pun yang paling efektif. Komponen kedua adalah kode yang diperlukan untuk mengemas data Anda sebagai objek folder dan menangani interaksi dengan Windows Explorer. Windows Explorer kemudian dapat memanggil objek ini untuk memungkinkan pengguna melihat dan berinteraksi dengan data Anda seolah-olah itu adalah kumpulan folder dan file. Objek folder ekstensi namespace Anda harus berinteraksi dengan Windows Explorer seolah-olah objek tersebut adalah folder normal. Sebelum mencoba menerapkan ekstensi namespace, Anda harus terlebih dahulu memahami bagaimana Windows Explorer menangani objek folder.

Objek Tampilan Folder Sistem Default (DefView)

Shell menyediakan implementasi default tampilan folder, yang secara sehari-hari dikenal sebagai DefView, sehingga Anda dapat menghindari banyak pekerjaan menerapkan ekstensi namespace Anda sendiri. Karena beberapa fitur tampilan tidak dapat dicapai melalui tampilan kustom, sering disarankan agar objek tampilan folder sistem default digunakan sebagai pengganti tampilan kustom. Untuk informasi selengkapnya, lihat SHCreateShellFolderView.

Cara Windows Explorer Berinteraksi dengan Ekstensi Namespace

Windows Explorer memberi pengguna GUI yang memungkinkan mereka melakukan berbagai tugas, termasuk:

  • Menavigasi hierarki namespace layanan dan menampilkan konten folder.
  • Mengelola konten namespace dengan memindahkan, menghapus, dan menyalin objek.
  • Mengambil berbagai informasi tentang objek.
  • Meluncurkan aplikasi.

GUI Windows Explorer memiliki lima komponen dasar. Ilustrasi berikut menamai komponen dan menunjukkan di mana komponen biasanya ditampilkan dalam Windows Explorer.

ilustrasi memperlihatkan komponen antarmuka pengguna windows explorer

Ketika pengguna menampilkan folder milik ekstensi namespace di Windows Explorer, objek folder memiliki setidaknya kontrol parsial atas konten kelima area.

Tampilan Pohon

Tampilan pohon menyediakan tampilan namespace tingkat tinggi. Area ini menghosting kontrol tampilan pohon yang dapat menampilkan setiap folder namespace dan posisi folder dalam hierarki namespace. Pengguna dapat melakukan beberapa operasi dengan area tampilan pohon, termasuk:

  • Menampilkan atau menyembunyikan tingkat berikutnya di namespace.
  • Menyalin, memindahkan, atau menghapus folder.
  • Mengklik kanan folder untuk menampilkan menu pintasan.
  • Memilih folder dan menampilkan isinya dalam tampilan folder.

Tampilan pohon berkomunikasi dengan objek folder terutama melalui antarmuka IShellFolder mereka. Misalnya, ketika pengguna mengklik tanda plus (+) di samping ikon folder, Windows Explorer memperluas tampilan untuk menampilkan subfolder folder. Untuk mendapatkan informasi yang diperlukan untuk memperbarui tampilan pohon, Shell melakukan beberapa panggilan ke antarmuka IShellFolder objek folder untuk:

  • Minta atribut folder.
  • Hitung isi folder.
  • Minta nama tampilan untuk setiap subfolder.
  • Minta ikon untuk ditampilkan di samping setiap folder.

Windows Explorer kemudian memperbarui tampilan pohon untuk menampilkan subfolder folder yang dipilih. Jika subfolder memiliki subfolder, karakter '+' ditampilkan di samping ikon foldernya. Ada sejumlah tugas yang lebih canggih yang juga dapat dilakukan pengguna dengan tampilan pohon, termasuk:

  • Menggunakan Clipboard untuk memotong atau menyalin folder dan menempelkannya ke folder lain.
  • Menggunakan seret dan letakkan untuk memotong atau menyalin folder dan meletakkannya di folder lain.
  • Menggunakan mesin pencari untuk mencari item dalam folder atau subfoldernya.
  • Mengubah properti folder.

Untuk diskusi yang lebih rinci tentang bagaimana ekstensi namespace menangani tindakan pengguna ini, lihat Menerapkan Antarmuka Objek Folder Dasar.

Tampilan Folder

Saat pengguna memilih folder, konten folder ditampilkan dalam tampilan folder. Sampai batas tertentu, fungsionalitas normal tampilan folder tumpang tindih dengan tampilan pohon. Pengguna dapat memindahkan atau menyalin folder, mengubah properti folder, melihat konten subfolder, menampilkan menu pintasan untuk folder, dan sebagainya. Namun, ada beberapa perbedaan berbeda antara tampilan pohon dan tampilan folder:

  • Tampilan folder hanya menampilkan konten folder tunggal, bukan bagian atau semua hierarki namespace.
  • Tampilan folder menampilkan objek file serta objek folder.
  • Tampilan folder dapat menampilkan lebih banyak informasi tentang objek daripada tampilan pohon.
  • Tampilan folder memungkinkan ekstensi namespace memiliki kontrol yang hampir lengkap atas informasi apa yang ditampilkan dan caranya. Hanya aspek kecil dari tampilan pohon, seperti ikon folder, yang dapat dimodifikasi.

Tidak seperti tampilan pohon, Windows Explorer tidak secara langsung mengontrol isi tampilan folder. Tampilan folder adalah area yang disediakan Windows Explorer untuk objek folder. Menampilkan dan mengelola konten folder dalam tampilan folder adalah tanggung jawab objek folder. Meskipun sebagian besar tampilan folder mengikuti format yang cukup standar, sebenarnya ada beberapa batasan tentang apa yang dapat ditampilkan atau bagaimana. Kasus ekstrem adalah folder Internet, yang merupakan browser berfungsi lengkap.

Saat pengguna memilih folder milik ekstensi namespace Anda, Anda membuat jendela dan meneruskannya ke Windows Explorer. Jendela ini menjadi anak dari jendela tampilan folder. Windows Explorer menyediakan dimensi jendela tampilan folder tetapi tidak menempatkan batasan pada konten jendela anak Anda. Anda kemudian dapat menggunakan jendela anak untuk menampilkan tampilan folder folder.

Ekstensi namespace menggunakan salah satu dari dua pendekatan untuk membuat tampilan folder:

  • Gunakan jendela anak Anda untuk menghosting kontrol tampilan daftar . Kontrol ini memungkinkan Anda menampilkan isi folder dengan cara yang sama seperti tampilan klasik Windows Explorer.
  • Gunakan jendela anak Anda untuk menghosting kontrol WebBrowser dan menggunakan dokumen HTML Dinamis (DHTML) untuk menampilkan konten folder.

Kedua pendekatan menampilkan tampilan folder yang terlihat sangat mirip dengan yang ditampilkan untuk folder sistem. Namun, jika Anda ingin menggunakan skema tampilan yang berbeda, Anda bebas melakukannya.

Seperti kebanyakan aplikasi Windows, Windows Explorer menyediakan kumpulan alat kepada pengguna. Pilihan alat lengkap tersedia melalui bilah menu. Alat yang lebih umum digunakan juga diwakili oleh tombol atau kotak edit pada toolbar. Tidak seperti banyak aplikasi Windows, bilah menu Windows Explorer sebenarnya adalah kontrol toolbar yang telah disesuaikan untuk bersifat seperti menu konvensional. Bilah menu dan toolbar dimasukkan ke dalam kontrol rebar untuk memungkinkan pengguna mengatur kontrol individual agar sesuai dengan kebutuhan mereka.

Secara default, Windows Explorer mendukung sekumpulan tombol standar dan item menu, seperti Salin dan Properti. Ekstensi namespace Anda dapat menyesuaikan bilah menu dan toolbar dengan menghapus alat standar dan menambahkan alat kustom. Ketika objek tampilan folder Anda diinisialisasi, Windows Explorer meneruskan penunjuk ke antarmuka IShellBrowser-nya . Antarmuka ini mendukung beberapa metode yang dapat Anda panggil untuk menyesuaikan bilah menu dan toolbar. Saat pengguna memilih salah satu item menu atau tombol bilah alat kustom Anda, Windows Explorer meneruskan WM_COMMAND pesan untuk menu kustom dan item bilah alat ke prosedur jendela jendela anak Anda.

Bilah Status

Bilah status Windows Explorer menampilkan informasi tentang objek yang saat ini dipilih. Ekstensi namespace Anda dapat menggunakan bilah status untuk menampilkan informasi status, seperti string teks. Anda dapat menyesuaikan bilah status dengan memanggil IShellBrowser.