Cara Membuat Penghandel Drop

Secara default, file bukan target drop. Anda dapat membuat anggota jenis file menjadi target penghilangan dengan menerapkan dan mendaftarkan penangan drop.

Jika handler drop didaftarkan untuk jenis file, itu dipanggil setiap kali objek diseret atau dijatuhkan pada anggota jenis file. Shell mengelola operasi dengan memanggil metode yang sesuai pada antarmuka IDropTarget handler.

Prosedur umum untuk menerapkan dan mendaftarkan handler ekstensi Shell dibahas dalam Membuat Handler Ekstensi Shell. Dokumen ini berfokus pada aspek implementasi yang khusus untuk menghilangkan penangan.

Petunjuk

Langkah 1: Menerapkan Drop Handler

Seperti semua handler ekstensi Shell, handler drop adalah objek Component Object Model (COM) dalam proses yang diimplementasikan sebagai DLL. Mereka mengekspor dua antarmuka selain IUnknown: IPersistFile dan IDropTarget.

Shell menginisialisasi handler melalui antarmuka IPersistFile-nya . Ini menggunakan antarmuka ini untuk meminta pengidentifikasi kelas handler (CLSID) dan menyediakannya dengan nama file. Untuk diskusi umum tentang cara mengimplementasikan handler ekstensi Shell, termasuk antarmuka IPersistFile , lihat Membuat Penangan Ekstensi Shell.

Setelah handler drop diinisialisasi, Shell memanggil metode yang sesuai pada antarmuka IDropTarget handler.

Langkah 2: Mendaftarkan Penghandel Drop

Handler drop terdaftar di bawah subkuntang jenis file ini.

HKEY_CLASSES_ROOT
   ProgID
      shellex
         DropHandler

Buat subkunci DropHandler bernama untuk handler, dan atur nilai default subkunci ke bentuk string GUID CLSID handler. Untuk diskusi umum tentang cara mendaftarkan penangan ekstensi Shell, lihat Membuat Penangan 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}

Membuat Handler Ekstensi Shell

IDropTarget

IPersistFile