Baca dalam bahasa Inggris

Bagikan melalui


Cara Membuat Pengelola Data

Saat file disalin ke clipboard atau diseret dan dihilangkan, Shell membuat objek data yang mendukung berbagai format clipboard standar. Untuk file yang berjenis file tertentu, Anda dapat memperluas format clipboard yang tersedia dengan menerapkan dan mendaftarkan handler data . Ketika file dari jenis tersebut ditransfer, Shell mendelegasikan panggilan ke antarmuka IDataObject dari objek data ke penangan data jika salah satu format kustom digunakan.

Prosedur umum untuk menerapkan dan mendaftarkan penangan ekstensi Shell dibahas pada Membuat Penangan Ekstensi Shell. Dokumen ini berfokus pada aspek implementasi yang khusus untuk penangan data.

Peraturan

Langkah 1: Menerapkan Pengelola Data

Seperti semua penangan ekstensi Shell, penangan data adalah objek Model Objek Komponen (COM) dalam proses yang diimplementasikan sebagai DLL. Mereka mengekspor dua antarmuka selainIUnknown: IPersistFile dan IDataObject.

Shell menginisialisasi handler melalui antarmuka IPersistFile. Ini menggunakan antarmuka tersebut untuk meminta pengidentifikasi kelas (CLSID) dari handler dan memberikannya nama file tersebut. Untuk diskusi umum tentang cara menerapkan handler ekstensi Shell, termasuk antarmuka IPersistFile, lihat Membuat Handler Ekstensi Shell.

Setelah handler data diinisialisasi, Shell mendelegasikan panggilan dari objek data ke antarmukaIDataObjecthandler jika salah satu format kustom digunakan.

Langkah 2: Mendaftarkan Pengelola Data

Pengelola data terdaftar di bawah subkunci ProgID jenis file seperti yang ditunjukkan di sini: HKEY_CLASSES_ROOT\ProgID\shellex\DataHandler

Buat subkunci bernama untuk handler di bawah DataHandler dan atur nilai default subkunci handler tersebut ke bentuk string dari GUID CLSID handler. Untuk diskusi umum tentang cara mendaftarkan pengendali ekstensi Shell, lihat Membuat Pengendali Ekstensi Shell.

Contoh berikut mengilustrasikan entri registri yang mengaktifkan penangan data 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
         DataHandler
            (Default) = {00000000-1111-2222-3333-444444444444}

Membuat Pengendali Ekstensi Shell

IPersistFile

IDataObject