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.
Kemampuan Shell dapat diperluas dengan entri registri dan file .ini. Meskipun pendekatan untuk memperluas Shell ini sederhana dan memadai untuk banyak tujuan, tetapi terbatas. Misalnya, jika Anda menggunakan registri untuk menentukan ikon kustom untuk jenis file, ikon yang sama akan muncul untuk setiap file jenis tersebut. Memperluas Shell dengan registri tidak memungkinkan Anda untuk memvariasikan ikon untuk file yang berbeda dengan jenis yang sama. Aspek lain dari Shell, seperti lembar properti Properti yang dapat ditampilkan saat file diklik kanan, tidak dapat dimodifikasi sama sekali melalui registri.
Pendekatan yang lebih kuat dan fleksibel untuk memperluas Shell adalah dengan mengimplementasikan penangan ekstensi Shell . Handler ini dapat diimplementasikan untuk berbagai tindakan yang dapat dilakukan Shell. Sebelum mengambil tindakan, Shell meminta handler ekstensi, memberinya kesempatan untuk memodifikasi tindakan. Contoh umumnya adalah handler ekstensi menu pintasan. Jika diterapkan pada jenis file tertentu, file tersebut akan diperiksa setiap kali salah satu dari file-file tersebut diklik kanan. Handler kemudian dapat menentukan item menu tambahan berdasarkan file demi file, daripada memiliki set yang sama untuk seluruh jenis file.
Dokumen ini membahas cara mengimplementasikan handler ekstensi yang memungkinkan Anda memodifikasi berbagai tindakan Shell. Pengelola berikut dikaitkan dengan jenis file tertentu dan memungkinkan Anda menentukan secara individual pada setiap file:
| Handler | Deskripsi |
|---|---|
| Penangan menu pintasan | Dipanggil sebelum menu pintasan file ditampilkan. Ini memungkinkan Anda untuk menambahkan item ke menu pintasan berdasarkan file demi file. |
| pengelola data | Dipanggil saat operasi drag-and-drop dilakukan pada objek dragShell. Ini memungkinkan Anda untuk menyediakan format clipboard tambahan ke target drop. |
| Penangan Drop | Dipanggil saat objek data diseret di atas atau dijatuhkan pada file. Ini memungkinkan Anda untuk menjadikan sebuah file sebagai target penempatan. |
| handler ikon | Dipanggil sebelum ikon file ditampilkan. Ini memungkinkan Anda mengganti ikon default file dengan ikon kustom berdasarkan file demi file. |
| pengelola lembar properti | Dipanggil sebelum lembar properti objek Properties ditampilkan. Ini memungkinkan Anda untuk menambahkan atau mengganti halaman. |
| penanganan Gambar Mini | Menyediakan gambar untuk mewakili item. |
| Infotip handler | Menyediakan teks pop-up saat pengguna mengarahkan penunjuk mouse ke atas objek. |
| pengelola metadata | Menyediakan akses baca dan tulis ke metadata (properti) yang disimpan dalam file. Ini dapat digunakan untuk memperluas tampilan Detail, infotip, halaman properti, dan fitur pengelompokan. |
Handler lain tidak terkait dengan jenis file tertentu tetapi dipanggil sebelum beberapa operasi Shell:
| Pengelola | Deskripsi |
|---|---|
| penangan kolom | Dipanggil oleh Windows Explorer sebelum menampilkan tampilan Detail folder. Ini memungkinkan Anda menambahkan kolom kustom ke tampilan Detail. |
| Penangan hook salin | Dipanggil ketika folder atau objek printer akan dipindahkan, disalin, dihapus, atau diganti namanya. Ini memungkinkan Anda menyetujui atau memveto operasi. |
| handler Seret dan letakkan | Dipanggil ketika sebuah file diseret menggunakan tombol kanan mouse. Ini memungkinkan Anda untuk mengubah menu pintasan yang ditampilkan. |
| Pengendali Overlay Ikon | Dipanggil sebelum ikon file ditampilkan. Ini memungkinkan Anda menentukan overlay untuk ikon file. |
| Penanganan Pencarian | Dipanggil untuk meluncurkan mesin pencari. Ini memungkinkan Anda menerapkan mesin pencari kustom yang dapat diakses dari menu Mulai atau Windows Explorer. |
Detail cara mengimplementasikan handler ekstensi tertentu tercakup dalam bagian yang tercantum di atas. Sisa dokumen ini mencakup beberapa masalah implementasi yang umum untuk semua pengendali ekstensi Shell.
- Menerapkan Penangan Ekstensi Shell
- Meningkatkan Fitur Pencarian Windows dengan Penangan Ekstensi Shell
-
Mendaftarkan Handler Ekstensi Shell
- Nama Handler
- Objek Shell yang Telah Ditentukan Sebelumnya
- Contoh Pendaftaran Handler Ekstensi
- Topik terkait
Menerapkan Pengendali Ekstensi Shell
Sebagian besar implementasi objek handler ekstensi Shell tergantung pada jenisnya. Namun, ada beberapa elemen umum. Bagian ini membahas aspek implementasi yang dimiliki bersama oleh semua pengelola ekstensi Shell.
Banyak penangan ekstensi Shell adalah objek Model Objek Komponen (COM) yang dijalankan dalam proses. Mereka harus diberi GUID dan terdaftar seperti yang dijelaskan dalam dokumen "Registering Shell Extension Handlers". Mereka diimplementasikan sebagai DLL dan harus mengekspor fungsi standar berikut:
- DllMain. Titik masuk standar ke DLL.
- DllGetClassObject. Menunjukkan fabrik kelas dari objek.
- DllCanUnloadNow. COM memanggil fungsi ini untuk menentukan apakah objek melayani klien apa pun. Jika tidak, sistem dapat membongkar DLL dan membebaskan memori terkait.
Seperti semua objek COM, penangan ekstensi Shell harus menerapkan antarmukaIUnknowndan pabrik kelas . Kebanyakan penangan ekstensi harus juga menerapkan antarmuka IPersistFile atau IShellExtInit di Windows XP atau yang lebih lama. Ini digantikan oleh IInitializeWithStream, IInitializeWithItem dan IInitializeWithFile di Windows Vista. Shell menggunakan antarmuka ini untuk menginisialisasi handler.
AntarmukaIPersistFile harus diimplementasikan dengan cara berikut:
- Pengelola data
- Jatuhkan handler
Di masa lalu, handler ikon juga diharuskan untuk mengimplementasikan IPersistFile, tetapi ini tidak lagi benar. Untuk handler ikon, IPersistFile sekarang bersifat opsional dan antarmuka lain seperti IInitializeWithItem lebih disukai.
Antarmuka IShellExtInit harus diimplementasikan oleh yang berikut:
- Pengelola menu pintasan
- Penangan seret dan letakkan
- Penganan lembar properti
Menerapkan IPersistFile
AntarmukaIPersistFile dimaksudkan untuk mengizinkan objek dimuat dari atau disimpan ke file disk. Ini memiliki enam metode selain IUnknown, lima metode miliknya sendiri, dan metode GetClassID yang diwarisi dari IPersist. Dengan ekstensi Shell, IPersist hanya digunakan untuk menginisialisasi objek handler ekstensi Shell. Karena biasanya tidak perlu membaca dari atau menulis ke disk, hanya metode GetClassID dan Load yang memerlukan implementasi nontoken.
Shell memanggil GetClassID terlebih dahulu, dan sebuah fungsi mengembalikan pengidentifikasi kelas (CLSID) dari objek penangan ekstensi. Kemudian, Shell memanggil Load dan meneruskan dua nilai. Yang pertama, pszFileName, adalah string Unicode dengan nama file atau folder tempat Shell akan beroperasi. Yang kedua adalah dwMode, yang menunjukkan mode akses file. Karena biasanya tidak perlu mengakses file, dwMode biasanya nol. Metode menyimpan nilai-nilai ini sesuai kebutuhan untuk referensi nanti.
Fragmen kode berikut menggambarkan bagaimana handler ekstensi Shell umum mengimplementasikan metodeGetClassID dan Load. Ini dirancang untuk menangani ANSI atau Unicode. CLSID_SampleExtHandler adalah GUID objek handler ekstensi, dan CSampleExtHandler adalah nama kelas yang digunakan untuk mengimplementasikan antarmuka. Variabel m_szFileName dan m_dwMode adalah variabel privat yang digunakan untuk menyimpan nama file dan bendera akses.
wchar_t m_szFileName[MAX_PATH]; // The file name
DWORD m_dwMode; // The file access mode
CSampleExtHandler::GetClassID(CLSID *pCLSID)
{
*pCLSID = CLSID_SampleExtHandler;
}
CSampleExtHandler::Load(PCWSTR pszFile, DWORD dwMode)
{
m_dwMode = dwMode;
return StringCchCopy(_szFileName, ARRAYSIZE(m_szFileName), pszFile);
}
Menerapkan IShellExtInit
AntarmukaIShellExtInithanya memiliki satu metode, IShellExtInit::Initialize, selain IUnknown. Metode ini memiliki tiga parameter yang dapat digunakan Shell untuk meneruskan berbagai jenis informasi. Nilai yang diteruskan bergantung pada jenis handler, dan beberapa dapat diatur ke NULL.
- pIDFolder menyimpan penunjuk folder ke daftar pengidentifikasi item (PIDL). Untuk ekstensi lembar properti, NULL. Untuk ekstensi menu pintasan, ini adalah PIDL dari folder yang berisi item yang menu pintasannya ditampilkan. Untuk handler seret dan letakkan nondefault, ini adalah PIDL dari folder target.
- pDataObject menyimpan pointer ke antarmuka IDataObjectdari objek data. Objek data menyimpan satu atau beberapa nama file dalam format CF_HDROP.
- hRegKey menyimpan kunci registri untuk objek file atau jenis folder.
Metode IShellExtInit::Initialize menyimpan nama file, penunjuk IDataObject, dan kunci registri sesuai kebutuhan untuk digunakan nanti. Fragmen kode berikut mengilustrasikan implementasi IShellExtInit::Initialize. Untuk kesederhanaan, contoh ini mengasumsikan bahwa objek data hanya berisi satu file. Secara umum, mungkin berisi beberapa file yang masing-masing perlu diekstrak.
LPCITEMIDLIST m_pIDFolder; //The folder's PIDL
wchar_t m_szFile[MAX_PATH]; //The file name
IDataObject *m_pDataObj; //The IDataObject pointer
HKEY m_hRegKey; //The file or folder's registry key
STDMETHODIMP CShellExt::Initialize(LPCITEMIDLIST pIDFolder,
IDataObject *pDataObj,
HKEY hRegKey)
{
// If Initialize has already been called, release the old PIDL
ILFree(m_pIDFolder);
m_pIDFolder = nullptr;
// Store the new PIDL.
if (pIDFolder)
{
m_pIDFolder = ILClone(pIDFolder);
}
// If Initialize has already been called, release the old
// IDataObject pointer.
if (m_pDataObj)
{
m_pDataObj->Release();
}
// If a data object pointer was passed in, save it and
// extract the file name.
if (pDataObj)
{
m_pDataObj = pDataObj;
pDataObj->AddRef();
STGMEDIUM medium;
FORMATETC fe = {CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
UINT uCount;
if (SUCCEEDED(m_pDataObj->GetData(&fe, &medium)))
{
// Get the count of files dropped.
uCount = DragQueryFile((HDROP)medium.hGlobal, (UINT)-1, NULL, 0);
// Get the first file name from the CF_HDROP.
if (uCount)
DragQueryFile((HDROP)medium.hGlobal, 0, m_szFile,
sizeof(m_szFile)/sizeof(TCHAR));
ReleaseStgMedium(&medium);
}
}
// Duplicate the registry handle.
if (hRegKey)
RegOpenKeyEx(hRegKey, nullptr, 0L, MAXIMUM_ALLOWED, &m_hRegKey);
return S_OK;
}
CSampleExtHandler adalah nama kelas yang digunakan untuk mengimplementasikan antarmuka. Variabel m_pIDFolder, m_pDataObject, m_szFileName, dan m_hRegKey adalah variabel privat yang digunakan untuk menyimpan informasi yang diteruskan. Untuk kesederhanaan, contoh ini mengasumsikan bahwa hanya satu nama file yang akan dipegang oleh objek data. Setelah strukturFORMATETCdiambil dari objek data, DragQueryFile digunakan untuk mengekstrak nama file dari FORMATETC struktur medium.hGlobal. Jika kunci registri diteruskan, metode menggunakan RegOpenKeyEx untuk membuka kunci dan menetapkan handle pada m_hRegKey.
Kustomisasi Infotip
Ada dua cara untuk mengkustomisasi infotip:
- Terapkan objek yang mendukung IQueryInfo lalu daftarkan objek tersebut di bawah subkunci yang tepat di registri (lihat Mendaftarkan Penangan Ekstensi Shell di bawah).
- Tentukan string tetap atau daftar properti file tertentu yang akan ditampilkan.
Untuk menampilkan string tetap untuk ekstensi namespace, buat entri yang disebut InfoTip di {CLSID} kunci ekstensi namespace Anda. Atur nilai entri tersebut menjadi string harfiah yang ingin Anda tampilkan, seperti yang ditunjukkan dalam contoh ini, atau string tidak langsung yang menentukan sumber daya dan indeks dalam sumber daya tersebut (untuk tujuan pelokalan).
HKEY_CLASSES_ROOT
CLSID
{CLSID}
InfoTip = InfoTip string for your namespace extension
Untuk menampilkan string tetap untuk jenis file, buat entri yang disebut InfoTip di kunci ProgID dari jenis file tersebut. Atur nilai entri tersebut menjadi string harfiah yang ingin Anda tampilkan atau string tidak langsung yang menentukan sumber daya dan indeks dalam sumber daya tersebut (untuk tujuan pelokalan), seperti yang ditunjukkan dalam contoh ini.
HKEY_CLASSES_ROOT
ProgID
InfoTip = Resource.dll, 3
Jika Anda ingin Shell menampilkan properti file tertentu di infotip untuk jenis file tertentu, buat entri yang disebut InfoTip di kunci ProgID untuk jenis file tersebut. Atur nilai entri tersebut menjadi daftar nama properti kanonis yang dipisahkan oleh titik koma, pasangan pengidentifikasi format (FMTID)/pengidentifikasi properti (PID), atau keduanya. Nilai ini harus dimulai dengan "prop:" untuk mengidentifikasinya sebagai string daftar properti. Jika Anda menghilangkan "prop:", nilainya terlihat sebagai string harfiah dan ditampilkan seperti itu.
Dalam contoh berikut, propname adalah nama properti kanonis (seperti System.Date) dan {fmtid},pid adalah pasangan FMTID/PID.
HKEY_CLASSES_ROOT
ProgID
InfoTip = prop:propname;propname;{fmtid},pid;{fmtid},pid
Nama properti berikut dapat digunakan:
| Nama Properti | Deskripsi | Diambil Dari |
|---|---|---|
| Pengarang | Penulis dokumen | PIDSI_AUTHOR |
| Titel | Judul dokumen | PIDSI_TITLE |
| Subyek | Ringkasan subjek | PIDSI_SUBJECT |
| Komentar | Komentar dokumen | PIDSI_COMMENT atau properti folder/pengandar |
| Jumlah Halaman | Jumlah halaman | PIDSI_PAGECOUNT |
| Nama | Nama yang ramah | Tampilan folder standar |
| Lokasi Asli | Lokasi file asli | Folder tas kerja dan folder Keranjang Sampah |
| Tanggal Dihapus | File tanggal dihapus | Folder Tempat Sampah |
| Jenis | Tipe file | Tampilan rincian untuk folder standar |
| Ukuran | Ukuran file | Tampilan detail folder standar |
| SyncCopyIn | Sama seperti OriginalLocation | Sama seperti OriginalLocation |
| Diubah | Tanggal terakhir diubah | Tampilan detail folder standar |
| Dibuat | Tanggal dibuat | Tampilan folder dengan detail standar |
| Diakses | Tanggal terakhir diakses | Tampilan detail folder standar |
| InFolder | Direktori yang berisi file | Hasil pencarian dokumen |
| Pangkat | Kualitas kecocokan pencarian | Hasil pencarian dokumen |
| RuangBebas | Ruang penyimpanan yang tersedia | Disk drive |
| JumlahKunjungan | Jumlah kunjungan | Folder Favorit |
| Atribut | Atribut Berkas | Tampilan detail folder standar |
| Firma | Nama perusahaan | PIDDSI_COMPANY |
| Kategori | Kategori dokumen | PIDDSI_CATEGORY |
| Hak cipta | Hak cipta media | PIDMSI_COPYRIGHT |
| HTMLInfoTipFile | File InfoTip HTML | Desktop.ini file di dalam folder |
Meningkatkan Pencarian Windows dengan Handler Ekstensi Shell
Handler ekstensi Shell dapat digunakan untuk meningkatkan pengalaman pengguna yang disediakan oleh handler protokol Windows Search. Untuk mengaktifkan peningkatan tersebut, handler ekstensi Shell yang mendukung harus dirancang untuk diintegrasikan dengan handler protokol pencarian sebagai sumber data. Untuk informasi tentang cara meningkatkan handler protokol Windows Search melalui integrasi dengan handler ekstensi Shell, lihat Menambahkan Ikon, Pratinjau, dan Menu Pintasan. Untuk informasi selengkapnya tentang penangan protokol Windows Search, lihat Mengembangkan Penangan Protokol.
Mendaftarkan Penangan Ekstensi Shell
Objek handler ekstensi Shell harus didaftarkan sebelum Shell dapat menggunakannya. Bagian ini adalah pembahasan umum tentang cara mendaftarkan penangan ekstensi Shell.
Setiap kali Anda membuat atau mengubah handler ekstensi Shell, penting untuk memberi tahu sistem bahwa Anda telah membuat perubahan dengan SHChangeNotify, dengan menetapkan peristiwa SHCNE_ASSOCCHANGED. Jika Anda tidak memanggil SHChangeNotify, perubahan mungkin tidak dikenali sampai sistem di-boot ulang.
Seperti semua objek COM, Anda harus membuat GUID untuk handler menggunakan alat seperti UUIDGEN.exe. Buat kunci di bawah HKEY_CLASSES_ROOT\CLSID yang namanya dalam bentuk string GUID. Karena handler ekstensi Shell adalah server dalam proses, Anda harus membuat kunci InProcServer32 di bawah kunci GUID dengan nilai default yang diatur ke jalur DLL handler. Gunakan model utas Apartemen.
Setiap kali Shell mengambil tindakan yang dapat melibatkan handler ekstensi Shell, Shell memeriksa kunci registri yang sesuai. Kunci di mana handler ekstensi terdaftar dengan demikian mengontrol kapan akan dipanggil. Misalnya, merupakan praktik umum untuk memiliki pengelola menu pintas yang dipanggil ketika Shell menampilkan menu pintasan untuk anggota jenis file . Dalam hal ini, handler harus terdaftar di bawah kunci ProgID jenis file.
Nama Handler
Untuk mengaktifkan ekstensi pengendali Shell, buat subkunci dengan nama subkunci pengendali (lihat di bawah) di bawah subkunci ShellEx dari ProgID (untuk jenis file) atau nama jenis objek Shell (untuk Objek Shell yang Telah Ditentukan).
Misalnya, jika Anda ingin mendaftarkan handler ekstensi menu pintasan untuk MyProgram.1, Anda akan mulai dengan membuat subkunci berikut:
HKEY_CLASSES_ROOT
MyProgram.1
ShellEx
ContextMenuHandlers
Untuk handler berikut, buat subkunci di bawah kunci "Nama Subkunci Handler" yang namanya adalah versi string dari CLSID ekstensi Shell. Beberapa ekstensi dapat didaftarkan di bawah kunci nama subkunci handler dengan membuat beberapa subkunci.
| Pengelola | Antarmuka | Nama Subkunci Handler |
|---|---|---|
| Penangan menu pintasan | IContextMenu | ContextMenuHandlers |
| Penangan copyhook | ICopyHook | CopyHookHandlers |
| Handler seret dan letakkan | IContextMenu | DragDropHandlers |
| Pengelola lembar properti | IShellPropSheetExt | PropertySheetHandlers |
| Handler penyedia kolom (tidak digunakan lagi di Windows Vista) | IColumnProvider | ColumnHandlers |
Untuk handler berikut, nilai default kunci "Nama Subkunci Handler" adalah versi string dari CLSID ekstensi Shell. Hanya satu ekstensi yang dapat didaftarkan untuk handler ini.
| Handler | Antarmuka | Nama Subkunci Handler |
|---|---|---|
| Pengelola data | IDataObject | DataHandler |
| Drop handler | IDropTarget | DropHandler |
| Handler ikon | IExtractIcona/W | IconHandler |
| Pengelola gambar | IExtractImage | {BB2E617C-0920-11d1-9A0B-00C04FC2D6C1} |
| Pengelola gambar miniatur | IThumbnailProvider | {E357FCCD-A995-4576-B01F-234630154E96} |
| Handler infotip | IQueryInfo | {00021500-0000-0000-C000-000000000046} |
| Tautan Shell (ANSI) | IShellLinkA | {000214EE-0000-0000-C000-000000000046} |
| Tautan shell (UNICODE) | IShellLinkW | {000214F9-0000-0000-C000-000000000046} |
| Penyimpanan terstruktur | IStorage | {0000000B-0000-0000-C000-000000000046} |
| Metadata | IPropertyStore | PengelolaProperti |
| Metadata | IPropertySetStorage (tidak digunakan lagi di Windows Vista) | PropertyHandler |
| Sematkan ke Menu Mulai | IStartMenuPinnedList | {a2a9545d-a0c2-42b4-9708-a0b2badd77c8} |
| Sematkan ke Bilah Tugas | {90AA3A4E-1CBA-4233-B8BB-535773D48449} |
Subkunci yang ditentukan untuk menambahkan Sematkan ke Menu Mulai dan Sematkan ke Bilah Tugas pada menu pintasan item hanya diperlukan untuk jenis file yang menyertakan entri IsShortCut.
Dukungan untuk pengelola penyedia kolom telah dihapus di Windows Vista. Selain itu, sejak Windows Vista, IPropertySetStorage telah dihapuskan demi IPropertyStore.
Meskipun IExtractImage tetap didukung, IThumbnailProvider lebih disukai untuk Windows Vista dan yang lebih baru.
Objek Shell yang telah ditentukan sebelumnya
Shell menentukan objek tambahan di bawah HKEY_CLASSES_ROOT yang dapat diperluas dengan cara yang sama seperti jenis file. Misalnya, untuk menambahkan handler lembar properti untuk semua file, Anda dapat mendaftar di bawah kunci PropertySheetHandlers.
HKEY_CLASSES_ROOT
*
shellex
PropertySheetHandlers
Tabel berikut memberikan berbagai subkunci HKEY_CLASSES_ROOT tempat handler ekstensi dapat didaftarkan. Perhatikan bahwa banyak pengelola ekstensi tidak dapat didaftarkan di bawah semua subkunci yang tercantum. Untuk detail lebih lanjut, lihat dokumentasi handler tertentu.
| Subkunci | Deskripsi | Kemungkinan Pengendali | Versi |
|---|---|---|---|
| * | Semua file | Menu Pintasan, Lembar Properti, Kata Kerja (lihat di bawah) | Semua |
| SemuaObjekSistemFile | Semua file dan folder | Menu Pintasan, Lembar Properti, Kata Kerja | 4.71 |
| Folder | Semua folder | Menu Pintasan, Lembar Properti, Kata Kerja | Semua |
| Direktori | Folder file | Menu Pintasan, Lembar Properti, Kata Kerja | Semua |
| Directory\Latar Belakang | Gambar latar folder file | Menu Pintasan saja | 4.71 |
| Drive | Semua drive di komputer saya, seperti "C:\" | Menu Pintasan, Lembar Properti, Kata Kerja | Semua |
| Jaringan | Seluruh jaringan (di bawah Tempat Jaringan Saya) | Menu Pintasan, Lembar Properti, Kata Kerja | Semua |
| Network\Type\# | Semua objek jenis # (lihat di bawah) | Menu pintasan, Lembar Properti, Kata Kerja | 4.71 |
| NetShare | Semua berbagi jaringan | Menu pintasan, Lembar Properti, Kata Kerja | 4.71 |
| NetServer | Semua server jaringan | Menu pintasan, Lembar Properti, Kata Kerja | 4.71 |
| network_provider_name | Semua objek yang disediakan oleh penyedia jaringan "network_provider_name" | Menu pintasan, Lembar Properti, Kata Kerja | Semua |
| Printer | Semua printer | Menu Pintasan, Lembaran Properti | Semua |
| AudioCD | CD Audio di drive CD | Kata kerja saja | Semua |
| DVD | Drive DVD (Windows 2000) | Menu Pintasan, Lembar Properti, Kata Kerja | 4.71 |
Catatan:
- Menu pintasan latar belakang folder file diakses dengan mengklik kanan dalam folder file, tetapi tidak melalui konten folder mana pun.
- "Verb" adalah perintah khusus yang terdaftar di bawah HKEY_CLASSES_ROOT\Subkey\Shell\Verb .
- Untuk Jaringan\Jenis\# , "#" adalah kode tipe penyedia jaringan dalam desimal. Kode jenis penyedia jaringan adalah kata tinggi dari jenis jaringan. Daftar jenis jaringan diberikan dalam file header Winnetwk.h (nilai WNNC_NET_*). Contohnya, WNNC_NET_SHIVA adalah 0x00330000, sehingga kunci jenis yang sesuai akan HKEY_CLASSES_ROOT\Jaringan\Jenis\51 .
- "network_provider_name" adalah nama penyedia jaringan seperti yang ditentukan oleh WNetGetProviderName, dengan spasi yang dikonversi menjadi garis bawah. Misalnya, jika penyedia jaringan Microsoft Networking terpasang, nama penyedianya adalah "Microsoft Windows Network", dan network_provider_name yang sesuai adalah Microsoft_Windows_Network.
Contoh Pendaftaran Handler Ekstensi
Untuk mengaktifkan handler tertentu, buat subkunci di bawah kunci jenis handler ekstensi dengan nama handler. Shell tidak menggunakan nama handler, tetapi harus berbeda dari semua nama lain di bawah subkunci jenis itu. Atur nilai default subkunci nama ke representasi string GUID milik handler.
Contoh berikut mengilustrasikan entri registri yang mengaktifkan menu pintasan dan penangan ekstensi lembar properti, menggunakan 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
{11111111-2222-3333-4444-555555555555}
InProcServer32
(Default) = C:\MyDir\MyPropSheet.dll
ThreadingModel = Apartment
MyProgram.1
(Default) = MyProgram Application
Shellex
ContextMenuHandler
MyCommand
(Default) = {00000000-1111-2222-3333-444444444444}
PropertySheetHandlers
MyPropSheet
(Default) = {11111111-2222-3333-4444-555555555555}
Prosedur pendaftaran yang dibahas di bagian ini harus diikuti untuk semua sistem Windows.
Topik terkait