Cara Menerapkan Handler Overlay Ikon

Handler overlay ikon adalah objek Model Objek Komponen (COM) dalam proses, diimplementasikan sebagai DLL. Mereka mengekspor satu antarmuka selain IUnknown: IShellIconOverlayIdentifier. Antarmuka ini memiliki tiga metode: IShellIconOverlayIdentifier::GetOverlayInfo, IShellIconOverlayIdentifier::GetPriority, dan IShellIconOverlayIdentifier::IsMemberOf.

Petunjuk

Langkah 1: Menerapkan GetOverlayInfo

Metode GetOverlayInfo pertama kali dipanggil selama inisialisasi. Metode ini mengembalikan jalur file yang sepenuhnya memenuhi syarat yang berisi gambar overlay ikon, dan indeks berbasis nol dalam file. Shell kemudian menambahkan gambar ke daftar gambar sistem. Overlay ikon dapat dimuat dalam salah satu jenis file standar, termasuk .exe, .dll, dan .ico.

Setelah inisialisasi selesai, Shell memanggil GetOverlayInfo saat perlu menampilkan overlay ikon handler. Metode harus mengembalikan nama file dan indeks yang sama dengan yang dilakukannya selama inisialisasi. Meskipun Shell menggunakan gambar yang di-cache dalam daftar gambar sistem daripada memuat gambar dari file, overlay ikon masih diidentifikasi dengan nama file dan indeksnya.

Langkah 2: Menerapkan GetPriority

Metode GetPriority hanya dipanggil selama inisialisasi. Ini menetapkan nilai prioritas ke overlay ikon handler. Nilai dapat berkisar dari nol hingga 100, di mana 100 adalah prioritas terendah. Tujuan dari nilai prioritas ini adalah untuk membantu Shell menyelesaikan konflik yang muncul ketika beberapa overlay ikon ditentukan untuk satu objek. Shell pertama kali menggunakan seperangkat aturan internal untuk menentukan overlay ikon prioritas tertinggi. Jika aturan ini tidak mengatasi konflik, nilai yang ditetapkan ke overlay ikon oleh GetPriority menentukan prioritas.

Nilai prioritas yang ditetapkan oleh GetPriority bukanlah cara yang dapat diandalkan untuk mengatasi konflik antara handler overlay ikon yang tidak terkait. Tidak ada cara bagi handler Anda untuk menentukan nilai prioritas apa yang digunakan penangan lain. Biasanya, Anda harus mengatur nilai ke nol. Namun, nilai prioritas berguna ketika Anda telah menerapkan dua penangan overlay ikon atau lebih yang dapat meminta ikon overlay ikon untuk objek yang sama. Dengan mengatur nilai prioritas dengan tepat, Anda dapat menentukan overlay ikon mana yang diminta yang akan ditampilkan.

Langkah 3: Menerapkan IsMemberOf

Shell memanggil metode IsMemberOf untuk menentukan apakah harus menampilkan overlay ikon handler untuk objek tertentu. Shell menentukan objek dengan meneruskan namanya ke metode . Jika handler ingin menampilkan overlay ikonnya, IsMemberOf mengembalikan S_OK. Jika tidak, ia mengembalikan S_FALSE.

Handler overlay ikon biasanya dimaksudkan untuk bekerja dengan sekelompok file tertentu. Contoh umumnya adalah jenis file, yang diidentifikasi oleh ekstensi nama file tertentu. Handler overlay ikon dapat meminta overlay ikon untuk semua file jenis file. Beberapa handler meminta overlay ikon hanya jika file jenis file berada dalam status tertentu. Namun, handler overlay ikon bebas untuk meminta overlay ikon mereka untuk objek apa pun yang mereka pilih.