Bagikan melalui


Mengategorikan menurut Kemampuan Kontainer

Komponen sering memerlukan fungsionalitas tertentu dari kontainer dan tidak akan berfungsi dengan kontainer yang tidak memberikan dukungan. Antarmuka pengguna harus memfilter komponen yang memerlukan fungsionalitas yang tidak didukung kontainer. Untuk mencapai hal ini, komponen dapat dikategorikan oleh fungsionalitas kontainer yang diperlukan.

Contoh komponen yang memerlukan fungsionalitas dari kontainer dan tidak berfungsi dalam kontainer yang tidak mendukung fungsionalitas tersebut adalah kontrol OLE bingkai sederhana. Mengategorikan menurut kemampuan kontainer dicapai oleh kunci registri tambahan dalam kunci CLSID komponen:

;The CLSID for "Simple Frame Control" is {123456FF-ABCD-4321-0101-00000000000C}HKEY_CASSES_ROOT\CLSID\{12346FF-ABCD-4321-0101-00000000000C}\Implemented Categories
;The CATID for "Control" is {40FC6ED4-2438-11cf-A3DB-080036F12502} HKEY_CLASSES_ROOT\CLSID\{123456FF-ABCD-4321-0101-00000000000C}Implemented Categories\{40FC6ED4-2438-11cf-A3DB-080036F12502}
;The CATID for simple frame controls is {...CATID_SimpleFrameControl...} HKEY_CLASSES_ROOT\CLSID\{123456FF-ABCD-4321-0101-00000000000C}Implemented Categories\{...CATID_SimpleFrameControl...}
HKEY_CLASSES_ROOT\CLSID\{123456FF-ABCD-4321-0101-00000000000C}Required Categories\{...CATID_SimpleFrameControl...}
 

Seperti yang ditunjukkan dalam contoh ini, komponen dapat termasuk dalam kategori komponen yang menunjukkan fungsionalitas yang didukung serta kategori komponen yang menunjukkan fungsionalitas yang diperlukan.

Dalam contoh berikut, kontrol tombol adalah kontrol OLE generik yang tidak mendukung fungsionalitas tambahan. Ini akan berfungsi dalam kontainer kontrol OLE apa pun.

HKEY_CLASSES_ROOT\CLSID\{...CLSID_Button...}\Implemented Categories
HKEY_CLASSES_ROOT\CLSID\{...CLSID_Button...}\Implemented Categories\{...CATID_Control...}
 

Bandingkan contoh sebelumnya dengan contoh berikutnya di mana MyDBControl dapat menggunakan pengikatan data Visual Basic jika kontainer mendukungnya. Namun, telah didefinisikan sehingga akan berfungsi dalam kontainer yang tidak mendukung pengikatan data Visual Basic (mungkin oleh API database yang berbeda):

HKEY_CLASSES_ROOT\CLSID\{...CLSID_MyDBControl...}\Implemented Categories
HKEY_CLASSES_ROOT\CLSID\{...CLSID_MyDBControl...}\Implemented Categories\{...CATID_Control...}
HKEY_CLASSES_ROOT\CLSID\{...CLSID_MyDBControl...}\Implemented Categories\{...CATID_VBDatabound...}
 

Kontrol GroupBox adalah kontrol bingkai sederhana. Ini bergantung pada kontainer yang mengimplementasikan antarmuka ISimpleFrameSite dan akan bekerja dengan benar hanya dalam kontainer tersebut:

HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Implemented Categories
HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Implemented Categories\{...CATID_Control...}
HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Implemented Categories\{...CATID_SimpleFrame...}
HKEY_CLASSES_ROOT\CLSID\{...CLSID_GroupBox...}\Required Categories\{...CATID_SimpleFrame...}
 

Kontainer yang mendukung kontrol terikat data Visual Basic tetapi tidak mendukung kontrol bingkai sederhana akan menentukan CATID_Control dan CATID_VBDatabound ke antarmuka pengguna kontrol sisipkan. Daftar kontrol yang ditampilkan kepada pengguna akan berisi CLSID_Button dan CLSID_MyDBControl. CLSID_GroupBox tidak akan ditampilkan.

Mengaitkan Ikon dengan Kategori

Mengategorikan menurut Kemampuan Komponen

Kelas dan Asosiasi Default

Menentukan Kategori Komponen

Pengelola Kategori Komponen