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.
Topik ini diatur sebagai berikut:
Praktik Terbaik
Kata kerja statis adalah kata kerja paling sederhana untuk diimplementasikan, dan menyediakan fungsionalitas yang kaya. Kami sangat mendorong Anda untuk menerapkan kata kerja menggunakan salah satu metode kata kerja statis.
Praktik Terbaik untuk Implementasi Kata Kerja
Daftar berikut mewakili praktik terbaik untuk implementasi kata kerja:
- Selalu pilih metode kata kerja paling sederhana yang memenuhi kebutuhan Anda.
- Gunakan metode kata kerja statis, jika memungkinkan.
- Jangan melakukan operasi yang intensif sumber daya atau I/O pada thread UI. Baik IShellExtInit::Initialize dan IContextMenu::QueryContextMenu harus sangat konservatif dalam pekerjaan yang mereka lakukan. IContextMenu::InvokeCommand harus dilakukan dalam proses lain, atau Anda harus membuat utas baru untuk menghindari pemblokiran pemanggil.
- Tambahkan awalan pada kata kerja dengan nama vendor perangkat lunak independen (ISV) sebagai berikut,
ISVName.verb. Menggunakan nama yang tidak berkualifikasi dapat mengakibatkan konflik dengan beberapa ISV yang memilih nama kata kerja yang sama. - Selalu gunakan ProgID khusus aplikasi. Karena beberapa tipe item tidak menggunakan pemetaan ini, perlu adanya nama unik vendor.
- Posisikan UI relatif terhadap metode pemanggil, tetapi jangan dijalankan pada thread pemanggil.
- Jangan terima nilai pengembalian S_OK untuk kata kerja kanonis yang diteruskan ke metode IContextMenu::InvokeCommand. Tindakan ini menyebabkan implementasi kata kerja nyata tidak dapat dipanggil, dan menyebabkan pengembalian kode kegagalan untuk kata kerja kanonik. Jika Anda tidak mendukung kata kerja kanonikal, maka kembalikan gagal ketika nilai HIWORD(lpVerb) yang tidak nol ditemui.
- Hindari penggunaan rundll32.exe sebagai host untuk fungsi Anda.
- Saat menerapkan IContextMenu::QueryContextMenu pastikan untuk mengembalikan jumlah kata kerja yang telah ditambahkan ke menu melalui nilai HRESULT menggunakan makro ResultFromShort.
- Jika Anda mendaftar pada salah satu entri kunci registri berikut, berhati-hatilah dan pastikan untuk mendaftarkan handler Anda pada jenis yang paling spesifik untuk mengurangi konsekuensi yang mungkin tidak diinginkan:
- HKEY_CLASSES_ROOT\*
- HKEY_CLASSES_ROOT\AllFileSystemObjects
- HKEY_CLASSES_ROOT\Folder
- HKEY_CLASSES_ROOT\Direktori
- Atur kunci MayChangeDefaultMenu hanya jika Anda mengantisipasi bahwa Anda mungkin perlu mengubah kata kerja default di menu pintasan. Jika handler Anda tidak mengubah kata kerja default, maka Anda tidak boleh mengatur kunci ini karena melakukannya menyebabkan sistem memuat DLL Anda tidak perlu.
- Minimalkan pekerjaan yang Anda lakukan di IShellExtInit::Initialize. Untuk penangan menu pintasan, ambil objek data yang diteruskan ke IShellExtInit::Initialize, lalu proses di IContextMenu::QueryContextMenu, atau IContextMenu::InvokeCommand.
Praktik Terbaik untuk Beberapa Kata Kerja Pilihan
Karena jumlah item dalam skenario kata kerja multi-pilihan dapat banyak, penting untuk mempertimbangkan implikasi kinerja dari implementasi kata kerja Anda. Misalnya, ketika pengguna mencari "*" di atas cakupan yang menyertakan item dalam jumlah besar, lalu mengklik Pilih Semua dan klik kanan, kata kerja disajikan dengan pilihan yang dapat memiliki ribuan item di dalamnya. Akibatnya, kata kerja hanya boleh mempertimbangkan item pertama dalam pilihan, dan jumlah item keseluruhan. Item pertama didefinisikan sebagai item di bagian atas tampilan, atau item yang pertama kali diklik kanan pengguna.
Di Windows 7 dan yang lebih baru, jumlah item yang diteruskan ke kata kerja dibatasi hingga 16 saat menu pintasan dikueri. Kata kerja kemudian dibuat ulang dan diinisialisasi ulang dengan pilihan lengkap ketika kata kerja tersebut dipanggil.
Sangat tepat dalam beberapa kasus untuk mempertimbangkan sejumlah kecil item tetap. Misalnya, sesuai untuk kata kerja "diff" untuk mempertimbangkan hanya dua item pertama. Umumnya, Anda tidak perlu menguji setiap item dalam pilihan untuk melihat apakah itu adalah jenis tertentu, atau mengkueri setiap item dalam pilihan untuk propertinya. Lebih baik perhatikan item pertama dan putuskan apakah sesuai untuk menambahkan kata kerja yang Anda maksudkan.
Pilihan Heterogen
Kata kerja yang bersifat optimis secara otomatis ditambahkan dalam kasus multi-pilihan, dengan asumsi bahwa item yang tidak diperiksa dapat ditangani oleh kata kerja. Sebaliknya, kata kerja pesimis tidak ditambahkan ketika pilihan berisi item yang belum diperiksa dan hanya ditambahkan jika jumlah item kecil.
Kata kerja gaya pemain harus optimis, dan diam-diam melewatkan item yang tidak ditangani. Jika kegagalan untuk bertindak pada item dapat menyebabkan kehilangan atau kebingungan data, kata kerja harus memperingatkan pengguna tentang item yang tidak dapat diproses. Misalnya, kata kerja "mem-backup" harus menunjukkan bahwa beberapa item tidak dapat di-backup.
Topik terkait