Cara Membuat Pengelola Drop
Secara bawaan, file bukan sasaran seret. Anda dapat membuat anggota jenis file menjadi target jatuh dengan menerapkan dan mendaftarkan pengendali jatuh .
Jika pengendali drop didaftarkan untuk jenis file, pengendali tersebut akan dipanggil setiap kali objek diseret ke atas atau dijatuhkan pada komponen dari jenis file. Shell mengelola operasi dengan memanggil metode yang sesuai pada antarmukaIDropTargethandler.
Prosedur umum untuk penerapan dan pendaftaran handler ekstensi Shell dibahas dalam Membuat Handler Ekstensi Shell. Dokumen ini berfokus pada aspek implementasi yang khusus untuk penangan elemen yang dijatuhkan.
Peraturan
Langkah 1: Menerapkan Drop Handler
Seperti semua handler ekstensi Shell, drop handlers adalah objek COM dalam proses yang diimplementasikan sebagai DLL. Mereka mengekspor dua antarmuka selain IUnknown: IPersistFile dan IDropTarget.
Shell menginisialisasi handler melalui antarmuka IPersistFile. Antarmuka ini digunakan untuk meminta pengidentifikasi kelas handler (CLSID) dan memberikan nama file kepadanya. Untuk diskusi umum tentang cara menerapkan handler ekstensi Shell, termasuk antarmuka IPersistFile, lihat Membuat Handler Ekstensi Shell.
Setelah handler drop diinisialisasi, Shell memanggil metode yang sesuai pada antarmuka IDropTarget handler.
Langkah 2: Mendaftarkan Penghandel Drop
Pengelola penurunan didaftarkan di bawah subkunci tipe berkas ini.
HKEY_CLASSES_ROOT
ProgID
shellex
DropHandler
Buat subkunci DropHandler dengan nama sesuai handler, dan atur nilai default dari subkunci ke bentuk string dari CLSID GUID handler. Untuk pembahasan umum tentang cara mendaftarkan pengendali ekstensi Shell, lihat Membuat Pengendali Ekstensi Shell.
Contoh berikut mengilustrasikan entri registri yang mengaktifkan penangan drop untuk contoh jenis file .myp.
HKEY_CLASSES_ROOT
.myp
(Default) = MyProgram.1
CLSID
{00000000-1111-2222-3333-444444444444}
InProcServer32
(Default) = C:\MyDir\MyCommand.dll
ThreadingModel = Apartment
MyProgram.1
(Default) = MyProgram Application
shellex
DropHandler
(Default) = {00000000-1111-2222-3333-444444444444}
Topik terkait