Mendaftarkan Objek COM Menu Konteks di Penentu Tampilan

Saat Anda menggunakan COM untuk membuat DLL ekstensi menu konteks untuk layanan direktori Direktori Aktif, ekstensi harus didaftarkan ke registri Windows dan Layanan Domain Direktori Aktif untuk memberi tahu snap-in MMC administratif Direktori Aktif dan shell Windows ekstensi.

Mendaftar di Windows Registry

Seperti semua server COM, ekstensi menu konteks harus terdaftar di registri. Ekstensi terdaftar di bawah kunci berikut.

HKEY_CLASSES_ROOT
   CLSID
      <clsid>

<clsid adalah representasi string DARI CLSID seperti yang dihasilkan oleh fungsi StringFromCLSID.> <Di bawah kunci clsid>, ada kunci InProcServer32 yang mengidentifikasi objek sebagai server in-proc 32-bit. Di bawah kunci InProcServer32 , lokasi DLL ditentukan dalam nilai default dan model utas ditentukan dalam nilai ThreadingModel . Semua ekstensi menu konteks harus menggunakan model utas "Apartemen".

Mendaftar dengan Active Directory Domain Services

Pendaftaran ekstensi menu konteks khusus untuk satu lokal. Jika ekstensi menu konteks berlaku untuk semua lokal, ekstensi tersebut harus didaftarkan di objek displaySpecifier kelas objek di semua subkontainer lokal dalam kontainer Penentu Tampilan. Jika ekstensi menu konteks dilokalkan untuk lokal tertentu, ekstensi tersebut harus terdaftar di objek displaySpecifier di subkontainer lokal tersebut. Untuk informasi selengkapnya tentang kontainer dan lokal Penentu Tampilan, lihat Penentu Tampilan dan Kontainer DisplaySpecifiers.

Ada dua atribut penentu tampilan yang dapat didaftarkan item ekstensi menu konteks. Ini adalah adminContextMenu dan shellContextMenu.

Atribut adminContextMenu mengidentifikasi menu konteks administratif untuk ditampilkan di snap-in administratif Direktori Aktif. Menu konteks muncul saat pengguna menampilkan menu konteks untuk objek kelas yang sesuai di salah satu snap-in MMC administratif Direktori Aktif.

Atribut shellContextMenu mengidentifikasi menu konteks pengguna akhir untuk ditampilkan di shell Windows. Menu konteks muncul saat pengguna melihat menu konteks untuk objek kelas yang sesuai di Windows Explorer. Dimulai dengan Windows Server 2003, shell Windows tidak lagi menampilkan objek Layanan Domain Direktori Aktif.

Semua atribut ini bernilai multinilai.

Saat mendaftarkan ekstensi menu konteks, nilai untuk atribut adminContextMenu dan shellContextMenu memerlukan format berikut.

<order number>,<clsid>

"<Nomor> pesanan" adalah angka yang tidak ditandatangani yang mewakili posisi item di menu konteks. Saat menu konteks ditampilkan, nilai diurutkan menggunakan perbandingan "<nomor> pesanan" setiap nilai. Jika lebih dari satu nilai memiliki "<nomor pesanan>" yang sama, ekstensi menu konteks tersebut dimuat dalam urutan pembacaan dari server Direktori Aktif. Jika memungkinkan, gunakan "<nomor> pesanan" yang tidak ada, yaitu yang belum digunakan oleh nilai lain dalam properti . Tidak ada posisi awal dan celah yang ditentukan diizinkan dalam urutan "<nomor> pesanan".

"clsid" adalah representasi string DARI CLSID seperti yang dihasilkan oleh fungsi StringFromCLSID.><

Di shell Windows, item menu konteks beberapa pilihan didukung. Dalam hal ini, ekstensi menu konteks dipanggil untuk setiap objek yang dipilih. Di snap-in administratif Direktori Aktif, item ekstensi menu konteks beberapa pilihan juga didukung. Dalam hal ini, struktur DSOBJECTNAMES akan berisi struktur DSOBJECT untuk setiap objek direktori yang dipilih.

Penting

Untuk shell Windows, informasi penentu tampilan diambil saat pengguna masuk dan di-cache untuk sesi pengguna. Untuk snap-in administratif, data penentu tampilan diambil saat snap-in dimuat dan di-cache selama proses. Untuk shell Windows, ini berarti perubahan pada penentu tampilan berlaku setelah pengguna keluar dan kembali aktif lagi. Untuk snap-in administratif, perubahan berlaku saat file snap-in atau konsol dimuat ulang, yaitu, jika Anda memulai instans baru file konsol atau instans Mmc.exe baru dan menambahkan snap-in, data penentu tampilan terbaru diambil.

 

Untuk informasi selengkapnya, dan contoh kode tentang cara menerapkan ekstensi menu konteks, lihat Contoh Kode untuk Implementasi Objek COM Menu Konteks.